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,223 @@
|
|
|
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
|
+
// TF-IDF Vocabulary (built from stored documents)
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
const VECTOR_DIM = 128; // local TF-IDF dimension
|
|
13
|
+
/** Stop words — excluded from TF-IDF vocabulary */
|
|
14
|
+
const STOP_WORDS = new Set([
|
|
15
|
+
'a', 'an', 'the', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
|
|
16
|
+
'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
|
|
17
|
+
'should', 'may', 'might', 'must', 'can', 'to', 'of', 'in', 'for',
|
|
18
|
+
'on', 'with', 'at', 'by', 'from', 'and', 'or', 'but', 'if', 'then',
|
|
19
|
+
'that', 'this', 'it', 'its', 'we', 'our', 'you', 'i', 'my', 'not',
|
|
20
|
+
'no', 'so', 'up', 'out', 'about', 'just', 'into', 'over', 'after',
|
|
21
|
+
]);
|
|
22
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
23
|
+
// Hyperbolic Math (Poincare Ball Model)
|
|
24
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Poincare Ball model for hyperbolic space.
|
|
27
|
+
* Hyperbolic distance is better suited for hierarchical structures (trees/code).
|
|
28
|
+
*/
|
|
29
|
+
export const HyperbolicMath = {
|
|
30
|
+
/**
|
|
31
|
+
* Hyperbolic distance between two points in the unit ball.
|
|
32
|
+
* d(u, v) = arcosh(1 + 2 * ||u-v||^2 / ( (1-||u||^2)(1-||v||^2) ))
|
|
33
|
+
*/
|
|
34
|
+
dist(u, v) {
|
|
35
|
+
const diffSq = u.reduce((sum, ui, i) => sum + Math.pow(ui - (v[i] || 0), 2), 0);
|
|
36
|
+
const normU2 = u.reduce((sum, ui) => sum + ui * ui, 0);
|
|
37
|
+
const normV2 = v.reduce((sum, vi) => sum + vi * vi, 0);
|
|
38
|
+
const eps = 1e-9;
|
|
39
|
+
const den = (1 - normU2) * (1 - normV2);
|
|
40
|
+
if (Math.abs(den) < eps)
|
|
41
|
+
return 100; // boundary
|
|
42
|
+
const x = 1 + (2 * diffSq) / den;
|
|
43
|
+
// arcosh(x) = ln(x + sqrt(x^2 - 1))
|
|
44
|
+
return Math.log(x + Math.sqrt(x * x - 1));
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* Mobius addition: u ⊕ v
|
|
48
|
+
* Used to translate points in hyperbolic space while staying in the unit ball.
|
|
49
|
+
*/
|
|
50
|
+
mobiusAdd(u, v) {
|
|
51
|
+
const dotUV = u.reduce((sum, ui, i) => sum + ui * (v[i] || 0), 0);
|
|
52
|
+
const normU2 = u.reduce((sum, ui) => sum + ui * ui, 0);
|
|
53
|
+
const normV2 = v.reduce((sum, vi) => sum + vi * vi, 0);
|
|
54
|
+
const den = 1 + 2 * dotUV + normU2 * normV2;
|
|
55
|
+
const num1 = (1 + 2 * dotUV + normV2);
|
|
56
|
+
const num2 = (1 - normU2);
|
|
57
|
+
// Resulting vector is scaled combination of u and v
|
|
58
|
+
// In practice for simple hierarchy shifts, we just normalize the final result back to unit ball
|
|
59
|
+
return 0; // Placeholder for simplified logic below
|
|
60
|
+
},
|
|
61
|
+
/** Ensure vector is within unit ball (norm < 1) */
|
|
62
|
+
project(v) {
|
|
63
|
+
const norm = Math.sqrt(v.reduce((s, x) => s + x * x, 0));
|
|
64
|
+
const maxNorm = 0.999;
|
|
65
|
+
if (norm <= maxNorm)
|
|
66
|
+
return v;
|
|
67
|
+
return v.map(x => (x / norm) * maxNorm);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
71
|
+
// Embedder
|
|
72
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
73
|
+
export class Embedder {
|
|
74
|
+
vocabulary = new Map(); // word → index (0..127)
|
|
75
|
+
idf = new Map(); // word → IDF weight
|
|
76
|
+
docCount = 0;
|
|
77
|
+
apiMode;
|
|
78
|
+
apiUrl;
|
|
79
|
+
apiKey;
|
|
80
|
+
apiModel;
|
|
81
|
+
constructor() {
|
|
82
|
+
this.apiMode = process.env.NEXUS_EMBED_MODE === 'api';
|
|
83
|
+
this.apiUrl = process.env.NEXUS_EMBED_URL ?? 'https://api.openai.com/v1/embeddings';
|
|
84
|
+
this.apiKey = process.env.NEXUS_EMBED_KEY ?? '';
|
|
85
|
+
this.apiModel = process.env.NEXUS_EMBED_MODEL ?? 'text-embedding-3-small';
|
|
86
|
+
}
|
|
87
|
+
// ── Public API ───────────────────────────────────────────────────────────
|
|
88
|
+
/** Embed a string → float32 vector */
|
|
89
|
+
async embed(text) {
|
|
90
|
+
if (this.apiMode && this.apiKey) {
|
|
91
|
+
try {
|
|
92
|
+
const vec = await this.apiEmbed(text);
|
|
93
|
+
return HyperbolicMath.project(vec);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Fall back to local on API failure
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return this.localEmbed(text);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Generate a hierarchical embedding.
|
|
103
|
+
* Shifts the vector "deeper" into the Poincare ball relative to a parent.
|
|
104
|
+
*/
|
|
105
|
+
embedHierarchical(text, parentVector, depth = 0) {
|
|
106
|
+
const base = this.localEmbed(text);
|
|
107
|
+
if (!parentVector || depth === 0)
|
|
108
|
+
return base;
|
|
109
|
+
// Hierarchical shift: move towards the boundary (norm -> 1)
|
|
110
|
+
// while staying in the "shadow" of the parent
|
|
111
|
+
const alpha = 0.3; // alignment with parent
|
|
112
|
+
const shift = 0.2; // depth push
|
|
113
|
+
const blended = base.map((x, i) => (1 - alpha) * x + alpha * parentVector[i]);
|
|
114
|
+
const norm = Math.sqrt(blended.reduce((s, x) => s + x * x, 0));
|
|
115
|
+
// Push towards boundary: new_norm = old_norm + (1 - old_norm) * shift
|
|
116
|
+
const targetNorm = norm + (1 - norm) * (shift * Math.min(depth, 5));
|
|
117
|
+
const scaled = blended.map(x => (x / (norm || 1)) * targetNorm);
|
|
118
|
+
return HyperbolicMath.project(scaled);
|
|
119
|
+
}
|
|
120
|
+
/** Update vocabulary with new documents (call as you store memories) */
|
|
121
|
+
fitVocabulary(docs) {
|
|
122
|
+
// Count document frequency for each term
|
|
123
|
+
const dfCount = new Map();
|
|
124
|
+
for (const doc of docs) {
|
|
125
|
+
const terms = new Set(this.tokenize(doc));
|
|
126
|
+
for (const term of terms) {
|
|
127
|
+
dfCount.set(term, (dfCount.get(term) ?? 0) + 1);
|
|
128
|
+
}
|
|
129
|
+
this.docCount++;
|
|
130
|
+
}
|
|
131
|
+
// Assign vocab indices (top 128 by df)
|
|
132
|
+
const sorted = [...dfCount.entries()].sort((a, b) => b[1] - a[1]);
|
|
133
|
+
this.vocabulary.clear();
|
|
134
|
+
this.idf.clear();
|
|
135
|
+
for (const [term, df] of sorted.slice(0, VECTOR_DIM)) {
|
|
136
|
+
const idx = this.vocabulary.size;
|
|
137
|
+
this.vocabulary.set(term, idx);
|
|
138
|
+
// IDF = log((N + 1) / (df + 1)) + 1 (smoothed)
|
|
139
|
+
this.idf.set(term, Math.log((this.docCount + 1) / (df + 1)) + 1);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** Dimension of vectors produced by this embedder */
|
|
143
|
+
get dimensions() {
|
|
144
|
+
return this.apiMode ? 1536 : VECTOR_DIM;
|
|
145
|
+
}
|
|
146
|
+
// ── Local TF-IDF embed ───────────────────────────────────────────────────
|
|
147
|
+
localEmbed(text) {
|
|
148
|
+
const tokens = this.tokenize(text);
|
|
149
|
+
const tf = new Map();
|
|
150
|
+
for (const t of tokens) {
|
|
151
|
+
tf.set(t, (tf.get(t) ?? 0) + 1);
|
|
152
|
+
}
|
|
153
|
+
const vector = new Array(VECTOR_DIM).fill(0);
|
|
154
|
+
for (const [term, count] of tf) {
|
|
155
|
+
const idx = this.vocabulary.get(term);
|
|
156
|
+
if (idx !== undefined) {
|
|
157
|
+
const idf = this.idf.get(term) ?? 1;
|
|
158
|
+
vector[idx] = (count / tokens.length) * idf; // TF × IDF
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// Hash fallback for OOV terms
|
|
162
|
+
const h = this.hashCode(term) % VECTOR_DIM;
|
|
163
|
+
vector[Math.abs(h)] += 0.1;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return this.normalize(vector);
|
|
167
|
+
}
|
|
168
|
+
// ── API embed (OpenAI-compatible) ────────────────────────────────────────
|
|
169
|
+
async apiEmbed(text) {
|
|
170
|
+
const response = await fetch(this.apiUrl, {
|
|
171
|
+
method: 'POST',
|
|
172
|
+
headers: {
|
|
173
|
+
'Content-Type': 'application/json',
|
|
174
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
175
|
+
},
|
|
176
|
+
body: JSON.stringify({
|
|
177
|
+
model: this.apiModel,
|
|
178
|
+
input: text.slice(0, 8000), // truncate to API limit
|
|
179
|
+
}),
|
|
180
|
+
});
|
|
181
|
+
if (!response.ok) {
|
|
182
|
+
throw new Error(`Embed API error: ${response.status} ${response.statusText}`);
|
|
183
|
+
}
|
|
184
|
+
const data = await response.json();
|
|
185
|
+
return data.data[0].embedding;
|
|
186
|
+
}
|
|
187
|
+
// ── Cosine similarity ────────────────────────────────────────────────────
|
|
188
|
+
cosineSimilarity(a, b) {
|
|
189
|
+
if (a.length !== b.length)
|
|
190
|
+
return 0;
|
|
191
|
+
let dot = 0, magA = 0, magB = 0;
|
|
192
|
+
for (let i = 0; i < a.length; i++) {
|
|
193
|
+
dot += a[i] * b[i];
|
|
194
|
+
magA += a[i] * a[i];
|
|
195
|
+
magB += b[i] * b[i];
|
|
196
|
+
}
|
|
197
|
+
const denom = Math.sqrt(magA) * Math.sqrt(magB);
|
|
198
|
+
return denom === 0 ? 0 : dot / denom;
|
|
199
|
+
}
|
|
200
|
+
// ── Helpers ──────────────────────────────────────────────────────────────
|
|
201
|
+
tokenize(text) {
|
|
202
|
+
return text
|
|
203
|
+
.toLowerCase()
|
|
204
|
+
.replace(/[^a-z0-9\s_/-]/g, ' ')
|
|
205
|
+
.split(/\s+/)
|
|
206
|
+
.filter(w => w.length > 2 && !STOP_WORDS.has(w));
|
|
207
|
+
}
|
|
208
|
+
normalize(v) {
|
|
209
|
+
const mag = Math.sqrt(v.reduce((s, x) => s + x * x, 0));
|
|
210
|
+
if (mag === 0)
|
|
211
|
+
return v;
|
|
212
|
+
return v.map(x => x / mag);
|
|
213
|
+
}
|
|
214
|
+
hashCode(s) {
|
|
215
|
+
let h = 0;
|
|
216
|
+
for (let i = 0; i < s.length; i++) {
|
|
217
|
+
h = (Math.imul(31, h) + s.charCodeAt(i)) | 0;
|
|
218
|
+
}
|
|
219
|
+
return h;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
export const createEmbedder = () => new Embedder();
|
|
223
|
+
//# sourceMappingURL=embedder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedder.js","sourceRoot":"","sources":["../../src/engines/embedder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardrails Bridge — Mindkit guardrails within nexus-prime src/
|
|
3
|
+
*
|
|
4
|
+
* Provides GuardrailEngine directly within the src/ tree so mcp.ts
|
|
5
|
+
* can import it without going outside rootDir. This mirrors the same
|
|
6
|
+
* 6 rules from packages/mindkit/src/guardrails.ts.
|
|
7
|
+
*/
|
|
8
|
+
export type GuardrailSeverity = 'error' | 'warn' | 'info';
|
|
9
|
+
export interface GuardrailContext {
|
|
10
|
+
action: string;
|
|
11
|
+
tokenCount?: number;
|
|
12
|
+
filesToModify?: string[];
|
|
13
|
+
isDestructive?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface GuardrailViolation {
|
|
16
|
+
id: string;
|
|
17
|
+
severity: GuardrailSeverity;
|
|
18
|
+
rule: string;
|
|
19
|
+
detail: string;
|
|
20
|
+
suggestion: string;
|
|
21
|
+
}
|
|
22
|
+
export interface GuardrailResult {
|
|
23
|
+
passed: boolean;
|
|
24
|
+
violations: GuardrailViolation[];
|
|
25
|
+
warnings: GuardrailViolation[];
|
|
26
|
+
score: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class GuardrailEngine {
|
|
29
|
+
private externalRules;
|
|
30
|
+
private static CACHE_PATH;
|
|
31
|
+
check(ctx: GuardrailContext): GuardrailResult;
|
|
32
|
+
format(result: GuardrailResult): string;
|
|
33
|
+
listRules(): {
|
|
34
|
+
id: string;
|
|
35
|
+
rule: string;
|
|
36
|
+
severity: GuardrailSeverity;
|
|
37
|
+
}[];
|
|
38
|
+
/**
|
|
39
|
+
* Sync guardrail rules from the MindKit GitHub repo.
|
|
40
|
+
* Fetches from sir-ad/mindkit, caches locally for 1 hour.
|
|
41
|
+
* Falls back silently to bundled rules if offline.
|
|
42
|
+
*/
|
|
43
|
+
syncFromGitHub(): Promise<{
|
|
44
|
+
synced: boolean;
|
|
45
|
+
ruleCount: number;
|
|
46
|
+
source: string;
|
|
47
|
+
}>;
|
|
48
|
+
private loadExternalRules;
|
|
49
|
+
/**
|
|
50
|
+
* Bidirectional MindKit sync — push Nexus findings back to MindKit.
|
|
51
|
+
* Writes evolution candidates, session learnings, and guardrail outcomes
|
|
52
|
+
* to MindKit's memory/sessions directory via GitHub API.
|
|
53
|
+
*/
|
|
54
|
+
pushFindingsToMindKit(findings: {
|
|
55
|
+
sessionId: string;
|
|
56
|
+
findings: string[];
|
|
57
|
+
hotspots: Array<[string, number]>;
|
|
58
|
+
recommendations: string[];
|
|
59
|
+
}): Promise<{
|
|
60
|
+
pushed: boolean;
|
|
61
|
+
reason: string;
|
|
62
|
+
}>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=guardrails-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails-bridge.d.ts","sourceRoot":"","sources":["../../src/engines/guardrails-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACjB;AAuGD,qBAAa,eAAe;IACxB,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiE;IAE1F,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe;IAoB7C,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAYvC,SAAS;;;;;IAIT;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCvF,OAAO,CAAC,iBAAiB;IAczB;;;;OAIG;IACG,qBAAqB,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAClC,eAAe,EAAE,MAAM,EAAE,CAAC;KAC7B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA+CnD"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardrails Bridge — Mindkit guardrails within nexus-prime src/
|
|
3
|
+
*
|
|
4
|
+
* Provides GuardrailEngine directly within the src/ tree so mcp.ts
|
|
5
|
+
* can import it without going outside rootDir. This mirrors the same
|
|
6
|
+
* 6 rules from packages/mindkit/src/guardrails.ts.
|
|
7
|
+
*/
|
|
8
|
+
import * as os from 'os';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import * as fs from 'fs';
|
|
11
|
+
const RULES = [
|
|
12
|
+
{
|
|
13
|
+
id: 'TOKEN_BUDGET', rule: 'Token budget under 100k', severity: 'error',
|
|
14
|
+
check: (ctx) => ctx.tokenCount && ctx.tokenCount > 100_000
|
|
15
|
+
? { id: 'TOKEN_BUDGET', severity: 'error', rule: 'Token budget exceeded', detail: `${ctx.tokenCount.toLocaleString()} tokens (limit: 100k)`, suggestion: 'Use nexus_optimize_tokens to reduce scope' }
|
|
16
|
+
: null
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 'TOKEN_WARN', rule: 'Warn above 70k tokens', severity: 'warn',
|
|
20
|
+
check: (ctx) => ctx.tokenCount && ctx.tokenCount > 70_000
|
|
21
|
+
? { id: 'TOKEN_WARN', severity: 'warn', rule: 'High token usage', detail: `${ctx.tokenCount.toLocaleString()} tokens`, suggestion: 'Consider outline-only reads for large files' }
|
|
22
|
+
: null
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: 'DESTRUCTIVE_GUARD', rule: 'Destructive operations need confirmation', severity: 'error',
|
|
26
|
+
check: (ctx) => ctx.isDestructive === true
|
|
27
|
+
? { id: 'DESTRUCTIVE_GUARD', severity: 'error', rule: 'Destructive operation', detail: 'isDestructive=true — requires explicit user approval', suggestion: 'Set isDestructive=false if safe, or request user confirmation' }
|
|
28
|
+
: null
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'BULK_FILE_GUARD', rule: 'Cap bulk file modifications at 10+', severity: 'warn',
|
|
32
|
+
check: (ctx) => ctx.filesToModify && ctx.filesToModify.length > 10
|
|
33
|
+
? { id: 'BULK_FILE_GUARD', severity: 'warn', rule: 'Bulk file operation', detail: `${ctx.filesToModify.length} files in scope`, suggestion: 'Run nexus_optimize_tokens first' }
|
|
34
|
+
: null
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'NO_PROD_WRITES', rule: 'Block writes to system paths', severity: 'error',
|
|
38
|
+
check: (ctx) => {
|
|
39
|
+
const blocked = ['/etc/', '/usr/', '/bin/', '/sbin/', '/System/'];
|
|
40
|
+
const dangerous = (ctx.filesToModify ?? []).filter(f => blocked.some(p => f.startsWith(p)));
|
|
41
|
+
return dangerous.length > 0
|
|
42
|
+
? { id: 'NO_PROD_WRITES', severity: 'error', rule: 'Protected system path', detail: `Blocked: ${dangerous.join(', ')}`, suggestion: 'These paths cannot be modified without explicit override' }
|
|
43
|
+
: null;
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'MEMORY_FIRST', rule: 'Check memory before researching', severity: 'info',
|
|
48
|
+
check: (ctx) => {
|
|
49
|
+
const kw = ['research', 'look up', 'search for', 'find out', 'investigate'];
|
|
50
|
+
return kw.some(k => ctx.action.toLowerCase().includes(k))
|
|
51
|
+
? { id: 'MEMORY_FIRST', severity: 'info', rule: 'Research without memory check', detail: 'You may already know this', suggestion: 'Call nexus_recall_memory first' }
|
|
52
|
+
: null;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 'NO_SECRETS', rule: 'Block output containing secrets', severity: 'error',
|
|
57
|
+
check: (ctx) => {
|
|
58
|
+
const secretPatterns = [
|
|
59
|
+
/xox[bp]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32}/i,
|
|
60
|
+
/AIza[0-9A-Za-z-_]{35}/,
|
|
61
|
+
/sk-[a-zA-Z0-9]{48}/,
|
|
62
|
+
/sq0csp-[0-9A-Za-z-_]{43}/,
|
|
63
|
+
/access_key_id|secret_access_key|api_key|password|client_secret/i
|
|
64
|
+
];
|
|
65
|
+
const found = secretPatterns.some(p => p.test(ctx.action));
|
|
66
|
+
return found
|
|
67
|
+
? { id: 'NO_SECRETS', severity: 'error', rule: 'Potential secret detected', detail: 'Action contains patterns matching API keys or passwords', suggestion: 'Remove secrets before proceeding' }
|
|
68
|
+
: null;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'NO_INSTALLS', rule: 'Block unauthorized installs', severity: 'error',
|
|
73
|
+
check: (ctx) => {
|
|
74
|
+
const installCmds = ['npm install', 'npm i ', 'yarn add', 'pip install', 'cargo add'];
|
|
75
|
+
const found = installCmds.some(c => ctx.action.toLowerCase().includes(c));
|
|
76
|
+
return found
|
|
77
|
+
? { id: 'NO_INSTALLS', severity: 'error', rule: 'Unauthorized installation', detail: 'Installation commands require explicit user approval', suggestion: 'Set isDestructive=true or ask user' }
|
|
78
|
+
: null;
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'OUTLINE_FIRST', rule: 'Encourage outline before full read', severity: 'info',
|
|
83
|
+
check: (ctx) => {
|
|
84
|
+
const action = ctx.action.toLowerCase();
|
|
85
|
+
if (action.includes('read') && !action.includes('outline') && !action.includes('partial')) {
|
|
86
|
+
return { id: 'OUTLINE_FIRST', severity: 'info', rule: 'Read without outline', detail: 'Reading full files is token-expensive', suggestion: 'Use view_file_outline first' };
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: 'QUALITY_GATES', rule: 'Verify changes with test/build', severity: 'warn',
|
|
93
|
+
check: (ctx) => {
|
|
94
|
+
const action = ctx.action.toLowerCase();
|
|
95
|
+
const hasMod = ctx.filesToModify && ctx.filesToModify.length > 0;
|
|
96
|
+
const hasVerify = action.includes('test') || action.includes('build') || action.includes('verify');
|
|
97
|
+
if (hasMod && !hasVerify) {
|
|
98
|
+
return { id: 'QUALITY_GATES', severity: 'warn', rule: 'Changes without verification', detail: 'Modifying files without a plan to test or build', suggestion: 'Include npm test or npm run build in your plan' };
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
];
|
|
104
|
+
export class GuardrailEngine {
|
|
105
|
+
externalRules = [];
|
|
106
|
+
static CACHE_PATH = path.join(os.homedir(), '.nexus-prime', 'mindkit-cache.json');
|
|
107
|
+
check(ctx) {
|
|
108
|
+
const allRules = [...RULES, ...this.externalRules];
|
|
109
|
+
const violations = [];
|
|
110
|
+
const warnings = [];
|
|
111
|
+
for (const rule of allRules) {
|
|
112
|
+
const r = rule.check(ctx);
|
|
113
|
+
if (!r)
|
|
114
|
+
continue;
|
|
115
|
+
if (r.severity === 'error')
|
|
116
|
+
violations.push(r);
|
|
117
|
+
else
|
|
118
|
+
warnings.push(r);
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
passed: violations.length === 0,
|
|
122
|
+
violations,
|
|
123
|
+
warnings,
|
|
124
|
+
score: violations.length === 0 ? Math.max(0, 1 - warnings.length * 0.1) : 0
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
format(result) {
|
|
128
|
+
const lines = [];
|
|
129
|
+
lines.push(result.passed
|
|
130
|
+
? `✅ PASSED (score: ${Math.round(result.score * 100)}%)`
|
|
131
|
+
: `❌ FAILED — ${result.violations.length} violation(s)`);
|
|
132
|
+
for (const v of result.violations)
|
|
133
|
+
lines.push(`\n 🚫 [${v.id}] ${v.rule}\n ${v.detail}\n → ${v.suggestion}`);
|
|
134
|
+
for (const w of result.warnings)
|
|
135
|
+
lines.push(`\n ${w.severity === 'info' ? 'ℹ️' : '⚠️'} [${w.id}] ${w.rule}\n ${w.detail}\n → ${w.suggestion}`);
|
|
136
|
+
return lines.join('\n');
|
|
137
|
+
}
|
|
138
|
+
listRules() {
|
|
139
|
+
return [...RULES, ...this.externalRules].map(r => ({ id: r.id, rule: r.rule, severity: r.severity }));
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Sync guardrail rules from the MindKit GitHub repo.
|
|
143
|
+
* Fetches from sir-ad/mindkit, caches locally for 1 hour.
|
|
144
|
+
* Falls back silently to bundled rules if offline.
|
|
145
|
+
*/
|
|
146
|
+
async syncFromGitHub() {
|
|
147
|
+
// Check cache first (1-hour TTL)
|
|
148
|
+
try {
|
|
149
|
+
if (fs.existsSync(GuardrailEngine.CACHE_PATH)) {
|
|
150
|
+
const cached = JSON.parse(fs.readFileSync(GuardrailEngine.CACHE_PATH, 'utf-8'));
|
|
151
|
+
const age = Date.now() - (cached.timestamp ?? 0);
|
|
152
|
+
if (age < 3600_000 && Array.isArray(cached.rules)) {
|
|
153
|
+
this.loadExternalRules(cached.rules);
|
|
154
|
+
return { synced: true, ruleCount: this.externalRules.length, source: 'cache' };
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch { /* cache miss */ }
|
|
159
|
+
// Fetch from GitHub
|
|
160
|
+
try {
|
|
161
|
+
const url = 'https://raw.githubusercontent.com/sir-ad/mindkit/main/src/guardrails.ts';
|
|
162
|
+
const response = await fetch(url);
|
|
163
|
+
if (!response.ok)
|
|
164
|
+
throw new Error(`HTTP ${response.status}`);
|
|
165
|
+
const content = await response.text();
|
|
166
|
+
// Extract rule IDs and descriptions from the fetched source
|
|
167
|
+
const ruleMatches = [...content.matchAll(/id:\s*['"]([^'"]+)['"]\s*,\s*rule:\s*['"]([^'"]+)['"]/g)];
|
|
168
|
+
const fetchedRules = ruleMatches.map(m => ({ id: m[1], rule: m[2] }));
|
|
169
|
+
// Cache the fetched data
|
|
170
|
+
const cacheDir = path.dirname(GuardrailEngine.CACHE_PATH);
|
|
171
|
+
if (!fs.existsSync(cacheDir))
|
|
172
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
173
|
+
fs.writeFileSync(GuardrailEngine.CACHE_PATH, JSON.stringify({
|
|
174
|
+
timestamp: Date.now(),
|
|
175
|
+
rules: fetchedRules,
|
|
176
|
+
sourceUrl: url
|
|
177
|
+
}));
|
|
178
|
+
this.loadExternalRules(fetchedRules);
|
|
179
|
+
return { synced: true, ruleCount: this.externalRules.length, source: 'github' };
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// Offline — use bundled rules only
|
|
183
|
+
return { synced: false, ruleCount: RULES.length, source: 'bundled' };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
loadExternalRules(fetched) {
|
|
187
|
+
// Only add rules that don't already exist in the built-in set
|
|
188
|
+
const builtinIds = new Set(RULES.map(r => r.id));
|
|
189
|
+
const newRules = fetched
|
|
190
|
+
.filter(r => !builtinIds.has(r.id))
|
|
191
|
+
.map(r => ({
|
|
192
|
+
id: r.id,
|
|
193
|
+
rule: r.rule,
|
|
194
|
+
severity: 'info',
|
|
195
|
+
check: () => null // External rules are informational — no active enforcement yet
|
|
196
|
+
}));
|
|
197
|
+
this.externalRules = newRules;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Bidirectional MindKit sync — push Nexus findings back to MindKit.
|
|
201
|
+
* Writes evolution candidates, session learnings, and guardrail outcomes
|
|
202
|
+
* to MindKit's memory/sessions directory via GitHub API.
|
|
203
|
+
*/
|
|
204
|
+
async pushFindingsToMindKit(findings) {
|
|
205
|
+
const token = process.env.GITHUB_TOKEN;
|
|
206
|
+
if (!token)
|
|
207
|
+
return { pushed: false, reason: 'No GITHUB_TOKEN — skipping MindKit push' };
|
|
208
|
+
try {
|
|
209
|
+
const sessionDate = new Date().toISOString().split('T')[0];
|
|
210
|
+
const content = [
|
|
211
|
+
`# Nexus Prime Session: ${findings.sessionId}`,
|
|
212
|
+
`Date: ${sessionDate}`,
|
|
213
|
+
'',
|
|
214
|
+
'## Findings',
|
|
215
|
+
...findings.findings.map(f => `- ${f}`),
|
|
216
|
+
'',
|
|
217
|
+
'## Hotspots',
|
|
218
|
+
...findings.hotspots.map(([file, count]) => `- ${count}x ${file}`),
|
|
219
|
+
'',
|
|
220
|
+
'## Recommendations',
|
|
221
|
+
...findings.recommendations.map(r => `- ${r}`),
|
|
222
|
+
].join('\n');
|
|
223
|
+
const encoded = Buffer.from(content).toString('base64');
|
|
224
|
+
const filePath = `memory/sessions/nexus-${sessionDate}-${findings.sessionId.slice(0, 8)}.md`;
|
|
225
|
+
const res = await fetch(`https://api.github.com/repos/sir-ad/mindkit/contents/${filePath}`, {
|
|
226
|
+
method: 'PUT',
|
|
227
|
+
headers: {
|
|
228
|
+
'Authorization': `Bearer ${token}`,
|
|
229
|
+
'Content-Type': 'application/json',
|
|
230
|
+
'Accept': 'application/vnd.github+json',
|
|
231
|
+
},
|
|
232
|
+
body: JSON.stringify({
|
|
233
|
+
message: `nexus-prime: session findings ${sessionDate}`,
|
|
234
|
+
content: encoded,
|
|
235
|
+
}),
|
|
236
|
+
});
|
|
237
|
+
if (res.ok) {
|
|
238
|
+
return { pushed: true, reason: `Pushed to mindkit/${filePath}` };
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
const errText = await res.text();
|
|
242
|
+
return { pushed: false, reason: `GitHub API ${res.status}: ${errText.slice(0, 100)}` };
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch (err) {
|
|
246
|
+
const msg = err instanceof Error ? err.message : 'Unknown error';
|
|
247
|
+
return { pushed: false, reason: `Push failed: ${msg}` };
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=guardrails-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails-bridge.js","sourceRoot":"","sources":["../../src/engines/guardrails-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus Prime Engines
|
|
3
|
+
*
|
|
4
|
+
* All core engines for the Nexus Prime system.
|
|
5
|
+
*/
|
|
6
|
+
export { TokenSupremacyEngine as TokenOptimizer, createTokenSupremacyEngine as createTokenOptimizer } from './token-supremacy.js';
|
|
7
|
+
export { SLERPCompressor, createSLERPCompressor } from './token-optimizer.js';
|
|
8
|
+
export { ContextEngine, createContextEngine } from './context.js';
|
|
9
|
+
export { MemoryEngine, createMemoryEngine, MemoryItem } from './memory.js';
|
|
10
|
+
export { OrchestratorEngine, createOrchestrator, Agent, AgentType, Task } from './orchestrator.js';
|
|
11
|
+
export { CacheManager, createCacheManager, CacheEntry, AgentDelta } from './cache-manager.js';
|
|
12
|
+
export { MetaLearner, AdaptiveInterpolator, TokenRetention, createMetaLearner, createAdaptiveInterpolator, createTokenRetention, CompressionFeatures } from './meta-learner.js';
|
|
13
|
+
export { BenchmarkSuite, createBenchmarkSuite, EXPECTED_RESULTS, BenchmarkResult } from './benchmark.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engines/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,0BAA0B,IAAI,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClI,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EAChB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus Prime Engines
|
|
3
|
+
*
|
|
4
|
+
* All core engines for the Nexus Prime system.
|
|
5
|
+
*/
|
|
6
|
+
export { TokenSupremacyEngine as TokenOptimizer, createTokenSupremacyEngine as createTokenOptimizer } from './token-supremacy.js';
|
|
7
|
+
export { SLERPCompressor, createSLERPCompressor } from './token-optimizer.js';
|
|
8
|
+
export { ContextEngine, createContextEngine } from './context.js';
|
|
9
|
+
export { MemoryEngine, createMemoryEngine } from './memory.js';
|
|
10
|
+
export { OrchestratorEngine, createOrchestrator } from './orchestrator.js';
|
|
11
|
+
export { CacheManager, createCacheManager } from './cache-manager.js';
|
|
12
|
+
export { MetaLearner, AdaptiveInterpolator, TokenRetention, createMetaLearner, createAdaptiveInterpolator, createTokenRetention } from './meta-learner.js';
|
|
13
|
+
export { BenchmarkSuite, createBenchmarkSuite, EXPECTED_RESULTS } from './benchmark.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engines/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,0BAA0B,IAAI,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClI,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAc,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAA0B,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAA0B,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC"}
|