smart-thinking-mcp
Version:
Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif
93 lines • 6.77 kB
JavaScript
"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