@gotza02/mathinking 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +366 -0
- package/dist/dag.d.ts +39 -0
- package/dist/dag.d.ts.map +1 -0
- package/dist/dag.js +241 -0
- package/dist/dag.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +300 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator.d.ts +65 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +485 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/sequential-thinking.d.ts +70 -0
- package/dist/sequential-thinking.d.ts.map +1 -0
- package/dist/sequential-thinking.js +602 -0
- package/dist/sequential-thinking.js.map +1 -0
- package/dist/test-all.d.ts +2 -0
- package/dist/test-all.d.ts.map +1 -0
- package/dist/test-all.js +158 -0
- package/dist/test-all.js.map +1 -0
- package/dist/tools/orchestrator.d.ts +65 -0
- package/dist/tools/orchestrator.d.ts.map +1 -0
- package/dist/tools/orchestrator.js +486 -0
- package/dist/tools/orchestrator.js.map +1 -0
- package/dist/tools/sequential-thinking.d.ts +70 -0
- package/dist/tools/sequential-thinking.d.ts.map +1 -0
- package/dist/tools/sequential-thinking.js +602 -0
- package/dist/tools/sequential-thinking.js.map +1 -0
- package/dist/types/index.d.ts +142 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/dag.d.ts +39 -0
- package/dist/utils/dag.d.ts.map +1 -0
- package/dist/utils/dag.js +241 -0
- package/dist/utils/dag.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
/**
|
|
3
|
+
* Sequential Thinking Manager (The Brain)
|
|
4
|
+
*
|
|
5
|
+
* Provides deep reasoning capabilities with:
|
|
6
|
+
* - Iterative step-by-step thinking
|
|
7
|
+
* - Dynamic adjustment of thinking depth
|
|
8
|
+
* - Branching for exploring alternatives
|
|
9
|
+
* - Revision for correcting previous thoughts
|
|
10
|
+
* - Hypothesis verification
|
|
11
|
+
*/
|
|
12
|
+
export class SequentialThinkingManager {
|
|
13
|
+
sessions = new Map();
|
|
14
|
+
/**
|
|
15
|
+
* Process a thinking action
|
|
16
|
+
*/
|
|
17
|
+
async process(input) {
|
|
18
|
+
switch (input.action) {
|
|
19
|
+
case 'start_session':
|
|
20
|
+
return this.startSession(input);
|
|
21
|
+
case 'add_thought':
|
|
22
|
+
return this.addThought(input);
|
|
23
|
+
case 'create_branch':
|
|
24
|
+
return this.createBranch(input);
|
|
25
|
+
case 'revise_thought':
|
|
26
|
+
return this.reviseThought(input);
|
|
27
|
+
case 'set_hypothesis':
|
|
28
|
+
return this.setHypothesis(input);
|
|
29
|
+
case 'verify_hypothesis':
|
|
30
|
+
return this.verifyHypothesis(input);
|
|
31
|
+
case 'adjust_total_thoughts':
|
|
32
|
+
return this.adjustTotalThoughts(input);
|
|
33
|
+
case 'conclude':
|
|
34
|
+
return this.conclude(input);
|
|
35
|
+
case 'get_status':
|
|
36
|
+
return this.getStatus(input);
|
|
37
|
+
case 'get_history':
|
|
38
|
+
return this.getHistory(input);
|
|
39
|
+
default:
|
|
40
|
+
return {
|
|
41
|
+
success: false,
|
|
42
|
+
sessionId: input.sessionId || '',
|
|
43
|
+
currentStep: 0,
|
|
44
|
+
totalThoughts: 0,
|
|
45
|
+
status: 'in_progress',
|
|
46
|
+
message: `Unknown action: ${input.action}`,
|
|
47
|
+
nextSuggestedActions: ['start_session']
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Start a new thinking session
|
|
53
|
+
*/
|
|
54
|
+
startSession(input) {
|
|
55
|
+
if (!input.problemStatement) {
|
|
56
|
+
return this.errorResponse('', 'Problem statement is required to start a session');
|
|
57
|
+
}
|
|
58
|
+
const sessionId = uuidv4();
|
|
59
|
+
const totalThoughts = input.totalThoughts || 5; // Default to 5 steps
|
|
60
|
+
const now = new Date().toISOString();
|
|
61
|
+
const session = {
|
|
62
|
+
sessionId,
|
|
63
|
+
problemStatement: input.problemStatement,
|
|
64
|
+
totalThoughts,
|
|
65
|
+
currentStep: 0,
|
|
66
|
+
thoughtHistory: [],
|
|
67
|
+
branches: [],
|
|
68
|
+
status: 'in_progress',
|
|
69
|
+
createdAt: now,
|
|
70
|
+
updatedAt: now
|
|
71
|
+
};
|
|
72
|
+
this.sessions.set(sessionId, session);
|
|
73
|
+
return {
|
|
74
|
+
success: true,
|
|
75
|
+
sessionId,
|
|
76
|
+
currentStep: 0,
|
|
77
|
+
totalThoughts,
|
|
78
|
+
status: 'in_progress',
|
|
79
|
+
message: `Thinking session started. Problem: "${input.problemStatement}". You have ${totalThoughts} thinking steps planned.`,
|
|
80
|
+
nextSuggestedActions: [
|
|
81
|
+
'add_thought (type: initial_analysis)',
|
|
82
|
+
'adjust_total_thoughts (if more/fewer steps needed)'
|
|
83
|
+
]
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Add a new thought to the session
|
|
88
|
+
*/
|
|
89
|
+
addThought(input) {
|
|
90
|
+
const session = this.getSession(input.sessionId);
|
|
91
|
+
if (!session) {
|
|
92
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
93
|
+
}
|
|
94
|
+
if (!input.thought) {
|
|
95
|
+
return this.errorResponse(session.sessionId, 'Thought content is required');
|
|
96
|
+
}
|
|
97
|
+
session.currentStep++;
|
|
98
|
+
const thoughtId = uuidv4();
|
|
99
|
+
const thought = {
|
|
100
|
+
id: thoughtId,
|
|
101
|
+
stepNumber: session.currentStep,
|
|
102
|
+
thought: input.thought,
|
|
103
|
+
thoughtType: input.thoughtType || 'initial_analysis',
|
|
104
|
+
timestamp: new Date().toISOString(),
|
|
105
|
+
confidence: input.confidence ?? 70,
|
|
106
|
+
parentId: input.branchFromThoughtId
|
|
107
|
+
};
|
|
108
|
+
session.thoughtHistory.push(thought);
|
|
109
|
+
session.updatedAt = new Date().toISOString();
|
|
110
|
+
const isComplete = session.currentStep >= session.totalThoughts;
|
|
111
|
+
if (isComplete) {
|
|
112
|
+
session.status = 'awaiting_verification';
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
success: true,
|
|
116
|
+
sessionId: session.sessionId,
|
|
117
|
+
currentStep: session.currentStep,
|
|
118
|
+
totalThoughts: session.totalThoughts,
|
|
119
|
+
status: session.status,
|
|
120
|
+
thought,
|
|
121
|
+
message: this.getThoughtMessage(session, thought),
|
|
122
|
+
nextSuggestedActions: this.getSuggestedActions(session, thought)
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create a branch for exploring alternative thought paths
|
|
127
|
+
*/
|
|
128
|
+
createBranch(input) {
|
|
129
|
+
const session = this.getSession(input.sessionId);
|
|
130
|
+
if (!session) {
|
|
131
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
132
|
+
}
|
|
133
|
+
if (!input.branchFromThoughtId) {
|
|
134
|
+
return this.errorResponse(session.sessionId, 'branchFromThoughtId is required to create a branch');
|
|
135
|
+
}
|
|
136
|
+
const parentThought = session.thoughtHistory.find(t => t.id === input.branchFromThoughtId);
|
|
137
|
+
if (!parentThought) {
|
|
138
|
+
return this.errorResponse(session.sessionId, 'Parent thought not found');
|
|
139
|
+
}
|
|
140
|
+
const branchId = uuidv4();
|
|
141
|
+
const branchLabel = input.branchLabel || `Branch ${session.branches.length + 1}`;
|
|
142
|
+
const branch = {
|
|
143
|
+
id: branchId,
|
|
144
|
+
label: branchLabel,
|
|
145
|
+
parentThoughtId: input.branchFromThoughtId,
|
|
146
|
+
thoughtIds: [],
|
|
147
|
+
status: 'active'
|
|
148
|
+
};
|
|
149
|
+
session.branches.push(branch);
|
|
150
|
+
session.updatedAt = new Date().toISOString();
|
|
151
|
+
// If a thought was provided, add it to the branch
|
|
152
|
+
if (input.thought) {
|
|
153
|
+
session.currentStep++;
|
|
154
|
+
const thoughtId = uuidv4();
|
|
155
|
+
const thought = {
|
|
156
|
+
id: thoughtId,
|
|
157
|
+
stepNumber: session.currentStep,
|
|
158
|
+
thought: input.thought,
|
|
159
|
+
thoughtType: 'branch_exploration',
|
|
160
|
+
timestamp: new Date().toISOString(),
|
|
161
|
+
parentId: input.branchFromThoughtId,
|
|
162
|
+
branchLabel,
|
|
163
|
+
confidence: input.confidence ?? 60
|
|
164
|
+
};
|
|
165
|
+
session.thoughtHistory.push(thought);
|
|
166
|
+
branch.thoughtIds.push(thoughtId);
|
|
167
|
+
return {
|
|
168
|
+
success: true,
|
|
169
|
+
sessionId: session.sessionId,
|
|
170
|
+
currentStep: session.currentStep,
|
|
171
|
+
totalThoughts: session.totalThoughts,
|
|
172
|
+
status: session.status,
|
|
173
|
+
thought,
|
|
174
|
+
branches: session.branches,
|
|
175
|
+
message: `Created branch "${branchLabel}" from thought #${parentThought.stepNumber}. Added exploration thought.`,
|
|
176
|
+
nextSuggestedActions: [
|
|
177
|
+
'add_thought (continue exploring this branch)',
|
|
178
|
+
'create_branch (explore another alternative)',
|
|
179
|
+
'revise_thought (if this branch reveals issues with previous thoughts)'
|
|
180
|
+
]
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
success: true,
|
|
185
|
+
sessionId: session.sessionId,
|
|
186
|
+
currentStep: session.currentStep,
|
|
187
|
+
totalThoughts: session.totalThoughts,
|
|
188
|
+
status: session.status,
|
|
189
|
+
branches: session.branches,
|
|
190
|
+
message: `Created branch "${branchLabel}" from thought #${parentThought.stepNumber}. Ready to add thoughts to this branch.`,
|
|
191
|
+
nextSuggestedActions: [
|
|
192
|
+
'add_thought (with branchFromThoughtId to add to this branch)'
|
|
193
|
+
]
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Revise a previous thought
|
|
198
|
+
*/
|
|
199
|
+
reviseThought(input) {
|
|
200
|
+
const session = this.getSession(input.sessionId);
|
|
201
|
+
if (!session) {
|
|
202
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
203
|
+
}
|
|
204
|
+
if (!input.reviseThoughtId) {
|
|
205
|
+
return this.errorResponse(session.sessionId, 'reviseThoughtId is required');
|
|
206
|
+
}
|
|
207
|
+
if (!input.thought) {
|
|
208
|
+
return this.errorResponse(session.sessionId, 'New thought content is required for revision');
|
|
209
|
+
}
|
|
210
|
+
const originalThought = session.thoughtHistory.find(t => t.id === input.reviseThoughtId);
|
|
211
|
+
if (!originalThought) {
|
|
212
|
+
return this.errorResponse(session.sessionId, 'Original thought not found');
|
|
213
|
+
}
|
|
214
|
+
session.currentStep++;
|
|
215
|
+
const thoughtId = uuidv4();
|
|
216
|
+
const revisedThought = {
|
|
217
|
+
id: thoughtId,
|
|
218
|
+
stepNumber: session.currentStep,
|
|
219
|
+
thought: input.thought,
|
|
220
|
+
thoughtType: 'revision',
|
|
221
|
+
timestamp: new Date().toISOString(),
|
|
222
|
+
isRevision: true,
|
|
223
|
+
revisedFromId: input.reviseThoughtId,
|
|
224
|
+
confidence: input.confidence ?? 75,
|
|
225
|
+
parentId: originalThought.parentId
|
|
226
|
+
};
|
|
227
|
+
session.thoughtHistory.push(revisedThought);
|
|
228
|
+
session.updatedAt = new Date().toISOString();
|
|
229
|
+
return {
|
|
230
|
+
success: true,
|
|
231
|
+
sessionId: session.sessionId,
|
|
232
|
+
currentStep: session.currentStep,
|
|
233
|
+
totalThoughts: session.totalThoughts,
|
|
234
|
+
status: session.status,
|
|
235
|
+
thought: revisedThought,
|
|
236
|
+
message: `Revised thought #${originalThought.stepNumber}. Original: "${originalThought.thought.substring(0, 50)}..." → New understanding recorded.`,
|
|
237
|
+
nextSuggestedActions: [
|
|
238
|
+
'add_thought (continue with corrected understanding)',
|
|
239
|
+
'verify_hypothesis (verify the revision is correct)',
|
|
240
|
+
'adjust_total_thoughts (may need more steps after revision)'
|
|
241
|
+
]
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Set a hypothesis that needs verification
|
|
246
|
+
*/
|
|
247
|
+
setHypothesis(input) {
|
|
248
|
+
const session = this.getSession(input.sessionId);
|
|
249
|
+
if (!session) {
|
|
250
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
251
|
+
}
|
|
252
|
+
if (!input.hypothesis) {
|
|
253
|
+
return this.errorResponse(session.sessionId, 'Hypothesis content is required');
|
|
254
|
+
}
|
|
255
|
+
session.currentStep++;
|
|
256
|
+
const thoughtId = uuidv4();
|
|
257
|
+
const hypothesisThought = {
|
|
258
|
+
id: thoughtId,
|
|
259
|
+
stepNumber: session.currentStep,
|
|
260
|
+
thought: input.thought || `Hypothesis: ${input.hypothesis}`,
|
|
261
|
+
thoughtType: 'hypothesis',
|
|
262
|
+
timestamp: new Date().toISOString(),
|
|
263
|
+
hypothesis: input.hypothesis,
|
|
264
|
+
verificationStatus: 'pending',
|
|
265
|
+
confidence: input.confidence ?? 50 // Hypotheses start with lower confidence
|
|
266
|
+
};
|
|
267
|
+
session.thoughtHistory.push(hypothesisThought);
|
|
268
|
+
session.status = 'awaiting_verification';
|
|
269
|
+
session.updatedAt = new Date().toISOString();
|
|
270
|
+
return {
|
|
271
|
+
success: true,
|
|
272
|
+
sessionId: session.sessionId,
|
|
273
|
+
currentStep: session.currentStep,
|
|
274
|
+
totalThoughts: session.totalThoughts,
|
|
275
|
+
status: session.status,
|
|
276
|
+
thought: hypothesisThought,
|
|
277
|
+
message: `Hypothesis set: "${input.hypothesis}". Status: PENDING VERIFICATION. Gather evidence before proceeding.`,
|
|
278
|
+
nextSuggestedActions: [
|
|
279
|
+
'verify_hypothesis (provide evidence to verify or refute)',
|
|
280
|
+
'create_branch (explore alternative hypotheses)',
|
|
281
|
+
'add_thought (gather more information first)'
|
|
282
|
+
]
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Verify a hypothesis with evidence
|
|
287
|
+
*/
|
|
288
|
+
verifyHypothesis(input) {
|
|
289
|
+
const session = this.getSession(input.sessionId);
|
|
290
|
+
if (!session) {
|
|
291
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
292
|
+
}
|
|
293
|
+
// Find the most recent hypothesis
|
|
294
|
+
const hypothesisThought = [...session.thoughtHistory]
|
|
295
|
+
.reverse()
|
|
296
|
+
.find(t => t.thoughtType === 'hypothesis' && t.verificationStatus === 'pending');
|
|
297
|
+
if (!hypothesisThought) {
|
|
298
|
+
return this.errorResponse(session.sessionId, 'No pending hypothesis found to verify');
|
|
299
|
+
}
|
|
300
|
+
if (!input.verificationStatus) {
|
|
301
|
+
return this.errorResponse(session.sessionId, 'verificationStatus is required (verified/refuted/partially_verified/needs_more_evidence)');
|
|
302
|
+
}
|
|
303
|
+
session.currentStep++;
|
|
304
|
+
const thoughtId = uuidv4();
|
|
305
|
+
const verificationThought = {
|
|
306
|
+
id: thoughtId,
|
|
307
|
+
stepNumber: session.currentStep,
|
|
308
|
+
thought: input.thought || `Verification of hypothesis: "${hypothesisThought.hypothesis}"`,
|
|
309
|
+
thoughtType: 'verification',
|
|
310
|
+
timestamp: new Date().toISOString(),
|
|
311
|
+
hypothesis: hypothesisThought.hypothesis,
|
|
312
|
+
verificationStatus: input.verificationStatus,
|
|
313
|
+
verificationEvidence: input.verificationEvidence,
|
|
314
|
+
confidence: this.getVerificationConfidence(input.verificationStatus, input.confidence),
|
|
315
|
+
parentId: hypothesisThought.id
|
|
316
|
+
};
|
|
317
|
+
// Update the original hypothesis status
|
|
318
|
+
hypothesisThought.verificationStatus = input.verificationStatus;
|
|
319
|
+
hypothesisThought.verificationEvidence = input.verificationEvidence;
|
|
320
|
+
session.thoughtHistory.push(verificationThought);
|
|
321
|
+
session.status = input.verificationStatus === 'needs_more_evidence'
|
|
322
|
+
? 'awaiting_verification'
|
|
323
|
+
: 'in_progress';
|
|
324
|
+
session.updatedAt = new Date().toISOString();
|
|
325
|
+
const statusEmoji = this.getVerificationEmoji(input.verificationStatus);
|
|
326
|
+
return {
|
|
327
|
+
success: true,
|
|
328
|
+
sessionId: session.sessionId,
|
|
329
|
+
currentStep: session.currentStep,
|
|
330
|
+
totalThoughts: session.totalThoughts,
|
|
331
|
+
status: session.status,
|
|
332
|
+
thought: verificationThought,
|
|
333
|
+
message: `${statusEmoji} Hypothesis "${hypothesisThought.hypothesis?.substring(0, 40)}..." → ${input.verificationStatus.toUpperCase()}. ${input.verificationEvidence || ''}`,
|
|
334
|
+
nextSuggestedActions: this.getPostVerificationActions(input.verificationStatus)
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Dynamically adjust the total number of thinking steps
|
|
339
|
+
*/
|
|
340
|
+
adjustTotalThoughts(input) {
|
|
341
|
+
const session = this.getSession(input.sessionId);
|
|
342
|
+
if (!session) {
|
|
343
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
344
|
+
}
|
|
345
|
+
if (input.totalThoughts === undefined) {
|
|
346
|
+
return this.errorResponse(session.sessionId, 'totalThoughts value is required');
|
|
347
|
+
}
|
|
348
|
+
const oldTotal = session.totalThoughts;
|
|
349
|
+
const newTotal = Math.max(session.currentStep, input.totalThoughts);
|
|
350
|
+
session.totalThoughts = newTotal;
|
|
351
|
+
session.updatedAt = new Date().toISOString();
|
|
352
|
+
const change = newTotal > oldTotal ? 'increased' : newTotal < oldTotal ? 'decreased' : 'unchanged';
|
|
353
|
+
const remaining = newTotal - session.currentStep;
|
|
354
|
+
return {
|
|
355
|
+
success: true,
|
|
356
|
+
sessionId: session.sessionId,
|
|
357
|
+
currentStep: session.currentStep,
|
|
358
|
+
totalThoughts: session.totalThoughts,
|
|
359
|
+
status: session.status,
|
|
360
|
+
message: `Total thoughts ${change}: ${oldTotal} → ${newTotal}. You have ${remaining} thinking steps remaining.`,
|
|
361
|
+
nextSuggestedActions: [
|
|
362
|
+
`add_thought (${remaining} steps remaining)`,
|
|
363
|
+
remaining === 1 ? 'conclude (if ready to finalize)' : undefined
|
|
364
|
+
].filter(Boolean)
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Conclude the thinking session with a final synthesis
|
|
369
|
+
*/
|
|
370
|
+
conclude(input) {
|
|
371
|
+
const session = this.getSession(input.sessionId);
|
|
372
|
+
if (!session) {
|
|
373
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
374
|
+
}
|
|
375
|
+
if (!input.thought) {
|
|
376
|
+
return this.errorResponse(session.sessionId, 'Conclusion thought is required');
|
|
377
|
+
}
|
|
378
|
+
// Check for unverified hypotheses
|
|
379
|
+
const pendingHypotheses = session.thoughtHistory.filter(t => t.thoughtType === 'hypothesis' && t.verificationStatus === 'pending');
|
|
380
|
+
if (pendingHypotheses.length > 0) {
|
|
381
|
+
return {
|
|
382
|
+
success: false,
|
|
383
|
+
sessionId: session.sessionId,
|
|
384
|
+
currentStep: session.currentStep,
|
|
385
|
+
totalThoughts: session.totalThoughts,
|
|
386
|
+
status: session.status,
|
|
387
|
+
message: `Cannot conclude: ${pendingHypotheses.length} hypothesis(es) still pending verification.`,
|
|
388
|
+
nextSuggestedActions: [
|
|
389
|
+
'verify_hypothesis (verify pending hypotheses first)',
|
|
390
|
+
`Pending: ${pendingHypotheses.map(h => `"${h.hypothesis?.substring(0, 30)}..."`).join(', ')}`
|
|
391
|
+
]
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
session.currentStep++;
|
|
395
|
+
const thoughtId = uuidv4();
|
|
396
|
+
const conclusionThought = {
|
|
397
|
+
id: thoughtId,
|
|
398
|
+
stepNumber: session.currentStep,
|
|
399
|
+
thought: input.thought,
|
|
400
|
+
thoughtType: 'conclusion',
|
|
401
|
+
timestamp: new Date().toISOString(),
|
|
402
|
+
confidence: input.confidence ?? 85
|
|
403
|
+
};
|
|
404
|
+
session.thoughtHistory.push(conclusionThought);
|
|
405
|
+
session.finalConclusion = input.thought;
|
|
406
|
+
session.status = 'completed';
|
|
407
|
+
session.updatedAt = new Date().toISOString();
|
|
408
|
+
// Generate summary statistics
|
|
409
|
+
const stats = this.generateSessionStats(session);
|
|
410
|
+
return {
|
|
411
|
+
success: true,
|
|
412
|
+
sessionId: session.sessionId,
|
|
413
|
+
currentStep: session.currentStep,
|
|
414
|
+
totalThoughts: session.totalThoughts,
|
|
415
|
+
status: session.status,
|
|
416
|
+
thought: conclusionThought,
|
|
417
|
+
conclusion: input.thought,
|
|
418
|
+
message: `🎯 Thinking session COMPLETED.\n\n${stats}\n\nConclusion: ${input.thought}`,
|
|
419
|
+
nextSuggestedActions: [
|
|
420
|
+
'get_history (review full thought process)',
|
|
421
|
+
'Start new session for related problems'
|
|
422
|
+
]
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Get current session status
|
|
427
|
+
*/
|
|
428
|
+
getStatus(input) {
|
|
429
|
+
const session = this.getSession(input.sessionId);
|
|
430
|
+
if (!session) {
|
|
431
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
432
|
+
}
|
|
433
|
+
const stats = this.generateSessionStats(session);
|
|
434
|
+
return {
|
|
435
|
+
success: true,
|
|
436
|
+
sessionId: session.sessionId,
|
|
437
|
+
currentStep: session.currentStep,
|
|
438
|
+
totalThoughts: session.totalThoughts,
|
|
439
|
+
status: session.status,
|
|
440
|
+
branches: session.branches,
|
|
441
|
+
message: `Session Status:\n${stats}`,
|
|
442
|
+
nextSuggestedActions: this.getStatusBasedActions(session)
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Get complete thought history
|
|
447
|
+
*/
|
|
448
|
+
getHistory(input) {
|
|
449
|
+
const session = this.getSession(input.sessionId);
|
|
450
|
+
if (!session) {
|
|
451
|
+
return this.errorResponse(input.sessionId || '', 'Session not found');
|
|
452
|
+
}
|
|
453
|
+
return {
|
|
454
|
+
success: true,
|
|
455
|
+
sessionId: session.sessionId,
|
|
456
|
+
currentStep: session.currentStep,
|
|
457
|
+
totalThoughts: session.totalThoughts,
|
|
458
|
+
status: session.status,
|
|
459
|
+
thoughtHistory: session.thoughtHistory,
|
|
460
|
+
branches: session.branches,
|
|
461
|
+
message: `Complete thought history retrieved. ${session.thoughtHistory.length} thoughts recorded.`,
|
|
462
|
+
conclusion: session.finalConclusion
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
// ============================================
|
|
466
|
+
// Helper Methods
|
|
467
|
+
// ============================================
|
|
468
|
+
getSession(sessionId) {
|
|
469
|
+
if (!sessionId)
|
|
470
|
+
return undefined;
|
|
471
|
+
return this.sessions.get(sessionId);
|
|
472
|
+
}
|
|
473
|
+
errorResponse(sessionId, message) {
|
|
474
|
+
return {
|
|
475
|
+
success: false,
|
|
476
|
+
sessionId,
|
|
477
|
+
currentStep: 0,
|
|
478
|
+
totalThoughts: 0,
|
|
479
|
+
status: 'in_progress',
|
|
480
|
+
message: `Error: ${message}`
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
getThoughtMessage(session, thought) {
|
|
484
|
+
const progress = `[Step ${session.currentStep}/${session.totalThoughts}]`;
|
|
485
|
+
const typeLabel = thought.thoughtType.replace(/_/g, ' ').toUpperCase();
|
|
486
|
+
const confidenceBar = this.getConfidenceBar(thought.confidence);
|
|
487
|
+
return `${progress} ${typeLabel}\nConfidence: ${confidenceBar} ${thought.confidence}%\n\n${thought.thought}`;
|
|
488
|
+
}
|
|
489
|
+
getConfidenceBar(confidence) {
|
|
490
|
+
const filled = Math.round(confidence / 10);
|
|
491
|
+
return '█'.repeat(filled) + '░'.repeat(10 - filled);
|
|
492
|
+
}
|
|
493
|
+
getSuggestedActions(session, thought) {
|
|
494
|
+
const actions = [];
|
|
495
|
+
const remaining = session.totalThoughts - session.currentStep;
|
|
496
|
+
if (remaining > 0) {
|
|
497
|
+
actions.push('add_thought (continue reasoning)');
|
|
498
|
+
}
|
|
499
|
+
if (thought.thoughtType === 'initial_analysis') {
|
|
500
|
+
actions.push('set_hypothesis (if you have a theory to test)');
|
|
501
|
+
actions.push('create_branch (explore alternative approaches)');
|
|
502
|
+
}
|
|
503
|
+
if (thought.confidence < 50) {
|
|
504
|
+
actions.push('revise_thought (if you need to correct this)');
|
|
505
|
+
}
|
|
506
|
+
if (remaining === 0) {
|
|
507
|
+
actions.push('conclude (synthesize final answer)');
|
|
508
|
+
actions.push('adjust_total_thoughts (if more analysis needed)');
|
|
509
|
+
}
|
|
510
|
+
return actions;
|
|
511
|
+
}
|
|
512
|
+
getVerificationConfidence(status, providedConfidence) {
|
|
513
|
+
if (providedConfidence !== undefined)
|
|
514
|
+
return providedConfidence;
|
|
515
|
+
switch (status) {
|
|
516
|
+
case 'verified': return 90;
|
|
517
|
+
case 'partially_verified': return 70;
|
|
518
|
+
case 'refuted': return 20;
|
|
519
|
+
case 'needs_more_evidence': return 40;
|
|
520
|
+
default: return 50;
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
getVerificationEmoji(status) {
|
|
524
|
+
switch (status) {
|
|
525
|
+
case 'verified': return '✅';
|
|
526
|
+
case 'partially_verified': return '🟡';
|
|
527
|
+
case 'refuted': return '❌';
|
|
528
|
+
case 'needs_more_evidence': return '🔍';
|
|
529
|
+
default: return '❓';
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
getPostVerificationActions(status) {
|
|
533
|
+
switch (status) {
|
|
534
|
+
case 'verified':
|
|
535
|
+
return [
|
|
536
|
+
'add_thought (build on verified hypothesis)',
|
|
537
|
+
'conclude (if ready to finalize)'
|
|
538
|
+
];
|
|
539
|
+
case 'refuted':
|
|
540
|
+
return [
|
|
541
|
+
'revise_thought (correct earlier assumptions)',
|
|
542
|
+
'set_hypothesis (formulate new hypothesis)',
|
|
543
|
+
'create_branch (explore alternative paths)'
|
|
544
|
+
];
|
|
545
|
+
case 'partially_verified':
|
|
546
|
+
return [
|
|
547
|
+
'add_thought (investigate partial findings)',
|
|
548
|
+
'set_hypothesis (refine hypothesis based on findings)'
|
|
549
|
+
];
|
|
550
|
+
case 'needs_more_evidence':
|
|
551
|
+
return [
|
|
552
|
+
'add_thought (gather more information)',
|
|
553
|
+
'verify_hypothesis (when more evidence available)'
|
|
554
|
+
];
|
|
555
|
+
default:
|
|
556
|
+
return ['add_thought (continue analysis)'];
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
getStatusBasedActions(session) {
|
|
560
|
+
switch (session.status) {
|
|
561
|
+
case 'awaiting_verification':
|
|
562
|
+
return ['verify_hypothesis (verify pending hypotheses)'];
|
|
563
|
+
case 'completed':
|
|
564
|
+
return ['get_history (review thought process)'];
|
|
565
|
+
case 'paused':
|
|
566
|
+
return ['add_thought (resume session)'];
|
|
567
|
+
default:
|
|
568
|
+
return [
|
|
569
|
+
'add_thought (continue)',
|
|
570
|
+
'get_history (review progress)'
|
|
571
|
+
];
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
generateSessionStats(session) {
|
|
575
|
+
const thoughtTypes = session.thoughtHistory.reduce((acc, t) => {
|
|
576
|
+
acc[t.thoughtType] = (acc[t.thoughtType] || 0) + 1;
|
|
577
|
+
return acc;
|
|
578
|
+
}, {});
|
|
579
|
+
const avgConfidence = session.thoughtHistory.length > 0
|
|
580
|
+
? Math.round(session.thoughtHistory.reduce((sum, t) => sum + t.confidence, 0) / session.thoughtHistory.length)
|
|
581
|
+
: 0;
|
|
582
|
+
const verifiedCount = session.thoughtHistory.filter(t => t.verificationStatus === 'verified').length;
|
|
583
|
+
const revisionCount = session.thoughtHistory.filter(t => t.isRevision).length;
|
|
584
|
+
const lines = [
|
|
585
|
+
`📊 Session Statistics:`,
|
|
586
|
+
`• Problem: "${session.problemStatement.substring(0, 50)}..."`,
|
|
587
|
+
`• Progress: ${session.currentStep}/${session.totalThoughts} steps`,
|
|
588
|
+
`• Status: ${session.status}`,
|
|
589
|
+
`• Branches: ${session.branches.length}`,
|
|
590
|
+
`• Revisions: ${revisionCount}`,
|
|
591
|
+
`• Verified Hypotheses: ${verifiedCount}`,
|
|
592
|
+
`• Average Confidence: ${avgConfidence}%`,
|
|
593
|
+
``,
|
|
594
|
+
`📝 Thought Types:`,
|
|
595
|
+
...Object.entries(thoughtTypes).map(([type, count]) => ` • ${type}: ${count}`)
|
|
596
|
+
];
|
|
597
|
+
return lines.join('\n');
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
// Export singleton instance
|
|
601
|
+
export const thinkingManager = new SequentialThinkingManager();
|
|
602
|
+
//# sourceMappingURL=sequential-thinking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential-thinking.js","sourceRoot":"","sources":["../../src/tools/sequential-thinking.ts"],"names":[],"mappings":"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"}
|