UNPKG

memory-engineering

Version:

Advanced Memory-Aware Code Context System with claude-flow-inspired architecture, showcasing MongoDB + Voyage AI strategic positioning

51 lines (41 loc) 1.44 kB
/** * Memory System Factory * Creates memory manager instances following claude-flow patterns */ import { MemoryManager, IMemoryManager } from './memory-manager.js'; import { MemoryBackendConfig } from './backend-interface.js'; export function createMemoryManager(): IMemoryManager { const provider = process.env.MONGODB_PROVIDER || 'community'; let connectionString: string; if (provider === 'atlas') { connectionString = process.env.MONGODB_URI || ''; if (!connectionString) { throw new Error('MONGODB_URI required for Atlas provider'); } } else { connectionString = process.env.MONGODB_URI || 'mongodb://localhost:27017/memory_engineering'; } const config: MemoryBackendConfig = { provider: provider as 'mongodb-atlas' | 'mongodb-community', connectionString, databaseName: 'memory_engineering', collectionName: 'memories', enableIndexes: true, enableMetrics: true }; return new MemoryManager(config); } let globalMemoryManager: IMemoryManager | undefined; export async function getMemoryManager(): Promise<IMemoryManager> { if (!globalMemoryManager) { globalMemoryManager = createMemoryManager(); await globalMemoryManager.initialize(); } return globalMemoryManager; } export async function shutdownMemoryManager(): Promise<void> { if (globalMemoryManager) { await globalMemoryManager.shutdown(); globalMemoryManager = undefined; } }