/** * MemoryStore — 持久化记忆系统 * * 参考 OpenClaw 的 Memory 设计: * - 短期记忆:当前会话上下文(内存中) * - 长期记忆:跨会话持久化(JSON 文件) * - 用户画像:偏好、风格、常用平台 * - 发布历史:每次发布的记录 * * 存储后端:JSON 文件(~/.jarvis/memory/) * 后续可升级为 SQLite / 向量数据库 */ import type { ChatMessage, MemoryItem, UserProfile, PublishRecord, MemoryFilter, PublishFilter } from "../skills/types.js"; interface MemoryData { version: number; profile: UserProfile; memories: MemoryItem[]; publishHistory: PublishRecord[]; updatedAt: string; } export declare class MemoryStore { private data; private storagePath; private sessionMessages; private dirty; private autoSaveTimer; constructor(storagePath?: string); /** 从文件加载记忆 */ load(): Promise; /** 保存记忆到文件 */ save(): Promise; /** 启动自动保存(每 30 秒) */ startAutoSave(intervalMs?: number): void; /** 停止自动保存并执行最后一次保存 */ stopAutoSave(): Promise; /** 添加对话消息 */ addMessage(msg: Omit): void; /** 获取最近的消息 */ getRecentMessages(limit?: number): ChatMessage[]; /** 获取对话上下文(供 LLM 使用) */ getContextMessages(): Array<{ role: string; content: string; }>; /** 清除会话消息 */ clearSession(): void; /** 记住一条信息 */ remember(key: string, value: unknown, tags?: string[]): void; /** 回忆(搜索记忆) */ recall(query: string, limit?: number): MemoryItem[]; /** 遗忘 */ forget(key: string): boolean; /** 按条件过滤记忆 */ filterMemories(filter: MemoryFilter): MemoryItem[]; /** 更新画像字段 */ updateProfile(field: string, value: unknown): void; /** 获取完整画像 */ getProfile(): UserProfile; /** 获取画像摘要(供 LLM System Prompt 使用) */ getProfilePrompt(): string; /** 记录一次发布 */ logPublish(record: Omit): void; /** 查询发布历史 */ getPublishHistory(filter?: PublishFilter): PublishRecord[]; /** 获取发布统计 */ getPublishStats(): { total: number; success: number; failed: number; byPlatform: Record; recentDays: number; }; private getDefaultPath; /** 导出全部数据 */ exportData(): MemoryData; /** 导入数据 */ importData(data: MemoryData): void; } export {}; //# sourceMappingURL=store.d.ts.map