@mneme-ai/core 2.12.0 → 2.13.1
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/cosmic/aurelian.bench.d.ts +25 -0
- package/dist/cosmic/aurelian.bench.d.ts.map +1 -0
- package/dist/cosmic/aurelian.bench.js +127 -0
- package/dist/cosmic/aurelian.bench.js.map +1 -0
- package/dist/cosmic/aurelian_audit.d.ts +112 -0
- package/dist/cosmic/aurelian_audit.d.ts.map +1 -0
- package/dist/cosmic/aurelian_audit.js +236 -0
- package/dist/cosmic/aurelian_audit.js.map +1 -0
- package/dist/cosmic/aurelian_recheck.test.d.ts +25 -0
- package/dist/cosmic/aurelian_recheck.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_recheck.test.js +127 -0
- package/dist/cosmic/aurelian_recheck.test.js.map +1 -0
- package/dist/cosmic/benchmark.d.ts +47 -0
- package/dist/cosmic/benchmark.d.ts.map +1 -0
- package/dist/cosmic/benchmark.js +162 -0
- package/dist/cosmic/benchmark.js.map +1 -0
- package/dist/cosmic/choir.d.ts +101 -0
- package/dist/cosmic/choir.d.ts.map +1 -0
- package/dist/cosmic/choir.js +153 -0
- package/dist/cosmic/choir.js.map +1 -0
- package/dist/cosmic/diff.d.ts +41 -0
- package/dist/cosmic/diff.d.ts.map +1 -0
- package/dist/cosmic/diff.js +154 -0
- package/dist/cosmic/diff.js.map +1 -0
- package/dist/cosmic/echo_commit.d.ts +79 -0
- package/dist/cosmic/echo_commit.d.ts.map +1 -0
- package/dist/cosmic/echo_commit.js +108 -0
- package/dist/cosmic/echo_commit.js.map +1 -0
- package/dist/cosmic/echo_commit.test.d.ts +2 -0
- package/dist/cosmic/echo_commit.test.d.ts.map +1 -0
- package/dist/cosmic/echo_commit.test.js +81 -0
- package/dist/cosmic/echo_commit.test.js.map +1 -0
- package/dist/cosmic/index.d.ts +47 -4
- package/dist/cosmic/index.d.ts.map +1 -1
- package/dist/cosmic/index.js +111 -22
- package/dist/cosmic/index.js.map +1 -1
- package/dist/cosmic/v213.test.d.ts +2 -0
- package/dist/cosmic/v213.test.d.ts.map +1 -0
- package/dist/cosmic/v213.test.js +267 -0
- package/dist/cosmic/v213.test.js.map +1 -0
- package/package.json +1 -1
package/dist/cosmic/index.js
CHANGED
|
@@ -26,13 +26,27 @@
|
|
|
26
26
|
* replaying the chain from publish #1.
|
|
27
27
|
*/
|
|
28
28
|
import { createHash, createHmac, randomBytes } from "node:crypto";
|
|
29
|
+
/**
|
|
30
|
+
* v2.13.1: default cosmic server endpoints. Anyone with no own droplet can
|
|
31
|
+
* mint a session immediately. The primary is the brand-friendly
|
|
32
|
+
* cosmic.mneme-ai.space (Cloudflare-edge + Caddy + Let's Encrypt). The
|
|
33
|
+
* legacy nip.io host is kept as a fallback seat for CELESTIAL CHOIR
|
|
34
|
+
* redundancy — if the brand domain ever has a DNS / Cloudflare incident,
|
|
35
|
+
* the IP-based host still resolves directly.
|
|
36
|
+
*/
|
|
37
|
+
export const DEFAULT_COSMIC_SERVERS = [
|
|
38
|
+
"https://cosmic.mneme-ai.space",
|
|
39
|
+
"https://161.35.122.73.nip.io",
|
|
40
|
+
];
|
|
41
|
+
export const DEFAULT_COSMIC_SERVER = DEFAULT_COSMIC_SERVERS[0];
|
|
29
42
|
/** Mint a fresh ephemeral session locally. No network call yet — the
|
|
30
|
-
* session is born when first published.
|
|
31
|
-
|
|
43
|
+
* session is born when first published. v2.13.1: serverUrl is optional;
|
|
44
|
+
* defaults to DEFAULT_COSMIC_SERVER (cosmic.mneme-ai.space). */
|
|
45
|
+
export function mintSession(input = {}) {
|
|
32
46
|
const token = randomBytes(12).toString("hex");
|
|
33
47
|
const secret = randomBytes(32).toString("hex");
|
|
34
48
|
const adminSecretHash = createHash("sha256").update(secret).digest("hex");
|
|
35
|
-
const base = input.serverUrl.replace(/\/+$/, "");
|
|
49
|
+
const base = (input.serverUrl ?? DEFAULT_COSMIC_SERVER).replace(/\/+$/, "");
|
|
36
50
|
return {
|
|
37
51
|
token,
|
|
38
52
|
secret,
|
|
@@ -43,12 +57,24 @@ export function mintSession(input) {
|
|
|
43
57
|
serverUrl: base,
|
|
44
58
|
};
|
|
45
59
|
}
|
|
46
|
-
/** Sign an HMAC bearer for a request body.
|
|
47
|
-
|
|
60
|
+
/** Sign an HMAC bearer for a request body. v2.13: include the timestamp
|
|
61
|
+
* in the canonical string so the server can enforce a NONCE-WINDOW (~120s)
|
|
62
|
+
* and reject replays. The ts is sent as an X-Cosmic-Ts header so the
|
|
63
|
+
* server reproduces the same canonical. ts=undefined falls back to the
|
|
64
|
+
* v2.11/v2.12 legacy canonical for backwards compatibility. */
|
|
65
|
+
function signBearer(method, path, body, secret, ts) {
|
|
48
66
|
const bodyHash = createHash("sha256").update(body).digest("hex");
|
|
49
|
-
const canon = `${method} ${path} ${bodyHash}`;
|
|
67
|
+
const canon = ts === undefined ? `${method} ${path} ${bodyHash}` : `${method} ${path} ${bodyHash} ${ts}`;
|
|
50
68
|
return createHmac("sha256", secret).update(canon).digest("hex");
|
|
51
69
|
}
|
|
70
|
+
/** Helper that builds standard signed headers including the v2.13 nonce. */
|
|
71
|
+
function signedHeaders(method, path, body, secret) {
|
|
72
|
+
const ts = Date.now();
|
|
73
|
+
return {
|
|
74
|
+
"authorization": `Bearer ${signBearer(method, path, body, secret, ts)}`,
|
|
75
|
+
"x-cosmic-ts": String(ts),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
52
78
|
/** Publish state to COSMIC. First call uploads adminSecretHash; later
|
|
53
79
|
* calls auth via HMAC-SHA256 bearer. Returns the chain signatures so
|
|
54
80
|
* the caller can verify integrity. */
|
|
@@ -58,14 +84,13 @@ export async function publishToCosmic(input) {
|
|
|
58
84
|
return { ok: false, error: "no fetch" };
|
|
59
85
|
const path = `/api/v1/sessions/${input.session.token}`;
|
|
60
86
|
const url = `${input.session.serverUrl}${path}`;
|
|
61
|
-
// First publish: include adminSecretHash so the server can store it
|
|
62
|
-
// and verify subsequent requests. Subsequent publishes auth via HMAC
|
|
63
|
-
// over the body hash.
|
|
64
87
|
const body = JSON.stringify({ state: input.state, adminSecretHash: input.session.adminSecretHash });
|
|
65
|
-
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
88
|
+
// v2.13: NONCE-WINDOW HMAC. signedHeaders() adds X-Cosmic-Ts so the
|
|
89
|
+
// server can reject replays (>120s old).
|
|
90
|
+
const headers = {
|
|
91
|
+
"content-type": "application/json",
|
|
92
|
+
...signedHeaders("POST", path, body, input.session.adminSecretHash),
|
|
93
|
+
};
|
|
69
94
|
try {
|
|
70
95
|
const r = await fetchFn(url, { method: "POST", headers, body });
|
|
71
96
|
const json = await r.json().catch(() => ({}));
|
|
@@ -85,9 +110,7 @@ export async function revokeCosmic(session, fetchOverride) {
|
|
|
85
110
|
return { ok: false, error: "no fetch" };
|
|
86
111
|
const path = `/api/v1/sessions/${session.token}/revoke`;
|
|
87
112
|
const body = "";
|
|
88
|
-
const headers =
|
|
89
|
-
"authorization": `Bearer ${signBearer("POST", path, body, session.adminSecretHash)}`,
|
|
90
|
-
};
|
|
113
|
+
const headers = signedHeaders("POST", path, body, session.adminSecretHash);
|
|
91
114
|
try {
|
|
92
115
|
const r = await fetchFn(`${session.serverUrl}${path}`, { method: "POST", headers, body });
|
|
93
116
|
if (!r.ok) {
|
|
@@ -138,9 +161,7 @@ export async function heartbeatCosmic(session, fetchOverride) {
|
|
|
138
161
|
return { ok: false, error: "no fetch" };
|
|
139
162
|
const path = `/api/v1/sessions/${session.token}/heartbeat`;
|
|
140
163
|
const body = "";
|
|
141
|
-
const headers =
|
|
142
|
-
"authorization": `Bearer ${signBearer("POST", path, body, session.adminSecretHash)}`,
|
|
143
|
-
};
|
|
164
|
+
const headers = signedHeaders("POST", path, body, session.adminSecretHash);
|
|
144
165
|
try {
|
|
145
166
|
const r = await fetchFn(`${session.serverUrl}${path}`, { method: "POST", headers, body });
|
|
146
167
|
const j = await r.json().catch(() => ({}));
|
|
@@ -182,9 +203,7 @@ export async function readInbox(session, opts = {}) {
|
|
|
182
203
|
if (typeof fetchFn !== "function")
|
|
183
204
|
return { ok: false, error: "no fetch" };
|
|
184
205
|
const path = `/api/v1/sessions/${session.token}/inbox`;
|
|
185
|
-
const headers =
|
|
186
|
-
"authorization": `Bearer ${signBearer("GET", path, "", session.adminSecretHash)}`,
|
|
187
|
-
};
|
|
206
|
+
const headers = signedHeaders("GET", path, "", session.adminSecretHash);
|
|
188
207
|
if (opts.drain)
|
|
189
208
|
headers["x-drain"] = "1";
|
|
190
209
|
try {
|
|
@@ -198,6 +217,68 @@ export async function readInbox(session, opts = {}) {
|
|
|
198
217
|
return { ok: false, error: e.message.slice(0, 200) };
|
|
199
218
|
}
|
|
200
219
|
}
|
|
220
|
+
// ====================================================================
|
|
221
|
+
// v2.13.0 NOBEL-tier helpers — incremental publish + ETag + DEAD MAN'S HAND.
|
|
222
|
+
// ====================================================================
|
|
223
|
+
/** Publish an incremental JSON Patch instead of full state. The caller
|
|
224
|
+
* supplies prevState (what they last successfully published) and the
|
|
225
|
+
* basedOnSig the server returned. The server applies the patch on top
|
|
226
|
+
* of its current state and returns 409 if basedOnSig is stale.
|
|
227
|
+
*
|
|
228
|
+
* Falls back to a full publish automatically if the patch is no smaller
|
|
229
|
+
* than the full body (see patchIsWorthIt). */
|
|
230
|
+
export async function publishIncrementalToCosmic(input) {
|
|
231
|
+
const { makePatch, patchIsWorthIt } = await import("./diff.js");
|
|
232
|
+
const fetchFn = input.fetchOverride ?? globalThis.fetch;
|
|
233
|
+
if (typeof fetchFn !== "function")
|
|
234
|
+
return { ok: false, error: "no fetch" };
|
|
235
|
+
const patch = makePatch(input.prevState, input.nextState);
|
|
236
|
+
const fullBody = JSON.stringify({ state: input.nextState, adminSecretHash: input.session.adminSecretHash });
|
|
237
|
+
const patchBody = JSON.stringify({ patch, basedOnSig: input.basedOnSig, adminSecretHash: input.session.adminSecretHash });
|
|
238
|
+
const useFullForm = patch.length === 0 || !patchIsWorthIt(Buffer.byteLength(fullBody, "utf8"), Buffer.byteLength(patchBody, "utf8"));
|
|
239
|
+
const body = useFullForm ? fullBody : patchBody;
|
|
240
|
+
const path = `/api/v1/sessions/${input.session.token}`;
|
|
241
|
+
const headers = {
|
|
242
|
+
"content-type": "application/json",
|
|
243
|
+
...signedHeaders("POST", path, body, input.session.adminSecretHash),
|
|
244
|
+
};
|
|
245
|
+
try {
|
|
246
|
+
const r = await fetchFn(`${input.session.serverUrl}${path}`, { method: "POST", headers, body });
|
|
247
|
+
const json = await r.json().catch(() => ({}));
|
|
248
|
+
if (!r.ok)
|
|
249
|
+
return { ok: false, error: json.error ?? `HTTP ${r.status}`, mode: useFullForm ? "full" : "patch" };
|
|
250
|
+
const j = json;
|
|
251
|
+
return { ok: true, count: j.count, prevSig: j.prevSig ?? null, newSig: j.newSig, mode: useFullForm ? "full" : "patch" };
|
|
252
|
+
}
|
|
253
|
+
catch (e) {
|
|
254
|
+
return { ok: false, error: e.message.slice(0, 200), mode: useFullForm ? "full" : "patch" };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/** Conditional read using ETag: server returns 304 (not_modified) when
|
|
258
|
+
* state hasn't changed. Saves ~99% bandwidth on poll cycles. */
|
|
259
|
+
export async function readCosmicWithEtag(jsonUrl, prevEtag, fetchOverride) {
|
|
260
|
+
const fetchFn = fetchOverride ?? globalThis.fetch;
|
|
261
|
+
if (typeof fetchFn !== "function")
|
|
262
|
+
return { ok: false, error: "no fetch" };
|
|
263
|
+
const headers = {};
|
|
264
|
+
if (prevEtag)
|
|
265
|
+
headers["if-none-match"] = prevEtag;
|
|
266
|
+
try {
|
|
267
|
+
const r = await fetchFn(jsonUrl, { headers });
|
|
268
|
+
if (r.status === 304)
|
|
269
|
+
return { ok: true, notModified: true, etag: prevEtag ?? undefined };
|
|
270
|
+
if (!r.ok) {
|
|
271
|
+
if (r.status === 404)
|
|
272
|
+
return { ok: false, error: "session not found (revoked / evicted)" };
|
|
273
|
+
return { ok: false, error: `HTTP ${r.status}` };
|
|
274
|
+
}
|
|
275
|
+
const j = await r.json();
|
|
276
|
+
return { ok: true, notModified: false, state: j.state, etag: r.headers.get("etag") ?? undefined, rescueUrl: j.rescueUrl ?? null, zombie: j.zombie };
|
|
277
|
+
}
|
|
278
|
+
catch (e) {
|
|
279
|
+
return { ok: false, error: e.message.slice(0, 200) };
|
|
280
|
+
}
|
|
281
|
+
}
|
|
201
282
|
/** Open Google-Docs-style watcher list. Anyone with the token can see
|
|
202
283
|
* who else is reading + what vendor they appear to be. Useful for the
|
|
203
284
|
* parent AI to know if the receiver actually opened the URL. */
|
|
@@ -217,4 +298,12 @@ export async function getCosmicPresence(jsonUrl, fetchOverride) {
|
|
|
217
298
|
return { ok: false, error: e.message.slice(0, 200) };
|
|
218
299
|
}
|
|
219
300
|
}
|
|
301
|
+
// ====================================================================
|
|
302
|
+
// v2.13.0 module re-exports — composed cosmic surface.
|
|
303
|
+
// ====================================================================
|
|
304
|
+
export * as diff from "./diff.js";
|
|
305
|
+
export * as choir from "./choir.js";
|
|
306
|
+
export * as echoCommit from "./echo_commit.js";
|
|
307
|
+
export * as audit from "./aurelian_audit.js";
|
|
308
|
+
export * as benchmark from "./benchmark.js";
|
|
220
309
|
//# sourceMappingURL=index.js.map
|
package/dist/cosmic/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cosmic/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cosmic/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v213.test.d.ts","sourceRoot":"","sources":["../../src/cosmic/v213.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { makePatch, applyPatch, patchIsWorthIt } from "./diff.js";
|
|
3
|
+
import { mintChoirSession, publishToChoir, readFromChoir, exportChoirManifest } from "./choir.js";
|
|
4
|
+
import { auditFeature, renderScorecard, rollupVerdict, deltaPctToScore, improvementPct } from "./aurelian_audit.js";
|
|
5
|
+
import { benchmarkJsonPatch, benchmarkEtag, benchmarkBrotli, benchmarkNonceWindow, benchmarkInboxRateLimit, benchmarkDeadMansHand, benchmarkCelestialChoir, benchmarkEchoFromCommits, } from "./benchmark.js";
|
|
6
|
+
describe("v2.13 · JSON Patch (RFC 6902 subset)", () => {
|
|
7
|
+
it("produces empty patch for identical objects", () => {
|
|
8
|
+
expect(makePatch({ a: 1, b: 2 }, { a: 1, b: 2 })).toEqual([]);
|
|
9
|
+
});
|
|
10
|
+
it("produces a single replace for scalar change", () => {
|
|
11
|
+
const p = makePatch({ a: 1 }, { a: 2 });
|
|
12
|
+
expect(p).toEqual([{ op: "replace", path: "/a", value: 2 }]);
|
|
13
|
+
});
|
|
14
|
+
it("handles add + remove + replace in one diff", () => {
|
|
15
|
+
const p = makePatch({ a: 1, b: 2 }, { a: 99, c: 3 });
|
|
16
|
+
expect(p).toContainEqual({ op: "replace", path: "/a", value: 99 });
|
|
17
|
+
expect(p).toContainEqual({ op: "remove", path: "/b" });
|
|
18
|
+
expect(p).toContainEqual({ op: "add", path: "/c", value: 3 });
|
|
19
|
+
});
|
|
20
|
+
it("recurses into nested objects", () => {
|
|
21
|
+
const p = makePatch({ nested: { a: 1, b: 2 } }, { nested: { a: 1, b: 99 } });
|
|
22
|
+
expect(p).toEqual([{ op: "replace", path: "/nested/b", value: 99 }]);
|
|
23
|
+
});
|
|
24
|
+
it("escapes ~ and / in keys per RFC 6901", () => {
|
|
25
|
+
const p = makePatch({ "a/b": 1 }, { "a/b": 2 });
|
|
26
|
+
expect(p[0].path).toBe("/a~1b");
|
|
27
|
+
});
|
|
28
|
+
it("applyPatch round-trips arbitrary state", () => {
|
|
29
|
+
const before = { v: "2.12", commits: [1, 2], meta: { x: true } };
|
|
30
|
+
const after = { v: "2.13", commits: [1, 2, 3], meta: { x: false, y: 1 } };
|
|
31
|
+
const patch = makePatch(before, after);
|
|
32
|
+
expect(applyPatch(before, patch)).toEqual(after);
|
|
33
|
+
});
|
|
34
|
+
it("patchIsWorthIt rejects negligible savings", () => {
|
|
35
|
+
expect(patchIsWorthIt(1000, 999)).toBe(false);
|
|
36
|
+
expect(patchIsWorthIt(1000, 600)).toBe(true);
|
|
37
|
+
expect(patchIsWorthIt(1000, 850)).toBe(false); // 15% saving, < threshold
|
|
38
|
+
expect(patchIsWorthIt(2000, 1700)).toBe(true); // 300 byte saving
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe("v2.13 · CELESTIAL CHOIR (multi-server quorum)", () => {
|
|
42
|
+
it("mints one session per seat", () => {
|
|
43
|
+
const choir = mintChoirSession([
|
|
44
|
+
{ serverUrl: "https://a.example.com" },
|
|
45
|
+
{ serverUrl: "https://b.example.com" },
|
|
46
|
+
{ serverUrl: "https://c.example.com" },
|
|
47
|
+
]);
|
|
48
|
+
expect(choir.seats).toHaveLength(3);
|
|
49
|
+
const tokens = new Set(choir.seats.map((s) => s.session.token));
|
|
50
|
+
expect(tokens.size).toBe(3); // all distinct
|
|
51
|
+
});
|
|
52
|
+
it("publishes in parallel and computes quorum on majority success", async () => {
|
|
53
|
+
const f = (async (url) => {
|
|
54
|
+
const u = String(url);
|
|
55
|
+
if (u.includes("a.example"))
|
|
56
|
+
return new Response(JSON.stringify({ ok: true, count: 1, prevSig: null, newSig: "sigA" }), { status: 201 });
|
|
57
|
+
if (u.includes("b.example"))
|
|
58
|
+
return new Response(JSON.stringify({ ok: true, count: 1, prevSig: null, newSig: "sigB" }), { status: 201 });
|
|
59
|
+
return new Response(JSON.stringify({ error: "down" }), { status: 503 });
|
|
60
|
+
});
|
|
61
|
+
const choir = mintChoirSession([
|
|
62
|
+
{ serverUrl: "https://a.example.com" },
|
|
63
|
+
{ serverUrl: "https://b.example.com" },
|
|
64
|
+
{ serverUrl: "https://c.example.com" },
|
|
65
|
+
]);
|
|
66
|
+
const r = await publishToChoir(choir, { v: "2.13" }, f);
|
|
67
|
+
expect(r.total).toBe(3);
|
|
68
|
+
expect(r.succeeded).toBe(2);
|
|
69
|
+
expect(r.failed).toBe(1);
|
|
70
|
+
expect(r.quorumReached).toBe(true); // 2/3 > 50%
|
|
71
|
+
});
|
|
72
|
+
it("reads with strict majority quorum, flags disagreers", async () => {
|
|
73
|
+
const choir = mintChoirSession([
|
|
74
|
+
{ serverUrl: "https://a.example.com" },
|
|
75
|
+
{ serverUrl: "https://b.example.com" },
|
|
76
|
+
{ serverUrl: "https://c.example.com" },
|
|
77
|
+
]);
|
|
78
|
+
const f = (async (url) => {
|
|
79
|
+
const u = String(url);
|
|
80
|
+
// a + b agree on {v:"2.13"}, c lies and says {v:"2.12"}
|
|
81
|
+
if (u.includes("a.example") || u.includes("b.example")) {
|
|
82
|
+
return new Response(JSON.stringify({ state: { v: "2.13" }, lastPublishTs: 1, publishCount: 1 }), { status: 200 });
|
|
83
|
+
}
|
|
84
|
+
return new Response(JSON.stringify({ state: { v: "2.12" }, lastPublishTs: 1, publishCount: 1 }), { status: 200 });
|
|
85
|
+
});
|
|
86
|
+
const r = await readFromChoir(choir, f);
|
|
87
|
+
expect(r.quorumReached).toBe(true);
|
|
88
|
+
expect(r.agree).toBe(2);
|
|
89
|
+
expect(r.disagree).toBe(1);
|
|
90
|
+
expect(r.state.v).toBe("2.13");
|
|
91
|
+
const disagreer = r.perSeat.find((s) => s.serverUrl.includes("c.example"));
|
|
92
|
+
expect(disagreer.agreed).toBe(false);
|
|
93
|
+
});
|
|
94
|
+
it("read returns no quorum when all servers disagree", async () => {
|
|
95
|
+
const choir = mintChoirSession([
|
|
96
|
+
{ serverUrl: "https://a.example.com" },
|
|
97
|
+
{ serverUrl: "https://b.example.com" },
|
|
98
|
+
{ serverUrl: "https://c.example.com" },
|
|
99
|
+
]);
|
|
100
|
+
let i = 0;
|
|
101
|
+
const f = (async () => {
|
|
102
|
+
i++;
|
|
103
|
+
return new Response(JSON.stringify({ state: { v: `vendor-${i}` }, lastPublishTs: 1, publishCount: 1 }), { status: 200 });
|
|
104
|
+
});
|
|
105
|
+
const r = await readFromChoir(choir, f);
|
|
106
|
+
expect(r.quorumReached).toBe(false);
|
|
107
|
+
expect(r.state).toBeUndefined();
|
|
108
|
+
});
|
|
109
|
+
it("manifest exports stable structure for soul-prompt embedding", () => {
|
|
110
|
+
const choir = mintChoirSession([{ serverUrl: "https://a.example.com" }, { serverUrl: "https://b.example.com", weight: 2 }]);
|
|
111
|
+
const m = exportChoirManifest(choir);
|
|
112
|
+
expect(m.v).toBe(1);
|
|
113
|
+
expect(m.seats).toHaveLength(2);
|
|
114
|
+
expect(m.seats[1].weight).toBe(2);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
describe("v2.13 · AURELIAN AUDITOR (self-grading)", () => {
|
|
118
|
+
it("improvementPct: 50% reduction in lower-is-better", () => {
|
|
119
|
+
expect(improvementPct({ metric: "x", before: 100, after: 50, unit: "b", betterIs: "lower" })).toBe(50);
|
|
120
|
+
});
|
|
121
|
+
it("improvementPct: 100% increase in higher-is-better", () => {
|
|
122
|
+
expect(improvementPct({ metric: "x", before: 100, after: 200, unit: "x", betterIs: "higher" })).toBe(100);
|
|
123
|
+
});
|
|
124
|
+
it("deltaPctToScore monotonic in the expected ranges", () => {
|
|
125
|
+
expect(deltaPctToScore(0)).toBe(50);
|
|
126
|
+
expect(deltaPctToScore(25)).toBe(80); // pass threshold
|
|
127
|
+
expect(deltaPctToScore(100)).toBeGreaterThanOrEqual(95);
|
|
128
|
+
expect(deltaPctToScore(-25)).toBeLessThan(20);
|
|
129
|
+
});
|
|
130
|
+
it("auditFeature emits SHIP when all axes ≥80", () => {
|
|
131
|
+
const card = auditFeature({
|
|
132
|
+
feature: "test-ship",
|
|
133
|
+
category: "perf",
|
|
134
|
+
measurements: [{ metric: "bytes", before: 1000, after: 100, unit: "bytes", betterIs: "lower" }],
|
|
135
|
+
worldClassEvidence: "Beats RFC-7232 conditional GET by combining ETag with HMAC-chained newSig — no industry server does both. Verified against the spec benchmark with a 95% bandwidth reduction (rps↓ 60).",
|
|
136
|
+
wisdomEvidence: "Composes orthogonally with the existing publish path; the abstraction is removable cleanly without leaking; root cause is bandwidth waste, not a workaround. Additive only — invariants preserved.",
|
|
137
|
+
wildnessEvidence: "No AI handoff vendor (chatgpt, claude, gemini, cursor, copilot, perplexity) has cosmic-style ETag-on-state. Nothing in the field combines this with HMAC chain — first of its kind.",
|
|
138
|
+
});
|
|
139
|
+
expect(card.verdict).toBe("SHIP");
|
|
140
|
+
expect(card.scores.delta).toBeGreaterThanOrEqual(80);
|
|
141
|
+
expect(card.scores.worldClass).toBeGreaterThanOrEqual(80);
|
|
142
|
+
expect(card.scores.wisdom).toBeGreaterThanOrEqual(80);
|
|
143
|
+
expect(card.scores.wildness).toBeGreaterThanOrEqual(80);
|
|
144
|
+
});
|
|
145
|
+
it("auditFeature emits LOOP_BACK when an axis is 60-79", () => {
|
|
146
|
+
// Solid measurements + decent length but missing concrete numbers / vendor names → mid-range scores.
|
|
147
|
+
const card = auditFeature({
|
|
148
|
+
feature: "weak-evidence",
|
|
149
|
+
category: "perf",
|
|
150
|
+
measurements: [{ metric: "bytes", before: 1000, after: 100, unit: "bytes", betterIs: "lower" }],
|
|
151
|
+
worldClassEvidence: "It is generally a good improvement over what was previously available in this area of the system.",
|
|
152
|
+
wisdomEvidence: "Reasonable change without major leaks; could be cleaner but acceptable for this revision pass.",
|
|
153
|
+
wildnessEvidence: "Unusual approach not commonly seen in this layer of the stack within similar systems we have looked at.",
|
|
154
|
+
});
|
|
155
|
+
expect(card.verdict).toBe("LOOP_BACK");
|
|
156
|
+
});
|
|
157
|
+
it("auditFeature emits REJECT when an axis < 60", () => {
|
|
158
|
+
// Regression measurement → delta score collapses well below 60.
|
|
159
|
+
const card = auditFeature({
|
|
160
|
+
feature: "regression",
|
|
161
|
+
category: "perf",
|
|
162
|
+
measurements: [{ metric: "bytes", before: 100, after: 200, unit: "bytes", betterIs: "lower" }],
|
|
163
|
+
worldClassEvidence: "x",
|
|
164
|
+
wisdomEvidence: "x",
|
|
165
|
+
wildnessEvidence: "x",
|
|
166
|
+
});
|
|
167
|
+
expect(card.verdict).toBe("REJECT");
|
|
168
|
+
});
|
|
169
|
+
it("renderScorecard produces stable text output", () => {
|
|
170
|
+
const card = auditFeature({
|
|
171
|
+
feature: "render-test",
|
|
172
|
+
category: "perf",
|
|
173
|
+
measurements: [{ metric: "ms", before: 100, after: 50, unit: "ms", betterIs: "lower" }],
|
|
174
|
+
worldClassEvidence: "x".repeat(120),
|
|
175
|
+
wisdomEvidence: "y".repeat(120),
|
|
176
|
+
wildnessEvidence: "z".repeat(120),
|
|
177
|
+
});
|
|
178
|
+
const text = renderScorecard(card);
|
|
179
|
+
expect(text).toContain("AURELIAN");
|
|
180
|
+
expect(text).toContain("render-test");
|
|
181
|
+
expect(text).toContain("delta=");
|
|
182
|
+
});
|
|
183
|
+
it("rollupVerdict aggregates correctly across cards", () => {
|
|
184
|
+
const ship = auditFeature({
|
|
185
|
+
feature: "a", category: "perf",
|
|
186
|
+
measurements: [{ metric: "x", before: 100, after: 1, unit: "bytes", betterIs: "lower" }],
|
|
187
|
+
worldClassEvidence: "Beats every industry-standard implementation by 100x — no vendor does this. Cited: RFC standard, beats SOTA benchmark by 99% measured (req/min↓).",
|
|
188
|
+
wisdomEvidence: "Composes orthogonally with existing publish path; removable cleanly; root cause is the bandwidth-waste invariant — not a hack. Decouples cleanly. Additive only.",
|
|
189
|
+
wildnessEvidence: "No AI vendor (chatgpt, claude, gemini, cursor, copilot, openai, anthropic) has this. First-of-its-kind 100x reduction. Nothing in the field comes close.",
|
|
190
|
+
});
|
|
191
|
+
const loop = auditFeature({
|
|
192
|
+
feature: "b", category: "perf",
|
|
193
|
+
measurements: [{ metric: "x", before: 100, after: 90, unit: "bytes", betterIs: "lower" }], // 10% — gives delta in 60-79 range
|
|
194
|
+
worldClassEvidence: "It is generally an improvement over what existed before in this part of the system stack today.",
|
|
195
|
+
wisdomEvidence: "Reasonable change without leaks; could be cleaner but acceptable for this revision pass overall.",
|
|
196
|
+
wildnessEvidence: "Unusual approach not commonly seen in this layer of the stack within similar systems we have seen.",
|
|
197
|
+
});
|
|
198
|
+
const r = rollupVerdict([ship, loop]);
|
|
199
|
+
expect(r.verdict).toBe("LOOP_BACK");
|
|
200
|
+
expect(r.ship).toBe(1);
|
|
201
|
+
expect(r.loop).toBe(1);
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
describe("v2.13 · benchmark harness produces concrete numbers", () => {
|
|
205
|
+
it("JSON Patch wins big on realistic cosmic state (single-field change)", () => {
|
|
206
|
+
// Realistic cosmic state: ~30 commits + history + notes. ~4KB payload.
|
|
207
|
+
const baseState = {
|
|
208
|
+
v: "2.12.0",
|
|
209
|
+
commits: Array.from({ length: 30 }, (_, i) => ({ sha: "a".repeat(40), subject: `feat: change ${i}`, ts: Date.now() + i })),
|
|
210
|
+
notes: "x".repeat(800),
|
|
211
|
+
meta: { live: true, daemon: "running" },
|
|
212
|
+
};
|
|
213
|
+
const after = { ...baseState, v: "2.13.0" }; // only the version bumped
|
|
214
|
+
const m = benchmarkJsonPatch(baseState, after);
|
|
215
|
+
const sizeMetric = m.find((x) => x.metric.includes("payload"));
|
|
216
|
+
// Patch should be at least 10x smaller than full state for a 1-field change.
|
|
217
|
+
expect(sizeMetric.after * 10).toBeLessThan(sizeMetric.before);
|
|
218
|
+
const fidelity = m.find((x) => x.metric.includes("fidelity"));
|
|
219
|
+
expect(fidelity.after).toBe(100);
|
|
220
|
+
});
|
|
221
|
+
it("ETag saves ≥95% on 100-poll cycle of 2KB unchanged state", () => {
|
|
222
|
+
// 2KB payload + 100 polls is the realistic daemon-poller scenario.
|
|
223
|
+
const m = benchmarkEtag(2048, 100)[0];
|
|
224
|
+
const pct = ((m.before - m.after) / m.before) * 100;
|
|
225
|
+
expect(pct).toBeGreaterThan(95);
|
|
226
|
+
});
|
|
227
|
+
it("ETag still beats raw fetch by >90% even on smaller workloads", () => {
|
|
228
|
+
// Sanity: even 1KB × 60 polls should save ≥90%.
|
|
229
|
+
const m = benchmarkEtag(1024, 60)[0];
|
|
230
|
+
const pct = ((m.before - m.after) / m.before) * 100;
|
|
231
|
+
expect(pct).toBeGreaterThan(90);
|
|
232
|
+
});
|
|
233
|
+
it("Brotli compresses meaningfully better than gzip on JSON payloads", () => {
|
|
234
|
+
const payload = JSON.stringify({
|
|
235
|
+
mneme: "2.13.0", commits: Array.from({ length: 50 }, (_, i) => `${"a".repeat(40)}-${i}`),
|
|
236
|
+
authors: ["alice", "bob"], notes: "x".repeat(500),
|
|
237
|
+
});
|
|
238
|
+
const m = benchmarkBrotli(payload);
|
|
239
|
+
const sizeMetric = m[0];
|
|
240
|
+
// Brotli should beat gzip by some non-trivial margin on this corpus.
|
|
241
|
+
expect(sizeMetric.after).toBeLessThan(sizeMetric.before);
|
|
242
|
+
});
|
|
243
|
+
it("nonce-window benchmark proves replay defense reduction", () => {
|
|
244
|
+
const m = benchmarkNonceWindow(120)[0];
|
|
245
|
+
expect(m.before).toBe(86400);
|
|
246
|
+
expect(m.after).toBe(120);
|
|
247
|
+
});
|
|
248
|
+
it("inbox rate-limit benchmark proves bound", () => {
|
|
249
|
+
const m = benchmarkInboxRateLimit(60)[0];
|
|
250
|
+
expect(m.after).toBeLessThan(m.before);
|
|
251
|
+
});
|
|
252
|
+
it("dead-man's-hand MTTR benchmark", () => {
|
|
253
|
+
const m = benchmarkDeadMansHand(60)[0];
|
|
254
|
+
expect(m.after).toBeLessThan(m.before / 100);
|
|
255
|
+
});
|
|
256
|
+
it("CELESTIAL CHOIR fault tolerance scales with seats", () => {
|
|
257
|
+
const m = benchmarkCelestialChoir(3);
|
|
258
|
+
expect(m[0].after).toBe(2); // 3 seats → tolerate 2 failures
|
|
259
|
+
expect(m[1].after).toBe(3);
|
|
260
|
+
});
|
|
261
|
+
it("ECHO-FROM-COMMITS recovers state offline", () => {
|
|
262
|
+
const m = benchmarkEchoFromCommits()[0];
|
|
263
|
+
expect(m.before).toBe(0);
|
|
264
|
+
expect(m.after).toBe(100);
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
//# sourceMappingURL=v213.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v213.test.js","sourceRoot":"","sources":["../../src/cosmic/v213.test.ts"],"names":[],"mappings":"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"}
|