UNPKG

smart-thinking-mcp

Version:

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

93 lines 6.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FetchParamsSchema = exports.SearchParamsSchema = exports.SmartThinkingParamsSchema = exports.VisualizationTypeEnum = exports.ConnectionTypeEnum = exports.ThoughtTypeEnum = void 0; const zod_1 = require("zod"); exports.ThoughtTypeEnum = zod_1.z.enum(['regular', 'revision', 'meta', 'hypothesis', 'conclusion']); exports.ConnectionTypeEnum = zod_1.z.enum([ 'supports', 'contradicts', 'refines', 'branches', 'derives', 'associates', 'exemplifies', 'generalizes', 'compares', 'contrasts', 'questions', 'extends', 'analyzes', 'synthesizes', 'applies', 'evaluates', 'cites', 'extended-by', 'analyzed-by', 'component-of', 'applied-by', 'evaluated-by', 'cited-by' ]); const TemporalityEnum = zod_1.z.enum(['before', 'after', 'during', 'concurrent']); const CertaintyEnum = zod_1.z.enum(['definite', 'high', 'moderate', 'low', 'speculative']); const DirectionalityEnum = zod_1.z.enum(['unidirectional', 'bidirectional', 'multidirectional']); const ScopeEnum = zod_1.z.enum(['broad', 'specific', 'partial', 'complete']); const NatureEnum = zod_1.z.enum(['causal', 'correlational', 'sequential', 'hierarchical', 'associative']); exports.VisualizationTypeEnum = zod_1.z.enum(['graph', 'chronological', 'thematic', 'hierarchical', 'force', 'radial']); const ClusterByEnum = zod_1.z.enum(['type', 'theme', 'metric', 'connectivity']); const DirectionEnum = zod_1.z.enum(['LR', 'RL', 'TB', 'BT']); const ConnectionAttributesSchema = zod_1.z.object({ temporality: TemporalityEnum.optional(), certainty: CertaintyEnum.optional(), directionality: DirectionalityEnum.optional(), scope: ScopeEnum.optional(), nature: NatureEnum.optional(), customAttributes: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }); const ConnectionSchema = zod_1.z.object({ targetId: zod_1.z.string().describe('ID de la pensee cible'), type: exports.ConnectionTypeEnum.describe('Type de connexion'), strength: zod_1.z.number().min(0).max(1).describe('Force de la connexion (0 a 1)'), description: zod_1.z.string().optional().describe('Description optionnelle de la connexion'), attributes: ConnectionAttributesSchema.optional(), inferred: zod_1.z.boolean().optional().describe('Si la connexion a ete inferee automatiquement'), inferenceConfidence: zod_1.z.number().min(0).max(1).optional().describe('Confiance dans l\'inference (0 a 1)'), bidirectional: zod_1.z.boolean().optional().describe('Si la relation est intrinsequement bidirectionnelle') }); const MetricThresholdsSchema = zod_1.z.object({ confidence: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional(), relevance: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional(), quality: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional() }); const FilterOptionsSchema = zod_1.z.object({ nodeTypes: zod_1.z.array(exports.ThoughtTypeEnum).optional(), connectionTypes: zod_1.z.array(exports.ConnectionTypeEnum).optional(), metricThresholds: MetricThresholdsSchema.optional(), textSearch: zod_1.z.string().optional(), dateRange: zod_1.z.tuple([zod_1.z.date(), zod_1.z.date()]).optional(), customFilters: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional() }).optional(); const InteractivityOptionsSchema = zod_1.z.object({ zoomable: zod_1.z.boolean().optional(), draggable: zod_1.z.boolean().optional(), selectable: zod_1.z.boolean().optional(), tooltips: zod_1.z.boolean().optional(), expandableNodes: zod_1.z.boolean().optional(), initialZoom: zod_1.z.number().optional(), zoomRange: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional(), highlightOnHover: zod_1.z.boolean().optional() }).optional(); const VisualizationOptionsSchema = zod_1.z.object({ clusterBy: ClusterByEnum.optional().describe('Critere de regroupement des noeuds en clusters'), direction: DirectionEnum.optional().default('TB').describe('Direction de la disposition hierarchique'), centerNode: zod_1.z.string().optional().describe('ID du noeud central pour les visualisations radiales ou hierarchiques'), maxDepth: zod_1.z.number().optional().describe('Profondeur maximale pour les visualisations hierarchiques ou radiales'), filters: FilterOptionsSchema.describe('Options de filtrage des noeuds et des liens'), interactivity: InteractivityOptionsSchema.describe('Options d\'interactivite pour la visualisation') }).optional(); exports.SmartThinkingParamsSchema = zod_1.z.object({ thought: zod_1.z.string().min(1).optional().describe('Le contenu de la pensee a analyser; optionnel en mode help'), thoughtType: exports.ThoughtTypeEnum.default('regular').describe('Type de pensee dans le graphe de raisonnement'), connections: zod_1.z.array(ConnectionSchema).default([]).describe('Connexions a d\'autres pensees'), requestSuggestions: zod_1.z.boolean().default(false).describe('Demander des suggestions d\'amelioration du raisonnement'), generateVisualization: zod_1.z.boolean().default(false).describe('Generer une visualisation du graphe de pensee'), visualizationType: exports.VisualizationTypeEnum.default('graph').describe('Type de visualisation a generer'), suggestTools: zod_1.z.boolean().default(true).describe('Suggere des outils MCP pertinents pour cette etape du raisonnement'), sessionId: zod_1.z.string().optional().describe('Identifiant de session pour maintenir l\'etat'), userId: zod_1.z.string().optional().describe('Identifiant de l\'utilisateur pour la personnalisation'), help: zod_1.z.boolean().default(false).describe('Afficher le guide d\'utilisation sans execution du pipeline'), requestVerification: zod_1.z.boolean().default(false).describe('Demander explicitement une verification des informations'), containsCalculations: zod_1.z.boolean().default(false).describe('Indique si la pensee contient des calculs a verifier'), visualizationOptions: VisualizationOptionsSchema.describe('Options avancees pour la visualisation') }); exports.SearchParamsSchema = zod_1.z.object({ query: zod_1.z.string().min(1, 'La requete de recherche est obligatoire').describe('Requete de recherche semantique sur les memoires locales'), limit: zod_1.z.number().int().min(1).max(20).optional().default(5).describe('Nombre maximal de resultats (1-20)'), sessionId: zod_1.z.string().optional().describe('Filtre optionnel de session') }); exports.FetchParamsSchema = zod_1.z.object({ id: zod_1.z.string().min(1, 'Identifiant requis').describe('Identifiant de la memoire a recuperer'), sessionId: zod_1.z.string().optional().describe('Contexte de session optionnel') }); //# sourceMappingURL=contracts.js.map