smart-thinking-mcp
Version:
Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif
138 lines (137 loc) • 5.33 kB
TypeScript
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>;
}