UNPKG

smart-thinking-mcp

Version:

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

135 lines (134 loc) 5.19 kB
import { Visualization, FilterOptions } from './types'; import { ThoughtGraph } from './thought-graph'; /** * Classe qui génère des visualisations du graphe de pensées */ export declare class Visualizer { private thoughtTypeColors; private connectionTypeColors; /** * Génère une visualisation du graphe de pensées * * @param thoughtGraph Le graphe de pensées à visualiser * @param centerThoughtId Optionnel: l'ID de la pensée centrale (si non spécifié, utilise la plus récente) * @returns Une visualisation du graphe */ generateVisualization(thoughtGraph: ThoughtGraph, centerThoughtId?: string): Visualization; /** * Génère une visualisation chronologique du graphe de pensées * * @param thoughtGraph Le graphe de pensées à visualiser * @returns Une visualisation chronologique du graphe */ generateChronologicalVisualization(thoughtGraph: ThoughtGraph): Visualization; /** * Génère une visualisation thématique du graphe de pensées * * @param thoughtGraph Le graphe de pensées à visualiser * @returns Une visualisation thématique du graphe */ generateThematicVisualization(thoughtGraph: ThoughtGraph): Visualization; /** * Génère une couleur distincte pour un index donné */ private getDistinctColor; /** * Génère des clusters à partir des nœuds du graphe * * @param thoughts Les pensées à regrouper en clusters * @param clusterBy Critère de regroupement ('type', 'theme', 'metric', 'connectivity') * @returns Les clusters générés */ private generateClusters; /** * Génère une visualisation hiérarchique du graphe de pensées * * @param thoughtGraph Le graphe de pensées à visualiser * @param rootId Optionnel: l'ID du nœud racine * @param options Options de visualisation * @returns Une visualisation hiérarchique du graphe */ generateHierarchicalVisualization(thoughtGraph: ThoughtGraph, rootId?: string, options?: { direction?: 'TB' | 'BT' | 'LR' | 'RL'; levelSeparation?: number; clusterBy?: 'type' | 'theme' | 'metric' | 'connectivity'; }): Visualization; /** * Génère une visualisation force-directed du graphe de pensées * * @param thoughtGraph Le graphe de pensées à visualiser * @param options Options de visualisation * @returns Une visualisation force-directed du graphe */ generateForceDirectedVisualization(thoughtGraph: ThoughtGraph, options?: { clusterBy?: 'type' | 'theme' | 'metric' | 'connectivity'; forceStrength?: number; centerNode?: string; }): Visualization; /** * Génère une visualisation radiale du graphe de pensées * * @param thoughtGraph Le graphe de pensées à visualiser * @param centerNodeId Optionnel: l'ID du nœud central (si non spécifié, utilise le nœud avec le plus de connexions) * @param options Options de visualisation * @returns Une visualisation radiale du graphe */ generateRadialVisualization(thoughtGraph: ThoughtGraph, centerNodeId?: string, options?: { maxDepth?: number; radialDistance?: number; }): Visualization; /** * Applique des filtres à une visualisation * * @param visualization La visualisation à filtrer * @param filters Les options de filtrage à appliquer * @returns La visualisation filtrée */ applyFilters(visualization: Visualization, filters: FilterOptions): Visualization; /** * Applique des interactions à une visualisation * * @param visualization La visualisation * @param interaction L'interaction à appliquer * @returns La visualisation mise à jour avec l'interaction */ applyInteraction(visualization: Visualization, interaction: { type: 'highlight' | 'select' | 'expand' | 'collapse' | 'focus'; nodeIds: string[]; }): Visualization; /** * Crée une version simplifiée d'une visualisation pour améliorer les performances * * @param visualization La visualisation à simplifier * @param options Options de simplification * @returns La visualisation simplifiée */ simplifyVisualization(visualization: Visualization, options?: { maxNodes?: number; minNodeImportance?: number; }): Visualization; /** * Génère des métadonnées pour la visualisation * * @param thoughts Les pensées du graphe * @param links Les liens de la visualisation * @param centerThoughtId L'ID de la pensée centrale * @returns Les métadonnées de la visualisation */ private generateMetadata; /** * Tronque un texte à une longueur maximale * * @param text Le texte à tronquer * @param maxLength La longueur maximale * @returns Le texte tronqué */ private truncateText; /** * Extrait les thèmes (mots-clés) des pensées * * @param thoughts Les pensées dont extraire les thèmes * @returns Un tableau de thèmes */ private extractThemes; }