export const MEMORY_CATEGORIES = { identity: "Identity & background", long_term_goals: "Long-term goals", current_goals: "Current goals", likes: "Likes", dislikes: "Dislikes", motivators: "Motivators", discouragers: "Things that discourage", daily_routines: "Daily routines", weekly_routines: "Weekly routines", spiritual_practices: "Spiritual practices", reading_preferences: "Reading preferences", learning_interests: "Learning interests", exercise_preferences: "Exercise preferences", work_study: "Work/study commitments", worries: "Worries & concerns", ai_tone: "Preferred AI tone", boundaries: "Boundaries & avoid", personal_context: "Important personal context", life_season: "Current life season", open_questions: "Open questions about user", } as const; export type MemoryCategory = keyof typeof MEMORY_CATEGORIES; export const MEMORY_SOURCE_TYPES = [ "manual", "chat", "reflection", "adventure", "reading", "quest", "teacher", "cartographer", "weekly_review", "correction", "import", "summary_rebuild", ] as const; export type MemorySourceType = (typeof MEMORY_SOURCE_TYPES)[number]; export const MEMORY_SENSITIVITY_LEVELS = ["normal", "private", "sensitive"] as const; export type MemorySensitivity = (typeof MEMORY_SENSITIVITY_LEVELS)[number]; export const SENSITIVE_MEMORY_CATEGORIES: MemoryCategory[] = [ "personal_context", "boundaries", ]; export const MEMORY_SUGGESTION_STATUSES = [ "pending", "accepted", "rejected", "ignored", ] as const; export type MemorySuggestionStatus = (typeof MEMORY_SUGGESTION_STATUSES)[number]; export const DAY_MODES = { normal: "Normal day", low_energy: "Low energy", travel: "Travel", illness: "Illness", family: "Family event", exam: "Exam day", work_emergency: "Work emergency", rest: "Rest day", maintenance: "Maintenance day", } as const; export type DayMode = keyof typeof DAY_MODES; export const FORGIVING_DAY_MODES: DayMode[] = [ "low_energy", "travel", "illness", "family", "exam", "work_emergency", "rest", "maintenance", ]; export interface MemorySourceRef { type: string; id?: string; date?: string; } export interface AiProfileSummary { summary: string; generatedAt: string; sourceMemoryCount: number; version: number; } export interface AiMemoryLearningSettings { learningEnabled: boolean; autoSuggestEnabled: boolean; requireApproval: boolean; allowedCategories: MemoryCategory[]; suggestAfterReflection: boolean; suggestAfterChat: boolean; maxPendingSuggestions: number; minDaysBetweenNudges: number; allowSensitiveCategories: boolean; } export const DEFAULT_AI_MEMORY_LEARNING: AiMemoryLearningSettings = { learningEnabled: false, autoSuggestEnabled: true, requireApproval: true, allowedCategories: (Object.keys(MEMORY_CATEGORIES) as MemoryCategory[]).filter( (c) => !SENSITIVE_MEMORY_CATEGORIES.includes(c) ), suggestAfterReflection: true, suggestAfterChat: true, maxPendingSuggestions: 10, minDaysBetweenNudges: 3, allowSensitiveCategories: false, }; export const DEFAULT_DAY_BOUNDARY_HOUR = 0;