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