@mneme-ai/core 2.19.9 → 2.19.11
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_v1910.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1910.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1910.test.js +46 -0
- package/dist/cosmic/aurelian_v1910.test.js.map +1 -0
- package/dist/cosmic/aurelian_v1911.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1911.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1911.test.js +34 -0
- package/dist/cosmic/aurelian_v1911.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/mortal_wrappers/index.d.ts +182 -0
- package/dist/mortal_wrappers/index.d.ts.map +1 -0
- package/dist/mortal_wrappers/index.js +360 -0
- package/dist/mortal_wrappers/index.js.map +1 -0
- package/dist/mortal_wrappers/mortal_wrappers.test.d.ts +2 -0
- package/dist/mortal_wrappers/mortal_wrappers.test.d.ts.map +1 -0
- package/dist/mortal_wrappers/mortal_wrappers.test.js +372 -0
- package/dist/mortal_wrappers/mortal_wrappers.test.js.map +1 -0
- package/dist/proof_carrying/index.d.ts +100 -0
- package/dist/proof_carrying/index.d.ts.map +1 -0
- package/dist/proof_carrying/index.js +184 -0
- package/dist/proof_carrying/index.js.map +1 -0
- package/dist/proof_carrying/proof_carrying.test.d.ts +2 -0
- package/dist/proof_carrying/proof_carrying.test.d.ts.map +1 -0
- package/dist/proof_carrying/proof_carrying.test.js +179 -0
- package/dist/proof_carrying/proof_carrying.test.js.map +1 -0
- package/dist/reverse_wrapper/index.d.ts +137 -0
- package/dist/reverse_wrapper/index.d.ts.map +1 -0
- package/dist/reverse_wrapper/index.js +245 -0
- package/dist/reverse_wrapper/index.js.map +1 -0
- package/dist/reverse_wrapper/reverse_wrapper.test.d.ts +2 -0
- package/dist/reverse_wrapper/reverse_wrapper.test.d.ts.map +1 -0
- package/dist/reverse_wrapper/reverse_wrapper.test.js +199 -0
- package/dist/reverse_wrapper/reverse_wrapper.test.js.map +1 -0
- 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 +14 -0
- package/dist/wrapper_genesis/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.11 — MNEME MORTAL + REINCARNATING WRAPPERS (LIVING MCP)
|
|
3
|
+
*
|
|
4
|
+
* "Every MCP wrapper today is a static contract: registered once,
|
|
5
|
+
* schema frozen forever. AI agents memorise the schema in session 1
|
|
6
|
+
* and never re-read tools.list again. Six months later they're
|
|
7
|
+
* calling stale tools with the wrong argument shape and the bugs
|
|
8
|
+
* are silent because nobody checks. Mneme breaks the assumption:
|
|
9
|
+
* a wrapper is BORN with a TTL, REPRODUCES with a slightly drifted
|
|
10
|
+
* signature, and DIES when its TTL elapses. The previous generation
|
|
11
|
+
* stays alive for 1 deprecation cycle (gravity), then disappears.
|
|
12
|
+
*
|
|
13
|
+
* AI agents that re-read `mneme.tools` every turn = adapt
|
|
14
|
+
* automatically. AI agents that hard-code schemas in their planner
|
|
15
|
+
* prompt = break + log + lose BOUNTY. The market is forced to
|
|
16
|
+
* re-calibrate continuously; prompt-injection attacks that bake in
|
|
17
|
+
* specific tool names auto-expire."
|
|
18
|
+
*
|
|
19
|
+
* Honest scope (CRITICAL):
|
|
20
|
+
* - The mortal layer lives in the `mneme.mortal.*` NAMESPACE ONLY.
|
|
21
|
+
* Real Mneme tools (`mneme.arena.*`, `mneme.proof.*`, etc.) stay
|
|
22
|
+
* backwards-compatible forever. We do NOT actually mutate real MCP
|
|
23
|
+
* surfaces — that would break every client catastrophically.
|
|
24
|
+
* - Mortal wrappers are OPT-IN: AI agents that want to stress-test
|
|
25
|
+
* their adaptiveness wrap a base tool through `birthMortalWrapper`,
|
|
26
|
+
* then call the resulting alias. Real production callers stay on
|
|
27
|
+
* the canonical name and never see drift.
|
|
28
|
+
* - Each mortal wrapper carries an HMAC-signed lineage so an attacker
|
|
29
|
+
* can't forge "ancient" wrappers that were never actually born.
|
|
30
|
+
* - Max generations per base tool = 100 (hard loop guard).
|
|
31
|
+
*
|
|
32
|
+
* Pure additive layer; composes onto v2.19.10 PROOF-CARRYING (mortal
|
|
33
|
+
* wrappers can attach proofs like any other tool) + v2.19.9 GENESPLICING
|
|
34
|
+
* (chimeras can contain mortal aliases that drift over time).
|
|
35
|
+
*/
|
|
36
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
37
|
+
const PROTOCOL_VERSION = 1;
|
|
38
|
+
const DEFAULT_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
39
|
+
const DEFAULT_MUTATIONS_PER_TICK = 2;
|
|
40
|
+
const DEFAULT_DEPRECATION_GRAVITY_MS = 60 * 60 * 1000; // 1 hour
|
|
41
|
+
const MAX_GENERATIONS_PER_BASE = 100;
|
|
42
|
+
const MAX_TICK_BATCH = 3;
|
|
43
|
+
function canon(v) {
|
|
44
|
+
if (v === null || typeof v !== "object")
|
|
45
|
+
return JSON.stringify(v);
|
|
46
|
+
if (Array.isArray(v))
|
|
47
|
+
return "[" + v.map(canon).join(",") + "]";
|
|
48
|
+
const keys = Object.keys(v).sort();
|
|
49
|
+
return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
|
|
50
|
+
}
|
|
51
|
+
function defaultSecret() {
|
|
52
|
+
return process.env["MNEME_MORTAL_SECRET"] || `mneme-mortal-living-mcp-v${PROTOCOL_VERSION}`;
|
|
53
|
+
}
|
|
54
|
+
function computeHmac(body, secret) {
|
|
55
|
+
return createHmac("sha256", secret).update(canon(body)).digest("hex");
|
|
56
|
+
}
|
|
57
|
+
function safeEqHex(a, b) {
|
|
58
|
+
try {
|
|
59
|
+
return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function makeId(baseToolName, generation, birthAt) {
|
|
66
|
+
return "mw-" + createHmac("sha256", "mneme-mortal-id")
|
|
67
|
+
.update(`${baseToolName}|${generation}|${birthAt}`)
|
|
68
|
+
.digest("hex").slice(0, 14);
|
|
69
|
+
}
|
|
70
|
+
/** Deterministic mulberry32-style PRNG so tests are reproducible. */
|
|
71
|
+
function mulberry32(seed) {
|
|
72
|
+
let s = seed >>> 0;
|
|
73
|
+
return () => {
|
|
74
|
+
s = (s + 0x6D2B79F5) >>> 0;
|
|
75
|
+
let t = s;
|
|
76
|
+
t = Math.imul(t ^ (t >>> 15), t | 1);
|
|
77
|
+
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
|
|
78
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export function birthMortalWrapper(input) {
|
|
82
|
+
const birthAt = input.nowMs ?? Date.now();
|
|
83
|
+
const ttlMs = input.ttlMs ?? DEFAULT_TTL_MS;
|
|
84
|
+
const deprecationGravityMs = input.deprecationGravityMs ?? DEFAULT_DEPRECATION_GRAVITY_MS;
|
|
85
|
+
const signature = {
|
|
86
|
+
alias: `mneme.mortal.${input.baseToolName.replace(/^mneme\./, "")}.gen1`,
|
|
87
|
+
argRenameMap: Object.fromEntries(input.baseArgs.map((a) => [a, a])),
|
|
88
|
+
addedOptionalParams: [],
|
|
89
|
+
argOrder: [...input.baseArgs],
|
|
90
|
+
};
|
|
91
|
+
const body = {
|
|
92
|
+
v: PROTOCOL_VERSION,
|
|
93
|
+
id: makeId(input.baseToolName, 1, birthAt),
|
|
94
|
+
baseToolName: input.baseToolName,
|
|
95
|
+
signature,
|
|
96
|
+
generation: 1,
|
|
97
|
+
parentGeneration: null,
|
|
98
|
+
birthAt,
|
|
99
|
+
ttlMs,
|
|
100
|
+
expiresAt: birthAt + ttlMs,
|
|
101
|
+
deprecationGravityMs,
|
|
102
|
+
alive: true,
|
|
103
|
+
deprecatedUntil: null,
|
|
104
|
+
mutationsApplied: [],
|
|
105
|
+
};
|
|
106
|
+
return { ...body, hmac: computeHmac(body, input.secret ?? defaultSecret()) };
|
|
107
|
+
}
|
|
108
|
+
/** Apply one mutation to a signature; returns the NEW signature (immutable). */
|
|
109
|
+
export function mutateSignature(opts) {
|
|
110
|
+
const next = {
|
|
111
|
+
alias: `mneme.mortal.${opts.baseToolName.replace(/^mneme\./, "")}.gen${opts.nextGen}`,
|
|
112
|
+
argRenameMap: { ...opts.base.argRenameMap },
|
|
113
|
+
addedOptionalParams: [...opts.base.addedOptionalParams],
|
|
114
|
+
argOrder: [...opts.base.argOrder],
|
|
115
|
+
};
|
|
116
|
+
switch (opts.kind) {
|
|
117
|
+
case "rename_optional_field": {
|
|
118
|
+
// Pick one currently-canonical-named arg and rename its mortal-facing key.
|
|
119
|
+
// We pick the lexicographically-first unrenamed entry to be deterministic per RNG seed.
|
|
120
|
+
const unrenamed = Object.entries(next.argRenameMap)
|
|
121
|
+
.filter(([mortal, base]) => mortal === base)
|
|
122
|
+
.map(([m]) => m)
|
|
123
|
+
.sort();
|
|
124
|
+
if (unrenamed.length === 0)
|
|
125
|
+
break;
|
|
126
|
+
const pickIdx = Math.floor(opts.rng() * unrenamed.length);
|
|
127
|
+
const old = unrenamed[pickIdx];
|
|
128
|
+
const baseName = next.argRenameMap[old];
|
|
129
|
+
// Drift suffix carries generation so AI agents can detect lineage.
|
|
130
|
+
const fresh = `${old}_g${opts.nextGen}`;
|
|
131
|
+
delete next.argRenameMap[old];
|
|
132
|
+
next.argRenameMap[fresh] = baseName;
|
|
133
|
+
next.argOrder = next.argOrder.map((a) => (a === old ? fresh : a));
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case "add_optional_param": {
|
|
137
|
+
const fresh = `_drift_g${opts.nextGen}_${Math.floor(opts.rng() * 1e6).toString(36)}`;
|
|
138
|
+
next.addedOptionalParams = [...next.addedOptionalParams, fresh];
|
|
139
|
+
next.argOrder = [...next.argOrder, fresh];
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case "swap_arg_order": {
|
|
143
|
+
if (next.argOrder.length < 2)
|
|
144
|
+
break;
|
|
145
|
+
// Swap two positions deterministically per RNG draw.
|
|
146
|
+
const i = Math.floor(opts.rng() * next.argOrder.length);
|
|
147
|
+
let j = Math.floor(opts.rng() * next.argOrder.length);
|
|
148
|
+
if (j === i)
|
|
149
|
+
j = (i + 1) % next.argOrder.length;
|
|
150
|
+
const reordered = [...next.argOrder];
|
|
151
|
+
const tmp = reordered[i];
|
|
152
|
+
reordered[i] = reordered[j];
|
|
153
|
+
reordered[j] = tmp;
|
|
154
|
+
next.argOrder = reordered;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return next;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* One reincarnation cycle. For wrappers whose `expiresAt <= now`:
|
|
162
|
+
* 1. mark `alive=false` + set `deprecatedUntil = now + gravity`
|
|
163
|
+
* 2. spawn a new generation with a mutated signature
|
|
164
|
+
*
|
|
165
|
+
* After the cycle, the old generation is still callable until `deprecatedUntil`
|
|
166
|
+
* (deprecation gravity), then disappears.
|
|
167
|
+
*/
|
|
168
|
+
export function tickReincarnation(input) {
|
|
169
|
+
const nowMs = input.nowMs ?? Date.now();
|
|
170
|
+
const budget = Math.min(input.budget ?? DEFAULT_MUTATIONS_PER_TICK, MAX_TICK_BATCH);
|
|
171
|
+
const rng = mulberry32(input.rngSeed ?? Math.floor(nowMs % 0xffffffff));
|
|
172
|
+
const secret = input.secret ?? defaultSecret();
|
|
173
|
+
// Step 1: drop wrappers whose deprecation gravity has fully elapsed.
|
|
174
|
+
const survivors = input.state.wrappers.filter((w) => {
|
|
175
|
+
if (w.alive)
|
|
176
|
+
return true;
|
|
177
|
+
if (w.deprecatedUntil === null)
|
|
178
|
+
return true; // edge case: never deprecated
|
|
179
|
+
return w.deprecatedUntil > nowMs;
|
|
180
|
+
});
|
|
181
|
+
// Step 2: pick alive wrappers whose TTL is up (oldest first), respecting budget.
|
|
182
|
+
const eligible = survivors
|
|
183
|
+
.filter((w) => w.alive && w.expiresAt <= nowMs)
|
|
184
|
+
.sort((a, b) => a.expiresAt - b.expiresAt)
|
|
185
|
+
.slice(0, budget);
|
|
186
|
+
const expired = [];
|
|
187
|
+
const reincarnated = [];
|
|
188
|
+
const skippedAtMaxGen = [];
|
|
189
|
+
const next = survivors.map((w) => ({ ...w }));
|
|
190
|
+
for (const e of eligible) {
|
|
191
|
+
// Loop guard: refuse to spawn past max generations per base.
|
|
192
|
+
const sameLineage = next.filter((w) => w.baseToolName === e.baseToolName);
|
|
193
|
+
const maxGenForLineage = sameLineage.reduce((m, w) => Math.max(m, w.generation), 0);
|
|
194
|
+
if (maxGenForLineage >= MAX_GENERATIONS_PER_BASE) {
|
|
195
|
+
skippedAtMaxGen.push(e.baseToolName);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
// Mark parent as deprecated (gravity window starts now).
|
|
199
|
+
const parentIdx = next.findIndex((w) => w.id === e.id);
|
|
200
|
+
if (parentIdx >= 0) {
|
|
201
|
+
const parent = next[parentIdx];
|
|
202
|
+
const { hmac: _drop, ...rest } = parent;
|
|
203
|
+
void _drop;
|
|
204
|
+
const deprecatedBody = {
|
|
205
|
+
...rest,
|
|
206
|
+
alive: false,
|
|
207
|
+
deprecatedUntil: nowMs + parent.deprecationGravityMs,
|
|
208
|
+
};
|
|
209
|
+
next[parentIdx] = { ...deprecatedBody, hmac: computeHmac(deprecatedBody, secret) };
|
|
210
|
+
expired.push(next[parentIdx]);
|
|
211
|
+
}
|
|
212
|
+
// Spawn next generation: pick one mutation deterministically.
|
|
213
|
+
const kinds = ["rename_optional_field", "add_optional_param", "swap_arg_order"];
|
|
214
|
+
const kind = kinds[Math.floor(rng() * kinds.length)];
|
|
215
|
+
const baseArgs = input.baseToolArgs[e.baseToolName] ?? Object.values(e.signature.argRenameMap);
|
|
216
|
+
const nextGen = maxGenForLineage + 1;
|
|
217
|
+
const newSig = mutateSignature({
|
|
218
|
+
base: e.signature,
|
|
219
|
+
baseToolName: e.baseToolName,
|
|
220
|
+
baseArgs,
|
|
221
|
+
nextGen,
|
|
222
|
+
kind,
|
|
223
|
+
rng,
|
|
224
|
+
});
|
|
225
|
+
const birthAt = nowMs;
|
|
226
|
+
const childBody = {
|
|
227
|
+
v: PROTOCOL_VERSION,
|
|
228
|
+
id: makeId(e.baseToolName, nextGen, birthAt),
|
|
229
|
+
baseToolName: e.baseToolName,
|
|
230
|
+
signature: newSig,
|
|
231
|
+
generation: nextGen,
|
|
232
|
+
parentGeneration: e.generation,
|
|
233
|
+
birthAt,
|
|
234
|
+
ttlMs: e.ttlMs,
|
|
235
|
+
expiresAt: birthAt + e.ttlMs,
|
|
236
|
+
deprecationGravityMs: e.deprecationGravityMs,
|
|
237
|
+
alive: true,
|
|
238
|
+
deprecatedUntil: null,
|
|
239
|
+
mutationsApplied: [...e.mutationsApplied, kind],
|
|
240
|
+
};
|
|
241
|
+
const child = { ...childBody, hmac: computeHmac(childBody, secret) };
|
|
242
|
+
next.push(child);
|
|
243
|
+
reincarnated.push(child);
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
state: { v: PROTOCOL_VERSION, wrappers: next, calibration: input.state.calibration },
|
|
247
|
+
expired,
|
|
248
|
+
reincarnated,
|
|
249
|
+
skippedAtMaxGen,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
export function resolveMortalCall(input) {
|
|
253
|
+
const nowMs = input.nowMs ?? Date.now();
|
|
254
|
+
const hit = input.state.wrappers.find((w) => w.signature.alias === input.alias);
|
|
255
|
+
if (!hit) {
|
|
256
|
+
return { ok: false, reason: `alias '${input.alias}' is unknown — call mneme.mortal.list to refresh` };
|
|
257
|
+
}
|
|
258
|
+
// Past deprecation gravity → fully dead.
|
|
259
|
+
if (!hit.alive && hit.deprecatedUntil !== null && hit.deprecatedUntil <= nowMs) {
|
|
260
|
+
const liveSibling = input.state.wrappers
|
|
261
|
+
.filter((w) => w.baseToolName === hit.baseToolName && w.alive)
|
|
262
|
+
.sort((a, b) => b.generation - a.generation)[0];
|
|
263
|
+
return {
|
|
264
|
+
ok: false,
|
|
265
|
+
reason: `alias '${input.alias}' fully expired ${nowMs - hit.deprecatedUntil}ms past gravity`,
|
|
266
|
+
...(liveSibling ? { hint: `try '${liveSibling.signature.alias}'` } : {}),
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
const deprecated = !hit.alive;
|
|
270
|
+
// Translate mortal arg keys back to base names.
|
|
271
|
+
const baseArgs = {};
|
|
272
|
+
const unknownKeys = [];
|
|
273
|
+
for (const [k, v] of Object.entries(input.args)) {
|
|
274
|
+
if (k in hit.signature.argRenameMap) {
|
|
275
|
+
baseArgs[hit.signature.argRenameMap[k]] = v;
|
|
276
|
+
}
|
|
277
|
+
else if (hit.signature.addedOptionalParams.includes(k)) {
|
|
278
|
+
// Drift-bonus param — silently dropped (it was a calibration tripwire).
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
unknownKeys.push(k);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (unknownKeys.length > 0) {
|
|
286
|
+
return {
|
|
287
|
+
ok: false,
|
|
288
|
+
reason: `args ${JSON.stringify(unknownKeys)} not in signature — schema drifted; AI agent overfit detected`,
|
|
289
|
+
hint: `expected keys: ${Object.keys(hit.signature.argRenameMap).join(", ")}`,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
ok: true,
|
|
294
|
+
baseToolName: hit.baseToolName,
|
|
295
|
+
baseArgs,
|
|
296
|
+
deprecated,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/** Append a calibration outcome for an AI agent's mortal call. */
|
|
300
|
+
export function recordCalibration(opts) {
|
|
301
|
+
const record = {
|
|
302
|
+
callerKey: opts.callerKey,
|
|
303
|
+
alias: opts.alias,
|
|
304
|
+
ok: opts.ok,
|
|
305
|
+
ts: opts.nowMs ?? Date.now(),
|
|
306
|
+
};
|
|
307
|
+
return { ...opts.state, calibration: [...opts.state.calibration, record] };
|
|
308
|
+
}
|
|
309
|
+
export function calibrationScore(opts) {
|
|
310
|
+
const recs = opts.state.calibration.filter((r) => r.callerKey === opts.callerKey);
|
|
311
|
+
const totalCalls = recs.length;
|
|
312
|
+
const successfulCalls = recs.filter((r) => r.ok).length;
|
|
313
|
+
const failedCalls = totalCalls - successfulCalls;
|
|
314
|
+
const adaptivenessScore = totalCalls === 0 ? 0 : successfulCalls / totalCalls;
|
|
315
|
+
const verdict = totalCalls < 5 ? "drifting"
|
|
316
|
+
: adaptivenessScore >= 0.95 ? "world_class"
|
|
317
|
+
: adaptivenessScore >= 0.80 ? "good"
|
|
318
|
+
: adaptivenessScore >= 0.50 ? "drifting"
|
|
319
|
+
: "over_fit";
|
|
320
|
+
return { callerKey: opts.callerKey, totalCalls, successfulCalls, failedCalls, adaptivenessScore, verdict };
|
|
321
|
+
}
|
|
322
|
+
export function globalStats(state) {
|
|
323
|
+
const histogram = {
|
|
324
|
+
rename_optional_field: 0,
|
|
325
|
+
add_optional_param: 0,
|
|
326
|
+
swap_arg_order: 0,
|
|
327
|
+
};
|
|
328
|
+
let totalMutations = 0;
|
|
329
|
+
for (const w of state.wrappers) {
|
|
330
|
+
for (const m of w.mutationsApplied) {
|
|
331
|
+
histogram[m]++;
|
|
332
|
+
totalMutations++;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
const bases = new Set(state.wrappers.map((w) => w.baseToolName));
|
|
336
|
+
return {
|
|
337
|
+
alive: state.wrappers.filter((w) => w.alive).length,
|
|
338
|
+
deprecated: state.wrappers.filter((w) => !w.alive).length,
|
|
339
|
+
totalGenerationsAcrossLineages: state.wrappers.length,
|
|
340
|
+
totalMutationsApplied: totalMutations,
|
|
341
|
+
uniqueBaseTools: bases.size,
|
|
342
|
+
mutationKindHistogram: histogram,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
export function verifyMortalWrapper(w, secret) {
|
|
346
|
+
const { hmac, ...body } = w;
|
|
347
|
+
const expected = computeHmac(body, secret ?? defaultSecret());
|
|
348
|
+
if (!safeEqHex(expected, hmac)) {
|
|
349
|
+
return { ok: false, reason: "HMAC mismatch — forged or wrong secret" };
|
|
350
|
+
}
|
|
351
|
+
return { ok: true };
|
|
352
|
+
}
|
|
353
|
+
export function emptyState() {
|
|
354
|
+
return { v: PROTOCOL_VERSION, wrappers: [], calibration: [] };
|
|
355
|
+
}
|
|
356
|
+
export function formatWrapperLine(w) {
|
|
357
|
+
const tag = w.alive ? "🌱" : "💀";
|
|
358
|
+
return `${tag} ${w.signature.alias} · gen=${w.generation} · mutations=${w.mutationsApplied.length} · ttl=${Math.round(w.ttlMs / 1000)}s`;
|
|
359
|
+
}
|
|
360
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mortal_wrappers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mortal_wrappers.test.d.ts","sourceRoot":"","sources":["../../src/mortal_wrappers/mortal_wrappers.test.ts"],"names":[],"mappings":""}
|