UNPKG

smart-thinking-mcp

Version:

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

111 lines 4.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServiceContainer = void 0; const verification_memory_1 = require("../verification-memory"); // Importer le service de vérification standard (sans le suffixe -improved) const verification_service_1 = require("./verification-service"); /** * Conteneur de services amélioré pour l'injection de dépendances * Utilise le service de vérification amélioré */ class ServiceContainer { static instance; services = new Map(); /** * Constructeur privé pour implémenter le pattern Singleton */ constructor() { // Initialisation vide - les services seront ajoutés plus tard } /** * Méthode pour obtenir l'instance unique du conteneur */ static getInstance() { if (!ServiceContainer.instance) { ServiceContainer.instance = new ServiceContainer(); } return ServiceContainer.instance; } /** * Initialise et enregistre les services principaux * * @param toolIntegrator L'intégrateur d'outils existant * @param metricsCalculator Le calculateur de métriques existant * @param embeddingService Le service d'embeddings existant */ initializeServices(toolIntegrator, metricsCalculator, embeddingService) { // Enregistrer les services existants this.services.set('toolIntegrator', toolIntegrator); this.services.set('metricsCalculator', metricsCalculator); this.services.set('embeddingService', embeddingService); // Obtenir l'instance singleton de VerificationMemory const verificationMemory = verification_memory_1.VerificationMemory.getInstance(); this.services.set('verificationMemory', verificationMemory); // Injecter le service d'embeddings dans VerificationMemory verificationMemory.setEmbeddingService(embeddingService); // Créer le service de vérification amélioré avec ses dépendances const verificationService = new verification_service_1.VerificationService(toolIntegrator, metricsCalculator, verificationMemory); this.services.set('verificationService', verificationService); console.error('Service Container: Service de vérification amélioré initialisé avec succès'); } /** * Obtient un service par son nom * * @param serviceName Le nom du service * @returns L'instance du service ou null s'il n'existe pas */ getService(serviceName) { const service = this.services.get(serviceName); if (!service) { console.error(`Service Container: Le service "${serviceName}" n'est pas disponible. Vérifiez qu'il a été correctement initialisé.`); return null; } return service; } /** * Obtient le service de vérification * * @returns Le service de vérification */ getVerificationService() { const service = this.getService('verificationService'); if (!service) { throw new Error('Service Container: Le service de vérification n\'est pas disponible. Assurez-vous d\'appeler initializeServices() avant d\'utiliser getVerificationService().'); } return service; } /** * Enregistre un service * * @param serviceName Le nom du service * @param serviceInstance L'instance du service */ registerService(serviceName, serviceInstance) { this.services.set(serviceName, serviceInstance); console.error(`Service Container: Service "${serviceName}" enregistré avec succès`); } /** * Vérifie si un service est disponible * * @param serviceName Le nom du service à vérifier * @returns true si le service est disponible, false sinon */ hasService(serviceName) { return this.services.has(serviceName); } /** * Réinitialise le conteneur de services (utile pour les tests) */ static resetInstance() { ServiceContainer.instance = new ServiceContainer(); } /** * Affiche la liste des services disponibles * Utile pour le débogage */ listServices() { return Array.from(this.services.keys()); } } exports.ServiceContainer = ServiceContainer; //# sourceMappingURL=service-container.js.map