/** * Knowledge Base (RAG) - Retrieval Augmented Generation */ export interface Document { id: string; content: string; metadata?: Record; embedding?: number[]; } export interface SearchResult { document: Document; score: number; } export interface EmbeddingProvider { embed(text: string): Promise; embedBatch(texts: string[]): Promise; } export interface KnowledgeBaseConfig { embeddingProvider?: EmbeddingProvider; similarityThreshold?: number; maxResults?: number; } /** * Simple in-memory vector store for RAG */ export declare class KnowledgeBase { private documents; private embeddingProvider?; private similarityThreshold; private maxResults; constructor(config?: KnowledgeBaseConfig); /** * Add a document to the knowledge base */ add(doc: Omit): Promise; /** * Add multiple documents */ addBatch(docs: Array>): Promise; /** * Get a document by ID */ get(id: string): Document | undefined; /** * Delete a document */ delete(id: string): boolean; /** * Search for similar documents */ search(query: string, limit?: number): Promise; /** * Simple text-based search fallback */ private textSearch; /** * Calculate cosine similarity between two vectors */ private cosineSimilarity; /** * Get all documents */ list(): Document[]; /** * Clear all documents */ clear(): void; /** * Get document count */ get size(): number; /** * Build context from search results for RAG */ buildContext(results: SearchResult[]): string; } /** * Create a knowledge base */ export declare function createKnowledgeBase(config?: KnowledgeBaseConfig): KnowledgeBase;