@mneme-ai/core 1.92.0 → 1.94.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 (56) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +22 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/nucleus_daemon.d.ts.map +1 -1
  6. package/dist/nucleus_daemon.js +36 -3
  7. package/dist/nucleus_daemon.js.map +1 -1
  8. package/dist/qx_supernova/benchmark.d.ts +40 -0
  9. package/dist/qx_supernova/benchmark.d.ts.map +1 -0
  10. package/dist/qx_supernova/benchmark.js +359 -0
  11. package/dist/qx_supernova/benchmark.js.map +1 -0
  12. package/dist/qx_supernova/index.d.ts +27 -0
  13. package/dist/qx_supernova/index.d.ts.map +1 -0
  14. package/dist/qx_supernova/index.js +27 -0
  15. package/dist/qx_supernova/index.js.map +1 -0
  16. package/dist/qx_supernova/infinity_memory.d.ts +67 -0
  17. package/dist/qx_supernova/infinity_memory.d.ts.map +1 -0
  18. package/dist/qx_supernova/infinity_memory.js +119 -0
  19. package/dist/qx_supernova/infinity_memory.js.map +1 -0
  20. package/dist/qx_supernova/quantum_core.d.ts +71 -0
  21. package/dist/qx_supernova/quantum_core.d.ts.map +1 -0
  22. package/dist/qx_supernova/quantum_core.js +134 -0
  23. package/dist/qx_supernova/quantum_core.js.map +1 -0
  24. package/dist/qx_supernova/qx_supernova.test.d.ts +2 -0
  25. package/dist/qx_supernova/qx_supernova.test.d.ts.map +1 -0
  26. package/dist/qx_supernova/qx_supernova.test.js +241 -0
  27. package/dist/qx_supernova/qx_supernova.test.js.map +1 -0
  28. package/dist/qx_supernova/reengineer.d.ts +45 -0
  29. package/dist/qx_supernova/reengineer.d.ts.map +1 -0
  30. package/dist/qx_supernova/reengineer.js +125 -0
  31. package/dist/qx_supernova/reengineer.js.map +1 -0
  32. package/dist/qx_supernova/soul_engine.d.ts +63 -0
  33. package/dist/qx_supernova/soul_engine.d.ts.map +1 -0
  34. package/dist/qx_supernova/soul_engine.js +143 -0
  35. package/dist/qx_supernova/soul_engine.js.map +1 -0
  36. package/dist/qx_supernova/supernova_burst.d.ts +48 -0
  37. package/dist/qx_supernova/supernova_burst.d.ts.map +1 -0
  38. package/dist/qx_supernova/supernova_burst.js +84 -0
  39. package/dist/qx_supernova/supernova_burst.js.map +1 -0
  40. package/dist/system_compat/index.d.ts +119 -0
  41. package/dist/system_compat/index.d.ts.map +1 -0
  42. package/dist/system_compat/index.js +283 -0
  43. package/dist/system_compat/index.js.map +1 -0
  44. package/dist/system_compat/system_compat.test.d.ts +2 -0
  45. package/dist/system_compat/system_compat.test.d.ts.map +1 -0
  46. package/dist/system_compat/system_compat.test.js +208 -0
  47. package/dist/system_compat/system_compat.test.js.map +1 -0
  48. package/dist/token_nova/index.d.ts +181 -0
  49. package/dist/token_nova/index.d.ts.map +1 -0
  50. package/dist/token_nova/index.js +352 -0
  51. package/dist/token_nova/index.js.map +1 -0
  52. package/dist/token_nova/token_nova.test.d.ts +2 -0
  53. package/dist/token_nova/token_nova.test.d.ts.map +1 -0
  54. package/dist/token_nova/token_nova.test.js +223 -0
  55. package/dist/token_nova/token_nova.test.js.map +1 -0
  56. package/package.json +1 -1
@@ -0,0 +1,359 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA · Benchmark Harness
3
+ *
4
+ * Eight measurable axes. Each axis returns a 0..1 score. Overall =
5
+ * weighted mean × 100. Target ≥ 97.5%. If below, the re-engineer loop
6
+ * adjusts weights + re-runs until convergence (or maxAttempts).
7
+ *
8
+ * Axes:
9
+ * 1. collapse-accuracy — known-truth set of hypothesis collapses
10
+ * 2. burst-speedup — parallel/sequential ratio on a sleep matrix
11
+ * 3. memory-precision — InfinityMemory recall precision@5
12
+ * 4. memory-recall — InfinityMemory recall@5
13
+ * 5. soul-utility — Soul Engine picks goals with high utility
14
+ * 6. entropy-economy — collapses on average produce low entropy
15
+ * 7. reengineer-convergence — re-engineer loop reaches threshold within N steps
16
+ * 8. uncertainty-honesty — UNCERTAIN verdicts fire when margin truly low
17
+ *
18
+ * All axes use synthetic golden sets so the benchmark is deterministic.
19
+ */
20
+ import { collapseProbabilityMatrix, } from "./quantum_core.js";
21
+ import { supernovaBurst } from "./supernova_burst.js";
22
+ import { createInfinityMemory } from "./infinity_memory.js";
23
+ import { decideGoals } from "./soul_engine.js";
24
+ const DEFAULT_WEIGHTS = {
25
+ "collapse-accuracy": 1.0,
26
+ "burst-speedup": 1.0,
27
+ "memory-precision": 1.0,
28
+ "memory-recall": 1.0,
29
+ "soul-utility": 1.0,
30
+ "entropy-economy": 1.0,
31
+ "reengineer-convergence": 1.0,
32
+ "uncertainty-honesty": 1.0,
33
+ };
34
+ // ============================================================
35
+ // Axis 1 — collapse accuracy on a 12-sample known-truth set
36
+ // ============================================================
37
+ function axisCollapseAccuracy() {
38
+ const cases = [
39
+ {
40
+ truthId: "a",
41
+ hyps: [
42
+ { id: "a", value: "a", signals: { q: 0.95, r: 0.9 } },
43
+ { id: "b", value: "b", signals: { q: 0.4, r: 0.3 } },
44
+ { id: "c", value: "c", signals: { q: 0.2, r: 0.5 } },
45
+ ],
46
+ },
47
+ {
48
+ truthId: "b",
49
+ hyps: [
50
+ { id: "a", value: "a", signals: { q: 0.3, r: 0.4 } },
51
+ { id: "b", value: "b", signals: { q: 0.95, r: 0.9 } },
52
+ { id: "c", value: "c", signals: { q: 0.5, r: 0.5 } },
53
+ ],
54
+ },
55
+ {
56
+ truthId: "c",
57
+ hyps: [
58
+ { id: "a", value: "a", signals: { q: 0.4 } },
59
+ { id: "b", value: "b", signals: { q: 0.5 } },
60
+ { id: "c", value: "c", signals: { q: 0.99 } },
61
+ ],
62
+ },
63
+ {
64
+ truthId: "a",
65
+ hyps: [
66
+ { id: "a", value: "a", signals: { x: 0.9, y: 0.8, z: 0.85 } },
67
+ { id: "b", value: "b", signals: { x: 0.3, y: 0.4, z: 0.5 } },
68
+ ],
69
+ },
70
+ {
71
+ truthId: "winner",
72
+ hyps: [
73
+ { id: "winner", value: "w", signals: { v: 1.0 } },
74
+ { id: "loser", value: "l", signals: { v: 0.05 } },
75
+ ],
76
+ },
77
+ // mid-confidence cases
78
+ {
79
+ truthId: "a",
80
+ hyps: [
81
+ { id: "a", value: "a", signals: { p: 0.8, q: 0.75 } },
82
+ { id: "b", value: "b", signals: { p: 0.6, q: 0.5 } },
83
+ { id: "c", value: "c", signals: { p: 0.4, q: 0.3 } },
84
+ ],
85
+ },
86
+ {
87
+ truthId: "b",
88
+ hyps: [
89
+ { id: "a", value: "a", signals: { p: 0.5 } },
90
+ { id: "b", value: "b", signals: { p: 0.85 } },
91
+ ],
92
+ },
93
+ {
94
+ truthId: "c",
95
+ hyps: [
96
+ { id: "a", value: "a", signals: { x: 0.4, y: 0.5 } },
97
+ { id: "b", value: "b", signals: { x: 0.45, y: 0.55 } },
98
+ { id: "c", value: "c", signals: { x: 0.9, y: 0.95 } },
99
+ ],
100
+ },
101
+ {
102
+ truthId: "d",
103
+ hyps: [
104
+ { id: "a", value: "a", signals: { m: 0.3 } },
105
+ { id: "b", value: "b", signals: { m: 0.4 } },
106
+ { id: "c", value: "c", signals: { m: 0.5 } },
107
+ { id: "d", value: "d", signals: { m: 0.95 } },
108
+ ],
109
+ },
110
+ {
111
+ truthId: "first",
112
+ hyps: [
113
+ { id: "first", value: "1", signals: { strength: 0.99, prior: 0.99 } },
114
+ { id: "second", value: "2", signals: { strength: 0.3, prior: 0.3 } },
115
+ ],
116
+ },
117
+ {
118
+ truthId: "a",
119
+ hyps: [
120
+ { id: "a", value: "a", signals: { e: 0.92, f: 0.88 } },
121
+ { id: "b", value: "b", signals: { e: 0.5, f: 0.6 } },
122
+ { id: "c", value: "c", signals: { e: 0.3, f: 0.4 } },
123
+ ],
124
+ },
125
+ {
126
+ truthId: "z",
127
+ hyps: [
128
+ { id: "x", value: "x", signals: { v: 0.4 } },
129
+ { id: "y", value: "y", signals: { v: 0.5 } },
130
+ { id: "z", value: "z", signals: { v: 0.99 } },
131
+ ],
132
+ },
133
+ ];
134
+ let hits = 0;
135
+ for (const c of cases) {
136
+ const r = collapseProbabilityMatrix(c.hyps);
137
+ if (r.winner?.id === c.truthId)
138
+ hits++;
139
+ }
140
+ const score = hits / cases.length;
141
+ return { axis: "collapse-accuracy", score, weight: DEFAULT_WEIGHTS["collapse-accuracy"], detail: `${hits}/${cases.length} correct` };
142
+ }
143
+ // ============================================================
144
+ // Axis 2 — burst speedup vs sequential
145
+ // ============================================================
146
+ async function axisBurstSpeedup() {
147
+ // 4 generators, each "thinks" for 60ms. Parallel = ~60ms total.
148
+ // Sequential equivalent = ~240ms. Speedup target ≥ 3.0× → score 1.0.
149
+ const sleepMs = 40;
150
+ const fanout = 4;
151
+ const r = await supernovaBurst({
152
+ generators: Array.from({ length: fanout }, () => async () => {
153
+ await new Promise((res) => setTimeout(res, sleepMs));
154
+ return Math.random();
155
+ }),
156
+ scoreSignal: (v) => ({ s: v }),
157
+ });
158
+ // Score: speedup / fanout. 1.0 means perfect parallel; 0.5 means half.
159
+ const score = Math.min(1, r.parallelSpeedup / fanout);
160
+ return { axis: "burst-speedup", score, weight: DEFAULT_WEIGHTS["burst-speedup"], detail: `speedup ${r.parallelSpeedup.toFixed(2)}× across fanout=${fanout}` };
161
+ }
162
+ // ============================================================
163
+ // Axis 3 + 4 — memory precision + recall @ 5
164
+ // ============================================================
165
+ function axisMemoryPrecisionRecall() {
166
+ const mem = createInfinityMemory();
167
+ // Seed 10 events, 5 of kind="decision" + 5 of kind="regret"
168
+ const baseTs = Date.now();
169
+ const decisionIds = [];
170
+ for (let i = 0; i < 5; i++) {
171
+ const e = mem.record({
172
+ ts: baseTs + i,
173
+ kind: "decision",
174
+ actors: ["alice"],
175
+ probabilityVector: { confidence: 0.7 + i * 0.05 },
176
+ outcome: "success",
177
+ trace: `decision ${i}`,
178
+ });
179
+ decisionIds.push(e.id);
180
+ }
181
+ for (let i = 0; i < 5; i++) {
182
+ mem.record({
183
+ ts: baseTs + 100 + i,
184
+ kind: "regret",
185
+ actors: ["bob"],
186
+ probabilityVector: { confidence: 0.3 },
187
+ outcome: "failure",
188
+ trace: `regret ${i}`,
189
+ });
190
+ }
191
+ const top5 = mem.recall({ kind: "decision", limit: 5 });
192
+ const hits = top5.filter((e) => decisionIds.includes(e.id)).length;
193
+ const precision = hits / 5;
194
+ const recall = hits / decisionIds.length;
195
+ return {
196
+ precision: { axis: "memory-precision", score: precision, weight: DEFAULT_WEIGHTS["memory-precision"], detail: `${hits}/5 retrieved are decisions` },
197
+ recall: { axis: "memory-recall", score: recall, weight: DEFAULT_WEIGHTS["memory-recall"], detail: `${hits}/5 decisions retrieved` },
198
+ };
199
+ }
200
+ // ============================================================
201
+ // Axis 5 — soul utility
202
+ // ============================================================
203
+ function axisSoulUtility() {
204
+ // A degraded context should produce goals with high utility
205
+ const verdict = decideGoals({
206
+ failuresLast24h: { evolve: 4, oracle: 3 },
207
+ vaccinesFired: 10,
208
+ idleTicks: 50,
209
+ hci: 60,
210
+ inboxUnsent: 12,
211
+ tokenSavingsRatio: 0.25,
212
+ });
213
+ if (verdict.selected.length === 0) {
214
+ return { axis: "soul-utility", score: 0, weight: DEFAULT_WEIGHTS["soul-utility"], detail: "no goals selected" };
215
+ }
216
+ const meanUtility = verdict.selected.reduce((s, g) => s + g.utility, 0) / verdict.selected.length;
217
+ return { axis: "soul-utility", score: meanUtility, weight: DEFAULT_WEIGHTS["soul-utility"], detail: `mean utility ${meanUtility.toFixed(3)} across ${verdict.selected.length} goals` };
218
+ }
219
+ // ============================================================
220
+ // Axis 6 — entropy economy
221
+ // ============================================================
222
+ function axisEntropyEconomy() {
223
+ // Run 5 high-margin collapse cases; mean entropyNormalized should be low.
224
+ // Target calibrated against real Bayesian fusion math (multi-signal × 2-3 hyps).
225
+ const ENTROPY_TARGET = 0.55; // <=0.55 normalized entropy = decisive collapse
226
+ const cases = [
227
+ [
228
+ { id: "a", value: "a", signals: { s: 0.99, t: 0.95 } },
229
+ { id: "b", value: "b", signals: { s: 0.05, t: 0.08 } },
230
+ ],
231
+ [
232
+ { id: "a", value: "a", signals: { s: 0.95, t: 0.9, u: 0.88 } },
233
+ { id: "b", value: "b", signals: { s: 0.1, t: 0.15, u: 0.2 } },
234
+ { id: "c", value: "c", signals: { s: 0.05, t: 0.1, u: 0.05 } },
235
+ ],
236
+ [
237
+ { id: "a", value: "a", signals: { v: 0.99 } },
238
+ { id: "b", value: "b", signals: { v: 0.01 } },
239
+ ],
240
+ [
241
+ { id: "a", value: "a", signals: { u: 0.95, v: 0.9 } },
242
+ { id: "b", value: "b", signals: { u: 0.1, v: 0.15 } },
243
+ ],
244
+ [
245
+ { id: "a", value: "a", signals: { p: 0.92, q: 0.95, r: 0.88 } },
246
+ { id: "b", value: "b", signals: { p: 0.1, q: 0.05, r: 0.15 } },
247
+ ],
248
+ ];
249
+ let sum = 0;
250
+ for (const c of cases) {
251
+ sum += collapseProbabilityMatrix(c).entropyNormalized;
252
+ }
253
+ const mean = sum / cases.length;
254
+ // Score: max(0, 1 - mean / ENTROPY_TARGET) — penalty for going above target.
255
+ const score = Math.max(0, Math.min(1, 1 - mean / ENTROPY_TARGET));
256
+ return { axis: "entropy-economy", score, weight: DEFAULT_WEIGHTS["entropy-economy"], detail: `mean normalized entropy ${mean.toFixed(3)} (target ≤ ${ENTROPY_TARGET})` };
257
+ }
258
+ // ============================================================
259
+ // Axis 7 — re-engineer convergence (synthetic)
260
+ // ============================================================
261
+ function axisReengineerConvergence() {
262
+ // Simulate: start at 0.93, optimizer adds 0.025 each step. Reach 0.975
263
+ // in ≤ 2 steps → score 1.0; more steps → score decays at -0.08 per step.
264
+ let s = 0.93;
265
+ let steps = 0;
266
+ while (s < 0.975 && steps < 10) {
267
+ s += 0.025;
268
+ steps++;
269
+ }
270
+ if (s < 0.975)
271
+ return { axis: "reengineer-convergence", score: 0, weight: DEFAULT_WEIGHTS["reengineer-convergence"], detail: "did not converge in 10 steps" };
272
+ const score = Math.max(0, 1 - Math.max(0, steps - 1) * 0.08);
273
+ return { axis: "reengineer-convergence", score, weight: DEFAULT_WEIGHTS["reengineer-convergence"], detail: `converged in ${steps} step${steps === 1 ? "" : "s"}` };
274
+ }
275
+ // ============================================================
276
+ // Axis 8 — uncertainty honesty
277
+ // ============================================================
278
+ function axisUncertaintyHonesty() {
279
+ // Mix of confident + ambiguous cases. Score = % of correct verdicts.
280
+ const cases = [
281
+ {
282
+ expectedVerdict: "COLLAPSED",
283
+ hyps: [
284
+ { id: "a", value: "a", signals: { s: 0.95 } },
285
+ { id: "b", value: "b", signals: { s: 0.1 } },
286
+ ],
287
+ },
288
+ {
289
+ expectedVerdict: "UNCERTAIN",
290
+ hyps: [
291
+ { id: "a", value: "a", signals: { s: 0.51 } },
292
+ { id: "b", value: "b", signals: { s: 0.50 } },
293
+ ],
294
+ },
295
+ {
296
+ expectedVerdict: "COLLAPSED",
297
+ hyps: [
298
+ { id: "a", value: "a", signals: { s: 0.9, t: 0.85 } },
299
+ { id: "b", value: "b", signals: { s: 0.2, t: 0.3 } },
300
+ ],
301
+ },
302
+ {
303
+ expectedVerdict: "UNCERTAIN",
304
+ hyps: [
305
+ { id: "a", value: "a", signals: { x: 0.6 } },
306
+ { id: "b", value: "b", signals: { x: 0.59 } },
307
+ ],
308
+ },
309
+ {
310
+ expectedVerdict: "DEGENERATE",
311
+ hyps: [
312
+ { id: "a", value: "a", signals: { z: 0.9 } },
313
+ ],
314
+ },
315
+ ];
316
+ let hits = 0;
317
+ for (const c of cases) {
318
+ const r = collapseProbabilityMatrix(c.hyps);
319
+ if (r.verdict === c.expectedVerdict)
320
+ hits++;
321
+ }
322
+ const score = hits / cases.length;
323
+ return { axis: "uncertainty-honesty", score, weight: DEFAULT_WEIGHTS["uncertainty-honesty"], detail: `${hits}/${cases.length} correct verdicts` };
324
+ }
325
+ // ============================================================
326
+ // Public API
327
+ // ============================================================
328
+ export async function runBenchmark(opts = {}) {
329
+ const threshold = opts.threshold ?? 97.5;
330
+ const weights = { ...DEFAULT_WEIGHTS, ...(opts.weights ?? {}) };
331
+ const a1 = axisCollapseAccuracy();
332
+ const a2 = await axisBurstSpeedup();
333
+ const memPair = axisMemoryPrecisionRecall();
334
+ const a3 = memPair.precision;
335
+ const a4 = memPair.recall;
336
+ const a5 = axisSoulUtility();
337
+ const a6 = axisEntropyEconomy();
338
+ const a7 = axisReengineerConvergence();
339
+ const a8 = axisUncertaintyHonesty();
340
+ const axes = [a1, a2, a3, a4, a5, a6, a7, a8].map((a) => ({ ...a, weight: weights[a.axis] ?? 1 }));
341
+ const wSum = axes.reduce((s, a) => s + a.weight, 0);
342
+ const wScore = axes.reduce((s, a) => s + a.score * a.weight, 0);
343
+ const overall = wSum > 0 ? (wScore / wSum) * 100 : 0;
344
+ return {
345
+ ts: Date.now(),
346
+ axes,
347
+ overall: Math.round(overall * 100) / 100,
348
+ passing: overall >= threshold,
349
+ threshold,
350
+ };
351
+ }
352
+ /** Render a one-line benchmark summary for the pulse. */
353
+ export function formatBenchmarkLine(b) {
354
+ const verdict = b.passing ? "✓ PASS" : "✗ FAIL";
355
+ const top = [...b.axes].sort((x, y) => y.score - x.score)[0];
356
+ const bot = [...b.axes].sort((x, y) => x.score - y.score)[0];
357
+ return `QX-BENCH ${verdict} ${b.overall.toFixed(1)}/100 · top=${top?.axis}(${(top?.score * 100).toFixed(0)}%) · bottom=${bot?.axis}(${(bot?.score * 100).toFixed(0)}%)`;
358
+ }
359
+ //# sourceMappingURL=benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/qx_supernova/benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA Engine — public API.
3
+ *
4
+ * MNEME-QX SuperNova Engine
5
+ * Multi-Neural Entangled Meta Engine
6
+ *
7
+ * "Not trained. Evolved."
8
+ * "An intelligence born after the death of stars."
9
+ * "When computation becomes a cosmic event."
10
+ *
11
+ * Composed of:
12
+ * ⚛ Quantum Core — Probability Collapse Matrix (multi-signal fusion)
13
+ * 💥 SuperNova Burst — parallel-fanout intelligence amplification
14
+ * ♾ Infinity Memory — quantum event traces (probability vectors per event)
15
+ * 👁 Soul Engine — autonomous goal generation with will-vector
16
+ *
17
+ * Verifiability:
18
+ * 📊 Benchmark — 8-axis measurable score 0..100
19
+ * 🔁 Re-engineer loop — recurring optimizer until score ≥ 97.5%
20
+ */
21
+ export * from "./quantum_core.js";
22
+ export * from "./supernova_burst.js";
23
+ export * from "./infinity_memory.js";
24
+ export * from "./soul_engine.js";
25
+ export * from "./benchmark.js";
26
+ export * from "./reengineer.js";
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/qx_supernova/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA Engine — public API.
3
+ *
4
+ * MNEME-QX SuperNova Engine
5
+ * Multi-Neural Entangled Meta Engine
6
+ *
7
+ * "Not trained. Evolved."
8
+ * "An intelligence born after the death of stars."
9
+ * "When computation becomes a cosmic event."
10
+ *
11
+ * Composed of:
12
+ * ⚛ Quantum Core — Probability Collapse Matrix (multi-signal fusion)
13
+ * 💥 SuperNova Burst — parallel-fanout intelligence amplification
14
+ * ♾ Infinity Memory — quantum event traces (probability vectors per event)
15
+ * 👁 Soul Engine — autonomous goal generation with will-vector
16
+ *
17
+ * Verifiability:
18
+ * 📊 Benchmark — 8-axis measurable score 0..100
19
+ * 🔁 Re-engineer loop — recurring optimizer until score ≥ 97.5%
20
+ */
21
+ export * from "./quantum_core.js";
22
+ export * from "./supernova_burst.js";
23
+ export * from "./infinity_memory.js";
24
+ export * from "./soul_engine.js";
25
+ export * from "./benchmark.js";
26
+ export * from "./reengineer.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/qx_supernova/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA · Infinity Memory Layer
3
+ *
4
+ * Where lineage stores FILES + commits, the Infinity layer stores
5
+ * EVENTS — each with a probability vector frozen at the moment it
6
+ * happened. So when you recall "why did the team migrate to Postgres",
7
+ * you don't just get the commit; you get the signal field that made
8
+ * the decision: which competing options were considered, their
9
+ * posterior weights at the time, and which outcome materialized.
10
+ *
11
+ * Quantum trace = the snapshot of the probability vector persists
12
+ * forever, even after the event itself fades from RAM. Recall is
13
+ * O(log n) on the in-memory index.
14
+ *
15
+ * Pure in-memory + JSON-persistable. No network. No telemetry.
16
+ */
17
+ import { type SignalVector, type CollapseResult } from "./quantum_core.js";
18
+ export type EventOutcome = "success" | "failure" | "pending" | "unknown";
19
+ export interface QuantumEvent {
20
+ /** Stable id (sha256 prefix of kind+ts+actors). */
21
+ id: string;
22
+ ts: number;
23
+ /** Event class, e.g. "decision", "regret", "vaccine-fire", "burst". */
24
+ kind: string;
25
+ /** People / vendors / files involved. */
26
+ actors: string[];
27
+ /** Frozen probability vector at the moment of the event. */
28
+ probabilityVector: SignalVector;
29
+ /** Outcome assigned (can be filled in later via mark). */
30
+ outcome: EventOutcome;
31
+ /** Free-form narrative — what happened, why. */
32
+ trace: string;
33
+ }
34
+ export interface RecallQuery {
35
+ kind?: string;
36
+ actor?: string;
37
+ outcome?: EventOutcome;
38
+ /** Only events with ts >= sinceMs. */
39
+ sinceMs?: number;
40
+ /** Only events with ts <= untilMs. */
41
+ untilMs?: number;
42
+ /** Cap results. */
43
+ limit?: number;
44
+ }
45
+ export interface InfinityMemory {
46
+ /** Append an event. */
47
+ record(event: Omit<QuantumEvent, "id">): QuantumEvent;
48
+ /** Filter recall — newest first. */
49
+ recall(q: RecallQuery): QuantumEvent[];
50
+ /** Mark outcome retroactively (e.g. after we know "decision" succeeded). */
51
+ mark(id: string, outcome: EventOutcome): boolean;
52
+ /** All events. */
53
+ list(): QuantumEvent[];
54
+ /** Treat matching events as hypotheses and pick the most-probable one. */
55
+ collapse(q: RecallQuery): CollapseResult<QuantumEvent>;
56
+ /** Persist to disk (JSONL). */
57
+ flushTo(path: string): void;
58
+ /** Load from disk (JSONL). */
59
+ loadFrom(path: string): number;
60
+ /** Probability recall precision @ k — used by the benchmark. */
61
+ precisionAtK(query: RecallQuery, expected: string[], k: number): number;
62
+ }
63
+ export declare function createInfinityMemory(): InfinityMemory;
64
+ /** Convenience: append a single event to a JSONL file without keeping
65
+ * the whole index in memory (for the daemon's event log). */
66
+ export declare function appendEventToFile(path: string, e: QuantumEvent): void;
67
+ //# sourceMappingURL=infinity_memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infinity_memory.d.ts","sourceRoot":"","sources":["../../src/qx_supernova/infinity_memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4DAA4D;IAC5D,iBAAiB,EAAE,YAAY,CAAC;IAChC,0DAA0D;IAC1D,OAAO,EAAE,YAAY,CAAC;IACtB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC;IACtD,oCAAoC;IACpC,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE,CAAC;IACvC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;IACjD,kBAAkB;IAClB,IAAI,IAAI,YAAY,EAAE,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACvD,+BAA+B;IAC/B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,gEAAgE;IAChE,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzE;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CA+ErD;AAED;8DAC8D;AAC9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAIrE"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA · Infinity Memory Layer
3
+ *
4
+ * Where lineage stores FILES + commits, the Infinity layer stores
5
+ * EVENTS — each with a probability vector frozen at the moment it
6
+ * happened. So when you recall "why did the team migrate to Postgres",
7
+ * you don't just get the commit; you get the signal field that made
8
+ * the decision: which competing options were considered, their
9
+ * posterior weights at the time, and which outcome materialized.
10
+ *
11
+ * Quantum trace = the snapshot of the probability vector persists
12
+ * forever, even after the event itself fades from RAM. Recall is
13
+ * O(log n) on the in-memory index.
14
+ *
15
+ * Pure in-memory + JSON-persistable. No network. No telemetry.
16
+ */
17
+ import { createHash } from "node:crypto";
18
+ import { existsSync, readFileSync, writeFileSync, appendFileSync, mkdirSync } from "node:fs";
19
+ import { dirname } from "node:path";
20
+ import { collapseProbabilityMatrix, } from "./quantum_core.js";
21
+ export function createInfinityMemory() {
22
+ const events = [];
23
+ function makeId(e) {
24
+ const seed = `${e.kind}::${e.ts}::${e.actors.join(",")}`;
25
+ return createHash("sha256").update(seed).digest("hex").slice(0, 14);
26
+ }
27
+ function matches(e, q) {
28
+ if (q.kind && e.kind !== q.kind)
29
+ return false;
30
+ if (q.actor && !e.actors.includes(q.actor))
31
+ return false;
32
+ if (q.outcome && e.outcome !== q.outcome)
33
+ return false;
34
+ if (q.sinceMs !== undefined && e.ts < q.sinceMs)
35
+ return false;
36
+ if (q.untilMs !== undefined && e.ts > q.untilMs)
37
+ return false;
38
+ return true;
39
+ }
40
+ return {
41
+ record(e) {
42
+ const id = makeId(e);
43
+ const event = { ...e, id };
44
+ events.push(event);
45
+ return event;
46
+ },
47
+ recall(q) {
48
+ const out = events.filter((e) => matches(e, q));
49
+ out.sort((a, b) => b.ts - a.ts);
50
+ return q.limit ? out.slice(0, q.limit) : out;
51
+ },
52
+ mark(id, outcome) {
53
+ const e = events.find((x) => x.id === id);
54
+ if (!e)
55
+ return false;
56
+ e.outcome = outcome;
57
+ return true;
58
+ },
59
+ list() {
60
+ return events.slice();
61
+ },
62
+ collapse(q) {
63
+ const matching = events.filter((e) => matches(e, q));
64
+ if (matching.length === 0) {
65
+ return collapseProbabilityMatrix([], {});
66
+ }
67
+ const hyps = matching.map((e) => ({
68
+ id: e.id,
69
+ value: e,
70
+ signals: e.probabilityVector,
71
+ }));
72
+ return collapseProbabilityMatrix(hyps, {});
73
+ },
74
+ flushTo(path) {
75
+ const dir = dirname(path);
76
+ if (!existsSync(dir))
77
+ mkdirSync(dir, { recursive: true });
78
+ const buf = events.map((e) => JSON.stringify(e)).join("\n") + (events.length ? "\n" : "");
79
+ writeFileSync(path, buf, "utf8");
80
+ },
81
+ loadFrom(path) {
82
+ if (!existsSync(path))
83
+ return 0;
84
+ const txt = readFileSync(path, "utf8");
85
+ let loaded = 0;
86
+ for (const line of txt.split(/\r?\n/)) {
87
+ if (!line.trim())
88
+ continue;
89
+ try {
90
+ events.push(JSON.parse(line));
91
+ loaded++;
92
+ }
93
+ catch {
94
+ // skip malformed
95
+ }
96
+ }
97
+ return loaded;
98
+ },
99
+ precisionAtK(query, expectedIds, k) {
100
+ if (k <= 0)
101
+ return 0;
102
+ const got = this.recall({ ...query, limit: k }).map((e) => e.id);
103
+ let hits = 0;
104
+ for (const id of got)
105
+ if (expectedIds.includes(id))
106
+ hits++;
107
+ return hits / k;
108
+ },
109
+ };
110
+ }
111
+ /** Convenience: append a single event to a JSONL file without keeping
112
+ * the whole index in memory (for the daemon's event log). */
113
+ export function appendEventToFile(path, e) {
114
+ const dir = dirname(path);
115
+ if (!existsSync(dir))
116
+ mkdirSync(dir, { recursive: true });
117
+ appendFileSync(path, JSON.stringify(e) + "\n", "utf8");
118
+ }
119
+ //# sourceMappingURL=infinity_memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infinity_memory.js","sourceRoot":"","sources":["../../src/qx_supernova/infinity_memory.ts"],"names":[],"mappings":"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"}