@mneme-ai/core 2.19.6 → 2.19.7

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 (72) hide show
  1. package/dist/__v197_extras/v197_extras.test.d.ts +9 -0
  2. package/dist/__v197_extras/v197_extras.test.d.ts.map +1 -0
  3. package/dist/__v197_extras/v197_extras.test.js +208 -0
  4. package/dist/__v197_extras/v197_extras.test.js.map +1 -0
  5. package/dist/agent_manifest.d.ts +1 -1
  6. package/dist/agent_manifest.d.ts.map +1 -1
  7. package/dist/agent_manifest.js +15 -1
  8. package/dist/agent_manifest.js.map +1 -1
  9. package/dist/chronostasis/index.d.ts +24 -0
  10. package/dist/chronostasis/index.d.ts.map +1 -1
  11. package/dist/chronostasis/index.js +88 -0
  12. package/dist/chronostasis/index.js.map +1 -1
  13. package/dist/colony_mind/colony_mind.test.d.ts +2 -0
  14. package/dist/colony_mind/colony_mind.test.d.ts.map +1 -0
  15. package/dist/colony_mind/colony_mind.test.js +89 -0
  16. package/dist/colony_mind/colony_mind.test.js.map +1 -0
  17. package/dist/colony_mind/index.d.ts +100 -0
  18. package/dist/colony_mind/index.d.ts.map +1 -0
  19. package/dist/colony_mind/index.js +141 -0
  20. package/dist/colony_mind/index.js.map +1 -0
  21. package/dist/conversation_compiler/index.d.ts +13 -0
  22. package/dist/conversation_compiler/index.d.ts.map +1 -1
  23. package/dist/conversation_compiler/index.js +45 -0
  24. package/dist/conversation_compiler/index.js.map +1 -1
  25. package/dist/cosmic/aurelian_v197.test.d.ts +2 -0
  26. package/dist/cosmic/aurelian_v197.test.d.ts.map +1 -0
  27. package/dist/cosmic/aurelian_v197.test.js +91 -0
  28. package/dist/cosmic/aurelian_v197.test.js.map +1 -0
  29. package/dist/dream_consolidation/dream_consolidation.test.d.ts +2 -0
  30. package/dist/dream_consolidation/dream_consolidation.test.d.ts.map +1 -0
  31. package/dist/dream_consolidation/dream_consolidation.test.js +122 -0
  32. package/dist/dream_consolidation/dream_consolidation.test.js.map +1 -0
  33. package/dist/dream_consolidation/index.d.ts +107 -0
  34. package/dist/dream_consolidation/index.d.ts.map +1 -0
  35. package/dist/dream_consolidation/index.js +265 -0
  36. package/dist/dream_consolidation/index.js.map +1 -0
  37. package/dist/genetic_patch/genetic_patch.test.d.ts +2 -0
  38. package/dist/genetic_patch/genetic_patch.test.d.ts.map +1 -0
  39. package/dist/genetic_patch/genetic_patch.test.js +75 -0
  40. package/dist/genetic_patch/genetic_patch.test.js.map +1 -0
  41. package/dist/genetic_patch/index.d.ts +91 -0
  42. package/dist/genetic_patch/index.d.ts.map +1 -0
  43. package/dist/genetic_patch/index.js +163 -0
  44. package/dist/genetic_patch/index.js.map +1 -0
  45. package/dist/honey_decision/honey_decision.test.d.ts +2 -0
  46. package/dist/honey_decision/honey_decision.test.d.ts.map +1 -0
  47. package/dist/honey_decision/honey_decision.test.js +83 -0
  48. package/dist/honey_decision/honey_decision.test.js.map +1 -0
  49. package/dist/honey_decision/index.d.ts +96 -0
  50. package/dist/honey_decision/index.d.ts.map +1 -0
  51. package/dist/honey_decision/index.js +203 -0
  52. package/dist/honey_decision/index.js.map +1 -0
  53. package/dist/index.d.ts +5 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +12 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/intent_router/index.d.ts +13 -0
  58. package/dist/intent_router/index.d.ts.map +1 -1
  59. package/dist/intent_router/index.js +52 -0
  60. package/dist/intent_router/index.js.map +1 -1
  61. package/dist/retroactive_compile/index.d.ts +85 -0
  62. package/dist/retroactive_compile/index.d.ts.map +1 -0
  63. package/dist/retroactive_compile/index.js +209 -0
  64. package/dist/retroactive_compile/index.js.map +1 -0
  65. package/dist/retroactive_compile/retroactive_compile.test.d.ts +2 -0
  66. package/dist/retroactive_compile/retroactive_compile.test.d.ts.map +1 -0
  67. package/dist/retroactive_compile/retroactive_compile.test.js +99 -0
  68. package/dist/retroactive_compile/retroactive_compile.test.js.map +1 -0
  69. package/dist/whats_new.d.ts.map +1 -1
  70. package/dist/whats_new.js +8 -0
  71. package/dist/whats_new.js.map +1 -1
  72. package/package.json +1 -1
@@ -0,0 +1,265 @@
1
+ /**
2
+ * v2.19.7 — MNEME DREAM CONSOLIDATION (REM-sleep speculative axiom generator)
3
+ *
4
+ * "While the daemon idles between midnight and 6am, Mneme dreams.
5
+ * It pairs existing axioms with high jaccard overlap, synthesises
6
+ * SPECULATIVE candidates ('axiom A + axiom B imply candidate C'),
7
+ * and stores them in a separate, low-trust pool. In the morning,
8
+ * the parent reviews each candidate and either:
9
+ * - confirm() → submit as Chronostasis pending claim
10
+ * - refute() → archive with reason (becomes a vaccine)
11
+ * - ignore → expire after N days
12
+ *
13
+ * Like REM consolidation in mammals: pattern-detect across the day's
14
+ * memory, propose hypotheses, wake up smarter."
15
+ *
16
+ * Honest scope:
17
+ * - The synthesis is LEXICAL (jaccard token overlap + template combine);
18
+ * not deep semantic. Quality scales with how curated the axiom pool is.
19
+ * - Speculative candidates NEVER auto-promote — they require explicit
20
+ * parent confirmation to enter the Chronostasis pending pipeline.
21
+ * - Determinism: same input axiom pool + same seed = same dream output.
22
+ *
23
+ * Composes onto v2.19.5 CHRONOSTASIS (consumes axioms; emits pending-
24
+ * candidate proposals). Pure local computation; no external AI calls.
25
+ */
26
+ import { createHmac, timingSafeEqual } from "node:crypto";
27
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
28
+ import { dirname } from "node:path";
29
+ const PROTOCOL_VERSION = 1;
30
+ const STOP = new Set([
31
+ "the", "a", "an", "and", "or", "but", "is", "it", "to", "of", "in", "on",
32
+ "for", "with", "as", "at", "by", "this", "that", "be", "you", "i", "we",
33
+ "are", "was", "were", "have", "has", "had", "do", "does", "did", "not",
34
+ "from", "out", "up", "if", "then", "than",
35
+ ]);
36
+ function tokenize(s) {
37
+ return (s.toLowerCase().match(/[a-z][a-z0-9_]+/g) ?? []).filter((t) => !STOP.has(t) && t.length >= 3);
38
+ }
39
+ function jaccard(a, b) {
40
+ const ta = new Set(tokenize(a));
41
+ const tb = new Set(tokenize(b));
42
+ if (ta.size === 0 && tb.size === 0)
43
+ return 1;
44
+ let inter = 0;
45
+ for (const t of ta)
46
+ if (tb.has(t))
47
+ inter++;
48
+ const union = ta.size + tb.size - inter;
49
+ return union === 0 ? 0 : inter / union;
50
+ }
51
+ function canon(v) {
52
+ if (v === null || typeof v !== "object")
53
+ return JSON.stringify(v);
54
+ if (Array.isArray(v))
55
+ return "[" + v.map(canon).join(",") + "]";
56
+ const keys = Object.keys(v).sort();
57
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
58
+ }
59
+ function defaultSecret() {
60
+ return process.env["MNEME_DREAM_SECRET"] || `mneme-dream-consolidation-v${PROTOCOL_VERSION}`;
61
+ }
62
+ function hmac(body, secret) {
63
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
64
+ }
65
+ function safeEqHex(a, b) {
66
+ try {
67
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ /** Token-overlap synthesis: returns a candidate body summarising shared concepts. */
74
+ function synthesiseBody(a, b) {
75
+ const ta = new Set(tokenize(a.body));
76
+ const tb = new Set(tokenize(b.body));
77
+ const shared = [];
78
+ for (const t of ta)
79
+ if (tb.has(t))
80
+ shared.push(t);
81
+ shared.sort();
82
+ const sharedStr = shared.slice(0, 8).join(", ") || "(shared concepts)";
83
+ return `[SPECULATIVE] Combining "${a.body.slice(0, 60)}" with "${b.body.slice(0, 60)}" suggests a relationship through: ${sharedStr}. Confirm or refute before relying on.`;
84
+ }
85
+ export class DreamConsolidation {
86
+ storePath;
87
+ candidates = [];
88
+ secret;
89
+ constructor(opts = {}) {
90
+ this.storePath = opts.storePath ?? ".mneme/dream/candidates.jsonl";
91
+ this.secret = opts.secret ?? defaultSecret();
92
+ this.loadIfExists();
93
+ }
94
+ loadIfExists() {
95
+ if (!existsSync(this.storePath))
96
+ return;
97
+ const text = readFileSync(this.storePath, "utf8");
98
+ for (const line of text.split("\n")) {
99
+ const t = line.trim();
100
+ if (!t)
101
+ continue;
102
+ try {
103
+ this.candidates.push(JSON.parse(t));
104
+ }
105
+ catch { /* */ }
106
+ }
107
+ }
108
+ /**
109
+ * Run one dream cycle. Pairs axioms with overlap ≥ pairThreshold + novelty ≥ noveltyThreshold;
110
+ * emits candidates sorted by combined score. Idempotent per (axiom pool + thresholds + nowMs).
111
+ */
112
+ runCycle(input) {
113
+ const now = input.nowMs ?? Date.now();
114
+ const ranAt = new Date(now).toISOString();
115
+ const pairThreshold = input.pairThreshold ?? 0.20;
116
+ const noveltyThreshold = input.noveltyThreshold ?? 0.40;
117
+ const maxCandidates = input.maxCandidates ?? 10;
118
+ const expirySec = input.expirySec ?? 7 * 24 * 60 * 60;
119
+ const newCandidates = [];
120
+ let pairsExplored = 0;
121
+ const axiomBodies = input.axioms.map((a) => a.body);
122
+ for (let i = 0; i < input.axioms.length; i++) {
123
+ for (let j = i + 1; j < input.axioms.length; j++) {
124
+ pairsExplored++;
125
+ const a = input.axioms[i];
126
+ const b = input.axioms[j];
127
+ const overlap = jaccard(a.body, b.body);
128
+ if (overlap < pairThreshold)
129
+ continue;
130
+ const candidateBody = synthesiseBody(a, b);
131
+ // Novelty: 1 - max similarity to any existing axiom (not the parents)
132
+ let maxSim = 0;
133
+ for (let k = 0; k < axiomBodies.length; k++) {
134
+ if (k === i || k === j)
135
+ continue;
136
+ const s = jaccard(candidateBody, axiomBodies[k]);
137
+ if (s > maxSim)
138
+ maxSim = s;
139
+ }
140
+ const novelty = Math.round((1 - maxSim) * 1000) / 1000;
141
+ if (novelty < noveltyThreshold)
142
+ continue;
143
+ const candidateId = "dc-" + createHmac("sha256", "mneme-dream-id")
144
+ .update(`${a.axiomId}|${b.axiomId}|${candidateBody.slice(0, 40)}`)
145
+ .digest("hex").slice(0, 14);
146
+ // Skip if already in store
147
+ if (this.candidates.some((c) => c.candidateId === candidateId))
148
+ continue;
149
+ const body = {
150
+ v: PROTOCOL_VERSION,
151
+ candidateId,
152
+ body: candidateBody,
153
+ parents: [a.axiomId, b.axiomId],
154
+ parentOverlap: Math.round(overlap * 1000) / 1000,
155
+ novelty,
156
+ status: "pending_review",
157
+ proposedAt: ranAt,
158
+ expiresAt: new Date(now + expirySec * 1000).toISOString(),
159
+ };
160
+ const sig = hmac(body, this.secret);
161
+ const cand = { ...body, sig };
162
+ newCandidates.push(cand);
163
+ this.candidates.push(cand);
164
+ }
165
+ }
166
+ // Sort emitted by combined score (overlap × novelty) desc, cap maxCandidates
167
+ newCandidates.sort((x, y) => (y.parentOverlap * y.novelty) - (x.parentOverlap * x.novelty));
168
+ const emitted = newCandidates.slice(0, maxCandidates);
169
+ // Trim non-emitted from store (rollback) so we never persist beyond cap
170
+ const emittedIds = new Set(emitted.map((c) => c.candidateId));
171
+ for (const c of newCandidates) {
172
+ if (!emittedIds.has(c.candidateId)) {
173
+ const idx = this.candidates.indexOf(c);
174
+ if (idx >= 0)
175
+ this.candidates.splice(idx, 1);
176
+ }
177
+ }
178
+ this.persist();
179
+ const cycleId = "dcyc-" + createHmac("sha256", "mneme-dream-cycle-id")
180
+ .update(`${ranAt}|${pairsExplored}|${emitted.length}`)
181
+ .digest("hex").slice(0, 14);
182
+ const resBody = {
183
+ v: PROTOCOL_VERSION,
184
+ cycleId,
185
+ ranAt,
186
+ axiomsConsidered: input.axioms.length,
187
+ pairsExplored,
188
+ candidatesEmitted: emitted.length,
189
+ candidates: emitted,
190
+ };
191
+ const sig = hmac(resBody, this.secret);
192
+ return { ...resBody, sig };
193
+ }
194
+ /** Parent confirms a speculative candidate → caller submits to Chronostasis. */
195
+ confirm(input) {
196
+ const c = this.candidates.find((x) => x.candidateId === input.candidateId);
197
+ if (!c)
198
+ return null;
199
+ c.status = "confirmed";
200
+ if (input.reason)
201
+ c.reviewReason = input.reason;
202
+ // Re-sign with updated status
203
+ const { sig: _sig, ...body } = c;
204
+ c.sig = hmac(body, this.secret);
205
+ this.persist();
206
+ return c;
207
+ }
208
+ refute(input) {
209
+ const c = this.candidates.find((x) => x.candidateId === input.candidateId);
210
+ if (!c)
211
+ return null;
212
+ c.status = "refuted";
213
+ c.reviewReason = input.reason;
214
+ const { sig: _sig, ...body } = c;
215
+ c.sig = hmac(body, this.secret);
216
+ this.persist();
217
+ return c;
218
+ }
219
+ /** Expire any pending candidates past their TTL. */
220
+ sweepExpired(nowMs) {
221
+ const now = nowMs ?? Date.now();
222
+ let n = 0;
223
+ for (const c of this.candidates) {
224
+ if (c.status === "pending_review" && Date.parse(c.expiresAt) <= now) {
225
+ c.status = "expired";
226
+ const { sig: _sig, ...body } = c;
227
+ c.sig = hmac(body, this.secret);
228
+ n++;
229
+ }
230
+ }
231
+ if (n > 0)
232
+ this.persist();
233
+ return n;
234
+ }
235
+ pendingReview() {
236
+ return this.candidates.filter((c) => c.status === "pending_review").slice();
237
+ }
238
+ all() { return this.candidates.slice(); }
239
+ verify(c) {
240
+ const { sig, ...body } = c;
241
+ return safeEqHex(hmac(body, this.secret), sig);
242
+ }
243
+ summary() {
244
+ return {
245
+ total: this.candidates.length,
246
+ pending: this.candidates.filter((c) => c.status === "pending_review").length,
247
+ confirmed: this.candidates.filter((c) => c.status === "confirmed").length,
248
+ refuted: this.candidates.filter((c) => c.status === "refuted").length,
249
+ expired: this.candidates.filter((c) => c.status === "expired").length,
250
+ };
251
+ }
252
+ persist() {
253
+ try {
254
+ mkdirSync(dirname(this.storePath), { recursive: true });
255
+ const text = this.candidates.map((c) => JSON.stringify(c)).join("\n") + "\n";
256
+ writeFileSync(this.storePath, text, "utf8");
257
+ }
258
+ catch { /* best-effort */ }
259
+ }
260
+ }
261
+ export function formatDreamLine(c) {
262
+ const icon = c.status === "confirmed" ? "✅" : c.status === "refuted" ? "🟥" : c.status === "expired" ? "⏰" : "💤";
263
+ return `${icon} DREAM · ${c.candidateId} · novelty=${c.novelty} overlap=${c.parentOverlap} · ${c.body.slice(0, 60)}`;
264
+ }
265
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dream_consolidation/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=genetic_patch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genetic_patch.test.d.ts","sourceRoot":"","sources":["../../src/genetic_patch/genetic_patch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { proposePatch, verifyProposal, defaultAudit, formatProposalLine } from "./index.js";
3
+ describe("v2.19.7 · GENETIC PATCH — self-modifying child proposals", () => {
4
+ it("proposePatch produces signed proposal + PR body + branch name", () => {
5
+ const p = proposePatch({
6
+ kind: "new_intent_phrase",
7
+ targetPath: "packages/core/src/intent_router/index.ts",
8
+ summary: "add intent phrase 'rotate keys'",
9
+ changeInstructions: "Append a new Phrase to BUILTIN_PHRASES with canonical='rotate keys' + plan that calls mneme.aegis.rotate.",
10
+ evidence: "Industry-standard key rotation cadence is 90 days. 5 customers asked. Benchmark: saves 3 minutes per rotation. First-of-its-kind for AI tooling.",
11
+ });
12
+ expect(p.sig).toMatch(/^[0-9a-f]{64}$/);
13
+ expect(p.proposalId).toMatch(/^gp-[0-9a-f]{14}$/);
14
+ expect(p.branchName).toContain("mneme/auto-new-intent-phrase-");
15
+ expect(p.prTitle).toContain("chore(genetic):");
16
+ expect(p.prBody).toContain("AURELIAN audit");
17
+ expect(verifyProposal(p)).toBe(true);
18
+ });
19
+ it("audit verdict SHIP when all 4 axes >= 80", () => {
20
+ const p = proposePatch({
21
+ kind: "new_conversation_pattern",
22
+ targetPath: "packages/core/src/conversation_compiler/index.ts",
23
+ summary: "add must_use_https rule",
24
+ changeInstructions: "Append a new ExtractionRule for HTTPS-only.",
25
+ evidence: "Industry-standard HTTPS requirement; first AI tool to recognise it as agreement pattern; SOTA benchmark on 100% catch rate; beats markdown ADR by composes orthogonal removable. No AI vendor ships this. First-of-its-kind never-before-seen pattern. Numbers: 100% catch on bench (50 tests), 3ms latency, 2x precision.",
26
+ risks: "False positive on legacy HTTP-only code; composes onto existing pattern registry; orthogonal addition; removable cleanly via splice from RULES[]; root cause addressed via additive registry extension.",
27
+ });
28
+ expect(p.audit.verdict).toBe("SHIP");
29
+ expect(p.shouldAdvance).toBe(true);
30
+ });
31
+ it("audit verdict REJECT when evidence is thin", () => {
32
+ const p = proposePatch({
33
+ kind: "tune_threshold",
34
+ targetPath: "x.ts",
35
+ summary: "tune",
36
+ changeInstructions: "...",
37
+ evidence: "felt like it",
38
+ });
39
+ expect(p.audit.verdict).not.toBe("SHIP");
40
+ });
41
+ it("verifyProposal detects tampering", () => {
42
+ const p = proposePatch({
43
+ kind: "other", targetPath: "x.ts", summary: "x", changeInstructions: "y", evidence: "z",
44
+ });
45
+ const tampered = { ...p, summary: "MALICIOUS REWRITE" };
46
+ expect(verifyProposal(tampered)).toBe(false);
47
+ });
48
+ it("caller can override audit (BYO-audit)", () => {
49
+ const p = proposePatch({
50
+ kind: "other", targetPath: "x.ts", summary: "x", changeInstructions: "y", evidence: "z",
51
+ audit: { delta: 99, worldClass: 99, wisdom: 99, wildness: 99, verdict: "SHIP", reasons: ["overridden"] },
52
+ });
53
+ expect(p.audit.verdict).toBe("SHIP");
54
+ expect(p.shouldAdvance).toBe(true);
55
+ });
56
+ it("defaultAudit picks up metric tokens + comparison + novelty words", () => {
57
+ const audit = defaultAudit({
58
+ kind: "other", targetPath: "x", summary: "x",
59
+ changeInstructions: "x",
60
+ evidence: "Industry-standard benchmark proves 90% F1 vs prior; first-of-its-kind composes orthogonally; root cause addressed; additive only.",
61
+ });
62
+ expect(audit.delta).toBeGreaterThanOrEqual(60);
63
+ expect(audit.worldClass).toBeGreaterThanOrEqual(60);
64
+ expect(audit.wildness).toBeGreaterThanOrEqual(60);
65
+ expect(audit.wisdom).toBeGreaterThanOrEqual(60);
66
+ });
67
+ it("formatProposalLine summarises with verdict icon", () => {
68
+ const p = proposePatch({
69
+ kind: "other", targetPath: "x", summary: "x", changeInstructions: "y", evidence: "z",
70
+ });
71
+ expect(formatProposalLine(p)).toContain("GENETIC");
72
+ expect(formatProposalLine(p)).toContain(p.audit.verdict);
73
+ });
74
+ });
75
+ //# sourceMappingURL=genetic_patch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genetic_patch.test.js","sourceRoot":"","sources":["../../src/genetic_patch/genetic_patch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5F,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACxE,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,GAAG,YAAY,CAAC;YACrB,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,0CAA0C;YACtD,OAAO,EAAE,iCAAiC;YAC1C,kBAAkB,EAAE,2GAA2G;YAC/H,QAAQ,EAAE,kJAAkJ;SAC7J,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAChE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,YAAY,CAAC;YACrB,IAAI,EAAE,0BAA0B;YAChC,UAAU,EAAE,kDAAkD;YAC9D,OAAO,EAAE,yBAAyB;YAClC,kBAAkB,EAAE,6CAA6C;YACjE,QAAQ,EAAE,4TAA4T;YACtU,KAAK,EAAE,yMAAyM;SACjN,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,YAAY,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,MAAM;YACf,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,YAAY,CAAC;YACrB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;SACxF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;QACxD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,YAAY,CAAC;YACrB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;YACvF,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE;SACzG,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,KAAK,GAAG,YAAY,CAAC;YACzB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;YAC5C,kBAAkB,EAAE,GAAG;YACvB,QAAQ,EAAE,mIAAmI;SAC9I,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,YAAY,CAAC;YACrB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;SACrF,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * v2.19.7 — MNEME GENETIC PATCH (self-modifying child)
3
+ *
4
+ * "Mneme proposes changes to itself: a new conversation_compiler
5
+ * pattern, a tuned threshold in INVERSE FORENSICS, a new intent
6
+ * phrase, a new ritual gate. Each proposal carries: a target file +
7
+ * a JSON patch + a justification + an AURELIAN-style self-score.
8
+ * The harness verifies the patch SHIPs per AURELIAN (delta + worldClass
9
+ * + wisdom + wildness ≥ 80 each); only SHIP-graded patches advance
10
+ * to a real git branch + auto-PR.
11
+ *
12
+ * Composes onto v2.7 EVOLVE (proposal generation) + v2.13 AURELIAN
13
+ * AUDITOR (verdict gate) + v2.19.1 REINCARNATION RITUAL (publish
14
+ * block). The loop CLOSES — proposal → audit → branch → PR → human
15
+ * review optional."
16
+ *
17
+ * Honest scope:
18
+ * - GENETIC PATCH produces PROPOSALS + verdicts. It does NOT modify
19
+ * files on disk (caller decides). It does NOT push to git (caller
20
+ * decides). It does NOT auto-merge (caller decides). It is the
21
+ * proposal + grading engine, fail-closed by default.
22
+ * - AURELIAN delegate: callers pass their own audit function so the
23
+ * gate stays vendor-agnostic; we default to a simple rubric for
24
+ * tests.
25
+ * - Every proposal is HMAC-signed (proposal + score together) so
26
+ * downstream automation can prove the rated state.
27
+ *
28
+ * Pure orchestrator. No external deps.
29
+ */
30
+ declare const PROTOCOL_VERSION: 1;
31
+ export type PatchKind = "new_conversation_pattern" | "tune_threshold" | "new_intent_phrase" | "new_ritual_gate" | "new_witness_template" | "other";
32
+ export interface ProposalInput {
33
+ kind: PatchKind;
34
+ /** Repo-relative file path the patch targets. */
35
+ targetPath: string;
36
+ /** What's being added/changed (human-readable). */
37
+ summary: string;
38
+ /** Specific change instructions for the AI agent to apply. */
39
+ changeInstructions: string;
40
+ /** Caller's evidence the change is useful (metrics, examples, etc.). */
41
+ evidence: string;
42
+ /** Optional risk note: what could go wrong. */
43
+ risks?: string;
44
+ proposedAt?: string;
45
+ proposedBy?: string;
46
+ }
47
+ export interface ProposalAudit {
48
+ delta: number;
49
+ worldClass: number;
50
+ wisdom: number;
51
+ wildness: number;
52
+ verdict: "SHIP" | "LOOP_BACK" | "REJECT";
53
+ reasons: string[];
54
+ }
55
+ export interface GeneticProposal {
56
+ v: typeof PROTOCOL_VERSION;
57
+ proposalId: string;
58
+ kind: PatchKind;
59
+ targetPath: string;
60
+ summary: string;
61
+ changeInstructions: string;
62
+ evidence: string;
63
+ risks: string;
64
+ proposedAt: string;
65
+ proposedBy: string;
66
+ audit: ProposalAudit;
67
+ /** Suggested git branch name + PR title. */
68
+ branchName: string;
69
+ prTitle: string;
70
+ prBody: string;
71
+ /** Whether the harness should advance (audit SHIP + ritual hint). */
72
+ shouldAdvance: boolean;
73
+ sig: string;
74
+ }
75
+ /**
76
+ * Simple default rubric. Caller may supply a stronger AURELIAN function.
77
+ * Heuristics:
78
+ * delta: evidence length + presence of metrics (digits with units)
79
+ * worldClass: presence of "industry|standard|first|benchmark|sota" words
80
+ * wisdom: presence of "compose|orthogonal|removable|root cause|additive"
81
+ * wildness: presence of "first|no AI vendor|never|nobody|no one|never-before"
82
+ */
83
+ export declare function defaultAudit(input: ProposalInput): ProposalAudit;
84
+ export declare function proposePatch(input: ProposalInput & {
85
+ audit?: ProposalAudit;
86
+ secret?: string;
87
+ }): GeneticProposal;
88
+ export declare function verifyProposal(p: GeneticProposal, secret?: string): boolean;
89
+ export declare function formatProposalLine(p: GeneticProposal): string;
90
+ export {};
91
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/genetic_patch/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAEpC,MAAM,MAAM,SAAS,GACjB,0BAA0B,GAC1B,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,sBAAsB,GACtB,OAAO,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAkBD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAqChE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG;IAClD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,eAAe,CAwDlB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAG3E;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * v2.19.7 — MNEME GENETIC PATCH (self-modifying child)
3
+ *
4
+ * "Mneme proposes changes to itself: a new conversation_compiler
5
+ * pattern, a tuned threshold in INVERSE FORENSICS, a new intent
6
+ * phrase, a new ritual gate. Each proposal carries: a target file +
7
+ * a JSON patch + a justification + an AURELIAN-style self-score.
8
+ * The harness verifies the patch SHIPs per AURELIAN (delta + worldClass
9
+ * + wisdom + wildness ≥ 80 each); only SHIP-graded patches advance
10
+ * to a real git branch + auto-PR.
11
+ *
12
+ * Composes onto v2.7 EVOLVE (proposal generation) + v2.13 AURELIAN
13
+ * AUDITOR (verdict gate) + v2.19.1 REINCARNATION RITUAL (publish
14
+ * block). The loop CLOSES — proposal → audit → branch → PR → human
15
+ * review optional."
16
+ *
17
+ * Honest scope:
18
+ * - GENETIC PATCH produces PROPOSALS + verdicts. It does NOT modify
19
+ * files on disk (caller decides). It does NOT push to git (caller
20
+ * decides). It does NOT auto-merge (caller decides). It is the
21
+ * proposal + grading engine, fail-closed by default.
22
+ * - AURELIAN delegate: callers pass their own audit function so the
23
+ * gate stays vendor-agnostic; we default to a simple rubric for
24
+ * tests.
25
+ * - Every proposal is HMAC-signed (proposal + score together) so
26
+ * downstream automation can prove the rated state.
27
+ *
28
+ * Pure orchestrator. No external deps.
29
+ */
30
+ import { createHmac, timingSafeEqual } from "node:crypto";
31
+ const PROTOCOL_VERSION = 1;
32
+ function canon(v) {
33
+ if (v === null || typeof v !== "object")
34
+ return JSON.stringify(v);
35
+ if (Array.isArray(v))
36
+ return "[" + v.map(canon).join(",") + "]";
37
+ const keys = Object.keys(v).sort();
38
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
39
+ }
40
+ function defaultSecret() {
41
+ return process.env["MNEME_GENETIC_SECRET"] || `mneme-genetic-patch-v${PROTOCOL_VERSION}`;
42
+ }
43
+ function hmac(body, secret) {
44
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
45
+ }
46
+ function safeEqHex(a, b) {
47
+ try {
48
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
54
+ /**
55
+ * Simple default rubric. Caller may supply a stronger AURELIAN function.
56
+ * Heuristics:
57
+ * delta: evidence length + presence of metrics (digits with units)
58
+ * worldClass: presence of "industry|standard|first|benchmark|sota" words
59
+ * wisdom: presence of "compose|orthogonal|removable|root cause|additive"
60
+ * wildness: presence of "first|no AI vendor|never|nobody|no one|never-before"
61
+ */
62
+ export function defaultAudit(input) {
63
+ const reasons = [];
64
+ // Include risks in scoring — structural-fit signals often live there.
65
+ const evidence = (input.evidence + " " + input.summary + " " + (input.risks ?? "")).toLowerCase();
66
+ let delta = 50;
67
+ const numHits = (evidence.match(/\d+(?:\.\d+)?\s*(x|×|%|ms|sec|bp|tests)/gi) || []).length;
68
+ delta += Math.min(40, numHits * 8);
69
+ if (input.evidence.length > 80)
70
+ delta += 5;
71
+ reasons.push(`delta: ${numHits} metric tokens + ${input.evidence.length} chars of evidence`);
72
+ let worldClass = 50;
73
+ const worldClassHits = (evidence.match(/\b(industry|standard|rfc|sota|benchmark|state[\s-]of[\s-]the[\s-]art)\b/g) || []).length;
74
+ worldClass += Math.min(25, worldClassHits * 8);
75
+ if (/\b(beats|outperforms|vs|exceeds|defeats)\b/.test(evidence))
76
+ worldClass += 10;
77
+ reasons.push(`worldClass: ${worldClassHits} keyword hits + comparison signal`);
78
+ let wisdom = 50;
79
+ const wisdomHits = [/compose/, /orthogonal/, /removable/, /root\s*cause/, /additive/, /invariant/]
80
+ .filter((re) => re.test(evidence)).length;
81
+ wisdom += wisdomHits * 8;
82
+ if (input.risks && input.risks.length > 20)
83
+ wisdom += 5;
84
+ reasons.push(`wisdom: ${wisdomHits} structural-fit signals`);
85
+ let wildness = 50;
86
+ const wildHits = [/\bfirst\b/, /\bno\s+ai\s+vendor\b/, /\bnobody\b/, /\bnever-?before\b/, /\bno\s+one\b/]
87
+ .filter((re) => re.test(evidence)).length;
88
+ wildness += wildHits * 10;
89
+ reasons.push(`wildness: ${wildHits} novelty signals`);
90
+ const clamp = (x) => Math.max(0, Math.min(100, Math.round(x)));
91
+ delta = clamp(delta);
92
+ worldClass = clamp(worldClass);
93
+ wisdom = clamp(wisdom);
94
+ wildness = clamp(wildness);
95
+ const min = Math.min(delta, worldClass, wisdom, wildness);
96
+ const verdict = min >= 80 ? "SHIP" : min >= 60 ? "LOOP_BACK" : "REJECT";
97
+ return { delta, worldClass, wisdom, wildness, verdict, reasons };
98
+ }
99
+ export function proposePatch(input) {
100
+ const proposedAt = input.proposedAt ?? new Date().toISOString();
101
+ const proposedBy = input.proposedBy ?? "mneme-genetic-patch";
102
+ const audit = input.audit ?? defaultAudit(input);
103
+ const slug = input.summary.toLowerCase()
104
+ .replace(/[^a-z0-9]+/g, "-")
105
+ .replace(/(^-|-$)/g, "")
106
+ .slice(0, 40);
107
+ const proposalId = "gp-" + createHmac("sha256", "mneme-genetic-id")
108
+ .update(`${proposedAt}|${input.kind}|${slug}`)
109
+ .digest("hex").slice(0, 14);
110
+ const branchName = `mneme/auto-${input.kind.replace(/_/g, "-")}-${slug || proposalId.slice(3, 10)}`;
111
+ const prTitle = `chore(genetic): ${input.summary.slice(0, 70)}`;
112
+ const prBody = [
113
+ `**Auto-proposed by Mneme genetic patch engine.**`,
114
+ ``,
115
+ `### Kind`,
116
+ `\`${input.kind}\` · targets \`${input.targetPath}\``,
117
+ ``,
118
+ `### Summary`,
119
+ input.summary,
120
+ ``,
121
+ `### Change instructions (for the reviewing AI agent)`,
122
+ input.changeInstructions,
123
+ ``,
124
+ `### Evidence`,
125
+ input.evidence,
126
+ ``,
127
+ `### Risks`,
128
+ input.risks ?? "(none stated)",
129
+ ``,
130
+ `### AURELIAN audit`,
131
+ `delta=${audit.delta} · worldClass=${audit.worldClass} · wisdom=${audit.wisdom} · wildness=${audit.wildness} → **${audit.verdict}**`,
132
+ ``,
133
+ audit.reasons.map((r) => `- ${r}`).join("\n"),
134
+ ].join("\n");
135
+ const body = {
136
+ v: PROTOCOL_VERSION,
137
+ proposalId,
138
+ kind: input.kind,
139
+ targetPath: input.targetPath,
140
+ summary: input.summary,
141
+ changeInstructions: input.changeInstructions,
142
+ evidence: input.evidence,
143
+ risks: input.risks ?? "",
144
+ proposedAt,
145
+ proposedBy,
146
+ audit,
147
+ branchName,
148
+ prTitle,
149
+ prBody,
150
+ shouldAdvance: audit.verdict === "SHIP",
151
+ };
152
+ const sig = hmac(body, input.secret ?? defaultSecret());
153
+ return { ...body, sig };
154
+ }
155
+ export function verifyProposal(p, secret) {
156
+ const { sig, ...body } = p;
157
+ return safeEqHex(hmac(body, secret ?? defaultSecret()), sig);
158
+ }
159
+ export function formatProposalLine(p) {
160
+ const icon = p.audit.verdict === "SHIP" ? "🧬✅" : p.audit.verdict === "LOOP_BACK" ? "🧬🟧" : "🧬🟥";
161
+ return `${icon} GENETIC · ${p.kind} · ${p.audit.verdict} · ${p.summary.slice(0, 60)}`;
162
+ }
163
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/genetic_patch/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=honey_decision.test.d.ts.map