UNPKG

smart-thinking-mcp

Version:

Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif

66 lines 2.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServiceContainer = void 0; const verification_memory_1 = require("../verification-memory"); const verification_service_1 = require("./verification-service"); /** * Conteneur de services pour l'injection de dependances. * * Note: l'API singleton est conservee pour compatibilite, mais les enregistrements * sont desormais fortement types. */ class ServiceContainer { static instance; services = new Map(); constructor() { // constructeur prive pour conserver le singleton } static getInstance() { if (!ServiceContainer.instance) { ServiceContainer.instance = new ServiceContainer(); } return ServiceContainer.instance; } initializeServices(toolIntegrator, metricsCalculator, similarityEngine) { this.services.clear(); this.services.set('toolIntegrator', toolIntegrator); this.services.set('metricsCalculator', metricsCalculator); this.services.set('similarityEngine', similarityEngine); const verificationMemory = verification_memory_1.VerificationMemory.getInstance(); verificationMemory.setSimilarityEngine(similarityEngine); this.services.set('verificationMemory', verificationMemory); const verificationService = new verification_service_1.VerificationService(toolIntegrator, metricsCalculator, verificationMemory); this.services.set('verificationService', verificationService); console.info('Service Container: service de verification initialise'); } getService(serviceName) { const service = this.services.get(serviceName); if (!service) { console.warn(`Service Container: service indisponible: ${String(serviceName)}`); return null; } return service; } getVerificationService() { const service = this.getService('verificationService'); if (!service) { throw new Error('Service Container: service de verification indisponible. Appelez initializeServices() avant usage.'); } return service; } registerService(serviceName, serviceInstance) { this.services.set(serviceName, serviceInstance); console.info(`Service Container: service enregistre: ${serviceName}`); } hasService(serviceName) { return this.services.has(serviceName); } static resetInstance() { ServiceContainer.instance = new ServiceContainer(); } listServices() { return Array.from(this.services.keys(), key => String(key)); } } exports.ServiceContainer = ServiceContainer; //# sourceMappingURL=service-container.js.map