@mneme-ai/core 2.19.25 → 2.19.27

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 (69) hide show
  1. package/dist/cosmic/aurelian_v1925.test.js +1 -1
  2. package/dist/cosmic/aurelian_v1925.test.js.map +1 -1
  3. package/dist/cosmic/aurelian_v1926.test.d.ts +2 -0
  4. package/dist/cosmic/aurelian_v1926.test.d.ts.map +1 -0
  5. package/dist/cosmic/aurelian_v1926.test.js +48 -0
  6. package/dist/cosmic/aurelian_v1926.test.js.map +1 -0
  7. package/dist/cosmic/aurelian_v1927.test.d.ts +2 -0
  8. package/dist/cosmic/aurelian_v1927.test.d.ts.map +1 -0
  9. package/dist/cosmic/aurelian_v1927.test.js +73 -0
  10. package/dist/cosmic/aurelian_v1927.test.js.map +1 -0
  11. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts +2 -0
  12. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts.map +1 -0
  13. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js +153 -0
  14. package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js.map +1 -0
  15. package/dist/dreamspace_cartographer/index.d.ts +110 -0
  16. package/dist/dreamspace_cartographer/index.d.ts.map +1 -0
  17. package/dist/dreamspace_cartographer/index.js +175 -0
  18. package/dist/dreamspace_cartographer/index.js.map +1 -0
  19. package/dist/dreamspace_evolution/dreamspace_evolution.test.d.ts +2 -0
  20. package/dist/dreamspace_evolution/dreamspace_evolution.test.d.ts.map +1 -0
  21. package/dist/dreamspace_evolution/dreamspace_evolution.test.js +199 -0
  22. package/dist/dreamspace_evolution/dreamspace_evolution.test.js.map +1 -0
  23. package/dist/dreamspace_evolution/index.d.ts +140 -0
  24. package/dist/dreamspace_evolution/index.d.ts.map +1 -0
  25. package/dist/dreamspace_evolution/index.js +210 -0
  26. package/dist/dreamspace_evolution/index.js.map +1 -0
  27. package/dist/dreamspace_federate/dreamspace_federate.test.d.ts +2 -0
  28. package/dist/dreamspace_federate/dreamspace_federate.test.d.ts.map +1 -0
  29. package/dist/dreamspace_federate/dreamspace_federate.test.js +199 -0
  30. package/dist/dreamspace_federate/dreamspace_federate.test.js.map +1 -0
  31. package/dist/dreamspace_federate/index.d.ts +131 -0
  32. package/dist/dreamspace_federate/index.d.ts.map +1 -0
  33. package/dist/dreamspace_federate/index.js +209 -0
  34. package/dist/dreamspace_federate/index.js.map +1 -0
  35. package/dist/dreamspace_gestation/dreamspace_gestation.test.d.ts +2 -0
  36. package/dist/dreamspace_gestation/dreamspace_gestation.test.d.ts.map +1 -0
  37. package/dist/dreamspace_gestation/dreamspace_gestation.test.js +160 -0
  38. package/dist/dreamspace_gestation/dreamspace_gestation.test.js.map +1 -0
  39. package/dist/dreamspace_gestation/index.d.ts +136 -0
  40. package/dist/dreamspace_gestation/index.d.ts.map +1 -0
  41. package/dist/dreamspace_gestation/index.js +186 -0
  42. package/dist/dreamspace_gestation/index.js.map +1 -0
  43. package/dist/dreamspace_pair/dreamspace_pair.test.d.ts +2 -0
  44. package/dist/dreamspace_pair/dreamspace_pair.test.d.ts.map +1 -0
  45. package/dist/dreamspace_pair/dreamspace_pair.test.js +175 -0
  46. package/dist/dreamspace_pair/dreamspace_pair.test.js.map +1 -0
  47. package/dist/dreamspace_pair/index.d.ts +99 -0
  48. package/dist/dreamspace_pair/index.d.ts.map +1 -0
  49. package/dist/dreamspace_pair/index.js +161 -0
  50. package/dist/dreamspace_pair/index.js.map +1 -0
  51. package/dist/dreamspace_probe/dreamspace_probe.test.d.ts +2 -0
  52. package/dist/dreamspace_probe/dreamspace_probe.test.d.ts.map +1 -0
  53. package/dist/dreamspace_probe/dreamspace_probe.test.js +179 -0
  54. package/dist/dreamspace_probe/dreamspace_probe.test.js.map +1 -0
  55. package/dist/dreamspace_probe/index.d.ts +125 -0
  56. package/dist/dreamspace_probe/index.d.ts.map +1 -0
  57. package/dist/dreamspace_probe/index.js +226 -0
  58. package/dist/dreamspace_probe/index.js.map +1 -0
  59. package/dist/index.d.ts +6 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +8 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/whats_new.d.ts.map +1 -1
  64. package/dist/whats_new.js +16 -0
  65. package/dist/whats_new.js.map +1 -1
  66. package/dist/wrapper_genesis/index.d.ts.map +1 -1
  67. package/dist/wrapper_genesis/index.js +37 -0
  68. package/dist/wrapper_genesis/index.js.map +1 -1
  69. package/package.json +1 -1
@@ -0,0 +1,210 @@
1
+ /**
2
+ * v2.19.26 — MNEME DREAMSPACE · EVOLUTION (self-authoring MCP catalog · phase 2 of 2)
3
+ *
4
+ * "ของ 1-6 ทุกตัวมอง dreams เป็น product (ผลิต vaccine / prophecy /
5
+ * paradox / artwork). ของ 7 มอง dreams เป็น factory (ผลิต tools
6
+ * ที่ผลิต product ตลอดไป). Factory > product บนแกน compounding +
7
+ * durability."
8
+ * — user audit, 2026-05-17
9
+ *
10
+ * Diagnosis: GESTATION proposes new tools; EVOLUTION decides which
11
+ * survive. Without lifecycle, the auto-proposed catalog grows
12
+ * unboundedly and becomes its own noise. Without mating, two
13
+ * high-fitness siblings never combine into a stronger third.
14
+ *
15
+ * 4 lifecycle bands (deterministic; pure-function):
16
+ * 🥚 GESTATING — age < 7 days; uses < 5 (newborn)
17
+ * 🐣 JUVENILE — age < 30 days; 5 <= uses < 50 (proving itself)
18
+ * 🦋 MATURE — age >= 30 days; uses >= 50 (promotion candidate)
19
+ * 🍂 ATROPHIED — age > 30 days; uses < 1/week (sunset candidate)
20
+ *
21
+ * Mate selection: scan a use-history log for ordered pairs (tool_A
22
+ * then tool_B) that co-occur >= threshold times. Each qualifying
23
+ * pair becomes a CompositionMatingProposal — caller emits a fresh
24
+ * GestationSignal of kind "pattern_co_occurrence" to v2.19.26
25
+ * GESTATION, which proposes a brand-new chimera. Birth via mating.
26
+ *
27
+ * Composes onto:
28
+ * - v2.19.26 GESTATION (proposed tools have ts; we track them)
29
+ * - v2.19.11 MORTAL (lifecycle bands ≈ generations)
30
+ * - v2.19.9 WRAPPER_GENESPLICING (chimera execute target)
31
+ * - v2.19.14 CONSEQUENCE LEDGER (use-history source)
32
+ * - v2.19.25 SLEEP TRAINING (fitness gradient feeds promotion)
33
+ *
34
+ * Honest scope:
35
+ * - PURE FUNCTION lifecycle classifier + mate selector. Caller
36
+ * persists the use-history log + the lifecycle verdicts.
37
+ * - Lifecycle thresholds are CONFIG (caller can override).
38
+ * - Mating only proposes pairs that have actually co-occurred; we
39
+ * never invent novel pairs out of nothing.
40
+ * - HMAC-signed evolution reports + chain of cycles for tamper audit.
41
+ */
42
+ import { createHmac, timingSafeEqual } from "node:crypto";
43
+ const PROTOCOL_VERSION = 1;
44
+ const DEFAULT_CONFIG = {
45
+ gestatingMaxAgeMs: 7 * 86400 * 1000,
46
+ juvenileMaxAgeMs: 30 * 86400 * 1000,
47
+ juvenileMinUses: 5,
48
+ matureMinUses: 50,
49
+ atrophiedMaxUsesPerWeek: 1,
50
+ };
51
+ function canon(v) {
52
+ if (v === null || typeof v !== "object")
53
+ return JSON.stringify(v);
54
+ if (Array.isArray(v))
55
+ return "[" + v.map(canon).join(",") + "]";
56
+ const keys = Object.keys(v).sort();
57
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
58
+ }
59
+ function defaultSecret() {
60
+ return process.env["MNEME_DREAMSPACE_EVOLUTION_SECRET"] || `mneme-dreamspace-evolution-v${PROTOCOL_VERSION}`;
61
+ }
62
+ function hmacHex(body, secret) {
63
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
64
+ }
65
+ function safeEqHex(a, b) {
66
+ try {
67
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Classify a tool's lifecycle band based on age + use count + recency.
75
+ * Priority order:
76
+ * 1. age < gestatingMax → gestating
77
+ * 2. age < juvenileMax AND uses >= juvenileMin → juvenile
78
+ * 3. age >= juvenileMax AND uses >= matureMin → mature (promote)
79
+ * 4. uses-per-week < atrophiedMax → atrophied (sunset)
80
+ * 5. fallback → juvenile (still proving)
81
+ */
82
+ export function classifyLifecycle(input) {
83
+ const cfg = { ...DEFAULT_CONFIG, ...input.config };
84
+ const ageMs = Math.max(0, input.nowMs - input.record.bornTs);
85
+ const ageDays = ageMs / 86400000;
86
+ const ageWeeks = Math.max(1 / 7, ageMs / (7 * 86400000));
87
+ const usesPerWeek = input.record.useCount / ageWeeks;
88
+ let band;
89
+ let reason;
90
+ let recommendation;
91
+ if (ageMs < cfg.gestatingMaxAgeMs) {
92
+ band = "gestating";
93
+ reason = `newborn (age ${ageDays.toFixed(1)}d < ${(cfg.gestatingMaxAgeMs / 86400000).toFixed(0)}d threshold)`;
94
+ recommendation = "keep";
95
+ }
96
+ else if (ageMs >= cfg.juvenileMaxAgeMs && input.record.useCount >= cfg.matureMinUses) {
97
+ band = "mature";
98
+ reason = `proven (age ${ageDays.toFixed(1)}d >= ${(cfg.juvenileMaxAgeMs / 86400000).toFixed(0)}d AND uses ${input.record.useCount} >= ${cfg.matureMinUses})`;
99
+ recommendation = "promote";
100
+ }
101
+ else if (ageMs >= cfg.juvenileMaxAgeMs && usesPerWeek < cfg.atrophiedMaxUsesPerWeek) {
102
+ band = "atrophied";
103
+ reason = `unused (age ${ageDays.toFixed(1)}d >= ${(cfg.juvenileMaxAgeMs / 86400000).toFixed(0)}d AND ${usesPerWeek.toFixed(2)}/wk < ${cfg.atrophiedMaxUsesPerWeek}/wk)`;
104
+ recommendation = "sunset";
105
+ }
106
+ else if (input.record.useCount >= cfg.juvenileMinUses) {
107
+ band = "juvenile";
108
+ reason = `proving itself (age ${ageDays.toFixed(1)}d, uses ${input.record.useCount} >= ${cfg.juvenileMinUses})`;
109
+ recommendation = "keep";
110
+ }
111
+ else {
112
+ band = "juvenile";
113
+ reason = `still on probation (age ${ageDays.toFixed(1)}d, uses ${input.record.useCount} < ${cfg.juvenileMinUses})`;
114
+ recommendation = "keep";
115
+ }
116
+ return {
117
+ v: PROTOCOL_VERSION,
118
+ toolName: input.record.toolName,
119
+ band,
120
+ ageMs,
121
+ ageDays,
122
+ useCount: input.record.useCount,
123
+ usesPerWeek,
124
+ reason,
125
+ recommendation,
126
+ };
127
+ }
128
+ /**
129
+ * Scan a chronological use log for ordered (A, B) pairs that occur
130
+ * within `windowMs` of each other, more than `minCount` times.
131
+ *
132
+ * Returns pairs sorted by frequency desc. Each pair becomes a candidate
133
+ * mating signal for a brand-new chimera.
134
+ */
135
+ export function selectMatingPairs(input) {
136
+ const windowMs = input.windowMs ?? 60 * 1000; // 1-minute window default
137
+ const minCount = input.minCount ?? 4;
138
+ // Sort log by ts ascending
139
+ const sorted = [...input.log].sort((a, b) => a.ts - b.ts);
140
+ const counts = new Map();
141
+ for (let i = 0; i < sorted.length; i++) {
142
+ for (let j = i + 1; j < sorted.length; j++) {
143
+ const dt = sorted[j].ts - sorted[i].ts;
144
+ if (dt <= 0)
145
+ continue;
146
+ if (dt > windowMs)
147
+ break;
148
+ if (sorted[i].toolName === sorted[j].toolName)
149
+ continue;
150
+ const key = `${sorted[i].toolName}::${sorted[j].toolName}`;
151
+ counts.set(key, (counts.get(key) ?? 0) + 1);
152
+ }
153
+ }
154
+ const pairs = [];
155
+ for (const [key, count] of counts) {
156
+ if (count < minCount)
157
+ continue;
158
+ const [toolA, toolB] = key.split("::");
159
+ pairs.push({ toolA, toolB, coOccurrenceCount: count, windowMs });
160
+ }
161
+ pairs.sort((a, b) => b.coOccurrenceCount - a.coOccurrenceCount || a.toolA.localeCompare(b.toolA));
162
+ return pairs;
163
+ }
164
+ export function runEvolutionCycle(input) {
165
+ const nowMs = input.nowMs ?? Date.now();
166
+ const verdicts = input.records.map((r) => classifyLifecycle({ record: r, nowMs, config: input.config }));
167
+ const pairs = selectMatingPairs({
168
+ log: input.log,
169
+ windowMs: input.matingWindowMs,
170
+ minCount: input.matingMinCount,
171
+ });
172
+ const bandCounts = { gestating: 0, juvenile: 0, mature: 0, atrophied: 0 };
173
+ for (const v of verdicts)
174
+ bandCounts[v.band]++;
175
+ let promoteCount = 0, sunsetCount = 0;
176
+ for (const v of verdicts) {
177
+ if (v.recommendation === "promote")
178
+ promoteCount++;
179
+ if (v.recommendation === "sunset")
180
+ sunsetCount++;
181
+ }
182
+ const body = {
183
+ v: PROTOCOL_VERSION,
184
+ cycleAt: input.cycleAt ?? nowMs,
185
+ verdicts,
186
+ matingPairs: pairs,
187
+ bandCounts,
188
+ promoteCount,
189
+ sunsetCount,
190
+ };
191
+ const sig = hmacHex(body, input.secret ?? defaultSecret());
192
+ return { ...body, sig };
193
+ }
194
+ export function verifyEvolutionReport(r, secret) {
195
+ const { sig, ...body } = r;
196
+ return safeEqHex(hmacHex(body, secret ?? defaultSecret()), sig);
197
+ }
198
+ export const LIFECYCLE_EMOJI = {
199
+ gestating: "🥚",
200
+ juvenile: "🐣",
201
+ mature: "🦋",
202
+ atrophied: "🍂",
203
+ };
204
+ export function formatEvolutionLine(r) {
205
+ return `🦋 EVOLUTION · 🥚${r.bandCounts.gestating} · 🐣${r.bandCounts.juvenile} · 🦋${r.bandCounts.mature} · 🍂${r.bandCounts.atrophied} · ↑promote=${r.promoteCount} · ↓sunset=${r.sunsetCount} · 💞pairs=${r.matingPairs.length}`;
206
+ }
207
+ export function formatVerdictLine(v) {
208
+ return `${LIFECYCLE_EMOJI[v.band]} ${v.toolName} · ${v.band} (${v.ageDays.toFixed(1)}d, ${v.useCount} uses, ${v.usesPerWeek.toFixed(1)}/wk) → ${v.recommendation}`;
209
+ }
210
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dreamspace_evolution/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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"}