@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.
@@ -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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"}