@gotza02/seq-thinking 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +149 -0
  2. package/SYSTEM_INSTRUCTIONS.md +50 -0
  3. package/agents_test.log +15 -0
  4. package/dist/__tests__/agents.test.d.ts +2 -0
  5. package/dist/__tests__/agents.test.d.ts.map +1 -0
  6. package/dist/__tests__/agents.test.js +673 -0
  7. package/dist/__tests__/agents.test.js.map +1 -0
  8. package/dist/__tests__/mcp-server.test.d.ts +2 -0
  9. package/dist/__tests__/mcp-server.test.d.ts.map +1 -0
  10. package/dist/__tests__/mcp-server.test.js +315 -0
  11. package/dist/__tests__/mcp-server.test.js.map +1 -0
  12. package/dist/__tests__/sequential-thinking.test.d.ts +2 -0
  13. package/dist/__tests__/sequential-thinking.test.d.ts.map +1 -0
  14. package/dist/__tests__/sequential-thinking.test.js +545 -0
  15. package/dist/__tests__/sequential-thinking.test.js.map +1 -0
  16. package/dist/__tests__/swarm-coordinator.test.d.ts +2 -0
  17. package/dist/__tests__/swarm-coordinator.test.d.ts.map +1 -0
  18. package/dist/__tests__/swarm-coordinator.test.js +606 -0
  19. package/dist/__tests__/swarm-coordinator.test.js.map +1 -0
  20. package/dist/__tests__/types.test.d.ts +2 -0
  21. package/dist/__tests__/types.test.d.ts.map +1 -0
  22. package/dist/__tests__/types.test.js +741 -0
  23. package/dist/__tests__/types.test.js.map +1 -0
  24. package/dist/__tests__/utils.test.d.ts +2 -0
  25. package/dist/__tests__/utils.test.d.ts.map +1 -0
  26. package/dist/__tests__/utils.test.js +264 -0
  27. package/dist/__tests__/utils.test.js.map +1 -0
  28. package/dist/agents/base-agent.d.ts +126 -0
  29. package/dist/agents/base-agent.d.ts.map +1 -0
  30. package/dist/agents/base-agent.js +214 -0
  31. package/dist/agents/base-agent.js.map +1 -0
  32. package/dist/agents/critic-agent.d.ts +134 -0
  33. package/dist/agents/critic-agent.d.ts.map +1 -0
  34. package/dist/agents/critic-agent.js +484 -0
  35. package/dist/agents/critic-agent.js.map +1 -0
  36. package/dist/agents/index.d.ts +11 -0
  37. package/dist/agents/index.d.ts.map +1 -0
  38. package/dist/agents/index.js +11 -0
  39. package/dist/agents/index.js.map +1 -0
  40. package/dist/agents/meta-reasoning-agent.d.ts +143 -0
  41. package/dist/agents/meta-reasoning-agent.d.ts.map +1 -0
  42. package/dist/agents/meta-reasoning-agent.js +532 -0
  43. package/dist/agents/meta-reasoning-agent.js.map +1 -0
  44. package/dist/agents/reasoner-agent.d.ts +75 -0
  45. package/dist/agents/reasoner-agent.d.ts.map +1 -0
  46. package/dist/agents/reasoner-agent.js +226 -0
  47. package/dist/agents/reasoner-agent.js.map +1 -0
  48. package/dist/agents/synthesizer-agent.d.ts +174 -0
  49. package/dist/agents/synthesizer-agent.d.ts.map +1 -0
  50. package/dist/agents/synthesizer-agent.js +583 -0
  51. package/dist/agents/synthesizer-agent.js.map +1 -0
  52. package/dist/index.d.ts +21 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +27 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/mcp-server.d.ts +823 -0
  57. package/dist/mcp-server.d.ts.map +1 -0
  58. package/dist/mcp-server.js +377 -0
  59. package/dist/mcp-server.js.map +1 -0
  60. package/dist/sequential-thinking.d.ts +91 -0
  61. package/dist/sequential-thinking.d.ts.map +1 -0
  62. package/dist/sequential-thinking.js +540 -0
  63. package/dist/sequential-thinking.js.map +1 -0
  64. package/dist/swarm-coordinator.d.ts +188 -0
  65. package/dist/swarm-coordinator.d.ts.map +1 -0
  66. package/dist/swarm-coordinator.js +627 -0
  67. package/dist/swarm-coordinator.js.map +1 -0
  68. package/dist/types/index.d.ts +806 -0
  69. package/dist/types/index.d.ts.map +1 -0
  70. package/dist/types/index.js +279 -0
  71. package/dist/types/index.js.map +1 -0
  72. package/dist/utils/index.d.ts +421 -0
  73. package/dist/utils/index.d.ts.map +1 -0
  74. package/dist/utils/index.js +864 -0
  75. package/dist/utils/index.js.map +1 -0
  76. package/dist/utils/llm-adapter.d.ts +23 -0
  77. package/dist/utils/llm-adapter.d.ts.map +1 -0
  78. package/dist/utils/llm-adapter.js +68 -0
  79. package/dist/utils/llm-adapter.js.map +1 -0
  80. package/dist/utils/persistence.d.ts +33 -0
  81. package/dist/utils/persistence.d.ts.map +1 -0
  82. package/dist/utils/persistence.js +108 -0
  83. package/dist/utils/persistence.js.map +1 -0
  84. package/package.json +41 -0
  85. package/src/__tests__/agents.test.ts +858 -0
  86. package/src/__tests__/mcp-server.test.ts +380 -0
  87. package/src/__tests__/sequential-thinking.test.ts +687 -0
  88. package/src/__tests__/swarm-coordinator.test.ts +903 -0
  89. package/src/__tests__/types.test.ts +839 -0
  90. package/src/__tests__/utils.test.ts +322 -0
  91. package/src/agents/base-agent.ts +285 -0
  92. package/src/agents/critic-agent.ts +582 -0
  93. package/src/agents/index.ts +11 -0
  94. package/src/agents/meta-reasoning-agent.ts +672 -0
  95. package/src/agents/reasoner-agent.ts +312 -0
  96. package/src/agents/synthesizer-agent.ts +758 -0
  97. package/src/index.ts +118 -0
  98. package/src/mcp-server.ts +387 -0
  99. package/src/sequential-thinking.ts +560 -0
  100. package/src/swarm-coordinator.ts +744 -0
  101. package/src/types/index.ts +915 -0
  102. package/src/utils/index.ts +1004 -0
  103. package/src/utils/llm-adapter.ts +76 -0
  104. package/src/utils/persistence.ts +108 -0
  105. package/test_output.log +0 -0
  106. package/tsconfig.json +21 -0
@@ -0,0 +1,540 @@
1
+ /**
2
+ * Sequential Thinking Engine
3
+ */
4
+ import { ThoughtType, SessionStatus, BranchStatus } from './types/index.js';
5
+ import { calculateSimilarity } from './utils/index.js';
6
+ export class ConfidenceCalibrator {
7
+ createInitialConfidence() {
8
+ return {
9
+ overall: 0.5,
10
+ components: {
11
+ logicalConsistency: 0.5,
12
+ factualAccuracy: 0.5,
13
+ reasoningQuality: 0.5,
14
+ evidenceStrength: 0.5
15
+ },
16
+ uncertaintyBounds: [0.3, 0.7],
17
+ calibrationHistory: []
18
+ };
19
+ }
20
+ calculateOverall(components) {
21
+ const weights = {
22
+ logicalConsistency: 0.3,
23
+ factualAccuracy: 0.25,
24
+ reasoningQuality: 0.25,
25
+ evidenceStrength: 0.2
26
+ };
27
+ let weightedSum = 0;
28
+ for (const [key, value] of Object.entries(components)) {
29
+ weightedSum += value * weights[key];
30
+ }
31
+ return Math.min(1, Math.max(0, weightedSum));
32
+ }
33
+ }
34
+ export class ThoughtGraph {
35
+ thoughts = new Map();
36
+ branches = new Map();
37
+ calibrator;
38
+ constructor() {
39
+ this.calibrator = new ConfidenceCalibrator();
40
+ }
41
+ createThought(sessionId, content, options = {}) {
42
+ const id = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
43
+ const now = new Date();
44
+ const branchId = options.branchId || 'main';
45
+ const thought = {
46
+ id,
47
+ sessionId,
48
+ content,
49
+ stepNumber: this.calculateStepNumber(sessionId, branchId, options.parentThoughtId),
50
+ thoughtType: options.thoughtType || ThoughtType.ANALYSIS,
51
+ confidence: this.createConfidence(options.confidence),
52
+ parentThoughtId: options.parentThoughtId || null,
53
+ childThoughtIds: [],
54
+ branchId,
55
+ revisionOf: null,
56
+ revisionHistory: [],
57
+ metadata: {
58
+ createdAt: now,
59
+ modifiedAt: now,
60
+ agentId: options.agentId,
61
+ processingTimeMs: 0,
62
+ tokensUsed: 0
63
+ },
64
+ tags: options.tags || [],
65
+ assumptions: options.assumptions || [],
66
+ dependencies: options.dependencies || []
67
+ };
68
+ this.thoughts.set(id, thought);
69
+ if (options.parentThoughtId) {
70
+ const parent = this.thoughts.get(options.parentThoughtId);
71
+ if (parent) {
72
+ parent.childThoughtIds.push(id);
73
+ }
74
+ }
75
+ return thought;
76
+ }
77
+ reviseThought(thoughtId, newContent, revisionReason) {
78
+ const original = this.thoughts.get(thoughtId);
79
+ if (!original) {
80
+ throw new Error(`Thought not found: ${thoughtId}`);
81
+ }
82
+ const revisionId = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
83
+ const now = new Date();
84
+ const record = {
85
+ previousContent: original.content,
86
+ revisedAt: now,
87
+ revisionReason
88
+ };
89
+ original.revisionHistory.push(record);
90
+ original.metadata.modifiedAt = now;
91
+ const revision = {
92
+ ...original,
93
+ id: revisionId,
94
+ content: newContent,
95
+ thoughtType: ThoughtType.REVISION,
96
+ revisionOf: thoughtId,
97
+ revisionHistory: [...original.revisionHistory],
98
+ metadata: {
99
+ ...original.metadata,
100
+ createdAt: now,
101
+ modifiedAt: now
102
+ }
103
+ };
104
+ this.thoughts.set(revisionId, revision);
105
+ return revision;
106
+ }
107
+ createBranch(sessionId, parentThoughtId, name, description, initialContent) {
108
+ const branchId = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
109
+ const now = new Date();
110
+ const parentBranchId = this.getBranchIdForThought(parentThoughtId);
111
+ const branch = {
112
+ id: branchId,
113
+ sessionId,
114
+ name,
115
+ description,
116
+ rootThoughtId: '',
117
+ thoughtIds: [],
118
+ parentBranchId: parentBranchId ?? null,
119
+ childBranchIds: [],
120
+ status: BranchStatus.ACTIVE,
121
+ confidence: 0.5,
122
+ metadata: { createdAt: now }
123
+ };
124
+ const thought = this.createThought(sessionId, initialContent, {
125
+ thoughtType: ThoughtType.BRANCH_POINT,
126
+ parentThoughtId,
127
+ branchId
128
+ });
129
+ branch.rootThoughtId = thought.id;
130
+ branch.thoughtIds.push(thought.id);
131
+ this.branches.set(branchId, branch);
132
+ const parentBranch = this.getBranchForThought(parentThoughtId);
133
+ if (parentBranch) {
134
+ parentBranch.childBranchIds.push(branchId);
135
+ }
136
+ return { branch, thought };
137
+ }
138
+ mergeBranches(targetBranchId, sourceBranchId, mergeContent) {
139
+ const target = this.branches.get(targetBranchId);
140
+ const source = this.branches.get(sourceBranchId);
141
+ if (!target || !source) {
142
+ throw new Error('Branch not found');
143
+ }
144
+ const mergeThought = this.createThought(target.sessionId, mergeContent, {
145
+ thoughtType: ThoughtType.MERGE_POINT,
146
+ branchId: targetBranchId
147
+ });
148
+ source.status = BranchStatus.MERGED;
149
+ source.metadata.completedAt = new Date();
150
+ return mergeThought;
151
+ }
152
+ pruneBranch(branchId, reason) {
153
+ const branch = this.branches.get(branchId);
154
+ if (!branch) {
155
+ throw new Error(`Branch not found: ${branchId}`);
156
+ }
157
+ branch.status = BranchStatus.PRUNED;
158
+ branch.metadata.prunedAt = new Date();
159
+ branch.metadata.pruneReason = reason;
160
+ }
161
+ getThinkingPath(thoughtId) {
162
+ const path = [];
163
+ let current = this.thoughts.get(thoughtId);
164
+ while (current) {
165
+ path.unshift(current);
166
+ current = current.parentThoughtId
167
+ ? this.thoughts.get(current.parentThoughtId)
168
+ : undefined;
169
+ }
170
+ return path;
171
+ }
172
+ getBranchComparison(branchIds) {
173
+ return branchIds.map(id => {
174
+ const branch = this.branches.get(id);
175
+ if (!branch)
176
+ return null;
177
+ const thoughts = branch.thoughtIds
178
+ .map(tid => this.thoughts.get(tid))
179
+ .filter((t) => t !== undefined);
180
+ const avgConfidence = thoughts.length > 0
181
+ ? thoughts.reduce((sum, t) => sum + t.confidence.overall, 0) / thoughts.length
182
+ : 0;
183
+ const conclusion = thoughts.find(t => t.thoughtType === ThoughtType.CONCLUSION);
184
+ return {
185
+ branchId: id,
186
+ thoughtCount: thoughts.length,
187
+ averageConfidence: avgConfidence,
188
+ conclusion: conclusion?.content || null
189
+ };
190
+ }).filter((b) => b !== null);
191
+ }
192
+ calculateStepNumber(sessionId, branchId, parentThoughtId) {
193
+ if (!parentThoughtId) {
194
+ const branchThoughts = Array.from(this.thoughts.values())
195
+ .filter(t => t.sessionId === sessionId && t.branchId === branchId);
196
+ return branchThoughts.length + 1;
197
+ }
198
+ const parent = this.thoughts.get(parentThoughtId);
199
+ return parent ? parent.stepNumber + 1 : 1;
200
+ }
201
+ createConfidence(override) {
202
+ const confidence = this.calibrator.createInitialConfidence();
203
+ if (override !== undefined) {
204
+ confidence.overall = override;
205
+ }
206
+ return confidence;
207
+ }
208
+ getBranchIdForThought(thoughtId) {
209
+ const thought = this.thoughts.get(thoughtId);
210
+ return thought?.branchId;
211
+ }
212
+ getBranchForThought(thoughtId) {
213
+ const branchId = this.getBranchIdForThought(thoughtId);
214
+ return branchId ? this.branches.get(branchId) : undefined;
215
+ }
216
+ getThoughts() {
217
+ return this.thoughts;
218
+ }
219
+ getBranches() {
220
+ return this.branches;
221
+ }
222
+ }
223
+ export class MetaReasoningEngine {
224
+ metaNotes = new Map();
225
+ reflect(session) {
226
+ const thoughts = Array.from(session.thoughts.values());
227
+ const insights = [];
228
+ const recommendations = [];
229
+ // Analyze thinking patterns
230
+ const analysisCount = thoughts.filter(t => t.thoughtType === 'analysis').length;
231
+ const hypothesisCount = thoughts.filter(t => t.thoughtType === 'hypothesis').length;
232
+ if (analysisCount > hypothesisCount * 2) {
233
+ insights.push('Heavy focus on analysis with limited hypothesis generation');
234
+ recommendations.push('Consider exploring more alternative hypotheses');
235
+ }
236
+ // Check confidence trends
237
+ const avgConfidence = thoughts.length > 0
238
+ ? thoughts.reduce((sum, t) => sum + t.confidence.overall, 0) / thoughts.length
239
+ : 0;
240
+ if (avgConfidence < 0.5) {
241
+ insights.push('Overall confidence is low');
242
+ recommendations.push('Review assumptions and gather more evidence');
243
+ }
244
+ return {
245
+ reflectionType: 'session_review',
246
+ content: `Analyzed ${thoughts.length} thoughts across ${session.branches.size} branches`,
247
+ insights,
248
+ recommendations
249
+ };
250
+ }
251
+ generateMetaObservation(thoughtId, thoughtGraph) {
252
+ const thought = thoughtGraph.getThoughts().get(thoughtId);
253
+ if (!thought)
254
+ return null;
255
+ const observations = [];
256
+ if (thought.confidence.uncertaintyBounds[1] - thought.confidence.uncertaintyBounds[0] > 0.4) {
257
+ observations.push('High uncertainty detected');
258
+ }
259
+ const similarThoughts = Array.from(thoughtGraph.getThoughts().values())
260
+ .filter(t => t.id !== thought.id && calculateSimilarity(t.content, thought.content) > 0.7);
261
+ if (similarThoughts.length > 0) {
262
+ observations.push(`Similar to ${similarThoughts.length} previous thoughts`);
263
+ }
264
+ if (observations.length === 0)
265
+ return null;
266
+ const note = {
267
+ id: `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,
268
+ thoughtId,
269
+ content: observations.join('\n'),
270
+ observationType: 'pattern',
271
+ timestamp: new Date(),
272
+ triggeredActions: []
273
+ };
274
+ this.metaNotes.set(note.id, note);
275
+ return note;
276
+ }
277
+ }
278
+ export class SelfCorrectionEngine {
279
+ detectIssues(thought, graph) {
280
+ const issues = [];
281
+ if (thought.confidence.overall < 0.3) {
282
+ issues.push({
283
+ type: 'calibration',
284
+ severity: 'medium',
285
+ description: 'Very low confidence',
286
+ suggestion: 'Re-examine reasoning'
287
+ });
288
+ }
289
+ if (thought.assumptions.length === 0 && thought.thoughtType !== ThoughtType.CONCLUSION) {
290
+ issues.push({
291
+ type: 'assumption',
292
+ severity: 'low',
293
+ description: 'No explicit assumptions',
294
+ suggestion: 'Document assumptions'
295
+ });
296
+ }
297
+ return issues;
298
+ }
299
+ checkSessionHealth(session) {
300
+ const issues = [];
301
+ const suggestions = [];
302
+ const thoughts = Array.from(session.thoughts.values());
303
+ // Check for low confidence thoughts
304
+ const lowConfidenceCount = thoughts.filter(t => t.confidence.overall < 0.4).length;
305
+ if (lowConfidenceCount > thoughts.length * 0.5) {
306
+ issues.push('More than 50% of thoughts have low confidence');
307
+ suggestions.push('Review and strengthen reasoning for low-confidence thoughts');
308
+ }
309
+ // Check for abandoned branches
310
+ const abandonedBranches = Array.from(session.branches.values())
311
+ .filter(b => b.status === BranchStatus.ACTIVE && b.thoughtIds.length === 0);
312
+ if (abandonedBranches.length > 0) {
313
+ issues.push(`${abandonedBranches.length} branches are empty`);
314
+ suggestions.push('Either develop abandoned branches or mark them as pruned`');
315
+ }
316
+ // Calculate overall confidence
317
+ const avgConfidence = thoughts.length > 0
318
+ ? thoughts.reduce((sum, t) => sum + t.confidence.overall, 0) / thoughts.length
319
+ : 0.5;
320
+ const isHealthy = issues.length === 0 && avgConfidence >= 0.5;
321
+ return {
322
+ isHealthy,
323
+ issues,
324
+ suggestions,
325
+ confidence: avgConfidence
326
+ };
327
+ }
328
+ }
329
+ export class AdaptiveGranularityEngine {
330
+ calculateGranularity(topic, context, currentDepth) {
331
+ const hasComplexTerms = /\b(system|architecture|framework)\b/i.test(topic);
332
+ const detail = hasComplexTerms ? 0.8 : 0.5;
333
+ return { detail, reasoning: hasComplexTerms ? 'Complex topic detected' : 'Standard granularity' };
334
+ }
335
+ getRecommendation(session) {
336
+ const thoughts = Array.from(session.thoughts.values());
337
+ const avgConfidence = thoughts.length > 0
338
+ ? thoughts.reduce((sum, t) => sum + t.confidence.overall, 0) / thoughts.length
339
+ : 0.5;
340
+ if (avgConfidence < 0.4) {
341
+ return {
342
+ suggestedAction: 'increase_detail',
343
+ detail: 0.9,
344
+ reasoning: 'Low confidence detected - need more detailed analysis'
345
+ };
346
+ }
347
+ if (thoughts.length > 10 && avgConfidence > 0.8) {
348
+ return {
349
+ suggestedAction: 'decrease_detail',
350
+ detail: 0.4,
351
+ reasoning: 'High confidence with many thoughts - can summarize'
352
+ };
353
+ }
354
+ return {
355
+ suggestedAction: 'maintain',
356
+ detail: 0.6,
357
+ reasoning: 'Current granularity is appropriate'
358
+ };
359
+ }
360
+ }
361
+ import { PersistenceManager } from './utils/persistence.js';
362
+ export class SessionManager {
363
+ sessions = new Map();
364
+ graph;
365
+ metaEngine;
366
+ correctionEngine;
367
+ granularityEngine;
368
+ persistence = null;
369
+ constructor(persistenceDir) {
370
+ this.graph = new ThoughtGraph();
371
+ this.metaEngine = new MetaReasoningEngine();
372
+ this.correctionEngine = new SelfCorrectionEngine();
373
+ this.granularityEngine = new AdaptiveGranularityEngine();
374
+ if (persistenceDir) {
375
+ this.persistence = new PersistenceManager(persistenceDir);
376
+ }
377
+ }
378
+ async initialize() {
379
+ if (this.persistence) {
380
+ await this.persistence.initialize(['sessions']);
381
+ await this.loadSessions();
382
+ }
383
+ }
384
+ async loadSessions() {
385
+ if (!this.persistence)
386
+ return;
387
+ const ids = await this.persistence.list('sessions');
388
+ for (const id of ids) {
389
+ const session = await this.persistence.load('sessions', id);
390
+ if (session) {
391
+ // Restore Maps from serialized format
392
+ if (session.thoughts._type === 'Map') {
393
+ session.thoughts = new Map(session.thoughts.data);
394
+ }
395
+ else if (!(session.thoughts instanceof Map)) {
396
+ session.thoughts = new Map(Object.entries(session.thoughts));
397
+ }
398
+ if (session.branches._type === 'Map') {
399
+ session.branches = new Map(session.branches.data);
400
+ }
401
+ else if (!(session.branches instanceof Map)) {
402
+ session.branches = new Map(Object.entries(session.branches));
403
+ }
404
+ if (session.metaNotes._type === 'Map') {
405
+ session.metaNotes = new Map(session.metaNotes.data);
406
+ }
407
+ else if (!(session.metaNotes instanceof Map)) {
408
+ session.metaNotes = new Map(Object.entries(session.metaNotes));
409
+ }
410
+ this.sessions.set(id, session);
411
+ }
412
+ }
413
+ }
414
+ async createSession(topic, options = {}) {
415
+ const id = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
416
+ const now = new Date();
417
+ const session = {
418
+ id,
419
+ topic,
420
+ status: SessionStatus.INITIALIZING,
421
+ currentBranchId: 'main',
422
+ branches: new Map(),
423
+ thoughts: new Map(),
424
+ metaNotes: new Map(),
425
+ context: {
426
+ originalProblem: topic,
427
+ constraints: [],
428
+ relevantInformation: [],
429
+ workingMemory: new Map(),
430
+ longTermReferences: []
431
+ },
432
+ settings: {
433
+ maxBranches: 5,
434
+ maxDepth: 20,
435
+ confidenceThreshold: 0.6,
436
+ enableSelfCorrection: true,
437
+ enableMetaReasoning: true,
438
+ enableParallelHypotheses: true,
439
+ adaptiveGranularity: true,
440
+ granularitySettings: {
441
+ minStepDetail: 0.1,
442
+ maxStepDetail: 1.0,
443
+ complexityThreshold: 0.7
444
+ },
445
+ ...options
446
+ },
447
+ metadata: {
448
+ createdAt: now,
449
+ lastActivityAt: now,
450
+ totalThoughts: 0,
451
+ totalBranches: 1
452
+ }
453
+ };
454
+ const mainBranch = {
455
+ id: 'main',
456
+ sessionId: id,
457
+ name: 'Main',
458
+ description: 'Primary reasoning path',
459
+ rootThoughtId: '',
460
+ thoughtIds: [],
461
+ parentBranchId: null,
462
+ childBranchIds: [],
463
+ status: BranchStatus.ACTIVE,
464
+ confidence: 0.5,
465
+ metadata: { createdAt: now }
466
+ };
467
+ session.branches.set('main', mainBranch);
468
+ this.sessions.set(id, session);
469
+ if (this.persistence) {
470
+ await this.persistence.save('sessions', id, session);
471
+ }
472
+ return session;
473
+ }
474
+ async addThought(sessionId, content, options = {}) {
475
+ const session = this.sessions.get(sessionId);
476
+ if (!session) {
477
+ throw new Error(`Session not found: ${sessionId}`);
478
+ }
479
+ const thought = this.graph.createThought(sessionId, content, options);
480
+ session.thoughts.set(thought.id, thought);
481
+ session.metadata.totalThoughts++;
482
+ session.metadata.lastActivityAt = new Date();
483
+ let metaNote = undefined;
484
+ let issues = undefined;
485
+ if (session.settings.enableMetaReasoning) {
486
+ const generatedMetaNote = this.metaEngine.generateMetaObservation(thought.id, this.graph);
487
+ if (generatedMetaNote) {
488
+ metaNote = generatedMetaNote;
489
+ session.metaNotes.set(metaNote.id, metaNote);
490
+ }
491
+ }
492
+ if (session.settings.enableSelfCorrection) {
493
+ issues = this.correctionEngine.detectIssues(thought, this.graph);
494
+ }
495
+ if (this.persistence) {
496
+ await this.persistence.save('sessions', sessionId, session);
497
+ }
498
+ return { thought, metaNote, issues };
499
+ }
500
+ getSession(sessionId) {
501
+ return this.sessions.get(sessionId);
502
+ }
503
+ getThoughtGraph() {
504
+ return this.graph;
505
+ }
506
+ getMetaEngine() {
507
+ return this.metaEngine;
508
+ }
509
+ async completeSession(sessionId) {
510
+ const session = this.sessions.get(sessionId);
511
+ if (!session) {
512
+ throw new Error(`Session not found: ${sessionId}`);
513
+ }
514
+ session.status = SessionStatus.COMPLETED;
515
+ session.metadata.completedAt = new Date();
516
+ if (this.persistence) {
517
+ await this.persistence.save('sessions', sessionId, session);
518
+ }
519
+ }
520
+ getSessionStatus(sessionId) {
521
+ const session = this.sessions.get(sessionId);
522
+ if (!session) {
523
+ throw new Error(`Session not found: ${sessionId}`);
524
+ }
525
+ const thoughts = Array.from(session.thoughts.values());
526
+ const avgConfidence = thoughts.length > 0
527
+ ? thoughts.reduce((sum, t) => sum + t.confidence.overall, 0) / thoughts.length
528
+ : 0;
529
+ return {
530
+ id: session.id,
531
+ status: session.status,
532
+ totalThoughts: session.metadata.totalThoughts,
533
+ branches: Array.from(session.branches.keys()),
534
+ averageConfidence: avgConfidence,
535
+ lastActivity: session.metadata.lastActivityAt
536
+ };
537
+ }
538
+ }
539
+ //# sourceMappingURL=sequential-thinking.js.map
540
+ //# sourceMappingURL=sequential-thinking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequential-thinking.js","sourceRoot":"","sources":["../src/sequential-thinking.ts"],"names":[],"mappings":"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"}