@gotza02/mathinking 2.9.5 → 3.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.
@@ -3,9 +3,33 @@ export declare class OrchestratorManager {
3
3
  private toolRegistry;
4
4
  private executionHistory;
5
5
  private lastActionTimestamp;
6
- private readonly MIN_DELAY_MS;
6
+ private minDelayMs;
7
7
  private quickJS?;
8
- constructor();
8
+ private readonly ALLOWED_ROOTS;
9
+ private readonly MAX_CONCURRENT_TASKS;
10
+ private readonly MAX_TOTAL_CONCURRENT;
11
+ constructor(config?: {
12
+ minDelayMs?: number;
13
+ maxConcurrentTasks?: number;
14
+ });
15
+ /**
16
+ * 🔧 Set rate limit delay dynamically
17
+ */
18
+ setRateLimit(delayMs: number): void;
19
+ /**
20
+ * 🔧 Get current rate limit
21
+ */
22
+ getRateLimit(): number;
23
+ /**
24
+ * 🔧 Execute tasks with controlled concurrency
25
+ * Limits the number of parallel tasks to prevent resource exhaustion
26
+ */
27
+ private executeWithConcurrencyLimit;
28
+ /**
29
+ * 🔒 Security: Validate path to prevent directory traversal attacks
30
+ * Ensures that file operations are limited to allowed directories
31
+ */
32
+ private validatePath;
9
33
  private safeEval;
10
34
  private sleep;
11
35
  private registerBuiltInTools;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/tools/orchestrator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAMV,iBAAiB,EACjB,kBAAkB,EAElB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAG3B,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,OAAO,CAAC,CAAoB;;YAMtB,QAAQ;IAoBtB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,oBAAoB;IA8f5B,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKxC,kBAAkB,IAAI,MAAM,EAAE;IAKxB,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BpE,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,YAAY;YAyCN,WAAW;YA4IX,WAAW;YAkJX,iBAAiB;IAsB/B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,kBAAkB;YA4BZ,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,sBAAsB;CA4B/B;AAGD,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/tools/orchestrator.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAMV,iBAAiB,EACjB,kBAAkB,EAElB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAG3B,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,mBAAmB,CAAa;IAExC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,OAAO,CAAC,CAAoB;IAGpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAGF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAM;gBAE/B,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE;IAQzE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOnC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;YACW,2BAA2B;IA4BzC;;;OAGG;IACH,OAAO,CAAC,YAAY;YAuBN,QAAQ;IAoBtB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,oBAAoB;IAigB5B,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKxC,kBAAkB,IAAI,MAAM,EAAE;IAKxB,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BpE,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,YAAY;YAyCN,WAAW;YA8IX,WAAW;YA0JX,iBAAiB;IAsB/B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,kBAAkB;YAgDZ,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,sBAAsB;CA4B/B;AAGD,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { getQuickJS } from 'quickjs-emscripten';
2
+ import * as path from 'path';
3
+ import * as os from 'os';
2
4
  import { resilienceManager } from '../utils/resilience.js';
3
5
  import { toolCache } from '../utils/tool-cache.js';
4
6
  import { topologicalSortWithLayers, validateDAG, visualizeDAG, getCriticalPath, getMaxParallelism } from '../utils/dag.js';
@@ -6,11 +8,83 @@ export class OrchestratorManager {
6
8
  toolRegistry = {};
7
9
  executionHistory = new Map();
8
10
  lastActionTimestamp = 0;
9
- MIN_DELAY_MS = 1000; // 1s delay for orchestrator actions
11
+ // 🔧 Configurable rate limiting
12
+ minDelayMs = 1000; // Default 1s, configurable via setter
10
13
  quickJS;
11
- constructor() {
14
+ // 🔒 Security: Allowed directory roots for file operations
15
+ ALLOWED_ROOTS = [
16
+ process.cwd(),
17
+ path.join(os.homedir(), 'tmp', 'mathinking')
18
+ ];
19
+ // 🔧 Resource management: Limit concurrent tasks to prevent exhaustion
20
+ MAX_CONCURRENT_TASKS = 10; // Maximum parallel tasks per layer
21
+ MAX_TOTAL_CONCURRENT = 20; // Maximum across all layers
22
+ constructor(config) {
23
+ // 🔧 Allow custom configuration
24
+ if (config?.minDelayMs !== undefined) {
25
+ this.minDelayMs = config.minDelayMs;
26
+ }
12
27
  this.registerBuiltInTools();
13
28
  }
29
+ /**
30
+ * 🔧 Set rate limit delay dynamically
31
+ */
32
+ setRateLimit(delayMs) {
33
+ if (delayMs < 0) {
34
+ throw new Error('Rate limit delay must be non-negative');
35
+ }
36
+ this.minDelayMs = delayMs;
37
+ }
38
+ /**
39
+ * 🔧 Get current rate limit
40
+ */
41
+ getRateLimit() {
42
+ return this.minDelayMs;
43
+ }
44
+ /**
45
+ * 🔧 Execute tasks with controlled concurrency
46
+ * Limits the number of parallel tasks to prevent resource exhaustion
47
+ */
48
+ async executeWithConcurrencyLimit(tasks, limit) {
49
+ const results = [];
50
+ const executing = [];
51
+ for (const task of tasks) {
52
+ const promise = task().then(result => {
53
+ // Remove from executing array after completion
54
+ const idx = executing.indexOf(promise);
55
+ if (idx > -1) {
56
+ executing.splice(idx, 1);
57
+ }
58
+ return result;
59
+ });
60
+ results.push(promise);
61
+ executing.push(promise);
62
+ if (executing.length >= limit) {
63
+ await Promise.race(executing);
64
+ }
65
+ }
66
+ return Promise.all(results);
67
+ }
68
+ /**
69
+ * 🔒 Security: Validate path to prevent directory traversal attacks
70
+ * Ensures that file operations are limited to allowed directories
71
+ */
72
+ validatePath(inputPath) {
73
+ // Expand ~ to home directory
74
+ const expandedPath = inputPath.replace(/^~/, os.homedir());
75
+ // Resolve to absolute path (also normalizes ../ etc)
76
+ const resolvedPath = path.resolve(expandedPath);
77
+ // Check if path is within allowed roots
78
+ const isAllowed = this.ALLOWED_ROOTS.some(root => {
79
+ const resolvedRoot = path.resolve(root);
80
+ return resolvedPath.startsWith(resolvedRoot);
81
+ });
82
+ if (!isAllowed) {
83
+ throw new Error(`Security: Path "${resolvedPath}" is outside allowed directories: ` +
84
+ `[${this.ALLOWED_ROOTS.join(', ')}]`);
85
+ }
86
+ return resolvedPath;
87
+ }
14
88
  async safeEval(code) {
15
89
  if (!this.quickJS) {
16
90
  this.quickJS = await getQuickJS();
@@ -139,12 +213,13 @@ export class OrchestratorManager {
139
213
  name: 'read_file',
140
214
  description: 'Reads content from a file',
141
215
  execute: async (input) => {
142
- const path = (input.file_path || input.path);
216
+ const rawPath = (input.file_path || input.path);
217
+ const validatedPath = this.validatePath(rawPath); // 🔒 Security validation
143
218
  const encoding = input.encoding || 'utf8';
144
219
  const fs = await import('fs/promises');
145
220
  try {
146
- const content = await fs.readFile(path, { encoding });
147
- return { path, content, timestamp: new Date().toISOString() };
221
+ const content = await fs.readFile(validatedPath, { encoding });
222
+ return { path: validatedPath, content, timestamp: new Date().toISOString() };
148
223
  }
149
224
  catch (error) {
150
225
  throw new Error(`Read file failed: ${error instanceof Error ? error.message : String(error)}`);
@@ -155,12 +230,13 @@ export class OrchestratorManager {
155
230
  name: 'write_file',
156
231
  description: 'Writes content to a file',
157
232
  execute: async (input) => {
158
- const path = (input.file_path || input.path);
233
+ const rawPath = (input.file_path || input.path);
234
+ const validatedPath = this.validatePath(rawPath); // 🔒 Security validation
159
235
  const content = input.content;
160
236
  const fs = await import('fs/promises');
161
237
  try {
162
- await fs.writeFile(path, content);
163
- return { path, success: true, timestamp: new Date().toISOString() };
238
+ await fs.writeFile(validatedPath, content);
239
+ return { path: validatedPath, success: true, timestamp: new Date().toISOString() };
164
240
  }
165
241
  catch (error) {
166
242
  throw new Error(`Write file failed: ${error instanceof Error ? error.message : String(error)}`);
@@ -171,11 +247,12 @@ export class OrchestratorManager {
171
247
  name: 'list_directory',
172
248
  description: 'Lists files in a directory',
173
249
  execute: async (input) => {
174
- const path = (input.dir_path || input.path);
250
+ const rawPath = (input.dir_path || input.path);
251
+ const validatedPath = this.validatePath(rawPath); // 🔒 Security validation
175
252
  const fs = await import('fs/promises');
176
253
  try {
177
- const files = await fs.readdir(path);
178
- return { path, files, timestamp: new Date().toISOString() };
254
+ const files = await fs.readdir(validatedPath);
255
+ return { path: validatedPath, files, timestamp: new Date().toISOString() };
179
256
  }
180
257
  catch (error) {
181
258
  throw new Error(`List directory failed: ${error instanceof Error ? error.message : String(error)}`);
@@ -468,8 +545,8 @@ export class OrchestratorManager {
468
545
  async process(input) {
469
546
  const now = Date.now();
470
547
  const elapsed = now - this.lastActionTimestamp;
471
- if (elapsed < this.MIN_DELAY_MS) {
472
- const waitTime = this.MIN_DELAY_MS - elapsed;
548
+ if (elapsed < this.minDelayMs) {
549
+ const waitTime = this.minDelayMs - elapsed;
473
550
  console.error(`[Body] Rate limiting: Sleeping for ${waitTime}ms to prevent flooding...`);
474
551
  await this.sleep(waitTime);
475
552
  }
@@ -565,9 +642,12 @@ export class OrchestratorManager {
565
642
  console.log(`⚡ Max parallelism: ${Math.max(...topoResult.layers.map((l) => l.length))}\n`);
566
643
  for (let layerIndex = 0; layerIndex < topoResult.layers.length; layerIndex++) {
567
644
  const layer = topoResult.layers[layerIndex];
568
- console.log(`\n📍 Layer ${layerIndex + 1}: Executing ${layer.length} task(s) in parallel`);
645
+ console.log(`\n📍 Layer ${layerIndex + 1}: Executing ${layer.length} task(s)`);
569
646
  console.log(` Tasks: [${layer.join(', ')}]`);
570
- const layerPromises = layer.map(async (taskId) => {
647
+ // 🔧 Use concurrency limit to prevent resource exhaustion
648
+ const concurrentLimit = Math.min(layer.length, this.MAX_CONCURRENT_TASKS);
649
+ console.log(` Concurrency limit: ${concurrentLimit}/${this.MAX_CONCURRENT_TASKS}`);
650
+ const layerTaskFunctions = layer.map((taskId) => async () => {
571
651
  const task = taskMap.get(taskId);
572
652
  const dependencies = task.dependencies.map(d => taskResults.find(r => r.taskId === d));
573
653
  const failedDep = dependencies.find(d => d?.status === 'failed');
@@ -600,7 +680,8 @@ export class OrchestratorManager {
600
680
  }
601
681
  return this.executeTask(task, taskOutputs, errors);
602
682
  });
603
- const layerResults = await Promise.all(layerPromises);
683
+ // 🔧 Execute with controlled concurrency instead of Promise.all
684
+ const layerResults = await this.executeWithConcurrencyLimit(layerTaskFunctions, concurrentLimit);
604
685
  for (const result of layerResults) {
605
686
  taskResults.push(result);
606
687
  if (result.status === 'completed' && result.result !== undefined) {
@@ -650,8 +731,8 @@ export class OrchestratorManager {
650
731
  }
651
732
  async executeTask(task, taskOutputs, errors) {
652
733
  const startTime = new Date();
653
- const maxRetries = task.retryCount || 0;
654
- const retryDelay = task.retryDelay || 1000;
734
+ let maxRetries = task.retryCount || 0; // 🔧 Use let to allow modification
735
+ let retryDelay = task.retryDelay || 1000; // 🔧 Use let to allow modification
655
736
  let retries = 0;
656
737
  let repairAttempts = 0; // Guard against infinite repair loops
657
738
  let currentInput = task.toolInput; // Allow modification
@@ -728,6 +809,13 @@ export class OrchestratorManager {
728
809
  resolvedInput = this.resolveInput(currentInput, taskOutputs);
729
810
  // continue; // Let it fall through to retry logic
730
811
  }
812
+ // 🔧 Use custom backoff from recovery action if provided
813
+ if (recovery.backoffMs) {
814
+ retryDelay = recovery.backoffMs;
815
+ }
816
+ if (recovery.maxRetries !== undefined) {
817
+ maxRetries = Math.max(maxRetries, recovery.maxRetries);
818
+ }
731
819
  }
732
820
  }
733
821
  retries++;
@@ -821,11 +909,32 @@ export class OrchestratorManager {
821
909
  if (parts.length === 1) {
822
910
  return output;
823
911
  }
912
+ // 🔧 Prevent circular reference with depth limit and visited set
913
+ const MAX_DEPTH = 20;
914
+ const visited = new Set();
824
915
  let current = output;
825
916
  for (let i = 1; i < parts.length; i++) {
826
- if (current && (typeof current === 'object' || typeof current === 'string')) {
917
+ // Check depth limit
918
+ if (i > MAX_DEPTH) {
919
+ console.warn(`[Orchestrator] Placeholder depth exceeded: ${placeholder}`);
920
+ return undefined;
921
+ }
922
+ if (current && typeof current === 'object' && current !== null) {
923
+ // Check for circular reference
924
+ if (visited.has(current)) {
925
+ console.warn(`[Orchestrator] Circular reference detected in: ${placeholder}`);
926
+ return undefined;
927
+ }
928
+ visited.add(current);
827
929
  current = current[parts[i]];
828
930
  }
931
+ else if (typeof current === 'string') {
932
+ // For string types, try to access as array (for backwards compatibility)
933
+ current = current[parseInt(parts[i])];
934
+ if (current === undefined) {
935
+ return undefined;
936
+ }
937
+ }
829
938
  else {
830
939
  return undefined;
831
940
  }
@@ -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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"}
@@ -3,11 +3,36 @@ export declare class SequentialThinkingManager {
3
3
  private sessions;
4
4
  private lastSessionId;
5
5
  private readonly storagePath;
6
+ private readonly backupPath;
6
7
  private initialized;
7
8
  private lastActionTimestamp;
8
- private readonly MIN_DELAY_MS;
9
+ private minDelayMs;
9
10
  private mutex;
10
- constructor();
11
+ private cleanupInterval;
12
+ constructor(config?: {
13
+ minDelayMs?: number;
14
+ });
15
+ /**
16
+ * 🔧 Set rate limit delay dynamically
17
+ */
18
+ setRateLimit(delayMs: number): void;
19
+ /**
20
+ * 🔧 Get current rate limit
21
+ */
22
+ getRateLimit(): number;
23
+ /**
24
+ * 🔧 Periodic cleanup of expired sessions
25
+ * Runs every hour to remove stale sessions and prevent memory leaks
26
+ */
27
+ private startPeriodicCleanup;
28
+ /**
29
+ * 🔧 Perform cleanup of expired sessions
30
+ */
31
+ private performCleanup;
32
+ /**
33
+ * 🔧 Cleanup resources when shutting down
34
+ */
35
+ dispose(): Promise<void>;
11
36
  private sleep;
12
37
  private _initStorage;
13
38
  private initStorage;
@@ -1 +1 @@
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"}
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,CAKb;IACH,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAAa;IAExC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,eAAe,CAA+B;gBAE1C,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAU5C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOnC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;OAEG;YACW,cAAc;IAqB5B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,OAAO,CAAC,KAAK;YAIC,YAAY;YAuEZ,WAAW;YAIX,cAAc;YAsBd,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"}
@@ -10,16 +10,87 @@ import { BrainInputSchema } from '../schemas/brain.schema.js';
10
10
  export class SequentialThinkingManager {
11
11
  sessions = new LRUCache({
12
12
  max: 100,
13
- ttl: 1000 * 60 * 60 * 24 // 24 hours
13
+ ttl: 1000 * 60 * 60 * 24, // 24 hours
14
+ updateAgeOnGet: true, // Update age when accessing
15
+ updateAgeOnHas: true // Update age when checking existence
14
16
  });
15
17
  lastSessionId = null;
16
18
  storagePath;
19
+ backupPath; // 🔧 Backup path for recovery
17
20
  initialized = false;
18
21
  lastActionTimestamp = 0;
19
- MIN_DELAY_MS = 500;
22
+ // 🔧 Configurable rate limiting
23
+ minDelayMs = 500; // Default 500ms, configurable via setter
20
24
  mutex = new Mutex();
21
- constructor() {
25
+ cleanupInterval = null; // 🔧 Cleanup timer
26
+ constructor(config) {
22
27
  this.storagePath = path.join(os.homedir(), '.mathinking', 'sessions.json');
28
+ this.backupPath = path.join(os.homedir(), '.mathinking', 'sessions.backup.json');
29
+ // 🔧 Allow custom rate limit via config
30
+ if (config?.minDelayMs !== undefined) {
31
+ this.minDelayMs = config.minDelayMs;
32
+ }
33
+ this.startPeriodicCleanup();
34
+ }
35
+ /**
36
+ * 🔧 Set rate limit delay dynamically
37
+ */
38
+ setRateLimit(delayMs) {
39
+ if (delayMs < 0) {
40
+ throw new Error('Rate limit delay must be non-negative');
41
+ }
42
+ this.minDelayMs = delayMs;
43
+ }
44
+ /**
45
+ * 🔧 Get current rate limit
46
+ */
47
+ getRateLimit() {
48
+ return this.minDelayMs;
49
+ }
50
+ /**
51
+ * 🔧 Periodic cleanup of expired sessions
52
+ * Runs every hour to remove stale sessions and prevent memory leaks
53
+ */
54
+ startPeriodicCleanup() {
55
+ // Clean every hour (3600000 ms)
56
+ this.cleanupInterval = setInterval(() => {
57
+ this.performCleanup();
58
+ }, 3600000);
59
+ }
60
+ /**
61
+ * 🔧 Perform cleanup of expired sessions
62
+ */
63
+ async performCleanup() {
64
+ try {
65
+ const beforeSize = this.sessions.size;
66
+ // LRU Cache automatically removes expired entries on access
67
+ // Force cleanup by calling purge (if available) or by checking entries
68
+ for (const [key, value] of this.sessions.entries()) {
69
+ const age = Date.now() - new Date(value.updatedAt).getTime();
70
+ if (age > 1000 * 60 * 60 * 24) { // 24 hours
71
+ this.sessions.delete(key);
72
+ }
73
+ }
74
+ const afterSize = this.sessions.size;
75
+ if (beforeSize !== afterSize) {
76
+ console.log(`[Brain] Cleanup: Removed ${beforeSize - afterSize} expired sessions`);
77
+ await this.saveToStorage();
78
+ }
79
+ }
80
+ catch (error) {
81
+ console.error('[Brain] Cleanup error:', error);
82
+ }
83
+ }
84
+ /**
85
+ * 🔧 Cleanup resources when shutting down
86
+ */
87
+ async dispose() {
88
+ if (this.cleanupInterval) {
89
+ clearInterval(this.cleanupInterval);
90
+ this.cleanupInterval = null;
91
+ }
92
+ await this.performCleanup();
93
+ await this.saveToStorage();
23
94
  }
24
95
  sleep(ms) {
25
96
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -30,15 +101,67 @@ export class SequentialThinkingManager {
30
101
  try {
31
102
  const dir = path.dirname(this.storagePath);
32
103
  await fs.mkdir(dir, { recursive: true });
33
- const data = await fs.readFile(this.storagePath, 'utf8');
34
- const savedSessions = JSON.parse(data);
104
+ // 🔧 Try loading from main storage first
105
+ let data = '';
106
+ let useBackup = false;
107
+ try {
108
+ data = await fs.readFile(this.storagePath, 'utf8');
109
+ }
110
+ catch (primaryError) {
111
+ // Primary storage failed, try backup
112
+ try {
113
+ console.log('[Brain] Primary storage not found, trying backup...');
114
+ data = await fs.readFile(this.backupPath, 'utf8');
115
+ useBackup = true;
116
+ }
117
+ catch (backupError) {
118
+ // Backup also failed, start fresh
119
+ console.log('[Brain] No existing storage found, starting fresh');
120
+ this.initialized = true;
121
+ return;
122
+ }
123
+ }
124
+ // 🔧 Validate JSON before parsing
125
+ let savedSessions;
126
+ try {
127
+ savedSessions = JSON.parse(data);
128
+ }
129
+ catch (parseError) {
130
+ console.error('[Brain] Failed to parse storage JSON:', parseError);
131
+ if (useBackup) {
132
+ throw new Error('Both primary and backup storage are corrupted');
133
+ }
134
+ // Try loading from backup if primary parsing failed
135
+ try {
136
+ console.log('[Brain] Primary storage corrupted, trying backup...');
137
+ data = await fs.readFile(this.backupPath, 'utf8');
138
+ savedSessions = JSON.parse(data);
139
+ }
140
+ catch {
141
+ throw new Error('All storage files are corrupted');
142
+ }
143
+ }
144
+ // 🔧 Validate session structure
145
+ let validCount = 0;
35
146
  for (const [id, session] of Object.entries(savedSessions)) {
36
- this.sessions.set(id, session);
37
- this.lastSessionId = id;
147
+ // Basic validation: check if session has required fields
148
+ if (typeof session === 'object' &&
149
+ session !== null &&
150
+ 'sessionId' in session &&
151
+ 'thoughtHistory' in session &&
152
+ Array.isArray(session.thoughtHistory)) {
153
+ this.sessions.set(id, session);
154
+ this.lastSessionId = id;
155
+ validCount++;
156
+ }
157
+ else {
158
+ console.warn(`[Brain] Skipping invalid session: ${id}`);
159
+ }
38
160
  }
161
+ console.log(`[Brain] Loaded ${validCount} valid sessions from storage`);
39
162
  }
40
163
  catch (error) {
41
- // Ignore error if file doesn't exist
164
+ console.error('[Brain] Storage initialization error:', error);
42
165
  }
43
166
  finally {
44
167
  this.initialized = true;
@@ -54,7 +177,15 @@ export class SequentialThinkingManager {
54
177
  entries[key] = value;
55
178
  }
56
179
  const data = JSON.stringify(entries, null, 2);
180
+ // 🔧 Save to primary storage
57
181
  await fs.writeFile(this.storagePath, data, 'utf8');
182
+ // 🔧 Create backup after successful primary save
183
+ try {
184
+ await fs.writeFile(this.backupPath, data, 'utf8');
185
+ }
186
+ catch (backupError) {
187
+ console.warn('[Brain] Backup save failed (primary is safe):', backupError);
188
+ }
58
189
  }
59
190
  catch (error) {
60
191
  console.error('[Brain] Save failed:', error);
@@ -81,7 +212,7 @@ export class SequentialThinkingManager {
81
212
  const validatedInput = validationResult.data;
82
213
  let innerResult;
83
214
  const now = Date.now();
84
- if (now - this.lastActionTimestamp < this.MIN_DELAY_MS) {
215
+ if (now - this.lastActionTimestamp < this.minDelayMs) {
85
216
  await this.sleep(200);
86
217
  }
87
218
  this.lastActionTimestamp = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"sequential-thinking.js","sourceRoot":"","sources":["../../src/tools/sequential-thinking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAc9D,MAAM,OAAO,yBAAyB;IAC5B,QAAQ,GAAG,IAAI,QAAQ,CAA0B;QACvD,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW;KACrC,CAAC,CAAC;IACK,aAAa,GAAkB,IAAI,CAAC;IAC3B,WAAW,CAAS;IAC7B,WAAW,GAAY,KAAK,CAAC;IAC7B,mBAAmB,GAAW,CAAC,CAAC;IACvB,YAAY,GAAG,GAAG,CAAC;IAC5B,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAE5B;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAiB,KAAK;QAC/C,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK;YAAE,OAAO;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAA0B,CAAC,CAAC;gBAClD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qCAAqC;QACvC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAiB,KAAK;QAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAoC,EAAE,CAAC;YACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAc;QAC1B,IAAI,sBAAsB,GAAmC,IAAI,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAE/B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,CAAC;oBACd,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,aAA8B;oBACtC,OAAO,EAAE,qBAAqB,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE;iBAC/D,CAAC;YACJ,CAAC;YACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAA+B,CAAC;YAExE,IAAI,WAAqC,CAAC;YAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEtC,oCAAoC;YACpC,IAAI,cAAc,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBACjD,sBAAsB,GAAG,cAAc,CAAC;gBACxC,oCAAoC;gBACpC,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE;oBACzC,WAAW,EAAE,CAAC;oBACd,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,aAA8B;oBACtC,OAAO,EAAE,wBAAwB;iBACpC,CAAC;YACN,CAAC;YAED,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,eAAe;oBAAE,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBAC7E,KAAK,aAAa;oBAAE,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACzE,KAAK,eAAe;oBAAE,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBAC7E,KAAK,kBAAkB;oBAAE,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACnF,KAAK,kBAAkB;oBAAE,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACnF,KAAK,eAAe;oBAAE,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBAC7E,KAAK,gBAAgB;oBAAE,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBAC/E,KAAK,gBAAgB;oBAAE,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBAC/E,KAAK,mBAAmB;oBAAE,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACrF,KAAK,UAAU;oBAAE,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACpE,qCAAqC;gBACrC,KAAK,SAAS;oBAAE,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBAClE,KAAK,QAAQ;oBAAE,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACtE,KAAK,WAAW;oBAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACtE,KAAK,UAAU;oBAAE,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACpE,KAAK,aAAa;oBAAE,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBAAC,MAAM;gBACzE,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,WAAW,CAAC,OAAO;gBAAE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACrD,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,sBAAsB,EAAE,CAAC;YACzB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;YAC9E,gFAAgF;YAChF,0FAA0F;YAC1F,iCAAiC;YACjC,OAAO,gBAAgB,CAAC;QAC5B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAIO,SAAS,CAAC,KAA8B;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAE7E,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,OAAO,GAAgB;YACzB,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,kBAAkB,KAAK,CAAC,OAAO,EAAE;YAC1C,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,EAAE;SACjB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,OAAO,EAAE,+DAA+D;SAC3E,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,KAA8B;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAG7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;QACxD,MAAM,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAGtD,MAAM,IAAI,GAAkB;YACxB,MAAM;YACN,IAAI,EAAE,aAAa,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;YAC9C,KAAK,EAAE;gBACH;oBACI,EAAE,EAAE,eAAe;oBACnB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;oBAC9C,YAAY,EAAE,EAAE;iBACnB;gBACD;oBACI,EAAE,EAAE,cAAc;oBAClB,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;oBAC/C,YAAY,EAAE,EAAE;oBAChB,KAAK,EAAE,uCAAuC,CAAC,WAAW;iBAC7D;gBACD;oBACI,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,EAAE,GAAG,EAAE,aAAa,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE;oBAC3E,YAAY,EAAE,CAAC,eAAe,CAAC;iBAClC;aACJ;SACJ,CAAC;QAEF,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,OAAO,GAAgB;YACzB,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,iDAAiD,KAAK,GAAG;YAClE,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,EAAE,MAAM,EAAE;SACvB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,4DAA4D;SACxE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,KAA8B;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAE7E,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAGvF,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,cAAc,GAAgB;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,0EAA0E,KAAK,CAAC,OAAO,EAAE;YAClG,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,GAAG;SAClB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAI5C,IAAI,aAAa,GAA8B,SAAS,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,aAAa,GAAG;gBACZ,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,CAAC;wBACJ,EAAE,EAAE,UAAU;wBACd,IAAI,EAAE,eAAe;wBACrB,QAAQ,EAAE,MAAM;wBAChB,SAAS,EAAE,EAAE,GAAG,EAAE,uDAAuD,EAAE;wBAC3E,YAAY,EAAE,EAAE;qBACnB,CAAC;aACL,CAAC;QACN,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,6CAA6C;YACtD,aAAa,EAAE,aAAa,CAAC,oBAAoB;SACpD,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,KAA8B;QACjD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAoB;YAC/B,SAAS;YACT,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,sBAAsB;YAClE,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS;YACT,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,wDAAwD;SACpE,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,KAA8B;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAE7E,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,kBAAkB;YACpD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,qBAAqB;YACzD,QAAQ,EAAE,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACrE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB;SACjD,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,OAAO,EAAE,kBAAkB,OAAO,CAAC,WAAW,GAAG;SACpD,CAAC;IACJ,CAAC;IAIO,eAAe,CAAC,KAA8B;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAM7E,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,4JAA4J;YACrK,oBAAoB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;SACtE,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,KAA8B;QAEpD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;YAChC,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,sHAAsH;YAC/H,oBAAoB,EAAE,CAAC,gBAAgB,CAAC;SAC3C,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,KAA8B;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAE7E,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAS,CAAC;QAEpF,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAS,CAAC;QAE7E,OAAO,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,OAAO,GAAgB;YACzB,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,oBAAoB,QAAQ,CAAC,WAAW,IAAI,SAAS,MAAM,QAAQ,CAAC,OAAO,EAAE;YACtF,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,UAAU,EAAE,EAAE;SACjB,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,OAAO,EAAE,mBAAmB,QAAQ,CAAC,WAAW,mBAAmB;SACtE,CAAC;IACJ,CAAC;IAIO,OAAO,CAAC,KAA8B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAE3E,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,OAAO,GAAgB;YACzB,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,cAAc,KAAK,CAAC,OAAO,EAAE;YACtC,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE;SACvD,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGrC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC7C,YAAY,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,gBAAgB,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACrH,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,OAAO,EAAE,kDAAkD;SAC9D,CAAC;IACJ,CAAC;IAIO,KAAK,CAAC,iBAAiB,CAAC,KAA8B;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAEjE,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC3F,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAG/E,IAAI,IAAI,GAAyB,IAAI,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACzE,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;oBAClE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;oBACnE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YAEP,IAAI,GAAG;gBACH,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE;gBAC1B,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;aAClH,CAAC;QACP,CAAC;QAGD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAGvF,MAAM,IAAI,CAAC,OAAO,CAAC;YACf,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,UAAU,CAAC,OAAO;gBACvB,CAAC,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,IAAI,IAAI,CAAC,EAAE;gBACjG,CAAC,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC,EAAE;YAC3F,eAAe,EAAE,UAAU;SAC9B,CAAC,CAAC;QAEH,OAAO;YACH,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,aAAa,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,wBAAwB;YACvF,eAAe,EAAE,UAAU,CAAC,MAAM;SACrC,CAAC;IACJ,CAAC;IAIO,aAAa,CAAC,SAAiB,EAAE,OAAe;QACpD,OAAO;YACH,OAAO,EAAE,KAAK;YACd,SAAS;YACT,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,UAAU,OAAO,EAAE;SAC/B,CAAC;IACN,CAAC;IAEO,UAAU,CAAC,EAAW;QAC1B,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAEO,gBAAgB,CAAC,OAAwB;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxH,CAAC;IAGO,YAAY,CAAC,KAA8B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/E,aAAa,CAAC,KAA8B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAChH,aAAa,CAAC,KAA8B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAClH,gBAAgB,CAAC,KAA8B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACvH,QAAQ,CAAC,KAA8B;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAG,OAAO,EAAE,CAAC;YACT,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC;YACxC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IACO,UAAU,CAAC,KAA8B;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACjE,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,mBAAmB;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;SACzC,CAAC;IACN,CAAC;CACF;AACL,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"sequential-thinking.js","sourceRoot":"","sources":["../../src/tools/sequential-thinking.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,28 @@ export interface RecoveryAction {
3
3
  type: 'retry' | 'skip' | 'modify_input' | 'run_command';
4
4
  payload?: any;
5
5
  description: string;
6
+ backoffMs?: number;
7
+ maxRetries?: number;
6
8
  }
7
9
  export interface ResilienceStrategy {
8
10
  name: string;
9
11
  matches(error: Error, task: TaskNode): boolean;
10
- getRecoveryAction(error: Error, task: TaskNode): Promise<RecoveryAction>;
12
+ getRecoveryAction(error: Error, task: TaskNode, manager: ResilienceManager): Promise<RecoveryAction>;
11
13
  }
12
14
  export declare class ResilienceManager {
13
15
  private strategies;
14
16
  private replanHandler;
17
+ private readonly ALLOWED_ROOTS;
15
18
  constructor();
19
+ /**
20
+ * 🔒 Security: Validate path to prevent directory traversal attacks
21
+ * Ensures that auto-mkdir only creates directories within allowed roots
22
+ */
23
+ private validatePath;
24
+ /**
25
+ * 🔒 Security: Safely escape shell arguments to prevent command injection
26
+ */
27
+ private escapeShellArg;
16
28
  setReplanHandler(handler: (error: string, task: TaskNode) => Promise<any>): void;
17
29
  requestStrategicReplan(error: string, task: TaskNode): Promise<any>;
18
30
  registerStrategy(strategy: ResilienceStrategy): void;
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../../src/utils/resilience.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;IACxD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC1E;AAGD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAAkE;;IAMvF,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC;IAInE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAOzE,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB;IAIvC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAS5E,OAAO,CAAC,yBAAyB;CAqElC;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
1
+ {"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../../src/utils/resilience.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;IACxD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtG;AAGD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAAkE;IAGvF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;;IAMF;;;OAGG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC;IAInE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAOzE,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB;IAIvC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAS5E,OAAO,CAAC,yBAAyB;CA4ElC;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -1,10 +1,43 @@
1
1
  import * as path from 'path';
2
+ import * as os from 'os';
2
3
  export class ResilienceManager {
3
4
  strategies = [];
4
5
  replanHandler = null;
6
+ // 🔒 Security: Allowed directory roots for auto-mkdir
7
+ ALLOWED_ROOTS = [
8
+ process.cwd(),
9
+ path.join(os.homedir(), 'tmp', 'mathinking')
10
+ ];
5
11
  constructor() {
6
12
  this.registerDefaultStrategies();
7
13
  }
14
+ /**
15
+ * 🔒 Security: Validate path to prevent directory traversal attacks
16
+ * Ensures that auto-mkdir only creates directories within allowed roots
17
+ */
18
+ validatePath(inputPath) {
19
+ // Expand ~ to home directory
20
+ const expandedPath = inputPath.replace(/^~/, os.homedir());
21
+ // Resolve to absolute path (also normalizes ../ etc)
22
+ const resolvedPath = path.resolve(expandedPath);
23
+ // Check if path is within allowed roots
24
+ const isAllowed = this.ALLOWED_ROOTS.some(root => {
25
+ const resolvedRoot = path.resolve(root);
26
+ return resolvedPath.startsWith(resolvedRoot);
27
+ });
28
+ if (!isAllowed) {
29
+ throw new Error(`Security: Path "${resolvedPath}" is outside allowed directories: ` +
30
+ `[${this.ALLOWED_ROOTS.join(', ')}]`);
31
+ }
32
+ return resolvedPath;
33
+ }
34
+ /**
35
+ * 🔒 Security: Safely escape shell arguments to prevent command injection
36
+ */
37
+ escapeShellArg(arg) {
38
+ // Use single quotes and escape existing single quotes
39
+ return `'${arg.replace(/'/g, "'\\''")}'`;
40
+ }
8
41
  setReplanHandler(handler) {
9
42
  this.replanHandler = handler;
10
43
  }
@@ -20,7 +53,7 @@ export class ResilienceManager {
20
53
  async diagnose(error, task) {
21
54
  for (const strategy of this.strategies) {
22
55
  if (strategy.matches(error, task)) {
23
- return strategy.getRecoveryAction(error, task);
56
+ return strategy.getRecoveryAction(error, task, this);
24
57
  }
25
58
  }
26
59
  return null;
@@ -33,15 +66,17 @@ export class ResilienceManager {
33
66
  error.message.includes('ENOENT') &&
34
67
  error.message.includes('no such file or directory'));
35
68
  },
36
- getRecoveryAction: async (error, task) => {
69
+ getRecoveryAction: async (error, task, manager) => {
37
70
  const filePath = (task.toolInput?.file_path || task.toolInput?.path);
38
71
  if (!filePath)
39
72
  return { type: 'retry', description: 'Retry' }; // Should not happen
40
73
  const dir = path.resolve(path.dirname(filePath));
74
+ const validatedDir = manager.validatePath(dir); // 🔒 Security validation
75
+ const escapedDir = manager.escapeShellArg(validatedDir); // 🔒 Escape shell arg
41
76
  return {
42
77
  type: 'run_command',
43
- payload: { command: `mkdir -p "${dir}"` },
44
- description: `Automatically creating missing directory: ${dir}`
78
+ payload: { command: `mkdir -p ${escapedDir}` },
79
+ description: `Automatically creating missing directory: ${validatedDir}`
45
80
  };
46
81
  }
47
82
  });
@@ -52,7 +87,7 @@ export class ResilienceManager {
52
87
  (task.toolInput?.command).includes('npm install') &&
53
88
  (error.message.includes('code 1') || error.message.includes('command failed')));
54
89
  },
55
- getRecoveryAction: async (error, task) => {
90
+ getRecoveryAction: async (error, task, _manager) => {
56
91
  const cmd = task.toolInput?.command;
57
92
  if (!cmd.includes('--force') && !cmd.includes('--legacy-peer-deps')) {
58
93
  return {
@@ -69,10 +104,14 @@ export class ResilienceManager {
69
104
  matches: (error) => {
70
105
  return error.message.includes('ETIMEDOUT') || error.message.includes('fetch failed');
71
106
  },
72
- getRecoveryAction: async () => {
107
+ getRecoveryAction: async (error, _task, _manager) => {
108
+ // 🔧 Calculate exponential backoff based on retry count
109
+ // The orchestrator will use this to delay before retrying
73
110
  return {
74
111
  type: 'retry',
75
- description: 'Network error detected. Retrying...'
112
+ description: 'Network error detected. Retrying with exponential backoff...',
113
+ backoffMs: 2000, // Start with 2 seconds
114
+ maxRetries: 3 // Maximum 3 retries for network errors
76
115
  };
77
116
  }
78
117
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/utils/resilience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/utils/resilience.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gotza02/mathinking",
3
- "version": "2.9.5",
3
+ "version": "3.0.0",
4
4
  "description": "MCP Server with sequential thinking (The Brain) and orchestrator (The Body) capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",