@gotza02/mathinking 2.9.4 → 2.9.6

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 +7 -46
  28. package/dist/tools/orchestrator.d.ts.map +1 -1
  29. package/dist/tools/orchestrator.js +178 -181
  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 +11 -5
  50. package/dist/utils/resilience.d.ts.map +1 -1
  51. package/dist/utils/resilience.js +42 -21
  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":"memory.js","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class Mutex {
2
+ private mutex;
3
+ lock(): PromiseLike<() => void>;
4
+ dispatch<T>(fn: (() => T) | (() => PromiseLike<T>)): Promise<T>;
5
+ }
6
+ //# sourceMappingURL=mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AACA,qBAAa,KAAK;IACd,OAAO,CAAC,KAAK,CAAqB;IAElC,IAAI,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;IAYzB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAQtE"}
@@ -0,0 +1,22 @@
1
+ export class Mutex {
2
+ mutex = Promise.resolve();
3
+ lock() {
4
+ let begin = (unlock) => { };
5
+ this.mutex = this.mutex.then(() => {
6
+ return new Promise(begin);
7
+ });
8
+ return new Promise((res) => {
9
+ begin = res;
10
+ });
11
+ }
12
+ async dispatch(fn) {
13
+ const unlock = await this.lock();
14
+ try {
15
+ return await Promise.resolve(fn());
16
+ }
17
+ finally {
18
+ unlock();
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,KAAK;IACN,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAElC,IAAI;QACF,IAAI,KAAK,GAAiC,CAAC,MAAM,EAAE,EAAE,GAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,KAAK,GAAG,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,EAAsC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;CACF"}
@@ -7,16 +7,22 @@ export interface RecoveryAction {
7
7
  export interface ResilienceStrategy {
8
8
  name: string;
9
9
  matches(error: Error, task: TaskNode): boolean;
10
- getRecoveryAction(error: Error, task: TaskNode): Promise<RecoveryAction>;
10
+ getRecoveryAction(error: Error, task: TaskNode, manager: ResilienceManager): Promise<RecoveryAction>;
11
11
  }
12
- /**
13
- * Resilience Manager (The Immune System)
14
- * Diagnoses errors and prescribes fixes.
15
- */
16
12
  export declare class ResilienceManager {
17
13
  private strategies;
18
14
  private replanHandler;
15
+ private readonly ALLOWED_ROOTS;
19
16
  constructor();
17
+ /**
18
+ * 🔒 Security: Validate path to prevent directory traversal attacks
19
+ * Ensures that auto-mkdir only creates directories within allowed roots
20
+ */
21
+ private validatePath;
22
+ /**
23
+ * 🔒 Security: Safely escape shell arguments to prevent command injection
24
+ */
25
+ private escapeShellArg;
20
26
  setReplanHandler(handler: (error: string, task: TaskNode) => Promise<any>): void;
21
27
  requestStrategicReplan(error: string, task: TaskNode): Promise<any>;
22
28
  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;AAED;;;GAGG;AACH,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;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;CAwElC;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -1,14 +1,43 @@
1
1
  import * as path from 'path';
2
- /**
3
- * Resilience Manager (The Immune System)
4
- * Diagnoses errors and prescribes fixes.
5
- */
2
+ import * as os from 'os';
6
3
  export class ResilienceManager {
7
4
  strategies = [];
8
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
+ ];
9
11
  constructor() {
10
12
  this.registerDefaultStrategies();
11
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
+ }
12
41
  setReplanHandler(handler) {
13
42
  this.replanHandler = handler;
14
43
  }
@@ -24,14 +53,12 @@ export class ResilienceManager {
24
53
  async diagnose(error, task) {
25
54
  for (const strategy of this.strategies) {
26
55
  if (strategy.matches(error, task)) {
27
- return strategy.getRecoveryAction(error, task);
56
+ return strategy.getRecoveryAction(error, task, this);
28
57
  }
29
58
  }
30
59
  return null;
31
60
  }
32
61
  registerDefaultStrategies() {
33
- // 1. Missing Directory Strategy
34
- // Logic: If write_file fails with ENOENT, try creating the directory first.
35
62
  this.registerStrategy({
36
63
  name: 'Auto-Mkdir',
37
64
  matches: (error, task) => {
@@ -39,25 +66,20 @@ export class ResilienceManager {
39
66
  error.message.includes('ENOENT') &&
40
67
  error.message.includes('no such file or directory'));
41
68
  },
42
- getRecoveryAction: async (error, task) => {
69
+ getRecoveryAction: async (error, task, manager) => {
43
70
  const filePath = (task.toolInput?.file_path || task.toolInput?.path);
44
71
  if (!filePath)
45
72
  return { type: 'retry', description: 'Retry' }; // Should not happen
46
- const dir = path.dirname(filePath);
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
47
76
  return {
48
77
  type: 'run_command',
49
- payload: { command: `mkdir -p "${dir}"` },
50
- description: `Automatically creating missing directory: ${dir}`
78
+ payload: { command: `mkdir -p ${escapedDir}` },
79
+ description: `Automatically creating missing directory: ${validatedDir}`
51
80
  };
52
81
  }
53
82
  });
54
- // 2. Missing File Read Strategy
55
- // Logic: If read_file fails, create an empty file if it's likely a config/log, or just fail cleanly.
56
- // For now, let's assume if we try to read a non-existent file in a test/setup context, we might want to create it.
57
- // But safely, let's just Log and Skip if it's non-critical.
58
- // Actually, a better smart behavior: return empty string instead of crashing, if configured.
59
- // For this demo, let's fix "NPM Missing" errors.
60
- // 2. NPM Install Missing
61
83
  this.registerStrategy({
62
84
  name: 'NPM-Fix',
63
85
  matches: (error, task) => {
@@ -65,7 +87,7 @@ export class ResilienceManager {
65
87
  (task.toolInput?.command).includes('npm install') &&
66
88
  (error.message.includes('code 1') || error.message.includes('command failed')));
67
89
  },
68
- getRecoveryAction: async (error, task) => {
90
+ getRecoveryAction: async (error, task, _manager) => {
69
91
  const cmd = task.toolInput?.command;
70
92
  if (!cmd.includes('--force') && !cmd.includes('--legacy-peer-deps')) {
71
93
  return {
@@ -77,13 +99,12 @@ export class ResilienceManager {
77
99
  return { type: 'retry', description: 'Retry' };
78
100
  }
79
101
  });
80
- // 3. Network Backoff
81
102
  this.registerStrategy({
82
103
  name: 'Network-Backoff',
83
104
  matches: (error) => {
84
105
  return error.message.includes('ETIMEDOUT') || error.message.includes('fetch failed');
85
106
  },
86
- getRecoveryAction: async () => {
107
+ getRecoveryAction: async (_error, _task, _manager) => {
87
108
  return {
88
109
  type: 'retry',
89
110
  description: 'Network error detected. Retrying...'
@@ -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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"}
@@ -1,17 +1,9 @@
1
- export interface CacheEntry<T> {
2
- value: T;
3
- expiry: number;
4
- key: string;
5
- }
6
1
  export declare class ToolCache {
7
2
  private cache;
8
- private readonly defaultTTL;
9
- private readonly maxSize;
10
- constructor(defaultTTLMs?: number, maxSize?: number);
11
- generateKey(toolName: string, input: any): string;
12
- get<T>(toolName: string, input: any): T | null;
13
- set(toolName: string, input: any, value: any, ttlMs?: number): void;
14
- clear(): void;
3
+ constructor(maxSize?: number, ttl?: number);
4
+ get(toolName: string, input: any): any | undefined;
5
+ set(toolName: string, input: any, output: any): void;
6
+ private generateKey;
15
7
  }
16
8
  export declare const toolCache: ToolCache;
17
9
  //# sourceMappingURL=tool-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../src/utils/tool-cache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,YAAY,GAAE,MAAsB,EAAE,OAAO,GAAE,MAAY;IAKvE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM;IAmBjD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI;IAc9C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBnE,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
1
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../src/utils/tool-cache.ts"],"names":[],"mappings":"AAGA,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAwB;gBAEzB,OAAO,GAAE,MAAW,EAAE,GAAG,GAAE,MAAsB;IAO7D,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;IAKlD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAKpD,OAAO,CAAC,WAAW;CAGpB;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -1,56 +1,22 @@
1
+ import { LRUCache } from 'lru-cache';
1
2
  export class ToolCache {
2
- cache = new Map();
3
- defaultTTL;
4
- maxSize;
5
- constructor(defaultTTLMs = 1000 * 60 * 5, maxSize = 100) {
6
- this.defaultTTL = defaultTTLMs;
7
- this.maxSize = maxSize;
8
- }
9
- generateKey(toolName, input) {
10
- // Deterministic key generation
11
- // Sort object keys to ensure {a:1, b:2} === {b:2, a:1}
12
- const sortKeys = (obj) => {
13
- if (Array.isArray(obj))
14
- return obj.map(sortKeys);
15
- if (typeof obj === 'object' && obj !== null) {
16
- return Object.keys(obj)
17
- .sort()
18
- .reduce((acc, key) => {
19
- acc[key] = sortKeys(obj[key]);
20
- return acc;
21
- }, {});
22
- }
23
- return obj;
24
- };
25
- return `${toolName}:${JSON.stringify(sortKeys(input))}`;
3
+ cache;
4
+ constructor(maxSize = 50, ttl = 1000 * 60 * 5) {
5
+ this.cache = new LRUCache({
6
+ max: maxSize,
7
+ ttl: ttl
8
+ });
26
9
  }
27
10
  get(toolName, input) {
28
11
  const key = this.generateKey(toolName, input);
29
- const entry = this.cache.get(key);
30
- if (!entry)
31
- return null;
32
- if (Date.now() > entry.expiry) {
33
- this.cache.delete(key);
34
- return null;
35
- }
36
- return entry.value;
12
+ return this.cache.get(key);
37
13
  }
38
- set(toolName, input, value, ttlMs) {
14
+ set(toolName, input, output) {
39
15
  const key = this.generateKey(toolName, input);
40
- // Eviction if full
41
- if (this.cache.size >= this.maxSize) {
42
- const oldestKey = this.cache.keys().next().value;
43
- if (oldestKey)
44
- this.cache.delete(oldestKey);
45
- }
46
- this.cache.set(key, {
47
- key,
48
- value,
49
- expiry: Date.now() + (ttlMs || this.defaultTTL)
50
- });
16
+ this.cache.set(key, output);
51
17
  }
52
- clear() {
53
- this.cache.clear();
18
+ generateKey(toolName, input) {
19
+ return `${toolName}:${JSON.stringify(input)}`;
54
20
  }
55
21
  }
56
22
  export const toolCache = new ToolCache();
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../src/utils/tool-cache.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,SAAS;IACZ,KAAK,GAAiC,IAAI,GAAG,EAAE,CAAC;IACvC,UAAU,CAAS;IACnB,OAAO,CAAS;IAEjC,YAAY,eAAuB,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,UAAkB,GAAG;QACrE,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,KAAU;QACtC,+BAA+B;QAC/B,uDAAuD;QACvD,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAO,EAAE;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;qBACpB,IAAI,EAAE;qBACN,MAAM,CAAC,CAAC,GAAQ,EAAE,GAAG,EAAE,EAAE;oBACxB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9B,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,GAAG,CAAI,QAAgB,EAAE,KAAU;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,KAAU,EAAE,KAAU,EAAE,KAAc;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE9C,mBAAmB;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACjD,IAAI,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,GAAG;YACH,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../src/utils/tool-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,SAAS;IACZ,KAAK,CAAwB;IAErC,YAAY,UAAkB,EAAE,EAAE,MAAc,IAAI,GAAG,EAAE,GAAG,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC;YACxB,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,KAAU;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,KAAU,EAAE,MAAW;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,KAAU;QAC9C,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -1,34 +1,13 @@
1
1
  import { VectorEntry } from '../types/index.js';
2
- /**
3
- * Vector Memory Manager (The Scholar)
4
- *
5
- * Provides semantic search capabilities.
6
- * Falls back to TF-IDF sparse vectors if transformer models cannot be loaded.
7
- */
8
2
  export declare class VectorMemoryManager {
9
3
  private storagePath;
10
4
  private entries;
11
- private embeddingModel;
5
+ private tfidf;
12
6
  private initialized;
13
- private useTransformers;
14
7
  constructor();
15
8
  private init;
16
- /**
17
- * Embed text into a vector
18
- */
19
9
  private embed;
20
- /**
21
- * Deterministic sparse hash for fallback
22
- */
23
- private sparseHash;
24
- private cosineSimilarity;
25
- /**
26
- * Add text to memory
27
- */
28
10
  add(content: string, metadata?: Record<string, any>): Promise<VectorEntry>;
29
- /**
30
- * Search memory
31
- */
32
11
  search(query: string, limit?: number): Promise<{
33
12
  item: VectorEntry;
34
13
  score: number;
@@ -1 +1 @@
1
- {"version":3,"file":"vector-memory.d.ts","sourceRoot":"","sources":["../../src/utils/vector-memory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,eAAe,CAAkB;;YAO3B,IAAI;IA2BlB;;OAEG;YACW,KAAK;IAanB;;OAEG;IACH,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBpF;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;YAejF,IAAI;CAOnB;AAED,eAAO,MAAM,YAAY,qBAA4B,CAAC"}
1
+ {"version":3,"file":"vector-memory.d.ts","sourceRoot":"","sources":["../../src/utils/vector-memory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,WAAW,CAAkB;;YAQvB,IAAI;YAoBJ,KAAK;IAUb,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuB9E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;YAkCjF,IAAI;CAOnB;AAED,eAAO,MAAM,YAAY,qBAA4B,CAAC"}
@@ -2,97 +2,40 @@ import * as fs from 'fs/promises';
2
2
  import * as path from 'path';
3
3
  import * as os from 'os';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
- /**
6
- * Vector Memory Manager (The Scholar)
7
- *
8
- * Provides semantic search capabilities.
9
- * Falls back to TF-IDF sparse vectors if transformer models cannot be loaded.
10
- */
5
+ import natural from 'natural';
11
6
  export class VectorMemoryManager {
12
7
  storagePath;
13
8
  entries = [];
14
- embeddingModel = null;
9
+ tfidf;
15
10
  initialized = false;
16
- useTransformers = false;
17
11
  constructor() {
18
12
  this.storagePath = path.join(os.homedir(), '.mathinking', 'vector_memory.json');
13
+ this.tfidf = new natural.TfIdf();
19
14
  this.init();
20
15
  }
21
16
  async init() {
22
- // Try to load entries
23
17
  try {
24
18
  const dir = path.dirname(this.storagePath);
25
19
  await fs.mkdir(dir, { recursive: true });
26
20
  const data = await fs.readFile(this.storagePath, 'utf8');
27
21
  this.entries = JSON.parse(data);
22
+ this.entries.forEach(entry => {
23
+ this.tfidf.addDocument(entry.content);
24
+ });
28
25
  }
29
26
  catch (e) {
30
27
  this.entries = [];
31
28
  }
32
- // Try to load transformers (will likely fail on mobile/termux without binaries)
33
- // We default to false here for stability in this specific environment
34
- try {
35
- // const { pipeline } = await import('@xenova/transformers');
36
- // this.embeddingModel = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2');
37
- // this.useTransformers = true;
38
- // console.log('[VectorMemory] Transformers loaded successfully.');
39
- throw new Error("Transformers disabled in this environment to prevent crashes.");
40
- }
41
- catch (e) {
42
- console.warn('[VectorMemory] Using Sparse Vector fallback (TF-IDF Lite).');
43
- this.useTransformers = false;
44
- }
45
29
  this.initialized = true;
46
30
  }
47
- /**
48
- * Embed text into a vector
49
- */
50
31
  async embed(text) {
51
- if (this.useTransformers && this.embeddingModel) {
52
- const output = await this.embeddingModel(text, { pooling: 'mean', normalize: true });
53
- return Array.from(output.data);
54
- }
55
- else {
56
- // Fallback: Sparse Vector Hashing (Simulated Semantic)
57
- // This is a placeholder. Real semantic needs a model.
58
- // We create a pseudo-vector based on character codes and simple token hashing
59
- // to verify the *architecture* works.
60
- return this.sparseHash(text, 384); // 384 dims like MiniLM
61
- }
32
+ return [];
62
33
  }
63
- /**
64
- * Deterministic sparse hash for fallback
65
- */
66
- sparseHash(text, dim) {
67
- const vector = new Array(dim).fill(0);
68
- const tokens = text.toLowerCase().split(/\W+/);
69
- for (const token of tokens) {
70
- let hash = 0;
71
- for (let i = 0; i < token.length; i++) {
72
- hash = ((hash << 5) - hash) + token.charCodeAt(i);
73
- hash |= 0;
74
- }
75
- const index = Math.abs(hash) % dim;
76
- vector[index] += 1;
77
- }
78
- // Normalize
79
- const magnitude = Math.sqrt(vector.reduce((sum, val) => sum + val * val, 0));
80
- return magnitude === 0 ? vector : vector.map(v => v / magnitude);
81
- }
82
- cosineSimilarity(a, b) {
83
- let dotProduct = 0;
84
- for (let i = 0; i < a.length; i++) {
85
- dotProduct += a[i] * b[i];
86
- }
87
- return dotProduct; // Assumes normalized vectors
88
- }
89
- /**
90
- * Add text to memory
91
- */
92
34
  async add(content, metadata = {}) {
93
35
  if (!this.initialized)
94
36
  await this.init();
95
- const vector = await this.embed(content);
37
+ this.tfidf.addDocument(content);
38
+ const vector = [];
96
39
  const entry = {
97
40
  id: uuidv4(),
98
41
  content,
@@ -104,20 +47,31 @@ export class VectorMemoryManager {
104
47
  await this.save();
105
48
  return entry;
106
49
  }
107
- /**
108
- * Search memory
109
- */
110
50
  async search(query, limit = 5) {
111
51
  if (!this.initialized)
112
52
  await this.init();
113
- const queryVector = await this.embed(query);
114
- const results = this.entries.map(entry => ({
115
- item: entry,
116
- score: this.cosineSimilarity(queryVector, entry.vector)
117
- }));
118
- return results
119
- .sort((a, b) => b.score - a.score)
120
- .slice(0, limit);
53
+ const measures = [];
54
+ this.tfidf.tfidfs(query, (i, measure) => {
55
+ measures.push({ index: i, measure });
56
+ });
57
+ if (measures.length === 0) {
58
+ console.warn(`[VectorMemory] No documents found in TF-IDF index. Entries: ${this.entries.length}`);
59
+ }
60
+ const results = measures
61
+ .sort((a, b) => b.measure - a.measure)
62
+ .slice(0, limit)
63
+ .map(m => {
64
+ if (!this.entries[m.index]) {
65
+ console.error(`Mismatch! Index ${m.index} not in entries (len: ${this.entries.length})`);
66
+ return null;
67
+ }
68
+ return {
69
+ item: this.entries[m.index],
70
+ score: m.measure
71
+ };
72
+ })
73
+ .filter(r => r !== null);
74
+ return results;
121
75
  }
122
76
  async save() {
123
77
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"vector-memory.js","sourceRoot":"","sources":["../../src/utils/vector-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector-memory.js","sourceRoot":"","sources":["../../src/utils/vector-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,MAAM,OAAO,mBAAmB;IACtB,WAAW,CAAS;IACpB,OAAO,GAAkB,EAAE,CAAC;IAC5B,KAAK,CAAgB;IACrB,WAAW,GAAY,KAAK,CAAC;IAErC;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,IAAI;QAEhB,IAAI,CAAC;YACD,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,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAGhC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAGO,KAAK,CAAC,KAAK,CAAC,IAAY;QAM7B,OAAO,EAAE,CAAC;IACb,CAAC;IAGD,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,WAAgC,EAAE;QAC3D,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAGzC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAGhC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,KAAK,GAAgB;YACvB,EAAE,EAAE,MAAM,EAAE;YACZ,OAAO;YACP,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,QAAgB,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAIzC,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;YAEpC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,+DAA+D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;aACrC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE;YACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,KAAK,yBAAyB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzF,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC3B,KAAK,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC;QACN,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAA2C,CAAC;QAEvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,mBAAmB,EAAE,CAAC"}