@gotza02/mathinking 2.9.4 → 2.9.5

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 (61) hide show
  1. package/dist/final-demo.js +0 -3
  2. package/dist/final-demo.js.map +1 -1
  3. package/dist/index.js +17 -16
  4. package/dist/index.js.map +1 -1
  5. package/dist/schemas/brain.schema.d.ts +70 -0
  6. package/dist/schemas/brain.schema.d.ts.map +1 -0
  7. package/dist/schemas/brain.schema.js +70 -0
  8. package/dist/schemas/brain.schema.js.map +1 -0
  9. package/dist/security.test.d.ts +2 -0
  10. package/dist/security.test.d.ts.map +1 -0
  11. package/dist/security.test.js +81 -0
  12. package/dist/security.test.js.map +1 -0
  13. package/dist/sse-server.js +39 -8
  14. package/dist/sse-server.js.map +1 -1
  15. package/dist/test-all.js +0 -20
  16. package/dist/test-all.js.map +1 -1
  17. package/dist/test-extended.js +0 -9
  18. package/dist/test-extended.js.map +1 -1
  19. package/dist/test-max-intelligence.js +0 -7
  20. package/dist/test-max-intelligence.js.map +1 -1
  21. package/dist/test-memory.js +0 -2
  22. package/dist/test-memory.js.map +1 -1
  23. package/dist/test-reflective.js +0 -6
  24. package/dist/test-reflective.js.map +1 -1
  25. package/dist/test-resilience.js +0 -8
  26. package/dist/test-resilience.js.map +1 -1
  27. package/dist/tools/orchestrator.d.ts +2 -47
  28. package/dist/tools/orchestrator.d.ts.map +1 -1
  29. package/dist/tools/orchestrator.js +139 -172
  30. package/dist/tools/orchestrator.js.map +1 -1
  31. package/dist/tools/sequential-thinking.d.ts +7 -6
  32. package/dist/tools/sequential-thinking.d.ts.map +1 -1
  33. package/dist/tools/sequential-thinking.js +210 -90
  34. package/dist/tools/sequential-thinking.js.map +1 -1
  35. package/dist/types/index.d.ts +2 -2
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/utils/dag.d.ts +0 -20
  38. package/dist/utils/dag.d.ts.map +1 -1
  39. package/dist/utils/dag.js +8 -48
  40. package/dist/utils/dag.js.map +1 -1
  41. package/dist/utils/memory.d.ts +5 -0
  42. package/dist/utils/memory.d.ts.map +1 -1
  43. package/dist/utils/memory.js +66 -60
  44. package/dist/utils/memory.js.map +1 -1
  45. package/dist/utils/mutex.d.ts +6 -0
  46. package/dist/utils/mutex.d.ts.map +1 -0
  47. package/dist/utils/mutex.js +22 -0
  48. package/dist/utils/mutex.js.map +1 -0
  49. package/dist/utils/resilience.d.ts +0 -4
  50. package/dist/utils/resilience.d.ts.map +1 -1
  51. package/dist/utils/resilience.js +1 -15
  52. package/dist/utils/resilience.js.map +1 -1
  53. package/dist/utils/tool-cache.d.ts +4 -12
  54. package/dist/utils/tool-cache.d.ts.map +1 -1
  55. package/dist/utils/tool-cache.js +12 -46
  56. package/dist/utils/tool-cache.js.map +1 -1
  57. package/dist/utils/vector-memory.d.ts +1 -22
  58. package/dist/utils/vector-memory.d.ts.map +1 -1
  59. package/dist/utils/vector-memory.js +31 -77
  60. package/dist/utils/vector-memory.js.map +1 -1
  61. package/package.json +22 -20
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/tools/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/tools/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- import type { SequentialThinkingInput, SequentialThinkingOutput } from '../types/index.js';
2
- /**
3
- * Sequential Thinking Manager (The Brain v2.0)
4
- * Upgraded with Tree of Thoughts (ToT), Semantic Memory, and Reflexion.
5
- */
1
+ import type { SequentialThinkingOutput } from '../types/index.js';
6
2
  export declare class SequentialThinkingManager {
7
3
  private sessions;
8
4
  private lastSessionId;
@@ -10,11 +6,16 @@ export declare class SequentialThinkingManager {
10
6
  private initialized;
11
7
  private lastActionTimestamp;
12
8
  private readonly MIN_DELAY_MS;
9
+ private mutex;
13
10
  constructor();
14
11
  private sleep;
12
+ private _initStorage;
15
13
  private initStorage;
14
+ private _saveToStorage;
16
15
  private saveToStorage;
17
- process(input: SequentialThinkingInput): Promise<SequentialThinkingOutput>;
16
+ process(input: unknown): Promise<SequentialThinkingOutput>;
17
+ private decompose;
18
+ private research;
18
19
  private replan;
19
20
  private startSession;
20
21
  private addThought;
@@ -1 +1 @@
1
- {"version":3,"file":"sequential-thinking.d.ts","sourceRoot":"","sources":["../../src/tools/sequential-thinking.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,uBAAuB,EACvB,wBAAwB,EAKzB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAO;;IAMpC,OAAO,CAAC,KAAK;YAIC,WAAW;YAkBX,aAAa;IAcrB,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAmClE,MAAM;IA8CpB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,YAAY;IAkChB,OAAO,CAAC,OAAO;YAoCD,iBAAiB;IAiD/B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,UAAU;CAanB;AACL,eAAO,MAAM,eAAe,2BAAkC,CAAC"}
1
+ {"version":3,"file":"sequential-thinking.d.ts","sourceRoot":"","sources":["../../src/tools/sequential-thinking.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAKV,wBAAwB,EAKzB,MAAM,mBAAmB,CAAC;AAG3B,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAGb;IACH,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAO;IACpC,OAAO,CAAC,KAAK,CAAe;;IAM5B,OAAO,CAAC,KAAK;YAIC,YAAY;YAkBZ,WAAW;YAIX,cAAc;YAad,aAAa;IAIrB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8EhE,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,QAAQ;YA8DF,MAAM;IA8CpB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,YAAY;IAkChB,OAAO,CAAC,OAAO;YAoCD,iBAAiB;IA4D/B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,UAAU;CAanB;AACL,eAAO,MAAM,eAAe,2BAAkC,CAAC"}
@@ -2,26 +2,29 @@ import { v4 as uuidv4 } from 'uuid';
2
2
  import * as fs from 'fs/promises';
3
3
  import * as path from 'path';
4
4
  import * as os from 'os';
5
+ import { LRUCache } from 'lru-cache';
6
+ import { Mutex } from '../utils/mutex.js';
5
7
  import { orchestratorManager } from './orchestrator.js';
6
8
  import { vectorMemory } from '../utils/vector-memory.js';
7
- /**
8
- * Sequential Thinking Manager (The Brain v2.0)
9
- * Upgraded with Tree of Thoughts (ToT), Semantic Memory, and Reflexion.
10
- */
9
+ import { BrainInputSchema } from '../schemas/brain.schema.js';
11
10
  export class SequentialThinkingManager {
12
- sessions = new Map();
11
+ sessions = new LRUCache({
12
+ max: 100,
13
+ ttl: 1000 * 60 * 60 * 24 // 24 hours
14
+ });
13
15
  lastSessionId = null;
14
16
  storagePath;
15
17
  initialized = false;
16
18
  lastActionTimestamp = 0;
17
19
  MIN_DELAY_MS = 500;
20
+ mutex = new Mutex();
18
21
  constructor() {
19
22
  this.storagePath = path.join(os.homedir(), '.mathinking', 'sessions.json');
20
23
  }
21
24
  sleep(ms) {
22
25
  return new Promise((resolve) => setTimeout(resolve, ms));
23
26
  }
24
- async initStorage(force = false) {
27
+ async _initStorage(force = false) {
25
28
  if (this.initialized && !force)
26
29
  return;
27
30
  try {
@@ -31,95 +34,217 @@ export class SequentialThinkingManager {
31
34
  const savedSessions = JSON.parse(data);
32
35
  for (const [id, session] of Object.entries(savedSessions)) {
33
36
  this.sessions.set(id, session);
34
- this.lastSessionId = id; // Naive, should sort
37
+ this.lastSessionId = id;
35
38
  }
36
39
  }
37
40
  catch (error) {
38
- // Ignore
41
+ // Ignore error if file doesn't exist
39
42
  }
40
43
  finally {
41
44
  this.initialized = true;
42
45
  }
43
46
  }
44
- async saveToStorage() {
47
+ async initStorage(force = false) {
48
+ await this.mutex.dispatch(() => this._initStorage(force));
49
+ }
50
+ async _saveToStorage() {
45
51
  try {
46
- // Pruning logic to keep file size small
47
- if (this.sessions.size > 50) {
48
- const keys = Array.from(this.sessions.keys());
49
- this.sessions.delete(keys[0]);
52
+ const entries = {};
53
+ for (const [key, value] of this.sessions.entries()) {
54
+ entries[key] = value;
50
55
  }
51
- const data = JSON.stringify(Object.fromEntries(this.sessions), null, 2);
56
+ const data = JSON.stringify(entries, null, 2);
52
57
  await fs.writeFile(this.storagePath, data, 'utf8');
53
58
  }
54
59
  catch (error) {
55
60
  console.error('[Brain] Save failed:', error);
56
61
  }
57
62
  }
63
+ async saveToStorage() {
64
+ await this.mutex.dispatch(() => this._saveToStorage());
65
+ }
58
66
  async process(input) {
59
- await this.initStorage(true);
60
- let result;
61
- // Rate limiting
62
- const now = Date.now();
63
- if (now - this.lastActionTimestamp < this.MIN_DELAY_MS) {
64
- await this.sleep(200);
65
- }
66
- this.lastActionTimestamp = Date.now();
67
- switch (input.action) {
68
- case 'start_session':
69
- result = this.startSession(input);
70
- break;
71
- case 'add_thought':
72
- result = this.addThought(input);
73
- break;
74
- case 'create_branch':
75
- result = this.createBranch(input);
76
- break; // Legacy support
77
- case 'generate_options':
78
- result = this.generateOptions(input);
79
- break; // ToT
80
- case 'evaluate_options':
81
- result = this.evaluateOptions(input);
82
- break; // ToT
83
- case 'select_option':
84
- result = this.selectOption(input);
85
- break; // ToT
86
- case 'revise_thought':
87
- result = this.reviseThought(input);
88
- break;
89
- case 'set_hypothesis':
90
- result = this.setHypothesis(input);
91
- break;
92
- case 'verify_hypothesis':
93
- result = this.verifyHypothesis(input);
94
- break;
95
- case 'conclude':
96
- result = this.conclude(input);
97
- break;
98
- case 'execute_conclusion':
99
- result = await this.executeConclusion(input);
100
- break;
101
- case 'reflect':
102
- result = this.reflect(input);
103
- break; // Reflexion
104
- case 'replan':
105
- result = await this.replan(input);
106
- break; // Active Learning
107
- case 'get_history':
108
- result = this.getHistory(input);
109
- break;
110
- default: result = this.startSession(input); // Default fallback
67
+ let executeConclusionInput = null;
68
+ const result = await this.mutex.dispatch(async () => {
69
+ await this._initStorage(false);
70
+ const validationResult = BrainInputSchema.safeParse(input);
71
+ if (!validationResult.success) {
72
+ return {
73
+ success: false,
74
+ sessionId: '',
75
+ currentStep: 0,
76
+ totalThoughts: 0,
77
+ status: 'in_progress',
78
+ message: `Validation Error: ${validationResult.error.message}`
79
+ };
80
+ }
81
+ const validatedInput = validationResult.data;
82
+ let innerResult;
83
+ const now = Date.now();
84
+ if (now - this.lastActionTimestamp < this.MIN_DELAY_MS) {
85
+ await this.sleep(200);
86
+ }
87
+ this.lastActionTimestamp = Date.now();
88
+ // Defer execution to avoid deadlock
89
+ if (validatedInput.action === 'execute_conclusion') {
90
+ executeConclusionInput = validatedInput;
91
+ // Return a temporary pending result
92
+ return {
93
+ success: true,
94
+ sessionId: validatedInput.sessionId || '',
95
+ currentStep: 0,
96
+ totalThoughts: 0,
97
+ status: 'in_progress',
98
+ message: 'Preparing execution...'
99
+ };
100
+ }
101
+ switch (validatedInput.action) {
102
+ case 'start_session':
103
+ innerResult = this.startSession(validatedInput);
104
+ break;
105
+ case 'add_thought':
106
+ innerResult = this.addThought(validatedInput);
107
+ break;
108
+ case 'create_branch':
109
+ innerResult = this.createBranch(validatedInput);
110
+ break;
111
+ case 'generate_options':
112
+ innerResult = this.generateOptions(validatedInput);
113
+ break;
114
+ case 'evaluate_options':
115
+ innerResult = this.evaluateOptions(validatedInput);
116
+ break;
117
+ case 'select_option':
118
+ innerResult = this.selectOption(validatedInput);
119
+ break;
120
+ case 'revise_thought':
121
+ innerResult = this.reviseThought(validatedInput);
122
+ break;
123
+ case 'set_hypothesis':
124
+ innerResult = this.setHypothesis(validatedInput);
125
+ break;
126
+ case 'verify_hypothesis':
127
+ innerResult = this.verifyHypothesis(validatedInput);
128
+ break;
129
+ case 'conclude':
130
+ innerResult = this.conclude(validatedInput);
131
+ break;
132
+ // execute_conclusion handled outside
133
+ case 'reflect':
134
+ innerResult = this.reflect(validatedInput);
135
+ break;
136
+ case 'replan':
137
+ innerResult = await this.replan(validatedInput);
138
+ break;
139
+ case 'decompose':
140
+ innerResult = this.decompose(validatedInput);
141
+ break;
142
+ case 'research':
143
+ innerResult = this.research(validatedInput);
144
+ break;
145
+ case 'get_history':
146
+ innerResult = this.getHistory(validatedInput);
147
+ break;
148
+ default: innerResult = this.startSession(validatedInput);
149
+ }
150
+ if (innerResult.success)
151
+ await this._saveToStorage();
152
+ return innerResult;
153
+ });
154
+ if (executeConclusionInput) {
155
+ const conclusionResult = await this.executeConclusion(executeConclusionInput);
156
+ // We must save again because executeConclusion modifies state (adds reflection)
157
+ // But executeConclusion calls process('reflect') internally, which acquires lock & saves.
158
+ // So we don't need to save here.
159
+ return conclusionResult;
111
160
  }
112
- if (result.success)
113
- await this.saveToStorage();
114
161
  return result;
115
162
  }
116
- // --- Core Methods ---
163
+ decompose(input) {
164
+ const session = this.getSession(input.sessionId);
165
+ if (!session)
166
+ return { success: false, message: 'Session not found' };
167
+ session.currentStep++;
168
+ const thought = {
169
+ id: uuidv4(),
170
+ stepNumber: session.currentStep,
171
+ thought: `DECOMPOSITION: ${input.thought}`,
172
+ thoughtType: 'decomposition',
173
+ timestamp: new Date().toISOString(),
174
+ confidence: 90
175
+ };
176
+ session.thoughtHistory.push(thought);
177
+ return {
178
+ success: true,
179
+ sessionId: session.sessionId,
180
+ currentStep: session.currentStep,
181
+ totalThoughts: session.totalThoughts,
182
+ status: session.status,
183
+ thought,
184
+ message: 'Query decomposed. Please add sub-thoughts for each component.'
185
+ };
186
+ }
187
+ research(input) {
188
+ const session = this.getSession(input.sessionId);
189
+ if (!session)
190
+ return { success: false, message: 'Session not found' };
191
+ const topic = input.thought || session.problemStatement;
192
+ const planId = 'research-' + uuidv4().substring(0, 8);
193
+ const plan = {
194
+ planId,
195
+ name: `Research: ${topic.substring(0, 30)}...`,
196
+ tasks: [
197
+ {
198
+ id: 'search_google',
199
+ name: 'Google Search',
200
+ toolName: 'web_search',
201
+ toolInput: { query: topic, freshness: 'year' },
202
+ dependencies: []
203
+ },
204
+ {
205
+ id: 'search_brave',
206
+ name: 'Brave Search',
207
+ toolName: 'web_search',
208
+ toolInput: { query: topic, freshness: 'month' },
209
+ dependencies: [],
210
+ runIf: '${search_google.results.length} === 0' // Fallback
211
+ },
212
+ {
213
+ id: 'save_memory',
214
+ name: 'Save Findings',
215
+ toolName: 'memory_save',
216
+ toolInput: { key: `Research: ${topic}`, value: '${search_google.results}' },
217
+ dependencies: ['search_google']
218
+ }
219
+ ]
220
+ };
221
+ session.currentStep++;
222
+ const thought = {
223
+ id: uuidv4(),
224
+ stepNumber: session.currentStep,
225
+ thought: `RESEARCH PLAN: Generated plan to investigate "${topic}"`,
226
+ thoughtType: 'plan',
227
+ timestamp: new Date().toISOString(),
228
+ confidence: 100,
229
+ metadata: { planId }
230
+ };
231
+ session.thoughtHistory.push(thought);
232
+ return {
233
+ success: true,
234
+ sessionId: session.sessionId,
235
+ currentStep: session.currentStep,
236
+ totalThoughts: session.totalThoughts,
237
+ status: session.status,
238
+ thought,
239
+ executionPlan: plan,
240
+ message: 'Research plan generated. Use execute_conclusion to run it.'
241
+ };
242
+ }
117
243
  async replan(input) {
118
244
  const session = this.getSession(input.sessionId);
119
245
  if (!session)
120
246
  return { success: false, message: 'Session not found' };
121
247
  console.error(`[Brain] Strategic Re-plan requested for session: ${session.sessionId}`);
122
- // 1. Record the failure
123
248
  session.currentStep++;
124
249
  const failureThought = {
125
250
  id: uuidv4(),
@@ -130,8 +255,6 @@ export class SequentialThinkingManager {
130
255
  confidence: 100
131
256
  };
132
257
  session.thoughtHistory.push(failureThought);
133
- // 2. Simple Heuristic Re-plan (In real scenario, the LLM would decide)
134
- // If it's a fetch error, try to use a mock or alternative source.
135
258
  let suggestedPlan = undefined;
136
259
  if (input.thought?.includes('fetch failed')) {
137
260
  suggestedPlan = {
@@ -206,14 +329,10 @@ export class SequentialThinkingManager {
206
329
  message: `Thought added (${thought.thoughtType})`
207
330
  };
208
331
  }
209
- // --- Tree of Thoughts (ToT) ---
210
332
  generateOptions(input) {
211
333
  const session = this.getSession(input.sessionId);
212
334
  if (!session)
213
335
  return { success: false, message: 'Session not found' };
214
- // This simulates the Brain generating multiple potential next steps
215
- // In a real loop, the LLM would call this 3 times or pass an array.
216
- // Here we just prepare the state for the LLM to provide the options.
217
336
  return {
218
337
  success: true,
219
338
  sessionId: session.sessionId,
@@ -225,7 +344,6 @@ export class SequentialThinkingManager {
225
344
  };
226
345
  }
227
346
  evaluateOptions(input) {
228
- // The LLM should look at recent "option_generation" thoughts and assign scores
229
347
  return {
230
348
  success: true,
231
349
  sessionId: input.sessionId || '',
@@ -266,7 +384,6 @@ export class SequentialThinkingManager {
266
384
  message: `Selected option ${selected.branchLabel}. Moving forward.`
267
385
  };
268
386
  }
269
- // --- Reflexion ---
270
387
  reflect(input) {
271
388
  const session = this.getSession(input.sessionId);
272
389
  if (!session)
@@ -283,7 +400,6 @@ export class SequentialThinkingManager {
283
400
  metadata: { executionResult: input.executionResult }
284
401
  };
285
402
  session.thoughtHistory.push(thought);
286
- // Save to Semantic Memory if valuable
287
403
  if (input.thought && input.thought.length > 50) {
288
404
  vectorMemory.add(`Reflexion on ${session.problemStatement}: ${input.thought}`, { sessionId: session.sessionId });
289
405
  }
@@ -297,7 +413,6 @@ export class SequentialThinkingManager {
297
413
  message: 'Reflexion recorded and saved to Semantic Memory.'
298
414
  };
299
415
  }
300
- // --- Bridge ---
301
416
  async executeConclusion(input) {
302
417
  const session = this.getSession(input.sessionId);
303
418
  if (!session)
@@ -305,25 +420,32 @@ export class SequentialThinkingManager {
305
420
  const conclusion = session.finalConclusion || session.thoughtHistory.slice(-1)[0]?.thought;
306
421
  if (!conclusion)
307
422
  return this.errorResponse(session.sessionId, 'No conclusion');
308
- // Extract Plan
309
423
  let plan = null;
310
424
  try {
311
- const jsonMatch = conclusion.match(/```json\n([\s\S]*?)\n```/) || conclusion.match(/(\{[\s\S]*\})/);
312
- if (jsonMatch)
313
- plan = JSON.parse(jsonMatch[1]);
425
+ const codeBlockMatch = conclusion.match(/```(?:json)?\n([\s\S]*?)\n```/);
426
+ if (codeBlockMatch) {
427
+ plan = JSON.parse(codeBlockMatch[1]);
428
+ }
429
+ else {
430
+ const firstBrace = conclusion.indexOf('{');
431
+ const lastBrace = conclusion.lastIndexOf('}');
432
+ if (firstBrace !== -1 && lastBrace !== -1 && lastBrace > firstBrace) {
433
+ const jsonString = conclusion.substring(firstBrace, lastBrace + 1);
434
+ plan = JSON.parse(jsonString);
435
+ }
436
+ }
437
+ }
438
+ catch (e) {
439
+ console.error('[Brain] Failed to parse conclusion JSON:', e);
314
440
  }
315
- catch (e) { }
316
441
  if (!plan) {
317
- // Auto-gen logic (simplified)
318
442
  plan = {
319
443
  planId: 'auto-' + uuidv4(),
320
444
  name: 'Auto Plan',
321
445
  tasks: [{ id: 't1', name: 'Auto Echo', toolName: 'echo', toolInput: { text: 'Running...' }, dependencies: [] }]
322
446
  };
323
447
  }
324
- // Execute
325
448
  const execResult = await orchestratorManager.process({ action: 'execute_plan', plan });
326
- // Auto-Reflexion
327
449
  await this.process({
328
450
  action: 'reflect',
329
451
  sessionId: session.sessionId,
@@ -342,7 +464,6 @@ export class SequentialThinkingManager {
342
464
  executionResult: execResult.result
343
465
  };
344
466
  }
345
- // --- Helpers ---
346
467
  errorResponse(sessionId, message) {
347
468
  return {
348
469
  success: false,
@@ -361,7 +482,6 @@ export class SequentialThinkingManager {
361
482
  getLastThoughtId(session) {
362
483
  return session.thoughtHistory.length > 0 ? session.thoughtHistory[session.thoughtHistory.length - 1].id : undefined;
363
484
  }
364
- // Legacy stubs to satisfy strict TS if interface demands
365
485
  createBranch(input) { return this.addThought(input); }
366
486
  reviseThought(input) { return this.addThought({ ...input, thoughtType: 'revision' }); }
367
487
  setHypothesis(input) { return this.addThought({ ...input, thoughtType: 'hypothesis' }); }