@mneme-ai/core 2.19.26 → 2.19.28

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 (67) hide show
  1. package/dist/autonomic_scheduler/autonomic_scheduler.test.d.ts +2 -0
  2. package/dist/autonomic_scheduler/autonomic_scheduler.test.d.ts.map +1 -0
  3. package/dist/autonomic_scheduler/autonomic_scheduler.test.js +236 -0
  4. package/dist/autonomic_scheduler/autonomic_scheduler.test.js.map +1 -0
  5. package/dist/autonomic_scheduler/index.d.ts +149 -0
  6. package/dist/autonomic_scheduler/index.d.ts.map +1 -0
  7. package/dist/autonomic_scheduler/index.js +249 -0
  8. package/dist/autonomic_scheduler/index.js.map +1 -0
  9. package/dist/cosmic/aurelian_v1927.test.d.ts +2 -0
  10. package/dist/cosmic/aurelian_v1927.test.d.ts.map +1 -0
  11. package/dist/cosmic/aurelian_v1927.test.js +73 -0
  12. package/dist/cosmic/aurelian_v1927.test.js.map +1 -0
  13. package/dist/cosmic/aurelian_v1928.test.d.ts +2 -0
  14. package/dist/cosmic/aurelian_v1928.test.d.ts.map +1 -0
  15. package/dist/cosmic/aurelian_v1928.test.js +47 -0
  16. package/dist/cosmic/aurelian_v1928.test.js.map +1 -0
  17. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts +2 -0
  18. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts.map +1 -0
  19. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js +153 -0
  20. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js.map +1 -0
  21. package/dist/dreamspace_cartographer/index.d.ts +110 -0
  22. package/dist/dreamspace_cartographer/index.d.ts.map +1 -0
  23. package/dist/dreamspace_cartographer/index.js +175 -0
  24. package/dist/dreamspace_cartographer/index.js.map +1 -0
  25. package/dist/dreamspace_federate/dreamspace_federate.test.d.ts +2 -0
  26. package/dist/dreamspace_federate/dreamspace_federate.test.d.ts.map +1 -0
  27. package/dist/dreamspace_federate/dreamspace_federate.test.js +199 -0
  28. package/dist/dreamspace_federate/dreamspace_federate.test.js.map +1 -0
  29. package/dist/dreamspace_federate/index.d.ts +131 -0
  30. package/dist/dreamspace_federate/index.d.ts.map +1 -0
  31. package/dist/dreamspace_federate/index.js +209 -0
  32. package/dist/dreamspace_federate/index.js.map +1 -0
  33. package/dist/dreamspace_pair/dreamspace_pair.test.d.ts +2 -0
  34. package/dist/dreamspace_pair/dreamspace_pair.test.d.ts.map +1 -0
  35. package/dist/dreamspace_pair/dreamspace_pair.test.js +176 -0
  36. package/dist/dreamspace_pair/dreamspace_pair.test.js.map +1 -0
  37. package/dist/dreamspace_pair/index.d.ts +99 -0
  38. package/dist/dreamspace_pair/index.d.ts.map +1 -0
  39. package/dist/dreamspace_pair/index.js +161 -0
  40. package/dist/dreamspace_pair/index.js.map +1 -0
  41. package/dist/dreamspace_probe/dreamspace_probe.test.d.ts +2 -0
  42. package/dist/dreamspace_probe/dreamspace_probe.test.d.ts.map +1 -0
  43. package/dist/dreamspace_probe/dreamspace_probe.test.js +182 -0
  44. package/dist/dreamspace_probe/dreamspace_probe.test.js.map +1 -0
  45. package/dist/dreamspace_probe/index.d.ts +125 -0
  46. package/dist/dreamspace_probe/index.d.ts.map +1 -0
  47. package/dist/dreamspace_probe/index.js +226 -0
  48. package/dist/dreamspace_probe/index.js.map +1 -0
  49. package/dist/index.d.ts +5 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +7 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/lineage/welcome.d.ts.map +1 -1
  54. package/dist/lineage/welcome.js +15 -1
  55. package/dist/lineage/welcome.js.map +1 -1
  56. package/dist/tribunal/tribunal.d.ts.map +1 -1
  57. package/dist/tribunal/tribunal.js +29 -2
  58. package/dist/tribunal/tribunal.js.map +1 -1
  59. package/dist/tribunal/tribunal.test.js +22 -0
  60. package/dist/tribunal/tribunal.test.js.map +1 -1
  61. package/dist/whats_new.d.ts.map +1 -1
  62. package/dist/whats_new.js +16 -0
  63. package/dist/whats_new.js.map +1 -1
  64. package/dist/wrapper_genesis/index.d.ts.map +1 -1
  65. package/dist/wrapper_genesis/index.js +34 -0
  66. package/dist/wrapper_genesis/index.js.map +1 -1
  67. package/package.json +1 -1
@@ -0,0 +1,175 @@
1
+ /**
2
+ * v2.19.27 — MNEME DREAMSPACE · CARTOGRAPHER (stage 2 of 6)
3
+ *
4
+ * "build map: tool X handles input pattern Y with quality Z, store
5
+ * ใน PROPRIOCEPTION → REFLEX query proprioception ตอน predict-
6
+ * next-tool → 90/100 stuck features เริ่มถูก trigger ตามที่จริง"
7
+ * — user audit, 2026-05-17
8
+ *
9
+ * Diagnosis: PROBE measures per-tool fitness; CARTOGRAPHER aggregates
10
+ * ACROSS many probe reports into a queryable capability map. REFLEX
11
+ * then asks "which tool best handles this input pattern?" and gets
12
+ * evidence-backed answer instead of frequency guess.
13
+ *
14
+ * The map is a 2D index:
15
+ * pattern_signature → tool_name → quality_score
16
+ * Pattern signature is a content-addressed hash of the input shape
17
+ * (kind + sorted key list). Stable across probe runs; case-insensitive.
18
+ *
19
+ * Composes onto:
20
+ * - v2.19.27 PROBE (consumes ToolProbeReport.runs)
21
+ * - v2.19.23 PROPRIOCEPTION (unified catalog; caller stores map here)
22
+ * - v2.19.22 REFLEX (queries map at predict-next-tool time)
23
+ * - v2.19.26 GESTATION (gaps in map = signal for proposeToolSpec)
24
+ *
25
+ * Honest scope:
26
+ * - PURE FUNCTION builder. Caller persists the CapabilityMap to disk.
27
+ * - Pattern signature is conservative (kind + sorted key names); we
28
+ * don't try to infer semantic intent — that's PROPRIOCEPTION's job.
29
+ * - HMAC-signed map so federation can ship verified capability maps.
30
+ */
31
+ import { createHmac, timingSafeEqual } from "node:crypto";
32
+ const PROTOCOL_VERSION = 1;
33
+ const DEFAULT_BLEND_WEIGHT = 0.3;
34
+ function canon(v) {
35
+ if (v === null || typeof v !== "object")
36
+ return JSON.stringify(v);
37
+ if (Array.isArray(v))
38
+ return "[" + v.map(canon).join(",") + "]";
39
+ const keys = Object.keys(v).sort();
40
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
41
+ }
42
+ function defaultSecret() {
43
+ return process.env["MNEME_DREAMSPACE_CARTOGRAPHER_SECRET"] || `mneme-dreamspace-cartographer-v${PROTOCOL_VERSION}`;
44
+ }
45
+ function hmacHex(body, secret) {
46
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
47
+ }
48
+ function safeEqHex(a, b) {
49
+ try {
50
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ }
56
+ /**
57
+ * Pattern signature from input args: kind discriminator + sorted key list.
58
+ * { name: "x", count: 3 } → "obj:count,name"
59
+ * [] → "arr:empty"
60
+ * "hello" → "str:len5"
61
+ * 42 → "num"
62
+ * null → "null"
63
+ * Stable; case-insensitive; never reveals user data.
64
+ */
65
+ export function patternSignature(args) {
66
+ if (args === null)
67
+ return "null";
68
+ if (args === undefined)
69
+ return "undef";
70
+ if (Array.isArray(args))
71
+ return args.length === 0 ? "arr:empty" : `arr:len${args.length < 5 ? "small" : args.length < 50 ? "med" : "large"}`;
72
+ if (typeof args === "object") {
73
+ const keys = Object.keys(args).map((k) => k.toLowerCase()).sort();
74
+ return keys.length === 0 ? "obj:empty" : `obj:${keys.join(",")}`;
75
+ }
76
+ if (typeof args === "string")
77
+ return `str:len${args.length === 0 ? "0" : args.length < 32 ? "small" : "large"}`;
78
+ return typeof args;
79
+ }
80
+ /**
81
+ * Build a fresh CapabilityMap from a list of probe runs.
82
+ *
83
+ * Aggregation: for each (toolName, patternSig) cell, quality is the
84
+ * weighted mean of qualityForThisRun across all probes for that cell.
85
+ * Recent probes weight slightly more than old probes (recency bias
86
+ * controlled by `blendWeight` per new probe).
87
+ */
88
+ export function buildCapabilityMap(input) {
89
+ const w = input.blendWeight ?? DEFAULT_BLEND_WEIGHT;
90
+ const byCell = new Map();
91
+ // Sort probes chronologically for stable EWMA evolution
92
+ const sorted = [...input.probes].sort((a, b) => a.probedAt - b.probedAt);
93
+ for (const p of sorted) {
94
+ const sig = patternSignature(p.inputArgs);
95
+ const key = `${p.toolName}::${sig}`;
96
+ const prev = byCell.get(key);
97
+ if (prev) {
98
+ // Exponential moving average; defaults to 0.3 new weight (slow drift).
99
+ prev.quality = (1 - w) * prev.quality + w * p.qualityForThisRun;
100
+ prev.sampleCount++;
101
+ prev.lastProbedAt = Math.max(prev.lastProbedAt, p.probedAt);
102
+ }
103
+ else {
104
+ byCell.set(key, {
105
+ quality: p.qualityForThisRun,
106
+ sampleCount: 1,
107
+ lastProbedAt: p.probedAt,
108
+ patternLabel: p.inputLabel,
109
+ });
110
+ }
111
+ }
112
+ const cells = [];
113
+ for (const [key, acc] of byCell) {
114
+ const [toolName, patternSig] = key.split("::");
115
+ cells.push({
116
+ toolName,
117
+ patternSig,
118
+ patternLabel: acc.patternLabel,
119
+ quality: acc.quality,
120
+ sampleCount: acc.sampleCount,
121
+ lastProbedAt: acc.lastProbedAt,
122
+ });
123
+ }
124
+ // Stable order: by patternSig asc, then quality desc, then toolName asc
125
+ cells.sort((a, b) => a.patternSig.localeCompare(b.patternSig) ||
126
+ b.quality - a.quality ||
127
+ a.toolName.localeCompare(b.toolName));
128
+ const uniquePatterns = new Set(cells.map((c) => c.patternSig)).size;
129
+ const uniqueTools = new Set(cells.map((c) => c.toolName)).size;
130
+ const body = {
131
+ v: PROTOCOL_VERSION,
132
+ cells,
133
+ totalProbes: input.probes.length,
134
+ uniquePatterns,
135
+ uniqueTools,
136
+ builtAt: input.builtAt ?? Date.now(),
137
+ };
138
+ const sig = hmacHex(body, input.secret ?? defaultSecret());
139
+ return { ...body, sig };
140
+ }
141
+ export function verifyCapabilityMap(m, secret) {
142
+ const { sig, ...body } = m;
143
+ return safeEqHex(hmacHex(body, secret ?? defaultSecret()), sig);
144
+ }
145
+ /**
146
+ * Query the map for tools that handle a given input shape. Returns the
147
+ * top-N by quality desc. REFLEX's predict-next-tool path calls this
148
+ * BEFORE falling back to frequency-only prediction.
149
+ */
150
+ export function queryCapability(input) {
151
+ const sig = patternSignature(input.args);
152
+ const minQ = input.minQuality ?? 0;
153
+ const topN = input.topN ?? 5;
154
+ return input.map.cells
155
+ .filter((c) => c.patternSig === sig && c.quality >= minQ)
156
+ .slice(0, topN);
157
+ }
158
+ export function computeMapStats(m) {
159
+ const total = m.cells.length;
160
+ const meanQuality = total === 0 ? 0 : m.cells.reduce((s, c) => s + c.quality, 0) / total;
161
+ const highQ = m.cells.filter((c) => c.quality >= 0.7).length;
162
+ const single = m.cells.filter((c) => c.sampleCount === 1).length;
163
+ return {
164
+ totalCells: total,
165
+ uniquePatterns: m.uniquePatterns,
166
+ uniqueTools: m.uniqueTools,
167
+ meanQuality,
168
+ highQualityCells: highQ,
169
+ singleProbeCells: single,
170
+ };
171
+ }
172
+ export function formatMapLine(s) {
173
+ return `🗺 CARTOGRAPHER · ${s.totalCells} cells · ${s.uniqueTools} tools × ${s.uniquePatterns} patterns · ${s.highQualityCells} high-Q · meanQ=${s.meanQuality.toFixed(2)}`;
174
+ }
175
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dreamspace_cartographer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dreamspace_federate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreamspace_federate.test.d.ts","sourceRoot":"","sources":["../../src/dreamspace_federate/dreamspace_federate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,199 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { attestElite, verifyAttestation, aggregateBlessing, verifyBlessingQuorum, exportStarterPack, verifyStarterPack, BLESSING_EMOJI, formatQuorumLine, formatStarterPackLine, } from "./index.js";
3
+ const SECRET = "federate-test-secret-997744";
4
+ function mkAttest(instance, tool, fitness, useCount, ts = 1) {
5
+ return attestElite({
6
+ instanceId: instance,
7
+ toolName: tool,
8
+ localFitness: fitness,
9
+ localUseCount: useCount,
10
+ ts,
11
+ secret: SECRET,
12
+ });
13
+ }
14
+ describe("v2.19.27 FEDERATE · attestElite", () => {
15
+ it("issues attestation when fitness >= threshold", () => {
16
+ const a = attestElite({
17
+ instanceId: "inst1",
18
+ toolName: "mneme.x",
19
+ localFitness: 0.8,
20
+ localUseCount: 100,
21
+ secret: SECRET,
22
+ });
23
+ expect(a).not.toBeNull();
24
+ expect(verifyAttestation(a, SECRET)).toBe(true);
25
+ });
26
+ it("REFUSES attestation when fitness < threshold (default 0.7)", () => {
27
+ const a = attestElite({
28
+ instanceId: "inst1",
29
+ toolName: "mneme.x",
30
+ localFitness: 0.5,
31
+ localUseCount: 100,
32
+ secret: SECRET,
33
+ });
34
+ expect(a).toBeNull();
35
+ });
36
+ it("custom minFitness override works", () => {
37
+ const a = attestElite({
38
+ instanceId: "inst1",
39
+ toolName: "mneme.x",
40
+ localFitness: 0.3,
41
+ localUseCount: 100,
42
+ minFitness: 0.2,
43
+ secret: SECRET,
44
+ });
45
+ expect(a).not.toBeNull();
46
+ });
47
+ it("MEASURED 100% determinism: same input -> same sig (30 trials)", () => {
48
+ const args = { instanceId: "x", toolName: "y", localFitness: 0.8, localUseCount: 10, ts: 1, secret: SECRET };
49
+ const first = attestElite(args).sig;
50
+ let allEqual = true;
51
+ for (let i = 0; i < 30; i++) {
52
+ if (attestElite(args).sig !== first) {
53
+ allEqual = false;
54
+ break;
55
+ }
56
+ }
57
+ expect(allEqual).toBe(true);
58
+ });
59
+ });
60
+ describe("v2.19.27 FEDERATE · aggregateBlessing (quorum bands)", () => {
61
+ it("0 attestations -> orphan", () => {
62
+ const q = aggregateBlessing({ toolName: "mneme.x", attestations: [], totalInstancesKnown: 10, secret: SECRET });
63
+ expect(q.band).toBe("orphan");
64
+ expect(q.isBlessed).toBe(false);
65
+ });
66
+ it(">= 95% of known instances -> unanimous + blessed", () => {
67
+ const attests = Array.from({ length: 20 }, (_, i) => mkAttest(`inst${i}`, "mneme.x", 0.9, 10));
68
+ const q = aggregateBlessing({ toolName: "mneme.x", attestations: attests, totalInstancesKnown: 20, secret: SECRET });
69
+ expect(q.band).toBe("unanimous");
70
+ expect(q.isBlessed).toBe(true);
71
+ });
72
+ it(">= 67% -> supermajority + blessed", () => {
73
+ const attests = Array.from({ length: 7 }, (_, i) => mkAttest(`inst${i}`, "mneme.x", 0.9, 10));
74
+ const q = aggregateBlessing({ toolName: "mneme.x", attestations: attests, totalInstancesKnown: 10, secret: SECRET });
75
+ expect(q.band).toBe("supermajority");
76
+ expect(q.isBlessed).toBe(true);
77
+ });
78
+ it(">= 51% -> majority (NOT blessed)", () => {
79
+ const attests = Array.from({ length: 6 }, (_, i) => mkAttest(`inst${i}`, "mneme.x", 0.9, 10));
80
+ const q = aggregateBlessing({ toolName: "mneme.x", attestations: attests, totalInstancesKnown: 10, secret: SECRET });
81
+ expect(q.band).toBe("majority");
82
+ expect(q.isBlessed).toBe(false);
83
+ });
84
+ it("forged attestations DROPPED + counted in forgedDropped", () => {
85
+ const good = mkAttest("inst1", "mneme.x", 0.9, 10);
86
+ const tampered = { ...mkAttest("inst2", "mneme.x", 0.9, 10), localFitness: 0.99 };
87
+ const q = aggregateBlessing({
88
+ toolName: "mneme.x",
89
+ attestations: [good, tampered],
90
+ totalInstancesKnown: 2,
91
+ secret: SECRET,
92
+ });
93
+ expect(q.forgedDropped).toBe(1);
94
+ expect(q.validAttestations).toBe(1);
95
+ });
96
+ it("one-vote-per-instance: keeps latest by ts (dedup)", () => {
97
+ const old = mkAttest("inst1", "mneme.x", 0.7, 5, 1);
98
+ const fresh = mkAttest("inst1", "mneme.x", 0.9, 10, 100);
99
+ const q = aggregateBlessing({
100
+ toolName: "mneme.x",
101
+ attestations: [old, fresh],
102
+ totalInstancesKnown: 1,
103
+ secret: SECRET,
104
+ });
105
+ expect(q.validAttestations).toBe(1);
106
+ expect(q.meanFitness).toBe(0.9); // latest kept
107
+ expect(q.totalUseCount).toBe(10);
108
+ });
109
+ it("ignores attestations for different toolName", () => {
110
+ const a = mkAttest("inst1", "mneme.OTHER", 0.9, 10);
111
+ const q = aggregateBlessing({
112
+ toolName: "mneme.x",
113
+ attestations: [a],
114
+ totalInstancesKnown: 10,
115
+ secret: SECRET,
116
+ });
117
+ expect(q.validAttestations).toBe(0);
118
+ expect(q.band).toBe("orphan");
119
+ });
120
+ it("MEASURED 100% determinism: same attestations -> same quorum sig (30 trials)", () => {
121
+ const attests = [mkAttest("a", "t", 0.9, 5), mkAttest("b", "t", 0.8, 3)];
122
+ const input = { toolName: "t", attestations: attests, totalInstancesKnown: 2, secret: SECRET };
123
+ const first = aggregateBlessing(input).sig;
124
+ let allEqual = true;
125
+ for (let i = 0; i < 30; i++) {
126
+ if (aggregateBlessing(input).sig !== first) {
127
+ allEqual = false;
128
+ break;
129
+ }
130
+ }
131
+ expect(allEqual).toBe(true);
132
+ });
133
+ });
134
+ describe("v2.19.27 FEDERATE · exportStarterPack", () => {
135
+ it("sorts blessed-first, then meanFitness desc, then attestationCount desc", () => {
136
+ const quorums = [
137
+ aggregateBlessing({ toolName: "low", attestations: [mkAttest("i1", "low", 0.7, 1)], totalInstancesKnown: 1, secret: SECRET }),
138
+ aggregateBlessing({ toolName: "high", attestations: [mkAttest("i1", "high", 0.95, 1)], totalInstancesKnown: 1, secret: SECRET }),
139
+ aggregateBlessing({ toolName: "mid", attestations: [mkAttest("i1", "mid", 0.85, 1)], totalInstancesKnown: 1, secret: SECRET }),
140
+ ];
141
+ const pack = exportStarterPack({ quorums, topN: 10, builtAt: 0, secret: SECRET });
142
+ expect(pack.entries.map((e) => e.toolName)).toEqual(["high", "mid", "low"]);
143
+ });
144
+ it("topN respected", () => {
145
+ const quorums = Array.from({ length: 5 }, (_, i) => aggregateBlessing({
146
+ toolName: `t${i}`,
147
+ attestations: [mkAttest("inst", `t${i}`, 0.95, 5)],
148
+ totalInstancesKnown: 1,
149
+ secret: SECRET,
150
+ }));
151
+ const pack = exportStarterPack({ quorums, topN: 2, builtAt: 0, secret: SECRET });
152
+ expect(pack.entries.length).toBe(2);
153
+ });
154
+ it("HMAC sig verifies; rejects tamper", () => {
155
+ const pack = exportStarterPack({ quorums: [], topN: 100, builtAt: 0, secret: SECRET });
156
+ expect(verifyStarterPack(pack, SECRET)).toBe(true);
157
+ expect(verifyStarterPack({ ...pack, topN: 999 }, SECRET)).toBe(false);
158
+ });
159
+ });
160
+ describe("v2.19.27 FEDERATE · formatters + emoji", () => {
161
+ it("BLESSING_EMOJI maps each band", () => {
162
+ expect(BLESSING_EMOJI.unanimous).toBe("🏆");
163
+ expect(BLESSING_EMOJI.supermajority).toBe("🥇");
164
+ expect(BLESSING_EMOJI.majority).toBe("🥈");
165
+ expect(BLESSING_EMOJI.minority).toBe("🥉");
166
+ expect(BLESSING_EMOJI.conflict).toBe("⚖");
167
+ expect(BLESSING_EMOJI.orphan).toBe("🌌");
168
+ });
169
+ it("formatQuorumLine includes band + valid/total counts + meanFit", () => {
170
+ const q = aggregateBlessing({
171
+ toolName: "x",
172
+ attestations: [mkAttest("i", "x", 0.9, 1)],
173
+ totalInstancesKnown: 1,
174
+ secret: SECRET,
175
+ });
176
+ const line = formatQuorumLine(q);
177
+ expect(line).toContain("FEDERATE x");
178
+ expect(line).toContain("meanFit=");
179
+ });
180
+ it("formatStarterPackLine reports total + blessed counts", () => {
181
+ const pack = exportStarterPack({ quorums: [], topN: 100, builtAt: 0, secret: SECRET });
182
+ const line = formatStarterPackLine(pack);
183
+ expect(line).toContain("STARTER-PACK");
184
+ expect(line).toContain("blessed");
185
+ });
186
+ });
187
+ describe("v2.19.27 FEDERATE · verifyBlessingQuorum", () => {
188
+ it("HMAC sig verifies untampered + rejects tamper", () => {
189
+ const q = aggregateBlessing({
190
+ toolName: "x",
191
+ attestations: [mkAttest("i", "x", 0.9, 1)],
192
+ totalInstancesKnown: 1,
193
+ secret: SECRET,
194
+ });
195
+ expect(verifyBlessingQuorum(q, SECRET)).toBe(true);
196
+ expect(verifyBlessingQuorum({ ...q, meanFitness: 0.5 }, SECRET)).toBe(false);
197
+ });
198
+ });
199
+ //# sourceMappingURL=dreamspace_federate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreamspace_federate.test.js","sourceRoot":"","sources":["../../src/dreamspace_federate/dreamspace_federate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * v2.19.27 — MNEME DREAMSPACE · FEDERATE (stage 6 of 6)
3
+ *
4
+ * "tools ที่ elite ใน 100+ instances → 'blessed'
5
+ * shared via cosmic.mneme-ai.space/dreamspace
6
+ * ผู้ใช้ใหม่ download starter pack จาก top 100 dreamt-born tools
7
+ * ⇒ Mneme network effect ที่ไม่มี framework ไหนมี"
8
+ * — user audit, 2026-05-17
9
+ *
10
+ * Diagnosis: GESTATION proposes; EVOLUTION selects; PROBE measures;
11
+ * CARTOGRAPHER maps; PAIR scores complementarity. All locally. The
12
+ * network effect kicks in when ELITE tools spread across instances.
13
+ *
14
+ * FEDERATE composes onto v2.19.16 FEDERATED TRUTH GRAVITY. Each
15
+ * instance HMAC-signs an EliteAttestation for tools whose local
16
+ * fitness >= threshold. Quorum across instances → "blessed" tag.
17
+ * Starter pack export = top-N blessed tools, downloadable by new
18
+ * users.
19
+ *
20
+ * Composes onto:
21
+ * - v2.19.16 FEDERATED TRUTH GRAVITY (cross-attestation pattern)
22
+ * - v2.19.27 PROBE (local fitness source)
23
+ * - v2.19.26 EVOLUTION (lifecycle bands; only MATURE eligible)
24
+ * - v2.19.9 WRAPPER_GENESPLICING (blessed tools = composer recipes
25
+ * that any instance can apply)
26
+ *
27
+ * Honest scope:
28
+ * - PURE FUNCTION attestation + quorum. Caller does the actual
29
+ * network sync via v2.19.16 mesh/nexus transport.
30
+ * - Eligibility gate: only MATURE tools (v2.19.26 EVOLUTION) with
31
+ * local fitness >= threshold get attested.
32
+ * - HMAC-signed attestations; forged attestations dropped on verify.
33
+ * - Quorum bands match v2.19.16: unanimous / supermajority / majority
34
+ * / minority / conflict / orphan.
35
+ */
36
+ declare const PROTOCOL_VERSION: 1;
37
+ export interface EliteAttestation {
38
+ v: typeof PROTOCOL_VERSION;
39
+ /** Pseudonymous instance id from v2.19.16 FEDERATED. */
40
+ instanceId: string;
41
+ /** Tool the instance attests is elite locally. */
42
+ toolName: string;
43
+ /** Local fitness score 0..1 (from PROBE). */
44
+ localFitness: number;
45
+ /** Local use count (from CONSEQUENCE / EVOLUTION). */
46
+ localUseCount: number;
47
+ /** ts of the attestation (ms). */
48
+ ts: number;
49
+ sig: string;
50
+ }
51
+ export type BlessingBand = "unanimous" | "supermajority" | "majority" | "minority" | "conflict" | "orphan";
52
+ export interface BlessingQuorum {
53
+ v: typeof PROTOCOL_VERSION;
54
+ toolName: string;
55
+ totalAttestations: number;
56
+ validAttestations: number;
57
+ forgedDropped: number;
58
+ meanFitness: number;
59
+ totalUseCount: number;
60
+ band: BlessingBand;
61
+ /** Convenience: is the tool blessed (band ∈ {unanimous, supermajority})? */
62
+ isBlessed: boolean;
63
+ sig: string;
64
+ }
65
+ export interface StarterPackEntry {
66
+ toolName: string;
67
+ band: BlessingBand;
68
+ meanFitness: number;
69
+ attestationCount: number;
70
+ }
71
+ export interface StarterPack {
72
+ v: typeof PROTOCOL_VERSION;
73
+ entries: StarterPackEntry[];
74
+ topN: number;
75
+ builtAt: number;
76
+ sig: string;
77
+ }
78
+ /**
79
+ * Issue an EliteAttestation for a tool. Refuses if fitness < threshold
80
+ * (we never attest mediocre tools). Caller-supplied instanceId from
81
+ * v2.19.16 FEDERATED identity.
82
+ */
83
+ export declare function attestElite(input: {
84
+ instanceId: string;
85
+ toolName: string;
86
+ localFitness: number;
87
+ localUseCount: number;
88
+ ts?: number;
89
+ minFitness?: number;
90
+ secret?: string;
91
+ }): EliteAttestation | null;
92
+ export declare function verifyAttestation(a: EliteAttestation, secret?: string): boolean;
93
+ /**
94
+ * Aggregate N attestations for a single tool into a BlessingQuorum.
95
+ *
96
+ * Bands (proportions of validAttestations / totalInstances):
97
+ * unanimous : >= 0.95
98
+ * supermajority : >= 0.67
99
+ * majority : >= 0.51
100
+ * minority : >= 0.10
101
+ * conflict : > 0 and < 0.10
102
+ * orphan : 0 attestations
103
+ *
104
+ * Forged attestations (failed HMAC verify) are dropped silently and
105
+ * counted in `forgedDropped`. One-vote-per-instance: duplicates from
106
+ * same instanceId keep the latest by ts.
107
+ */
108
+ export declare function aggregateBlessing(input: {
109
+ toolName: string;
110
+ attestations: EliteAttestation[];
111
+ totalInstancesKnown: number;
112
+ secret?: string;
113
+ }): BlessingQuorum;
114
+ export declare function verifyBlessingQuorum(q: BlessingQuorum, secret?: string): boolean;
115
+ /**
116
+ * Export a starter pack of top-N blessed tools — downloaded by new
117
+ * users on first install. Sorted by isBlessed first, then meanFitness
118
+ * desc, then validAttestations desc.
119
+ */
120
+ export declare function exportStarterPack(input: {
121
+ quorums: BlessingQuorum[];
122
+ topN?: number;
123
+ builtAt?: number;
124
+ secret?: string;
125
+ }): StarterPack;
126
+ export declare function verifyStarterPack(p: StarterPack, secret?: string): boolean;
127
+ export declare const BLESSING_EMOJI: Record<BlessingBand, string>;
128
+ export declare function formatQuorumLine(q: BlessingQuorum): string;
129
+ export declare function formatStarterPackLine(p: StarterPack): string;
130
+ export {};
131
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dreamspace_federate/index.ts"],"names":[],"mappings":"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"}