124
packages/domain/src/memory.ts
Executable file
124
packages/domain/src/memory.ts
Executable file
@@ -0,0 +1,124 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user