@mneme-ai/core 1.93.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 (37) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +8 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/qx_supernova/benchmark.d.ts +40 -0
  6. package/dist/qx_supernova/benchmark.d.ts.map +1 -0
  7. package/dist/qx_supernova/benchmark.js +359 -0
  8. package/dist/qx_supernova/benchmark.js.map +1 -0
  9. package/dist/qx_supernova/index.d.ts +27 -0
  10. package/dist/qx_supernova/index.d.ts.map +1 -0
  11. package/dist/qx_supernova/index.js +27 -0
  12. package/dist/qx_supernova/index.js.map +1 -0
  13. package/dist/qx_supernova/infinity_memory.d.ts +67 -0
  14. package/dist/qx_supernova/infinity_memory.d.ts.map +1 -0
  15. package/dist/qx_supernova/infinity_memory.js +119 -0
  16. package/dist/qx_supernova/infinity_memory.js.map +1 -0
  17. package/dist/qx_supernova/quantum_core.d.ts +71 -0
  18. package/dist/qx_supernova/quantum_core.d.ts.map +1 -0
  19. package/dist/qx_supernova/quantum_core.js +134 -0
  20. package/dist/qx_supernova/quantum_core.js.map +1 -0
  21. package/dist/qx_supernova/qx_supernova.test.d.ts +2 -0
  22. package/dist/qx_supernova/qx_supernova.test.d.ts.map +1 -0
  23. package/dist/qx_supernova/qx_supernova.test.js +241 -0
  24. package/dist/qx_supernova/qx_supernova.test.js.map +1 -0
  25. package/dist/qx_supernova/reengineer.d.ts +45 -0
  26. package/dist/qx_supernova/reengineer.d.ts.map +1 -0
  27. package/dist/qx_supernova/reengineer.js +125 -0
  28. package/dist/qx_supernova/reengineer.js.map +1 -0
  29. package/dist/qx_supernova/soul_engine.d.ts +63 -0
  30. package/dist/qx_supernova/soul_engine.d.ts.map +1 -0
  31. package/dist/qx_supernova/soul_engine.js +143 -0
  32. package/dist/qx_supernova/soul_engine.js.map +1 -0
  33. package/dist/qx_supernova/supernova_burst.d.ts +48 -0
  34. package/dist/qx_supernova/supernova_burst.d.ts.map +1 -0
  35. package/dist/qx_supernova/supernova_burst.js +84 -0
  36. package/dist/qx_supernova/supernova_burst.js.map +1 -0
  37. package/package.json +1 -1
@@ -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":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,yBAAyB,GAI1B,MAAM,mBAAmB,CAAC;AAmD3B,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,SAAS,MAAM,CAAC,CAA2B;QACzC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,OAAO,CAAC,CAAe,EAAE,CAAc;QAC9C,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACzD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,CAAC,CAAC;YACN,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAiB,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,OAAO;YACd,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACrB,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI;YACF,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,QAAQ,CAAC,CAAC;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,yBAAyB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,GAA+B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5D,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC,CAAC,iBAAiB;aAC7B,CAAC,CAAC,CAAC;YACJ,OAAO,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,IAAI;YACV,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1F,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC,CAAC;oBAC9C,MAAM,EAAE,CAAC;gBACX,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAAE,IAAI,EAAE,CAAC;YAC3D,OAAO,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;8DAC8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,CAAe;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA · QUANTUM CORE
3
+ * The Probability Collapse Matrix.
4
+ *
5
+ * Replace CPU/GPU mental model: instead of evaluating ONE hypothesis,
6
+ * the Quantum Core takes N hypotheses with a multi-signal vector each,
7
+ * fuses signals into a posterior, and COLLAPSES to the winner with a
8
+ * measurable margin + entropy reading.
9
+ *
10
+ * Why this is not vapor:
11
+ * 1. Bayes fusion of independent signals is a real, well-known math
12
+ * operation. We just give it a cosmic name + plug it into Mneme.
13
+ * 2. Margin + entropy let downstream code REFUSE to commit when the
14
+ * collapse is too uncertain — instead of guessing, return UNCERTAIN.
15
+ * 3. Pure functions. Deterministic. Unit-testable. Same inputs → same
16
+ * collapse forever.
17
+ *
18
+ * "When computation becomes a cosmic event."
19
+ */
20
+ export type SignalVector = Record<string, number>;
21
+ export interface Hypothesis<T = unknown> {
22
+ /** Stable id for telemetry. */
23
+ id: string;
24
+ /** The candidate value being scored. */
25
+ value: T;
26
+ /** Prior probability before signals are fused. 0..1. Default 1/N. */
27
+ prior?: number;
28
+ /** Per-axis scores 0..1. Higher = more supportive of this hypothesis. */
29
+ signals: SignalVector;
30
+ }
31
+ export interface CollapseOptions {
32
+ /** Per-axis weights. Default: each axis weighted equally (1.0). */
33
+ weights?: Record<string, number>;
34
+ /** Floor on posterior to avoid log(0). Default 1e-9. */
35
+ epsilon?: number;
36
+ /** If margin < this, verdict is UNCERTAIN. Default 0.05. */
37
+ uncertaintyMargin?: number;
38
+ }
39
+ export type CollapseVerdict = "COLLAPSED" | "UNCERTAIN" | "DEGENERATE";
40
+ export interface CollapseResult<T = unknown> {
41
+ verdict: CollapseVerdict;
42
+ winner: Hypothesis<T> | null;
43
+ /** Posterior of the winner, 0..1. */
44
+ posterior: number;
45
+ /** posterior(winner) - posterior(runner-up). High margin = confident. */
46
+ margin: number;
47
+ /** Shannon entropy across all posteriors. Lower = more confident. */
48
+ entropy: number;
49
+ /** Normalized entropy (entropy / log2(N)) — 0..1. */
50
+ entropyNormalized: number;
51
+ /** All hypotheses sorted by posterior desc, each with the fused score. */
52
+ ranked: Array<Hypothesis<T> & {
53
+ posterior: number;
54
+ }>;
55
+ /** Reason string for UNCERTAIN / DEGENERATE verdicts. */
56
+ reason?: string;
57
+ }
58
+ /** Core algorithm: fuse signals × weights × prior into a posterior, then
59
+ * collapse to the winner with margin + entropy report.
60
+ *
61
+ * Math: posterior_i ∝ prior_i × Π_axis ( signal_i,axis ^ weight_axis )
62
+ * Normalized so Σ posteriors = 1. Entropy computed over normalized vec.
63
+ */
64
+ export declare function collapseProbabilityMatrix<T>(hypotheses: readonly Hypothesis<T>[], opts?: CollapseOptions): CollapseResult<T>;
65
+ /** Re-collapse with adjusted weights — used by the re-engineer loop to
66
+ * tune signal weights based on benchmark feedback. */
67
+ export declare function recollapseWithWeights<T>(hypotheses: readonly Hypothesis<T>[], weights: Record<string, number>, opts?: Omit<CollapseOptions, "weights">): CollapseResult<T>;
68
+ /** Compute a confidence score 0..1 from a CollapseResult. Used by
69
+ * callers that just want a single number. */
70
+ export declare function confidenceOf(r: CollapseResult<unknown>): number;
71
+ //# sourceMappingURL=quantum_core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantum_core.d.ts","sourceRoot":"","sources":["../../src/qx_supernova/quantum_core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,KAAK,EAAE,CAAC,CAAC;IACT,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,UAAU,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,EACpC,IAAI,GAAE,eAAoB,GACzB,cAAc,CAAC,CAAC,CAAC,CAkGnB;AAED;uDACuD;AACvD,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,UAAU,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,EACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAM,GAC1C,cAAc,CAAC,CAAC,CAAC,CAEnB;AAED;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,MAAM,CAK/D"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * v1.94.0 -- QX-SUPERNOVA · QUANTUM CORE
3
+ * The Probability Collapse Matrix.
4
+ *
5
+ * Replace CPU/GPU mental model: instead of evaluating ONE hypothesis,
6
+ * the Quantum Core takes N hypotheses with a multi-signal vector each,
7
+ * fuses signals into a posterior, and COLLAPSES to the winner with a
8
+ * measurable margin + entropy reading.
9
+ *
10
+ * Why this is not vapor:
11
+ * 1. Bayes fusion of independent signals is a real, well-known math
12
+ * operation. We just give it a cosmic name + plug it into Mneme.
13
+ * 2. Margin + entropy let downstream code REFUSE to commit when the
14
+ * collapse is too uncertain — instead of guessing, return UNCERTAIN.
15
+ * 3. Pure functions. Deterministic. Unit-testable. Same inputs → same
16
+ * collapse forever.
17
+ *
18
+ * "When computation becomes a cosmic event."
19
+ */
20
+ /** Core algorithm: fuse signals × weights × prior into a posterior, then
21
+ * collapse to the winner with margin + entropy report.
22
+ *
23
+ * Math: posterior_i ∝ prior_i × Π_axis ( signal_i,axis ^ weight_axis )
24
+ * Normalized so Σ posteriors = 1. Entropy computed over normalized vec.
25
+ */
26
+ export function collapseProbabilityMatrix(hypotheses, opts = {}) {
27
+ const epsilon = opts.epsilon ?? 1e-9;
28
+ const uncertaintyMargin = opts.uncertaintyMargin ?? 0.05;
29
+ const N = hypotheses.length;
30
+ if (N === 0) {
31
+ return {
32
+ verdict: "DEGENERATE",
33
+ winner: null,
34
+ posterior: 0,
35
+ margin: 0,
36
+ entropy: 0,
37
+ entropyNormalized: 0,
38
+ ranked: [],
39
+ reason: "no hypotheses provided",
40
+ };
41
+ }
42
+ // Collect all axis names that show up anywhere.
43
+ const axes = new Set();
44
+ for (const h of hypotheses)
45
+ for (const k of Object.keys(h.signals))
46
+ axes.add(k);
47
+ // Determine weights — default 1.0 for every axis the caller didn't override.
48
+ const weights = {};
49
+ for (const a of axes)
50
+ weights[a] = opts.weights?.[a] ?? 1.0;
51
+ // Compute unnormalized posterior for each hypothesis.
52
+ // Use log-space for numerical stability with many axes.
53
+ const logScores = hypotheses.map((h) => {
54
+ const prior = h.prior ?? 1 / N;
55
+ let logP = Math.log(Math.max(prior, epsilon));
56
+ for (const axis of axes) {
57
+ const signal = h.signals[axis] ?? 0.5; // missing signal = neutral 0.5
58
+ const w = weights[axis] ?? 1.0;
59
+ // Map signal in [0,1] to a probability factor. signal=1 → factor=1,
60
+ // signal=0 → factor=epsilon. weight scales the influence.
61
+ const factor = Math.max(signal, epsilon);
62
+ logP += w * Math.log(factor);
63
+ }
64
+ return logP;
65
+ });
66
+ // Normalize via log-sum-exp for stability.
67
+ const maxLog = Math.max(...logScores);
68
+ const expShifted = logScores.map((l) => Math.exp(l - maxLog));
69
+ const sum = expShifted.reduce((a, b) => a + b, 0);
70
+ const posteriors = expShifted.map((e) => e / sum);
71
+ // Pair with hypotheses + sort.
72
+ const paired = hypotheses.map((h, i) => ({ ...h, posterior: posteriors[i] }));
73
+ const ranked = [...paired].sort((a, b) => b.posterior - a.posterior);
74
+ // Shannon entropy.
75
+ let entropy = 0;
76
+ for (const p of posteriors) {
77
+ if (p > 0)
78
+ entropy -= p * Math.log2(p);
79
+ }
80
+ const entropyMax = Math.log2(Math.max(N, 1)) || 1;
81
+ const entropyNormalized = entropy / entropyMax;
82
+ const winner = ranked[0];
83
+ const runnerUp = ranked[1];
84
+ const margin = runnerUp ? winner.posterior - runnerUp.posterior : winner.posterior;
85
+ // Verdict logic
86
+ if (N === 1) {
87
+ return {
88
+ verdict: "DEGENERATE",
89
+ winner,
90
+ posterior: winner.posterior,
91
+ margin: 1,
92
+ entropy: 0,
93
+ entropyNormalized: 0,
94
+ ranked,
95
+ reason: "single hypothesis — collapse is trivial",
96
+ };
97
+ }
98
+ if (margin < uncertaintyMargin) {
99
+ return {
100
+ verdict: "UNCERTAIN",
101
+ winner,
102
+ posterior: winner.posterior,
103
+ margin,
104
+ entropy,
105
+ entropyNormalized,
106
+ ranked,
107
+ reason: `margin ${margin.toFixed(4)} < threshold ${uncertaintyMargin}`,
108
+ };
109
+ }
110
+ return {
111
+ verdict: "COLLAPSED",
112
+ winner,
113
+ posterior: winner.posterior,
114
+ margin,
115
+ entropy,
116
+ entropyNormalized,
117
+ ranked,
118
+ };
119
+ }
120
+ /** Re-collapse with adjusted weights — used by the re-engineer loop to
121
+ * tune signal weights based on benchmark feedback. */
122
+ export function recollapseWithWeights(hypotheses, weights, opts = {}) {
123
+ return collapseProbabilityMatrix(hypotheses, { ...opts, weights });
124
+ }
125
+ /** Compute a confidence score 0..1 from a CollapseResult. Used by
126
+ * callers that just want a single number. */
127
+ export function confidenceOf(r) {
128
+ if (r.verdict === "DEGENERATE")
129
+ return 0.5;
130
+ // Confidence = posterior × (1 - normalized entropy) — favors high
131
+ // posterior AND low overall ambiguity.
132
+ return r.posterior * (1 - r.entropyNormalized);
133
+ }
134
+ //# sourceMappingURL=quantum_core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantum_core.js","sourceRoot":"","sources":["../../src/qx_supernova/quantum_core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=qx_supernova.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qx_supernova.test.d.ts","sourceRoot":"","sources":["../../src/qx_supernova/qx_supernova.test.ts"],"names":[],"mappings":""}