@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.
- package/dist/autonomic_scheduler/autonomic_scheduler.test.d.ts +2 -0
- package/dist/autonomic_scheduler/autonomic_scheduler.test.d.ts.map +1 -0
- package/dist/autonomic_scheduler/autonomic_scheduler.test.js +236 -0
- package/dist/autonomic_scheduler/autonomic_scheduler.test.js.map +1 -0
- package/dist/autonomic_scheduler/index.d.ts +149 -0
- package/dist/autonomic_scheduler/index.d.ts.map +1 -0
- package/dist/autonomic_scheduler/index.js +249 -0
- package/dist/autonomic_scheduler/index.js.map +1 -0
- package/dist/cosmic/aurelian_v1927.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1927.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1927.test.js +73 -0
- package/dist/cosmic/aurelian_v1927.test.js.map +1 -0
- package/dist/cosmic/aurelian_v1928.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1928.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1928.test.js +47 -0
- package/dist/cosmic/aurelian_v1928.test.js.map +1 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts +2 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts.map +1 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js +153 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js.map +1 -0
- package/dist/dreamspace_cartographer/index.d.ts +110 -0
- package/dist/dreamspace_cartographer/index.d.ts.map +1 -0
- package/dist/dreamspace_cartographer/index.js +175 -0
- package/dist/dreamspace_cartographer/index.js.map +1 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.d.ts +2 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.d.ts.map +1 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.js +199 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.js.map +1 -0
- package/dist/dreamspace_federate/index.d.ts +131 -0
- package/dist/dreamspace_federate/index.d.ts.map +1 -0
- package/dist/dreamspace_federate/index.js +209 -0
- package/dist/dreamspace_federate/index.js.map +1 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.d.ts +2 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.d.ts.map +1 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.js +176 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.js.map +1 -0
- package/dist/dreamspace_pair/index.d.ts +99 -0
- package/dist/dreamspace_pair/index.d.ts.map +1 -0
- package/dist/dreamspace_pair/index.js +161 -0
- package/dist/dreamspace_pair/index.js.map +1 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.d.ts +2 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.d.ts.map +1 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.js +182 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.js.map +1 -0
- package/dist/dreamspace_probe/index.d.ts +125 -0
- package/dist/dreamspace_probe/index.d.ts.map +1 -0
- package/dist/dreamspace_probe/index.js +226 -0
- package/dist/dreamspace_probe/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/lineage/welcome.d.ts.map +1 -1
- package/dist/lineage/welcome.js +15 -1
- package/dist/lineage/welcome.js.map +1 -1
- package/dist/tribunal/tribunal.d.ts.map +1 -1
- package/dist/tribunal/tribunal.js +29 -2
- package/dist/tribunal/tribunal.js.map +1 -1
- package/dist/tribunal/tribunal.test.js +22 -0
- package/dist/tribunal/tribunal.test.js.map +1 -1
- package/dist/whats_new.d.ts.map +1 -1
- package/dist/whats_new.js +16 -0
- package/dist/whats_new.js.map +1 -1
- package/dist/wrapper_genesis/index.d.ts.map +1 -1
- package/dist/wrapper_genesis/index.js +34 -0
- package/dist/wrapper_genesis/index.js.map +1 -1
- 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 @@
|
|
|
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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"}
|