smart-thinking-mcp
Version:
Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif
66 lines • 2.72 kB
JavaScript
;
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