/** * @license * Copyright 2025 OSAgent OC * SPDX-License-Identifier: Apache-2.0 */ import type { MemoryCollection, VectorDocument, VectorSearchResult, VectorSearchOptions, CollectionStats, VectorMemoryConfig, EpisodeMemoryEntry, DecisionMemoryEntry, CodePatternEntry, ProblemSolutionEntry } from './types.js'; /** * Vector Memory Service * * Provides semantic search and storage using ChromaDB. * Integrates with EmbeddingService for text-to-vector conversion. * * Collections: * - episodes: Session history and interactions * - decisions: Architecture and design decisions * - code_patterns: Learned coding patterns * - problems_solutions: Bug fixes and solutions */ export declare class VectorMemoryService { private client; private collections; private embeddingService; private readonly chromaUrl; private readonly distanceFunction; private initialized; constructor(config?: VectorMemoryConfig); /** * Initialize connection to ChromaDB and create collections */ initialize(): Promise; /** * Check if ChromaDB is available */ isAvailable(): Promise; /** * Add a document to a collection */ add(collectionName: MemoryCollection, document: VectorDocument): Promise; /** * Add multiple documents to a collection */ addBatch(collectionName: MemoryCollection, documents: VectorDocument[]): Promise; /** * Search for similar documents */ search(collectionName: MemoryCollection, query: string, options?: VectorSearchOptions): Promise; /** * Get a document by ID */ get(collectionName: MemoryCollection, id: string): Promise; /** * Delete a document by ID */ delete(collectionName: MemoryCollection, id: string): Promise; /** * Update a document */ update(collectionName: MemoryCollection, document: VectorDocument): Promise; /** * Get collection statistics */ getStats(collectionName: MemoryCollection): Promise; /** * Clear all documents from a collection */ clear(collectionName: MemoryCollection): Promise; /** * Add an episode to memory */ addEpisode(episode: EpisodeMemoryEntry): Promise; /** * Search for similar episodes */ searchEpisodes(query: string, limit?: number): Promise; /** * Add a decision to memory */ addDecision(decision: DecisionMemoryEntry): Promise; /** * Add a code pattern to memory */ addCodePattern(pattern: CodePatternEntry): Promise; /** * Add a problem-solution to memory */ addProblemSolution(entry: ProblemSolutionEntry): Promise; /** * Ensure service is initialized before operations */ private ensureInitialized; } export declare function getDefaultVectorMemoryService(config?: VectorMemoryConfig): VectorMemoryService;