deepthinking-mcp 2.0.0 → 2.1.0

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/README.md CHANGED
@@ -1,10 +1,10 @@
1
- # DeepThinking MCP v2.0
1
+ # DeepThinking MCP v2.1
2
2
 
3
- A comprehensive Model Context Protocol (MCP) server featuring **10 advanced reasoning modes** for complex problem-solving, analysis, and decision-making.
3
+ A comprehensive Model Context Protocol (MCP) server featuring **11 advanced reasoning modes** for complex problem-solving, analysis, and decision-making.
4
4
 
5
5
  ## Overview
6
6
 
7
- DeepThinking MCP v2.0 provides a complete toolkit for structured reasoning with 10 specialized modes:
7
+ DeepThinking MCP v2.1 provides a complete toolkit for structured reasoning with 11 specialized modes:
8
8
 
9
9
  ### Core Modes
10
10
  - **Sequential**: Iterative refinement with revision capabilities
@@ -19,10 +19,12 @@ DeepThinking MCP v2.0 provides a complete toolkit for structured reasoning with
19
19
  - **Bayesian**: Probabilistic reasoning with evidence updates
20
20
  - **Counterfactual**: What-if scenario analysis and alternative histories
21
21
  - **Analogical**: Cross-domain pattern matching and knowledge transfer
22
+ n### Phase 3 Modes (v2.1+)
23
+ - **Temporal**: Event timelines, temporal constraints, Allen's interval algebra, causal relations over time
22
24
 
23
25
  ## Features
24
26
 
25
- ### 10 Specialized Reasoning Modes
27
+ ### 11 Specialized Reasoning Modes
26
28
 
27
29
  #### Core Modes
28
30
  - **Sequential**: Iterative refinement with revision capabilities and branching
@@ -37,6 +39,8 @@ DeepThinking MCP v2.0 provides a complete toolkit for structured reasoning with
37
39
  - **Bayesian**: Update beliefs using probabilistic reasoning with priors, likelihoods, and evidence. Essential for risk assessment and A/B testing.
38
40
  - **Counterfactual**: Explore alternative scenarios and compare outcomes. Excellent for post-mortems and strategic planning.
39
41
  - **Analogical**: Transfer knowledge across domains by identifying structural similarities. Great for design patterns and innovative problem-solving.
42
+ n#### Phase 3 Reasoning Modes (v2.1+)
43
+ - **Temporal**: Model events, intervals, and temporal relationships using Allen's interval algebra. Track causality over time with timestamps, durations, and temporal constraints. Perfect for timeline analysis, scheduling problems, and understanding event sequences.
40
44
 
41
45
  ### Mathematical Enhancements
42
46
  - **Symbolic computation** support with LaTeX and symbolic formats
@@ -116,7 +120,7 @@ The hybrid mode automatically selects the best features from each mode.
116
120
  - `thoughtNumber` (number, required): Position in sequence
117
121
  - `totalThoughts` (number, required): Estimated total thoughts needed
118
122
  - `nextThoughtNeeded` (boolean, required): Whether to continue thinking
119
- - `mode` (string, optional): `sequential`, `shannon`, `mathematics`, `physics`, `hybrid`, `abductive`, `causal`, `bayesian`, `counterfactual`, or `analogical` (default: `hybrid`)
123
+ - `mode` (string, optional): `sequential`, `shannon`, `mathematics`, `physics`, `hybrid`, `abductive`, `causal`, `bayesian`, `counterfactual`, `analogical`, or `temporal` (default: `hybrid`)
120
124
 
121
125
  ### Mode-Specific Parameters
122
126
 
@@ -179,6 +183,12 @@ The hybrid mode automatically selects the best features from each mode.
179
183
  - `inferences`: Predictions based on analogical reasoning
180
184
  - `limitations`: Where the analogy breaks down
181
185
  - `analogyStrength`: Overall confidence in the analogy (0-1)
186
+ n#### Temporal Mode
187
+ - `timeline`: Timeline structure with id, name, timeUnit, events array
188
+ - `events`: Temporal events (instant or interval) with timestamps, duration, properties
189
+ - `intervals`: Time intervals with start, end, overlaps, contains relationships
190
+ - `constraints`: Allen's interval algebra constraints (before, after, during, overlaps, meets, starts, finishes, equals)
191
+ - `relations`: Temporal causal relations (causes, enables, prevents, precedes, follows) with strength and delay
182
192
 
183
193
  ### Actions
184
194
  - `add_thought` (default): Add a new thought to session
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { z } from 'zod';
7
7
 
8
8
  var ThinkingToolSchema = z.object({
9
9
  sessionId: z.string().optional(),
10
- mode: z.enum(["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical"]).default("hybrid"),
10
+ mode: z.enum(["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"]).default("hybrid"),
11
11
  thought: z.string(),
12
12
  thoughtNumber: z.number().int().positive(),
13
13
  totalThoughts: z.number().int().positive(),
@@ -44,13 +44,54 @@ var ThinkingToolSchema = z.object({
44
44
  units: z.string(),
45
45
  conservationLaws: z.array(z.string())
46
46
  }).optional(),
47
+ // Temporal reasoning properties (Phase 3, v2.1)
48
+ timeline: z.object({
49
+ id: z.string(),
50
+ name: z.string(),
51
+ timeUnit: z.enum(["milliseconds", "seconds", "minutes", "hours", "days", "months", "years"]),
52
+ startTime: z.number().optional(),
53
+ endTime: z.number().optional(),
54
+ events: z.array(z.string())
55
+ }).optional(),
56
+ events: z.array(z.object({
57
+ id: z.string(),
58
+ name: z.string(),
59
+ description: z.string(),
60
+ timestamp: z.number(),
61
+ duration: z.number().optional(),
62
+ type: z.enum(["instant", "interval"]),
63
+ properties: z.record(z.any())
64
+ })).optional(),
65
+ intervals: z.array(z.object({
66
+ id: z.string(),
67
+ name: z.string(),
68
+ start: z.number(),
69
+ end: z.number(),
70
+ overlaps: z.array(z.string()).optional(),
71
+ contains: z.array(z.string()).optional()
72
+ })).optional(),
73
+ constraints: z.array(z.object({
74
+ id: z.string(),
75
+ type: z.enum(["before", "after", "during", "overlaps", "meets", "starts", "finishes", "equals"]),
76
+ subject: z.string(),
77
+ object: z.string(),
78
+ confidence: z.number().min(0).max(1)
79
+ })).optional(),
80
+ relations: z.array(z.object({
81
+ id: z.string(),
82
+ from: z.string(),
83
+ to: z.string(),
84
+ relationType: z.enum(["causes", "enables", "prevents", "precedes", "follows"]),
85
+ strength: z.number().min(0).max(1),
86
+ delay: z.number().optional()
87
+ })).optional(),
47
88
  action: z.enum(["add_thought", "summarize", "export", "switch_mode", "get_session"]).default("add_thought"),
48
89
  exportFormat: z.enum(["markdown", "latex", "json", "html", "jupyter"]).optional(),
49
- newMode: z.enum(["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical"]).optional()
90
+ newMode: z.enum(["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"]).optional()
50
91
  });
51
92
  var thinkingTool = {
52
93
  name: "deepthinking",
53
- description: `Advanced deep thinking tool supporting 10 reasoning modes:
94
+ description: `Advanced deep thinking tool supporting 13 reasoning modes:
54
95
 
55
96
  Core Modes:
56
97
  - sequential: Iterative refinement and exploration
@@ -66,6 +107,11 @@ Advanced Modes (v2.0):
66
107
  - counterfactual: What-if scenario analysis
67
108
  - analogical: Cross-domain pattern matching and insights
68
109
 
110
+ Phase 3 Modes (v2.1+):
111
+ - temporal: Event timelines, temporal constraints, causal relations over time
112
+ - gametheory: Nash equilibria, strategic analysis, payoff matrices
113
+ - evidential: Dempster-Shafer theory, belief functions, evidence combination
114
+
69
115
  Choose the mode that best fits your problem type.`,
70
116
  inputSchema: {
71
117
  type: "object",
@@ -76,7 +122,7 @@ Choose the mode that best fits your problem type.`,
76
122
  },
77
123
  mode: {
78
124
  type: "string",
79
- enum: ["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical"],
125
+ enum: ["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"],
80
126
  description: "Thinking mode to use"
81
127
  },
82
128
  thought: {
@@ -203,6 +249,125 @@ Choose the mode that best fits your problem type.`,
203
249
  },
204
250
  required: ["quantity", "units", "conservationLaws"]
205
251
  },
252
+ // Temporal reasoning properties (Phase 3, v2.1)
253
+ timeline: {
254
+ type: "object",
255
+ properties: {
256
+ id: { type: "string" },
257
+ name: { type: "string" },
258
+ timeUnit: {
259
+ type: "string",
260
+ enum: ["milliseconds", "seconds", "minutes", "hours", "days", "months", "years"],
261
+ description: "Time unit for the timeline"
262
+ },
263
+ startTime: { type: "number", description: "Optional start time" },
264
+ endTime: { type: "number", description: "Optional end time" },
265
+ events: {
266
+ type: "array",
267
+ items: { type: "string" },
268
+ description: "Event IDs in this timeline"
269
+ }
270
+ },
271
+ required: ["id", "name", "timeUnit", "events"],
272
+ description: "Timeline structure for temporal reasoning"
273
+ },
274
+ events: {
275
+ type: "array",
276
+ items: {
277
+ type: "object",
278
+ properties: {
279
+ id: { type: "string" },
280
+ name: { type: "string" },
281
+ description: { type: "string" },
282
+ timestamp: { type: "number", description: "Event timestamp" },
283
+ duration: { type: "number", description: "Duration for interval events" },
284
+ type: {
285
+ type: "string",
286
+ enum: ["instant", "interval"],
287
+ description: "Event type"
288
+ },
289
+ properties: {
290
+ type: "object",
291
+ description: "Additional event properties"
292
+ }
293
+ },
294
+ required: ["id", "name", "description", "timestamp", "type", "properties"]
295
+ },
296
+ description: "Temporal events"
297
+ },
298
+ intervals: {
299
+ type: "array",
300
+ items: {
301
+ type: "object",
302
+ properties: {
303
+ id: { type: "string" },
304
+ name: { type: "string" },
305
+ start: { type: "number", description: "Interval start time" },
306
+ end: { type: "number", description: "Interval end time" },
307
+ overlaps: {
308
+ type: "array",
309
+ items: { type: "string" },
310
+ description: "IDs of overlapping intervals"
311
+ },
312
+ contains: {
313
+ type: "array",
314
+ items: { type: "string" },
315
+ description: "IDs of contained intervals"
316
+ }
317
+ },
318
+ required: ["id", "name", "start", "end"]
319
+ },
320
+ description: "Time intervals with Allen's algebra relationships"
321
+ },
322
+ constraints: {
323
+ type: "array",
324
+ items: {
325
+ type: "object",
326
+ properties: {
327
+ id: { type: "string" },
328
+ type: {
329
+ type: "string",
330
+ enum: ["before", "after", "during", "overlaps", "meets", "starts", "finishes", "equals"],
331
+ description: "Allen's interval algebra constraint type"
332
+ },
333
+ subject: { type: "string", description: "Subject event/interval ID" },
334
+ object: { type: "string", description: "Object event/interval ID" },
335
+ confidence: {
336
+ type: "number",
337
+ minimum: 0,
338
+ maximum: 1,
339
+ description: "Confidence in constraint (0-1)"
340
+ }
341
+ },
342
+ required: ["id", "type", "subject", "object", "confidence"]
343
+ },
344
+ description: "Temporal constraints using Allen's interval algebra"
345
+ },
346
+ relations: {
347
+ type: "array",
348
+ items: {
349
+ type: "object",
350
+ properties: {
351
+ id: { type: "string" },
352
+ from: { type: "string", description: "Source event ID" },
353
+ to: { type: "string", description: "Target event ID" },
354
+ relationType: {
355
+ type: "string",
356
+ enum: ["causes", "enables", "prevents", "precedes", "follows"],
357
+ description: "Type of temporal relation"
358
+ },
359
+ strength: {
360
+ type: "number",
361
+ minimum: 0,
362
+ maximum: 1,
363
+ description: "Relation strength (0-1)"
364
+ },
365
+ delay: { type: "number", description: "Optional time delay between events" }
366
+ },
367
+ required: ["id", "from", "to", "relationType", "strength"]
368
+ },
369
+ description: "Temporal causal/enabling relations"
370
+ },
206
371
  action: {
207
372
  type: "string",
208
373
  enum: ["add_thought", "summarize", "export", "switch_mode", "get_session"],
@@ -215,13 +380,20 @@ Choose the mode that best fits your problem type.`,
215
380
  },
216
381
  newMode: {
217
382
  type: "string",
218
- enum: ["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical"],
383
+ enum: ["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"],
219
384
  description: "New mode for switch_mode action"
220
385
  }
221
386
  },
222
387
  required: ["thought", "thoughtNumber", "totalThoughts", "nextThoughtNeeded"]
223
388
  }
224
389
  };
390
+
391
+ // src/types/modes/temporal.ts
392
+ function isTemporalThought(thought) {
393
+ return thought.mode === "temporal";
394
+ }
395
+
396
+ // src/session/manager.ts
225
397
  var DEFAULT_CONFIG = {
226
398
  modeConfig: {
227
399
  mode: "hybrid" /* HYBRID */,
@@ -393,12 +565,30 @@ var SessionManager = class {
393
565
  const thoughtsWithUncertainty = session.thoughts.filter((t) => "uncertainty" in t).length;
394
566
  metrics.averageUncertainty = thoughtsWithUncertainty > 0 ? totalUncertainty / thoughtsWithUncertainty : 0;
395
567
  }
396
- if ("dependencies" in thought) {
568
+ if ("dependencies" in thought && thought.dependencies) {
397
569
  const deps = thought.dependencies;
398
- if (deps.length > metrics.dependencyDepth) {
570
+ if (deps && deps.length > metrics.dependencyDepth) {
399
571
  metrics.dependencyDepth = deps.length;
400
572
  }
401
573
  }
574
+ if (isTemporalThought(thought)) {
575
+ if (thought.events) {
576
+ metrics.customMetrics.set("totalEvents", thought.events.length);
577
+ }
578
+ if (thought.timeline) {
579
+ metrics.customMetrics.set("timelineUnit", thought.timeline.timeUnit);
580
+ }
581
+ if (thought.relations) {
582
+ const causalRelations = thought.relations.filter((r) => r.relationType === "causes");
583
+ metrics.customMetrics.set("causalRelations", causalRelations.length);
584
+ }
585
+ if (thought.constraints) {
586
+ metrics.customMetrics.set("temporalConstraints", thought.constraints.length);
587
+ }
588
+ if (thought.intervals) {
589
+ metrics.customMetrics.set("timeIntervals", thought.intervals.length);
590
+ }
591
+ }
402
592
  }
403
593
  };
404
594
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/thinking.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.0\n * Supports 10 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']).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 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']).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 10 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\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\"],\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 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\"],\n description: \"New mode for switch_mode action\"\n }\n },\n required: [\"thought\", \"thoughtNumber\", \"totalThoughts\", \"nextThoughtNeeded\"]\n }\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';\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) {\n const deps = (thought as any).dependencies as string[];\n if (deps.length > metrics.dependencyDepth) {\n metrics.dependencyDepth = deps.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 // 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"]}
package/package.json CHANGED
@@ -1,72 +1,73 @@
1
- {
2
- "name": "deepthinking-mcp",
3
- "version": "2.0.0",
4
- "description": "Comprehensive MCP server with 10 advanced reasoning modes: Sequential, Shannon, Mathematics, Physics, Hybrid, Abductive, Causal, Bayesian, Counterfactual, and Analogical reasoning",
5
- "author": "Daniel Simon Jr.",
6
- "license": "MIT",
7
- "type": "module",
8
- "bin": {
9
- "deepthinking-mcp": "./dist/index.js"
10
- },
11
- "main": "./dist/index.js",
12
- "types": "./dist/index.d.ts",
13
- "files": [
14
- "dist/",
15
- "README.md",
16
- "LICENSE"
17
- ],
18
- "scripts": {
19
- "build": "tsup",
20
- "dev": "tsup --watch",
21
- "test": "vitest",
22
- "test:coverage": "vitest --coverage",
23
- "lint": "eslint src/",
24
- "format": "prettier --write src/",
25
- "typecheck": "tsc --noEmit",
26
- "prepublishOnly": "npm run build && npm test"
27
- },
28
- "dependencies": {
29
- "@modelcontextprotocol/sdk": "^1.0.4",
30
- "zod": "^3.22.4",
31
- "zod-to-json-schema": "^3.24.6"
32
- },
33
- "devDependencies": {
34
- "@types/node": "^20.11.0",
35
- "@typescript-eslint/eslint-plugin": "^6.19.0",
36
- "@typescript-eslint/parser": "^6.19.0",
37
- "@vitest/coverage-v8": "^1.2.0",
38
- "eslint": "^8.56.0",
39
- "prettier": "^3.2.4",
40
- "tsup": "^8.0.1",
41
- "typescript": "^5.3.3",
42
- "vitest": "^1.2.0"
43
- },
44
- "keywords": [
45
- "mcp",
46
- "model-context-protocol",
47
- "thinking",
48
- "reasoning",
49
- "sequential-thinking",
50
- "shannon-thinking",
51
- "physics",
52
- "mathematics",
53
- "tensor",
54
- "deep-thinking",
55
- "mathematical-reasoning",
56
- "abductive-reasoning",
57
- "causal-analysis",
58
- "bayesian-inference",
59
- "counterfactual-analysis",
60
- "analogical-reasoning",
61
- "causal-graphs",
62
- "hypothesis-generation",
63
- "probabilistic-reasoning"
64
- ],
65
- "repository": {
66
- "type": "git",
67
- "url": "https://github.com/danielsimonjr/deepthinking-mcp"
68
- },
69
- "engines": {
70
- "node": ">=18.0.0"
71
- }
72
- }
1
+ {
2
+ "name": "deepthinking-mcp",
3
+ "version": "2.1.0",
4
+ "description": "Comprehensive MCP server with 10 advanced reasoning modes: Sequential, Shannon, Mathematics, Physics, Hybrid, Abductive, Causal, Bayesian, Counterfactual, and Analogical reasoning",
5
+ "author": "Daniel Simon Jr.",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bin": {
9
+ "deepthinking-mcp": "./dist/index.js"
10
+ },
11
+ "main": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "files": [
14
+ "dist/",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsup",
20
+ "dev": "tsup --watch",
21
+ "test": "vitest",
22
+ "test:run": "vitest --run",
23
+ "test:coverage": "vitest --coverage",
24
+ "lint": "eslint src/",
25
+ "format": "prettier --write src/",
26
+ "typecheck": "tsc --noEmit",
27
+ "prepublishOnly": "npm run build && npm run test:run"
28
+ },
29
+ "dependencies": {
30
+ "@modelcontextprotocol/sdk": "^1.0.4",
31
+ "zod": "^3.22.4",
32
+ "zod-to-json-schema": "^3.24.6"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^20.11.0",
36
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
37
+ "@typescript-eslint/parser": "^6.19.0",
38
+ "@vitest/coverage-v8": "^1.2.0",
39
+ "eslint": "^8.56.0",
40
+ "prettier": "^3.2.4",
41
+ "tsup": "^8.0.1",
42
+ "typescript": "^5.3.3",
43
+ "vitest": "^1.2.0"
44
+ },
45
+ "keywords": [
46
+ "mcp",
47
+ "model-context-protocol",
48
+ "thinking",
49
+ "reasoning",
50
+ "sequential-thinking",
51
+ "shannon-thinking",
52
+ "physics",
53
+ "mathematics",
54
+ "tensor",
55
+ "deep-thinking",
56
+ "mathematical-reasoning",
57
+ "abductive-reasoning",
58
+ "causal-analysis",
59
+ "bayesian-inference",
60
+ "counterfactual-analysis",
61
+ "analogical-reasoning",
62
+ "causal-graphs",
63
+ "hypothesis-generation",
64
+ "probabilistic-reasoning"
65
+ ],
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "https://github.com/danielsimonjr/deepthinking-mcp"
69
+ },
70
+ "engines": {
71
+ "node": ">=18.0.0"
72
+ }
73
+ }