/** * Vector Search and Semantic Memory * * Implements vector embeddings and semantic search for enhanced context retrieval. * Uses local vector store with optional external embedding services. */ import type { ContextConfig, MemoryEntry } from "./types"; export interface VectorEmbedding { id: string; vector: number[]; metadata: { memoryId: string; type: string; tags: string[]; timestamp: string; }; } export interface SearchResult { memory: MemoryEntry; score: number; relevance: string; } export interface VectorStore { embeddings: VectorEmbedding[]; dimension: number; indexType: "flat" | "hnsw" | "ivf"; } /** * Simple text tokenizer for creating embeddings */ export declare class TextTokenizer { /** * Simple word-based tokenization */ tokenize(text: string): string[]; /** * Create TF-IDF vectors */ createTFIDFVector(texts: string[]): Map; /** * Create simple frequency vector */ createFrequencyVector(text: string): Map; } /** * Vector similarity calculations */ export declare class VectorMath { /** * Cosine similarity between two vectors */ static cosineSimilarity(vec1: Map, vec2: Map): number; /** * Euclidean distance between two vectors */ static euclideanDistance(vec1: number[], vec2: number[]): number; /** * Convert Map to array for calculations */ static mapToArray(map: Map, dimension: number): number[]; } /** * Enhanced Memory Manager with Vector Search */ export declare class VectorMemoryManager { private config; private vectorDir; private store; private tokenizer; constructor(config?: Partial); /** * Initialize vector storage */ initialize(): Promise; /** * Load existing vector store */ private loadVectorStore; /** * Save vector store */ private saveVectorStore; /** * Create embedding for a memory entry */ createEmbedding(memory: MemoryEntry): Promise; /** * Add memory with vector embedding */ addMemoryWithVector(memory: MemoryEntry): Promise; /** * Semantic search for memories */ semanticSearch(query: string, options?: { limit?: number; minScore?: number; memoryType?: string; tags?: string[]; }): Promise; /** * Get relevance label for score */ private getRelevanceLabel; /** * Get vector store statistics */ getStats(): { totalEmbeddings: number; dimension: number; indexType: string; averageVectorNorm: number; }; /** * Rebuild vector index (for performance optimization) */ rebuildIndex(): Promise; /** * Export vector data for backup */ exportVectors(format?: "json" | "csv"): Promise; } /** * Context Ranking Engine */ export declare class ContextRanker { /** * Rank memories by relevance to current context */ static rankByRelevance(memories: MemoryEntry[], context: { query?: string; activeFiles?: string[]; currentTask?: string; sessionType?: string; }): MemoryEntry[]; /** * Get explanation for ranking */ static getRankingExplanation(memory: MemoryEntry, score: number): string; }