deepthinking-mcp 2.4.0 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +368 -4
- package/dist/index.js.map +1 -1
- package/package.json +73 -73
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",
|
|
@@ -421,7 +436,21 @@ Phase 3 Modes (v2.1+):
|
|
|
421
436
|
- gametheory: Nash equilibria, strategic analysis, payoff matrices
|
|
422
437
|
- evidential: Dempster-Shafer theory, belief functions, evidence combination
|
|
423
438
|
|
|
424
|
-
|
|
439
|
+
Actions:
|
|
440
|
+
- add_thought: Add a new thought to the session (default)
|
|
441
|
+
- summarize: Generate a summary of the session
|
|
442
|
+
- export: Export session in various formats (markdown, latex, json, html, jupyter)
|
|
443
|
+
- switch_mode: Change reasoning mode mid-session
|
|
444
|
+
- get_session: Retrieve session information
|
|
445
|
+
- recommend_mode: Get intelligent mode recommendations based on problem characteristics
|
|
446
|
+
|
|
447
|
+
Mode Recommendations (v2.4):
|
|
448
|
+
Use action 'recommend_mode' with either:
|
|
449
|
+
\u2022 problemType: Quick recommendation (e.g., 'debugging', 'proof', 'timeline', 'strategy')
|
|
450
|
+
\u2022 problemCharacteristics: Detailed analysis with 10 dimensions (domain, complexity, uncertainty, etc.)
|
|
451
|
+
\u2022 includeCombinations: Set to true for synergistic mode combination suggestions
|
|
452
|
+
|
|
453
|
+
Choose the mode that best fits your problem type, or use recommend_mode to get intelligent suggestions.`,
|
|
425
454
|
inputSchema: {
|
|
426
455
|
type: "object",
|
|
427
456
|
properties: {
|
|
@@ -679,7 +708,7 @@ Choose the mode that best fits your problem type.`,
|
|
|
679
708
|
},
|
|
680
709
|
action: {
|
|
681
710
|
type: "string",
|
|
682
|
-
enum: ["add_thought", "summarize", "export", "switch_mode", "get_session"],
|
|
711
|
+
enum: ["add_thought", "summarize", "export", "switch_mode", "get_session", "recommend_mode"],
|
|
683
712
|
description: "Action to perform"
|
|
684
713
|
},
|
|
685
714
|
exportFormat: {
|
|
@@ -691,6 +720,31 @@ Choose the mode that best fits your problem type.`,
|
|
|
691
720
|
type: "string",
|
|
692
721
|
enum: ["sequential", "shannon", "mathematics", "physics", "hybrid", "abductive", "causal", "bayesian", "counterfactual", "analogical", "temporal", "gametheory", "evidential"],
|
|
693
722
|
description: "New mode for switch_mode action"
|
|
723
|
+
},
|
|
724
|
+
problemType: {
|
|
725
|
+
type: "string",
|
|
726
|
+
description: "Simple problem type for quick recommendations (e.g., 'debugging', 'proof', 'timeline')"
|
|
727
|
+
},
|
|
728
|
+
problemCharacteristics: {
|
|
729
|
+
type: "object",
|
|
730
|
+
properties: {
|
|
731
|
+
domain: { type: "string", description: "Problem domain" },
|
|
732
|
+
complexity: { type: "string", enum: ["low", "medium", "high"], description: "Problem complexity" },
|
|
733
|
+
uncertainty: { type: "string", enum: ["low", "medium", "high"], description: "Uncertainty level" },
|
|
734
|
+
timeDependent: { type: "boolean", description: "Whether problem involves time sequences" },
|
|
735
|
+
multiAgent: { type: "boolean", description: "Whether multiple agents interact" },
|
|
736
|
+
requiresProof: { type: "boolean", description: "Whether formal proof is needed" },
|
|
737
|
+
requiresQuantification: { type: "boolean", description: "Whether quantification is needed" },
|
|
738
|
+
hasIncompleteInfo: { type: "boolean", description: "Whether information is incomplete" },
|
|
739
|
+
requiresExplanation: { type: "boolean", description: "Whether explanation is needed" },
|
|
740
|
+
hasAlternatives: { type: "boolean", description: "Whether alternative scenarios exist" }
|
|
741
|
+
},
|
|
742
|
+
required: ["domain", "complexity", "uncertainty", "timeDependent", "multiAgent", "requiresProof", "requiresQuantification", "hasIncompleteInfo", "requiresExplanation", "hasAlternatives"],
|
|
743
|
+
description: "Detailed problem characteristics for comprehensive recommendations"
|
|
744
|
+
},
|
|
745
|
+
includeCombinations: {
|
|
746
|
+
type: "boolean",
|
|
747
|
+
description: "Whether to include mode combination suggestions"
|
|
694
748
|
}
|
|
695
749
|
},
|
|
696
750
|
required: ["thought", "thoughtNumber", "totalThoughts", "nextThoughtNeeded"]
|
|
@@ -712,6 +766,228 @@ function isEvidentialThought(thought) {
|
|
|
712
766
|
return thought.mode === "evidential";
|
|
713
767
|
}
|
|
714
768
|
|
|
769
|
+
// src/types/modes/recommendations.ts
|
|
770
|
+
var ModeRecommender = class {
|
|
771
|
+
/**
|
|
772
|
+
* Recommends reasoning modes based on problem characteristics
|
|
773
|
+
* Returns modes ranked by suitability score
|
|
774
|
+
*/
|
|
775
|
+
recommendModes(characteristics) {
|
|
776
|
+
const recommendations = [];
|
|
777
|
+
if (characteristics.timeDependent) {
|
|
778
|
+
recommendations.push({
|
|
779
|
+
mode: "temporal" /* TEMPORAL */,
|
|
780
|
+
score: 0.9,
|
|
781
|
+
reasoning: "Problem involves time-dependent events and sequences",
|
|
782
|
+
strengths: ["Event sequencing", "Temporal causality", "Timeline construction"],
|
|
783
|
+
limitations: ["Limited strategic reasoning"],
|
|
784
|
+
examples: ["Process modeling", "Event correlation", "Timeline debugging"]
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
if (characteristics.multiAgent) {
|
|
788
|
+
recommendations.push({
|
|
789
|
+
mode: "gametheory" /* GAMETHEORY */,
|
|
790
|
+
score: 0.85,
|
|
791
|
+
reasoning: "Problem involves strategic interactions between agents",
|
|
792
|
+
strengths: ["Equilibrium analysis", "Strategic reasoning", "Multi-agent dynamics"],
|
|
793
|
+
limitations: ["Assumes rationality", "Complex computations"],
|
|
794
|
+
examples: ["Competitive analysis", "Auction design", "Negotiation"]
|
|
795
|
+
});
|
|
796
|
+
}
|
|
797
|
+
if (characteristics.hasIncompleteInfo && characteristics.uncertainty === "high") {
|
|
798
|
+
recommendations.push({
|
|
799
|
+
mode: "evidential" /* EVIDENTIAL */,
|
|
800
|
+
score: 0.88,
|
|
801
|
+
reasoning: "Problem has incomplete information and high uncertainty",
|
|
802
|
+
strengths: ["Handles ignorance", "Evidence combination", "Uncertainty intervals"],
|
|
803
|
+
limitations: ["Computational complexity", "Requires careful mass assignment"],
|
|
804
|
+
examples: ["Sensor fusion", "Diagnostic reasoning", "Intelligence analysis"]
|
|
805
|
+
});
|
|
806
|
+
}
|
|
807
|
+
if (characteristics.requiresExplanation) {
|
|
808
|
+
recommendations.push({
|
|
809
|
+
mode: "abductive" /* ABDUCTIVE */,
|
|
810
|
+
score: 0.87,
|
|
811
|
+
reasoning: "Problem requires finding best explanations",
|
|
812
|
+
strengths: ["Hypothesis generation", "Root cause analysis", "Explanation quality"],
|
|
813
|
+
limitations: ["May miss non-obvious explanations"],
|
|
814
|
+
examples: ["Debugging", "Diagnosis", "Scientific discovery"]
|
|
815
|
+
});
|
|
816
|
+
}
|
|
817
|
+
if (characteristics.timeDependent && characteristics.requiresExplanation) {
|
|
818
|
+
recommendations.push({
|
|
819
|
+
mode: "causal" /* CAUSAL */,
|
|
820
|
+
score: 0.86,
|
|
821
|
+
reasoning: "Problem requires understanding cause-effect relationships",
|
|
822
|
+
strengths: ["Intervention analysis", "Causal graphs", "Impact assessment"],
|
|
823
|
+
limitations: ["Requires domain knowledge", "Difficult to identify confounders"],
|
|
824
|
+
examples: ["Impact analysis", "System design", "Policy evaluation"]
|
|
825
|
+
});
|
|
826
|
+
}
|
|
827
|
+
if (characteristics.requiresQuantification && characteristics.uncertainty !== "low") {
|
|
828
|
+
recommendations.push({
|
|
829
|
+
mode: "bayesian" /* BAYESIAN */,
|
|
830
|
+
score: 0.84,
|
|
831
|
+
reasoning: "Problem requires probabilistic reasoning with evidence updates",
|
|
832
|
+
strengths: ["Principled uncertainty", "Evidence integration", "Prior knowledge"],
|
|
833
|
+
limitations: ["Requires probability estimates", "Computationally intensive"],
|
|
834
|
+
examples: ["A/B testing", "Risk assessment", "Predictive modeling"]
|
|
835
|
+
});
|
|
836
|
+
}
|
|
837
|
+
if (characteristics.hasAlternatives) {
|
|
838
|
+
recommendations.push({
|
|
839
|
+
mode: "counterfactual" /* COUNTERFACTUAL */,
|
|
840
|
+
score: 0.82,
|
|
841
|
+
reasoning: "Problem benefits from analyzing alternative scenarios",
|
|
842
|
+
strengths: ["What-if analysis", "Post-mortem insights", "Decision comparison"],
|
|
843
|
+
limitations: ["Speculative", "Difficult to validate"],
|
|
844
|
+
examples: ["Post-mortems", "Strategic planning", "Architecture decisions"]
|
|
845
|
+
});
|
|
846
|
+
}
|
|
847
|
+
if (characteristics.complexity === "high" && characteristics.requiresExplanation) {
|
|
848
|
+
recommendations.push({
|
|
849
|
+
mode: "analogical" /* ANALOGICAL */,
|
|
850
|
+
score: 0.8,
|
|
851
|
+
reasoning: "Problem can benefit from cross-domain analogies",
|
|
852
|
+
strengths: ["Creative insights", "Knowledge transfer", "Pattern recognition"],
|
|
853
|
+
limitations: ["Analogies may be superficial", "Requires diverse knowledge"],
|
|
854
|
+
examples: ["Novel problem solving", "Design thinking", "Innovation"]
|
|
855
|
+
});
|
|
856
|
+
}
|
|
857
|
+
if (characteristics.requiresProof) {
|
|
858
|
+
recommendations.push({
|
|
859
|
+
mode: "mathematics" /* MATHEMATICS */,
|
|
860
|
+
score: 0.95,
|
|
861
|
+
reasoning: "Problem requires formal proofs and symbolic reasoning",
|
|
862
|
+
strengths: ["Rigorous proofs", "Symbolic computation", "Theorem proving"],
|
|
863
|
+
limitations: ["Limited to mathematical domains"],
|
|
864
|
+
examples: ["Algorithm correctness", "Complexity analysis", "Formal verification"]
|
|
865
|
+
});
|
|
866
|
+
}
|
|
867
|
+
if (characteristics.domain === "physics" || characteristics.domain === "engineering") {
|
|
868
|
+
recommendations.push({
|
|
869
|
+
mode: "physics" /* PHYSICS */,
|
|
870
|
+
score: 0.9,
|
|
871
|
+
reasoning: "Problem involves physical systems or tensor mathematics",
|
|
872
|
+
strengths: ["Field theory", "Conservation laws", "Tensor analysis"],
|
|
873
|
+
limitations: ["Specialized to physics domains"],
|
|
874
|
+
examples: ["Physical modeling", "System dynamics", "Engineering analysis"]
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
if (characteristics.complexity === "high" && characteristics.requiresProof) {
|
|
878
|
+
recommendations.push({
|
|
879
|
+
mode: "shannon" /* SHANNON */,
|
|
880
|
+
score: 0.88,
|
|
881
|
+
reasoning: "Complex problem requiring systematic decomposition",
|
|
882
|
+
strengths: ["Systematic approach", "Problem decomposition", "Rigorous analysis"],
|
|
883
|
+
limitations: ["Time-intensive", "Requires discipline"],
|
|
884
|
+
examples: ["Complex system design", "Research problems", "Novel algorithms"]
|
|
885
|
+
});
|
|
886
|
+
}
|
|
887
|
+
if (recommendations.length === 0) {
|
|
888
|
+
recommendations.push({
|
|
889
|
+
mode: "sequential" /* SEQUENTIAL */,
|
|
890
|
+
score: 0.7,
|
|
891
|
+
reasoning: "General-purpose iterative reasoning",
|
|
892
|
+
strengths: ["Flexible", "Adaptable", "Iterative refinement"],
|
|
893
|
+
limitations: ["May lack structure for complex problems"],
|
|
894
|
+
examples: ["General problem solving", "Exploration", "Brainstorming"]
|
|
895
|
+
});
|
|
896
|
+
}
|
|
897
|
+
return recommendations.sort((a, b) => b.score - a.score);
|
|
898
|
+
}
|
|
899
|
+
/**
|
|
900
|
+
* Recommends combinations of reasoning modes that work well together
|
|
901
|
+
*/
|
|
902
|
+
recommendCombinations(characteristics) {
|
|
903
|
+
const combinations = [];
|
|
904
|
+
if (characteristics.timeDependent && characteristics.requiresExplanation) {
|
|
905
|
+
combinations.push({
|
|
906
|
+
modes: ["temporal" /* TEMPORAL */, "causal" /* CAUSAL */],
|
|
907
|
+
sequence: "sequential",
|
|
908
|
+
rationale: "Build timeline first, then analyze causal relationships",
|
|
909
|
+
benefits: ["Complete temporal-causal model", "Root cause with timeline context"],
|
|
910
|
+
synergies: ["Temporal events inform causal nodes", "Causal edges explain temporal sequences"]
|
|
911
|
+
});
|
|
912
|
+
}
|
|
913
|
+
if (characteristics.requiresExplanation && characteristics.requiresQuantification) {
|
|
914
|
+
combinations.push({
|
|
915
|
+
modes: ["abductive" /* ABDUCTIVE */, "bayesian" /* BAYESIAN */],
|
|
916
|
+
sequence: "sequential",
|
|
917
|
+
rationale: "Generate hypotheses, then quantify with probabilities",
|
|
918
|
+
benefits: ["Systematic hypothesis generation", "Quantified belief updates"],
|
|
919
|
+
synergies: ["Abductive hypotheses become Bayesian hypotheses", "Bayesian updates refine explanations"]
|
|
920
|
+
});
|
|
921
|
+
}
|
|
922
|
+
if (characteristics.multiAgent && characteristics.hasAlternatives) {
|
|
923
|
+
combinations.push({
|
|
924
|
+
modes: ["gametheory" /* GAMETHEORY */, "counterfactual" /* COUNTERFACTUAL */],
|
|
925
|
+
sequence: "hybrid",
|
|
926
|
+
rationale: "Analyze equilibria, then explore alternative strategies",
|
|
927
|
+
benefits: ["Strategic analysis + scenario exploration", "Robustness testing"],
|
|
928
|
+
synergies: ["Equilibria as actual scenarios", "Strategy changes as interventions"]
|
|
929
|
+
});
|
|
930
|
+
}
|
|
931
|
+
if (characteristics.hasIncompleteInfo && characteristics.timeDependent) {
|
|
932
|
+
combinations.push({
|
|
933
|
+
modes: ["evidential" /* EVIDENTIAL */, "causal" /* CAUSAL */],
|
|
934
|
+
sequence: "parallel",
|
|
935
|
+
rationale: "Combine uncertain evidence while modeling causal structure",
|
|
936
|
+
benefits: ["Handles uncertainty and causality", "Evidence fusion with causal reasoning"],
|
|
937
|
+
synergies: ["Belief functions inform causal strengths", "Causal structure guides evidence combination"]
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
if (characteristics.timeDependent && characteristics.multiAgent) {
|
|
941
|
+
combinations.push({
|
|
942
|
+
modes: ["temporal" /* TEMPORAL */, "gametheory" /* GAMETHEORY */],
|
|
943
|
+
sequence: "sequential",
|
|
944
|
+
rationale: "Model event sequences, then analyze strategic interactions over time",
|
|
945
|
+
benefits: ["Dynamic game analysis", "Time-dependent strategies"],
|
|
946
|
+
synergies: ["Temporal events as game stages", "Strategies evolve over timeline"]
|
|
947
|
+
});
|
|
948
|
+
}
|
|
949
|
+
if (characteristics.requiresExplanation && characteristics.complexity === "high") {
|
|
950
|
+
combinations.push({
|
|
951
|
+
modes: ["analogical" /* ANALOGICAL */, "abductive" /* ABDUCTIVE */],
|
|
952
|
+
sequence: "parallel",
|
|
953
|
+
rationale: "Use analogies to inspire hypotheses while systematically generating explanations",
|
|
954
|
+
benefits: ["Creative hypothesis generation", "Cross-domain insights"],
|
|
955
|
+
synergies: ["Analogies suggest hypotheses", "Hypotheses validated by analogical reasoning"]
|
|
956
|
+
});
|
|
957
|
+
}
|
|
958
|
+
if (characteristics.requiresProof && characteristics.complexity === "high") {
|
|
959
|
+
combinations.push({
|
|
960
|
+
modes: ["shannon" /* SHANNON */, "mathematics" /* MATHEMATICS */],
|
|
961
|
+
sequence: "hybrid",
|
|
962
|
+
rationale: "Use Shannon methodology to structure complex mathematical proofs",
|
|
963
|
+
benefits: ["Systematic proof construction", "Clear problem decomposition"],
|
|
964
|
+
synergies: ["Shannon stages guide proof strategy", "Mathematical rigor validates each stage"]
|
|
965
|
+
});
|
|
966
|
+
}
|
|
967
|
+
return combinations;
|
|
968
|
+
}
|
|
969
|
+
/**
|
|
970
|
+
* Get a simple mode recommendation based on a few key characteristics
|
|
971
|
+
* Simplified version for quick recommendations
|
|
972
|
+
*/
|
|
973
|
+
quickRecommend(problemType) {
|
|
974
|
+
const typeMap = {
|
|
975
|
+
"debugging": "abductive" /* ABDUCTIVE */,
|
|
976
|
+
"proof": "mathematics" /* MATHEMATICS */,
|
|
977
|
+
"timeline": "temporal" /* TEMPORAL */,
|
|
978
|
+
"strategy": "gametheory" /* GAMETHEORY */,
|
|
979
|
+
"uncertainty": "evidential" /* EVIDENTIAL */,
|
|
980
|
+
"causality": "causal" /* CAUSAL */,
|
|
981
|
+
"probability": "bayesian" /* BAYESIAN */,
|
|
982
|
+
"what-if": "counterfactual" /* COUNTERFACTUAL */,
|
|
983
|
+
"analogy": "analogical" /* ANALOGICAL */,
|
|
984
|
+
"physics": "physics" /* PHYSICS */,
|
|
985
|
+
"systematic": "shannon" /* SHANNON */
|
|
986
|
+
};
|
|
987
|
+
return typeMap[problemType.toLowerCase()] || "sequential" /* SEQUENTIAL */;
|
|
988
|
+
}
|
|
989
|
+
};
|
|
990
|
+
|
|
715
991
|
// src/session/manager.ts
|
|
716
992
|
var DEFAULT_CONFIG = {
|
|
717
993
|
modeConfig: {
|
|
@@ -990,6 +1266,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
990
1266
|
return await handleSwitchMode(input);
|
|
991
1267
|
case "get_session":
|
|
992
1268
|
return await handleGetSession(input);
|
|
1269
|
+
case "recommend_mode":
|
|
1270
|
+
return await handleRecommendMode(input);
|
|
993
1271
|
default:
|
|
994
1272
|
throw new Error(`Unknown action: ${input.action}`);
|
|
995
1273
|
}
|
|
@@ -1284,6 +1562,92 @@ function createThought(input, sessionId) {
|
|
|
1284
1562
|
};
|
|
1285
1563
|
}
|
|
1286
1564
|
}
|
|
1565
|
+
async function handleRecommendMode(input) {
|
|
1566
|
+
const recommender = new ModeRecommender();
|
|
1567
|
+
if (input.problemType && !input.problemCharacteristics) {
|
|
1568
|
+
const recommendedMode = recommender.quickRecommend(input.problemType);
|
|
1569
|
+
return {
|
|
1570
|
+
content: [{
|
|
1571
|
+
type: "text",
|
|
1572
|
+
text: `Quick recommendation for "${input.problemType}":
|
|
1573
|
+
|
|
1574
|
+
**Recommended Mode**: ${recommendedMode}
|
|
1575
|
+
|
|
1576
|
+
For more detailed recommendations, provide problemCharacteristics.`
|
|
1577
|
+
}],
|
|
1578
|
+
isError: false
|
|
1579
|
+
};
|
|
1580
|
+
}
|
|
1581
|
+
if (input.problemCharacteristics) {
|
|
1582
|
+
const modeRecs = recommender.recommendModes(input.problemCharacteristics);
|
|
1583
|
+
const combinationRecs = input.includeCombinations ? recommender.recommendCombinations(input.problemCharacteristics) : [];
|
|
1584
|
+
let response = "# Mode Recommendations\n\n";
|
|
1585
|
+
response += "## Individual Modes\n\n";
|
|
1586
|
+
for (const rec of modeRecs) {
|
|
1587
|
+
response += `### ${rec.mode} (Score: ${rec.score})
|
|
1588
|
+
`;
|
|
1589
|
+
response += `**Reasoning**: ${rec.reasoning}
|
|
1590
|
+
|
|
1591
|
+
`;
|
|
1592
|
+
response += `**Strengths**:
|
|
1593
|
+
`;
|
|
1594
|
+
for (const strength of rec.strengths) {
|
|
1595
|
+
response += `- ${strength}
|
|
1596
|
+
`;
|
|
1597
|
+
}
|
|
1598
|
+
response += `
|
|
1599
|
+
**Limitations**:
|
|
1600
|
+
`;
|
|
1601
|
+
for (const limitation of rec.limitations) {
|
|
1602
|
+
response += `- ${limitation}
|
|
1603
|
+
`;
|
|
1604
|
+
}
|
|
1605
|
+
response += `
|
|
1606
|
+
**Examples**: ${rec.examples.join(", ")}
|
|
1607
|
+
|
|
1608
|
+
`;
|
|
1609
|
+
response += "---\n\n";
|
|
1610
|
+
}
|
|
1611
|
+
if (combinationRecs.length > 0) {
|
|
1612
|
+
response += "## Recommended Mode Combinations\n\n";
|
|
1613
|
+
for (const combo of combinationRecs) {
|
|
1614
|
+
response += `### ${combo.modes.join(" + ")} (${combo.sequence})
|
|
1615
|
+
`;
|
|
1616
|
+
response += `**Rationale**: ${combo.rationale}
|
|
1617
|
+
|
|
1618
|
+
`;
|
|
1619
|
+
response += `**Benefits**:
|
|
1620
|
+
`;
|
|
1621
|
+
for (const benefit of combo.benefits) {
|
|
1622
|
+
response += `- ${benefit}
|
|
1623
|
+
`;
|
|
1624
|
+
}
|
|
1625
|
+
response += `
|
|
1626
|
+
**Synergies**:
|
|
1627
|
+
`;
|
|
1628
|
+
for (const synergy of combo.synergies) {
|
|
1629
|
+
response += `- ${synergy}
|
|
1630
|
+
`;
|
|
1631
|
+
}
|
|
1632
|
+
response += "\n---\n\n";
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1635
|
+
return {
|
|
1636
|
+
content: [{
|
|
1637
|
+
type: "text",
|
|
1638
|
+
text: response
|
|
1639
|
+
}],
|
|
1640
|
+
isError: false
|
|
1641
|
+
};
|
|
1642
|
+
}
|
|
1643
|
+
return {
|
|
1644
|
+
content: [{
|
|
1645
|
+
type: "text",
|
|
1646
|
+
text: "Error: Please provide either problemType or problemCharacteristics for mode recommendations."
|
|
1647
|
+
}],
|
|
1648
|
+
isError: true
|
|
1649
|
+
};
|
|
1650
|
+
}
|
|
1287
1651
|
async function main() {
|
|
1288
1652
|
const transport = new StdioServerTransport();
|
|
1289
1653
|
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:\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\nActions:\n- add_thought: Add a new thought to the session (default)\n- summarize: Generate a summary of the session\n- export: Export session in various formats (markdown, latex, json, html, jupyter)\n- switch_mode: Change reasoning mode mid-session\n- get_session: Retrieve session information\n- recommend_mode: Get intelligent mode recommendations based on problem characteristics\n\nMode Recommendations (v2.4):\nUse action 'recommend_mode' with either:\n • problemType: Quick recommendation (e.g., 'debugging', 'proof', 'timeline', 'strategy')\n • problemCharacteristics: Detailed analysis with 10 dimensions (domain, complexity, uncertainty, etc.)\n • includeCombinations: Set to true for synergistic mode combination suggestions\n\nChoose the mode that best fits your problem type, or use recommend_mode to get intelligent suggestions.`,\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.4.
|
|
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.2",
|
|
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
|
+
}
|