UNPKG

mcp-chain-of-draft-server

Version:

A Model Context Protocol server which provides Chain of Draft style thinking

44 lines (43 loc) 1.67 kB
import { SessionManager, InMemorySessionStorage } from './sessionManager.js'; import { logger } from './logging.js'; export class SessionManagerFactory { constructor() { // Initialize session managers with default options const defaultOptions = { maxSessionAge: 24 * 60 * 60 * 1000, // 24 hours maxSessionSize: 5 * 1024 * 1024, // 5MB cleanupIntervalMs: 60 * 60 * 1000 // 1 hour }; this.sessionManagers = { apiBlueprint: new SessionManager(new InMemorySessionStorage(), defaultOptions), adr: new SessionManager(new InMemorySessionStorage(), defaultOptions), codeReview: new SessionManager(new InMemorySessionStorage(), defaultOptions), implementationStrategy: new SessionManager(new InMemorySessionStorage(), defaultOptions) }; logger.info('SessionManagerFactory initialized'); } static getInstance() { if (!SessionManagerFactory.instance) { SessionManagerFactory.instance = new SessionManagerFactory(); } return SessionManagerFactory.instance; } getAPIBlueprintManager() { return this.sessionManagers.apiBlueprint; } getADRManager() { return this.sessionManagers.adr; } getCodeReviewManager() { return this.sessionManagers.codeReview; } getImplementationStrategyManager() { return this.sessionManagers.implementationStrategy; } cleanup() { Object.values(this.sessionManagers).forEach(manager => { manager.destroy(); }); logger.info('All session managers cleaned up'); } }