deepthinking-mcp 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -44,6 +44,192 @@ var ThinkingToolSchema = z.object({
44
44
  units: z.string(),
45
45
  conservationLaws: z.array(z.string())
46
46
  }).optional(),
47
+ // Abductive reasoning properties (v2.0)
48
+ observations: z.array(z.object({
49
+ id: z.string(),
50
+ description: z.string(),
51
+ confidence: z.number().min(0).max(1)
52
+ })).optional(),
53
+ hypotheses: z.array(z.object({
54
+ id: z.string(),
55
+ explanation: z.string(),
56
+ assumptions: z.array(z.string()),
57
+ predictions: z.array(z.string()),
58
+ score: z.number()
59
+ })).optional(),
60
+ evaluationCriteria: z.object({
61
+ parsimony: z.number(),
62
+ explanatoryPower: z.number(),
63
+ plausibility: z.number(),
64
+ testability: z.boolean()
65
+ }).optional(),
66
+ evidence: z.array(z.object({
67
+ id: z.string(),
68
+ hypothesisId: z.string(),
69
+ type: z.enum(["supporting", "contradicting", "neutral"]),
70
+ description: z.string(),
71
+ strength: z.number().min(0).max(1)
72
+ })).optional(),
73
+ bestExplanation: z.object({
74
+ id: z.string(),
75
+ explanation: z.string(),
76
+ assumptions: z.array(z.string()),
77
+ predictions: z.array(z.string()),
78
+ score: z.number()
79
+ }).optional(),
80
+ // Causal reasoning properties (v2.0)
81
+ causalGraph: z.object({
82
+ nodes: z.array(z.object({
83
+ id: z.string(),
84
+ name: z.string(),
85
+ type: z.enum(["cause", "effect", "mediator", "confounder"]),
86
+ description: z.string()
87
+ })),
88
+ edges: z.array(z.object({
89
+ from: z.string(),
90
+ to: z.string(),
91
+ strength: z.number(),
92
+ confidence: z.number().min(0).max(1)
93
+ }))
94
+ }).optional(),
95
+ interventions: z.array(z.object({
96
+ nodeId: z.string(),
97
+ action: z.string(),
98
+ expectedEffects: z.array(z.object({
99
+ nodeId: z.string(),
100
+ expectedChange: z.string(),
101
+ confidence: z.number()
102
+ }))
103
+ })).optional(),
104
+ mechanisms: z.array(z.object({
105
+ from: z.string(),
106
+ to: z.string(),
107
+ description: z.string(),
108
+ type: z.enum(["direct", "indirect", "feedback"])
109
+ })).optional(),
110
+ confounders: z.array(z.object({
111
+ nodeId: z.string(),
112
+ affects: z.array(z.string()),
113
+ description: z.string()
114
+ })).optional(),
115
+ // Bayesian reasoning properties (v2.0)
116
+ hypothesis: z.object({
117
+ id: z.string(),
118
+ statement: z.string()
119
+ }).optional(),
120
+ prior: z.object({
121
+ probability: z.number().min(0).max(1),
122
+ justification: z.string()
123
+ }).optional(),
124
+ likelihood: z.object({
125
+ probability: z.number().min(0).max(1),
126
+ description: z.string()
127
+ }).optional(),
128
+ posterior: z.object({
129
+ probability: z.number().min(0).max(1),
130
+ calculation: z.string()
131
+ }).optional(),
132
+ bayesFactor: z.number().optional(),
133
+ // Counterfactual reasoning properties (v2.0)
134
+ actual: z.object({
135
+ id: z.string(),
136
+ name: z.string(),
137
+ description: z.string(),
138
+ conditions: z.array(z.object({
139
+ factor: z.string(),
140
+ value: z.string()
141
+ })),
142
+ outcomes: z.array(z.object({
143
+ description: z.string(),
144
+ impact: z.enum(["positive", "negative", "neutral"]),
145
+ magnitude: z.number().optional()
146
+ }))
147
+ }).optional(),
148
+ counterfactuals: z.array(z.object({
149
+ id: z.string(),
150
+ name: z.string(),
151
+ description: z.string(),
152
+ conditions: z.array(z.object({
153
+ factor: z.string(),
154
+ value: z.string()
155
+ })),
156
+ outcomes: z.array(z.object({
157
+ description: z.string(),
158
+ impact: z.enum(["positive", "negative", "neutral"]),
159
+ magnitude: z.number().optional()
160
+ }))
161
+ })).optional(),
162
+ comparison: z.object({
163
+ differences: z.array(z.object({
164
+ aspect: z.string(),
165
+ actual: z.string(),
166
+ counterfactual: z.string(),
167
+ significance: z.enum(["high", "medium", "low"])
168
+ })),
169
+ insights: z.array(z.string()),
170
+ lessons: z.array(z.string())
171
+ }).optional(),
172
+ interventionPoint: z.object({
173
+ description: z.string(),
174
+ alternatives: z.array(z.string())
175
+ }).optional(),
176
+ causalChains: z.array(z.object({
177
+ intervention: z.string(),
178
+ steps: z.array(z.string()),
179
+ finalOutcome: z.string()
180
+ })).optional(),
181
+ // Analogical reasoning properties (v2.0)
182
+ sourceDomain: z.object({
183
+ id: z.string(),
184
+ name: z.string(),
185
+ description: z.string(),
186
+ entities: z.array(z.object({
187
+ id: z.string(),
188
+ name: z.string(),
189
+ type: z.string()
190
+ })),
191
+ relations: z.array(z.object({
192
+ id: z.string(),
193
+ type: z.string(),
194
+ from: z.string(),
195
+ to: z.string()
196
+ }))
197
+ }).optional(),
198
+ targetDomain: z.object({
199
+ id: z.string(),
200
+ name: z.string(),
201
+ description: z.string(),
202
+ entities: z.array(z.object({
203
+ id: z.string(),
204
+ name: z.string(),
205
+ type: z.string()
206
+ })),
207
+ relations: z.array(z.object({
208
+ id: z.string(),
209
+ type: z.string(),
210
+ from: z.string(),
211
+ to: z.string()
212
+ }))
213
+ }).optional(),
214
+ mapping: z.array(z.object({
215
+ sourceEntityId: z.string(),
216
+ targetEntityId: z.string(),
217
+ justification: z.string(),
218
+ confidence: z.number().min(0).max(1)
219
+ })).optional(),
220
+ insights: z.array(z.object({
221
+ description: z.string(),
222
+ sourceEvidence: z.string(),
223
+ targetApplication: z.string()
224
+ })).optional(),
225
+ inferences: z.array(z.object({
226
+ sourcePattern: z.string(),
227
+ targetPrediction: z.string(),
228
+ confidence: z.number().min(0).max(1),
229
+ needsVerification: z.boolean()
230
+ })).optional(),
231
+ limitations: z.array(z.string()).optional(),
232
+ analogyStrength: z.number().min(0).max(1).optional(),
47
233
  // Temporal reasoning properties (Phase 3, v2.1)
48
234
  timeline: z.object({
49
235
  id: z.string(),
@@ -797,6 +983,74 @@ function createThought(input, sessionId) {
797
983
  assumptions: input.assumptions || [],
798
984
  uncertainty: input.uncertainty || 0.5
799
985
  };
986
+ case "abductive":
987
+ return {
988
+ ...baseThought,
989
+ mode: "abductive" /* ABDUCTIVE */,
990
+ thoughtType: input.thoughtType,
991
+ observations: input.observations || [],
992
+ hypotheses: input.hypotheses || [],
993
+ evaluationCriteria: input.evaluationCriteria,
994
+ evidence: input.evidence || [],
995
+ bestExplanation: input.bestExplanation
996
+ };
997
+ case "causal":
998
+ return {
999
+ ...baseThought,
1000
+ mode: "causal" /* CAUSAL */,
1001
+ thoughtType: input.thoughtType,
1002
+ causalGraph: input.causalGraph,
1003
+ interventions: input.interventions || [],
1004
+ mechanisms: input.mechanisms || [],
1005
+ confounders: input.confounders || []
1006
+ };
1007
+ case "bayesian":
1008
+ return {
1009
+ ...baseThought,
1010
+ mode: "bayesian" /* BAYESIAN */,
1011
+ thoughtType: input.thoughtType,
1012
+ hypothesis: input.hypothesis,
1013
+ prior: input.prior,
1014
+ likelihood: input.likelihood,
1015
+ evidence: input.evidence || [],
1016
+ posterior: input.posterior,
1017
+ bayesFactor: input.bayesFactor
1018
+ };
1019
+ case "counterfactual":
1020
+ return {
1021
+ ...baseThought,
1022
+ mode: "counterfactual" /* COUNTERFACTUAL */,
1023
+ thoughtType: input.thoughtType,
1024
+ actual: input.actual,
1025
+ counterfactuals: input.counterfactuals || [],
1026
+ comparison: input.comparison,
1027
+ interventionPoint: input.interventionPoint,
1028
+ causalChains: input.causalChains || []
1029
+ };
1030
+ case "analogical":
1031
+ return {
1032
+ ...baseThought,
1033
+ mode: "analogical" /* ANALOGICAL */,
1034
+ thoughtType: input.thoughtType,
1035
+ sourceDomain: input.sourceDomain,
1036
+ targetDomain: input.targetDomain,
1037
+ mapping: input.mapping || [],
1038
+ insights: input.insights || [],
1039
+ inferences: input.inferences || [],
1040
+ limitations: input.limitations || [],
1041
+ analogyStrength: input.analogyStrength
1042
+ };
1043
+ case "temporal":
1044
+ return {
1045
+ ...baseThought,
1046
+ mode: "temporal" /* TEMPORAL */,
1047
+ thoughtType: input.thoughtType,
1048
+ timeline: input.timeline,
1049
+ events: input.events || [],
1050
+ intervals: input.intervals || [],
1051
+ constraints: input.constraints || [],
1052
+ relations: input.relations || []
1053
+ };
800
1054
  case "hybrid":
801
1055
  default:
802
1056
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/thinking.ts","../src/types/modes/temporal.ts","../src/session/manager.ts","../src/index.ts"],"names":["session","randomUUID"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Unified thinking tool for DeepThinking MCP v2.1+\n * Supports 13 thinking modes\n */\n\nimport { z } from 'zod';\n\n/**\n * Zod schema for runtime validation (internal use)\n */\nexport const ThinkingToolSchema = z.object({\n sessionId: z.string().optional(),\n mode: z.enum(['sequential', 'shannon', 'mathematics', 'physics', 'hybrid', 'abductive', 'causal', 'bayesian', 'counterfactual', 'analogical', 'temporal', 'gametheory', 'evidential']).default('hybrid'),\n thought: z.string(),\n thoughtNumber: z.number().int().positive(),\n totalThoughts: z.number().int().positive(),\n nextThoughtNeeded: z.boolean(),\n isRevision: z.boolean().optional(),\n revisesThought: z.string().optional(),\n revisionReason: z.string().optional(),\n branchFrom: z.string().optional(),\n branchId: z.string().optional(),\n stage: z.enum(['problem_definition', 'constraints', 'model', 'proof', 'implementation']).optional(),\n uncertainty: z.number().min(0).max(1).optional(),\n dependencies: z.array(z.string()).optional(),\n assumptions: z.array(z.string()).optional(),\n thoughtType: z.string().optional(),\n mathematicalModel: z.object({\n latex: z.string(),\n symbolic: z.string(),\n ascii: z.string().optional(),\n }).optional(),\n proofStrategy: z.object({\n type: z.enum(['direct', 'contradiction', 'induction', 'construction', 'contrapositive']),\n steps: z.array(z.string()),\n }).optional(),\n tensorProperties: z.object({\n rank: z.tuple([z.number(), z.number()]),\n components: z.string(),\n latex: z.string(),\n symmetries: z.array(z.string()),\n invariants: z.array(z.string()),\n transformation: z.enum(['covariant', 'contravariant', 'mixed']),\n }).optional(),\n physicalInterpretation: z.object({\n quantity: z.string(),\n units: z.string(),\n conservationLaws: z.array(z.string()),\n }).optional(),\n // Temporal reasoning properties (Phase 3, v2.1)\n timeline: z.object({\n id: z.string(),\n name: z.string(),\n timeUnit: z.enum(['milliseconds', 'seconds', 'minutes', 'hours', 'days', 'months', 'years']),\n startTime: z.number().optional(),\n endTime: z.number().optional(),\n events: z.array(z.string()),\n }).optional(),\n events: z.array(z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n timestamp: z.number(),\n duration: z.number().optional(),\n type: z.enum(['instant', 'interval']),\n properties: z.record(z.any()),\n })).optional(),\n intervals: z.array(z.object({\n id: z.string(),\n name: z.string(),\n start: z.number(),\n end: z.number(),\n overlaps: z.array(z.string()).optional(),\n contains: z.array(z.string()).optional(),\n })).optional(),\n constraints: z.array(z.object({\n id: z.string(),\n type: z.enum(['before', 'after', 'during', 'overlaps', 'meets', 'starts', 'finishes', 'equals']),\n subject: z.string(),\n object: z.string(),\n confidence: z.number().min(0).max(1),\n })).optional(),\n relations: z.array(z.object({\n id: z.string(),\n from: z.string(),\n to: z.string(),\n relationType: z.enum(['causes', 'enables', 'prevents', 'precedes', 'follows']),\n strength: z.number().min(0).max(1),\n delay: z.number().optional(),\n })).optional(),\n action: z.enum(['add_thought', 'summarize', 'export', 'switch_mode', 'get_session']).default('add_thought'),\n exportFormat: z.enum(['markdown', 'latex', 'json', 'html', 'jupyter']).optional(),\n newMode: z.enum(['sequential', 'shannon', 'mathematics', 'physics', 'hybrid', 'abductive', 'causal', 'bayesian', 'counterfactual', 'analogical', 'temporal', 'gametheory', 'evidential']).optional(),\n});\n\nexport type ThinkingToolInput = z.infer<typeof ThinkingToolSchema>;\n\n/**\n * Tool definition using plain JSON Schema (MCP standard format)\n */\nexport const thinkingTool = {\n name: 'deepthinking',\n description: `Advanced deep thinking tool supporting 13 reasoning modes:\n\nCore Modes:\n- sequential: Iterative refinement and exploration\n- shannon: Systematic 5-stage problem-solving\n- mathematics: Theorem proving and symbolic reasoning\n- physics: Tensor mathematics and field theory\n- hybrid: Intelligently combines multiple approaches\n\nAdvanced Modes (v2.0):\n- abductive: Inference to the best explanation, hypothesis generation\n- causal: Cause-effect analysis with causal graphs\n- bayesian: Probabilistic reasoning with evidence updates\n- counterfactual: What-if scenario analysis\n- analogical: Cross-domain pattern matching and insights\n\nPhase 3 Modes (v2.1+):\n- temporal: Event timelines, temporal constraints, causal relations over time\n- gametheory: Nash equilibria, strategic analysis, payoff matrices\n- evidential: Dempster-Shafer theory, belief functions, evidence combination\n\nChoose the mode that best fits your problem type.`,\n inputSchema: {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n description: \"Session ID (creates new if omitted)\"\n },\n mode: {\n type: \"string\",\n enum: [\"sequential\", \"shannon\", \"mathematics\", \"physics\", \"hybrid\", \"abductive\", \"causal\", \"bayesian\", \"counterfactual\", \"analogical\", \"temporal\", \"gametheory\", \"evidential\"],\n description: \"Thinking mode to use\"\n },\n thought: {\n type: \"string\",\n description: \"The thought content\"\n },\n thoughtNumber: {\n type: \"integer\",\n minimum: 1,\n description: \"Position in sequence\"\n },\n totalThoughts: {\n type: \"integer\",\n minimum: 1,\n description: \"Estimated total thoughts\"\n },\n nextThoughtNeeded: {\n type: \"boolean\",\n description: \"Should thinking continue?\"\n },\n isRevision: {\n type: \"boolean\",\n description: \"Whether this revises previous thinking\"\n },\n revisesThought: {\n type: \"string\",\n description: \"Which thought is being reconsidered\"\n },\n revisionReason: {\n type: \"string\",\n description: \"Reason for revision\"\n },\n branchFrom: {\n type: \"string\",\n description: \"Branching point thought\"\n },\n branchId: {\n type: \"string\",\n description: \"Branch identifier\"\n },\n stage: {\n type: \"string\",\n enum: [\"problem_definition\", \"constraints\", \"model\", \"proof\", \"implementation\"],\n description: \"Shannon methodology stage\"\n },\n uncertainty: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n description: \"Uncertainty level (0-1)\"\n },\n dependencies: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Dependencies on other thoughts\"\n },\n assumptions: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Assumptions made\"\n },\n thoughtType: {\n type: \"string\",\n description: \"Type of mathematical thought\"\n },\n mathematicalModel: {\n type: \"object\",\n properties: {\n latex: { type: \"string\", description: \"LaTeX representation\" },\n symbolic: { type: \"string\", description: \"Symbolic representation\" },\n ascii: { type: \"string\", description: \"ASCII representation\" }\n },\n required: [\"latex\", \"symbolic\"]\n },\n proofStrategy: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"direct\", \"contradiction\", \"induction\", \"construction\", \"contrapositive\"]\n },\n steps: {\n type: \"array\",\n items: { type: \"string\" }\n }\n },\n required: [\"type\", \"steps\"]\n },\n tensorProperties: {\n type: \"object\",\n properties: {\n rank: {\n type: \"array\",\n items: { type: \"number\" },\n minItems: 2,\n maxItems: 2\n },\n components: { type: \"string\" },\n latex: { type: \"string\" },\n symmetries: {\n type: \"array\",\n items: { type: \"string\" }\n },\n invariants: {\n type: \"array\",\n items: { type: \"string\" }\n },\n transformation: {\n type: \"string\",\n enum: [\"covariant\", \"contravariant\", \"mixed\"]\n }\n },\n required: [\"rank\", \"components\", \"latex\", \"symmetries\", \"invariants\", \"transformation\"]\n },\n physicalInterpretation: {\n type: \"object\",\n properties: {\n quantity: { type: \"string\" },\n units: { type: \"string\" },\n conservationLaws: {\n type: \"array\",\n items: { type: \"string\" }\n }\n },\n required: [\"quantity\", \"units\", \"conservationLaws\"]\n },\n // Temporal reasoning properties (Phase 3, v2.1)\n timeline: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n name: { type: \"string\" },\n timeUnit: {\n type: \"string\",\n enum: [\"milliseconds\", \"seconds\", \"minutes\", \"hours\", \"days\", \"months\", \"years\"],\n description: \"Time unit for the timeline\"\n },\n startTime: { type: \"number\", description: \"Optional start time\" },\n endTime: { type: \"number\", description: \"Optional end time\" },\n events: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Event IDs in this timeline\"\n }\n },\n required: [\"id\", \"name\", \"timeUnit\", \"events\"],\n description: \"Timeline structure for temporal reasoning\"\n },\n events: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n name: { type: \"string\" },\n description: { type: \"string\" },\n timestamp: { type: \"number\", description: \"Event timestamp\" },\n duration: { type: \"number\", description: \"Duration for interval events\" },\n type: {\n type: \"string\",\n enum: [\"instant\", \"interval\"],\n description: \"Event type\"\n },\n properties: {\n type: \"object\",\n description: \"Additional event properties\"\n }\n },\n required: [\"id\", \"name\", \"description\", \"timestamp\", \"type\", \"properties\"]\n },\n description: \"Temporal events\"\n },\n intervals: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n name: { type: \"string\" },\n start: { type: \"number\", description: \"Interval start time\" },\n end: { type: \"number\", description: \"Interval end time\" },\n overlaps: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"IDs of overlapping intervals\"\n },\n contains: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"IDs of contained intervals\"\n }\n },\n required: [\"id\", \"name\", \"start\", \"end\"]\n },\n description: \"Time intervals with Allen's algebra relationships\"\n },\n constraints: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n type: {\n type: \"string\",\n enum: [\"before\", \"after\", \"during\", \"overlaps\", \"meets\", \"starts\", \"finishes\", \"equals\"],\n description: \"Allen's interval algebra constraint type\"\n },\n subject: { type: \"string\", description: \"Subject event/interval ID\" },\n object: { type: \"string\", description: \"Object event/interval ID\" },\n confidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n description: \"Confidence in constraint (0-1)\"\n }\n },\n required: [\"id\", \"type\", \"subject\", \"object\", \"confidence\"]\n },\n description: \"Temporal constraints using Allen's interval algebra\"\n },\n relations: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n from: { type: \"string\", description: \"Source event ID\" },\n to: { type: \"string\", description: \"Target event ID\" },\n relationType: {\n type: \"string\",\n enum: [\"causes\", \"enables\", \"prevents\", \"precedes\", \"follows\"],\n description: \"Type of temporal relation\"\n },\n strength: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n description: \"Relation strength (0-1)\"\n },\n delay: { type: \"number\", description: \"Optional time delay between events\" }\n },\n required: [\"id\", \"from\", \"to\", \"relationType\", \"strength\"]\n },\n description: \"Temporal causal/enabling relations\"\n },\n action: {\n type: \"string\",\n enum: [\"add_thought\", \"summarize\", \"export\", \"switch_mode\", \"get_session\"],\n description: \"Action to perform\"\n },\n exportFormat: {\n type: \"string\",\n enum: [\"markdown\", \"latex\", \"json\", \"html\", \"jupyter\"],\n description: \"Export format\"\n },\n newMode: {\n type: \"string\",\n enum: [\"sequential\", \"shannon\", \"mathematics\", \"physics\", \"hybrid\", \"abductive\", \"causal\", \"bayesian\", \"counterfactual\", \"analogical\", \"temporal\", \"gametheory\", \"evidential\"],\n description: \"New mode for switch_mode action\"\n }\n },\n required: [\"thought\", \"thoughtNumber\", \"totalThoughts\", \"nextThoughtNeeded\"]\n }\n};\n","/**\n * Temporal Reasoning Mode - Type Definitions\n * Phase 3 (v2.1) - Temporal reasoning with events, intervals, constraints, and causal relations\n */\n\nimport { BaseThought } from '../core.js';\n\n/**\n * Temporal thought extends base thought with time-dependent reasoning\n */\nexport interface TemporalThought extends BaseThought {\n mode: 'temporal';\n thoughtType:\n | 'event_definition'\n | 'interval_analysis'\n | 'temporal_constraint'\n | 'sequence_construction'\n | 'causality_timeline';\n\n timeline?: Timeline;\n events?: TemporalEvent[];\n intervals?: TimeInterval[];\n constraints?: TemporalConstraint[];\n relations?: TemporalRelation[];\n}\n\n/**\n * Timeline structure organizing temporal events\n */\nexport interface Timeline {\n id: string;\n name: string;\n timeUnit: 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years';\n startTime?: number;\n endTime?: number;\n events: string[]; // Event IDs\n}\n\n/**\n * Temporal event - either instant or interval\n */\nexport interface TemporalEvent {\n id: string;\n name: string;\n description: string;\n timestamp: number;\n duration?: number; // For interval events\n type: 'instant' | 'interval';\n properties: Record<string, any>;\n}\n\n/**\n * Time interval with Allen's algebra relationships\n */\nexport interface TimeInterval {\n id: string;\n name: string;\n start: number;\n end: number;\n overlaps?: string[]; // IDs of overlapping intervals\n contains?: string[]; // IDs of contained intervals\n}\n\n/**\n * Temporal constraint using Allen's interval algebra\n */\nexport interface TemporalConstraint {\n id: string;\n type: 'before' | 'after' | 'during' | 'overlaps' | 'meets' | 'starts' | 'finishes' | 'equals';\n subject: string; // Event/Interval ID\n object: string; // Event/Interval ID\n confidence: number; // 0-1\n}\n\n/**\n * Temporal relation showing causal/enabling relationships over time\n */\nexport interface TemporalRelation {\n id: string;\n from: string; // Event ID\n to: string; // Event ID\n relationType: 'causes' | 'enables' | 'prevents' | 'precedes' | 'follows';\n strength: number; // 0-1\n delay?: number; // Time delay between events\n}\n\n/**\n * Type guard for temporal thoughts\n */\nexport function isTemporalThought(thought: BaseThought): thought is TemporalThought {\n return thought.mode === 'temporal';\n}\n","/**\n * Session Manager for DeepThinking MCP\n * Manages thinking sessions, persistence, and analytics\n */\n\nimport { randomUUID } from 'crypto';\nimport {\n ThinkingSession,\n SessionConfig,\n SessionMetrics,\n SessionMetadata,\n Thought,\n ThinkingMode,\n ExportFormat\n} from '../types/index.js';\nimport { TemporalThought, isTemporalThought } from '../types/modes/temporal.js';\n\n/**\n * Default session configuration\n */\nconst DEFAULT_CONFIG: SessionConfig = {\n modeConfig: {\n mode: ThinkingMode.HYBRID,\n strictValidation: false,\n allowModeSwitch: true\n },\n enableAutoSave: true,\n enableValidation: true,\n enableVisualization: true,\n integrations: {},\n exportFormats: ['markdown', 'latex', 'json'],\n autoExportOnComplete: false,\n maxThoughtsInMemory: 1000,\n compressionThreshold: 500\n};\n\n/**\n * Session Manager\n */\nexport class SessionManager {\n private activeSessions: Map<string, ThinkingSession>;\n private config: Partial<SessionConfig>;\n\n constructor(config?: Partial<SessionConfig>) {\n this.activeSessions = new Map();\n this.config = config || {};\n }\n\n /**\n * Create a new thinking session\n */\n async createSession(options: {\n title?: string;\n mode?: ThinkingMode;\n domain?: string;\n author?: string;\n config?: Partial<SessionConfig>;\n } = {}): Promise<ThinkingSession> {\n const sessionId = randomUUID();\n const now = new Date();\n\n const session: ThinkingSession = {\n id: sessionId,\n title: options.title || 'Untitled Session',\n mode: options.mode || ThinkingMode.HYBRID,\n domain: options.domain,\n config: this.mergeConfig(options.config),\n thoughts: [],\n createdAt: now,\n updatedAt: now,\n author: options.author,\n currentThoughtNumber: 0,\n isComplete: false,\n metrics: this.initializeMetrics(),\n tags: [],\n collaborators: options.author ? [options.author] : []\n };\n\n this.activeSessions.set(sessionId, session);\n return session;\n }\n\n /**\n * Get a session by ID\n */\n async getSession(sessionId: string): Promise<ThinkingSession | null> {\n return this.activeSessions.get(sessionId) || null;\n }\n\n /**\n * Add a thought to a session\n */\n async addThought(sessionId: string, thought: Thought): Promise<ThinkingSession> {\n const session = this.activeSessions.get(sessionId);\n if (!session) {\n throw new Error(`Session ${sessionId} not found`);\n }\n\n // Update thought with session metadata\n thought.sessionId = sessionId;\n thought.timestamp = new Date();\n\n // Add thought to session\n session.thoughts.push(thought);\n session.currentThoughtNumber = thought.thoughtNumber;\n session.updatedAt = new Date();\n\n // Update metrics\n this.updateMetrics(session, thought);\n\n // Check if session is complete\n if (!thought.nextThoughtNeeded) {\n session.isComplete = true;\n }\n\n return session;\n }\n\n /**\n * Update session mode\n */\n async switchMode(\n sessionId: string,\n newMode: ThinkingMode,\n reason?: string\n ): Promise<ThinkingSession> {\n const session = this.activeSessions.get(sessionId);\n if (!session) {\n throw new Error(`Session ${sessionId} not found`);\n }\n\n const oldMode = session.mode;\n session.mode = newMode;\n session.config.modeConfig.mode = newMode;\n session.updatedAt = new Date();\n\n return session;\n }\n\n /**\n * List all sessions\n */\n async listSessions(): Promise<SessionMetadata[]> {\n return Array.from(this.activeSessions.values()).map(session => ({\n id: session.id,\n title: session.title,\n createdAt: session.createdAt,\n updatedAt: session.updatedAt,\n thoughtCount: session.thoughts.length,\n mode: session.mode,\n isComplete: session.isComplete\n }));\n }\n\n /**\n * Delete a session\n */\n async deleteSession(sessionId: string): Promise<void> {\n this.activeSessions.delete(sessionId);\n }\n\n /**\n * Generate summary of session\n */\n async generateSummary(sessionId: string): Promise<string> {\n const session = this.activeSessions.get(sessionId);\n if (!session) {\n throw new Error(`Session ${sessionId} not found`);\n }\n\n let summary = `# ${session.title}\\n\\n`;\n summary += `Mode: ${session.mode}\\n`;\n summary += `Total Thoughts: ${session.thoughts.length}\\n`;\n summary += `Status: ${session.isComplete ? 'Complete' : 'In Progress'}\\n\\n`;\n\n summary += `## Key Thoughts:\\n\\n`;\n for (const thought of session.thoughts) {\n summary += `${thought.thoughtNumber}. ${thought.content.substring(0, 100)}...\\n`;\n }\n\n return summary;\n }\n\n /**\n * Merge configurations\n */\n private mergeConfig(userConfig?: Partial<SessionConfig>): SessionConfig {\n return {\n ...DEFAULT_CONFIG,\n ...this.config,\n ...userConfig\n } as SessionConfig;\n }\n\n /**\n * Initialize metrics\n */\n private initializeMetrics(): SessionMetrics {\n return {\n totalThoughts: 0,\n thoughtsByType: {},\n averageUncertainty: 0,\n revisionCount: 0,\n timeSpent: 0,\n dependencyDepth: 0\n };\n }\n\n /**\n * Update session metrics\n */\n private updateMetrics(session: ThinkingSession, thought: Thought): void {\n const metrics = session.metrics;\n\n // Update total thoughts\n metrics.totalThoughts = session.thoughts.length;\n\n // Update revision count\n if (thought.isRevision) {\n metrics.revisionCount++;\n }\n\n // Update time spent (in milliseconds)\n metrics.timeSpent = session.updatedAt.getTime() - session.createdAt.getTime();\n\n // Update average uncertainty (for modes that have uncertainty)\n if ('uncertainty' in thought) {\n const totalUncertainty = session.thoughts\n .filter(t => 'uncertainty' in t)\n .reduce((sum, t) => sum + (t as any).uncertainty, 0);\n const thoughtsWithUncertainty = session.thoughts.filter(t => 'uncertainty' in t).length;\n metrics.averageUncertainty = thoughtsWithUncertainty > 0\n ? totalUncertainty / thoughtsWithUncertainty\n : 0;\n }\n\n // Update dependency depth\n if ('dependencies' in thought && thought.dependencies) {\n const deps = (thought as any).dependencies as string[];\n if (deps && deps.length > metrics.dependencyDepth) {\n metrics.dependencyDepth = deps.length;\n }\n }\n\n // Temporal-specific metrics (Phase 3, v2.1)\n if (isTemporalThought(thought)) {\n if (thought.events) {\n metrics.customMetrics.set('totalEvents', thought.events.length);\n }\n if (thought.timeline) {\n metrics.customMetrics.set('timelineUnit', thought.timeline.timeUnit);\n }\n if (thought.relations) {\n const causalRelations = thought.relations.filter(r => r.relationType === 'causes');\n metrics.customMetrics.set('causalRelations', causalRelations.length);\n }\n if (thought.constraints) {\n metrics.customMetrics.set('temporalConstraints', thought.constraints.length);\n }\n if (thought.intervals) {\n metrics.customMetrics.set('timeIntervals', thought.intervals.length);\n }\n }\n }\n}\n","#!/usr/bin/env node\n\n/**\n * DeepThinking MCP Server\n * Unified deep thinking server combining sequential, Shannon, and mathematical reasoning\n */\n\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from '@modelcontextprotocol/sdk/types.js';\nimport { randomUUID } from 'crypto';\n\nimport { thinkingTool, ThinkingToolInput, ThinkingToolSchema } from './tools/thinking.js';\nimport { SessionManager } from './session/index.js';\nimport {\n ThinkingMode,\n ShannonStage,\n SequentialThought,\n ShannonThought,\n MathematicsThought,\n PhysicsThought,\n HybridThought,\n} from './types/index.js';\n\nconst server = new Server(\n {\n name: 'deepthinking-mcp',\n version: '1.0.0',\n },\n {\n capabilities: {\n tools: {},\n },\n }\n);\n\nconst sessionManager = new SessionManager();\n\nserver.setRequestHandler(ListToolsRequestSchema, async () => {\n return {\n tools: [thinkingTool],\n };\n});\n\nserver.setRequestHandler(CallToolRequestSchema, async (request) => {\n const { name, arguments: args } = request.params;\n\n if (name === 'deepthinking') {\n try {\n const input = ThinkingToolSchema.parse(args) as ThinkingToolInput;\n\n switch (input.action) {\n case 'add_thought':\n return await handleAddThought(input);\n case 'summarize':\n return await handleSummarize(input);\n case 'export':\n return await handleExport(input);\n case 'switch_mode':\n return await handleSwitchMode(input);\n case 'get_session':\n return await handleGetSession(input);\n default:\n throw new Error(`Unknown action: ${input.action}`);\n }\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Error: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }\n\n throw new Error(`Unknown tool: ${name}`);\n});\n\nasync function handleAddThought(input: ThinkingToolInput) {\n let sessionId = input.sessionId;\n if (!sessionId) {\n const session = await sessionManager.createSession({\n mode: input.mode as ThinkingMode,\n title: `Thinking Session ${new Date().toISOString()}`,\n });\n sessionId = session.id;\n }\n\n const thought = createThought(input, sessionId);\n const session = await sessionManager.addThought(sessionId, thought);\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify({\n sessionId: session.id,\n thoughtId: thought.id,\n thoughtNumber: thought.thoughtNumber,\n mode: thought.mode,\n nextThoughtNeeded: thought.nextThoughtNeeded,\n sessionComplete: session.isComplete,\n totalThoughts: session.thoughts.length,\n }, null, 2),\n },\n ],\n };\n}\n\nasync function handleSummarize(input: ThinkingToolInput) {\n if (!input.sessionId) {\n throw new Error('sessionId required for summarize action');\n }\n\n const summary = await sessionManager.generateSummary(input.sessionId);\n\n return {\n content: [\n {\n type: 'text',\n text: summary,\n },\n ],\n };\n}\n\nasync function handleExport(input: ThinkingToolInput) {\n if (!input.sessionId) {\n throw new Error('sessionId required for export action');\n }\n\n const session = await sessionManager.getSession(input.sessionId);\n if (!session) {\n throw new Error(`Session ${input.sessionId} not found`);\n }\n\n const exported = JSON.stringify(session, null, 2);\n\n return {\n content: [\n {\n type: 'text',\n text: exported,\n },\n ],\n };\n}\n\nasync function handleSwitchMode(input: ThinkingToolInput) {\n if (!input.sessionId || !input.newMode) {\n throw new Error('sessionId and newMode required for switch_mode action');\n }\n\n const session = await sessionManager.switchMode(\n input.sessionId,\n input.newMode as ThinkingMode,\n 'User requested mode switch'\n );\n\n return {\n content: [\n {\n type: 'text',\n text: `Switched session ${session.id} to ${session.mode} mode`,\n },\n ],\n };\n}\n\nasync function handleGetSession(input: ThinkingToolInput) {\n if (!input.sessionId) {\n throw new Error('sessionId required for get_session action');\n }\n\n const session = await sessionManager.getSession(input.sessionId);\n if (!session) {\n throw new Error(`Session ${input.sessionId} not found`);\n }\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify({\n id: session.id,\n title: session.title,\n mode: session.mode,\n thoughtCount: session.thoughts.length,\n isComplete: session.isComplete,\n metrics: session.metrics,\n }, null, 2),\n },\n ],\n };\n}\n\nfunction createThought(input: ThinkingToolInput, sessionId: string) {\n const baseThought = {\n id: randomUUID(),\n sessionId,\n thoughtNumber: input.thoughtNumber,\n totalThoughts: input.totalThoughts,\n content: input.thought,\n timestamp: new Date(),\n nextThoughtNeeded: input.nextThoughtNeeded,\n isRevision: input.isRevision,\n revisesThought: input.revisesThought,\n };\n\n switch (input.mode) {\n case 'sequential':\n return {\n ...baseThought,\n mode: ThinkingMode.SEQUENTIAL,\n revisionReason: input.revisionReason,\n branchFrom: input.branchFrom,\n branchId: input.branchId,\n } as SequentialThought;\n\n case 'shannon':\n return {\n ...baseThought,\n mode: ThinkingMode.SHANNON,\n stage: (input.stage as ShannonStage) || ShannonStage.PROBLEM_DEFINITION,\n uncertainty: input.uncertainty || 0.5,\n dependencies: input.dependencies || [],\n assumptions: input.assumptions || [],\n } as ShannonThought;\n\n case 'mathematics':\n return {\n ...baseThought,\n mode: ThinkingMode.MATHEMATICS,\n thoughtType: input.thoughtType as any,\n mathematicalModel: input.mathematicalModel,\n proofStrategy: input.proofStrategy,\n dependencies: input.dependencies || [],\n assumptions: input.assumptions || [],\n uncertainty: input.uncertainty || 0.5,\n } as MathematicsThought;\n\n case 'physics':\n return {\n ...baseThought,\n mode: ThinkingMode.PHYSICS,\n thoughtType: input.thoughtType as any,\n tensorProperties: input.tensorProperties,\n physicalInterpretation: input.physicalInterpretation,\n dependencies: input.dependencies || [],\n assumptions: input.assumptions || [],\n uncertainty: input.uncertainty || 0.5,\n } as PhysicsThought;\n\n case 'hybrid':\n default:\n return {\n ...baseThought,\n mode: ThinkingMode.HYBRID,\n thoughtType: input.thoughtType as any,\n stage: input.stage as ShannonStage,\n uncertainty: input.uncertainty,\n dependencies: input.dependencies,\n assumptions: input.assumptions,\n mathematicalModel: input.mathematicalModel,\n tensorProperties: input.tensorProperties,\n physicalInterpretation: input.physicalInterpretation,\n primaryMode: input.mode as any,\n secondaryFeatures: [],\n } as HybridThought;\n }\n}\n\nasync function main() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('DeepThinking MCP server running on stdio');\n}\n\nmain().catch((error) => {\n console.error('Fatal error:', error);\n process.exit(1);\n});\n"]}
1
+ {"version":3,"sources":["../src/tools/thinking.ts","../src/types/modes/temporal.ts","../src/session/manager.ts","../src/index.ts"],"names":["session","randomUUID"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Unified thinking tool for DeepThinking MCP v2.1+\n * Supports 13 thinking modes\n */\n\nimport { z } from 'zod';\n\n/**\n * Zod schema for runtime validation (internal use)\n */\nexport const ThinkingToolSchema = z.object({\n sessionId: z.string().optional(),\n mode: z.enum(['sequential', 'shannon', 'mathematics', 'physics', 'hybrid', 'abductive', 'causal', 'bayesian', 'counterfactual', 'analogical', 'temporal', 'gametheory', 'evidential']).default('hybrid'),\n thought: z.string(),\n thoughtNumber: z.number().int().positive(),\n totalThoughts: z.number().int().positive(),\n nextThoughtNeeded: z.boolean(),\n isRevision: z.boolean().optional(),\n revisesThought: z.string().optional(),\n revisionReason: z.string().optional(),\n branchFrom: z.string().optional(),\n branchId: z.string().optional(),\n stage: z.enum(['problem_definition', 'constraints', 'model', 'proof', 'implementation']).optional(),\n uncertainty: z.number().min(0).max(1).optional(),\n dependencies: z.array(z.string()).optional(),\n assumptions: z.array(z.string()).optional(),\n thoughtType: z.string().optional(),\n mathematicalModel: z.object({\n latex: z.string(),\n symbolic: z.string(),\n ascii: z.string().optional(),\n }).optional(),\n proofStrategy: z.object({\n type: z.enum(['direct', 'contradiction', 'induction', 'construction', 'contrapositive']),\n steps: z.array(z.string()),\n }).optional(),\n tensorProperties: z.object({\n rank: z.tuple([z.number(), z.number()]),\n components: z.string(),\n latex: z.string(),\n symmetries: z.array(z.string()),\n invariants: z.array(z.string()),\n transformation: z.enum(['covariant', 'contravariant', 'mixed']),\n }).optional(),\n physicalInterpretation: z.object({\n quantity: z.string(),\n units: z.string(),\n conservationLaws: z.array(z.string()),\n }).optional(),\n // Abductive reasoning properties (v2.0)\n observations: z.array(z.object({\n id: z.string(),\n description: z.string(),\n confidence: z.number().min(0).max(1),\n })).optional(),\n hypotheses: z.array(z.object({\n id: z.string(),\n explanation: z.string(),\n assumptions: z.array(z.string()),\n predictions: z.array(z.string()),\n score: z.number(),\n })).optional(),\n evaluationCriteria: z.object({\n parsimony: z.number(),\n explanatoryPower: z.number(),\n plausibility: z.number(),\n testability: z.boolean(),\n }).optional(),\n evidence: z.array(z.object({\n id: z.string(),\n hypothesisId: z.string(),\n type: z.enum(['supporting', 'contradicting', 'neutral']),\n description: z.string(),\n strength: z.number().min(0).max(1),\n })).optional(),\n bestExplanation: z.object({\n id: z.string(),\n explanation: z.string(),\n assumptions: z.array(z.string()),\n predictions: z.array(z.string()),\n score: z.number(),\n }).optional(),\n // Causal reasoning properties (v2.0)\n causalGraph: z.object({\n nodes: z.array(z.object({\n id: z.string(),\n name: z.string(),\n type: z.enum(['cause', 'effect', 'mediator', 'confounder']),\n description: z.string(),\n })),\n edges: z.array(z.object({\n from: z.string(),\n to: z.string(),\n strength: z.number(),\n confidence: z.number().min(0).max(1),\n })),\n }).optional(),\n interventions: z.array(z.object({\n nodeId: z.string(),\n action: z.string(),\n expectedEffects: z.array(z.object({\n nodeId: z.string(),\n expectedChange: z.string(),\n confidence: z.number(),\n })),\n })).optional(),\n mechanisms: z.array(z.object({\n from: z.string(),\n to: z.string(),\n description: z.string(),\n type: z.enum(['direct', 'indirect', 'feedback']),\n })).optional(),\n confounders: z.array(z.object({\n nodeId: z.string(),\n affects: z.array(z.string()),\n description: z.string(),\n })).optional(),\n // Bayesian reasoning properties (v2.0)\n hypothesis: z.object({\n id: z.string(),\n statement: z.string(),\n }).optional(),\n prior: z.object({\n probability: z.number().min(0).max(1),\n justification: z.string(),\n }).optional(),\n likelihood: z.object({\n probability: z.number().min(0).max(1),\n description: z.string(),\n }).optional(),\n posterior: z.object({\n probability: z.number().min(0).max(1),\n calculation: z.string(),\n }).optional(),\n bayesFactor: z.number().optional(),\n // Counterfactual reasoning properties (v2.0)\n actual: z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n conditions: z.array(z.object({\n factor: z.string(),\n value: z.string(),\n })),\n outcomes: z.array(z.object({\n description: z.string(),\n impact: z.enum(['positive', 'negative', 'neutral']),\n magnitude: z.number().optional(),\n })),\n }).optional(),\n counterfactuals: z.array(z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n conditions: z.array(z.object({\n factor: z.string(),\n value: z.string(),\n })),\n outcomes: z.array(z.object({\n description: z.string(),\n impact: z.enum(['positive', 'negative', 'neutral']),\n magnitude: z.number().optional(),\n })),\n })).optional(),\n comparison: z.object({\n differences: z.array(z.object({\n aspect: z.string(),\n actual: z.string(),\n counterfactual: z.string(),\n significance: z.enum(['high', 'medium', 'low']),\n })),\n insights: z.array(z.string()),\n lessons: z.array(z.string()),\n }).optional(),\n interventionPoint: z.object({\n description: z.string(),\n alternatives: z.array(z.string()),\n }).optional(),\n causalChains: z.array(z.object({\n intervention: z.string(),\n steps: z.array(z.string()),\n finalOutcome: z.string(),\n })).optional(),\n // Analogical reasoning properties (v2.0)\n sourceDomain: z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n entities: z.array(z.object({\n id: z.string(),\n name: z.string(),\n type: z.string(),\n })),\n relations: z.array(z.object({\n id: z.string(),\n type: z.string(),\n from: z.string(),\n to: z.string(),\n })),\n }).optional(),\n targetDomain: z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n entities: z.array(z.object({\n id: z.string(),\n name: z.string(),\n type: z.string(),\n })),\n relations: z.array(z.object({\n id: z.string(),\n type: z.string(),\n from: z.string(),\n to: z.string(),\n })),\n }).optional(),\n mapping: z.array(z.object({\n sourceEntityId: z.string(),\n targetEntityId: z.string(),\n justification: z.string(),\n confidence: z.number().min(0).max(1),\n })).optional(),\n insights: z.array(z.object({\n description: z.string(),\n sourceEvidence: z.string(),\n targetApplication: z.string(),\n })).optional(),\n inferences: z.array(z.object({\n sourcePattern: z.string(),\n targetPrediction: z.string(),\n confidence: z.number().min(0).max(1),\n needsVerification: z.boolean(),\n })).optional(),\n limitations: z.array(z.string()).optional(),\n analogyStrength: z.number().min(0).max(1).optional(),\n // Temporal reasoning properties (Phase 3, v2.1)\n timeline: z.object({\n id: z.string(),\n name: z.string(),\n timeUnit: z.enum(['milliseconds', 'seconds', 'minutes', 'hours', 'days', 'months', 'years']),\n startTime: z.number().optional(),\n endTime: z.number().optional(),\n events: z.array(z.string()),\n }).optional(),\n events: z.array(z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n timestamp: z.number(),\n duration: z.number().optional(),\n type: z.enum(['instant', 'interval']),\n properties: z.record(z.any()),\n })).optional(),\n intervals: z.array(z.object({\n id: z.string(),\n name: z.string(),\n start: z.number(),\n end: z.number(),\n overlaps: z.array(z.string()).optional(),\n contains: z.array(z.string()).optional(),\n })).optional(),\n constraints: z.array(z.object({\n id: z.string(),\n type: z.enum(['before', 'after', 'during', 'overlaps', 'meets', 'starts', 'finishes', 'equals']),\n subject: z.string(),\n object: z.string(),\n confidence: z.number().min(0).max(1),\n })).optional(),\n relations: z.array(z.object({\n id: z.string(),\n from: z.string(),\n to: z.string(),\n relationType: z.enum(['causes', 'enables', 'prevents', 'precedes', 'follows']),\n strength: z.number().min(0).max(1),\n delay: z.number().optional(),\n })).optional(),\n action: z.enum(['add_thought', 'summarize', 'export', 'switch_mode', 'get_session']).default('add_thought'),\n exportFormat: z.enum(['markdown', 'latex', 'json', 'html', 'jupyter']).optional(),\n newMode: z.enum(['sequential', 'shannon', 'mathematics', 'physics', 'hybrid', 'abductive', 'causal', 'bayesian', 'counterfactual', 'analogical', 'temporal', 'gametheory', 'evidential']).optional(),\n});\n\nexport type ThinkingToolInput = z.infer<typeof ThinkingToolSchema>;\n\n/**\n * Tool definition using plain JSON Schema (MCP standard format)\n */\nexport const thinkingTool = {\n name: 'deepthinking',\n description: `Advanced deep thinking tool supporting 13 reasoning modes:\n\nCore Modes:\n- sequential: Iterative refinement and exploration\n- shannon: Systematic 5-stage problem-solving\n- mathematics: Theorem proving and symbolic reasoning\n- physics: Tensor mathematics and field theory\n- hybrid: Intelligently combines multiple approaches\n\nAdvanced Modes (v2.0):\n- abductive: Inference to the best explanation, hypothesis generation\n- causal: Cause-effect analysis with causal graphs\n- bayesian: Probabilistic reasoning with evidence updates\n- counterfactual: What-if scenario analysis\n- analogical: Cross-domain pattern matching and insights\n\nPhase 3 Modes (v2.1+):\n- temporal: Event timelines, temporal constraints, causal relations over time\n- gametheory: Nash equilibria, strategic analysis, payoff matrices\n- evidential: Dempster-Shafer theory, belief functions, evidence combination\n\nChoose the mode that best fits your problem type.`,\n inputSchema: {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n description: \"Session ID (creates new if omitted)\"\n },\n mode: {\n type: \"string\",\n enum: [\"sequential\", \"shannon\", \"mathematics\", \"physics\", \"hybrid\", \"abductive\", \"causal\", \"bayesian\", \"counterfactual\", \"analogical\", \"temporal\", \"gametheory\", \"evidential\"],\n description: \"Thinking mode to use\"\n },\n thought: {\n type: \"string\",\n description: \"The thought content\"\n },\n thoughtNumber: {\n type: \"integer\",\n minimum: 1,\n description: \"Position in sequence\"\n },\n totalThoughts: {\n type: \"integer\",\n minimum: 1,\n description: \"Estimated total thoughts\"\n },\n nextThoughtNeeded: {\n type: \"boolean\",\n description: \"Should thinking continue?\"\n },\n isRevision: {\n type: \"boolean\",\n description: \"Whether this revises previous thinking\"\n },\n revisesThought: {\n type: \"string\",\n description: \"Which thought is being reconsidered\"\n },\n revisionReason: {\n type: \"string\",\n description: \"Reason for revision\"\n },\n branchFrom: {\n type: \"string\",\n description: \"Branching point thought\"\n },\n branchId: {\n type: \"string\",\n description: \"Branch identifier\"\n },\n stage: {\n type: \"string\",\n enum: [\"problem_definition\", \"constraints\", \"model\", \"proof\", \"implementation\"],\n description: \"Shannon methodology stage\"\n },\n uncertainty: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n description: \"Uncertainty level (0-1)\"\n },\n dependencies: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Dependencies on other thoughts\"\n },\n assumptions: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Assumptions made\"\n },\n thoughtType: {\n type: \"string\",\n description: \"Type of mathematical thought\"\n },\n mathematicalModel: {\n type: \"object\",\n properties: {\n latex: { type: \"string\", description: \"LaTeX representation\" },\n symbolic: { type: \"string\", description: \"Symbolic representation\" },\n ascii: { type: \"string\", description: \"ASCII representation\" }\n },\n required: [\"latex\", \"symbolic\"]\n },\n proofStrategy: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"direct\", \"contradiction\", \"induction\", \"construction\", \"contrapositive\"]\n },\n steps: {\n type: \"array\",\n items: { type: \"string\" }\n }\n },\n required: [\"type\", \"steps\"]\n },\n tensorProperties: {\n type: \"object\",\n properties: {\n rank: {\n type: \"array\",\n items: { type: \"number\" },\n minItems: 2,\n maxItems: 2\n },\n components: { type: \"string\" },\n latex: { type: \"string\" },\n symmetries: {\n type: \"array\",\n items: { type: \"string\" }\n },\n invariants: {\n type: \"array\",\n items: { type: \"string\" }\n },\n transformation: {\n type: \"string\",\n enum: [\"covariant\", \"contravariant\", \"mixed\"]\n }\n },\n required: [\"rank\", \"components\", \"latex\", \"symmetries\", \"invariants\", \"transformation\"]\n },\n physicalInterpretation: {\n type: \"object\",\n properties: {\n quantity: { type: \"string\" },\n units: { type: \"string\" },\n conservationLaws: {\n type: \"array\",\n items: { type: \"string\" }\n }\n },\n required: [\"quantity\", \"units\", \"conservationLaws\"]\n },\n // Temporal reasoning properties (Phase 3, v2.1)\n timeline: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n name: { type: \"string\" },\n timeUnit: {\n type: \"string\",\n enum: [\"milliseconds\", \"seconds\", \"minutes\", \"hours\", \"days\", \"months\", \"years\"],\n description: \"Time unit for the timeline\"\n },\n startTime: { type: \"number\", description: \"Optional start time\" },\n endTime: { type: \"number\", description: \"Optional end time\" },\n events: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Event IDs in this timeline\"\n }\n },\n required: [\"id\", \"name\", \"timeUnit\", \"events\"],\n description: \"Timeline structure for temporal reasoning\"\n },\n events: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n name: { type: \"string\" },\n description: { type: \"string\" },\n timestamp: { type: \"number\", description: \"Event timestamp\" },\n duration: { type: \"number\", description: \"Duration for interval events\" },\n type: {\n type: \"string\",\n enum: [\"instant\", \"interval\"],\n description: \"Event type\"\n },\n properties: {\n type: \"object\",\n description: \"Additional event properties\"\n }\n },\n required: [\"id\", \"name\", \"description\", \"timestamp\", \"type\", \"properties\"]\n },\n description: \"Temporal events\"\n },\n intervals: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n name: { type: \"string\" },\n start: { type: \"number\", description: \"Interval start time\" },\n end: { type: \"number\", description: \"Interval end time\" },\n overlaps: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"IDs of overlapping intervals\"\n },\n contains: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"IDs of contained intervals\"\n }\n },\n required: [\"id\", \"name\", \"start\", \"end\"]\n },\n description: \"Time intervals with Allen's algebra relationships\"\n },\n constraints: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n type: {\n type: \"string\",\n enum: [\"before\", \"after\", \"during\", \"overlaps\", \"meets\", \"starts\", \"finishes\", \"equals\"],\n description: \"Allen's interval algebra constraint type\"\n },\n subject: { type: \"string\", description: \"Subject event/interval ID\" },\n object: { type: \"string\", description: \"Object event/interval ID\" },\n confidence: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n description: \"Confidence in constraint (0-1)\"\n }\n },\n required: [\"id\", \"type\", \"subject\", \"object\", \"confidence\"]\n },\n description: \"Temporal constraints using Allen's interval algebra\"\n },\n relations: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n from: { type: \"string\", description: \"Source event ID\" },\n to: { type: \"string\", description: \"Target event ID\" },\n relationType: {\n type: \"string\",\n enum: [\"causes\", \"enables\", \"prevents\", \"precedes\", \"follows\"],\n description: \"Type of temporal relation\"\n },\n strength: {\n type: \"number\",\n minimum: 0,\n maximum: 1,\n description: \"Relation strength (0-1)\"\n },\n delay: { type: \"number\", description: \"Optional time delay between events\" }\n },\n required: [\"id\", \"from\", \"to\", \"relationType\", \"strength\"]\n },\n description: \"Temporal causal/enabling relations\"\n },\n action: {\n type: \"string\",\n enum: [\"add_thought\", \"summarize\", \"export\", \"switch_mode\", \"get_session\"],\n description: \"Action to perform\"\n },\n exportFormat: {\n type: \"string\",\n enum: [\"markdown\", \"latex\", \"json\", \"html\", \"jupyter\"],\n description: \"Export format\"\n },\n newMode: {\n type: \"string\",\n enum: [\"sequential\", \"shannon\", \"mathematics\", \"physics\", \"hybrid\", \"abductive\", \"causal\", \"bayesian\", \"counterfactual\", \"analogical\", \"temporal\", \"gametheory\", \"evidential\"],\n description: \"New mode for switch_mode action\"\n }\n },\n required: [\"thought\", \"thoughtNumber\", \"totalThoughts\", \"nextThoughtNeeded\"]\n }\n};\n","/**\n * Temporal Reasoning Mode - Type Definitions\n * Phase 3 (v2.1) - Temporal reasoning with events, intervals, constraints, and causal relations\n */\n\nimport { BaseThought } from '../core.js';\n\n/**\n * Temporal thought extends base thought with time-dependent reasoning\n */\nexport interface TemporalThought extends BaseThought {\n mode: 'temporal';\n thoughtType:\n | 'event_definition'\n | 'interval_analysis'\n | 'temporal_constraint'\n | 'sequence_construction'\n | 'causality_timeline';\n\n timeline?: Timeline;\n events?: TemporalEvent[];\n intervals?: TimeInterval[];\n constraints?: TemporalConstraint[];\n relations?: TemporalRelation[];\n}\n\n/**\n * Timeline structure organizing temporal events\n */\nexport interface Timeline {\n id: string;\n name: string;\n timeUnit: 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years';\n startTime?: number;\n endTime?: number;\n events: string[]; // Event IDs\n}\n\n/**\n * Temporal event - either instant or interval\n */\nexport interface TemporalEvent {\n id: string;\n name: string;\n description: string;\n timestamp: number;\n duration?: number; // For interval events\n type: 'instant' | 'interval';\n properties: Record<string, any>;\n}\n\n/**\n * Time interval with Allen's algebra relationships\n */\nexport interface TimeInterval {\n id: string;\n name: string;\n start: number;\n end: number;\n overlaps?: string[]; // IDs of overlapping intervals\n contains?: string[]; // IDs of contained intervals\n}\n\n/**\n * Temporal constraint using Allen's interval algebra\n */\nexport interface TemporalConstraint {\n id: string;\n type: 'before' | 'after' | 'during' | 'overlaps' | 'meets' | 'starts' | 'finishes' | 'equals';\n subject: string; // Event/Interval ID\n object: string; // Event/Interval ID\n confidence: number; // 0-1\n}\n\n/**\n * Temporal relation showing causal/enabling relationships over time\n */\nexport interface TemporalRelation {\n id: string;\n from: string; // Event ID\n to: string; // Event ID\n relationType: 'causes' | 'enables' | 'prevents' | 'precedes' | 'follows';\n strength: number; // 0-1\n delay?: number; // Time delay between events\n}\n\n/**\n * Type guard for temporal thoughts\n */\nexport function isTemporalThought(thought: BaseThought): thought is TemporalThought {\n return thought.mode === 'temporal';\n}\n","/**\n * Session Manager for DeepThinking MCP\n * Manages thinking sessions, persistence, and analytics\n */\n\nimport { randomUUID } from 'crypto';\nimport {\n ThinkingSession,\n SessionConfig,\n SessionMetrics,\n SessionMetadata,\n Thought,\n ThinkingMode,\n ExportFormat\n} from '../types/index.js';\nimport { TemporalThought, isTemporalThought } from '../types/modes/temporal.js';\n\n/**\n * Default session configuration\n */\nconst DEFAULT_CONFIG: SessionConfig = {\n modeConfig: {\n mode: ThinkingMode.HYBRID,\n strictValidation: false,\n allowModeSwitch: true\n },\n enableAutoSave: true,\n enableValidation: true,\n enableVisualization: true,\n integrations: {},\n exportFormats: ['markdown', 'latex', 'json'],\n autoExportOnComplete: false,\n maxThoughtsInMemory: 1000,\n compressionThreshold: 500\n};\n\n/**\n * Session Manager\n */\nexport class SessionManager {\n private activeSessions: Map<string, ThinkingSession>;\n private config: Partial<SessionConfig>;\n\n constructor(config?: Partial<SessionConfig>) {\n this.activeSessions = new Map();\n this.config = config || {};\n }\n\n /**\n * Create a new thinking session\n */\n async createSession(options: {\n title?: string;\n mode?: ThinkingMode;\n domain?: string;\n author?: string;\n config?: Partial<SessionConfig>;\n } = {}): Promise<ThinkingSession> {\n const sessionId = randomUUID();\n const now = new Date();\n\n const session: ThinkingSession = {\n id: sessionId,\n title: options.title || 'Untitled Session',\n mode: options.mode || ThinkingMode.HYBRID,\n domain: options.domain,\n config: this.mergeConfig(options.config),\n thoughts: [],\n createdAt: now,\n updatedAt: now,\n author: options.author,\n currentThoughtNumber: 0,\n isComplete: false,\n metrics: this.initializeMetrics(),\n tags: [],\n collaborators: options.author ? [options.author] : []\n };\n\n this.activeSessions.set(sessionId, session);\n return session;\n }\n\n /**\n * Get a session by ID\n */\n async getSession(sessionId: string): Promise<ThinkingSession | null> {\n return this.activeSessions.get(sessionId) || null;\n }\n\n /**\n * Add a thought to a session\n */\n async addThought(sessionId: string, thought: Thought): Promise<ThinkingSession> {\n const session = this.activeSessions.get(sessionId);\n if (!session) {\n throw new Error(`Session ${sessionId} not found`);\n }\n\n // Update thought with session metadata\n thought.sessionId = sessionId;\n thought.timestamp = new Date();\n\n // Add thought to session\n session.thoughts.push(thought);\n session.currentThoughtNumber = thought.thoughtNumber;\n session.updatedAt = new Date();\n\n // Update metrics\n this.updateMetrics(session, thought);\n\n // Check if session is complete\n if (!thought.nextThoughtNeeded) {\n session.isComplete = true;\n }\n\n return session;\n }\n\n /**\n * Update session mode\n */\n async switchMode(\n sessionId: string,\n newMode: ThinkingMode,\n reason?: string\n ): Promise<ThinkingSession> {\n const session = this.activeSessions.get(sessionId);\n if (!session) {\n throw new Error(`Session ${sessionId} not found`);\n }\n\n const oldMode = session.mode;\n session.mode = newMode;\n session.config.modeConfig.mode = newMode;\n session.updatedAt = new Date();\n\n return session;\n }\n\n /**\n * List all sessions\n */\n async listSessions(): Promise<SessionMetadata[]> {\n return Array.from(this.activeSessions.values()).map(session => ({\n id: session.id,\n title: session.title,\n createdAt: session.createdAt,\n updatedAt: session.updatedAt,\n thoughtCount: session.thoughts.length,\n mode: session.mode,\n isComplete: session.isComplete\n }));\n }\n\n /**\n * Delete a session\n */\n async deleteSession(sessionId: string): Promise<void> {\n this.activeSessions.delete(sessionId);\n }\n\n /**\n * Generate summary of session\n */\n async generateSummary(sessionId: string): Promise<string> {\n const session = this.activeSessions.get(sessionId);\n if (!session) {\n throw new Error(`Session ${sessionId} not found`);\n }\n\n let summary = `# ${session.title}\\n\\n`;\n summary += `Mode: ${session.mode}\\n`;\n summary += `Total Thoughts: ${session.thoughts.length}\\n`;\n summary += `Status: ${session.isComplete ? 'Complete' : 'In Progress'}\\n\\n`;\n\n summary += `## Key Thoughts:\\n\\n`;\n for (const thought of session.thoughts) {\n summary += `${thought.thoughtNumber}. ${thought.content.substring(0, 100)}...\\n`;\n }\n\n return summary;\n }\n\n /**\n * Merge configurations\n */\n private mergeConfig(userConfig?: Partial<SessionConfig>): SessionConfig {\n return {\n ...DEFAULT_CONFIG,\n ...this.config,\n ...userConfig\n } as SessionConfig;\n }\n\n /**\n * Initialize metrics\n */\n private initializeMetrics(): SessionMetrics {\n return {\n totalThoughts: 0,\n thoughtsByType: {},\n averageUncertainty: 0,\n revisionCount: 0,\n timeSpent: 0,\n dependencyDepth: 0\n };\n }\n\n /**\n * Update session metrics\n */\n private updateMetrics(session: ThinkingSession, thought: Thought): void {\n const metrics = session.metrics;\n\n // Update total thoughts\n metrics.totalThoughts = session.thoughts.length;\n\n // Update revision count\n if (thought.isRevision) {\n metrics.revisionCount++;\n }\n\n // Update time spent (in milliseconds)\n metrics.timeSpent = session.updatedAt.getTime() - session.createdAt.getTime();\n\n // Update average uncertainty (for modes that have uncertainty)\n if ('uncertainty' in thought) {\n const totalUncertainty = session.thoughts\n .filter(t => 'uncertainty' in t)\n .reduce((sum, t) => sum + (t as any).uncertainty, 0);\n const thoughtsWithUncertainty = session.thoughts.filter(t => 'uncertainty' in t).length;\n metrics.averageUncertainty = thoughtsWithUncertainty > 0\n ? totalUncertainty / thoughtsWithUncertainty\n : 0;\n }\n\n // Update dependency depth\n if ('dependencies' in thought && thought.dependencies) {\n const deps = (thought as any).dependencies as string[];\n if (deps && deps.length > metrics.dependencyDepth) {\n metrics.dependencyDepth = deps.length;\n }\n }\n\n // Temporal-specific metrics (Phase 3, v2.1)\n if (isTemporalThought(thought)) {\n if (thought.events) {\n metrics.customMetrics.set('totalEvents', thought.events.length);\n }\n if (thought.timeline) {\n metrics.customMetrics.set('timelineUnit', thought.timeline.timeUnit);\n }\n if (thought.relations) {\n const causalRelations = thought.relations.filter(r => r.relationType === 'causes');\n metrics.customMetrics.set('causalRelations', causalRelations.length);\n }\n if (thought.constraints) {\n metrics.customMetrics.set('temporalConstraints', thought.constraints.length);\n }\n if (thought.intervals) {\n metrics.customMetrics.set('timeIntervals', thought.intervals.length);\n }\n }\n }\n}\n","#!/usr/bin/env node\n\n/**\n * DeepThinking MCP Server\n * Unified deep thinking server combining sequential, Shannon, and mathematical reasoning\n */\n\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from '@modelcontextprotocol/sdk/types.js';\nimport { randomUUID } from 'crypto';\n\nimport { thinkingTool, ThinkingToolInput, ThinkingToolSchema } from './tools/thinking.js';\nimport { SessionManager } from './session/index.js';\nimport {\n ThinkingMode,\n ShannonStage,\n SequentialThought,\n ShannonThought,\n MathematicsThought,\n PhysicsThought,\n HybridThought,\n AbductiveThought,\n CausalThought,\n BayesianThought,\n CounterfactualThought,\n AnalogicalThought,\n TemporalThought,\n} from './types/index.js';\n\nconst server = new Server(\n {\n name: 'deepthinking-mcp',\n version: '1.0.0',\n },\n {\n capabilities: {\n tools: {},\n },\n }\n);\n\nconst sessionManager = new SessionManager();\n\nserver.setRequestHandler(ListToolsRequestSchema, async () => {\n return {\n tools: [thinkingTool],\n };\n});\n\nserver.setRequestHandler(CallToolRequestSchema, async (request) => {\n const { name, arguments: args } = request.params;\n\n if (name === 'deepthinking') {\n try {\n const input = ThinkingToolSchema.parse(args) as ThinkingToolInput;\n\n switch (input.action) {\n case 'add_thought':\n return await handleAddThought(input);\n case 'summarize':\n return await handleSummarize(input);\n case 'export':\n return await handleExport(input);\n case 'switch_mode':\n return await handleSwitchMode(input);\n case 'get_session':\n return await handleGetSession(input);\n default:\n throw new Error(`Unknown action: ${input.action}`);\n }\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Error: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }\n\n throw new Error(`Unknown tool: ${name}`);\n});\n\nasync function handleAddThought(input: ThinkingToolInput) {\n let sessionId = input.sessionId;\n if (!sessionId) {\n const session = await sessionManager.createSession({\n mode: input.mode as ThinkingMode,\n title: `Thinking Session ${new Date().toISOString()}`,\n });\n sessionId = session.id;\n }\n\n const thought = createThought(input, sessionId);\n const session = await sessionManager.addThought(sessionId, thought);\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify({\n sessionId: session.id,\n thoughtId: thought.id,\n thoughtNumber: thought.thoughtNumber,\n mode: thought.mode,\n nextThoughtNeeded: thought.nextThoughtNeeded,\n sessionComplete: session.isComplete,\n totalThoughts: session.thoughts.length,\n }, null, 2),\n },\n ],\n };\n}\n\nasync function handleSummarize(input: ThinkingToolInput) {\n if (!input.sessionId) {\n throw new Error('sessionId required for summarize action');\n }\n\n const summary = await sessionManager.generateSummary(input.sessionId);\n\n return {\n content: [\n {\n type: 'text',\n text: summary,\n },\n ],\n };\n}\n\nasync function handleExport(input: ThinkingToolInput) {\n if (!input.sessionId) {\n throw new Error('sessionId required for export action');\n }\n\n const session = await sessionManager.getSession(input.sessionId);\n if (!session) {\n throw new Error(`Session ${input.sessionId} not found`);\n }\n\n const exported = JSON.stringify(session, null, 2);\n\n return {\n content: [\n {\n type: 'text',\n text: exported,\n },\n ],\n };\n}\n\nasync function handleSwitchMode(input: ThinkingToolInput) {\n if (!input.sessionId || !input.newMode) {\n throw new Error('sessionId and newMode required for switch_mode action');\n }\n\n const session = await sessionManager.switchMode(\n input.sessionId,\n input.newMode as ThinkingMode,\n 'User requested mode switch'\n );\n\n return {\n content: [\n {\n type: 'text',\n text: `Switched session ${session.id} to ${session.mode} mode`,\n },\n ],\n };\n}\n\nasync function handleGetSession(input: ThinkingToolInput) {\n if (!input.sessionId) {\n throw new Error('sessionId required for get_session action');\n }\n\n const session = await sessionManager.getSession(input.sessionId);\n if (!session) {\n throw new Error(`Session ${input.sessionId} not found`);\n }\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify({\n id: session.id,\n title: session.title,\n mode: session.mode,\n thoughtCount: session.thoughts.length,\n isComplete: session.isComplete,\n metrics: session.metrics,\n }, null, 2),\n },\n ],\n };\n}\n\nfunction createThought(input: ThinkingToolInput, sessionId: string) {\n const baseThought = {\n id: randomUUID(),\n sessionId,\n thoughtNumber: input.thoughtNumber,\n totalThoughts: input.totalThoughts,\n content: input.thought,\n timestamp: new Date(),\n nextThoughtNeeded: input.nextThoughtNeeded,\n isRevision: input.isRevision,\n revisesThought: input.revisesThought,\n };\n\n switch (input.mode) {\n case 'sequential':\n return {\n ...baseThought,\n mode: ThinkingMode.SEQUENTIAL,\n revisionReason: input.revisionReason,\n branchFrom: input.branchFrom,\n branchId: input.branchId,\n } as SequentialThought;\n\n case 'shannon':\n return {\n ...baseThought,\n mode: ThinkingMode.SHANNON,\n stage: (input.stage as ShannonStage) || ShannonStage.PROBLEM_DEFINITION,\n uncertainty: input.uncertainty || 0.5,\n dependencies: input.dependencies || [],\n assumptions: input.assumptions || [],\n } as ShannonThought;\n\n case 'mathematics':\n return {\n ...baseThought,\n mode: ThinkingMode.MATHEMATICS,\n thoughtType: input.thoughtType as any,\n mathematicalModel: input.mathematicalModel,\n proofStrategy: input.proofStrategy,\n dependencies: input.dependencies || [],\n assumptions: input.assumptions || [],\n uncertainty: input.uncertainty || 0.5,\n } as MathematicsThought;\n\n case 'physics':\n return {\n ...baseThought,\n mode: ThinkingMode.PHYSICS,\n thoughtType: input.thoughtType as any,\n tensorProperties: input.tensorProperties,\n physicalInterpretation: input.physicalInterpretation,\n dependencies: input.dependencies || [],\n assumptions: input.assumptions || [],\n uncertainty: input.uncertainty || 0.5,\n } as PhysicsThought;\n\n case 'abductive':\n return {\n ...baseThought,\n mode: ThinkingMode.ABDUCTIVE,\n thoughtType: input.thoughtType as any,\n observations: input.observations || [],\n hypotheses: input.hypotheses || [],\n evaluationCriteria: input.evaluationCriteria,\n evidence: input.evidence || [],\n bestExplanation: input.bestExplanation,\n } as AbductiveThought;\n\n case 'causal':\n return {\n ...baseThought,\n mode: ThinkingMode.CAUSAL,\n thoughtType: input.thoughtType as any,\n causalGraph: input.causalGraph,\n interventions: input.interventions || [],\n mechanisms: input.mechanisms || [],\n confounders: input.confounders || [],\n } as CausalThought;\n\n case 'bayesian':\n return {\n ...baseThought,\n mode: ThinkingMode.BAYESIAN,\n thoughtType: input.thoughtType as any,\n hypothesis: input.hypothesis,\n prior: input.prior,\n likelihood: input.likelihood,\n evidence: input.evidence || [],\n posterior: input.posterior,\n bayesFactor: input.bayesFactor,\n } as unknown as BayesianThought;\n\n case 'counterfactual':\n return {\n ...baseThought,\n mode: ThinkingMode.COUNTERFACTUAL,\n thoughtType: input.thoughtType as any,\n actual: input.actual,\n counterfactuals: input.counterfactuals || [],\n comparison: input.comparison,\n interventionPoint: input.interventionPoint,\n causalChains: input.causalChains || [],\n } as CounterfactualThought;\n\n case 'analogical':\n return {\n ...baseThought,\n mode: ThinkingMode.ANALOGICAL,\n thoughtType: input.thoughtType as any,\n sourceDomain: input.sourceDomain,\n targetDomain: input.targetDomain,\n mapping: input.mapping || [],\n insights: input.insights || [],\n inferences: input.inferences || [],\n limitations: input.limitations || [],\n analogyStrength: input.analogyStrength,\n } as unknown as AnalogicalThought;\n\n case 'temporal':\n return {\n ...baseThought,\n mode: ThinkingMode.TEMPORAL,\n thoughtType: input.thoughtType as any,\n timeline: input.timeline,\n events: input.events || [],\n intervals: input.intervals || [],\n constraints: input.constraints || [],\n relations: input.relations || [],\n } as TemporalThought;\n\n case 'hybrid':\n default:\n return {\n ...baseThought,\n mode: ThinkingMode.HYBRID,\n thoughtType: input.thoughtType as any,\n stage: input.stage as ShannonStage,\n uncertainty: input.uncertainty,\n dependencies: input.dependencies,\n assumptions: input.assumptions,\n mathematicalModel: input.mathematicalModel,\n tensorProperties: input.tensorProperties,\n physicalInterpretation: input.physicalInterpretation,\n primaryMode: input.mode as any,\n secondaryFeatures: [],\n } as HybridThought;\n }\n}\n\nasync function main() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('DeepThinking MCP server running on stdio');\n}\n\nmain().catch((error) => {\n console.error('Fatal error:', error);\n process.exit(1);\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepthinking-mcp",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "Comprehensive MCP server with 10 advanced reasoning modes: Sequential, Shannon, Mathematics, Physics, Hybrid, Abductive, Causal, Bayesian, Counterfactual, and Analogical reasoning",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",