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