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
text/typescript
/**
* 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;
}
}