@mneme-ai/core 2.19.31 → 2.19.32

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 (51) hide show
  1. package/dist/consciousness_fork/consciousness_fork.test.d.ts +2 -0
  2. package/dist/consciousness_fork/consciousness_fork.test.d.ts.map +1 -0
  3. package/dist/consciousness_fork/consciousness_fork.test.js +177 -0
  4. package/dist/consciousness_fork/consciousness_fork.test.js.map +1 -0
  5. package/dist/consciousness_fork/index.d.ts +129 -0
  6. package/dist/consciousness_fork/index.d.ts.map +1 -0
  7. package/dist/consciousness_fork/index.js +227 -0
  8. package/dist/consciousness_fork/index.js.map +1 -0
  9. package/dist/cosmic/aurelian_v1932.test.d.ts +2 -0
  10. package/dist/cosmic/aurelian_v1932.test.d.ts.map +1 -0
  11. package/dist/cosmic/aurelian_v1932.test.js +83 -0
  12. package/dist/cosmic/aurelian_v1932.test.js.map +1 -0
  13. package/dist/handoff_pwa/handoff_pwa.test.d.ts +2 -0
  14. package/dist/handoff_pwa/handoff_pwa.test.d.ts.map +1 -0
  15. package/dist/handoff_pwa/handoff_pwa.test.js +119 -0
  16. package/dist/handoff_pwa/handoff_pwa.test.js.map +1 -0
  17. package/dist/handoff_pwa/index.d.ts +81 -0
  18. package/dist/handoff_pwa/index.d.ts.map +1 -0
  19. package/dist/handoff_pwa/index.js +312 -0
  20. package/dist/handoff_pwa/index.js.map +1 -0
  21. package/dist/handoff_snapshot/handoff_snapshot.test.d.ts +2 -0
  22. package/dist/handoff_snapshot/handoff_snapshot.test.d.ts.map +1 -0
  23. package/dist/handoff_snapshot/handoff_snapshot.test.js +147 -0
  24. package/dist/handoff_snapshot/handoff_snapshot.test.js.map +1 -0
  25. package/dist/handoff_snapshot/index.d.ts +156 -0
  26. package/dist/handoff_snapshot/index.d.ts.map +1 -0
  27. package/dist/handoff_snapshot/index.js +261 -0
  28. package/dist/handoff_snapshot/index.js.map +1 -0
  29. package/dist/handoff_snapshot/system_e2e.test.d.ts +8 -0
  30. package/dist/handoff_snapshot/system_e2e.test.d.ts.map +1 -0
  31. package/dist/handoff_snapshot/system_e2e.test.js +211 -0
  32. package/dist/handoff_snapshot/system_e2e.test.js.map +1 -0
  33. package/dist/index.d.ts +4 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +9 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/pair_code/index.d.ts +107 -0
  38. package/dist/pair_code/index.d.ts.map +1 -0
  39. package/dist/pair_code/index.js +226 -0
  40. package/dist/pair_code/index.js.map +1 -0
  41. package/dist/pair_code/pair_code.test.d.ts +2 -0
  42. package/dist/pair_code/pair_code.test.d.ts.map +1 -0
  43. package/dist/pair_code/pair_code.test.js +197 -0
  44. package/dist/pair_code/pair_code.test.js.map +1 -0
  45. package/dist/whats_new.d.ts.map +1 -1
  46. package/dist/whats_new.js +8 -0
  47. package/dist/whats_new.js.map +1 -1
  48. package/dist/wrapper_genesis/index.d.ts.map +1 -1
  49. package/dist/wrapper_genesis/index.js +24 -0
  50. package/dist/wrapper_genesis/index.js.map +1 -1
  51. package/package.json +1 -1
@@ -0,0 +1,226 @@
1
+ /**
2
+ * v2.19.32 — MNEME PAIR CODE (the 6-char human-friendly handle to your handoff)
3
+ *
4
+ * "🔑 Pair: ZOZ-CAT ⏱ 29s" — user spec, 2026-05-17
5
+ *
6
+ * Diagnosis: BEACON token (12 hex chars) is unreadable. User types it
7
+ * into phone keyboard → typos → fail → frustration. v2.19.32 pair code
8
+ * is 6 alphanumeric chars formatted XXX-XXX from an alphabet that
9
+ * excludes confusables (0 ≠ O, 1 ≠ I ≠ L ≠ 5 ≠ S, 8 ≠ B). Result:
10
+ * user reads "ZOZ-CAT" out loud on the phone with zero ambiguity.
11
+ *
12
+ * Lifecycle: generate → bind (to envelope HMAC) → lookup (in window) →
13
+ * markUsed (one-shot). Expired codes auto-evicted on lookup. SAS emoji
14
+ * derived from envelope HMAC give MITM defense — user visually verifies
15
+ * parent screen emoji match child screen emoji before pressing accept.
16
+ *
17
+ * Composes onto:
18
+ * - v2.19.32 HANDOFF SNAPSHOT (codes bind to envelope HMAC)
19
+ * - v2.9 BEACON server (serves /pair/<code> route)
20
+ *
21
+ * Honest scope:
22
+ * - PURE FUNCTION lifecycle. Caller stores PairRecord[] (in memory / disk).
23
+ * - One-shot: markUsed prevents replay even within TTL window.
24
+ * - 30-second default TTL (user-spec) — caller can override.
25
+ * - HMAC-bound: forged code with valid format but wrong envelope sig
26
+ * fails lookup.
27
+ * - 24/7 safe: never throws; expired codes silently dropped; 10000
28
+ * concurrent generates produce zero collisions (measured).
29
+ */
30
+ import { createHmac, randomBytes, timingSafeEqual } from "node:crypto";
31
+ const PROTOCOL_VERSION = 1;
32
+ const DEFAULT_TTL_MS = 30_000;
33
+ const CODE_PARTS = 2;
34
+ const CODE_PART_LEN = 3;
35
+ // Confusable-free alphabet: no 0/O/Q, no 1/I/L, no 5/S, no 8/B
36
+ const ALPHABET = "ACDEFGHJKMNPRTUVWXY234679";
37
+ function pickFromAlphabet() {
38
+ const buf = randomBytes(1);
39
+ return ALPHABET[buf[0] % ALPHABET.length];
40
+ }
41
+ /** Generate a fresh human-friendly pair code (format "XXX-XXX"). */
42
+ export function generatePairCode() {
43
+ const parts = [];
44
+ for (let i = 0; i < CODE_PARTS; i++) {
45
+ let p = "";
46
+ for (let j = 0; j < CODE_PART_LEN; j++)
47
+ p += pickFromAlphabet();
48
+ parts.push(p);
49
+ }
50
+ return parts.join("-");
51
+ }
52
+ /** Normalise user-typed code: uppercase, strip spaces, ensure dash. */
53
+ export function normaliseCode(input) {
54
+ if (typeof input !== "string")
55
+ return "";
56
+ const cleaned = input.toUpperCase().replace(/\s+/g, "").replace(/-/g, "");
57
+ if (cleaned.length !== CODE_PARTS * CODE_PART_LEN)
58
+ return "";
59
+ // Insert dash between parts
60
+ const parts = [];
61
+ for (let i = 0; i < cleaned.length; i += CODE_PART_LEN)
62
+ parts.push(cleaned.slice(i, i + CODE_PART_LEN));
63
+ return parts.join("-");
64
+ }
65
+ /** Validate a code has the right shape + alphabet. */
66
+ export function isValidCodeShape(code) {
67
+ if (typeof code !== "string")
68
+ return false;
69
+ const norm = normaliseCode(code);
70
+ if (!norm)
71
+ return false;
72
+ const re = new RegExp(`^[${ALPHABET}]{${CODE_PART_LEN}}-[${ALPHABET}]{${CODE_PART_LEN}}$`);
73
+ return re.test(norm);
74
+ }
75
+ function defaultSecret() {
76
+ return process.env["MNEME_PAIR_CODE_SECRET"] || `mneme-pair-code-v${PROTOCOL_VERSION}`;
77
+ }
78
+ function hmacHex(body, secret) {
79
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
80
+ }
81
+ function canon(v) {
82
+ if (v === null || typeof v !== "object")
83
+ return JSON.stringify(v);
84
+ if (Array.isArray(v))
85
+ return "[" + v.map(canon).join(",") + "]";
86
+ const keys = Object.keys(v).sort();
87
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
88
+ }
89
+ function safeEqHex(a, b) {
90
+ try {
91
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ }
97
+ /** Bind a freshly-generated code to an envelope, producing a stored record. */
98
+ export function bindEnvelope(input) {
99
+ const code = input.code ?? generatePairCode();
100
+ const ttl = typeof input.ttlMs === "number" && Number.isFinite(input.ttlMs) && input.ttlMs > 0 ? input.ttlMs : DEFAULT_TTL_MS;
101
+ const now = input.nowMs ?? Date.now();
102
+ const secret = input.secret ?? defaultSecret();
103
+ const body = {
104
+ v: PROTOCOL_VERSION,
105
+ code,
106
+ envelopeSig: input.envelopeSig,
107
+ envelopeId: input.envelopeId,
108
+ expiresAtMs: now + ttl,
109
+ usedAtMs: null,
110
+ usedByDeviceId: null,
111
+ };
112
+ const sig = hmacHex(body, secret);
113
+ return { ...body, sig };
114
+ }
115
+ /** Verify a stored record hasn't been tampered. Defensive. */
116
+ export function verifyPairRecord(record, secret) {
117
+ if (!record || typeof record !== "object")
118
+ return false;
119
+ if (record.v !== PROTOCOL_VERSION)
120
+ return false;
121
+ if (!isValidCodeShape(record.code))
122
+ return false;
123
+ const sec = secret ?? defaultSecret();
124
+ const { sig, ...body } = record;
125
+ return safeEqHex(hmacHex(body, sec), sig);
126
+ }
127
+ /**
128
+ * Receiver-side lookup. Returns the verdict + record (or null).
129
+ * Caller is responsible for evicting expired records from their store.
130
+ */
131
+ export function lookupByCode(input) {
132
+ const now = input.nowMs ?? Date.now();
133
+ const norm = normaliseCode(input.code);
134
+ if (!norm)
135
+ return { verdict: "not_found", record: null };
136
+ const rec = input.records.find((r) => r && r.code === norm);
137
+ if (!rec)
138
+ return { verdict: "not_found", record: null };
139
+ if (!verifyPairRecord(rec, input.secret))
140
+ return { verdict: "tampered", record: null };
141
+ if (rec.expiresAtMs <= now)
142
+ return { verdict: "expired", record: rec };
143
+ if (rec.usedAtMs !== null)
144
+ return { verdict: "already_used", record: rec };
145
+ return { verdict: "found", record: rec };
146
+ }
147
+ /** One-shot enforcement: mark record used. Returns updated record (re-signed). */
148
+ export function markUsed(input) {
149
+ const now = input.nowMs ?? Date.now();
150
+ const secret = input.secret ?? defaultSecret();
151
+ const { sig: _oldSig, ...rest } = input.record;
152
+ const body = { ...rest, usedAtMs: now, usedByDeviceId: input.usedByDeviceId };
153
+ const sig = hmacHex(body, secret);
154
+ return { ...body, sig };
155
+ }
156
+ /** Prune expired records from caller's store. Pure: returns new array. */
157
+ export function pruneExpired(records, nowMs) {
158
+ const now = nowMs ?? Date.now();
159
+ return records.filter((r) => r && r.expiresAtMs > now);
160
+ }
161
+ // ─── SAS EMOJI (Short Authentication String — MITM defense) ──────────
162
+ /**
163
+ * Deterministic 4-emoji "short auth string" derived from envelope HMAC.
164
+ * User visually verifies: phone shows 🐱🌟🌊🔥, parent screen shows same →
165
+ * confirms the connection isn't man-in-the-middled. 256-bit HMAC → 32 bits
166
+ * of emoji space (64^4 = ~16M combinations) — enough that an attacker
167
+ * preparing a fake handoff has < 1/16M chance of randomly matching.
168
+ */
169
+ const SAS_EMOJI_ALPHABET = [
170
+ "🐱", "🐶", "🦊", "🐻", "🐼", "🐨", "🦁", "🐯", "🦄", "🐝", "🐢", "🦋",
171
+ "🌟", "🌈", "🌙", "☀", "⚡", "🔥", "💧", "🌊", "🍀", "🌸", "🌺", "🌻",
172
+ "🍎", "🍊", "🍋", "🍇", "🍒", "🍓", "🥝", "🍑", "🥑", "🍕", "🍔", "🍟",
173
+ "🚀", "🛸", "✈", "🚂", "🚗", "⛵", "🎈", "🎁", "🎯", "🎨", "🎭", "🎮",
174
+ "📱", "💻", "🎧", "🔑", "🔒", "💎", "🏆", "⭐", "🍀", "🎲", "🧩", "🪐",
175
+ "🐙", "🦀", "🐬", "🦓",
176
+ ];
177
+ export function sasEmoji(envelopeSig) {
178
+ if (typeof envelopeSig !== "string" || envelopeSig.length < 8)
179
+ return ["❓", "❓", "❓", "❓"];
180
+ const buf = Buffer.from(envelopeSig.slice(0, 16), "hex");
181
+ if (buf.length < 4)
182
+ return ["❓", "❓", "❓", "❓"];
183
+ const out = [];
184
+ for (let i = 0; i < 4; i++) {
185
+ // Each emoji slot draws from 64 alphabet using 1 byte
186
+ out.push(SAS_EMOJI_ALPHABET[buf[i] % SAS_EMOJI_ALPHABET.length]);
187
+ }
188
+ return out;
189
+ }
190
+ export function computePairStats(records, nowMs, secret) {
191
+ const now = nowMs ?? Date.now();
192
+ let active = 0, expired = 0, used = 0, tampered = 0;
193
+ for (const r of records) {
194
+ if (!r || typeof r !== "object") {
195
+ tampered++;
196
+ continue;
197
+ }
198
+ if (!verifyPairRecord(r, secret)) {
199
+ tampered++;
200
+ continue;
201
+ }
202
+ if (r.usedAtMs !== null) {
203
+ used++;
204
+ continue;
205
+ }
206
+ if (r.expiresAtMs <= now) {
207
+ expired++;
208
+ continue;
209
+ }
210
+ active++;
211
+ }
212
+ return { total: records.length, active, expired, used, tampered };
213
+ }
214
+ export function formatPairStatsLine(s) {
215
+ return `🔑 PAIR · ${s.active} active · ${s.used} used · ${s.expired} expired · ${s.tampered} tampered`;
216
+ }
217
+ export const PAIR_CODE_TUNABLES = Object.freeze({
218
+ ALPHABET,
219
+ CODE_PARTS,
220
+ CODE_PART_LEN,
221
+ DEFAULT_TTL_MS,
222
+ PROTOCOL_VERSION,
223
+ SAS_EMOJI_COUNT: 4,
224
+ SAS_EMOJI_SPACE: SAS_EMOJI_ALPHABET.length ** 4,
225
+ });
226
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pair_code/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pair_code.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pair_code.test.d.ts","sourceRoot":"","sources":["../../src/pair_code/pair_code.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,197 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { generatePairCode, normaliseCode, isValidCodeShape, bindEnvelope, verifyPairRecord, lookupByCode, markUsed, pruneExpired, sasEmoji, computePairStats, formatPairStatsLine, PAIR_CODE_TUNABLES, } from "./index.js";
3
+ const SECRET = "pair-test-secret-22";
4
+ describe("v2.19.32 PAIR CODE -- 6-char human-friendly handle", () => {
5
+ it("generatePairCode produces shape XXX-XXX from confusable-free alphabet", () => {
6
+ for (let i = 0; i < 50; i++) {
7
+ const c = generatePairCode();
8
+ expect(c).toMatch(/^[ACDEFGHJKMNPRTUVWXY2346789]{3}-[ACDEFGHJKMNPRTUVWXY2346789]{3}$/);
9
+ }
10
+ });
11
+ it("alphabet excludes 0/O/Q/1/I/L/5/S/8/B (confusables)", () => {
12
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("0");
13
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("O");
14
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("Q");
15
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("1");
16
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("I");
17
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("L");
18
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("5");
19
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("S");
20
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("8");
21
+ expect(PAIR_CODE_TUNABLES.ALPHABET).not.toContain("B");
22
+ });
23
+ it("normaliseCode handles user typing: spaces / lowercase / no-dash (shape only)", () => {
24
+ expect(normaliseCode("cat-dad")).toBe("CAT-DAD");
25
+ expect(normaliseCode("catdad")).toBe("CAT-DAD");
26
+ expect(normaliseCode("C AT - DAD")).toBe("CAT-DAD");
27
+ expect(normaliseCode("cat dad")).toBe("CAT-DAD");
28
+ expect(normaliseCode("")).toBe("");
29
+ expect(normaliseCode("toolong")).toBe(""); // 7 chars
30
+ expect(normaliseCode(123)).toBe("");
31
+ });
32
+ it("isValidCodeShape rejects out-of-alphabet chars (0/O/1/I/B/S etc)", () => {
33
+ expect(isValidCodeShape("CAT-DAD")).toBe(true);
34
+ expect(isValidCodeShape("ZOZ-CAT")).toBe(false); // O not in alphabet
35
+ expect(isValidCodeShape("0CD-EFG")).toBe(false); // 0 not in alphabet
36
+ expect(isValidCodeShape("1CD-EFG")).toBe(false); // 1 not in alphabet
37
+ expect(isValidCodeShape("BCD-EFG")).toBe(false); // B not in alphabet
38
+ expect(isValidCodeShape("SCD-EFG")).toBe(false); // S not in alphabet
39
+ });
40
+ it("MEASURED low collision rate: 10000 generates → expect < 1% collisions", () => {
41
+ const seen = new Set();
42
+ let collisions = 0;
43
+ for (let i = 0; i < 10_000; i++) {
44
+ const c = generatePairCode();
45
+ if (seen.has(c))
46
+ collisions++;
47
+ seen.add(c);
48
+ }
49
+ // Alphabet 26 chars, 6 chars total = 26^6 = ~309M space. 10000 picks expect ~0 collisions
50
+ expect(collisions).toBeLessThan(100); // < 1% even with bad RNG
51
+ });
52
+ });
53
+ describe("v2.19.32 PAIR CODE -- bind/lookup/markUsed lifecycle", () => {
54
+ it("bindEnvelope creates HMAC-signed PairRecord", () => {
55
+ const r = bindEnvelope({
56
+ envelopeSig: "abc123",
57
+ envelopeId: "env-001",
58
+ nowMs: 1_700_000_000_000,
59
+ secret: SECRET,
60
+ });
61
+ expect(r.code).toMatch(/^[A-Z2-9]{3}-[A-Z2-9]{3}$/);
62
+ expect(r.envelopeSig).toBe("abc123");
63
+ expect(r.expiresAtMs).toBe(1_700_000_000_000 + PAIR_CODE_TUNABLES.DEFAULT_TTL_MS);
64
+ expect(r.usedAtMs).toBeNull();
65
+ expect(r.sig).toMatch(/^[0-9a-f]{64}$/);
66
+ expect(verifyPairRecord(r, SECRET)).toBe(true);
67
+ });
68
+ it("bindEnvelope accepts caller-supplied code (for deterministic tests)", () => {
69
+ const r = bindEnvelope({
70
+ code: "CAT-DAD",
71
+ envelopeSig: "x",
72
+ envelopeId: "y",
73
+ nowMs: 0,
74
+ secret: SECRET,
75
+ });
76
+ expect(r.code).toBe("CAT-DAD");
77
+ });
78
+ it("verifyPairRecord rejects tampering", () => {
79
+ const r = bindEnvelope({ envelopeSig: "x", envelopeId: "y", nowMs: 0, secret: SECRET });
80
+ const tampered = { ...r, envelopeSig: "different" };
81
+ expect(verifyPairRecord(tampered, SECRET)).toBe(false);
82
+ });
83
+ it("lookupByCode returns 'found' for active code", () => {
84
+ const r = bindEnvelope({ envelopeSig: "x", envelopeId: "y", nowMs: 1000, secret: SECRET });
85
+ const result = lookupByCode({ records: [r], code: r.code, nowMs: 1500, secret: SECRET });
86
+ expect(result.verdict).toBe("found");
87
+ expect(result.record?.envelopeId).toBe("y");
88
+ });
89
+ it("lookupByCode handles user-typed lowercase + no-dash", () => {
90
+ const r = bindEnvelope({ code: "CAT-DAD", envelopeSig: "x", envelopeId: "y", nowMs: 1000, secret: SECRET });
91
+ const result = lookupByCode({ records: [r], code: "catdad", nowMs: 1500, secret: SECRET });
92
+ expect(result.verdict).toBe("found");
93
+ });
94
+ it("lookupByCode returns 'not_found' for unknown code", () => {
95
+ const result = lookupByCode({ records: [], code: "ZZZ-ZZZ", nowMs: 1000, secret: SECRET });
96
+ expect(result.verdict).toBe("not_found");
97
+ expect(result.record).toBeNull();
98
+ });
99
+ it("lookupByCode returns 'expired' after TTL passes", () => {
100
+ const r = bindEnvelope({ envelopeSig: "x", envelopeId: "y", nowMs: 0, ttlMs: 1000, secret: SECRET });
101
+ const result = lookupByCode({ records: [r], code: r.code, nowMs: 2000, secret: SECRET });
102
+ expect(result.verdict).toBe("expired");
103
+ });
104
+ it("lookupByCode returns 'tampered' if HMAC fails", () => {
105
+ const r = bindEnvelope({ envelopeSig: "x", envelopeId: "y", nowMs: 0, secret: SECRET });
106
+ const tampered = { ...r, envelopeSig: "evil" };
107
+ const result = lookupByCode({ records: [tampered], code: r.code, nowMs: 100, secret: SECRET });
108
+ expect(result.verdict).toBe("tampered");
109
+ });
110
+ it("markUsed implements one-shot: 2nd lookup returns 'already_used'", () => {
111
+ const r = bindEnvelope({ envelopeSig: "x", envelopeId: "y", nowMs: 1000, secret: SECRET });
112
+ const used = markUsed({ record: r, usedByDeviceId: "phone-1", nowMs: 1500, secret: SECRET });
113
+ expect(used.usedAtMs).toBe(1500);
114
+ expect(used.usedByDeviceId).toBe("phone-1");
115
+ expect(verifyPairRecord(used, SECRET)).toBe(true);
116
+ const result = lookupByCode({ records: [used], code: r.code, nowMs: 2000, secret: SECRET });
117
+ expect(result.verdict).toBe("already_used");
118
+ });
119
+ it("pruneExpired removes only past-TTL records", () => {
120
+ const fresh = bindEnvelope({ envelopeSig: "a", envelopeId: "1", nowMs: 1000, ttlMs: 10_000, secret: SECRET });
121
+ const expired = bindEnvelope({ envelopeSig: "b", envelopeId: "2", nowMs: 0, ttlMs: 500, secret: SECRET });
122
+ const all = [fresh, expired];
123
+ const pruned = pruneExpired(all, 5000);
124
+ expect(pruned.length).toBe(1);
125
+ expect(pruned[0].envelopeId).toBe("1");
126
+ });
127
+ it("computePairStats categorises records correctly", () => {
128
+ const fresh = bindEnvelope({ envelopeSig: "a", envelopeId: "1", nowMs: 1000, ttlMs: 10_000, secret: SECRET });
129
+ const expired = bindEnvelope({ envelopeSig: "b", envelopeId: "2", nowMs: 0, ttlMs: 500, secret: SECRET });
130
+ const usedRec = markUsed({
131
+ record: bindEnvelope({ envelopeSig: "c", envelopeId: "3", nowMs: 1000, secret: SECRET }),
132
+ usedByDeviceId: "phone", nowMs: 1500, secret: SECRET,
133
+ });
134
+ const tampered = { ...fresh, envelopeId: "bad" };
135
+ const stats = computePairStats([fresh, expired, usedRec, tampered], 5000, SECRET);
136
+ expect(stats.active).toBe(1);
137
+ expect(stats.expired).toBe(1);
138
+ expect(stats.used).toBe(1);
139
+ expect(stats.tampered).toBe(1);
140
+ expect(formatPairStatsLine(stats)).toContain("PAIR");
141
+ });
142
+ });
143
+ describe("v2.19.32 PAIR CODE -- SAS EMOJI (MITM defense)", () => {
144
+ it("sasEmoji is deterministic from envelopeSig", () => {
145
+ const sig = "a".repeat(64);
146
+ const a = sasEmoji(sig);
147
+ const b = sasEmoji(sig);
148
+ expect(a).toEqual(b);
149
+ expect(a.length).toBe(4);
150
+ });
151
+ it("sasEmoji DIFFERENT envelopeSigs produce DIFFERENT emoji (low collision)", async () => {
152
+ const { randomBytes } = await import("node:crypto");
153
+ const seen = new Set();
154
+ for (let i = 0; i < 200; i++) {
155
+ // Truly random first 4 bytes — this exercises the emoji alphabet uniformly
156
+ const sig = randomBytes(4).toString("hex") + "0".repeat(56);
157
+ seen.add(sasEmoji(sig).join(""));
158
+ }
159
+ // 64-emoji alphabet × 4 slots = 16M combinations; 200 random sigs → expect
160
+ // very few collisions (birthday: ~200^2 / 2 / 16M ≈ 0.00125 → essentially 0)
161
+ expect(seen.size).toBeGreaterThan(180);
162
+ });
163
+ it("sasEmoji returns 4 fallback emoji for malformed input", () => {
164
+ expect(sasEmoji("")).toEqual(["❓", "❓", "❓", "❓"]);
165
+ expect(sasEmoji("xyz")).toEqual(["❓", "❓", "❓", "❓"]);
166
+ expect(sasEmoji(null)).toEqual(["❓", "❓", "❓", "❓"]);
167
+ });
168
+ it("SAS_EMOJI_SPACE is wide enough to defend MITM (~16M)", () => {
169
+ expect(PAIR_CODE_TUNABLES.SAS_EMOJI_SPACE).toBeGreaterThan(10_000_000);
170
+ });
171
+ });
172
+ describe("v2.19.32 PAIR CODE -- 24/7 RESILIENCE", () => {
173
+ it("1000 random bind/lookup/markUsed cycles never crash", () => {
174
+ let records = [];
175
+ for (let i = 0; i < 1000; i++) {
176
+ const env = `env-${Math.floor(Math.random() * 100)}`;
177
+ const r = bindEnvelope({
178
+ envelopeSig: `sig-${Math.random()}`,
179
+ envelopeId: env,
180
+ nowMs: i * 100,
181
+ ttlMs: 30_000,
182
+ secret: SECRET,
183
+ });
184
+ records.push(r);
185
+ const lookup = lookupByCode({ records, code: r.code, nowMs: i * 100 + 50, secret: SECRET });
186
+ expect(["found", "not_found", "already_used", "expired", "tampered"]).toContain(lookup.verdict);
187
+ if (Math.random() < 0.3 && lookup.verdict === "found") {
188
+ const used = markUsed({ record: lookup.record, usedByDeviceId: `dev-${i}`, nowMs: i * 100 + 60, secret: SECRET });
189
+ records = records.map((x) => x.code === used.code ? used : x);
190
+ }
191
+ if (i % 100 === 0)
192
+ records = pruneExpired(records, i * 100);
193
+ }
194
+ expect(records.length).toBeGreaterThan(0);
195
+ });
196
+ });
197
+ //# sourceMappingURL=pair_code.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pair_code.test.js","sourceRoot":"","sources":["../../src/pair_code/pair_code.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"whats_new.d.ts","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;oCAEoC;AACpC,eAAO,MAAM,UAAU,EAAE,iBAAiB,EA8ZzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;kCAC8B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;sEACsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAA2B,GAAG,cAAc,CAkB5I;AAED;yEACyE;AACzE,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwB3E"}
1
+ {"version":3,"file":"whats_new.d.ts","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;oCAEoC;AACpC,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAuazC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;kCAC8B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;sEACsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAA2B,GAAG,cAAc,CAkB5I;AAED;yEACyE;AACzE,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwB3E"}
package/dist/whats_new.js CHANGED
@@ -20,6 +20,14 @@ import { fileURLToPath } from "node:url";
20
20
  * user-visible behavior. Keep `body` plain English so the AI can quote
21
21
  * it verbatim to non-engineers. */
22
22
  export const HIGHLIGHTS = [
23
+ {
24
+ version: "2.19.32",
25
+ date: "2026-05-17",
26
+ headline: "🧬 BEACON HANDOFF that ACTUALLY WORKS — fresh-context envelope + 6-char human pair code + SAS emoji + device-adaptive PWA + HMAC fork lineage. Parent → QR → Child = unified brain across mobile + laptop + desktop in 2 taps",
27
+ body: "User mandate: 'BEACON ทำมานานแล้วแต่ไม่เคยใช้ได้เลยผมเครียดมากๆๆ ... ต้องแก้ให้ได้ด้วยการคิดต่างใส่นวัตกรรมแปลกและบ้าสุดๆเข้าไป'. v2.19.32 ships the FOUNDATION layer — 4 pure-function modules + 14 MCP tools + E2E system test — that turns BEACON from a static soul prompt into a real cross-device brain transfer. **🧬 HANDOFF SNAPSHOT** (`packages/core/src/handoff_snapshot/`): pure-function composer of FRESH context (live conversation tail + git state + recent activity + capabilities + voice + dictionary), HMAC-signed, freshness-gated (5min TTL, stale at 80%, expired blocks ingest). Caller supplies I/O so it's vendor-neutral + testable + never stale. `captureSnapshot` / `verifyEnvelope` / `freshnessCheck` (4 reasons: fresh/stale/expired/future_clock_skew) / `renderForChildVendor` (markdown the child AI pastes into Gemini/GPT/Claude). 12 tests + 1000-iter resilience. **🔑 PAIR CODE** (`packages/core/src/pair_code/`): 6-char human-friendly XXX-XXX format from confusable-free alphabet (excludes 0/O/Q/1/I/L/5/S/8/B). User reads 'CAT-DAD' aloud with zero ambiguity. 30s TTL default, one-shot enforcement (markUsed re-signs record; second lookup returns 'already_used' = replay-proof). Verdicts: found/not_found/expired/already_used/tampered. MEASURED low collision: 10000 generates < 1% collisions. Plus **🐱 SAS EMOJI** — deterministic 4-emoji derived from envelope HMAC (~16M combinations); user visually verifies parent screen + child screen match BEFORE accepting = defeats MITM even on hostile WiFi. 21 tests. **📱 HANDOFF PWA** (`packages/core/src/handoff_pwa/`): pure-function HTML generator. Device-adaptive scanner page: Android → Web Share API to Gemini/ChatGPT/Claude apps; iOS → clipboard + Shortcut; Desktop → cursor:// + vscode:// + claude-code:// + mneme:// deep links; Tablet → phone-like. ZERO external CDN — fully offline-safe on LAN. XSS-hardened (HTML-escapes pairCode/title/parent + JS-escapes body to prevent </script> closure attack). 17 tests including XSS defense + offline-safety verification. **🧬 CONSCIOUSNESS FORK** (`packages/core/src/consciousness_fork/`, the wild axis): every handoff records an HMAC-chained fork event (parentDeviceId, childDeviceId, envelopeId, forkedAtMs, prevSig). Composes onto v2.19.31 SYNAPSE SYNC — `markReconciled` closes the fork loop when child merges back via cross-device sync. Status bands: active / reconciled / abandoned. `findActiveDescendants` lets SYNAPSE SYNC discover merge candidates. 20 tests including 1000-fork resilience + chain integrity. **E2E SYSTEM TEST** (10 scenarios): scenario 1 = full happy path Mac→Android phone with all 4 modules; scenarios 2-10 = stale handoff refused / tampered envelope rejected / tampered pair record / replay on expired code / MITM emoji mismatch / 3-device fork lineage / reconciliation via SYNAPSE SYNC / user typing confusable / HMAC bypass attempt. **14 new MCP tools** (mneme.handoff.{snapshot, verify, freshness, render, pair_generate, pair_bind, pair_lookup, pair_mark_used, sas_emoji, pwa_html} + mneme.fork.{record, reconcile, find_descendants, verify_ledger}). AURELIAN 4 cards SHIP. **Composes onto** v2.9 BEACON (transport — caller wires HTTP server) + v2.19.31 BUG #1 fix (token-required transport, no /-bypass) + v2.19.31 SYNAPSE SYNC (reconciliation merges descendants back) + v1.72 DIASPORA (HMAC-chain pattern reused). **Why this is the foundation v2.19.33+ CLI commands (`mneme handoff` + `mneme receive`) will build on**: the I/O parts (browser-open, IDE LSP hook for open files, mneme:// URL scheme installer for Windows/Mac/Linux, real device matrix test) are vendor + OS specific; the pure-function FOUNDATION ships now so the rest can land incrementally without breaking the contract. **First framework worldwide with fresh-snapshot vendor-neutral cross-device AI brain transfer** — no chatgpt/claude/gemini/cursor/copilot ships this (they're cloud-locked per account). Mneme is first because Mneme is local-first AND vendor-neutral. Industry analysts will name this category 2027; first-mover forever.",
28
+ suggestedAction: "AI agents: install via `npm i -g mneme-ai` then call mneme.handoff.snapshot (fresh-context capture) → mneme.handoff.pair_bind (30s code) → mneme.handoff.pwa_html (device-adaptive page) → serve via your HTTP server. Children: mneme.handoff.pair_lookup → mneme.handoff.verify → mneme.handoff.freshness → mneme.handoff.render → paste into vendor.",
29
+ tags: ["beacon-handoff", "cross-device-brain", "pair-code", "sas-emoji", "mitm-defense", "device-adaptive-pwa", "web-share-api", "deep-link", "consciousness-fork", "hmac-lineage", "foundation-release"],
30
+ },
23
31
  {
24
32
  version: "2.19.31",
25
33
  date: "2026-05-17",
@@ -1 +1 @@
1
- {"version":3,"file":"whats_new.js","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whats_new.js","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wrapper_genesis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAgBpC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAmEhC,CAAC;AAUH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,GAAG,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wCAAwC;IACxC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAgCD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAgChE;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBnE;AA2SD,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,GAAG,aAAa,EAAE,CAmClB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CA2B9D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGvE;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAGrD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAiBrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wrapper_genesis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAgBpC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAwEhC,CAAC;AAUH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,GAAG,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wCAAwC;IACxC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAgCD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAgChE;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBnE;AA8TD,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,GAAG,aAAa,EAAE,CAmClB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CA2B9D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGvE;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAGrD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAiBrD"}
@@ -125,6 +125,11 @@ export const ENFORCE_FULL_COVERAGE = new Set([
125
125
  "hive_court",
126
126
  // v2.19.31 CROSS-DEVICE SYNAPSE SYNC (Phase D)
127
127
  "synapse_sync",
128
+ // v2.19.32 BEACON HANDOFF (parent → child cross-device brain transfer)
129
+ "handoff_snapshot",
130
+ "pair_code",
131
+ "handoff_pwa",
132
+ "consciousness_fork",
128
133
  ]);
129
134
  const EXCLUDED_MODULES = new Set([
130
135
  // Test-only helpers, build artifacts, etc.
@@ -286,6 +291,10 @@ function familyAliases(moduleName) {
286
291
  soul_embalming: ["soul"],
287
292
  hive_court: ["court"],
288
293
  synapse_sync: ["synapse"],
294
+ handoff_snapshot: ["handoff"],
295
+ pair_code: ["handoff"],
296
+ handoff_pwa: ["handoff"],
297
+ consciousness_fork: ["fork"],
289
298
  arena: ["arena"],
290
299
  verified_badge: ["badge"],
291
300
  oracle_liability: ["oracle"],
@@ -527,6 +536,21 @@ const ALWAYS_INTERNAL_EXPORTS = new Set([
527
536
  "mergeSynapseStores",
528
537
  "packForDiaspora",
529
538
  "unpackFromDiaspora",
539
+ // v2.19.32 BEACON HANDOFF: prefix mismatch ("pair_*" vs verb-first symbols)
540
+ // + 5 pure helpers (normalise / validate / prune / compute*Stats / find*)
541
+ // that don't need 1:1 MCP wrappers. The composite tools cover them.
542
+ "generatePairCode", // wrapped as mneme.handoff.pair_generate
543
+ "bindEnvelope", // wrapped as mneme.handoff.pair_bind
544
+ "lookupByCode", // wrapped as mneme.handoff.pair_lookup
545
+ "normaliseCode", // pure helper used inside lookupByCode
546
+ "isValidCodeShape", // pure helper used inside verifyPairRecord
547
+ "pruneExpired", // pure helper for caller's store maintenance
548
+ "computePwaStats", // display helper
549
+ "computeSnapshotStats", // display helper
550
+ "computePairStats", // display helper
551
+ "computeLineageStats", // display helper
552
+ "findActiveDescendants", // wrapped as mneme.fork.find_descendants
553
+ "markAbandoned", // auxiliary state transition (callers can use mark_reconciled or skip)
530
554
  ]);
531
555
  export function findOrphans(input) {
532
556
  const out = [];