deepthinking-mcp 2.3.0 → 2.4.1

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.3
1
+ # DeepThinking MCP v2.4
2
2
 
3
- A comprehensive Model Context Protocol (MCP) server featuring **13 advanced reasoning modes** for complex problem-solving, analysis, and decision-making.
3
+ A comprehensive Model Context Protocol (MCP) server featuring **13 advanced reasoning modes** with intelligent mode recommendation for complex problem-solving, analysis, and decision-making.
4
4
 
5
5
  ## Overview
6
6
 
7
- DeepThinking MCP v2.3 provides a complete toolkit for structured reasoning with 13 specialized modes:
7
+ DeepThinking MCP v2.4 provides a complete toolkit for structured reasoning with 13 specialized modes and an intelligent recommendation system:
8
8
 
9
9
  ### Core Modes
10
10
  - **Sequential**: Iterative refinement with revision capabilities
@@ -26,7 +26,7 @@ n### Phase 3 Modes (v2.3+)
26
26
 
27
27
  ## Features
28
28
 
29
- ### 11 Specialized Reasoning Modes
29
+ ### 13 Specialized Reasoning Modes
30
30
 
31
31
  #### Core Modes
32
32
  - **Sequential**: Iterative refinement with revision capabilities and branching
@@ -66,6 +66,13 @@ n#### Phase 3 Reasoning Modes (v2.3+)
66
66
  - Mode switching during problem-solving
67
67
  - Export to multiple formats (Markdown, LaTeX, JSON)
68
68
 
69
+ ### Mode Recommendation System (v2.4)
70
+ - **Intelligent Mode Selection**: Automatically recommends the best reasoning modes based on problem characteristics
71
+ - **Combination Suggestions**: Identifies synergistic mode combinations for complex problems
72
+ - **Quick Recommendations**: Simple problem-type based recommendations
73
+ - **Problem Characteristics Analysis**: Analyzes domain, complexity, uncertainty, time-dependence, and more
74
+ - **Ranked Recommendations**: Returns modes sorted by suitability score with detailed reasoning
75
+
69
76
  ## Installation
70
77
 
71
78
  ```bash
@@ -117,6 +124,49 @@ Use deepthinking to solve this complex problem...
117
124
 
118
125
  The hybrid mode automatically selects the best features from each mode.
119
126
 
127
+ ### Mode Recommendations (v2.4)
128
+
129
+ The recommendation system helps you choose the best reasoning mode for your problem:
130
+
131
+ ```
132
+ What mode should I use for debugging this application?
133
+ ```
134
+
135
+ Returns: **Abductive mode** - Perfect for hypothesis generation and root cause analysis.
136
+
137
+ ```
138
+ I need to analyze a competitive business scenario with multiple players. What modes should I use?
139
+ ```
140
+
141
+ Returns: **Game Theory mode** for strategic analysis, potentially combined with **Counterfactual mode** for scenario exploration.
142
+
143
+ #### Problem Characteristics
144
+
145
+ The recommender analyzes:
146
+ - **Domain**: General, mathematics, physics, engineering, etc.
147
+ - **Complexity**: Low, medium, or high
148
+ - **Uncertainty**: How much unknown information exists
149
+ - **Time-dependent**: Whether events occur over time
150
+ - **Multi-agent**: Whether multiple actors interact strategically
151
+ - **Requires proof**: Whether formal mathematical proof is needed
152
+ - **Requires quantification**: Whether probabilities or measurements are needed
153
+ - **Incomplete information**: Whether data gaps exist
154
+ - **Requires explanation**: Whether understanding "why" is important
155
+ - **Has alternatives**: Whether alternative scenarios should be explored
156
+
157
+ #### Quick Recommendations
158
+
159
+ For simple cases, use problem-type keywords:
160
+ - `debugging` → Abductive mode
161
+ - `proof` → Mathematics mode
162
+ - `timeline` → Temporal mode
163
+ - `strategy` → Game Theory mode
164
+ - `uncertainty` → Evidential mode
165
+ - `causality` → Causal mode
166
+ - `probability` → Bayesian mode
167
+ - `what-if` → Counterfactual mode
168
+
169
+
120
170
  ## Tool Parameters
121
171
 
122
172
  ### Core Parameters
package/dist/index.js CHANGED
@@ -394,9 +394,24 @@ var ThinkingToolSchema = z.object({
394
394
  risk: z.number()
395
395
  }))
396
396
  })).optional(),
397
- action: z.enum(["add_thought", "summarize", "export", "switch_mode", "get_session"]).default("add_thought"),
397
+ action: z.enum(["add_thought", "summarize", "export", "switch_mode", "get_session", "recommend_mode"]).default("add_thought"),
398
398
  exportFormat: z.enum(["markdown", "latex", "json", "html", "jupyter"]).optional(),
399
- newMode: z.enum(["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"]).optional()
399
+ newMode: z.enum(["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"]).optional(),
400
+ // Mode recommendation parameters (v2.4)
401
+ problemType: z.string().optional(),
402
+ problemCharacteristics: z.object({
403
+ domain: z.string(),
404
+ complexity: z.enum(["low", "medium", "high"]),
405
+ uncertainty: z.enum(["low", "medium", "high"]),
406
+ timeDependent: z.boolean(),
407
+ multiAgent: z.boolean(),
408
+ requiresProof: z.boolean(),
409
+ requiresQuantification: z.boolean(),
410
+ hasIncompleteInfo: z.boolean(),
411
+ requiresExplanation: z.boolean(),
412
+ hasAlternatives: z.boolean()
413
+ }).optional(),
414
+ includeCombinations: z.boolean().optional()
400
415
  });
401
416
  var thinkingTool = {
402
417
  name: "deepthinking",
@@ -679,7 +694,7 @@ Choose the mode that best fits your problem type.`,
679
694
  },
680
695
  action: {
681
696
  type: "string",
682
- enum: ["add_thought", "summarize", "export", "switch_mode", "get_session"],
697
+ enum: ["add_thought", "summarize", "export", "switch_mode", "get_session", "recommend_mode"],
683
698
  description: "Action to perform"
684
699
  },
685
700
  exportFormat: {
@@ -691,6 +706,31 @@ Choose the mode that best fits your problem type.`,
691
706
  type: "string",
692
707
  enum: ["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"],
693
708
  description: "New mode for switch_mode action"
709
+ },
710
+ problemType: {
711
+ type: "string",
712
+ description: "Simple problem type for quick recommendations (e.g., 'debugging', 'proof', 'timeline')"
713
+ },
714
+ problemCharacteristics: {
715
+ type: "object",
716
+ properties: {
717
+ domain: { type: "string", description: "Problem domain" },
718
+ complexity: { type: "string", enum: ["low", "medium", "high"], description: "Problem complexity" },
719
+ uncertainty: { type: "string", enum: ["low", "medium", "high"], description: "Uncertainty level" },
720
+ timeDependent: { type: "boolean", description: "Whether problem involves time sequences" },
721
+ multiAgent: { type: "boolean", description: "Whether multiple agents interact" },
722
+ requiresProof: { type: "boolean", description: "Whether formal proof is needed" },
723
+ requiresQuantification: { type: "boolean", description: "Whether quantification is needed" },
724
+ hasIncompleteInfo: { type: "boolean", description: "Whether information is incomplete" },
725
+ requiresExplanation: { type: "boolean", description: "Whether explanation is needed" },
726
+ hasAlternatives: { type: "boolean", description: "Whether alternative scenarios exist" }
727
+ },
728
+ required: ["domain", "complexity", "uncertainty", "timeDependent", "multiAgent", "requiresProof", "requiresQuantification", "hasIncompleteInfo", "requiresExplanation", "hasAlternatives"],
729
+ description: "Detailed problem characteristics for comprehensive recommendations"
730
+ },
731
+ includeCombinations: {
732
+ type: "boolean",
733
+ description: "Whether to include mode combination suggestions"
694
734
  }
695
735
  },
696
736
  required: ["thought", "thoughtNumber", "totalThoughts", "nextThoughtNeeded"]
@@ -712,6 +752,228 @@ function isEvidentialThought(thought) {
712
752
  return thought.mode === "evidential";
713
753
  }
714
754
 
755
+ // src/types/modes/recommendations.ts
756
+ var ModeRecommender = class {
757
+ /**
758
+ * Recommends reasoning modes based on problem characteristics
759
+ * Returns modes ranked by suitability score
760
+ */
761
+ recommendModes(characteristics) {
762
+ const recommendations = [];
763
+ if (characteristics.timeDependent) {
764
+ recommendations.push({
765
+ mode: "temporal" /* TEMPORAL */,
766
+ score: 0.9,
767
+ reasoning: "Problem involves time-dependent events and sequences",
768
+ strengths: ["Event sequencing", "Temporal causality", "Timeline construction"],
769
+ limitations: ["Limited strategic reasoning"],
770
+ examples: ["Process modeling", "Event correlation", "Timeline debugging"]
771
+ });
772
+ }
773
+ if (characteristics.multiAgent) {
774
+ recommendations.push({
775
+ mode: "gametheory" /* GAMETHEORY */,
776
+ score: 0.85,
777
+ reasoning: "Problem involves strategic interactions between agents",
778
+ strengths: ["Equilibrium analysis", "Strategic reasoning", "Multi-agent dynamics"],
779
+ limitations: ["Assumes rationality", "Complex computations"],
780
+ examples: ["Competitive analysis", "Auction design", "Negotiation"]
781
+ });
782
+ }
783
+ if (characteristics.hasIncompleteInfo && characteristics.uncertainty === "high") {
784
+ recommendations.push({
785
+ mode: "evidential" /* EVIDENTIAL */,
786
+ score: 0.88,
787
+ reasoning: "Problem has incomplete information and high uncertainty",
788
+ strengths: ["Handles ignorance", "Evidence combination", "Uncertainty intervals"],
789
+ limitations: ["Computational complexity", "Requires careful mass assignment"],
790
+ examples: ["Sensor fusion", "Diagnostic reasoning", "Intelligence analysis"]
791
+ });
792
+ }
793
+ if (characteristics.requiresExplanation) {
794
+ recommendations.push({
795
+ mode: "abductive" /* ABDUCTIVE */,
796
+ score: 0.87,
797
+ reasoning: "Problem requires finding best explanations",
798
+ strengths: ["Hypothesis generation", "Root cause analysis", "Explanation quality"],
799
+ limitations: ["May miss non-obvious explanations"],
800
+ examples: ["Debugging", "Diagnosis", "Scientific discovery"]
801
+ });
802
+ }
803
+ if (characteristics.timeDependent && characteristics.requiresExplanation) {
804
+ recommendations.push({
805
+ mode: "causal" /* CAUSAL */,
806
+ score: 0.86,
807
+ reasoning: "Problem requires understanding cause-effect relationships",
808
+ strengths: ["Intervention analysis", "Causal graphs", "Impact assessment"],
809
+ limitations: ["Requires domain knowledge", "Difficult to identify confounders"],
810
+ examples: ["Impact analysis", "System design", "Policy evaluation"]
811
+ });
812
+ }
813
+ if (characteristics.requiresQuantification && characteristics.uncertainty !== "low") {
814
+ recommendations.push({
815
+ mode: "bayesian" /* BAYESIAN */,
816
+ score: 0.84,
817
+ reasoning: "Problem requires probabilistic reasoning with evidence updates",
818
+ strengths: ["Principled uncertainty", "Evidence integration", "Prior knowledge"],
819
+ limitations: ["Requires probability estimates", "Computationally intensive"],
820
+ examples: ["A/B testing", "Risk assessment", "Predictive modeling"]
821
+ });
822
+ }
823
+ if (characteristics.hasAlternatives) {
824
+ recommendations.push({
825
+ mode: "counterfactual" /* COUNTERFACTUAL */,
826
+ score: 0.82,
827
+ reasoning: "Problem benefits from analyzing alternative scenarios",
828
+ strengths: ["What-if analysis", "Post-mortem insights", "Decision comparison"],
829
+ limitations: ["Speculative", "Difficult to validate"],
830
+ examples: ["Post-mortems", "Strategic planning", "Architecture decisions"]
831
+ });
832
+ }
833
+ if (characteristics.complexity === "high" && characteristics.requiresExplanation) {
834
+ recommendations.push({
835
+ mode: "analogical" /* ANALOGICAL */,
836
+ score: 0.8,
837
+ reasoning: "Problem can benefit from cross-domain analogies",
838
+ strengths: ["Creative insights", "Knowledge transfer", "Pattern recognition"],
839
+ limitations: ["Analogies may be superficial", "Requires diverse knowledge"],
840
+ examples: ["Novel problem solving", "Design thinking", "Innovation"]
841
+ });
842
+ }
843
+ if (characteristics.requiresProof) {
844
+ recommendations.push({
845
+ mode: "mathematics" /* MATHEMATICS */,
846
+ score: 0.95,
847
+ reasoning: "Problem requires formal proofs and symbolic reasoning",
848
+ strengths: ["Rigorous proofs", "Symbolic computation", "Theorem proving"],
849
+ limitations: ["Limited to mathematical domains"],
850
+ examples: ["Algorithm correctness", "Complexity analysis", "Formal verification"]
851
+ });
852
+ }
853
+ if (characteristics.domain === "physics" || characteristics.domain === "engineering") {
854
+ recommendations.push({
855
+ mode: "physics" /* PHYSICS */,
856
+ score: 0.9,
857
+ reasoning: "Problem involves physical systems or tensor mathematics",
858
+ strengths: ["Field theory", "Conservation laws", "Tensor analysis"],
859
+ limitations: ["Specialized to physics domains"],
860
+ examples: ["Physical modeling", "System dynamics", "Engineering analysis"]
861
+ });
862
+ }
863
+ if (characteristics.complexity === "high" && characteristics.requiresProof) {
864
+ recommendations.push({
865
+ mode: "shannon" /* SHANNON */,
866
+ score: 0.88,
867
+ reasoning: "Complex problem requiring systematic decomposition",
868
+ strengths: ["Systematic approach", "Problem decomposition", "Rigorous analysis"],
869
+ limitations: ["Time-intensive", "Requires discipline"],
870
+ examples: ["Complex system design", "Research problems", "Novel algorithms"]
871
+ });
872
+ }
873
+ if (recommendations.length === 0) {
874
+ recommendations.push({
875
+ mode: "sequential" /* SEQUENTIAL */,
876
+ score: 0.7,
877
+ reasoning: "General-purpose iterative reasoning",
878
+ strengths: ["Flexible", "Adaptable", "Iterative refinement"],
879
+ limitations: ["May lack structure for complex problems"],
880
+ examples: ["General problem solving", "Exploration", "Brainstorming"]
881
+ });
882
+ }
883
+ return recommendations.sort((a, b) => b.score - a.score);
884
+ }
885
+ /**
886
+ * Recommends combinations of reasoning modes that work well together
887
+ */
888
+ recommendCombinations(characteristics) {
889
+ const combinations = [];
890
+ if (characteristics.timeDependent && characteristics.requiresExplanation) {
891
+ combinations.push({
892
+ modes: ["temporal" /* TEMPORAL */, "causal" /* CAUSAL */],
893
+ sequence: "sequential",
894
+ rationale: "Build timeline first, then analyze causal relationships",
895
+ benefits: ["Complete temporal-causal model", "Root cause with timeline context"],
896
+ synergies: ["Temporal events inform causal nodes", "Causal edges explain temporal sequences"]
897
+ });
898
+ }
899
+ if (characteristics.requiresExplanation && characteristics.requiresQuantification) {
900
+ combinations.push({
901
+ modes: ["abductive" /* ABDUCTIVE */, "bayesian" /* BAYESIAN */],
902
+ sequence: "sequential",
903
+ rationale: "Generate hypotheses, then quantify with probabilities",
904
+ benefits: ["Systematic hypothesis generation", "Quantified belief updates"],
905
+ synergies: ["Abductive hypotheses become Bayesian hypotheses", "Bayesian updates refine explanations"]
906
+ });
907
+ }
908
+ if (characteristics.multiAgent && characteristics.hasAlternatives) {
909
+ combinations.push({
910
+ modes: ["gametheory" /* GAMETHEORY */, "counterfactual" /* COUNTERFACTUAL */],
911
+ sequence: "hybrid",
912
+ rationale: "Analyze equilibria, then explore alternative strategies",
913
+ benefits: ["Strategic analysis + scenario exploration", "Robustness testing"],
914
+ synergies: ["Equilibria as actual scenarios", "Strategy changes as interventions"]
915
+ });
916
+ }
917
+ if (characteristics.hasIncompleteInfo && characteristics.timeDependent) {
918
+ combinations.push({
919
+ modes: ["evidential" /* EVIDENTIAL */, "causal" /* CAUSAL */],
920
+ sequence: "parallel",
921
+ rationale: "Combine uncertain evidence while modeling causal structure",
922
+ benefits: ["Handles uncertainty and causality", "Evidence fusion with causal reasoning"],
923
+ synergies: ["Belief functions inform causal strengths", "Causal structure guides evidence combination"]
924
+ });
925
+ }
926
+ if (characteristics.timeDependent && characteristics.multiAgent) {
927
+ combinations.push({
928
+ modes: ["temporal" /* TEMPORAL */, "gametheory" /* GAMETHEORY */],
929
+ sequence: "sequential",
930
+ rationale: "Model event sequences, then analyze strategic interactions over time",
931
+ benefits: ["Dynamic game analysis", "Time-dependent strategies"],
932
+ synergies: ["Temporal events as game stages", "Strategies evolve over timeline"]
933
+ });
934
+ }
935
+ if (characteristics.requiresExplanation && characteristics.complexity === "high") {
936
+ combinations.push({
937
+ modes: ["analogical" /* ANALOGICAL */, "abductive" /* ABDUCTIVE */],
938
+ sequence: "parallel",
939
+ rationale: "Use analogies to inspire hypotheses while systematically generating explanations",
940
+ benefits: ["Creative hypothesis generation", "Cross-domain insights"],
941
+ synergies: ["Analogies suggest hypotheses", "Hypotheses validated by analogical reasoning"]
942
+ });
943
+ }
944
+ if (characteristics.requiresProof && characteristics.complexity === "high") {
945
+ combinations.push({
946
+ modes: ["shannon" /* SHANNON */, "mathematics" /* MATHEMATICS */],
947
+ sequence: "hybrid",
948
+ rationale: "Use Shannon methodology to structure complex mathematical proofs",
949
+ benefits: ["Systematic proof construction", "Clear problem decomposition"],
950
+ synergies: ["Shannon stages guide proof strategy", "Mathematical rigor validates each stage"]
951
+ });
952
+ }
953
+ return combinations;
954
+ }
955
+ /**
956
+ * Get a simple mode recommendation based on a few key characteristics
957
+ * Simplified version for quick recommendations
958
+ */
959
+ quickRecommend(problemType) {
960
+ const typeMap = {
961
+ "debugging": "abductive" /* ABDUCTIVE */,
962
+ "proof": "mathematics" /* MATHEMATICS */,
963
+ "timeline": "temporal" /* TEMPORAL */,
964
+ "strategy": "gametheory" /* GAMETHEORY */,
965
+ "uncertainty": "evidential" /* EVIDENTIAL */,
966
+ "causality": "causal" /* CAUSAL */,
967
+ "probability": "bayesian" /* BAYESIAN */,
968
+ "what-if": "counterfactual" /* COUNTERFACTUAL */,
969
+ "analogy": "analogical" /* ANALOGICAL */,
970
+ "physics": "physics" /* PHYSICS */,
971
+ "systematic": "shannon" /* SHANNON */
972
+ };
973
+ return typeMap[problemType.toLowerCase()] || "sequential" /* SEQUENTIAL */;
974
+ }
975
+ };
976
+
715
977
  // src/session/manager.ts
716
978
  var DEFAULT_CONFIG = {
717
979
  modeConfig: {
@@ -990,6 +1252,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
990
1252
  return await handleSwitchMode(input);
991
1253
  case "get_session":
992
1254
  return await handleGetSession(input);
1255
+ case "recommend_mode":
1256
+ return await handleRecommendMode(input);
993
1257
  default:
994
1258
  throw new Error(`Unknown action: ${input.action}`);
995
1259
  }
@@ -1284,6 +1548,92 @@ function createThought(input, sessionId) {
1284
1548
  };
1285
1549
  }
1286
1550
  }
1551
+ async function handleRecommendMode(input) {
1552
+ const recommender = new ModeRecommender();
1553
+ if (input.problemType && !input.problemCharacteristics) {
1554
+ const recommendedMode = recommender.quickRecommend(input.problemType);
1555
+ return {
1556
+ content: [{
1557
+ type: "text",
1558
+ text: `Quick recommendation for "${input.problemType}":
1559
+
1560
+ **Recommended Mode**: ${recommendedMode}
1561
+
1562
+ For more detailed recommendations, provide problemCharacteristics.`
1563
+ }],
1564
+ isError: false
1565
+ };
1566
+ }
1567
+ if (input.problemCharacteristics) {
1568
+ const modeRecs = recommender.recommendModes(input.problemCharacteristics);
1569
+ const combinationRecs = input.includeCombinations ? recommender.recommendCombinations(input.problemCharacteristics) : [];
1570
+ let response = "# Mode Recommendations\n\n";
1571
+ response += "## Individual Modes\n\n";
1572
+ for (const rec of modeRecs) {
1573
+ response += `### ${rec.mode} (Score: ${rec.score})
1574
+ `;
1575
+ response += `**Reasoning**: ${rec.reasoning}
1576
+
1577
+ `;
1578
+ response += `**Strengths**:
1579
+ `;
1580
+ for (const strength of rec.strengths) {
1581
+ response += `- ${strength}
1582
+ `;
1583
+ }
1584
+ response += `
1585
+ **Limitations**:
1586
+ `;
1587
+ for (const limitation of rec.limitations) {
1588
+ response += `- ${limitation}
1589
+ `;
1590
+ }
1591
+ response += `
1592
+ **Examples**: ${rec.examples.join(", ")}
1593
+
1594
+ `;
1595
+ response += "---\n\n";
1596
+ }
1597
+ if (combinationRecs.length > 0) {
1598
+ response += "## Recommended Mode Combinations\n\n";
1599
+ for (const combo of combinationRecs) {
1600
+ response += `### ${combo.modes.join(" + ")} (${combo.sequence})
1601
+ `;
1602
+ response += `**Rationale**: ${combo.rationale}
1603
+
1604
+ `;
1605
+ response += `**Benefits**:
1606
+ `;
1607
+ for (const benefit of combo.benefits) {
1608
+ response += `- ${benefit}
1609
+ `;
1610
+ }
1611
+ response += `
1612
+ **Synergies**:
1613
+ `;
1614
+ for (const synergy of combo.synergies) {
1615
+ response += `- ${synergy}
1616
+ `;
1617
+ }
1618
+ response += "\n---\n\n";
1619
+ }
1620
+ }
1621
+ return {
1622
+ content: [{
1623
+ type: "text",
1624
+ text: response
1625
+ }],
1626
+ isError: false
1627
+ };
1628
+ }
1629
+ return {
1630
+ content: [{
1631
+ type: "text",
1632
+ text: "Error: Please provide either problemType or problemCharacteristics for mode recommendations."
1633
+ }],
1634
+ isError: true
1635
+ };
1636
+ }
1287
1637
  async function main() {
1288
1638
  const transport = new StdioServerTransport();
1289
1639
  await server.connect(transport);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/thinking.ts","../src/types/modes/temporal.ts","../src/types/modes/gametheory.ts","../src/types/modes/evidential.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 // Abductive fields\n explanation: z.string().optional(),\n assumptions: z.array(z.string()).optional(),\n predictions: z.array(z.string()).optional(),\n score: z.number().optional(),\n // Evidential fields\n name: z.string().optional(),\n description: z.string().optional(),\n mutuallyExclusive: z.boolean().optional(),\n subsets: z.array(z.string()).optional(),\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 description: z.string(),\n // Abductive fields\n hypothesisId: z.string().optional(),\n type: z.enum(['supporting', 'contradicting', 'neutral']).optional(),\n strength: z.number().min(0).max(1).optional(),\n // Evidential fields\n source: z.string().optional(),\n reliability: z.number().min(0).max(1).optional(),\n timestamp: z.number().optional(),\n supports: z.array(z.string()).optional(),\n contradicts: z.array(z.string()).optional(),\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 // Game theory properties (Phase 3, v2.2)\n game: z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n type: z.enum(['normal_form', 'extensive_form', 'cooperative', 'non_cooperative']),\n numPlayers: z.number().int().min(2),\n isZeroSum: z.boolean(),\n isPerfectInformation: z.boolean(),\n }).optional(),\n players: z.array(z.object({\n id: z.string(),\n name: z.string(),\n role: z.string().optional(),\n isRational: z.boolean(),\n availableStrategies: z.array(z.string()),\n })).optional(),\n strategies: z.array(z.object({\n id: z.string(),\n playerId: z.string(),\n name: z.string(),\n description: z.string(),\n isPure: z.boolean(),\n probability: z.number().min(0).max(1).optional(),\n })).optional(),\n payoffMatrix: z.object({\n players: z.array(z.string()),\n dimensions: z.array(z.number()),\n payoffs: z.array(z.object({\n strategyProfile: z.array(z.string()),\n payoffs: z.array(z.number()),\n })),\n }).optional(),\n nashEquilibria: z.array(z.object({\n id: z.string(),\n strategyProfile: z.array(z.string()),\n payoffs: z.array(z.number()),\n type: z.enum(['pure', 'mixed']),\n isStrict: z.boolean(),\n stability: z.number().min(0).max(1),\n })).optional(),\n dominantStrategies: z.array(z.object({\n playerId: z.string(),\n strategyId: z.string(),\n type: z.enum(['strictly_dominant', 'weakly_dominant']),\n dominatesStrategies: z.array(z.string()),\n justification: z.string(),\n })).optional(),\n gameTree: z.object({\n rootNode: z.string(),\n nodes: z.array(z.object({\n id: z.string(),\n type: z.enum(['decision', 'chance', 'terminal']),\n playerId: z.string().optional(),\n parentNode: z.string().optional(),\n childNodes: z.array(z.string()),\n action: z.string().optional(),\n probability: z.number().min(0).max(1).optional(),\n payoffs: z.array(z.number()).optional(),\n })),\n informationSets: z.array(z.object({\n id: z.string(),\n playerId: z.string(),\n nodes: z.array(z.string()),\n availableActions: z.array(z.string()),\n })).optional(),\n }).optional(),\n\n // Evidential properties (Phase 3, v2.3)\n frameOfDiscernment: z.array(z.string()).optional(),\n beliefFunctions: z.array(z.object({\n id: z.string(),\n source: z.string(),\n massAssignments: z.array(z.object({\n hypothesisSet: z.array(z.string()),\n mass: z.number().min(0).max(1),\n justification: z.string(),\n })),\n conflictMass: z.number().optional(),\n })).optional(),\n combinedBelief: z.object({\n id: z.string(),\n source: z.string(),\n massAssignments: z.array(z.object({\n hypothesisSet: z.array(z.string()),\n mass: z.number().min(0).max(1),\n justification: z.string(),\n })),\n conflictMass: z.number().optional(),\n }).optional(),\n plausibility: z.object({\n id: z.string(),\n assignments: z.array(z.object({\n hypothesisSet: z.array(z.string()),\n plausibility: z.number().min(0).max(1),\n belief: z.number().min(0).max(1),\n uncertaintyInterval: z.tuple([z.number(), z.number()]),\n })),\n }).optional(),\n decisions: z.array(z.object({\n id: z.string(),\n name: z.string(),\n selectedHypothesis: z.array(z.string()),\n confidence: z.number().min(0).max(1),\n reasoning: z.string(),\n alternatives: z.array(z.object({\n hypothesis: z.array(z.string()),\n expectedUtility: z.number(),\n risk: z.number(),\n })),\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 * Game-Theoretic Reasoning Mode - Type Definitions\n * Phase 3B (v2.2) - Strategic analysis, Nash equilibria, payoff matrices\n */\n\nimport { BaseThought } from '../core.js';\n\nexport interface GameTheoryThought extends BaseThought {\n mode: 'gametheory';\n thoughtType:\n | 'game_definition'\n | 'strategy_analysis'\n | 'equilibrium_finding'\n | 'payoff_computation'\n | 'dominance_analysis';\n\n game?: Game;\n players?: Player[];\n strategies?: Strategy[];\n payoffMatrix?: PayoffMatrix;\n nashEquilibria?: NashEquilibrium[];\n dominantStrategies?: DominantStrategy[];\n gameTree?: GameTree;\n}\n\n/**\n * Game definition\n */\nexport interface Game {\n id: string;\n name: string;\n description: string;\n type: 'normal_form' | 'extensive_form' | 'cooperative' | 'non_cooperative';\n numPlayers: number;\n isZeroSum: boolean;\n isPerfectInformation: boolean;\n}\n\n/**\n * Player in the game\n */\nexport interface Player {\n id: string;\n name: string;\n role?: string;\n isRational: boolean;\n availableStrategies: string[]; // Strategy IDs\n}\n\n/**\n * Strategy that a player can choose\n */\nexport interface Strategy {\n id: string;\n playerId: string;\n name: string;\n description: string;\n isPure: boolean; // true for pure strategy, false for mixed\n probability?: number; // for mixed strategies (0-1)\n}\n\n/**\n * Payoff matrix for normal form games\n */\nexport interface PayoffMatrix {\n players: string[]; // Player IDs in order\n dimensions: number[]; // Number of strategies per player\n payoffs: PayoffEntry[];\n}\n\n/**\n * Single entry in payoff matrix\n */\nexport interface PayoffEntry {\n strategyProfile: string[]; // Strategy IDs for each player\n payoffs: number[]; // Payoff for each player\n}\n\n/**\n * Nash equilibrium solution\n */\nexport interface NashEquilibrium {\n id: string;\n strategyProfile: string[]; // Strategy IDs for each player\n payoffs: number[]; // Resulting payoffs\n type: 'pure' | 'mixed';\n isStrict: boolean; // No player wants to deviate\n stability: number; // 0-1, how stable is this equilibrium\n}\n\n/**\n * Dominant strategy for a player\n */\nexport interface DominantStrategy {\n playerId: string;\n strategyId: string;\n type: 'strictly_dominant' | 'weakly_dominant';\n dominatesStrategies: string[]; // Other strategy IDs this dominates\n justification: string;\n}\n\n/**\n * Game tree for extensive form games\n */\nexport interface GameTree {\n rootNode: string; // Node ID\n nodes: GameNode[];\n informationSets?: InformationSet[];\n}\n\n/**\n * Node in game tree\n */\nexport interface GameNode {\n id: string;\n type: 'decision' | 'chance' | 'terminal';\n playerId?: string; // Which player moves (for decision nodes)\n parentNode?: string; // Parent node ID\n childNodes: string[]; // Child node IDs\n action?: string; // Action that led to this node\n probability?: number; // For chance nodes\n payoffs?: number[]; // For terminal nodes\n}\n\n/**\n * Information set (nodes player cannot distinguish)\n */\nexport interface InformationSet {\n id: string;\n playerId: string;\n nodes: string[]; // Node IDs in this set\n availableActions: string[];\n}\n\n/**\n * Backward induction solution\n */\nexport interface BackwardInduction {\n subgamePerfectEquilibrium: string[]; // Sequence of strategy IDs\n optimalPath: string[]; // Node IDs along optimal path\n expectedPayoffs: number[];\n}\n\nexport function isGameTheoryThought(thought: BaseThought): thought is GameTheoryThought {\n return thought.mode === 'gametheory';\n}\n","/**\n * Evidential Reasoning Mode - Type Definitions\n * Phase 3C (v2.3) - Dempster-Shafer theory, belief functions, evidence combination\n */\n\nimport { BaseThought } from '../core.js';\n\nexport interface EvidentialThought extends BaseThought {\n mode: 'evidential';\n thoughtType:\n | 'hypothesis_definition'\n | 'evidence_collection'\n | 'belief_assignment'\n | 'evidence_combination'\n | 'decision_analysis';\n\n frameOfDiscernment?: string[]; // All possible hypotheses\n hypotheses?: Hypothesis[];\n evidence?: Evidence[];\n beliefFunctions?: BeliefFunction[];\n combinedBelief?: BeliefFunction;\n plausibility?: PlausibilityFunction;\n decisions?: Decision[];\n}\n\nexport interface Hypothesis {\n id: string;\n name: string;\n description: string;\n mutuallyExclusive: boolean;\n subsets?: string[]; // For composite hypotheses\n}\n\nexport interface Evidence {\n id: string;\n description: string;\n source: string;\n reliability: number; // 0-1\n timestamp: number;\n supports: string[]; // Hypothesis IDs or subsets\n contradicts?: string[]; // Hypothesis IDs or subsets\n}\n\nexport interface BeliefFunction {\n id: string;\n source: string; // Evidence ID or 'combined'\n massAssignments: MassAssignment[];\n conflictMass?: number; // Normalization factor\n}\n\nexport interface MassAssignment {\n hypothesisSet: string[]; // Hypothesis IDs (singleton or composite)\n mass: number; // 0-1, basic probability assignment\n justification: string;\n}\n\nexport interface PlausibilityFunction {\n id: string;\n assignments: PlausibilityAssignment[];\n}\n\nexport interface PlausibilityAssignment {\n hypothesisSet: string[];\n plausibility: number; // 0-1\n belief: number; // 0-1\n uncertaintyInterval: [number, number]; // [belief, plausibility]\n}\n\nexport interface Decision {\n id: string;\n name: string;\n selectedHypothesis: string[];\n confidence: number; // Based on belief/plausibility\n reasoning: string;\n alternatives: Alternative[];\n}\n\nexport interface Alternative {\n hypothesis: string[];\n expectedUtility: number;\n risk: number;\n}\n\nexport function isEvidentialThought(thought: BaseThought): thought is EvidentialThought {\n return thought.mode === 'evidential';\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';\nimport { GameTheoryThought, isGameTheoryThought } from '../types/modes/gametheory.js';\nimport { EvidentialThought, isEvidentialThought } from '../types/modes/evidential.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 customMetrics: new Map(),\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 // Game theory-specific metrics (Phase 3, v2.2)\n if (isGameTheoryThought(thought)) {\n if (thought.players) {\n metrics.customMetrics.set('numPlayers', thought.players.length);\n }\n if (thought.strategies) {\n metrics.customMetrics.set('totalStrategies', thought.strategies.length);\n const mixedStrategies = thought.strategies.filter(s => !s.isPure);\n metrics.customMetrics.set('mixedStrategies', mixedStrategies.length);\n }\n if (thought.nashEquilibria) {\n metrics.customMetrics.set('nashEquilibria', thought.nashEquilibria.length);\n const pureEquilibria = thought.nashEquilibria.filter(e => e.type === 'pure');\n metrics.customMetrics.set('pureNashEquilibria', pureEquilibria.length);\n }\n if (thought.dominantStrategies) {\n metrics.customMetrics.set('dominantStrategies', thought.dominantStrategies.length);\n }\n if (thought.game) {\n metrics.customMetrics.set('gameType', thought.game.type);\n metrics.customMetrics.set('isZeroSum', thought.game.isZeroSum);\n }\n\n // Evidential-specific metrics (Phase 3, v2.3)\n if (isEvidentialThought(thought)) {\n if (thought.hypotheses) {\n metrics.customMetrics.set('totalHypotheses', thought.hypotheses.length);\n }\n if (thought.evidence) {\n metrics.customMetrics.set('totalEvidence', thought.evidence.length);\n const avgReliability = thought.evidence.reduce((sum, e) => sum + e.reliability, 0) / thought.evidence.length;\n metrics.customMetrics.set('avgEvidenceReliability', avgReliability);\n }\n if (thought.beliefFunctions) {\n metrics.customMetrics.set('beliefFunctions', thought.beliefFunctions.length);\n }\n if (thought.combinedBelief) {\n metrics.customMetrics.set('hasCombinedBelief', true);\n if (thought.combinedBelief.conflictMass !== undefined) {\n metrics.customMetrics.set('conflictMass', thought.combinedBelief.conflictMass);\n }\n }\n if (thought.decisions) {\n metrics.customMetrics.set('decisions', thought.decisions.length);\n }\n }\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 GameTheoryThought,\n EvidentialThought,\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 // Convert Map to object for JSON serialization\n const sessionWithCustomMetrics = {\n ...session,\n metrics: {\n ...session.metrics,\n customMetrics: Object.fromEntries(session.metrics.customMetrics),\n },\n };\n\n const exported = JSON.stringify(sessionWithCustomMetrics, 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 // Convert Map to object for JSON serialization\n const metricsWithCustom = {\n ...session.metrics,\n customMetrics: Object.fromEntries(session.metrics.customMetrics),\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: metricsWithCustom,\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 'gametheory':\n return {\n ...baseThought,\n mode: ThinkingMode.GAMETHEORY,\n thoughtType: input.thoughtType as any,\n game: input.game,\n players: input.players || [],\n strategies: input.strategies || [],\n payoffMatrix: input.payoffMatrix,\n nashEquilibria: input.nashEquilibria || [],\n dominantStrategies: input.dominantStrategies || [],\n gameTree: input.gameTree,\n } as GameTheoryThought;\n\n case 'evidential':\n return {\n ...baseThought,\n mode: ThinkingMode.EVIDENTIAL,\n thoughtType: input.thoughtType as any,\n frameOfDiscernment: input.frameOfDiscernment,\n hypotheses: input.hypotheses || [],\n evidence: input.evidence || [],\n beliefFunctions: input.beliefFunctions || [],\n combinedBelief: input.combinedBelief,\n plausibility: input.plausibility,\n decisions: input.decisions || [],\n } as EvidentialThought;\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/types/modes/gametheory.ts","../src/types/modes/evidential.ts","../src/types/modes/recommendations.ts","../src/session/manager.ts","../src/index.ts"],"names":["session","randomUUID"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * Unified thinking tool for DeepThinking MCP v2.1+\r\n * Supports 13 thinking modes\r\n */\r\n\r\nimport { z } from 'zod';\r\n\r\n/**\r\n * Zod schema for runtime validation (internal use)\r\n */\r\nexport const ThinkingToolSchema = z.object({\r\n sessionId: z.string().optional(),\r\n mode: z.enum(['sequential', 'shannon', 'mathematics', 'physics', 'hybrid', 'abductive', 'causal', 'bayesian', 'counterfactual', 'analogical', 'temporal', 'gametheory', 'evidential']).default('hybrid'),\r\n thought: z.string(),\r\n thoughtNumber: z.number().int().positive(),\r\n totalThoughts: z.number().int().positive(),\r\n nextThoughtNeeded: z.boolean(),\r\n isRevision: z.boolean().optional(),\r\n revisesThought: z.string().optional(),\r\n revisionReason: z.string().optional(),\r\n branchFrom: z.string().optional(),\r\n branchId: z.string().optional(),\r\n stage: z.enum(['problem_definition', 'constraints', 'model', 'proof', 'implementation']).optional(),\r\n uncertainty: z.number().min(0).max(1).optional(),\r\n dependencies: z.array(z.string()).optional(),\r\n assumptions: z.array(z.string()).optional(),\r\n thoughtType: z.string().optional(),\r\n mathematicalModel: z.object({\r\n latex: z.string(),\r\n symbolic: z.string(),\r\n ascii: z.string().optional(),\r\n }).optional(),\r\n proofStrategy: z.object({\r\n type: z.enum(['direct', 'contradiction', 'induction', 'construction', 'contrapositive']),\r\n steps: z.array(z.string()),\r\n }).optional(),\r\n tensorProperties: z.object({\r\n rank: z.tuple([z.number(), z.number()]),\r\n components: z.string(),\r\n latex: z.string(),\r\n symmetries: z.array(z.string()),\r\n invariants: z.array(z.string()),\r\n transformation: z.enum(['covariant', 'contravariant', 'mixed']),\r\n }).optional(),\r\n physicalInterpretation: z.object({\r\n quantity: z.string(),\r\n units: z.string(),\r\n conservationLaws: z.array(z.string()),\r\n }).optional(),\r\n // Abductive reasoning properties (v2.0)\r\n observations: z.array(z.object({\r\n id: z.string(),\r\n description: z.string(),\r\n confidence: z.number().min(0).max(1),\r\n })).optional(),\r\n hypotheses: z.array(z.object({\r\n id: z.string(),\r\n // Abductive fields\r\n explanation: z.string().optional(),\r\n assumptions: z.array(z.string()).optional(),\r\n predictions: z.array(z.string()).optional(),\r\n score: z.number().optional(),\r\n // Evidential fields\r\n name: z.string().optional(),\r\n description: z.string().optional(),\r\n mutuallyExclusive: z.boolean().optional(),\r\n subsets: z.array(z.string()).optional(),\r\n })).optional(),\r\n evaluationCriteria: z.object({\r\n parsimony: z.number(),\r\n explanatoryPower: z.number(),\r\n plausibility: z.number(),\r\n testability: z.boolean(),\r\n }).optional(),\r\n evidence: z.array(z.object({\r\n id: z.string(),\r\n description: z.string(),\r\n // Abductive fields\r\n hypothesisId: z.string().optional(),\r\n type: z.enum(['supporting', 'contradicting', 'neutral']).optional(),\r\n strength: z.number().min(0).max(1).optional(),\r\n // Evidential fields\r\n source: z.string().optional(),\r\n reliability: z.number().min(0).max(1).optional(),\r\n timestamp: z.number().optional(),\r\n supports: z.array(z.string()).optional(),\r\n contradicts: z.array(z.string()).optional(),\r\n })).optional(),\r\n bestExplanation: z.object({\r\n id: z.string(),\r\n explanation: z.string(),\r\n assumptions: z.array(z.string()),\r\n predictions: z.array(z.string()),\r\n score: z.number(),\r\n }).optional(),\r\n // Causal reasoning properties (v2.0)\r\n causalGraph: z.object({\r\n nodes: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n type: z.enum(['cause', 'effect', 'mediator', 'confounder']),\r\n description: z.string(),\r\n })),\r\n edges: z.array(z.object({\r\n from: z.string(),\r\n to: z.string(),\r\n strength: z.number(),\r\n confidence: z.number().min(0).max(1),\r\n })),\r\n }).optional(),\r\n interventions: z.array(z.object({\r\n nodeId: z.string(),\r\n action: z.string(),\r\n expectedEffects: z.array(z.object({\r\n nodeId: z.string(),\r\n expectedChange: z.string(),\r\n confidence: z.number(),\r\n })),\r\n })).optional(),\r\n mechanisms: z.array(z.object({\r\n from: z.string(),\r\n to: z.string(),\r\n description: z.string(),\r\n type: z.enum(['direct', 'indirect', 'feedback']),\r\n })).optional(),\r\n confounders: z.array(z.object({\r\n nodeId: z.string(),\r\n affects: z.array(z.string()),\r\n description: z.string(),\r\n })).optional(),\r\n // Bayesian reasoning properties (v2.0)\r\n hypothesis: z.object({\r\n id: z.string(),\r\n statement: z.string(),\r\n }).optional(),\r\n prior: z.object({\r\n probability: z.number().min(0).max(1),\r\n justification: z.string(),\r\n }).optional(),\r\n likelihood: z.object({\r\n probability: z.number().min(0).max(1),\r\n description: z.string(),\r\n }).optional(),\r\n posterior: z.object({\r\n probability: z.number().min(0).max(1),\r\n calculation: z.string(),\r\n }).optional(),\r\n bayesFactor: z.number().optional(),\r\n // Counterfactual reasoning properties (v2.0)\r\n actual: z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n conditions: z.array(z.object({\r\n factor: z.string(),\r\n value: z.string(),\r\n })),\r\n outcomes: z.array(z.object({\r\n description: z.string(),\r\n impact: z.enum(['positive', 'negative', 'neutral']),\r\n magnitude: z.number().optional(),\r\n })),\r\n }).optional(),\r\n counterfactuals: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n conditions: z.array(z.object({\r\n factor: z.string(),\r\n value: z.string(),\r\n })),\r\n outcomes: z.array(z.object({\r\n description: z.string(),\r\n impact: z.enum(['positive', 'negative', 'neutral']),\r\n magnitude: z.number().optional(),\r\n })),\r\n })).optional(),\r\n comparison: z.object({\r\n differences: z.array(z.object({\r\n aspect: z.string(),\r\n actual: z.string(),\r\n counterfactual: z.string(),\r\n significance: z.enum(['high', 'medium', 'low']),\r\n })),\r\n insights: z.array(z.string()),\r\n lessons: z.array(z.string()),\r\n }).optional(),\r\n interventionPoint: z.object({\r\n description: z.string(),\r\n alternatives: z.array(z.string()),\r\n }).optional(),\r\n causalChains: z.array(z.object({\r\n intervention: z.string(),\r\n steps: z.array(z.string()),\r\n finalOutcome: z.string(),\r\n })).optional(),\r\n // Analogical reasoning properties (v2.0)\r\n sourceDomain: z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n entities: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n type: z.string(),\r\n })),\r\n relations: z.array(z.object({\r\n id: z.string(),\r\n type: z.string(),\r\n from: z.string(),\r\n to: z.string(),\r\n })),\r\n }).optional(),\r\n targetDomain: z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n entities: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n type: z.string(),\r\n })),\r\n relations: z.array(z.object({\r\n id: z.string(),\r\n type: z.string(),\r\n from: z.string(),\r\n to: z.string(),\r\n })),\r\n }).optional(),\r\n mapping: z.array(z.object({\r\n sourceEntityId: z.string(),\r\n targetEntityId: z.string(),\r\n justification: z.string(),\r\n confidence: z.number().min(0).max(1),\r\n })).optional(),\r\n insights: z.array(z.object({\r\n description: z.string(),\r\n sourceEvidence: z.string(),\r\n targetApplication: z.string(),\r\n })).optional(),\r\n inferences: z.array(z.object({\r\n sourcePattern: z.string(),\r\n targetPrediction: z.string(),\r\n confidence: z.number().min(0).max(1),\r\n needsVerification: z.boolean(),\r\n })).optional(),\r\n limitations: z.array(z.string()).optional(),\r\n analogyStrength: z.number().min(0).max(1).optional(),\r\n // Temporal reasoning properties (Phase 3, v2.1)\r\n timeline: z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n timeUnit: z.enum(['milliseconds', 'seconds', 'minutes', 'hours', 'days', 'months', 'years']),\r\n startTime: z.number().optional(),\r\n endTime: z.number().optional(),\r\n events: z.array(z.string()),\r\n }).optional(),\r\n events: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n timestamp: z.number(),\r\n duration: z.number().optional(),\r\n type: z.enum(['instant', 'interval']),\r\n properties: z.record(z.any()),\r\n })).optional(),\r\n intervals: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n start: z.number(),\r\n end: z.number(),\r\n overlaps: z.array(z.string()).optional(),\r\n contains: z.array(z.string()).optional(),\r\n })).optional(),\r\n constraints: z.array(z.object({\r\n id: z.string(),\r\n type: z.enum(['before', 'after', 'during', 'overlaps', 'meets', 'starts', 'finishes', 'equals']),\r\n subject: z.string(),\r\n object: z.string(),\r\n confidence: z.number().min(0).max(1),\r\n })).optional(),\r\n relations: z.array(z.object({\r\n id: z.string(),\r\n from: z.string(),\r\n to: z.string(),\r\n relationType: z.enum(['causes', 'enables', 'prevents', 'precedes', 'follows']),\r\n strength: z.number().min(0).max(1),\r\n delay: z.number().optional(),\r\n })).optional(),\r\n // Game theory properties (Phase 3, v2.2)\r\n game: z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n type: z.enum(['normal_form', 'extensive_form', 'cooperative', 'non_cooperative']),\r\n numPlayers: z.number().int().min(2),\r\n isZeroSum: z.boolean(),\r\n isPerfectInformation: z.boolean(),\r\n }).optional(),\r\n players: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n role: z.string().optional(),\r\n isRational: z.boolean(),\r\n availableStrategies: z.array(z.string()),\r\n })).optional(),\r\n strategies: z.array(z.object({\r\n id: z.string(),\r\n playerId: z.string(),\r\n name: z.string(),\r\n description: z.string(),\r\n isPure: z.boolean(),\r\n probability: z.number().min(0).max(1).optional(),\r\n })).optional(),\r\n payoffMatrix: z.object({\r\n players: z.array(z.string()),\r\n dimensions: z.array(z.number()),\r\n payoffs: z.array(z.object({\r\n strategyProfile: z.array(z.string()),\r\n payoffs: z.array(z.number()),\r\n })),\r\n }).optional(),\r\n nashEquilibria: z.array(z.object({\r\n id: z.string(),\r\n strategyProfile: z.array(z.string()),\r\n payoffs: z.array(z.number()),\r\n type: z.enum(['pure', 'mixed']),\r\n isStrict: z.boolean(),\r\n stability: z.number().min(0).max(1),\r\n })).optional(),\r\n dominantStrategies: z.array(z.object({\r\n playerId: z.string(),\r\n strategyId: z.string(),\r\n type: z.enum(['strictly_dominant', 'weakly_dominant']),\r\n dominatesStrategies: z.array(z.string()),\r\n justification: z.string(),\r\n })).optional(),\r\n gameTree: z.object({\r\n rootNode: z.string(),\r\n nodes: z.array(z.object({\r\n id: z.string(),\r\n type: z.enum(['decision', 'chance', 'terminal']),\r\n playerId: z.string().optional(),\r\n parentNode: z.string().optional(),\r\n childNodes: z.array(z.string()),\r\n action: z.string().optional(),\r\n probability: z.number().min(0).max(1).optional(),\r\n payoffs: z.array(z.number()).optional(),\r\n })),\r\n informationSets: z.array(z.object({\r\n id: z.string(),\r\n playerId: z.string(),\r\n nodes: z.array(z.string()),\r\n availableActions: z.array(z.string()),\r\n })).optional(),\r\n }).optional(),\r\n\r\n // Evidential properties (Phase 3, v2.3)\r\n frameOfDiscernment: z.array(z.string()).optional(),\r\n beliefFunctions: z.array(z.object({\r\n id: z.string(),\r\n source: z.string(),\r\n massAssignments: z.array(z.object({\r\n hypothesisSet: z.array(z.string()),\r\n mass: z.number().min(0).max(1),\r\n justification: z.string(),\r\n })),\r\n conflictMass: z.number().optional(),\r\n })).optional(),\r\n combinedBelief: z.object({\r\n id: z.string(),\r\n source: z.string(),\r\n massAssignments: z.array(z.object({\r\n hypothesisSet: z.array(z.string()),\r\n mass: z.number().min(0).max(1),\r\n justification: z.string(),\r\n })),\r\n conflictMass: z.number().optional(),\r\n }).optional(),\r\n plausibility: z.object({\r\n id: z.string(),\r\n assignments: z.array(z.object({\r\n hypothesisSet: z.array(z.string()),\r\n plausibility: z.number().min(0).max(1),\r\n belief: z.number().min(0).max(1),\r\n uncertaintyInterval: z.tuple([z.number(), z.number()]),\r\n })),\r\n }).optional(),\r\n decisions: z.array(z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n selectedHypothesis: z.array(z.string()),\r\n confidence: z.number().min(0).max(1),\r\n reasoning: z.string(),\r\n alternatives: z.array(z.object({\r\n hypothesis: z.array(z.string()),\r\n expectedUtility: z.number(),\r\n risk: z.number(),\r\n })),\r\n })).optional(),\r\n action: z.enum(['add_thought', 'summarize', 'export', 'switch_mode', 'get_session', 'recommend_mode']).default('add_thought'),\r\n exportFormat: z.enum(['markdown', 'latex', 'json', 'html', 'jupyter']).optional(),\r\n newMode: z.enum(['sequential', 'shannon', 'mathematics', 'physics', 'hybrid', 'abductive', 'causal', 'bayesian', 'counterfactual', 'analogical', 'temporal', 'gametheory', 'evidential']).optional(),\r\n // Mode recommendation parameters (v2.4)\r\n problemType: z.string().optional(),\r\n problemCharacteristics: z.object({\r\n domain: z.string(),\r\n complexity: z.enum(['low', 'medium', 'high']),\r\n uncertainty: z.enum(['low', 'medium', 'high']),\r\n timeDependent: z.boolean(),\r\n multiAgent: z.boolean(),\r\n requiresProof: z.boolean(),\r\n requiresQuantification: z.boolean(),\r\n hasIncompleteInfo: z.boolean(),\r\n requiresExplanation: z.boolean(),\r\n hasAlternatives: z.boolean(),\r\n }).optional(),\r\n includeCombinations: z.boolean().optional(),\r\n});\r\n\r\nexport type ThinkingToolInput = z.infer<typeof ThinkingToolSchema>;\r\n\r\n/**\r\n * Tool definition using plain JSON Schema (MCP standard format)\r\n */\r\nexport const thinkingTool = {\r\n name: 'deepthinking',\r\n description: `Advanced deep thinking tool supporting 13 reasoning modes:\r\n\r\nCore Modes:\r\n- sequential: Iterative refinement and exploration\r\n- shannon: Systematic 5-stage problem-solving\r\n- mathematics: Theorem proving and symbolic reasoning\r\n- physics: Tensor mathematics and field theory\r\n- hybrid: Intelligently combines multiple approaches\r\n\r\nAdvanced Modes (v2.0):\r\n- abductive: Inference to the best explanation, hypothesis generation\r\n- causal: Cause-effect analysis with causal graphs\r\n- bayesian: Probabilistic reasoning with evidence updates\r\n- counterfactual: What-if scenario analysis\r\n- analogical: Cross-domain pattern matching and insights\r\n\r\nPhase 3 Modes (v2.1+):\r\n- temporal: Event timelines, temporal constraints, causal relations over time\r\n- gametheory: Nash equilibria, strategic analysis, payoff matrices\r\n- evidential: Dempster-Shafer theory, belief functions, evidence combination\r\n\r\nChoose the mode that best fits your problem type.`,\r\n inputSchema: {\r\n type: \"object\",\r\n properties: {\r\n sessionId: {\r\n type: \"string\",\r\n description: \"Session ID (creates new if omitted)\"\r\n },\r\n mode: {\r\n type: \"string\",\r\n enum: [\"sequential\", \"shannon\", \"mathematics\", \"physics\", \"hybrid\", \"abductive\", \"causal\", \"bayesian\", \"counterfactual\", \"analogical\", \"temporal\", \"gametheory\", \"evidential\"],\r\n description: \"Thinking mode to use\"\r\n },\r\n thought: {\r\n type: \"string\",\r\n description: \"The thought content\"\r\n },\r\n thoughtNumber: {\r\n type: \"integer\",\r\n minimum: 1,\r\n description: \"Position in sequence\"\r\n },\r\n totalThoughts: {\r\n type: \"integer\",\r\n minimum: 1,\r\n description: \"Estimated total thoughts\"\r\n },\r\n nextThoughtNeeded: {\r\n type: \"boolean\",\r\n description: \"Should thinking continue?\"\r\n },\r\n isRevision: {\r\n type: \"boolean\",\r\n description: \"Whether this revises previous thinking\"\r\n },\r\n revisesThought: {\r\n type: \"string\",\r\n description: \"Which thought is being reconsidered\"\r\n },\r\n revisionReason: {\r\n type: \"string\",\r\n description: \"Reason for revision\"\r\n },\r\n branchFrom: {\r\n type: \"string\",\r\n description: \"Branching point thought\"\r\n },\r\n branchId: {\r\n type: \"string\",\r\n description: \"Branch identifier\"\r\n },\r\n stage: {\r\n type: \"string\",\r\n enum: [\"problem_definition\", \"constraints\", \"model\", \"proof\", \"implementation\"],\r\n description: \"Shannon methodology stage\"\r\n },\r\n uncertainty: {\r\n type: \"number\",\r\n minimum: 0,\r\n maximum: 1,\r\n description: \"Uncertainty level (0-1)\"\r\n },\r\n dependencies: {\r\n type: \"array\",\r\n items: { type: \"string\" },\r\n description: \"Dependencies on other thoughts\"\r\n },\r\n assumptions: {\r\n type: \"array\",\r\n items: { type: \"string\" },\r\n description: \"Assumptions made\"\r\n },\r\n thoughtType: {\r\n type: \"string\",\r\n description: \"Type of mathematical thought\"\r\n },\r\n mathematicalModel: {\r\n type: \"object\",\r\n properties: {\r\n latex: { type: \"string\", description: \"LaTeX representation\" },\r\n symbolic: { type: \"string\", description: \"Symbolic representation\" },\r\n ascii: { type: \"string\", description: \"ASCII representation\" }\r\n },\r\n required: [\"latex\", \"symbolic\"]\r\n },\r\n proofStrategy: {\r\n type: \"object\",\r\n properties: {\r\n type: {\r\n type: \"string\",\r\n enum: [\"direct\", \"contradiction\", \"induction\", \"construction\", \"contrapositive\"]\r\n },\r\n steps: {\r\n type: \"array\",\r\n items: { type: \"string\" }\r\n }\r\n },\r\n required: [\"type\", \"steps\"]\r\n },\r\n tensorProperties: {\r\n type: \"object\",\r\n properties: {\r\n rank: {\r\n type: \"array\",\r\n items: { type: \"number\" },\r\n minItems: 2,\r\n maxItems: 2\r\n },\r\n components: { type: \"string\" },\r\n latex: { type: \"string\" },\r\n symmetries: {\r\n type: \"array\",\r\n items: { type: \"string\" }\r\n },\r\n invariants: {\r\n type: \"array\",\r\n items: { type: \"string\" }\r\n },\r\n transformation: {\r\n type: \"string\",\r\n enum: [\"covariant\", \"contravariant\", \"mixed\"]\r\n }\r\n },\r\n required: [\"rank\", \"components\", \"latex\", \"symmetries\", \"invariants\", \"transformation\"]\r\n },\r\n physicalInterpretation: {\r\n type: \"object\",\r\n properties: {\r\n quantity: { type: \"string\" },\r\n units: { type: \"string\" },\r\n conservationLaws: {\r\n type: \"array\",\r\n items: { type: \"string\" }\r\n }\r\n },\r\n required: [\"quantity\", \"units\", \"conservationLaws\"]\r\n },\r\n // Temporal reasoning properties (Phase 3, v2.1)\r\n timeline: {\r\n type: \"object\",\r\n properties: {\r\n id: { type: \"string\" },\r\n name: { type: \"string\" },\r\n timeUnit: {\r\n type: \"string\",\r\n enum: [\"milliseconds\", \"seconds\", \"minutes\", \"hours\", \"days\", \"months\", \"years\"],\r\n description: \"Time unit for the timeline\"\r\n },\r\n startTime: { type: \"number\", description: \"Optional start time\" },\r\n endTime: { type: \"number\", description: \"Optional end time\" },\r\n events: {\r\n type: \"array\",\r\n items: { type: \"string\" },\r\n description: \"Event IDs in this timeline\"\r\n }\r\n },\r\n required: [\"id\", \"name\", \"timeUnit\", \"events\"],\r\n description: \"Timeline structure for temporal reasoning\"\r\n },\r\n events: {\r\n type: \"array\",\r\n items: {\r\n type: \"object\",\r\n properties: {\r\n id: { type: \"string\" },\r\n name: { type: \"string\" },\r\n description: { type: \"string\" },\r\n timestamp: { type: \"number\", description: \"Event timestamp\" },\r\n duration: { type: \"number\", description: \"Duration for interval events\" },\r\n type: {\r\n type: \"string\",\r\n enum: [\"instant\", \"interval\"],\r\n description: \"Event type\"\r\n },\r\n properties: {\r\n type: \"object\",\r\n description: \"Additional event properties\"\r\n }\r\n },\r\n required: [\"id\", \"name\", \"description\", \"timestamp\", \"type\", \"properties\"]\r\n },\r\n description: \"Temporal events\"\r\n },\r\n intervals: {\r\n type: \"array\",\r\n items: {\r\n type: \"object\",\r\n properties: {\r\n id: { type: \"string\" },\r\n name: { type: \"string\" },\r\n start: { type: \"number\", description: \"Interval start time\" },\r\n end: { type: \"number\", description: \"Interval end time\" },\r\n overlaps: {\r\n type: \"array\",\r\n items: { type: \"string\" },\r\n description: \"IDs of overlapping intervals\"\r\n },\r\n contains: {\r\n type: \"array\",\r\n items: { type: \"string\" },\r\n description: \"IDs of contained intervals\"\r\n }\r\n },\r\n required: [\"id\", \"name\", \"start\", \"end\"]\r\n },\r\n description: \"Time intervals with Allen's algebra relationships\"\r\n },\r\n constraints: {\r\n type: \"array\",\r\n items: {\r\n type: \"object\",\r\n properties: {\r\n id: { type: \"string\" },\r\n type: {\r\n type: \"string\",\r\n enum: [\"before\", \"after\", \"during\", \"overlaps\", \"meets\", \"starts\", \"finishes\", \"equals\"],\r\n description: \"Allen's interval algebra constraint type\"\r\n },\r\n subject: { type: \"string\", description: \"Subject event/interval ID\" },\r\n object: { type: \"string\", description: \"Object event/interval ID\" },\r\n confidence: {\r\n type: \"number\",\r\n minimum: 0,\r\n maximum: 1,\r\n description: \"Confidence in constraint (0-1)\"\r\n }\r\n },\r\n required: [\"id\", \"type\", \"subject\", \"object\", \"confidence\"]\r\n },\r\n description: \"Temporal constraints using Allen's interval algebra\"\r\n },\r\n relations: {\r\n type: \"array\",\r\n items: {\r\n type: \"object\",\r\n properties: {\r\n id: { type: \"string\" },\r\n from: { type: \"string\", description: \"Source event ID\" },\r\n to: { type: \"string\", description: \"Target event ID\" },\r\n relationType: {\r\n type: \"string\",\r\n enum: [\"causes\", \"enables\", \"prevents\", \"precedes\", \"follows\"],\r\n description: \"Type of temporal relation\"\r\n },\r\n strength: {\r\n type: \"number\",\r\n minimum: 0,\r\n maximum: 1,\r\n description: \"Relation strength (0-1)\"\r\n },\r\n delay: { type: \"number\", description: \"Optional time delay between events\" }\r\n },\r\n required: [\"id\", \"from\", \"to\", \"relationType\", \"strength\"]\r\n },\r\n description: \"Temporal causal/enabling relations\"\r\n },\r\n action: {\r\n type: \"string\",\r\n enum: [\"add_thought\", \"summarize\", \"export\", \"switch_mode\", \"get_session\", \"recommend_mode\"],\r\n description: \"Action to perform\"\r\n },\r\n exportFormat: {\r\n type: \"string\",\r\n enum: [\"markdown\", \"latex\", \"json\", \"html\", \"jupyter\"],\r\n description: \"Export format\"\r\n },\r\n newMode: {\r\n type: \"string\",\r\n enum: [\"sequential\", \"shannon\", \"mathematics\", \"physics\", \"hybrid\", \"abductive\", \"causal\", \"bayesian\", \"counterfactual\", \"analogical\", \"temporal\", \"gametheory\", \"evidential\"],\r\n description: \"New mode for switch_mode action\"\r\n }\r\n,\r\n problemType: {\r\n type: \"string\",\r\n description: \"Simple problem type for quick recommendations (e.g., 'debugging', 'proof', 'timeline')\"\r\n },\r\n problemCharacteristics: {\r\n type: \"object\",\r\n properties: {\r\n domain: { type: \"string\", description: \"Problem domain\" },\r\n complexity: { type: \"string\", enum: [\"low\", \"medium\", \"high\"], description: \"Problem complexity\" },\r\n uncertainty: { type: \"string\", enum: [\"low\", \"medium\", \"high\"], description: \"Uncertainty level\" },\r\n timeDependent: { type: \"boolean\", description: \"Whether problem involves time sequences\" },\r\n multiAgent: { type: \"boolean\", description: \"Whether multiple agents interact\" },\r\n requiresProof: { type: \"boolean\", description: \"Whether formal proof is needed\" },\r\n requiresQuantification: { type: \"boolean\", description: \"Whether quantification is needed\" },\r\n hasIncompleteInfo: { type: \"boolean\", description: \"Whether information is incomplete\" },\r\n requiresExplanation: { type: \"boolean\", description: \"Whether explanation is needed\" },\r\n hasAlternatives: { type: \"boolean\", description: \"Whether alternative scenarios exist\" }\r\n },\r\n required: [\"domain\", \"complexity\", \"uncertainty\", \"timeDependent\", \"multiAgent\", \"requiresProof\", \"requiresQuantification\", \"hasIncompleteInfo\", \"requiresExplanation\", \"hasAlternatives\"],\r\n description: \"Detailed problem characteristics for comprehensive recommendations\"\r\n },\r\n includeCombinations: {\r\n type: \"boolean\",\r\n description: \"Whether to include mode combination suggestions\"\r\n }\r\n },\r\n required: [\"thought\", \"thoughtNumber\", \"totalThoughts\", \"nextThoughtNeeded\"]\r\n }\r\n};\r\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 * Game-Theoretic Reasoning Mode - Type Definitions\n * Phase 3B (v2.2) - Strategic analysis, Nash equilibria, payoff matrices\n */\n\nimport { BaseThought } from '../core.js';\n\nexport interface GameTheoryThought extends BaseThought {\n mode: 'gametheory';\n thoughtType:\n | 'game_definition'\n | 'strategy_analysis'\n | 'equilibrium_finding'\n | 'payoff_computation'\n | 'dominance_analysis';\n\n game?: Game;\n players?: Player[];\n strategies?: Strategy[];\n payoffMatrix?: PayoffMatrix;\n nashEquilibria?: NashEquilibrium[];\n dominantStrategies?: DominantStrategy[];\n gameTree?: GameTree;\n}\n\n/**\n * Game definition\n */\nexport interface Game {\n id: string;\n name: string;\n description: string;\n type: 'normal_form' | 'extensive_form' | 'cooperative' | 'non_cooperative';\n numPlayers: number;\n isZeroSum: boolean;\n isPerfectInformation: boolean;\n}\n\n/**\n * Player in the game\n */\nexport interface Player {\n id: string;\n name: string;\n role?: string;\n isRational: boolean;\n availableStrategies: string[]; // Strategy IDs\n}\n\n/**\n * Strategy that a player can choose\n */\nexport interface Strategy {\n id: string;\n playerId: string;\n name: string;\n description: string;\n isPure: boolean; // true for pure strategy, false for mixed\n probability?: number; // for mixed strategies (0-1)\n}\n\n/**\n * Payoff matrix for normal form games\n */\nexport interface PayoffMatrix {\n players: string[]; // Player IDs in order\n dimensions: number[]; // Number of strategies per player\n payoffs: PayoffEntry[];\n}\n\n/**\n * Single entry in payoff matrix\n */\nexport interface PayoffEntry {\n strategyProfile: string[]; // Strategy IDs for each player\n payoffs: number[]; // Payoff for each player\n}\n\n/**\n * Nash equilibrium solution\n */\nexport interface NashEquilibrium {\n id: string;\n strategyProfile: string[]; // Strategy IDs for each player\n payoffs: number[]; // Resulting payoffs\n type: 'pure' | 'mixed';\n isStrict: boolean; // No player wants to deviate\n stability: number; // 0-1, how stable is this equilibrium\n}\n\n/**\n * Dominant strategy for a player\n */\nexport interface DominantStrategy {\n playerId: string;\n strategyId: string;\n type: 'strictly_dominant' | 'weakly_dominant';\n dominatesStrategies: string[]; // Other strategy IDs this dominates\n justification: string;\n}\n\n/**\n * Game tree for extensive form games\n */\nexport interface GameTree {\n rootNode: string; // Node ID\n nodes: GameNode[];\n informationSets?: InformationSet[];\n}\n\n/**\n * Node in game tree\n */\nexport interface GameNode {\n id: string;\n type: 'decision' | 'chance' | 'terminal';\n playerId?: string; // Which player moves (for decision nodes)\n parentNode?: string; // Parent node ID\n childNodes: string[]; // Child node IDs\n action?: string; // Action that led to this node\n probability?: number; // For chance nodes\n payoffs?: number[]; // For terminal nodes\n}\n\n/**\n * Information set (nodes player cannot distinguish)\n */\nexport interface InformationSet {\n id: string;\n playerId: string;\n nodes: string[]; // Node IDs in this set\n availableActions: string[];\n}\n\n/**\n * Backward induction solution\n */\nexport interface BackwardInduction {\n subgamePerfectEquilibrium: string[]; // Sequence of strategy IDs\n optimalPath: string[]; // Node IDs along optimal path\n expectedPayoffs: number[];\n}\n\nexport function isGameTheoryThought(thought: BaseThought): thought is GameTheoryThought {\n return thought.mode === 'gametheory';\n}\n","/**\n * Evidential Reasoning Mode - Type Definitions\n * Phase 3C (v2.3) - Dempster-Shafer theory, belief functions, evidence combination\n */\n\nimport { BaseThought } from '../core.js';\n\nexport interface EvidentialThought extends BaseThought {\n mode: 'evidential';\n thoughtType:\n | 'hypothesis_definition'\n | 'evidence_collection'\n | 'belief_assignment'\n | 'evidence_combination'\n | 'decision_analysis';\n\n frameOfDiscernment?: string[]; // All possible hypotheses\n hypotheses?: Hypothesis[];\n evidence?: Evidence[];\n beliefFunctions?: BeliefFunction[];\n combinedBelief?: BeliefFunction;\n plausibility?: PlausibilityFunction;\n decisions?: Decision[];\n}\n\nexport interface Hypothesis {\n id: string;\n name: string;\n description: string;\n mutuallyExclusive: boolean;\n subsets?: string[]; // For composite hypotheses\n}\n\nexport interface Evidence {\n id: string;\n description: string;\n source: string;\n reliability: number; // 0-1\n timestamp: number;\n supports: string[]; // Hypothesis IDs or subsets\n contradicts?: string[]; // Hypothesis IDs or subsets\n}\n\nexport interface BeliefFunction {\n id: string;\n source: string; // Evidence ID or 'combined'\n massAssignments: MassAssignment[];\n conflictMass?: number; // Normalization factor\n}\n\nexport interface MassAssignment {\n hypothesisSet: string[]; // Hypothesis IDs (singleton or composite)\n mass: number; // 0-1, basic probability assignment\n justification: string;\n}\n\nexport interface PlausibilityFunction {\n id: string;\n assignments: PlausibilityAssignment[];\n}\n\nexport interface PlausibilityAssignment {\n hypothesisSet: string[];\n plausibility: number; // 0-1\n belief: number; // 0-1\n uncertaintyInterval: [number, number]; // [belief, plausibility]\n}\n\nexport interface Decision {\n id: string;\n name: string;\n selectedHypothesis: string[];\n confidence: number; // Based on belief/plausibility\n reasoning: string;\n alternatives: Alternative[];\n}\n\nexport interface Alternative {\n hypothesis: string[];\n expectedUtility: number;\n risk: number;\n}\n\nexport function isEvidentialThought(thought: BaseThought): thought is EvidentialThought {\n return thought.mode === 'evidential';\n}\n","/**\n * Mode Recommendation System (v2.4)\n * Intelligent system to recommend which reasoning modes to use based on problem characteristics\n */\n\nimport { ThinkingMode } from '../core.js';\n\nexport interface ProblemCharacteristics {\n domain: string;\n complexity: 'low' | 'medium' | 'high';\n uncertainty: 'low' | 'medium' | 'high';\n timeDependent: boolean;\n multiAgent: boolean;\n requiresProof: boolean;\n requiresQuantification: boolean;\n hasIncompleteInfo: boolean;\n requiresExplanation: boolean;\n hasAlternatives: boolean;\n}\n\nexport interface ModeRecommendation {\n mode: ThinkingMode;\n score: number; // 0-1, how well suited\n reasoning: string;\n strengths: string[];\n limitations: string[];\n examples: string[];\n}\n\nexport interface CombinationRecommendation {\n modes: ThinkingMode[];\n sequence: 'parallel' | 'sequential' | 'hybrid';\n rationale: string;\n benefits: string[];\n synergies: string[];\n}\n\nexport class ModeRecommender {\n /**\n * Recommends reasoning modes based on problem characteristics\n * Returns modes ranked by suitability score\n */\n recommendModes(characteristics: ProblemCharacteristics): ModeRecommendation[] {\n const recommendations: ModeRecommendation[] = [];\n\n // Temporal reasoning\n if (characteristics.timeDependent) {\n recommendations.push({\n mode: ThinkingMode.TEMPORAL,\n score: 0.9,\n reasoning: 'Problem involves time-dependent events and sequences',\n strengths: ['Event sequencing', 'Temporal causality', 'Timeline construction'],\n limitations: ['Limited strategic reasoning'],\n examples: ['Process modeling', 'Event correlation', 'Timeline debugging'],\n });\n }\n\n // Game theory\n if (characteristics.multiAgent) {\n recommendations.push({\n mode: ThinkingMode.GAMETHEORY,\n score: 0.85,\n reasoning: 'Problem involves strategic interactions between agents',\n strengths: ['Equilibrium analysis', 'Strategic reasoning', 'Multi-agent dynamics'],\n limitations: ['Assumes rationality', 'Complex computations'],\n examples: ['Competitive analysis', 'Auction design', 'Negotiation'],\n });\n }\n\n // Evidential reasoning\n if (characteristics.hasIncompleteInfo && characteristics.uncertainty === 'high') {\n recommendations.push({\n mode: ThinkingMode.EVIDENTIAL,\n score: 0.88,\n reasoning: 'Problem has incomplete information and high uncertainty',\n strengths: ['Handles ignorance', 'Evidence combination', 'Uncertainty intervals'],\n limitations: ['Computational complexity', 'Requires careful mass assignment'],\n examples: ['Sensor fusion', 'Diagnostic reasoning', 'Intelligence analysis'],\n });\n }\n\n // Abductive reasoning\n if (characteristics.requiresExplanation) {\n recommendations.push({\n mode: ThinkingMode.ABDUCTIVE,\n score: 0.87,\n reasoning: 'Problem requires finding best explanations',\n strengths: ['Hypothesis generation', 'Root cause analysis', 'Explanation quality'],\n limitations: ['May miss non-obvious explanations'],\n examples: ['Debugging', 'Diagnosis', 'Scientific discovery'],\n });\n }\n\n // Causal reasoning\n if (characteristics.timeDependent && characteristics.requiresExplanation) {\n recommendations.push({\n mode: ThinkingMode.CAUSAL,\n score: 0.86,\n reasoning: 'Problem requires understanding cause-effect relationships',\n strengths: ['Intervention analysis', 'Causal graphs', 'Impact assessment'],\n limitations: ['Requires domain knowledge', 'Difficult to identify confounders'],\n examples: ['Impact analysis', 'System design', 'Policy evaluation'],\n });\n }\n\n // Bayesian reasoning\n if (characteristics.requiresQuantification && characteristics.uncertainty !== 'low') {\n recommendations.push({\n mode: ThinkingMode.BAYESIAN,\n score: 0.84,\n reasoning: 'Problem requires probabilistic reasoning with evidence updates',\n strengths: ['Principled uncertainty', 'Evidence integration', 'Prior knowledge'],\n limitations: ['Requires probability estimates', 'Computationally intensive'],\n examples: ['A/B testing', 'Risk assessment', 'Predictive modeling'],\n });\n }\n\n // Counterfactual reasoning\n if (characteristics.hasAlternatives) {\n recommendations.push({\n mode: ThinkingMode.COUNTERFACTUAL,\n score: 0.82,\n reasoning: 'Problem benefits from analyzing alternative scenarios',\n strengths: ['What-if analysis', 'Post-mortem insights', 'Decision comparison'],\n limitations: ['Speculative', 'Difficult to validate'],\n examples: ['Post-mortems', 'Strategic planning', 'Architecture decisions'],\n });\n }\n\n // Analogical reasoning\n if (characteristics.complexity === 'high' && characteristics.requiresExplanation) {\n recommendations.push({\n mode: ThinkingMode.ANALOGICAL,\n score: 0.80,\n reasoning: 'Problem can benefit from cross-domain analogies',\n strengths: ['Creative insights', 'Knowledge transfer', 'Pattern recognition'],\n limitations: ['Analogies may be superficial', 'Requires diverse knowledge'],\n examples: ['Novel problem solving', 'Design thinking', 'Innovation'],\n });\n }\n\n // Mathematical reasoning\n if (characteristics.requiresProof) {\n recommendations.push({\n mode: ThinkingMode.MATHEMATICS,\n score: 0.95,\n reasoning: 'Problem requires formal proofs and symbolic reasoning',\n strengths: ['Rigorous proofs', 'Symbolic computation', 'Theorem proving'],\n limitations: ['Limited to mathematical domains'],\n examples: ['Algorithm correctness', 'Complexity analysis', 'Formal verification'],\n });\n }\n\n // Physics reasoning\n if (characteristics.domain === 'physics' || characteristics.domain === 'engineering') {\n recommendations.push({\n mode: ThinkingMode.PHYSICS,\n score: 0.90,\n reasoning: 'Problem involves physical systems or tensor mathematics',\n strengths: ['Field theory', 'Conservation laws', 'Tensor analysis'],\n limitations: ['Specialized to physics domains'],\n examples: ['Physical modeling', 'System dynamics', 'Engineering analysis'],\n });\n }\n\n // Shannon methodology\n if (characteristics.complexity === 'high' && characteristics.requiresProof) {\n recommendations.push({\n mode: ThinkingMode.SHANNON,\n score: 0.88,\n reasoning: 'Complex problem requiring systematic decomposition',\n strengths: ['Systematic approach', 'Problem decomposition', 'Rigorous analysis'],\n limitations: ['Time-intensive', 'Requires discipline'],\n examples: ['Complex system design', 'Research problems', 'Novel algorithms'],\n });\n }\n\n // Sequential reasoning (default fallback)\n if (recommendations.length === 0) {\n recommendations.push({\n mode: ThinkingMode.SEQUENTIAL,\n score: 0.70,\n reasoning: 'General-purpose iterative reasoning',\n strengths: ['Flexible', 'Adaptable', 'Iterative refinement'],\n limitations: ['May lack structure for complex problems'],\n examples: ['General problem solving', 'Exploration', 'Brainstorming'],\n });\n }\n\n // Sort by score (highest first)\n return recommendations.sort((a, b) => b.score - a.score);\n }\n\n /**\n * Recommends combinations of reasoning modes that work well together\n */\n recommendCombinations(characteristics: ProblemCharacteristics): CombinationRecommendation[] {\n const combinations: CombinationRecommendation[] = [];\n\n // Temporal + Causal\n if (characteristics.timeDependent && characteristics.requiresExplanation) {\n combinations.push({\n modes: [ThinkingMode.TEMPORAL, ThinkingMode.CAUSAL],\n sequence: 'sequential',\n rationale: 'Build timeline first, then analyze causal relationships',\n benefits: ['Complete temporal-causal model', 'Root cause with timeline context'],\n synergies: ['Temporal events inform causal nodes', 'Causal edges explain temporal sequences'],\n });\n }\n\n // Abductive + Bayesian\n if (characteristics.requiresExplanation && characteristics.requiresQuantification) {\n combinations.push({\n modes: [ThinkingMode.ABDUCTIVE, ThinkingMode.BAYESIAN],\n sequence: 'sequential',\n rationale: 'Generate hypotheses, then quantify with probabilities',\n benefits: ['Systematic hypothesis generation', 'Quantified belief updates'],\n synergies: ['Abductive hypotheses become Bayesian hypotheses', 'Bayesian updates refine explanations'],\n });\n }\n\n // Game Theory + Counterfactual\n if (characteristics.multiAgent && characteristics.hasAlternatives) {\n combinations.push({\n modes: [ThinkingMode.GAMETHEORY, ThinkingMode.COUNTERFACTUAL],\n sequence: 'hybrid',\n rationale: 'Analyze equilibria, then explore alternative strategies',\n benefits: ['Strategic analysis + scenario exploration', 'Robustness testing'],\n synergies: ['Equilibria as actual scenarios', 'Strategy changes as interventions'],\n });\n }\n\n // Evidential + Causal\n if (characteristics.hasIncompleteInfo && characteristics.timeDependent) {\n combinations.push({\n modes: [ThinkingMode.EVIDENTIAL, ThinkingMode.CAUSAL],\n sequence: 'parallel',\n rationale: 'Combine uncertain evidence while modeling causal structure',\n benefits: ['Handles uncertainty and causality', 'Evidence fusion with causal reasoning'],\n synergies: ['Belief functions inform causal strengths', 'Causal structure guides evidence combination'],\n });\n }\n\n // Temporal + Game Theory\n if (characteristics.timeDependent && characteristics.multiAgent) {\n combinations.push({\n modes: [ThinkingMode.TEMPORAL, ThinkingMode.GAMETHEORY],\n sequence: 'sequential',\n rationale: 'Model event sequences, then analyze strategic interactions over time',\n benefits: ['Dynamic game analysis', 'Time-dependent strategies'],\n synergies: ['Temporal events as game stages', 'Strategies evolve over timeline'],\n });\n }\n\n // Analogical + Abductive\n if (characteristics.requiresExplanation && characteristics.complexity === 'high') {\n combinations.push({\n modes: [ThinkingMode.ANALOGICAL, ThinkingMode.ABDUCTIVE],\n sequence: 'parallel',\n rationale: 'Use analogies to inspire hypotheses while systematically generating explanations',\n benefits: ['Creative hypothesis generation', 'Cross-domain insights'],\n synergies: ['Analogies suggest hypotheses', 'Hypotheses validated by analogical reasoning'],\n });\n }\n\n // Mathematics + Shannon (for complex proofs)\n if (characteristics.requiresProof && characteristics.complexity === 'high') {\n combinations.push({\n modes: [ThinkingMode.SHANNON, ThinkingMode.MATHEMATICS],\n sequence: 'hybrid',\n rationale: 'Use Shannon methodology to structure complex mathematical proofs',\n benefits: ['Systematic proof construction', 'Clear problem decomposition'],\n synergies: ['Shannon stages guide proof strategy', 'Mathematical rigor validates each stage'],\n });\n }\n\n return combinations;\n }\n\n /**\n * Get a simple mode recommendation based on a few key characteristics\n * Simplified version for quick recommendations\n */\n quickRecommend(problemType: string): ThinkingMode {\n const typeMap: Record<string, ThinkingMode> = {\n 'debugging': ThinkingMode.ABDUCTIVE,\n 'proof': ThinkingMode.MATHEMATICS,\n 'timeline': ThinkingMode.TEMPORAL,\n 'strategy': ThinkingMode.GAMETHEORY,\n 'uncertainty': ThinkingMode.EVIDENTIAL,\n 'causality': ThinkingMode.CAUSAL,\n 'probability': ThinkingMode.BAYESIAN,\n 'what-if': ThinkingMode.COUNTERFACTUAL,\n 'analogy': ThinkingMode.ANALOGICAL,\n 'physics': ThinkingMode.PHYSICS,\n 'systematic': ThinkingMode.SHANNON,\n };\n\n return typeMap[problemType.toLowerCase()] || ThinkingMode.SEQUENTIAL;\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';\nimport { TemporalThought, isTemporalThought } from '../types/modes/temporal.js';\nimport { GameTheoryThought, isGameTheoryThought } from '../types/modes/gametheory.js';\nimport { EvidentialThought, isEvidentialThought } from '../types/modes/evidential.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 customMetrics: new Map(),\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 // Game theory-specific metrics (Phase 3, v2.2)\n if (isGameTheoryThought(thought)) {\n if (thought.players) {\n metrics.customMetrics.set('numPlayers', thought.players.length);\n }\n if (thought.strategies) {\n metrics.customMetrics.set('totalStrategies', thought.strategies.length);\n const mixedStrategies = thought.strategies.filter(s => !s.isPure);\n metrics.customMetrics.set('mixedStrategies', mixedStrategies.length);\n }\n if (thought.nashEquilibria) {\n metrics.customMetrics.set('nashEquilibria', thought.nashEquilibria.length);\n const pureEquilibria = thought.nashEquilibria.filter(e => e.type === 'pure');\n metrics.customMetrics.set('pureNashEquilibria', pureEquilibria.length);\n }\n if (thought.dominantStrategies) {\n metrics.customMetrics.set('dominantStrategies', thought.dominantStrategies.length);\n }\n if (thought.game) {\n metrics.customMetrics.set('gameType', thought.game.type);\n metrics.customMetrics.set('isZeroSum', thought.game.isZeroSum);\n }\n\n // Evidential-specific metrics (Phase 3, v2.3)\n if (isEvidentialThought(thought)) {\n if (thought.hypotheses) {\n metrics.customMetrics.set('totalHypotheses', thought.hypotheses.length);\n }\n if (thought.evidence) {\n metrics.customMetrics.set('totalEvidence', thought.evidence.length);\n const avgReliability = thought.evidence.reduce((sum, e) => sum + e.reliability, 0) / thought.evidence.length;\n metrics.customMetrics.set('avgEvidenceReliability', avgReliability);\n }\n if (thought.beliefFunctions) {\n metrics.customMetrics.set('beliefFunctions', thought.beliefFunctions.length);\n }\n if (thought.combinedBelief) {\n metrics.customMetrics.set('hasCombinedBelief', true);\n if (thought.combinedBelief.conflictMass !== undefined) {\n metrics.customMetrics.set('conflictMass', thought.combinedBelief.conflictMass);\n }\n }\n if (thought.decisions) {\n metrics.customMetrics.set('decisions', thought.decisions.length);\n }\n }\n }\n }\n }\n}\n","#!/usr/bin/env node\r\n\r\n/**\r\n * DeepThinking MCP Server\r\n * Unified deep thinking server combining sequential, Shannon, and mathematical reasoning\r\n */\r\n\r\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js';\r\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\r\nimport {\r\n CallToolRequestSchema,\r\n ListToolsRequestSchema,\r\n} from '@modelcontextprotocol/sdk/types.js';\r\nimport { randomUUID } from 'crypto';\r\n\r\nimport { thinkingTool, ThinkingToolInput, ThinkingToolSchema } from './tools/thinking.js';\r\nimport { SessionManager } from './session/index.js';\r\nimport {\r\n ThinkingMode,\r\n ShannonStage,\r\n SequentialThought,\r\n ShannonThought,\r\n MathematicsThought,\r\n PhysicsThought,\r\n HybridThought,\r\n AbductiveThought,\r\n CausalThought,\r\n BayesianThought,\r\n CounterfactualThought,\r\n AnalogicalThought,\r\n TemporalThought,\r\n GameTheoryThought,\r\n EvidentialThought,\r\n ModeRecommender,\r\n} from './types/index.js';\r\n\r\nconst server = new Server(\r\n {\r\n name: 'deepthinking-mcp',\r\n version: '1.0.0',\r\n },\r\n {\r\n capabilities: {\r\n tools: {},\r\n },\r\n }\r\n);\r\n\r\nconst sessionManager = new SessionManager();\r\n\r\nserver.setRequestHandler(ListToolsRequestSchema, async () => {\r\n return {\r\n tools: [thinkingTool],\r\n };\r\n});\r\n\r\nserver.setRequestHandler(CallToolRequestSchema, async (request) => {\r\n const { name, arguments: args } = request.params;\r\n\r\n if (name === 'deepthinking') {\r\n try {\r\n const input = ThinkingToolSchema.parse(args) as ThinkingToolInput;\r\n\r\n switch (input.action) {\r\n case 'add_thought':\r\n return await handleAddThought(input);\r\n case 'summarize':\r\n return await handleSummarize(input);\r\n case 'export':\r\n return await handleExport(input);\r\n case 'switch_mode':\r\n return await handleSwitchMode(input);\r\n case 'get_session':\r\n return await handleGetSession(input);\r\n case 'recommend_mode':\r\n return await handleRecommendMode(input);\r\n default:\r\n throw new Error(`Unknown action: ${input.action}`);\r\n }\r\n } catch (error) {\r\n return {\r\n content: [\r\n {\r\n type: 'text',\r\n text: `Error: ${error instanceof Error ? error.message : String(error)}`,\r\n },\r\n ],\r\n isError: true,\r\n };\r\n }\r\n }\r\n\r\n throw new Error(`Unknown tool: ${name}`);\r\n});\r\n\r\nasync function handleAddThought(input: ThinkingToolInput) {\r\n let sessionId = input.sessionId;\r\n if (!sessionId) {\r\n const session = await sessionManager.createSession({\r\n mode: input.mode as ThinkingMode,\r\n title: `Thinking Session ${new Date().toISOString()}`,\r\n });\r\n sessionId = session.id;\r\n }\r\n\r\n const thought = createThought(input, sessionId);\r\n const session = await sessionManager.addThought(sessionId, thought);\r\n\r\n return {\r\n content: [\r\n {\r\n type: 'text',\r\n text: JSON.stringify({\r\n sessionId: session.id,\r\n thoughtId: thought.id,\r\n thoughtNumber: thought.thoughtNumber,\r\n mode: thought.mode,\r\n nextThoughtNeeded: thought.nextThoughtNeeded,\r\n sessionComplete: session.isComplete,\r\n totalThoughts: session.thoughts.length,\r\n }, null, 2),\r\n },\r\n ],\r\n };\r\n}\r\n\r\nasync function handleSummarize(input: ThinkingToolInput) {\r\n if (!input.sessionId) {\r\n throw new Error('sessionId required for summarize action');\r\n }\r\n\r\n const summary = await sessionManager.generateSummary(input.sessionId);\r\n\r\n return {\r\n content: [\r\n {\r\n type: 'text',\r\n text: summary,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nasync function handleExport(input: ThinkingToolInput) {\r\n if (!input.sessionId) {\r\n throw new Error('sessionId required for export action');\r\n }\r\n\r\n const session = await sessionManager.getSession(input.sessionId);\r\n if (!session) {\r\n throw new Error(`Session ${input.sessionId} not found`);\r\n }\r\n\r\n // Convert Map to object for JSON serialization\r\n const sessionWithCustomMetrics = {\r\n ...session,\r\n metrics: {\r\n ...session.metrics,\r\n customMetrics: Object.fromEntries(session.metrics.customMetrics),\r\n },\r\n };\r\n\r\n const exported = JSON.stringify(sessionWithCustomMetrics, null, 2);\r\n\r\n return {\r\n content: [\r\n {\r\n type: 'text',\r\n text: exported,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nasync function handleSwitchMode(input: ThinkingToolInput) {\r\n if (!input.sessionId || !input.newMode) {\r\n throw new Error('sessionId and newMode required for switch_mode action');\r\n }\r\n\r\n const session = await sessionManager.switchMode(\r\n input.sessionId,\r\n input.newMode as ThinkingMode,\r\n 'User requested mode switch'\r\n );\r\n\r\n return {\r\n content: [\r\n {\r\n type: 'text',\r\n text: `Switched session ${session.id} to ${session.mode} mode`,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nasync function handleGetSession(input: ThinkingToolInput) {\r\n if (!input.sessionId) {\r\n throw new Error('sessionId required for get_session action');\r\n }\r\n\r\n const session = await sessionManager.getSession(input.sessionId);\r\n if (!session) {\r\n throw new Error(`Session ${input.sessionId} not found`);\r\n }\r\n\r\n // Convert Map to object for JSON serialization\r\n const metricsWithCustom = {\r\n ...session.metrics,\r\n customMetrics: Object.fromEntries(session.metrics.customMetrics),\r\n };\r\n\r\n return {\r\n content: [\r\n {\r\n type: 'text',\r\n text: JSON.stringify({\r\n id: session.id,\r\n title: session.title,\r\n mode: session.mode,\r\n thoughtCount: session.thoughts.length,\r\n isComplete: session.isComplete,\r\n metrics: metricsWithCustom,\r\n }, null, 2),\r\n },\r\n ],\r\n };\r\n}\r\n\r\nfunction createThought(input: ThinkingToolInput, sessionId: string) {\r\n const baseThought = {\r\n id: randomUUID(),\r\n sessionId,\r\n thoughtNumber: input.thoughtNumber,\r\n totalThoughts: input.totalThoughts,\r\n content: input.thought,\r\n timestamp: new Date(),\r\n nextThoughtNeeded: input.nextThoughtNeeded,\r\n isRevision: input.isRevision,\r\n revisesThought: input.revisesThought,\r\n };\r\n\r\n switch (input.mode) {\r\n case 'sequential':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.SEQUENTIAL,\r\n revisionReason: input.revisionReason,\r\n branchFrom: input.branchFrom,\r\n branchId: input.branchId,\r\n } as SequentialThought;\r\n\r\n case 'shannon':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.SHANNON,\r\n stage: (input.stage as ShannonStage) || ShannonStage.PROBLEM_DEFINITION,\r\n uncertainty: input.uncertainty || 0.5,\r\n dependencies: input.dependencies || [],\r\n assumptions: input.assumptions || [],\r\n } as ShannonThought;\r\n\r\n case 'mathematics':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.MATHEMATICS,\r\n thoughtType: input.thoughtType as any,\r\n mathematicalModel: input.mathematicalModel,\r\n proofStrategy: input.proofStrategy,\r\n dependencies: input.dependencies || [],\r\n assumptions: input.assumptions || [],\r\n uncertainty: input.uncertainty || 0.5,\r\n } as MathematicsThought;\r\n\r\n case 'physics':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.PHYSICS,\r\n thoughtType: input.thoughtType as any,\r\n tensorProperties: input.tensorProperties,\r\n physicalInterpretation: input.physicalInterpretation,\r\n dependencies: input.dependencies || [],\r\n assumptions: input.assumptions || [],\r\n uncertainty: input.uncertainty || 0.5,\r\n } as PhysicsThought;\r\n\r\n case 'abductive':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.ABDUCTIVE,\r\n thoughtType: input.thoughtType as any,\r\n observations: input.observations || [],\r\n hypotheses: input.hypotheses || [],\r\n evaluationCriteria: input.evaluationCriteria,\r\n evidence: input.evidence || [],\r\n bestExplanation: input.bestExplanation,\r\n } as AbductiveThought;\r\n\r\n case 'causal':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.CAUSAL,\r\n thoughtType: input.thoughtType as any,\r\n causalGraph: input.causalGraph,\r\n interventions: input.interventions || [],\r\n mechanisms: input.mechanisms || [],\r\n confounders: input.confounders || [],\r\n } as CausalThought;\r\n\r\n case 'bayesian':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.BAYESIAN,\r\n thoughtType: input.thoughtType as any,\r\n hypothesis: input.hypothesis,\r\n prior: input.prior,\r\n likelihood: input.likelihood,\r\n evidence: input.evidence || [],\r\n posterior: input.posterior,\r\n bayesFactor: input.bayesFactor,\r\n } as unknown as BayesianThought;\r\n\r\n case 'counterfactual':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.COUNTERFACTUAL,\r\n thoughtType: input.thoughtType as any,\r\n actual: input.actual,\r\n counterfactuals: input.counterfactuals || [],\r\n comparison: input.comparison,\r\n interventionPoint: input.interventionPoint,\r\n causalChains: input.causalChains || [],\r\n } as CounterfactualThought;\r\n\r\n case 'analogical':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.ANALOGICAL,\r\n thoughtType: input.thoughtType as any,\r\n sourceDomain: input.sourceDomain,\r\n targetDomain: input.targetDomain,\r\n mapping: input.mapping || [],\r\n insights: input.insights || [],\r\n inferences: input.inferences || [],\r\n limitations: input.limitations || [],\r\n analogyStrength: input.analogyStrength,\r\n } as unknown as AnalogicalThought;\r\n\r\n case 'temporal':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.TEMPORAL,\r\n thoughtType: input.thoughtType as any,\r\n timeline: input.timeline,\r\n events: input.events || [],\r\n intervals: input.intervals || [],\r\n constraints: input.constraints || [],\r\n relations: input.relations || [],\r\n } as TemporalThought;\r\n\r\n case 'gametheory':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.GAMETHEORY,\r\n thoughtType: input.thoughtType as any,\r\n game: input.game,\r\n players: input.players || [],\r\n strategies: input.strategies || [],\r\n payoffMatrix: input.payoffMatrix,\r\n nashEquilibria: input.nashEquilibria || [],\r\n dominantStrategies: input.dominantStrategies || [],\r\n gameTree: input.gameTree,\r\n } as GameTheoryThought;\r\n\r\n case 'evidential':\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.EVIDENTIAL,\r\n thoughtType: input.thoughtType as any,\r\n frameOfDiscernment: input.frameOfDiscernment,\r\n hypotheses: input.hypotheses || [],\r\n evidence: input.evidence || [],\r\n beliefFunctions: input.beliefFunctions || [],\r\n combinedBelief: input.combinedBelief,\r\n plausibility: input.plausibility,\r\n decisions: input.decisions || [],\r\n } as EvidentialThought;\r\n\r\n case 'hybrid':\r\n default:\r\n return {\r\n ...baseThought,\r\n mode: ThinkingMode.HYBRID,\r\n thoughtType: input.thoughtType as any,\r\n stage: input.stage as ShannonStage,\r\n uncertainty: input.uncertainty,\r\n dependencies: input.dependencies,\r\n assumptions: input.assumptions,\r\n mathematicalModel: input.mathematicalModel,\r\n tensorProperties: input.tensorProperties,\r\n physicalInterpretation: input.physicalInterpretation,\r\n primaryMode: input.mode as any,\r\n secondaryFeatures: [],\r\n } as HybridThought;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Handle mode recommendation requests\r\n */\r\nasync function handleRecommendMode(input: ThinkingToolInput) {\r\n const recommender = new ModeRecommender();\r\n \r\n // Quick recommendation based on problem type\r\n if (input.problemType && !input.problemCharacteristics) {\r\n const recommendedMode = recommender.quickRecommend(input.problemType);\r\n \r\n return {\r\n content: [{\r\n type: 'text' as const,\r\n text: `Quick recommendation for \"${input.problemType}\":\\n\\n**Recommended Mode**: ${recommendedMode}\\n\\nFor more detailed recommendations, provide problemCharacteristics.`\r\n }],\r\n isError: false,\r\n };\r\n }\r\n \r\n // Comprehensive recommendations based on problem characteristics\r\n if (input.problemCharacteristics) {\r\n const modeRecs = recommender.recommendModes(input.problemCharacteristics);\r\n const combinationRecs = input.includeCombinations \r\n ? recommender.recommendCombinations(input.problemCharacteristics)\r\n : [];\r\n \r\n let response = '# Mode Recommendations\\n\\n';\r\n \r\n // Single mode recommendations\r\n response += '## Individual Modes\\n\\n';\r\n for (const rec of modeRecs) {\r\n response += `### ${rec.mode} (Score: ${rec.score})\\n`;\r\n response += `**Reasoning**: ${rec.reasoning}\\n\\n`;\r\n response += `**Strengths**:\\n`;\r\n for (const strength of rec.strengths) {\r\n response += `- ${strength}\\n`;\r\n }\r\n response += `\\n**Limitations**:\\n`;\r\n for (const limitation of rec.limitations) {\r\n response += `- ${limitation}\\n`;\r\n }\r\n response += `\\n**Examples**: ${rec.examples.join(', ')}\\n\\n`;\r\n response += '---\\n\\n';\r\n }\r\n \r\n // Mode combinations\r\n if (combinationRecs.length > 0) {\r\n response += '## Recommended Mode Combinations\\n\\n';\r\n for (const combo of combinationRecs) {\r\n response += `### ${combo.modes.join(' + ')} (${combo.sequence})\\n`;\r\n response += `**Rationale**: ${combo.rationale}\\n\\n`;\r\n response += `**Benefits**:\\n`;\r\n for (const benefit of combo.benefits) {\r\n response += `- ${benefit}\\n`;\r\n }\r\n response += `\\n**Synergies**:\\n`;\r\n for (const synergy of combo.synergies) {\r\n response += `- ${synergy}\\n`;\r\n }\r\n response += '\\n---\\n\\n';\r\n }\r\n }\r\n \r\n return {\r\n content: [{\r\n type: 'text' as const,\r\n text: response\r\n }],\r\n isError: false,\r\n };\r\n }\r\n \r\n // No valid input provided\r\n return {\r\n content: [{\r\n type: 'text' as const,\r\n text: 'Error: Please provide either problemType or problemCharacteristics for mode recommendations.'\r\n }],\r\n isError: true,\r\n };\r\n}\r\n\r\nasync function main() {\r\n const transport = new StdioServerTransport();\r\n await server.connect(transport);\r\n console.error('DeepThinking MCP server running on stdio');\r\n}\r\n\r\nmain().catch((error) => {\r\n console.error('Fatal error:', error);\r\n process.exit(1);\r\n});\r\n"]}
package/package.json CHANGED
@@ -1,73 +1,73 @@
1
- {
2
- "name": "deepthinking-mcp",
3
- "version": "2.3.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
- }
1
+ {
2
+ "name": "deepthinking-mcp",
3
+ "version": "2.4.1",
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
+ }