@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.
- package/dist/final-demo.js +0 -3
- package/dist/final-demo.js.map +1 -1
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/schemas/brain.schema.d.ts +70 -0
- package/dist/schemas/brain.schema.d.ts.map +1 -0
- package/dist/schemas/brain.schema.js +70 -0
- package/dist/schemas/brain.schema.js.map +1 -0
- package/dist/security.test.d.ts +2 -0
- package/dist/security.test.d.ts.map +1 -0
- package/dist/security.test.js +81 -0
- package/dist/security.test.js.map +1 -0
- package/dist/sse-server.js +39 -8
- package/dist/sse-server.js.map +1 -1
- package/dist/test-all.js +0 -20
- package/dist/test-all.js.map +1 -1
- package/dist/test-extended.js +0 -9
- package/dist/test-extended.js.map +1 -1
- package/dist/test-max-intelligence.js +0 -7
- package/dist/test-max-intelligence.js.map +1 -1
- package/dist/test-memory.js +0 -2
- package/dist/test-memory.js.map +1 -1
- package/dist/test-reflective.js +0 -6
- package/dist/test-reflective.js.map +1 -1
- package/dist/test-resilience.js +0 -8
- package/dist/test-resilience.js.map +1 -1
- package/dist/tools/orchestrator.d.ts +2 -47
- package/dist/tools/orchestrator.d.ts.map +1 -1
- package/dist/tools/orchestrator.js +139 -172
- package/dist/tools/orchestrator.js.map +1 -1
- package/dist/tools/sequential-thinking.d.ts +7 -6
- package/dist/tools/sequential-thinking.d.ts.map +1 -1
- package/dist/tools/sequential-thinking.js +210 -90
- package/dist/tools/sequential-thinking.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/dag.d.ts +0 -20
- package/dist/utils/dag.d.ts.map +1 -1
- package/dist/utils/dag.js +8 -48
- package/dist/utils/dag.js.map +1 -1
- package/dist/utils/memory.d.ts +5 -0
- package/dist/utils/memory.d.ts.map +1 -1
- package/dist/utils/memory.js +66 -60
- package/dist/utils/memory.js.map +1 -1
- package/dist/utils/mutex.d.ts +6 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +22 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/resilience.d.ts +0 -4
- package/dist/utils/resilience.d.ts.map +1 -1
- package/dist/utils/resilience.js +1 -15
- package/dist/utils/resilience.js.map +1 -1
- package/dist/utils/tool-cache.d.ts +4 -12
- package/dist/utils/tool-cache.d.ts.map +1 -1
- package/dist/utils/tool-cache.js +12 -46
- package/dist/utils/tool-cache.js.map +1 -1
- package/dist/utils/vector-memory.d.ts +1 -22
- package/dist/utils/vector-memory.d.ts.map +1 -1
- package/dist/utils/vector-memory.js +31 -77
- package/dist/utils/vector-memory.js.map +1 -1
- package/package.json +22 -20
package/dist/utils/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/utils/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;
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -9,10 +9,6 @@ export interface ResilienceStrategy {
|
|
|
9
9
|
matches(error: Error, task: TaskNode): boolean;
|
|
10
10
|
getRecoveryAction(error: Error, task: TaskNode): 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;
|
|
@@ -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;
|
|
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"}
|
package/dist/utils/resilience.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
|
-
/**
|
|
3
|
-
* Resilience Manager (The Immune System)
|
|
4
|
-
* Diagnoses errors and prescribes fixes.
|
|
5
|
-
*/
|
|
6
2
|
export class ResilienceManager {
|
|
7
3
|
strategies = [];
|
|
8
4
|
replanHandler = null;
|
|
@@ -30,8 +26,6 @@ export class ResilienceManager {
|
|
|
30
26
|
return null;
|
|
31
27
|
}
|
|
32
28
|
registerDefaultStrategies() {
|
|
33
|
-
// 1. Missing Directory Strategy
|
|
34
|
-
// Logic: If write_file fails with ENOENT, try creating the directory first.
|
|
35
29
|
this.registerStrategy({
|
|
36
30
|
name: 'Auto-Mkdir',
|
|
37
31
|
matches: (error, task) => {
|
|
@@ -43,7 +37,7 @@ export class ResilienceManager {
|
|
|
43
37
|
const filePath = (task.toolInput?.file_path || task.toolInput?.path);
|
|
44
38
|
if (!filePath)
|
|
45
39
|
return { type: 'retry', description: 'Retry' }; // Should not happen
|
|
46
|
-
const dir = path.dirname(filePath);
|
|
40
|
+
const dir = path.resolve(path.dirname(filePath));
|
|
47
41
|
return {
|
|
48
42
|
type: 'run_command',
|
|
49
43
|
payload: { command: `mkdir -p "${dir}"` },
|
|
@@ -51,13 +45,6 @@ export class ResilienceManager {
|
|
|
51
45
|
};
|
|
52
46
|
}
|
|
53
47
|
});
|
|
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
48
|
this.registerStrategy({
|
|
62
49
|
name: 'NPM-Fix',
|
|
63
50
|
matches: (error, task) => {
|
|
@@ -77,7 +64,6 @@ export class ResilienceManager {
|
|
|
77
64
|
return { type: 'retry', description: 'Retry' };
|
|
78
65
|
}
|
|
79
66
|
});
|
|
80
|
-
// 3. Network Backoff
|
|
81
67
|
this.registerStrategy({
|
|
82
68
|
name: 'Network-Backoff',
|
|
83
69
|
matches: (error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/utils/resilience.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
generateKey
|
|
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":"
|
|
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"}
|
package/dist/utils/tool-cache.js
CHANGED
|
@@ -1,56 +1,22 @@
|
|
|
1
|
+
import { LRUCache } from 'lru-cache';
|
|
1
2
|
export class ToolCache {
|
|
2
|
-
cache
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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,
|
|
14
|
+
set(toolName, input, output) {
|
|
39
15
|
const key = this.generateKey(toolName, input);
|
|
40
|
-
|
|
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
|
-
|
|
53
|
-
|
|
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":"
|
|
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
|
|
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":"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"vector-memory.js","sourceRoot":"","sources":["../../src/utils/vector-memory.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.
|
|
3
|
+
"version": "2.9.5",
|
|
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",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc",
|
|
18
|
-
"postbuild": "
|
|
18
|
+
"postbuild": "node scripts/postbuild.mjs",
|
|
19
|
+
"prestart": "npm run build",
|
|
19
20
|
"start": "node dist/index.js",
|
|
20
21
|
"start:sse": "node dist/sse-server.js",
|
|
21
22
|
"dev": "tsx src/index.ts",
|
|
@@ -35,28 +36,29 @@
|
|
|
35
36
|
],
|
|
36
37
|
"license": "MIT",
|
|
37
38
|
"dependencies": {
|
|
38
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
39
|
-
"@types/natural": "^5.1.5",
|
|
39
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
40
40
|
"express": "^5.2.1",
|
|
41
|
+
"lru-cache": "^11.2.4",
|
|
41
42
|
"natural": "^8.1.0",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
43
|
+
"quickjs-emscripten": "^0.31.0",
|
|
44
|
+
"uuid": "^13.0.0",
|
|
45
|
+
"zod": "^4.3.5"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
|
-
"@types/express": "^5.0.
|
|
47
|
-
"@types/node": "^
|
|
48
|
-
"@
|
|
49
|
-
"@typescript-eslint/
|
|
50
|
-
"
|
|
51
|
-
"eslint": "^
|
|
52
|
-
"eslint-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"tsx": "^4.
|
|
57
|
-
"typescript": "^5.
|
|
58
|
-
"typescript-eslint": "^8.
|
|
59
|
-
"vitest": "^
|
|
48
|
+
"@types/express": "^5.0.6",
|
|
49
|
+
"@types/node": "^25.0.8",
|
|
50
|
+
"@typescript-eslint/eslint-plugin": "^8.53.0",
|
|
51
|
+
"@typescript-eslint/parser": "^8.53.0",
|
|
52
|
+
"eslint": "^9.39.2",
|
|
53
|
+
"eslint-config-prettier": "^10.1.8",
|
|
54
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
55
|
+
"globals": "^17.0.0",
|
|
56
|
+
"prettier": "^3.7.4",
|
|
57
|
+
"strip-comment": "^1.1.3",
|
|
58
|
+
"tsx": "^4.21.0",
|
|
59
|
+
"typescript": "^5.9.3",
|
|
60
|
+
"typescript-eslint": "^8.53.0",
|
|
61
|
+
"vitest": "^4.0.17"
|
|
60
62
|
},
|
|
61
63
|
"engines": {
|
|
62
64
|
"node": ">=18.0.0"
|