/** * Advanced Memory System * * Features: * - Hierarchical memory types (episodic, semantic, procedural) * - Vector embeddings for semantic search * - Importance scoring with temporal decay * - Memory associations/links * - Reflection and consolidation */ export type MemoryType = 'episodic' | 'semantic' | 'procedural' | 'working'; export interface Memory { id: string; type: MemoryType; content: string; summary?: string; source: string; timestamp: string; lastAccessed: string; importance: number; accessCount: number; decayRate: number; associations: string[]; tags: string[]; hasEmbedding: boolean; } export declare class AdvancedMemoryStore { private db; private vectorIndex; private vectorPath; private embedder; private config; constructor(options?: { dbPath?: string; vectorPath?: string; voyageApiKey?: string; maxMemories?: number; }); private init; private initVectorIndex; remember(content: string, options?: { type?: MemoryType; source?: string; importance?: number; tags?: string[]; associations?: string[]; summary?: string; }): Promise; search(query: string, options?: { limit?: number; type?: MemoryType; minImportance?: number; includeAssociations?: boolean; }): Promise; private textSearch; findByTags(tags: string[], options?: { limit?: number; type?: MemoryType; minImportance?: number; }): Promise; getById(id: string): Memory | null; getByType(type: MemoryType, limit?: number): Memory[]; recall(id: string): Memory | null; forget(id: string): Promise; updateImportance(id: string, importance: number): void; associate(id1: string, id2: string): void; applyDecay(): number; reflect(): Promise<{ insights: string[]; consolidations: number; memoriesProcessed: number; }>; stats(): { total: number; byType: Record; avgImportance: number; totalAssociations: number; oldestMemory: string | null; newestMemory: string | null; }; list(limit?: number): Memory[]; getRecent(limit?: number): Memory[]; private addEmbedding; private createAssociations; private removeAssociations; private recordAccess; private inferMemoryType; private calculateInitialImportance; private getDecayRateForType; private extractTags; private consolidateMemories; private findCommonWords; private pruneIfNeeded; private rowToMemory; close(): void; }