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.
Files changed (134) hide show
  1. package/README.md +253 -0
  2. package/dist/agents/adapters/mcp.d.ts +21 -0
  3. package/dist/agents/adapters/mcp.d.ts.map +1 -0
  4. package/dist/agents/adapters/mcp.js +447 -0
  5. package/dist/agents/adapters/mcp.js.map +1 -0
  6. package/dist/agents/adapters.d.ts +57 -0
  7. package/dist/agents/adapters.d.ts.map +1 -0
  8. package/dist/agents/adapters.js +151 -0
  9. package/dist/agents/adapters.js.map +1 -0
  10. package/dist/agents/coordinator.d.ts +75 -0
  11. package/dist/agents/coordinator.d.ts.map +1 -0
  12. package/dist/agents/coordinator.js +339 -0
  13. package/dist/agents/coordinator.js.map +1 -0
  14. package/dist/agents/core/types.d.ts +157 -0
  15. package/dist/agents/core/types.d.ts.map +1 -0
  16. package/dist/agents/core/types.js +5 -0
  17. package/dist/agents/core/types.js.map +1 -0
  18. package/dist/agents/learner.d.ts +25 -0
  19. package/dist/agents/learner.d.ts.map +1 -0
  20. package/dist/agents/learner.js +88 -0
  21. package/dist/agents/learner.js.map +1 -0
  22. package/dist/cli.d.ts +6 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +237 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/config.d.ts +74 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +73 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/core/evolution.d.ts +122 -0
  31. package/dist/core/evolution.d.ts.map +1 -0
  32. package/dist/core/evolution.js +319 -0
  33. package/dist/core/evolution.js.map +1 -0
  34. package/dist/core/memory.d.ts +96 -0
  35. package/dist/core/memory.d.ts.map +1 -0
  36. package/dist/core/memory.js +304 -0
  37. package/dist/core/memory.js.map +1 -0
  38. package/dist/core/optimize.d.ts +100 -0
  39. package/dist/core/optimize.d.ts.map +1 -0
  40. package/dist/core/optimize.js +263 -0
  41. package/dist/core/optimize.js.map +1 -0
  42. package/dist/core/types.d.ts +155 -0
  43. package/dist/core/types.d.ts.map +1 -0
  44. package/dist/core/types.js +5 -0
  45. package/dist/core/types.js.map +1 -0
  46. package/dist/core/wave.d.ts +55 -0
  47. package/dist/core/wave.d.ts.map +1 -0
  48. package/dist/core/wave.js +119 -0
  49. package/dist/core/wave.js.map +1 -0
  50. package/dist/engines/benchmark.d.ts +76 -0
  51. package/dist/engines/benchmark.d.ts.map +1 -0
  52. package/dist/engines/benchmark.js +167 -0
  53. package/dist/engines/benchmark.js.map +1 -0
  54. package/dist/engines/cache-manager.d.ts +75 -0
  55. package/dist/engines/cache-manager.d.ts.map +1 -0
  56. package/dist/engines/cache-manager.js +200 -0
  57. package/dist/engines/cache-manager.js.map +1 -0
  58. package/dist/engines/context.d.ts +50 -0
  59. package/dist/engines/context.d.ts.map +1 -0
  60. package/dist/engines/context.js +99 -0
  61. package/dist/engines/context.js.map +1 -0
  62. package/dist/engines/embedder.d.ts +55 -0
  63. package/dist/engines/embedder.d.ts.map +1 -0
  64. package/dist/engines/embedder.js +223 -0
  65. package/dist/engines/embedder.js.map +1 -0
  66. package/dist/engines/guardrails-bridge.d.ts +64 -0
  67. package/dist/engines/guardrails-bridge.d.ts.map +1 -0
  68. package/dist/engines/guardrails-bridge.js +251 -0
  69. package/dist/engines/guardrails-bridge.js.map +1 -0
  70. package/dist/engines/index.d.ts +14 -0
  71. package/dist/engines/index.d.ts.map +1 -0
  72. package/dist/engines/index.js +14 -0
  73. package/dist/engines/index.js.map +1 -0
  74. package/dist/engines/memory.d.ts +76 -0
  75. package/dist/engines/memory.d.ts.map +1 -0
  76. package/dist/engines/memory.js +431 -0
  77. package/dist/engines/memory.js.map +1 -0
  78. package/dist/engines/meta-learner.d.ts +87 -0
  79. package/dist/engines/meta-learner.d.ts.map +1 -0
  80. package/dist/engines/meta-learner.js +214 -0
  81. package/dist/engines/meta-learner.js.map +1 -0
  82. package/dist/engines/orchestrator.d.ts +69 -0
  83. package/dist/engines/orchestrator.d.ts.map +1 -0
  84. package/dist/engines/orchestrator.js +175 -0
  85. package/dist/engines/orchestrator.js.map +1 -0
  86. package/dist/engines/pod-network.d.ts +31 -0
  87. package/dist/engines/pod-network.d.ts.map +1 -0
  88. package/dist/engines/pod-network.js +108 -0
  89. package/dist/engines/pod-network.js.map +1 -0
  90. package/dist/engines/token-optimizer.d.ts +53 -0
  91. package/dist/engines/token-optimizer.d.ts.map +1 -0
  92. package/dist/engines/token-optimizer.js +115 -0
  93. package/dist/engines/token-optimizer.js.map +1 -0
  94. package/dist/engines/token-supremacy.d.ts +86 -0
  95. package/dist/engines/token-supremacy.d.ts.map +1 -0
  96. package/dist/engines/token-supremacy.js +403 -0
  97. package/dist/engines/token-supremacy.js.map +1 -0
  98. package/dist/index.d.ts +99 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +302 -0
  101. package/dist/index.js.map +1 -0
  102. package/dist/nexus-prime.d.ts +15 -0
  103. package/dist/nexus-prime.d.ts.map +1 -0
  104. package/dist/nexus-prime.js +15 -0
  105. package/dist/nexus-prime.js.map +1 -0
  106. package/dist/phantom/index.d.ts +135 -0
  107. package/dist/phantom/index.d.ts.map +1 -0
  108. package/dist/phantom/index.js +286 -0
  109. package/dist/phantom/index.js.map +1 -0
  110. package/dist/phantom/merge-oracle.d.ts +35 -0
  111. package/dist/phantom/merge-oracle.d.ts.map +1 -0
  112. package/dist/phantom/merge-oracle.js +189 -0
  113. package/dist/phantom/merge-oracle.js.map +1 -0
  114. package/dist/phantom/phase4-orchestrator.d.ts +14 -0
  115. package/dist/phantom/phase4-orchestrator.d.ts.map +1 -0
  116. package/dist/phantom/phase4-orchestrator.js +488 -0
  117. package/dist/phantom/phase4-orchestrator.js.map +1 -0
  118. package/dist/verify-guardrails.d.ts +2 -0
  119. package/dist/verify-guardrails.d.ts.map +1 -0
  120. package/dist/verify-guardrails.js +48 -0
  121. package/dist/verify-guardrails.js.map +1 -0
  122. package/dist/verify-pod-sync.d.ts +2 -0
  123. package/dist/verify-pod-sync.d.ts.map +1 -0
  124. package/dist/verify-pod-sync.js +41 -0
  125. package/dist/verify-pod-sync.js.map +1 -0
  126. package/dist/verify-substrate.d.ts +2 -0
  127. package/dist/verify-substrate.d.ts.map +1 -0
  128. package/dist/verify-substrate.js +41 -0
  129. package/dist/verify-substrate.js.map +1 -0
  130. package/dist/verify-token-scoring.d.ts +2 -0
  131. package/dist/verify-token-scoring.d.ts.map +1 -0
  132. package/dist/verify-token-scoring.js +37 -0
  133. package/dist/verify-token-scoring.js.map +1 -0
  134. 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":"AAAA;;;;;;;GAOG;AAKH,gFAAgF;AAChF,kDAAkD;AAClD,gFAAgF;AAEhF,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,yBAAyB;AAEjD,mDAAmD;AACnD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACvB,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACnE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;IAChE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;IAClE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK;IACjE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;CACpE,CAAC,CAAC;AAEH,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,CAAW,EAAE,CAAW;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;YAAE,OAAO,GAAG,CAAC,CAAC,WAAW;QAEhD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC;QACjC,oCAAoC;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,CAAW,EAAE,CAAW;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAE1B,oDAAoD;QACpD,gGAAgG;QAChG,OAAO,CAAC,CAAC,CAAC,yCAAyC;IACvD,CAAC;IAED,mDAAmD;IACnD,OAAO,CAAC,CAAW;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,IAAI,OAAO;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC5C,CAAC;CACJ,CAAC;AAEF,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,MAAM,OAAO,QAAQ;IACT,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,wBAAwB;IACrE,GAAG,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAQ,oBAAoB;IACjE,QAAQ,GAAW,CAAC,CAAC;IACrB,OAAO,CAAU;IACjB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,QAAQ,CAAS;IAEzB;QACI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,KAAK,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,sCAAsC,CAAC;QACpF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,wBAAwB,CAAC;IAC9E,CAAC;IAED,4EAA4E;IAE5E,sCAAsC;IACtC,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACL,oCAAoC;YACxC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,IAAY,EAAE,YAAuB,EAAE,QAAgB,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9C,6DAA6D;QAC7D,8CAA8C;QAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,wBAAwB;QAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,aAAa;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/D,sEAAsE;QACtE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAEhE,OAAO,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,wEAAwE;IACxE,aAAa,CAAC,IAAc;QACxB,yCAAyC;QACzC,MAAM,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;QAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAEjB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,gDAAgD;YAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5C,CAAC;IAED,4EAA4E;IAE5E,UAAU,CAAC,IAAY;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAwB,IAAI,GAAG,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW;YAC5D,CAAC;iBAAM,CAAC;gBACJ,8BAA8B;gBAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,QAAQ,CAAC,IAAY;QACvB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;aAC3C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,wBAAwB;aACvD,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyC,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,4EAA4E;IAE5E,gBAAgB,CAAC,CAAW,EAAE,CAAW;QACrC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACpC,IAAI,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,4EAA4E;IAEpE,QAAQ,CAAC,IAAY;QACzB,OAAO,IAAI;aACN,WAAW,EAAE;aACb,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;aAC/B,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,SAAS,CAAC,CAAW;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,QAAQ,CAAC,CAAS;QACtB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC"}
@@ -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"}