UNPKG

smart-thinking-mcp

Version:

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

138 lines (137 loc) 5.33 kB
import { MemoryItem } from './types'; import { EmbeddingService } from './embedding-service'; /** * Classe qui gère la mémoire persistante des sessions précédentes */ export declare class MemoryManager { private memories; private knowledgeBase; private embeddingService?; private dataDir; private memoriesDir; private knowledgeFilePath; constructor(embeddingService?: EmbeddingService); /** * Fonction de log pour le débogage uniquement * @param message Message à logger */ private debugLog; /** * Génère un identifiant unique */ private generateUniqueId; /** * Assure que les répertoires de stockage nécessaires existent */ private ensureDirectoriesExist; /** * Charge les mémoires et la base de connaissances depuis le stockage persistant */ private loadFromStorage; /** * Charge les mémoires depuis les fichiers dans le répertoire memories * @returns true si au moins une mémoire a été chargée, false sinon */ private loadMemoriesFromFiles; /** * Charge la base de connaissances depuis le fichier knowledge.json * @returns true si la base de connaissances a été chargée, false sinon */ private loadKnowledgeFromFile; /** * Simule la récupération de mémoires sauvegardées * Utilisé comme fallback si aucun fichier n'est disponible */ private getSavedMemories; /** * Simule la récupération de connaissances sauvegardées * Utilisé comme fallback si aucun fichier n'est disponible */ private getSavedKnowledge; /** * Sauvegarde l'état actuel dans le stockage persistant */ private saveToStorage; /** * Ajoute un élément à la mémoire * * @param content Le contenu de l'élément de mémoire * @param tags Les tags associés * @param sessionId L'identifiant de session facultatif * @returns L'identifiant de l'élément ajouté */ addMemory(content: string, tags?: string[], sessionId?: string): string; /** * Récupère un élément de mémoire par son identifiant * * @param id L'identifiant de l'élément * @returns L'élément de mémoire ou undefined si non trouvé */ getMemory(id: string): MemoryItem | undefined; /** * Récupère les éléments de mémoire les plus récents * * @param limit Le nombre maximum d'éléments à récupérer * @param sessionId L'identifiant de session facultatif pour filtrer * @returns Un tableau des éléments les plus récents (filtrés par session) */ getRecentMemories(limit?: number, sessionId?: string): MemoryItem[]; /** * Récupère les éléments de mémoire les plus pertinents pour un contexte donné * AMÉLIORÉ: Fiabilité améliorée et meilleure gestion des erreurs * * @param context Le contexte pour lequel chercher des éléments pertinents * @param limit Le nombre maximum d'éléments à récupérer * @param sessionId L'identifiant de session facultatif pour filtrer * @returns Un tableau des éléments les plus pertinents (filtrés par session) */ getRelevantMemories(context: string, limit?: number, sessionId?: string): Promise<MemoryItem[]>; /** * Implémentation de secours basée sur les mots-clés * * @param context Le contexte pour lequel chercher des éléments pertinents * @param limit Le nombre maximum d'éléments à récupérer * @param sessionId L'identifiant de session facultatif pour filtrer * @returns Un tableau des éléments les plus pertinents (filtrés par session) */ private getRelevantMemoriesWithKeywords; /** * Récupère les éléments de mémoire par tag * * @param tag Le tag à rechercher * @param limit Le nombre maximum d'éléments à récupérer * @param sessionId L'identifiant de session facultatif pour filtrer * @returns Un tableau des éléments correspondant au tag (filtrés par session) */ getMemoriesByTag(tag: string, limit?: number, sessionId?: string): MemoryItem[]; /** * Ajoute ou met à jour un élément dans la base de connaissances * * @param key La clé de l'élément * @param value La valeur de l'élément */ setKnowledge(key: string, value: any): void; /** * Récupère un élément de la base de connaissances * * @param key La clé de l'élément * @returns La valeur de l'élément ou undefined si non trouvé */ getKnowledge(key: string): any; /** * Efface toutes les mémoires et connaissances */ clear(): void; /** * Sauvegarde l'état complet d'un graphe de session dans un fichier dédié. * @param sessionId L'identifiant de la session. * @param graphStateJson La représentation JSON de l'état du graphe. */ saveGraphState(sessionId: string, graphStateJson: string): Promise<void>; /** * Charge l'état complet d'un graphe de session depuis son fichier dédié. * @param sessionId L'identifiant de la session. * @returns Le JSON de l'état du graphe ou null si non trouvé ou en cas d'erreur. */ loadGraphState(sessionId: string): Promise<string | null>; }