nexus-prime 0.2.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.
- package/README.md +253 -0
- package/dist/agents/adapters/mcp.d.ts +21 -0
- package/dist/agents/adapters/mcp.d.ts.map +1 -0
- package/dist/agents/adapters/mcp.js +447 -0
- package/dist/agents/adapters/mcp.js.map +1 -0
- package/dist/agents/adapters.d.ts +57 -0
- package/dist/agents/adapters.d.ts.map +1 -0
- package/dist/agents/adapters.js +151 -0
- package/dist/agents/adapters.js.map +1 -0
- package/dist/agents/coordinator.d.ts +75 -0
- package/dist/agents/coordinator.d.ts.map +1 -0
- package/dist/agents/coordinator.js +339 -0
- package/dist/agents/coordinator.js.map +1 -0
- package/dist/agents/core/types.d.ts +157 -0
- package/dist/agents/core/types.d.ts.map +1 -0
- package/dist/agents/core/types.js +5 -0
- package/dist/agents/core/types.js.map +1 -0
- package/dist/agents/learner.d.ts +25 -0
- package/dist/agents/learner.d.ts.map +1 -0
- package/dist/agents/learner.js +88 -0
- package/dist/agents/learner.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +237 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +74 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +73 -0
- package/dist/config.js.map +1 -0
- package/dist/core/evolution.d.ts +122 -0
- package/dist/core/evolution.d.ts.map +1 -0
- package/dist/core/evolution.js +319 -0
- package/dist/core/evolution.js.map +1 -0
- package/dist/core/memory.d.ts +96 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +304 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/optimize.d.ts +100 -0
- package/dist/core/optimize.d.ts.map +1 -0
- package/dist/core/optimize.js +263 -0
- package/dist/core/optimize.js.map +1 -0
- package/dist/core/types.d.ts +155 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/wave.d.ts +55 -0
- package/dist/core/wave.d.ts.map +1 -0
- package/dist/core/wave.js +119 -0
- package/dist/core/wave.js.map +1 -0
- package/dist/engines/benchmark.d.ts +76 -0
- package/dist/engines/benchmark.d.ts.map +1 -0
- package/dist/engines/benchmark.js +167 -0
- package/dist/engines/benchmark.js.map +1 -0
- package/dist/engines/cache-manager.d.ts +75 -0
- package/dist/engines/cache-manager.d.ts.map +1 -0
- package/dist/engines/cache-manager.js +200 -0
- package/dist/engines/cache-manager.js.map +1 -0
- package/dist/engines/context.d.ts +50 -0
- package/dist/engines/context.d.ts.map +1 -0
- package/dist/engines/context.js +99 -0
- package/dist/engines/context.js.map +1 -0
- package/dist/engines/embedder.d.ts +55 -0
- package/dist/engines/embedder.d.ts.map +1 -0
- package/dist/engines/embedder.js +223 -0
- package/dist/engines/embedder.js.map +1 -0
- package/dist/engines/guardrails-bridge.d.ts +64 -0
- package/dist/engines/guardrails-bridge.d.ts.map +1 -0
- package/dist/engines/guardrails-bridge.js +251 -0
- package/dist/engines/guardrails-bridge.js.map +1 -0
- package/dist/engines/index.d.ts +14 -0
- package/dist/engines/index.d.ts.map +1 -0
- package/dist/engines/index.js +14 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/memory.d.ts +76 -0
- package/dist/engines/memory.d.ts.map +1 -0
- package/dist/engines/memory.js +431 -0
- package/dist/engines/memory.js.map +1 -0
- package/dist/engines/meta-learner.d.ts +87 -0
- package/dist/engines/meta-learner.d.ts.map +1 -0
- package/dist/engines/meta-learner.js +214 -0
- package/dist/engines/meta-learner.js.map +1 -0
- package/dist/engines/orchestrator.d.ts +69 -0
- package/dist/engines/orchestrator.d.ts.map +1 -0
- package/dist/engines/orchestrator.js +175 -0
- package/dist/engines/orchestrator.js.map +1 -0
- package/dist/engines/pod-network.d.ts +31 -0
- package/dist/engines/pod-network.d.ts.map +1 -0
- package/dist/engines/pod-network.js +108 -0
- package/dist/engines/pod-network.js.map +1 -0
- package/dist/engines/token-optimizer.d.ts +53 -0
- package/dist/engines/token-optimizer.d.ts.map +1 -0
- package/dist/engines/token-optimizer.js +115 -0
- package/dist/engines/token-optimizer.js.map +1 -0
- package/dist/engines/token-supremacy.d.ts +86 -0
- package/dist/engines/token-supremacy.d.ts.map +1 -0
- package/dist/engines/token-supremacy.js +403 -0
- package/dist/engines/token-supremacy.js.map +1 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +302 -0
- package/dist/index.js.map +1 -0
- package/dist/nexus-prime.d.ts +15 -0
- package/dist/nexus-prime.d.ts.map +1 -0
- package/dist/nexus-prime.js +15 -0
- package/dist/nexus-prime.js.map +1 -0
- package/dist/phantom/index.d.ts +135 -0
- package/dist/phantom/index.d.ts.map +1 -0
- package/dist/phantom/index.js +286 -0
- package/dist/phantom/index.js.map +1 -0
- package/dist/phantom/merge-oracle.d.ts +35 -0
- package/dist/phantom/merge-oracle.d.ts.map +1 -0
- package/dist/phantom/merge-oracle.js +189 -0
- package/dist/phantom/merge-oracle.js.map +1 -0
- package/dist/phantom/phase4-orchestrator.d.ts +14 -0
- package/dist/phantom/phase4-orchestrator.d.ts.map +1 -0
- package/dist/phantom/phase4-orchestrator.js +488 -0
- package/dist/phantom/phase4-orchestrator.js.map +1 -0
- package/dist/verify-guardrails.d.ts +2 -0
- package/dist/verify-guardrails.d.ts.map +1 -0
- package/dist/verify-guardrails.js +48 -0
- package/dist/verify-guardrails.js.map +1 -0
- package/dist/verify-pod-sync.d.ts +2 -0
- package/dist/verify-pod-sync.d.ts.map +1 -0
- package/dist/verify-pod-sync.js +41 -0
- package/dist/verify-pod-sync.js.map +1 -0
- package/dist/verify-substrate.d.ts +2 -0
- package/dist/verify-substrate.d.ts.map +1 -0
- package/dist/verify-substrate.js +41 -0
- package/dist/verify-substrate.js.map +1 -0
- package/dist/verify-token-scoring.d.ts +2 -0
- package/dist/verify-token-scoring.d.ts.map +1 -0
- package/dist/verify-token-scoring.js +37 -0
- package/dist/verify-token-scoring.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Agent Cache Manager
|
|
3
|
+
*
|
|
4
|
+
* Implements shared KV cache with Byzantine consensus.
|
|
5
|
+
*/
|
|
6
|
+
export interface CacheEntry {
|
|
7
|
+
direction: number[];
|
|
8
|
+
magnitudes: number[];
|
|
9
|
+
retained: Map<number, number[]>;
|
|
10
|
+
indices: number[];
|
|
11
|
+
}
|
|
12
|
+
export interface AgentDelta {
|
|
13
|
+
layerIndex: number;
|
|
14
|
+
delta: number[];
|
|
15
|
+
timestamp: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class CacheManager {
|
|
18
|
+
private sharedCache;
|
|
19
|
+
private agentDeltas;
|
|
20
|
+
private version;
|
|
21
|
+
private locks;
|
|
22
|
+
private syncInterval;
|
|
23
|
+
private compressionThreshold;
|
|
24
|
+
/**
|
|
25
|
+
* Initialize shared cache for a layer
|
|
26
|
+
*/
|
|
27
|
+
initLayer(layerIndex: number, kvCache: number[][]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Compress KV cache using SLERP-inspired merge
|
|
30
|
+
*/
|
|
31
|
+
private compress;
|
|
32
|
+
/**
|
|
33
|
+
* SLERP-inspired merge
|
|
34
|
+
*/
|
|
35
|
+
private slerpMerge;
|
|
36
|
+
/**
|
|
37
|
+
* Acquire read lock (non-blocking)
|
|
38
|
+
*/
|
|
39
|
+
acquireReadLock(layerIndex: number): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Acquire write lock
|
|
42
|
+
*/
|
|
43
|
+
acquireWriteLock(layerIndex: number): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Release lock
|
|
46
|
+
*/
|
|
47
|
+
releaseLock(layerIndex: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get cache entry for agent
|
|
50
|
+
*/
|
|
51
|
+
getForAgent(agentId: string, layerIndex: number): number[];
|
|
52
|
+
/**
|
|
53
|
+
* Update agent delta
|
|
54
|
+
*/
|
|
55
|
+
updateDelta(agentId: string, layerIndex: number, delta: number[]): void;
|
|
56
|
+
/**
|
|
57
|
+
* Sync agent delta to shared cache
|
|
58
|
+
*/
|
|
59
|
+
syncToShared(agentId: string, layerIndex: number): void;
|
|
60
|
+
/**
|
|
61
|
+
* Get cache statistics
|
|
62
|
+
*/
|
|
63
|
+
getStats(): {
|
|
64
|
+
layers: number;
|
|
65
|
+
agents: number;
|
|
66
|
+
version: number;
|
|
67
|
+
compressionRatio: number;
|
|
68
|
+
};
|
|
69
|
+
private magnitude;
|
|
70
|
+
private normalize;
|
|
71
|
+
private dotProduct;
|
|
72
|
+
private cosineSimilarity;
|
|
73
|
+
}
|
|
74
|
+
export declare const createCacheManager: () => CacheManager;
|
|
75
|
+
//# sourceMappingURL=cache-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/engines/cache-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,WAAW,CAAiD;IACpE,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,KAAK,CAAqD;IAElE,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,oBAAoB,CAAO;IAEnC;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAMxD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAsChB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAS5C;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAS7C;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAuB1D;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAavE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAgCvD;;OAEG;IACH,QAAQ,IAAI;QACV,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAqBD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;CAMzB;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Agent Cache Manager
|
|
3
|
+
*
|
|
4
|
+
* Implements shared KV cache with Byzantine consensus.
|
|
5
|
+
*/
|
|
6
|
+
export class CacheManager {
|
|
7
|
+
sharedCache = new Map();
|
|
8
|
+
agentDeltas = new Map();
|
|
9
|
+
version = 0;
|
|
10
|
+
locks = new Map();
|
|
11
|
+
syncInterval = 50; // tokens
|
|
12
|
+
compressionThreshold = 0.1;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize shared cache for a layer
|
|
15
|
+
*/
|
|
16
|
+
initLayer(layerIndex, kvCache) {
|
|
17
|
+
// Compress using SLERP-like merge
|
|
18
|
+
const compressed = this.compress(kvCache);
|
|
19
|
+
this.sharedCache.set(layerIndex, compressed);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Compress KV cache using SLERP-inspired merge
|
|
23
|
+
*/
|
|
24
|
+
compress(kvCache) {
|
|
25
|
+
if (kvCache.length < 2) {
|
|
26
|
+
return {
|
|
27
|
+
direction: kvCache[0] || [],
|
|
28
|
+
magnitudes: [1],
|
|
29
|
+
retained: new Map(),
|
|
30
|
+
indices: kvCache.map((_, i) => i)
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// Start from middle
|
|
34
|
+
const mid = Math.floor(kvCache.length / 2);
|
|
35
|
+
// Merge middle with previous (like SLERP)
|
|
36
|
+
const merged = this.slerpMerge(kvCache[mid], kvCache[mid - 1], 0.5);
|
|
37
|
+
// Compute magnitudes
|
|
38
|
+
const magnitudes = kvCache.map(v => this.magnitude(v));
|
|
39
|
+
// Retain highly distinct tokens (simple threshold)
|
|
40
|
+
const retained = new Map();
|
|
41
|
+
const threshold = 0.3;
|
|
42
|
+
for (let i = mid; i < kvCache.length; i++) {
|
|
43
|
+
const sim = this.cosineSimilarity(kvCache[i], merged);
|
|
44
|
+
if (sim < threshold) {
|
|
45
|
+
retained.set(i, kvCache[i]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
direction: this.normalize(merged),
|
|
50
|
+
magnitudes: magnitudes.slice(mid),
|
|
51
|
+
retained,
|
|
52
|
+
indices: kvCache.map((_, i) => i).slice(mid)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* SLERP-inspired merge
|
|
57
|
+
*/
|
|
58
|
+
slerpMerge(v1, v2, t) {
|
|
59
|
+
// Simplified SLERP
|
|
60
|
+
const dot = this.dotProduct(v1, v2) / (this.magnitude(v1) * this.magnitude(v2) || 1);
|
|
61
|
+
const omega = Math.acos(Math.max(-1, Math.min(1, dot)));
|
|
62
|
+
const sinOmega = Math.sin(omega);
|
|
63
|
+
if (sinOmega < 1e-6) {
|
|
64
|
+
return v1.map((x, i) => (1 - t) * x + t * (v2[i] || 0));
|
|
65
|
+
}
|
|
66
|
+
const a = Math.sin((1 - t) * omega) / sinOmega;
|
|
67
|
+
const b = Math.sin(t * omega) / sinOmega;
|
|
68
|
+
return v1.map((x, i) => a * x + b * (v2[i] || 0));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Acquire read lock (non-blocking)
|
|
72
|
+
*/
|
|
73
|
+
acquireReadLock(layerIndex) {
|
|
74
|
+
const current = this.locks.get(layerIndex) || 'none';
|
|
75
|
+
if (current === 'write') {
|
|
76
|
+
return false; // Blocked
|
|
77
|
+
}
|
|
78
|
+
this.locks.set(layerIndex, 'read');
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Acquire write lock
|
|
83
|
+
*/
|
|
84
|
+
acquireWriteLock(layerIndex) {
|
|
85
|
+
const current = this.locks.get(layerIndex) || 'none';
|
|
86
|
+
if (current !== 'none') {
|
|
87
|
+
return false; // Blocked
|
|
88
|
+
}
|
|
89
|
+
this.locks.set(layerIndex, 'write');
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Release lock
|
|
94
|
+
*/
|
|
95
|
+
releaseLock(layerIndex) {
|
|
96
|
+
this.locks.set(layerIndex, 'none');
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get cache entry for agent
|
|
100
|
+
*/
|
|
101
|
+
getForAgent(agentId, layerIndex) {
|
|
102
|
+
const entry = this.sharedCache.get(layerIndex);
|
|
103
|
+
if (!entry)
|
|
104
|
+
return [];
|
|
105
|
+
// Get agent's delta
|
|
106
|
+
const agentDeltaMap = this.agentDeltas.get(agentId) || new Map();
|
|
107
|
+
const delta = agentDeltaMap.get(layerIndex) || [];
|
|
108
|
+
// Restore: direction * magnitude + delta
|
|
109
|
+
const restored = entry.direction.map((d, i) => d * (entry.magnitudes[i] || 1) + (delta[i] || 0));
|
|
110
|
+
// Add retained tokens
|
|
111
|
+
for (const [idx, token] of entry.retained) {
|
|
112
|
+
if (idx < restored.length) {
|
|
113
|
+
restored[idx] += this.magnitude(token);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return restored;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Update agent delta
|
|
120
|
+
*/
|
|
121
|
+
updateDelta(agentId, layerIndex, delta) {
|
|
122
|
+
if (!this.agentDeltas.has(agentId)) {
|
|
123
|
+
this.agentDeltas.set(agentId, new Map());
|
|
124
|
+
}
|
|
125
|
+
const agentDeltaMap = this.agentDeltas.get(agentId);
|
|
126
|
+
const existing = agentDeltaMap.get(layerIndex) || [];
|
|
127
|
+
// Accumulate delta
|
|
128
|
+
const newDelta = delta.map((d, i) => d + (existing[i] || 0));
|
|
129
|
+
agentDeltaMap.set(layerIndex, newDelta);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Sync agent delta to shared cache
|
|
133
|
+
*/
|
|
134
|
+
syncToShared(agentId, layerIndex) {
|
|
135
|
+
const agentDeltaMap = this.agentDeltas.get(agentId);
|
|
136
|
+
if (!agentDeltaMap)
|
|
137
|
+
return;
|
|
138
|
+
const delta = agentDeltaMap.get(layerIndex);
|
|
139
|
+
if (!delta)
|
|
140
|
+
return;
|
|
141
|
+
// Check if delta is significant
|
|
142
|
+
const entry = this.sharedCache.get(layerIndex);
|
|
143
|
+
if (!entry)
|
|
144
|
+
return;
|
|
145
|
+
const mag = this.magnitude(entry.direction);
|
|
146
|
+
const deltaMag = this.magnitude(delta);
|
|
147
|
+
if (deltaMag > this.compressionThreshold * mag) {
|
|
148
|
+
// Merge delta into shared
|
|
149
|
+
const merged = entry.direction.map((d, i) => d + delta[i] * 0.1);
|
|
150
|
+
this.sharedCache.set(layerIndex, {
|
|
151
|
+
...entry,
|
|
152
|
+
direction: this.normalize(merged),
|
|
153
|
+
magnitudes: entry.magnitudes.map(m => m + deltaMag * 0.1)
|
|
154
|
+
});
|
|
155
|
+
// Reset agent delta
|
|
156
|
+
agentDeltaMap.set(layerIndex, []);
|
|
157
|
+
this.version++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get cache statistics
|
|
162
|
+
*/
|
|
163
|
+
getStats() {
|
|
164
|
+
let totalOriginal = 0;
|
|
165
|
+
let totalCompressed = 0;
|
|
166
|
+
for (const entry of this.sharedCache.values()) {
|
|
167
|
+
totalOriginal += entry.magnitudes.length * entry.direction.length;
|
|
168
|
+
totalCompressed += entry.direction.length + entry.magnitudes.length;
|
|
169
|
+
totalCompressed += Array.from(entry.retained.values())
|
|
170
|
+
.reduce((sum, v) => sum + v.length, 0);
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
layers: this.sharedCache.size,
|
|
174
|
+
agents: this.agentDeltas.size,
|
|
175
|
+
version: this.version,
|
|
176
|
+
compressionRatio: totalOriginal / (totalCompressed || 1)
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// ===== Utilities =====
|
|
180
|
+
magnitude(v) {
|
|
181
|
+
return Math.sqrt(v.reduce((sum, x) => sum + x * x, 0));
|
|
182
|
+
}
|
|
183
|
+
normalize(v) {
|
|
184
|
+
const mag = this.magnitude(v);
|
|
185
|
+
if (mag === 0)
|
|
186
|
+
return v;
|
|
187
|
+
return v.map(x => x / mag);
|
|
188
|
+
}
|
|
189
|
+
dotProduct(a, b) {
|
|
190
|
+
return a.reduce((sum, x, i) => sum + x * (b[i] || 0), 0);
|
|
191
|
+
}
|
|
192
|
+
cosineSimilarity(a, b) {
|
|
193
|
+
const dot = this.dotProduct(a, b);
|
|
194
|
+
const magA = this.magnitude(a);
|
|
195
|
+
const magB = this.magnitude(b);
|
|
196
|
+
return dot / (magA * magB || 1);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
export const createCacheManager = () => new CacheManager();
|
|
200
|
+
//# sourceMappingURL=cache-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../src/engines/cache-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Engine
|
|
3
|
+
*
|
|
4
|
+
* Manages context window with compression and retrieval.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ContextEngine {
|
|
7
|
+
private maxTokens;
|
|
8
|
+
private tokenOptimizer;
|
|
9
|
+
private workingContext;
|
|
10
|
+
private compressedCache;
|
|
11
|
+
constructor(maxTokens?: number);
|
|
12
|
+
/**
|
|
13
|
+
* Add content to context
|
|
14
|
+
*/
|
|
15
|
+
add(content: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get relevant context for query
|
|
18
|
+
*/
|
|
19
|
+
getContext(query: string): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Compress working context
|
|
22
|
+
*/
|
|
23
|
+
private compress;
|
|
24
|
+
/**
|
|
25
|
+
* Get total token count
|
|
26
|
+
*/
|
|
27
|
+
private getTokenCount;
|
|
28
|
+
/**
|
|
29
|
+
* Simple tokenization
|
|
30
|
+
*/
|
|
31
|
+
private tokenize;
|
|
32
|
+
/**
|
|
33
|
+
* Simple similarity (in production use embeddings)
|
|
34
|
+
*/
|
|
35
|
+
private similarity;
|
|
36
|
+
/**
|
|
37
|
+
* Simple hash
|
|
38
|
+
*/
|
|
39
|
+
private hashString;
|
|
40
|
+
/**
|
|
41
|
+
* Clear context
|
|
42
|
+
*/
|
|
43
|
+
clear(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get all context
|
|
46
|
+
*/
|
|
47
|
+
getAll(): string[];
|
|
48
|
+
}
|
|
49
|
+
export declare const createContextEngine: (maxTokens?: number) => ContextEngine;
|
|
50
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engines/context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAoC;gBAE/C,SAAS,GAAE,MAAe;IAKtC;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW1B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IASnC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAehB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;CAGnB;AAED,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,kBACxB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Engine
|
|
3
|
+
*
|
|
4
|
+
* Manages context window with compression and retrieval.
|
|
5
|
+
*/
|
|
6
|
+
import { TokenOptimizer } from './token-optimizer.js';
|
|
7
|
+
export class ContextEngine {
|
|
8
|
+
maxTokens;
|
|
9
|
+
tokenOptimizer;
|
|
10
|
+
workingContext = [];
|
|
11
|
+
compressedCache = new Map();
|
|
12
|
+
constructor(maxTokens = 128000) {
|
|
13
|
+
this.maxTokens = maxTokens;
|
|
14
|
+
this.tokenOptimizer = new TokenOptimizer(maxTokens);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Add content to context
|
|
18
|
+
*/
|
|
19
|
+
add(content) {
|
|
20
|
+
const tokens = this.tokenize(content);
|
|
21
|
+
// Check if we need to compress
|
|
22
|
+
if (this.getTokenCount() + tokens.length > this.maxTokens * 0.8) {
|
|
23
|
+
this.compress();
|
|
24
|
+
}
|
|
25
|
+
this.workingContext.push(content);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get relevant context for query
|
|
29
|
+
*/
|
|
30
|
+
getContext(query) {
|
|
31
|
+
// Simple retrieval - in production use embeddings
|
|
32
|
+
const relevant = this.workingContext
|
|
33
|
+
.filter(c => this.similarity(query, c) > 0.3)
|
|
34
|
+
.slice(-50);
|
|
35
|
+
return relevant;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Compress working context
|
|
39
|
+
*/
|
|
40
|
+
compress() {
|
|
41
|
+
if (this.workingContext.length === 0)
|
|
42
|
+
return;
|
|
43
|
+
// Keep most recent and most relevant
|
|
44
|
+
const toCompress = this.workingContext.slice(0, -10);
|
|
45
|
+
const recent = this.workingContext.slice(-10);
|
|
46
|
+
// Create compressed version (simple concatenation for now)
|
|
47
|
+
const compressed = toCompress.join(' | ');
|
|
48
|
+
const key = this.hashString(compressed);
|
|
49
|
+
this.compressedCache.set(key, toCompress);
|
|
50
|
+
this.workingContext = recent;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get total token count
|
|
54
|
+
*/
|
|
55
|
+
getTokenCount() {
|
|
56
|
+
return this.workingContext.reduce((sum, c) => sum + c.length / 4, 0);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Simple tokenization
|
|
60
|
+
*/
|
|
61
|
+
tokenize(content) {
|
|
62
|
+
return content.split(/\s+/);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Simple similarity (in production use embeddings)
|
|
66
|
+
*/
|
|
67
|
+
similarity(a, b) {
|
|
68
|
+
const wordsA = new Set(a.toLowerCase().split(/\s+/));
|
|
69
|
+
const wordsB = new Set(b.toLowerCase().split(/\s+/));
|
|
70
|
+
const intersection = [...wordsA].filter(x => wordsB.has(x));
|
|
71
|
+
const union = new Set([...wordsA, ...wordsB]);
|
|
72
|
+
return intersection.length / union.size;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Simple hash
|
|
76
|
+
*/
|
|
77
|
+
hashString(str) {
|
|
78
|
+
let hash = 0;
|
|
79
|
+
for (let i = 0; i < str.length; i++) {
|
|
80
|
+
hash = ((hash << 5) - hash) + str.charCodeAt(i);
|
|
81
|
+
hash |= 0;
|
|
82
|
+
}
|
|
83
|
+
return hash.toString(36);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Clear context
|
|
87
|
+
*/
|
|
88
|
+
clear() {
|
|
89
|
+
this.workingContext = [];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get all context
|
|
93
|
+
*/
|
|
94
|
+
getAll() {
|
|
95
|
+
return [...this.workingContext];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export const createContextEngine = (maxTokens) => new ContextEngine(maxTokens);
|
|
99
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engines/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedder — TF-IDF local embeddings + optional API mode
|
|
3
|
+
*
|
|
4
|
+
* Mode 1 (default): Pure TF-IDF, no API needed. Works offline, fast.
|
|
5
|
+
* Mode 2: OpenAI-compatible API (set NEXUS_EMBED_MODE=api, NEXUS_EMBED_URL, NEXUS_EMBED_KEY)
|
|
6
|
+
*
|
|
7
|
+
* Output: fixed 128-dim float32 vectors (TF-IDF) or 1536-dim (API)
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Poincare Ball model for hyperbolic space.
|
|
11
|
+
* Hyperbolic distance is better suited for hierarchical structures (trees/code).
|
|
12
|
+
*/
|
|
13
|
+
export declare const HyperbolicMath: {
|
|
14
|
+
/**
|
|
15
|
+
* Hyperbolic distance between two points in the unit ball.
|
|
16
|
+
* d(u, v) = arcosh(1 + 2 * ||u-v||^2 / ( (1-||u||^2)(1-||v||^2) ))
|
|
17
|
+
*/
|
|
18
|
+
dist(u: number[], v: number[]): number;
|
|
19
|
+
/**
|
|
20
|
+
* Mobius addition: u ⊕ v
|
|
21
|
+
* Used to translate points in hyperbolic space while staying in the unit ball.
|
|
22
|
+
*/
|
|
23
|
+
mobiusAdd(u: number[], v: number[]): number;
|
|
24
|
+
/** Ensure vector is within unit ball (norm < 1) */
|
|
25
|
+
project(v: number[]): number[];
|
|
26
|
+
};
|
|
27
|
+
export declare class Embedder {
|
|
28
|
+
private vocabulary;
|
|
29
|
+
private idf;
|
|
30
|
+
private docCount;
|
|
31
|
+
private apiMode;
|
|
32
|
+
private apiUrl;
|
|
33
|
+
private apiKey;
|
|
34
|
+
private apiModel;
|
|
35
|
+
constructor();
|
|
36
|
+
/** Embed a string → float32 vector */
|
|
37
|
+
embed(text: string): Promise<number[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate a hierarchical embedding.
|
|
40
|
+
* Shifts the vector "deeper" into the Poincare ball relative to a parent.
|
|
41
|
+
*/
|
|
42
|
+
embedHierarchical(text: string, parentVector?: number[], depth?: number): number[];
|
|
43
|
+
/** Update vocabulary with new documents (call as you store memories) */
|
|
44
|
+
fitVocabulary(docs: string[]): void;
|
|
45
|
+
/** Dimension of vectors produced by this embedder */
|
|
46
|
+
get dimensions(): number;
|
|
47
|
+
localEmbed(text: string): number[];
|
|
48
|
+
apiEmbed(text: string): Promise<number[]>;
|
|
49
|
+
cosineSimilarity(a: number[], b: number[]): number;
|
|
50
|
+
private tokenize;
|
|
51
|
+
private normalize;
|
|
52
|
+
private hashCode;
|
|
53
|
+
}
|
|
54
|
+
export declare const createEmbedder: () => Embedder;
|
|
55
|
+
//# sourceMappingURL=embedder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedder.d.ts","sourceRoot":"","sources":["../../src/engines/embedder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH;;;GAGG;AACH,eAAO,MAAM,cAAc;IACvB;;;OAGG;YACK,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM;IActC;;;OAGG;iBACU,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM;IAc3C,mDAAmD;eACxC,MAAM,EAAE,GAAG,MAAM,EAAE;CAMjC,CAAC;AAMF,qBAAa,QAAQ;IACjB,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;;IAWzB,sCAAsC;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY5C;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE;IAmBrF,wEAAwE;IACxE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAyBnC,qDAAqD;IACrD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAID,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IA2B5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuB/C,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAclD,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;CAOnB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|