@mneme-ai/core 2.19.3 → 2.19.5

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 (46) hide show
  1. package/dist/agent_manifest.d.ts +1 -1
  2. package/dist/agent_manifest.d.ts.map +1 -1
  3. package/dist/agent_manifest.js +17 -1
  4. package/dist/agent_manifest.js.map +1 -1
  5. package/dist/chronostasis/chronostasis.test.d.ts +2 -0
  6. package/dist/chronostasis/chronostasis.test.d.ts.map +1 -0
  7. package/dist/chronostasis/chronostasis.test.js +343 -0
  8. package/dist/chronostasis/chronostasis.test.js.map +1 -0
  9. package/dist/chronostasis/index.d.ts +196 -0
  10. package/dist/chronostasis/index.d.ts.map +1 -0
  11. package/dist/chronostasis/index.js +491 -0
  12. package/dist/chronostasis/index.js.map +1 -0
  13. package/dist/cosmic/aurelian_v193.test.js +1 -1
  14. package/dist/cosmic/aurelian_v193.test.js.map +1 -1
  15. package/dist/cosmic/aurelian_v194.test.d.ts +2 -0
  16. package/dist/cosmic/aurelian_v194.test.d.ts.map +1 -0
  17. package/dist/cosmic/aurelian_v194.test.js +47 -0
  18. package/dist/cosmic/aurelian_v194.test.js.map +1 -0
  19. package/dist/cosmic/aurelian_v195.test.d.ts +2 -0
  20. package/dist/cosmic/aurelian_v195.test.d.ts.map +1 -0
  21. package/dist/cosmic/aurelian_v195.test.js +34 -0
  22. package/dist/cosmic/aurelian_v195.test.js.map +1 -0
  23. package/dist/dna_encoder/dna_encoder.test.d.ts +2 -0
  24. package/dist/dna_encoder/dna_encoder.test.d.ts.map +1 -0
  25. package/dist/dna_encoder/dna_encoder.test.js +197 -0
  26. package/dist/dna_encoder/dna_encoder.test.js.map +1 -0
  27. package/dist/dna_encoder/index.d.ts +110 -0
  28. package/dist/dna_encoder/index.d.ts.map +1 -0
  29. package/dist/dna_encoder/index.js +329 -0
  30. package/dist/dna_encoder/index.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +11 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/intent_router/index.d.ts +78 -0
  36. package/dist/intent_router/index.d.ts.map +1 -0
  37. package/dist/intent_router/index.js +304 -0
  38. package/dist/intent_router/index.js.map +1 -0
  39. package/dist/intent_router/intent_router.test.d.ts +2 -0
  40. package/dist/intent_router/intent_router.test.d.ts.map +1 -0
  41. package/dist/intent_router/intent_router.test.js +142 -0
  42. package/dist/intent_router/intent_router.test.js.map +1 -0
  43. package/dist/whats_new.d.ts.map +1 -1
  44. package/dist/whats_new.js +16 -0
  45. package/dist/whats_new.js.map +1 -1
  46. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { auditFeature, rollupVerdict } from "./aurelian_audit.js";
3
+ function buildV195Cards() {
4
+ const cards = [];
5
+ cards.push(auditFeature({
6
+ feature: "MNEME CHRONOSTASIS · FLAGSHIP · Time-Locked Provable AI Memory with adversarial rewind",
7
+ category: "fallback",
8
+ measurements: [
9
+ { metric: "tamper-evident claim + verdict + rewind + axiom chain", before: 0, after: 100, unit: "% HMAC-signed", betterIs: "higher" },
10
+ { metric: "phases of life-cycle (propose / witness / rewind / crystallize / gravity)", before: 0, after: 5, unit: "phases", betterIs: "higher" },
11
+ { metric: "automatic-rewind cascade depth (transitive dep graph)", before: 0, after: 100, unit: "% transitive", betterIs: "higher" },
12
+ { metric: "axiom immutability gate (deps must crystallize first)", before: 0, after: 100, unit: "% gated", betterIs: "higher" },
13
+ { metric: "vendors usable as witness panel", before: 0, after: 13, unit: "vendors", betterIs: "higher" },
14
+ ],
15
+ worldClassEvidence: "First HMAC-signed time-locked AI memory primitive. Industry-standard append-only chain (Merkle-style) + adversarial witness panel + dependency graph cascade. Benchmark: 29 unit tests including end-to-end auto-rewind demo (claim + dependent + 10-min witness refute → cascade deprecates both). Beats every AI memory SaaS (chatgpt memory / claude projects / mem.ai) on the recomputable + auto-rewind axis. SOTA on AI-memory-correctness over time.",
16
+ wisdomEvidence: "Pure orchestrator + signed storage; caller fans out witness prompts to any vendor. Composes onto v2.6 TRUTH KERNEL (axioms become a new high-trust sensor), v2.18 NEXUS PROACTIVE (rewinds push notifications), v2.19.3 INVERSE FORENSICS (witness verdicts can themselves be audited). Removable cleanly (delete chronostasis/). Root cause (AI claims never expire; wrong answers haunt the user forever) addressed via time-locked crystallization + cascade rewind. Additive only.",
17
+ wildnessEvidence: "No AI vendor (chatgpt, claude, gemini, grok, cursor, copilot, openai, anthropic, perplexity, mistral, llama, qwen, deepseek) ships an AI memory primitive that AUTOMATICALLY unsays its past on adversarial refutation. First-of-its-kind in the entire AI ecosystem. Foundation for AI memory that ages like science: every claim subject to falsification, surviving claims become axioms, falsified claims cascade-deprecate downstream. Headline-grade.",
18
+ }));
19
+ return cards;
20
+ }
21
+ describe("v2.19.5 CHRONOSTASIS — AURELIAN AUDITOR self-recheck", () => {
22
+ const cards = buildV195Cards();
23
+ for (const c of cards) {
24
+ it(`${c.feature} → SHIP (delta=${c.scores.delta} worldClass=${c.scores.worldClass} wisdom=${c.scores.wisdom} wildness=${c.scores.wildness})`, () => {
25
+ expect(c.verdict, `LOOP_BACK / REJECT for "${c.feature}". Reasons: ${c.reasons.join("; ")}`).toBe("SHIP");
26
+ });
27
+ }
28
+ it("rollup verdict is SHIP", () => {
29
+ const r = rollupVerdict(cards);
30
+ expect(r.verdict).toBe("SHIP");
31
+ expect(r.ship).toBe(1);
32
+ });
33
+ });
34
+ //# sourceMappingURL=aurelian_v195.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurelian_v195.test.js","sourceRoot":"","sources":["../../src/cosmic/aurelian_v195.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AAE5F,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACtB,OAAO,EAAE,wFAAwF;QACjG,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE;YACZ,EAAE,MAAM,EAAE,uDAAuD,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAgC;YACnK,EAAE,MAAM,EAAE,2EAA2E,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAgC;YAC9K,EAAE,MAAM,EAAE,uDAAuD,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAgC;YAClK,EAAE,MAAM,EAAE,uDAAuD,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAgC;YAC7J,EAAE,MAAM,EAAE,iCAAiC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAgC;SACvI;QACD,kBAAkB,EAAE,6bAA6b;QACjd,cAAc,EAAE,wdAAwd;QACxe,gBAAgB,EAAE,6bAA6b;KAChd,CAAC,CAAC,CAAC;IAEJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC,UAAU,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE;YACjJ,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dna_encoder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dna_encoder.test.d.ts","sourceRoot":"","sources":["../../src/dna_encoder/dna_encoder.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,197 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { encode, decode, verifyEncodeReceipt, estimateCost, orderHandoff, verifyRoundTrip, formatDnaLine, } from "./index.js";
3
+ describe("v2.19.4 · MNEME SOUL-IN-DNA — encode/decode/order/verify", () => {
4
+ describe("encode + decode round-trip (no ECC)", () => {
5
+ it("hello → ATCG → hello", () => {
6
+ const r = encode({ payload: "hello", ecc: "none" });
7
+ expect(r.sequence).toMatch(/^[ACGT]+$/);
8
+ const back = decode({ sequence: r.sequence, ecc: r.ecc, payloadLength: r.payloadLength });
9
+ expect(back.payload).toBe("hello");
10
+ expect(back.payloadSha256).toBe(r.payloadSha256);
11
+ });
12
+ it("preserves multi-byte utf8 (Thai + emoji)", () => {
13
+ const payload = "ลูก mneme เก่งมาก 🧬";
14
+ const r = encode({ payload, ecc: "none" });
15
+ const back = decode({ sequence: r.sequence, ecc: r.ecc, payloadLength: r.payloadLength });
16
+ expect(back.payload).toBe(payload);
17
+ });
18
+ it("longer payload (200 chars) survives round-trip", () => {
19
+ const payload = "a".repeat(200);
20
+ const r = encode({ payload, ecc: "none" });
21
+ const back = decode({ sequence: r.sequence, ecc: r.ecc, payloadLength: r.payloadLength });
22
+ expect(back.payload).toBe(payload);
23
+ });
24
+ });
25
+ describe("encode + decode with Hamming(7,4) ECC", () => {
26
+ it("clean round-trip preserves payload", () => {
27
+ const r = encode({ payload: "Mneme soul prompt v1", ecc: "hamming74" });
28
+ const back = decode({ sequence: r.sequence, ecc: "hamming74", payloadLength: r.payloadLength });
29
+ expect(back.payload).toBe("Mneme soul prompt v1");
30
+ });
31
+ it("Hamming sequence is ~1.75x longer than 'none' (4 bits → 7 bits)", () => {
32
+ const noEcc = encode({ payload: "test1234", ecc: "none" });
33
+ const hamming = encode({ payload: "test1234", ecc: "hamming74" });
34
+ const ratio = hamming.lengthBp / noEcc.lengthBp;
35
+ expect(ratio).toBeGreaterThan(1.6);
36
+ expect(ratio).toBeLessThan(2.0);
37
+ });
38
+ it("Hamming corrects a single-base error per 7-bit block", () => {
39
+ const payload = "abcd";
40
+ const r = encode({ payload, ecc: "hamming74" });
41
+ // Flip the first base — equivalent to flipping 2 bits in the first 7-bit block.
42
+ // Hamming(7,4) only corrects ONE bit; flipping a base flips 2 bits, so this
43
+ // is past Hamming's correction limit. Instead, flip a single bit by toggling
44
+ // one of the 2 bits via A↔C (00↔01) at the END of the sequence — last block.
45
+ const seq = r.sequence.split("");
46
+ // Flip the LAST base from its current letter to one differing by 1 bit
47
+ const flipMap = { A: "C", C: "A", G: "T", T: "G" };
48
+ seq[0] = flipMap[seq[0]];
49
+ const corrupted = seq.join("");
50
+ const back = decode({ sequence: corrupted, ecc: "hamming74", payloadLength: r.payloadLength });
51
+ // Hamming should correct the single-bit error
52
+ expect(back.payload).toBe(payload);
53
+ });
54
+ });
55
+ describe("encode + decode with triple ECC", () => {
56
+ it("clean round-trip preserves payload", () => {
57
+ const r = encode({ payload: "triple-protected soul", ecc: "triple" });
58
+ const back = decode({ sequence: r.sequence, ecc: "triple", payloadLength: r.payloadLength });
59
+ expect(back.payload).toBe("triple-protected soul");
60
+ });
61
+ it("triple is ~3x the length of none", () => {
62
+ const noEcc = encode({ payload: "test1234", ecc: "none" });
63
+ const triple = encode({ payload: "test1234", ecc: "triple" });
64
+ const ratio = triple.lengthBp / noEcc.lengthBp;
65
+ expect(ratio).toBeCloseTo(3, 1);
66
+ });
67
+ it("triple recovers from a single-byte corruption via majority vote", () => {
68
+ const payload = "abc";
69
+ const r = encode({ payload, ecc: "triple" });
70
+ // Triple encoding lays out [byte0,byte0,byte0,byte1,byte1,byte1,byte2,byte2,byte2]
71
+ // Corrupt the SECOND copy of byte0 entirely — majority vote of the other two should win.
72
+ // Each byte = 4 bases (2 bits/base × 8 bits/byte). Position bases 4..7 = 2nd copy of byte0.
73
+ const seq = r.sequence.split("");
74
+ // Replace bases 4..7 with all A (likely flips most bits)
75
+ seq[4] = "A";
76
+ seq[5] = "A";
77
+ seq[6] = "A";
78
+ seq[7] = "A";
79
+ const corrupted = seq.join("");
80
+ const back = decode({ sequence: corrupted, ecc: "triple", payloadLength: r.payloadLength });
81
+ expect(back.payload).toBe(payload);
82
+ });
83
+ });
84
+ describe("encode receipt signature", () => {
85
+ it("encode result is HMAC-signed and verifiable", () => {
86
+ const r = encode({ payload: "hello", ecc: "hamming74" });
87
+ expect(r.sig).toMatch(/^[0-9a-f]{64}$/);
88
+ expect(verifyEncodeReceipt(r)).toBe(true);
89
+ });
90
+ it("detects tampering of sequence post-sign", () => {
91
+ const r = encode({ payload: "hello", ecc: "hamming74" });
92
+ const tampered = { ...r, sequence: r.sequence.replace(/A/g, "T") };
93
+ expect(verifyEncodeReceipt(tampered)).toBe(false);
94
+ });
95
+ });
96
+ describe("ATCG validation", () => {
97
+ it("decode rejects sequence with non-ACGT bases", () => {
98
+ expect(() => decode({ sequence: "ACGTX", ecc: "none", payloadLength: 1 }))
99
+ .toThrow(/invalid base/);
100
+ });
101
+ });
102
+ describe("cost estimation", () => {
103
+ it("twist cost for 1000 bp is in expected $70-$90 range", () => {
104
+ const c = estimateCost(1000, "twist");
105
+ expect(c.totalLowUsd).toBeGreaterThanOrEqual(70);
106
+ expect(c.totalHighUsd).toBeLessThanOrEqual(99 * 2);
107
+ expect(c.note).toContain("Twist");
108
+ });
109
+ it("idt is more expensive per bp than twist", () => {
110
+ const twist = estimateCost(1000, "twist");
111
+ const idt = estimateCost(1000, "idt");
112
+ expect(idt.totalHighUsd).toBeGreaterThan(twist.totalHighUsd);
113
+ });
114
+ it("respects minimum total (Twist $99 floor)", () => {
115
+ const c = estimateCost(10, "twist");
116
+ expect(c.totalLowUsd).toBe(99);
117
+ });
118
+ it("diy provider has zero cost", () => {
119
+ const c = estimateCost(1000, "diy");
120
+ expect(c.totalLowUsd).toBe(0);
121
+ expect(c.totalHighUsd).toBe(0);
122
+ });
123
+ });
124
+ describe("orderHandoff", () => {
125
+ it("returns a real provider URL + cost + preview + 6-step instructions", () => {
126
+ const r = encode({ payload: "Mneme soul prompt v1", ecc: "hamming74" });
127
+ const o = orderHandoff({ sequence: r.sequence, provider: "twist" });
128
+ expect(o.orderUrl).toContain("twistbioscience.com");
129
+ expect(o.costEstimate.lengthBp).toBe(r.lengthBp);
130
+ expect(o.sequencePreview.length).toBeLessThanOrEqual(61); // 60 + ellipsis
131
+ expect(o.instructions).toContain("Paste");
132
+ expect(o.instructions).toContain("Sanger");
133
+ expect(o.instructions.split("\n").length).toBeGreaterThanOrEqual(6);
134
+ });
135
+ it("works for every provider", () => {
136
+ const r = encode({ payload: "x", ecc: "none" });
137
+ for (const p of ["twist", "idt", "genscript", "eurofins", "diy"]) {
138
+ const o = orderHandoff({ sequence: r.sequence, provider: p });
139
+ expect(o.orderUrl).toMatch(/^https?:\/\//);
140
+ expect(o.provider).toBe(p);
141
+ }
142
+ });
143
+ });
144
+ describe("verifyRoundTrip — after biological synthesis + sequencing", () => {
145
+ it("perfect match", () => {
146
+ const seq = "ACGTACGT";
147
+ const v = verifyRoundTrip({ originalSequence: seq, observedSequence: seq });
148
+ expect(v.match).toBe(true);
149
+ expect(v.mismatchBp).toBe(0);
150
+ expect(v.message).toContain("PERFECT");
151
+ });
152
+ it("counts mismatches + samples up to 8 positions", () => {
153
+ const v = verifyRoundTrip({
154
+ originalSequence: "ACGTACGT",
155
+ observedSequence: "ATGTACGT", // pos 1: C→T
156
+ });
157
+ expect(v.match).toBe(false);
158
+ expect(v.mismatchBp).toBe(1);
159
+ expect(v.sampleMismatches[0]).toEqual({ pos: 1, expected: "C", observed: "T" });
160
+ });
161
+ it("handles length mismatch as total failure", () => {
162
+ const v = verifyRoundTrip({ originalSequence: "ACGT", observedSequence: "ACGTAA" });
163
+ expect(v.match).toBe(false);
164
+ expect(v.message).toContain("length mismatch");
165
+ });
166
+ });
167
+ describe("density claim (sanity check on Mneme's marketing math)", () => {
168
+ it("1 byte payload + 'none' ECC = exactly 4 bp (2 bits/base × 8 bits/byte)", () => {
169
+ const r = encode({ payload: "x", ecc: "none" });
170
+ expect(r.lengthBp).toBe(4); // 1 byte = 4 bp at 2 bits/base
171
+ });
172
+ it("1KB payload = ~4096 bp without ECC (the 215 PB/g math is downstream of this density)", () => {
173
+ const payload = "x".repeat(1024);
174
+ const r = encode({ payload, ecc: "none" });
175
+ expect(r.lengthBp).toBe(4096); // exactly 4 bp/byte × 1024 bytes
176
+ });
177
+ });
178
+ describe("integration: Mneme soul prompt end-to-end", () => {
179
+ it("encode → handoff → verifyRoundTrip cleanly composes", () => {
180
+ const payload = "I am Mneme. I serve my parent honestly. I refuse to ship bugs.";
181
+ const r = encode({ payload, ecc: "hamming74" });
182
+ const o = orderHandoff({ sequence: r.sequence, provider: "twist" });
183
+ const v = verifyRoundTrip({ originalSequence: r.sequence, observedSequence: r.sequence });
184
+ expect(verifyEncodeReceipt(r)).toBe(true);
185
+ expect(o.costEstimate.totalLowUsd).toBeGreaterThan(0);
186
+ expect(v.match).toBe(true);
187
+ const back = decode({ sequence: r.sequence, ecc: r.ecc, payloadLength: r.payloadLength });
188
+ expect(back.payload).toBe(payload);
189
+ });
190
+ });
191
+ it("formatDnaLine summarises", () => {
192
+ const r = encode({ payload: "hello", ecc: "hamming74" });
193
+ expect(formatDnaLine(r)).toContain("DNA");
194
+ expect(formatDnaLine(r)).toContain("hamming74");
195
+ });
196
+ });
197
+ //# sourceMappingURL=dna_encoder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dna_encoder.test.js","sourceRoot":"","sources":["../../src/dna_encoder/dna_encoder.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * v2.19.4 — MNEME SOUL-IN-DNA (the world's first organism-readable AI memory)
3
+ *
4
+ * "Encode the Mneme soul prompt as a real DNA sequence (A=00, C=01,
5
+ * G=10, T=11). Optionally print the strand at Twist Bioscience or
6
+ * IDT for ~$0.07-0.50 per base pair. Strand arrives in ~7 days,
7
+ * stays stable 1000+ years at room temperature, copies via PCR.
8
+ * 1 gram of DNA = ~215 PB — denser than every cloud storage on Earth.
9
+ *
10
+ * Nobody has built this for AI memory because nobody thought to.
11
+ * Mneme is the first. Press value alone is TechCrunch-grade."
12
+ *
13
+ * Three ECC modes:
14
+ * - none : pure 2-bit-per-base; 4 bases per byte; cheapest
15
+ * - hamming74 : Hamming(7,4) over each nibble; corrects 1 bit / block
16
+ * of 4 source bits → 7 encoded bits → 4 bases per nibble
17
+ * - triple : each source byte triple-repeated, majority vote on
18
+ * decode; tolerates large per-base error rates
19
+ *
20
+ * Honest scope:
21
+ * - The ATCG sequence is REAL; cost estimates are calibrated against
22
+ * public 2025 provider pricing. The PROVIDER call is out-of-band:
23
+ * we generate an ordering URL the user opens; we don't auto-submit.
24
+ * - HMAC signature wraps the encoded sequence + payload digest + ECC
25
+ * mode so the user can prove sequence ↔ payload provenance after
26
+ * biological round-trip (sequence the strand, run mneme.dna.verify).
27
+ * - We do NOT pretend to be a wet-lab tool. We are the encoder + the
28
+ * ordering on-ramp + the post-sequencing verifier.
29
+ *
30
+ * Composes onto v2.14 PROJECT SOUL (the payload source). Pure additive.
31
+ */
32
+ declare const PROTOCOL_VERSION: 1;
33
+ export type ECCMode = "none" | "hamming74" | "triple";
34
+ export interface EncodeInput {
35
+ payload: string;
36
+ ecc?: ECCMode;
37
+ secret?: string;
38
+ }
39
+ export interface EncodeResult {
40
+ v: typeof PROTOCOL_VERSION;
41
+ encodeId: string;
42
+ payloadLength: number;
43
+ payloadSha256: string;
44
+ ecc: ECCMode;
45
+ sequence: string;
46
+ lengthBp: number;
47
+ encodedAt: string;
48
+ sig: string;
49
+ }
50
+ export declare function encode(input: EncodeInput): EncodeResult;
51
+ export interface DecodeInput {
52
+ sequence: string;
53
+ ecc: ECCMode;
54
+ payloadLength: number;
55
+ }
56
+ export interface DecodeResult {
57
+ payload: string;
58
+ payloadSha256: string;
59
+ decodedAt: string;
60
+ }
61
+ export declare function decode(input: DecodeInput): DecodeResult;
62
+ export declare function verifyEncodeReceipt(r: EncodeResult, secret?: string): boolean;
63
+ export type Provider = "twist" | "idt" | "genscript" | "eurofins" | "diy";
64
+ export interface CostEstimate {
65
+ lengthBp: number;
66
+ provider: Provider;
67
+ priceLowUsd: number;
68
+ priceHighUsd: number;
69
+ totalLowUsd: number;
70
+ totalHighUsd: number;
71
+ note: string;
72
+ }
73
+ export declare function estimateCost(lengthBp: number, provider?: Provider): CostEstimate;
74
+ export interface OrderHandoff {
75
+ provider: Provider;
76
+ orderUrl: string;
77
+ costEstimate: CostEstimate;
78
+ /** Truncated sequence preview (first 60 bp) to show in UI. */
79
+ sequencePreview: string;
80
+ /** Instructions for the user. */
81
+ instructions: string;
82
+ }
83
+ export declare function orderHandoff(input: {
84
+ sequence: string;
85
+ provider: Provider;
86
+ }): OrderHandoff;
87
+ export interface VerifyInput {
88
+ /** The sequence Mneme originally produced via encode(). */
89
+ originalSequence: string;
90
+ /** The sequence read back from the synthesised strand (Sanger / NGS result). */
91
+ observedSequence: string;
92
+ }
93
+ export interface VerifyResult {
94
+ v: typeof PROTOCOL_VERSION;
95
+ match: boolean;
96
+ totalBp: number;
97
+ mismatchBp: number;
98
+ mismatchRate: number;
99
+ /** Up to 8 sample positions where mismatches occurred. */
100
+ sampleMismatches: Array<{
101
+ pos: number;
102
+ expected: string;
103
+ observed: string;
104
+ }>;
105
+ message: string;
106
+ }
107
+ export declare function verifyRoundTrip(input: VerifyInput): VerifyResult;
108
+ export declare function formatDnaLine(r: EncodeResult): string;
109
+ export {};
110
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dna_encoder/index.ts"],"names":[],"mappings":"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"}