smart-thinking-mcp 8.0.2 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -111,21 +111,28 @@ const embeddingService = new embedding_service_1.EmbeddingService(COHERE_API_KEY
111
111
  const metricsCalculator = new metrics_calculator_1.MetricsCalculator();
112
112
  const qualityEvaluator = new quality_evaluator_1.QualityEvaluator();
113
113
  const toolIntegrator = new tool_integrator_1.ToolIntegrator();
114
- const thoughtGraph = new thought_graph_1.ThoughtGraph(undefined, embeddingService, qualityEvaluator);
115
- const memoryManager = new memory_manager_1.MemoryManager(embeddingService);
116
- const visualizer = new visualizer_1.Visualizer();
117
- const verificationMemory = verification_memory_1.VerificationMemory.getInstance();
118
- // Configuration des dépendances
119
- verificationMemory.setEmbeddingService(embeddingService);
114
+ // Note: ThoughtGraph and MemoryManager instances are typically created per request or session
115
+ // For simplicity in this example, we'll manage session context within the handler.
116
+ // A more robust implementation might use a factory or manage instances per session ID.
117
+ const globalEmbeddingService = embeddingService; // Keep a global instance
118
+ const globalQualityEvaluator = qualityEvaluator; // Keep a global instance
119
+ const globalToolIntegrator = toolIntegrator; // Keep a global instance
120
+ const globalMetricsCalculator = metricsCalculator; // Keep a global instance
121
+ // Get ServiceContainer instance first
120
122
  const serviceContainer = service_container_1.ServiceContainer.getInstance();
121
- serviceContainer.initializeServices(toolIntegrator, metricsCalculator, embeddingService);
122
- const verificationService = serviceContainer.getVerificationService();
123
- qualityEvaluator.setVerificationService(verificationService);
124
- // Configuration des écouteurs d'événements - mode silencieux
125
- thoughtGraph.on('calculations-verified', (data) => {
126
- // Console de débogage désactivée pour éviter les messages en rouge
127
- // console.error(`Smart-Thinking: Calculs vérifiés pour la pensée ${data.thoughtId}`);
128
- });
123
+ // Initialize services if not already done (assuming initializeServices handles idempotency or is called only once)
124
+ serviceContainer.initializeServices(globalToolIntegrator, globalMetricsCalculator, globalEmbeddingService);
125
+ // Now get the verification service
126
+ const globalVerificationService = serviceContainer.getVerificationService();
127
+ const globalMemoryManager = new memory_manager_1.MemoryManager(globalEmbeddingService); // Global memory manager for persistence
128
+ const visualizer = new visualizer_1.Visualizer(); // Visualizer can likely remain global
129
+ const verificationMemory = verification_memory_1.VerificationMemory.getInstance(); // Singleton
130
+ // Configuration des dépendances (assurez-vous que les services globaux sont configurés)
131
+ verificationMemory.setEmbeddingService(globalEmbeddingService);
132
+ // Ensure quality evaluator uses the correct verification service instance
133
+ globalQualityEvaluator.setVerificationService(globalVerificationService);
134
+ // Note: Event listeners on a per-session graph would need careful management.
135
+ // For this fix, we'll assume events are handled within the request lifecycle or globally if appropriate.
129
136
  // Créer une instance du serveur MCP
130
137
  const server = new mcp_js_1.McpServer({
131
138
  name: "smart-thinking-mcp",
@@ -327,13 +334,44 @@ generateVisualization: true
327
334
  ]
328
335
  };
329
336
  }
330
- // console.error('Smart-Thinking: traitement de la pensée:', params.thought);
337
+ // console.error('Smart-Thinking: traitement de la pensée pour session:', params.sessionId || 'default');
338
+ // --- Session Management & State Loading ---
339
+ const currentSessionId = params.sessionId || 'default';
340
+ const memoryManager = globalMemoryManager; // Use global manager for persistence
341
+ // Create a new graph instance for the session
342
+ const sessionThoughtGraph = new thought_graph_1.ThoughtGraph(currentSessionId, globalEmbeddingService, globalQualityEvaluator);
343
+ // Attempt to load previous graph state for this session
344
+ const loadedStateJson = await memoryManager.loadGraphState(currentSessionId);
345
+ if (loadedStateJson) {
346
+ const importSuccess = sessionThoughtGraph.importEnrichedGraph(loadedStateJson);
347
+ if (importSuccess) {
348
+ console.error(`Smart-Thinking [${currentSessionId}]: État du graphe précédent chargé avec succès.`);
349
+ }
350
+ else {
351
+ console.error(`Smart-Thinking [${currentSessionId}]: Échec du chargement/parsing de l'état du graphe précédent.`);
352
+ // Continue with an empty graph for this session
353
+ }
354
+ }
355
+ else {
356
+ console.error(`Smart-Thinking [${currentSessionId}]: Aucun état de graphe précédent trouvé, nouvelle session de graphe démarrée.`);
357
+ }
358
+ // Use global services (assuming they are stateless or manage their own state)
359
+ // Use the global memoryManager instance directly
360
+ const verificationService = globalVerificationService;
361
+ const qualityEvaluator = globalQualityEvaluator; // Use global
362
+ // const memoryManager = globalMemoryManager; // REMOVED local redeclaration
363
+ const metricsCalculator = globalMetricsCalculator; // Use global
364
+ const toolIntegrator = globalToolIntegrator; // Use global
331
365
  // Traitement de la pensée
332
366
  const preliminaryResult = await verificationService.performPreliminaryVerification(params.thought, !!params.containsCalculations);
333
- const thoughtId = thoughtGraph.addThought(preliminaryResult.preverifiedThought, params.thoughtType, params.connections);
334
- // Évaluation de la qualité
335
- const qualityMetrics = qualityEvaluator.evaluate(thoughtId, thoughtGraph);
336
- thoughtGraph.updateThoughtMetrics(thoughtId, qualityMetrics);
367
+ // Add thought to the session-specific graph instance
368
+ const thoughtId = sessionThoughtGraph.addThought(preliminaryResult.preverifiedThought, params.thoughtType, params.connections
369
+ // Note: addThought now implicitly uses the graph's sessionId
370
+ );
371
+ // Évaluation de la qualité (maintenant asynchrone) using the session graph
372
+ const qualityMetrics = await qualityEvaluator.evaluate(thoughtId, sessionThoughtGraph);
373
+ // Update metrics on the session graph instance
374
+ sessionThoughtGraph.updateThoughtMetrics(thoughtId, qualityMetrics);
337
375
  // Détermination du statut de vérification
338
376
  let verificationStatus = 'unverified';
339
377
  let certaintySummary = "Information non vérifiée";
@@ -383,12 +421,13 @@ generateVisualization: true
383
421
  response.reliabilityScore = (qualityMetrics.confidence * 0.7) + (calculationAccuracy * 0.3);
384
422
  }
385
423
  }
386
- // Vérification des informations précédemment vérifiées
387
- const thought = thoughtGraph.getThought(thoughtId);
424
+ // Vérification des informations précédemment vérifiées (using session ID)
425
+ const thought = sessionThoughtGraph.getThought(thoughtId); // Get from session graph
388
426
  // Récupérer les IDs des pensées connectées
389
427
  const connectedThoughtIds = params.connections?.map(conn => conn.targetId) || [];
390
428
  // Appel amélioré avec type de pensée et connexions
391
- const previousResult = await verificationService.checkPreviousVerification(thought?.content || params.thought, params.sessionId || 'default', params.thoughtType || 'regular', connectedThoughtIds);
429
+ const previousResult = await verificationService.checkPreviousVerification(thought?.content || params.thought, currentSessionId, // Pass current session ID
430
+ params.thoughtType || 'regular', connectedThoughtIds);
392
431
  if (previousResult.previousVerification) {
393
432
  response.isVerified = previousResult.isVerified;
394
433
  response.verificationStatus = previousResult.verificationStatus;
@@ -396,6 +435,7 @@ generateVisualization: true
396
435
  response.verification = previousResult.verification;
397
436
  response.reliabilityScore = metricsCalculator.calculateReliabilityScore(qualityMetrics, previousResult.verificationStatus, preliminaryResult.verifiedCalculations, response.reliabilityScore // Utiliser le score déjà calculé comme référence
398
437
  );
438
+ // Update the thought within the session graph instance
399
439
  if (thought) {
400
440
  thought.metadata.previousVerification = {
401
441
  similarity: previousResult.previousVerification.similarity,
@@ -406,13 +446,15 @@ generateVisualization: true
406
446
  }
407
447
  }
408
448
  // Vérification approfondie si nécessaire
449
+ // Ensure qualityMetrics is awaited before accessing its properties
409
450
  if ((qualityMetrics.confidence < config_1.VerificationConfig.CONFIDENCE.VERIFICATION_REQUIRED || params.requestVerification) && !previousResult.previousVerification) {
410
451
  // Débogage silencieux
411
- // console.error('Smart-Thinking: Confiance faible ou vérification demandée, vérification complète nécessaire...');
452
+ // console.error(`Smart-Thinking [${currentSessionId}]: Confiance faible ou vérification demandée, vérification complète nécessaire...`);
412
453
  try {
413
- if (thought) {
454
+ if (thought) { // Ensure thought exists in session graph
414
455
  response.verificationStatus = 'verification_in_progress';
415
- const verification = await verificationService.deepVerify(thought, params.containsCalculations || false, false, params.sessionId || 'default');
456
+ const verification = await verificationService.deepVerify(thought, params.containsCalculations || false, false, currentSessionId // Pass current session ID
457
+ );
416
458
  response.verification = verification;
417
459
  response.isVerified = verification.status === 'verified' ||
418
460
  verification.status === 'partially_verified' ||
@@ -423,7 +465,8 @@ generateVisualization: true
423
465
  response.certaintySummary = metricsCalculator.generateCertaintySummary(verification.status, response.reliabilityScore);
424
466
  if (verification.verifiedCalculations && verification.verifiedCalculations.length > 0) {
425
467
  response.thought = verificationService.annotateThoughtWithVerifications(response.thought, verification.verifiedCalculations);
426
- thoughtGraph.updateThoughtContent(thoughtId, response.thought);
468
+ // Update content in the session graph instance
469
+ sessionThoughtGraph.updateThoughtContent(thoughtId, response.thought);
427
470
  }
428
471
  }
429
472
  }
@@ -431,44 +474,53 @@ generateVisualization: true
431
474
  // Suppression des logs d'erreur
432
475
  // console.error('Smart-Thinking: Erreur lors de la vérification complète:', error);
433
476
  response.verificationStatus = 'inconclusive';
477
+ // Ensure qualityMetrics is awaited before accessing its properties here too
434
478
  response.certaintySummary = `Erreur lors de la vérification: ${error instanceof Error ? error.message : 'Erreur inconnue'}. Niveau de confiance: ${Math.round(qualityMetrics.confidence * 100)}%.`;
435
479
  }
436
480
  }
437
481
  // Fonctionnalités additionnelles selon les paramètres
438
482
  if (params.suggestTools) {
439
- response.suggestedTools = toolIntegrator.suggestTools(params.thought);
483
+ // suggestTools is now async
484
+ response.suggestedTools = await toolIntegrator.suggestTools(params.thought); // Tool suggestions are likely context-dependent, not session-dependent
440
485
  }
441
- // Génération de visualisation si demandée
486
+ // Génération de visualisation si demandée (using session graph)
442
487
  if (params.generateVisualization) {
443
488
  try {
444
489
  const visualizationType = params.visualizationType || 'graph';
445
490
  const visualizationOptions = params.visualizationOptions || {};
491
+ // Pass the session-specific graph to the visualizer methods
446
492
  const generateVisualizationAsync = async () => {
447
493
  switch (visualizationType) {
448
494
  case 'chronological':
449
- return await Promise.resolve(visualizer.generateChronologicalVisualization(thoughtGraph));
495
+ // Pass session graph
496
+ return await Promise.resolve(visualizer.generateChronologicalVisualization(sessionThoughtGraph));
450
497
  case 'thematic':
451
- return await Promise.resolve(visualizer.generateThematicVisualization(thoughtGraph));
498
+ // Pass session graph
499
+ return await Promise.resolve(visualizer.generateThematicVisualization(sessionThoughtGraph));
452
500
  case 'hierarchical':
453
- return await Promise.resolve(visualizer.generateHierarchicalVisualization(thoughtGraph, visualizationOptions.centerNode, {
501
+ // Pass session graph
502
+ return await Promise.resolve(visualizer.generateHierarchicalVisualization(sessionThoughtGraph, visualizationOptions.centerNode, {
454
503
  direction: visualizationOptions.direction,
455
504
  levelSeparation: 100,
456
505
  clusterBy: visualizationOptions.clusterBy
457
506
  }));
458
507
  case 'force':
459
- return await Promise.resolve(visualizer.generateForceDirectedVisualization(thoughtGraph, {
508
+ // Pass session graph
509
+ return await Promise.resolve(visualizer.generateForceDirectedVisualization(sessionThoughtGraph, {
460
510
  clusterBy: visualizationOptions.clusterBy,
461
511
  forceStrength: 0.5,
462
512
  centerNode: visualizationOptions.centerNode
463
513
  }));
464
514
  case 'radial':
465
- return await Promise.resolve(visualizer.generateRadialVisualization(thoughtGraph, visualizationOptions.centerNode, {
515
+ // Pass session graph
516
+ return await Promise.resolve(visualizer.generateRadialVisualization(sessionThoughtGraph, visualizationOptions.centerNode, {
466
517
  maxDepth: visualizationOptions.maxDepth,
467
518
  radialDistance: 120
468
519
  }));
469
520
  case 'graph':
470
521
  default:
471
- return await Promise.resolve(visualizer.generateVisualization(thoughtGraph, thoughtId));
522
+ // Pass session graph
523
+ return await Promise.resolve(visualizer.generateVisualization(sessionThoughtGraph, thoughtId));
472
524
  }
473
525
  };
474
526
  response.visualization = await generateVisualizationAsync();
@@ -484,20 +536,27 @@ generateVisualization: true
484
536
  // console.error('Smart-Thinking: Erreur lors de la génération de la visualisation:', error);
485
537
  }
486
538
  }
487
- // Récupération des mémoires et suggestions
488
- const relevantMemoriesPromise = memoryManager.getRelevantMemories(params.thought);
489
- response.suggestedNextSteps = thoughtGraph.suggestNextSteps();
539
+ // Récupération des mémoires et suggestions (pass session ID) using globalMemoryManager
540
+ const relevantMemoriesPromise = globalMemoryManager.getRelevantMemories(params.thought, 3, currentSessionId);
541
+ // Pass session ID to suggestNextSteps
542
+ response.suggestedNextSteps = await sessionThoughtGraph.suggestNextSteps(3, currentSessionId);
490
543
  response.relevantMemories = await relevantMemoriesPromise;
491
- // Stockage de la pensée dans la mémoire si sa qualité est suffisante
544
+ // Stockage de la pensée dans la mémoire (pass session ID)
492
545
  if (response.qualityMetrics.quality > 0.7) {
493
546
  const tags = params.thought
494
547
  .toLowerCase()
495
548
  .split(/\W+/)
496
549
  .filter((word) => word.length > 4)
497
550
  .slice(0, 5);
498
- memoryManager.addMemory(params.thought, tags);
551
+ // Pass session ID when adding memory using globalMemoryManager
552
+ globalMemoryManager.addMemory(params.thought, tags, currentSessionId);
499
553
  }
500
- // console.error('Smart-Thinking: pensée traitée avec succès, id:', thoughtId);
554
+ // console.error(`Smart-Thinking [${currentSessionId}]: pensée traitée avec succès, id:`, thoughtId);
555
+ // --- State Saving ---
556
+ // Export and save the updated graph state before returning using globalMemoryManager
557
+ const currentStateJson = sessionThoughtGraph.exportEnrichedGraph();
558
+ await globalMemoryManager.saveGraphState(currentSessionId, currentStateJson);
559
+ console.error(`Smart-Thinking [${currentSessionId}]: État actuel du graphe sauvegardé.`);
501
560
  // Retour de la réponse formatée pour MCP
502
561
  return {
503
562
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -57,9 +57,10 @@ export declare class MemoryManager {
57
57
  *
58
58
  * @param content Le contenu de l'élément de mémoire
59
59
  * @param tags Les tags associés
60
+ * @param sessionId L'identifiant de session facultatif
60
61
  * @returns L'identifiant de l'élément ajouté
61
62
  */
62
- addMemory(content: string, tags?: string[]): string;
63
+ addMemory(content: string, tags?: string[], sessionId?: string): string;
63
64
  /**
64
65
  * Récupère un élément de mémoire par son identifiant
65
66
  *
@@ -71,24 +72,27 @@ export declare class MemoryManager {
71
72
  * Récupère les éléments de mémoire les plus récents
72
73
  *
73
74
  * @param limit Le nombre maximum d'éléments à récupérer
74
- * @returns Un tableau des éléments les plus récents
75
+ * @param sessionId L'identifiant de session facultatif pour filtrer
76
+ * @returns Un tableau des éléments les plus récents (filtrés par session)
75
77
  */
76
- getRecentMemories(limit?: number): MemoryItem[];
78
+ getRecentMemories(limit?: number, sessionId?: string): MemoryItem[];
77
79
  /**
78
80
  * Récupère les éléments de mémoire les plus pertinents pour un contexte donné
79
81
  * AMÉLIORÉ: Fiabilité améliorée et meilleure gestion des erreurs
80
82
  *
81
83
  * @param context Le contexte pour lequel chercher des éléments pertinents
82
84
  * @param limit Le nombre maximum d'éléments à récupérer
83
- * @returns Un tableau des éléments les plus pertinents
85
+ * @param sessionId L'identifiant de session facultatif pour filtrer
86
+ * @returns Un tableau des éléments les plus pertinents (filtrés par session)
84
87
  */
85
- getRelevantMemories(context: string, limit?: number): Promise<MemoryItem[]>;
88
+ getRelevantMemories(context: string, limit?: number, sessionId?: string): Promise<MemoryItem[]>;
86
89
  /**
87
90
  * Implémentation de secours basée sur les mots-clés
88
91
  *
89
92
  * @param context Le contexte pour lequel chercher des éléments pertinents
90
93
  * @param limit Le nombre maximum d'éléments à récupérer
91
- * @returns Un tableau des éléments les plus pertinents
94
+ * @param sessionId L'identifiant de session facultatif pour filtrer
95
+ * @returns Un tableau des éléments les plus pertinents (filtrés par session)
92
96
  */
93
97
  private getRelevantMemoriesWithKeywords;
94
98
  /**
@@ -96,9 +100,10 @@ export declare class MemoryManager {
96
100
  *
97
101
  * @param tag Le tag à rechercher
98
102
  * @param limit Le nombre maximum d'éléments à récupérer
99
- * @returns Un tableau des éléments correspondant au tag
103
+ * @param sessionId L'identifiant de session facultatif pour filtrer
104
+ * @returns Un tableau des éléments correspondant au tag (filtrés par session)
100
105
  */
101
- getMemoriesByTag(tag: string, limit?: number): MemoryItem[];
106
+ getMemoriesByTag(tag: string, limit?: number, sessionId?: string): MemoryItem[];
102
107
  /**
103
108
  * Ajoute ou met à jour un élément dans la base de connaissances
104
109
  *
@@ -117,4 +122,16 @@ export declare class MemoryManager {
117
122
  * Efface toutes les mémoires et connaissances
118
123
  */
119
124
  clear(): void;
125
+ /**
126
+ * Sauvegarde l'état complet d'un graphe de session dans un fichier dédié.
127
+ * @param sessionId L'identifiant de la session.
128
+ * @param graphStateJson La représentation JSON de l'état du graphe.
129
+ */
130
+ saveGraphState(sessionId: string, graphStateJson: string): Promise<void>;
131
+ /**
132
+ * Charge l'état complet d'un graphe de session depuis son fichier dédié.
133
+ * @param sessionId L'identifiant de la session.
134
+ * @returns Le JSON de l'état du graphe ou null si non trouvé ou en cas d'erreur.
135
+ */
136
+ loadGraphState(sessionId: string): Promise<string | null>;
120
137
  }
@@ -307,15 +307,19 @@ class MemoryManager {
307
307
  *
308
308
  * @param content Le contenu de l'élément de mémoire
309
309
  * @param tags Les tags associés
310
+ * @param sessionId L'identifiant de session facultatif
310
311
  * @returns L'identifiant de l'élément ajouté
311
312
  */
312
- addMemory(content, tags = []) {
313
+ addMemory(content, tags = [], sessionId) {
313
314
  const id = this.generateUniqueId();
314
315
  const memory = {
315
316
  id,
316
317
  content,
317
318
  tags,
318
- timestamp: new Date()
319
+ timestamp: new Date(),
320
+ metadata: {
321
+ sessionId: sessionId || 'default' // Use 'default' if no session ID provided
322
+ }
319
323
  };
320
324
  this.memories.set(id, memory);
321
325
  this.saveToStorage();
@@ -334,10 +338,15 @@ class MemoryManager {
334
338
  * Récupère les éléments de mémoire les plus récents
335
339
  *
336
340
  * @param limit Le nombre maximum d'éléments à récupérer
337
- * @returns Un tableau des éléments les plus récents
341
+ * @param sessionId L'identifiant de session facultatif pour filtrer
342
+ * @returns Un tableau des éléments les plus récents (filtrés par session)
338
343
  */
339
- getRecentMemories(limit = 5) {
340
- return Array.from(this.memories.values())
344
+ getRecentMemories(limit = 5, sessionId) {
345
+ const allMemories = Array.from(this.memories.values());
346
+ const filteredMemories = sessionId
347
+ ? allMemories.filter(m => m.metadata?.sessionId === sessionId)
348
+ : allMemories.filter(m => !m.metadata?.sessionId || m.metadata?.sessionId === 'default'); // Include default session if no ID specified
349
+ return filteredMemories
341
350
  .sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime())
342
351
  .slice(0, limit);
343
352
  }
@@ -347,37 +356,43 @@ class MemoryManager {
347
356
  *
348
357
  * @param context Le contexte pour lequel chercher des éléments pertinents
349
358
  * @param limit Le nombre maximum d'éléments à récupérer
350
- * @returns Un tableau des éléments les plus pertinents
359
+ * @param sessionId L'identifiant de session facultatif pour filtrer
360
+ * @returns Un tableau des éléments les plus pertinents (filtrés par session)
351
361
  */
352
- async getRelevantMemories(context, limit = 3) {
362
+ async getRelevantMemories(context, limit = 3, sessionId) {
363
+ // Filter memories by session first
353
364
  const allMemories = Array.from(this.memories.values());
354
- // Vérifier si nous avons des mémoires à traiter
355
- if (allMemories.length === 0) {
365
+ const sessionMemories = sessionId
366
+ ? allMemories.filter(m => m.metadata?.sessionId === sessionId)
367
+ : allMemories.filter(m => !m.metadata?.sessionId || m.metadata?.sessionId === 'default'); // Include default session if no ID specified
368
+ // Vérifier si nous avons des mémoires à traiter dans cette session
369
+ if (sessionMemories.length === 0) {
356
370
  this.debugLog('Aucune mémoire disponible pour la recherche de pertinence');
357
371
  return [];
358
372
  }
359
- // Si nous n'avons pas de service d'embeddings, utiliser l'algorithme de base
373
+ // Si nous n'avons pas de service d'embeddings, utiliser l'algorithme de base sur les mémoires de la session
360
374
  if (!this.embeddingService) {
361
- this.debugLog('Service d\'embeddings non disponible, utilisation de l\'algorithme de mots-clés');
362
- return this.getRelevantMemoriesWithKeywords(context, limit);
375
+ this.debugLog('Service d\'embeddings non disponible, utilisation de l\'algorithme de mots-clés pour la session');
376
+ return this.getRelevantMemoriesWithKeywords(context, limit, sessionId);
363
377
  }
364
378
  try {
365
- // Utiliser le service d'embeddings pour trouver les mémoires similaires
366
- const memoryTexts = allMemories.map(memory => memory.content);
379
+ // Utiliser le service d'embeddings pour trouver les mémoires similaires DANS LA SESSION
380
+ const memoryTexts = sessionMemories.map(memory => memory.content);
367
381
  this.debugLog(`Recherche de mémoires pertinentes parmi ${memoryTexts.length} éléments avec embeddings`);
368
382
  // Utiliser un seuil de similarité plus bas pour augmenter les chances de trouver des correspondances
369
383
  const threshold = 0.3; // Seuil de similarité plus bas
370
384
  const similarResults = await this.embeddingService.findSimilarTexts(context, memoryTexts, limit, threshold);
371
385
  this.debugLog(`${similarResults.length} résultats similaires trouvés avec embeddings`);
372
386
  if (similarResults.length === 0) {
373
- // Aucun résultat avec embeddings, essayer avec mots-clés
374
- this.debugLog('Aucun résultat avec embeddings, utilisation des mots-clés');
375
- return this.getRelevantMemoriesWithKeywords(context, limit);
387
+ // Aucun résultat avec embeddings dans la session, essayer avec mots-clés pour la session
388
+ this.debugLog('Aucun résultat avec embeddings pour la session, utilisation des mots-clés pour la session');
389
+ return this.getRelevantMemoriesWithKeywords(context, limit, sessionId);
376
390
  }
377
- // Convertir les résultats en mémoires
391
+ // Convertir les résultats en mémoires (en s'assurant qu'ils proviennent de la session)
378
392
  const memoryResults = [];
379
393
  for (const result of similarResults) {
380
- const matchingMemory = allMemories.find(memory => memory.content === result.text);
394
+ // Find the matching memory within the session memories
395
+ const matchingMemory = sessionMemories.find(memory => memory.content === result.text);
381
396
  if (matchingMemory) {
382
397
  // Créer une copie avec le score de pertinence
383
398
  memoryResults.push({
@@ -392,8 +407,8 @@ class MemoryManager {
392
407
  catch (error) {
393
408
  // Log d'erreur important - garder
394
409
  console.error('Smart-Thinking: Erreur lors de la recherche de mémoires pertinentes avec embeddings:', error);
395
- // En cas d'erreur, revenir à l'algorithme basé sur les mots-clés
396
- return this.getRelevantMemoriesWithKeywords(context, limit);
410
+ // En cas d'erreur, revenir à l'algorithme basé sur les mots-clés pour la session
411
+ return this.getRelevantMemoriesWithKeywords(context, limit, sessionId);
397
412
  }
398
413
  }
399
414
  /**
@@ -401,12 +416,20 @@ class MemoryManager {
401
416
  *
402
417
  * @param context Le contexte pour lequel chercher des éléments pertinents
403
418
  * @param limit Le nombre maximum d'éléments à récupérer
404
- * @returns Un tableau des éléments les plus pertinents
419
+ * @param sessionId L'identifiant de session facultatif pour filtrer
420
+ * @returns Un tableau des éléments les plus pertinents (filtrés par session)
405
421
  */
406
- getRelevantMemoriesWithKeywords(context, limit = 3) {
407
- // Une implémentation simple basée sur la correspondance de mots-clés
422
+ getRelevantMemoriesWithKeywords(context, limit = 3, sessionId) {
423
+ // Filter memories by session first
424
+ const allMemories = Array.from(this.memories.values());
425
+ const sessionMemories = sessionId
426
+ ? allMemories.filter(m => m.metadata?.sessionId === sessionId)
427
+ : allMemories.filter(m => !m.metadata?.sessionId || m.metadata?.sessionId === 'default');
428
+ if (sessionMemories.length === 0)
429
+ return [];
430
+ // Une implémentation simple basée sur la correspondance de mots-clés DANS LA SESSION
408
431
  const contextWords = context.toLowerCase().split(/\W+/).filter(word => word.length > 3);
409
- return Array.from(this.memories.values())
432
+ return sessionMemories
410
433
  .map(memory => {
411
434
  const memoryWords = memory.content.toLowerCase().split(/\W+/).filter(word => word.length > 3);
412
435
  const memoryTagWords = memory.tags.join(' ').toLowerCase().split(/\W+/).filter(word => word.length > 3);
@@ -437,11 +460,15 @@ class MemoryManager {
437
460
  *
438
461
  * @param tag Le tag à rechercher
439
462
  * @param limit Le nombre maximum d'éléments à récupérer
440
- * @returns Un tableau des éléments correspondant au tag
463
+ * @param sessionId L'identifiant de session facultatif pour filtrer
464
+ * @returns Un tableau des éléments correspondant au tag (filtrés par session)
441
465
  */
442
- getMemoriesByTag(tag, limit = 10) {
443
- return Array.from(this.memories.values())
444
- .filter(memory => memory.tags.includes(tag))
466
+ getMemoriesByTag(tag, limit = 10, sessionId) {
467
+ const allMemories = Array.from(this.memories.values());
468
+ const filteredMemories = sessionId
469
+ ? allMemories.filter(m => m.metadata?.sessionId === sessionId && m.tags.includes(tag))
470
+ : allMemories.filter(m => (!m.metadata?.sessionId || m.metadata?.sessionId === 'default') && m.tags.includes(tag));
471
+ return filteredMemories
445
472
  .sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime())
446
473
  .slice(0, limit);
447
474
  }
@@ -472,6 +499,49 @@ class MemoryManager {
472
499
  this.knowledgeBase.clear();
473
500
  this.saveToStorage();
474
501
  }
502
+ /**
503
+ * Sauvegarde l'état complet d'un graphe de session dans un fichier dédié.
504
+ * @param sessionId L'identifiant de la session.
505
+ * @param graphStateJson La représentation JSON de l'état du graphe.
506
+ */
507
+ async saveGraphState(sessionId, graphStateJson) {
508
+ try {
509
+ await this.ensureDirectoriesExist(); // Assure que le répertoire data existe
510
+ const filePath = path_1.default.join(this.dataDir, `graph_state_${sessionId}.json`);
511
+ await fs_1.promises.writeFile(filePath, graphStateJson, 'utf8');
512
+ this.debugLog(`État du graphe pour la session ${sessionId} sauvegardé dans ${filePath}`);
513
+ }
514
+ catch (error) {
515
+ console.error(`Smart-Thinking: Erreur lors de la sauvegarde de l'état du graphe pour la session ${sessionId}:`, error);
516
+ // Ne pas bloquer l'exécution principale si la sauvegarde échoue, mais logger l'erreur.
517
+ }
518
+ }
519
+ /**
520
+ * Charge l'état complet d'un graphe de session depuis son fichier dédié.
521
+ * @param sessionId L'identifiant de la session.
522
+ * @returns Le JSON de l'état du graphe ou null si non trouvé ou en cas d'erreur.
523
+ */
524
+ async loadGraphState(sessionId) {
525
+ try {
526
+ await this.ensureDirectoriesExist(); // Assure que le répertoire data existe
527
+ const filePath = path_1.default.join(this.dataDir, `graph_state_${sessionId}.json`);
528
+ // Vérifier si le fichier existe avant de tenter de le lire
529
+ try {
530
+ await fs_1.promises.access(filePath, fs_1.promises.constants.R_OK);
531
+ }
532
+ catch (accessError) {
533
+ this.debugLog(`Aucun état de graphe sauvegardé trouvé pour la session ${sessionId} à ${filePath}`);
534
+ return null; // Fichier non trouvé ou inaccessible
535
+ }
536
+ const graphStateJson = await fs_1.promises.readFile(filePath, 'utf8');
537
+ this.debugLog(`État du graphe pour la session ${sessionId} chargé depuis ${filePath}`);
538
+ return graphStateJson;
539
+ }
540
+ catch (error) {
541
+ console.error(`Smart-Thinking: Erreur lors du chargement de l'état du graphe pour la session ${sessionId}:`, error);
542
+ return null; // Retourner null en cas d'erreur de lecture ou de parsing
543
+ }
544
+ }
475
545
  }
476
546
  exports.MemoryManager = MemoryManager;
477
547
  //# sourceMappingURL=memory-manager.js.map