@mneme-ai/core 3.89.0 → 3.91.0

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.
@@ -1,115 +1,211 @@
1
1
  /**
2
- * ARCHITECTURAL REGRESSION FIREWALL — the gatekeeper for AI-generated change.
2
+ * ARCHITECTURAL REGRESSION FIREWALL — the gate for AI-generated change.
3
3
  *
4
4
  * The thesis: when producing code costs nothing, the expensive thing is PROVING that the code an AI just
5
5
  * generated didn't silently break an architectural contract the system has stood on for years. Everyone
6
- * ships a code GENERATOR (Copilot, Cursor); nobody ships the GATE that remembers what contracts hold and
7
- * blocks the moment an AI is about to violate one. This is that gate.
6
+ * ships a code GENERATOR; nobody ships the GATE that remembers what contracts hold and blocks the moment
7
+ * one is about to be violated. This is that gate.
8
8
  *
9
9
  * It composes three Mneme primitives that already exist into one verdict:
10
10
  * • mineInvariants / analyzeRegressions — the contracts the repo upheld at a baseline, and which are
11
11
  * now VIOLATED (with the offending counterexample, pointing at the real symbol).
12
- * • arch_lineage — how long each contract has stood (its load-bearing strength).
13
- * • a POLICY layer (this module) — architect-DECLARED rules + severities, and severity-by-age, fused
14
- * into PASS / WARN / BLOCK with an enforcement-ready exit.
12
+ * • arch_lineage — how long each contract has stood (its load-bearing strength) + whether it flickered.
13
+ * • a POLICY layer (this module) — a severity ladder weighted by contract age, architect-DECLARED rules
14
+ * + overrides, and time-boxed WAIVERS, fused into PASS / WARN / BLOCK with an enforcement-ready exit.
15
15
  *
16
- * The verdict an AI agent or a CI gate reads: breaking a contract that has held for two years is a crime
17
- * (BLOCK); breaking one that is three days old is normal evolution (INFO). The age does the weighting.
16
+ * Severity model (5-rung ladder info<low<medium<high<critical):
17
+ * final = base(kind/override) + age-tier bump − (UNKNOWN ? 1 : 0)
18
+ * • base — a single-writer/private/guarded contract starts at `high`, an existence contract at `medium`;
19
+ * an architect can pin any rule's base via the policy.
20
+ * • age bump — breaking a contract that has stood for years escalates it (e.g. +2 ≥730d, +1 ≥180d); a
21
+ * contract that FLICKERED (held, broke, re-held) is less load-bearing, so its bump is capped at +1.
22
+ * • UNKNOWN penalty — a contract that became UNKNOWN (its table moved/renamed) is a weaker signal, −1.
23
+ * A WAIVER (rule + reason + optional `until` date) suppresses blocking — the architect's "ratified, I
24
+ * know" — but an EXPIRED waiver is NOT honoured and is surfaced loudly. blockOn (default `critical`) is
25
+ * the threshold a non-waived finding must reach to BLOCK.
18
26
  *
19
- * ★HONEST (DIAKRISIS): every violation here is a contract PROVEN to hold at the baseline and PROVEN
20
- * VIOLATED now (re-checkable, with the counterexample) — not a guess. Age is measured from git, not
21
- * predicted. A BLOCK is a strong signal a human/agent should heed, but a violation can still be an
22
- * intended evolution which is exactly why an architect can DECLARE a rule's severity (or ratify the
23
- * change by moving the baseline). The firewall decides + surfaces; it does not pretend the change is
24
- * malicious.
27
+ * ★HONEST (DIAKRISIS): every finding is a contract PROVEN to hold at the baseline and PROVEN VIOLATED /
28
+ * WEAKENED now (re-checkable, with the counterexample) — not a guess; age is measured from git, not
29
+ * predicted; the severity math is shown in `rationale` so the verdict is auditable, not magic. A BLOCK is
30
+ * a strong signal but a violation can still be an intended evolution which is exactly why the policy
31
+ * has overrides and time-boxed waivers, and why the baseline can be moved to ratify a change.
25
32
  */
26
33
  import { analyzeRegressions } from "../arch_regressions/index.js";
27
34
  import { checkInvariants, parseInvariants } from "../invariants/index.js";
28
- const SEV_RANK = { critical: 3, warn: 2, info: 1 };
29
- /**
30
- * Parse a policy file. Each non-comment line is `[critical|warn|info] <invariant-rule>`; the severity
31
- * prefix is optional (defaults to `warn`). e.g. `critical table wallet single-writer`.
32
- */
35
+ const LADDER = ["info", "low", "medium", "high", "critical"];
36
+ const ord = (s) => { const i = LADDER.indexOf(s); return i < 0 ? 2 : i; };
37
+ const fromOrd = (n) => LADDER[Math.max(0, Math.min(LADDER.length - 1, n))];
38
+ const atLeast = (a, b) => ord(a) >= ord(b);
39
+ const norm = (s) => String(s ?? "").toLowerCase().replace(/\s+/g, " ").trim();
40
+ /** Default base severity by invariant kind (an architect can override per rule in the policy). */
41
+ const BUILTIN_BASE = { "single-writer": "high", "private": "high", "guarded": "high", "exists": "medium" };
42
+ export const DEFAULT_POLICY = {
43
+ name: "default", defaults: {}, enforce: [], declared: [], waivers: [], ageWeight: true,
44
+ ageTiers: [{ minDays: 730, bump: 2 }, { minDays: 180, bump: 1 }, { minDays: 14, bump: 0 }], blockOn: "critical",
45
+ };
46
+ /** Parse the line-DSL policy. Directives: `blockon <sev>`, `default <kind> <sev>`, `agetier <days> <bump>`,
47
+ * `waive [until=YYYY-MM-DD] <rule> :: <reason>`. Rule lines: `[<sev>] <invariant-rule>`. `#` comments. */
33
48
  export function parsePolicy(text) {
34
- const out = [];
49
+ const p = { ...DEFAULT_POLICY, defaults: {}, enforce: [], declared: [], waivers: [], ageTiers: [...DEFAULT_POLICY.ageTiers] };
50
+ let nameSet = false;
35
51
  for (const line0 of String(text ?? "").split("\n")) {
36
52
  const line = line0.replace(/#.*$/, "").trim();
37
53
  if (!line)
38
54
  continue;
39
- const m = /^(critical|warn|info)\s+(.*)$/i.exec(line);
40
- const severity = (m ? m[1].toLowerCase() : "warn");
41
- const rule = (m ? m[2] : line).trim();
42
- if (rule)
43
- out.push({ rule, severity, raw: line });
55
+ const lc = line.toLowerCase();
56
+ if (lc.startsWith("name ")) {
57
+ p.name = line.slice(5).trim();
58
+ nameSet = true;
59
+ continue;
60
+ }
61
+ if (lc.startsWith("blockon ")) {
62
+ const s = lc.slice(8).trim();
63
+ if (LADDER.includes(s))
64
+ p.blockOn = s;
65
+ continue;
66
+ }
67
+ if (lc.startsWith("default ")) {
68
+ const m = /^default\s+(\S+)\s+(info|low|medium|high|critical)\s*$/i.exec(line);
69
+ if (m)
70
+ p.defaults[m[1].toLowerCase()] = m[2].toLowerCase();
71
+ continue;
72
+ }
73
+ if (lc.startsWith("agetier ")) {
74
+ const m = /^agetier\s+(\d+)\s+\+?(\d+)\s*$/i.exec(line);
75
+ if (m)
76
+ p.ageTiers.push({ minDays: parseInt(m[1], 10), bump: parseInt(m[2], 10) });
77
+ continue;
78
+ }
79
+ if (lc.startsWith("waive ")) {
80
+ const rest = line.slice(6).trim();
81
+ const um = /until=(\d{4}-\d{2}-\d{2})\s+/i.exec(rest);
82
+ const after = um ? rest.slice(um.index + um[0].length) : rest;
83
+ const [rulePart, ...reasonParts] = after.split("::");
84
+ const rule = rulePart.trim();
85
+ const reason = reasonParts.join("::").trim() || "(no reason given)";
86
+ if (rule)
87
+ p.waivers.push({ rule, reason, ...(um ? { until: um[1] } : {}) });
88
+ continue;
89
+ }
90
+ const sm = /^(critical|high|medium|low|info)\s+(.*)$/i.exec(line);
91
+ if (sm) {
92
+ const rule = sm[2].trim();
93
+ p.enforce.push({ rule, severity: sm[1].toLowerCase() });
94
+ p.declared.push(rule);
95
+ }
96
+ else
97
+ p.declared.push(line);
98
+ }
99
+ // de-dupe agetiers (keep the user's; DEFAULT already seeded) — sort handled at scoring time.
100
+ if (!nameSet && !p.name)
101
+ p.name = "default";
102
+ return p;
103
+ }
104
+ /** Load a policy from JSON (full structured) or the line DSL, merged onto DEFAULT_POLICY. */
105
+ export function loadPolicy(raw) {
106
+ const t = String(raw ?? "").trim();
107
+ if (t.startsWith("{")) {
108
+ try {
109
+ const j = JSON.parse(t);
110
+ return { ...DEFAULT_POLICY, ...j, defaults: { ...j.defaults }, enforce: [...(j.enforce ?? [])], declared: [...(j.declared ?? [])], waivers: [...(j.waivers ?? [])], ageTiers: [...(j.ageTiers ?? DEFAULT_POLICY.ageTiers)] };
111
+ }
112
+ catch { /* fall through */ }
44
113
  }
45
- return out;
114
+ return parsePolicy(t);
46
115
  }
47
- /** Severity weighted by how long a contract has stood. Old contract broken = crime; young = evolution. */
48
- export function severityFromAge(ageDays) {
49
- if (ageDays == null)
50
- return "warn"; // unknown age → cautious default
51
- if (ageDays >= 365)
52
- return "critical"; // foundational — breaking it is high-risk
53
- if (ageDays >= 90)
54
- return "warn"; // established — flag loudly
55
- return "info"; // young — normal evolution
116
+ function baseSeverityFor(policy, rule, kind) {
117
+ const pin = (policy.enforce ?? []).find((e) => norm(e.rule) === norm(rule));
118
+ if (pin)
119
+ return pin.severity;
120
+ return policy.defaults?.[kind] ?? BUILTIN_BASE[kind] ?? "medium";
56
121
  }
57
- function declaredSeverity(policies, rule) {
58
- const norm = (s) => s.toLowerCase().replace(/\s+/g, " ").trim();
59
- const hit = (policies ?? []).find((p) => norm(p.rule) === norm(rule));
60
- return hit ? hit.severity : null;
122
+ /** final = base + age-tier bump − UNKNOWN penalty, with a flicker cap and a transparent rationale. */
123
+ export function scoreSeverity(s) {
124
+ let bump = 0, tier = null;
125
+ if (s.ageWeight && s.ageDays != null) {
126
+ for (const t of [...(s.ageTiers ?? [])].sort((a, b) => b.minDays - a.minDays))
127
+ if (s.ageDays >= t.minDays) {
128
+ bump = t.bump;
129
+ tier = t.minDays;
130
+ break;
131
+ }
132
+ if (s.flickered)
133
+ bump = Math.min(bump, 1);
134
+ }
135
+ const penalty = s.status === "UNKNOWN" ? 1 : 0;
136
+ const final = fromOrd(ord(s.base) + bump - penalty);
137
+ const why = [`base=${s.base}`];
138
+ if (bump)
139
+ why.push(`age≥${tier}d ⇒ +${bump}${s.flickered ? " (flicker-capped)" : ""}`);
140
+ else if (s.ageWeight && s.ageDays != null)
141
+ why.push(`age=${s.ageDays}d ⇒ +0`);
142
+ if (penalty)
143
+ why.push("UNKNOWN ⇒ −1");
144
+ return { final, rationale: `${why.join(", ")} ⇒ ${final}` };
61
145
  }
62
- /**
63
- * Run the firewall: which baseline contracts (and which architect-declared policies) does the current
64
- * code violate, weighted into PASS / WARN / BLOCK. `ageResolver` (optional, git-backed in the caller)
65
- * supplies how long each violated contract has stood; in tests pass a stub.
66
- */
67
- export function firewall(baselineFiles, currentFiles, opts) {
68
- const policies = opts?.policies ?? [];
69
- const violations = [];
146
+ export function firewall(baselineFiles, currentFiles, policy = DEFAULT_POLICY, opts) {
147
+ const pol = policy ?? DEFAULT_POLICY;
148
+ const a = analyzeRegressions(baselineFiles, currentFiles);
149
+ const findings = [];
70
150
  const seen = new Set();
71
- // 1. mined-baseline regressions contracts the repo upheld at baseline, now violated.
72
- const reg = analyzeRegressions(baselineFiles, currentFiles);
73
- for (const r of reg.regressed) {
151
+ const mk = (r, source) => {
152
+ const base = baseSeverityFor(pol, r.rule, r.kind);
74
153
  const age = opts?.ageResolver ? opts.ageResolver(r.rule) : null;
75
- const severity = declaredSeverity(policies, r.rule) ?? severityFromAge(age?.ageDays ?? null);
76
- violations.push({ rule: r.rule, severity, reason: r.reason, counterexample: r.counterexample, source: "mined", ageDays: age?.ageDays ?? null, establishedAt: age?.establishedAt, heldThroughCommits: age?.heldThroughCommits });
77
- seen.add(r.rule.toLowerCase().replace(/\s+/g, " ").trim());
78
- }
79
- // 2. architect-DECLARED policies the current code does not satisfy (even if never mined as a contract).
80
- if (policies.length) {
81
- const parsed = parseInvariants(policies.map((p) => p.rule).join("\n"));
154
+ const { final, rationale } = scoreSeverity({ base, status: r.status, ageDays: age?.ageDays ?? null, flickered: age?.flickered ?? false, ageWeight: pol.ageWeight, ageTiers: pol.ageTiers });
155
+ const waiver = (pol.waivers ?? []).find((w) => norm(w.rule) === norm(r.rule));
156
+ const waiverExpired = !!(waiver?.until && opts?.today && waiver.until < opts.today);
157
+ const waived = !!waiver && !waiverExpired;
158
+ const blocking = !waived && atLeast(final, pol.blockOn);
159
+ findings.push({ rule: r.rule, kind: r.kind, status: r.status, reason: r.reason, counterexample: r.counterexample, source, baseSeverity: base, finalSeverity: final, rationale, ageDays: age?.ageDays ?? null, establishedAt: age?.establishedAt, heldThroughCommits: age?.heldThroughCommits, waived, waiverReason: waiver?.reason, waiverExpired, blocking });
160
+ seen.add(norm(r.rule));
161
+ };
162
+ for (const r of a.regressed)
163
+ mk({ rule: r.rule, kind: r.kind, status: "VIOLATED", reason: r.reason, counterexample: r.counterexample }, "mined");
164
+ for (const r of a.weakened)
165
+ mk({ rule: r.rule, kind: r.kind, status: "UNKNOWN", reason: r.reason, counterexample: r.counterexample }, "mined");
166
+ // architect-DECLARED rules the current code does not satisfy (even if never mined as a contract).
167
+ if (pol.declared?.length) {
168
+ const parsed = parseInvariants(pol.declared.join("\n"));
82
169
  const res = checkInvariants(currentFiles, parsed);
83
170
  for (const c of res.results) {
84
- if (c.status !== "VIOLATED")
171
+ if (c.status === "HOLDS" || seen.has(norm(c.invariant.raw)))
85
172
  continue;
86
- const key = c.invariant.raw.toLowerCase().replace(/\s+/g, " ").trim();
87
- if (seen.has(key))
88
- continue; // already reported as a regression
89
- const sev = declaredSeverity(policies, c.invariant.raw) ?? "warn";
90
- violations.push({ rule: c.invariant.raw, severity: sev, reason: c.reason, counterexample: c.counterexample, source: "declared" });
91
- seen.add(key);
173
+ mk({ rule: c.invariant.raw, kind: c.invariant.kind, status: c.status, reason: c.reason, counterexample: c.counterexample }, "declared");
92
174
  }
93
175
  }
94
- violations.sort((a, b) => SEV_RANK[b.severity] - SEV_RANK[a.severity] || a.rule.localeCompare(b.rule));
95
- const critical = violations.filter((v) => v.severity === "critical").length;
96
- const warn = violations.filter((v) => v.severity === "warn").length;
97
- const info = violations.filter((v) => v.severity === "info").length;
98
- const verdict = critical > 0 ? "BLOCK" : warn > 0 ? "WARN" : "PASS";
99
- return { verdict, violations, critical, warn, info, checkedContracts: reg.baselineContracts, declaredChecked: policies.length };
176
+ findings.sort((x, y) => ord(y.finalSeverity) - ord(x.finalSeverity) || (Number(y.blocking) - Number(x.blocking)) || x.rule.localeCompare(y.rule));
177
+ const blockedBy = findings.filter((f) => f.blocking);
178
+ const verdict = blockedBy.length ? "BLOCK" : findings.some((f) => !f.waived) ? "WARN" : "PASS";
179
+ return {
180
+ verdict, policyName: pol.name, baselineContracts: a.baselineContracts, findings,
181
+ blocked: blockedBy.length > 0, blockedBy, expiredWaivers: findings.filter((f) => f.waiverExpired), waivedCount: findings.filter((f) => f.waived).length,
182
+ clean: a.clean && !a.weakened.length && findings.length === 0,
183
+ critical: findings.filter((f) => f.finalSeverity === "critical").length, high: findings.filter((f) => f.finalSeverity === "high").length, blockOn: pol.blockOn,
184
+ };
100
185
  }
101
- /** A human/PR-comment rendering of the verdict, with the killer line per violation. */
186
+ const ICON = { critical: "⛔", high: "🔴", medium: "🟠", low: "🟡", info: "⚪" };
187
+ const agePhrase = (d) => d == null ? "age unknown" : d >= 365 ? `held ${(d / 365).toFixed(1)} years` : `held ${d} days`;
188
+ /** Plain-text verdict, ready for a terminal or a PR comment. */
102
189
  export function firewallReport(v) {
103
- const ic = (s) => s === "critical" ? "🔴" : s === "warn" ? "🟠" : "🔵";
104
190
  const head = v.verdict === "BLOCK" ? "🛑 ARCHITECTURAL FIREWALL — BLOCKED" : v.verdict === "WARN" ? "🟠 ARCHITECTURAL FIREWALL — WARN" : "✅ ARCHITECTURAL FIREWALL — PASS";
105
- const lines = [head, `${v.violations.length} violation(s) · ${v.critical} critical · ${v.warn} warn · ${v.info} info · ${v.checkedContracts} contract(s) checked`];
106
- for (const x of v.violations) {
107
- const age = x.ageDays != null ? ` (held ${x.ageDays}d${x.heldThroughCommits ? `, through ${x.heldThroughCommits} commits` : ""}${x.establishedAt ? `, set at ${x.establishedAt}` : ""})` : "";
108
- lines.push(`${ic(x.severity)} ${x.severity.toUpperCase()} violated invariant "${x.rule}"${age}`);
109
- if (x.counterexample)
110
- lines.push(` ↳ ${x.counterexample}`);
191
+ const o = [head, `policy "${v.policyName}" · ${v.baselineContracts} contracts checked · ${v.findings.length} finding(s) · ${v.blockedBy.length} blocking · ${v.waivedCount} waived (block threshold: ${v.blockOn})`, ""];
192
+ if (v.clean)
193
+ return [head, `policy "${v.policyName}" · ${v.baselineContracts} contracts checked`, "", "✅ no architectural regressions every baseline contract still holds."].join("\n");
194
+ for (const f of v.findings) {
195
+ const tag = f.waived ? " (WAIVED)" : f.waiverExpired ? " (WAIVER EXPIRED — not honoured)" : f.blocking ? " (BLOCKING)" : "";
196
+ o.push(`${ICON[f.finalSeverity]} [${f.finalSeverity.toUpperCase()}] ${f.rule}${tag}`);
197
+ o.push(` ${f.reason}`);
198
+ if (f.counterexample)
199
+ o.push(` ↳ ${f.counterexample}`);
200
+ o.push(` contract ${agePhrase(f.ageDays)}${f.heldThroughCommits ? `, through ${f.heldThroughCommits} commits` : ""}${f.establishedAt ? `, set at ${f.establishedAt}` : ""} · ${f.rationale}`);
201
+ if (f.waived)
202
+ o.push(` waived: ${f.waiverReason}`);
111
203
  }
112
- return lines.join("\n");
204
+ if (v.expiredWaivers.length)
205
+ o.push(`\n⚠ ${v.expiredWaivers.length} waiver(s) expired — review or renew.`);
206
+ o.push("");
207
+ o.push(v.blocked ? `❌ BLOCKED: ${v.blockedBy.length} finding(s) ≥ ${v.blockOn}. Merge refused (exit 2).` : v.verdict === "WARN" ? "🟠 WARN: regressions found but none reached the block threshold (exit 0)." : "✅ PASS (exit 0).");
208
+ return o.join("\n");
113
209
  }
114
210
  export function archFirewallGauntlet() {
115
211
  const baseline = [
@@ -117,39 +213,51 @@ export function archFirewallGauntlet() {
117
213
  { path: "a.ts", content: "export function charge(){ return prisma.wallet.create({data:{}}); }\nexport function readNote(){ return prisma.note.findMany(); }" },
118
214
  ];
119
215
  const broke = [...baseline, { path: "refund.ts", content: "export function refundHandler(){ return prisma.wallet.update({where:{}}); }" }];
120
- // (a) old contract broken with no policy severity from age → critical → BLOCK + counterexample names refundHandler.
121
- const oldAge = firewall(baseline, broke, { ageResolver: () => ({ ageDays: 426, establishedAt: "a1b2c3", heldThroughCommits: 312 }) });
122
- const blocksOld = oldAge.verdict === "BLOCK" && oldAge.critical === 1 && oldAge.violations[0].severity === "critical"
123
- && /refundHandler/.test(oldAge.violations[0].counterexample || "") && oldAge.violations[0].heldThroughCommits === 312;
124
- // (b) same break but YOUNG contract info not blocked (normal evolution).
125
- const youngAge = firewall(baseline, broke, { ageResolver: () => ({ ageDays: 3 }) });
126
- const youngIsEvolution = youngAge.verdict !== "BLOCK" && youngAge.violations[0].severity === "info";
127
- // (c) declared-critical policy forces BLOCK regardless of (here, young) age.
128
- const declared = firewall(baseline, broke, { policies: parsePolicy("critical table wallet single-writer"), ageResolver: () => ({ ageDays: 3 }) });
129
- const declaredWins = declared.verdict === "BLOCK" && declared.violations[0].severity === "critical";
130
- // (d) no regression PASS.
131
- const clean = firewall(baseline, baseline, { ageResolver: () => ({ ageDays: 999 }) });
132
- // (e) parsing + age mapping.
133
- const p = parsePolicy("# comment\ncritical table wallet single-writer\nwarn endpoint POST /x exists\ntable note private");
134
- const parseOK = p.length === 3 && p[0].severity === "critical" && p[1].severity === "warn" && p[2].severity === "warn";
135
- const ageOK = severityFromAge(400) === "critical" && severityFromAge(120) === "warn" && severityFromAge(5) === "info" && severityFromAge(null) === "warn";
216
+ const oldAge = () => ({ ageDays: 875, establishedAt: "a1b2c3", heldThroughCommits: 312 });
217
+ const youngAge = () => ({ ageDays: 3 });
218
+ // (a) old contract (base high +2 ≥730d ⇒ critical) BLOCK, names refundHandler, heldThrough kept.
219
+ const a = firewall(baseline, broke, DEFAULT_POLICY, { ageResolver: oldAge });
220
+ const blocksOld = a.verdict === "BLOCK" && a.findings[0].finalSeverity === "critical" && /refundHandler/.test(a.findings[0].counterexample || "") && a.findings[0].heldThroughCommits === 312;
221
+ // (b) young (base high +0 high; blockOn critical) WARN not BLOCK.
222
+ const b = firewall(baseline, broke, DEFAULT_POLICY, { ageResolver: youngAge });
223
+ const youngIsWarn = b.verdict === "WARN" && b.findings[0].finalSeverity === "high";
224
+ // (c) waiver suppresses the block.
225
+ const wpol = parsePolicy("waive table wallet single-writer :: dual-writer approved in RFC-42");
226
+ const c = firewall(baseline, broke, wpol, { ageResolver: oldAge, today: "2026-06-11" });
227
+ const waiverSuppresses = c.verdict !== "BLOCK" && c.findings[0].waived === true;
228
+ // (d) EXPIRED waiver is NOT honoured → block stands + flagged.
229
+ const epol = parsePolicy("waive until=2025-01-01 table wallet single-writer :: temporary");
230
+ const d = firewall(baseline, broke, epol, { ageResolver: oldAge, today: "2026-06-11" });
231
+ const expiredBlocks = d.verdict === "BLOCK" && d.findings[0].waiverExpired === true && d.expiredWaivers.length === 1;
232
+ // (e) clean → PASS.
233
+ const e = firewall(baseline, baseline, DEFAULT_POLICY, { ageResolver: oldAge });
234
+ // (f) severity math + policy parse.
235
+ const sc = scoreSeverity({ base: "high", status: "VIOLATED", ageDays: 800, flickered: false, ageWeight: true, ageTiers: DEFAULT_POLICY.ageTiers });
236
+ const flickNo = scoreSeverity({ base: "medium", status: "VIOLATED", ageDays: 800, flickered: false, ageWeight: true, ageTiers: DEFAULT_POLICY.ageTiers }); // medium +2 ⇒ critical
237
+ const flick = scoreSeverity({ base: "medium", status: "VIOLATED", ageDays: 800, flickered: true, ageWeight: true, ageTiers: DEFAULT_POLICY.ageTiers }); // flicker caps +2→+1 ⇒ high
238
+ const unk = scoreSeverity({ base: "high", status: "UNKNOWN", ageDays: 3, flickered: false, ageWeight: true, ageTiers: DEFAULT_POLICY.ageTiers });
239
+ const scoreOK = sc.final === "critical" && flickNo.final === "critical" && flick.final === "high" && unk.final === "medium";
240
+ const pp = parsePolicy("# p\nname payments\nblockon high\ndefault single-writer critical\ncritical table x single-writer\nwaive until=2030-01-01 table y private :: ok");
241
+ const parseOK = pp.name === "payments" && pp.blockOn === "high" && pp.defaults["single-writer"] === "critical" && pp.enforce.length === 1 && pp.waivers[0]?.until === "2030-01-01";
136
242
  const total = (() => { try {
137
243
  firewall(null, null);
138
244
  parsePolicy(null);
139
- severityFromAge(undefined);
140
- firewallReport({ verdict: "PASS", violations: [], critical: 0, warn: 0, info: 0, checkedContracts: 0, declaredChecked: 0 });
245
+ loadPolicy("{bad json");
246
+ scoreSeverity({ base: "info", status: "VIOLATED", ageDays: null, ageWeight: true, ageTiers: [] });
247
+ firewallReport(firewall([], []));
141
248
  return true;
142
249
  }
143
250
  catch {
144
251
  return false;
145
252
  } })();
146
253
  const checks = [
147
- { name: "BLOCK-OLD-CONTRACT", pass: blocksOld, detail: "breaking a 426-day contract critical BLOCK; counterexample names the 2nd writer (refundHandler); heldThrough=312" },
148
- { name: "YOUNG-IS-EVOLUTION", pass: youngIsEvolution, detail: "breaking a 3-day contract info not blocked (normal evolution)" },
149
- { name: "DECLARED-OVERRIDES-AGE", pass: declaredWins, detail: "an architect-declared critical policy forces BLOCK regardless of age" },
150
- { name: "CLEAN-PASSES", pass: clean.verdict === "PASS" && !clean.violations.length, detail: "no regression PASS" },
151
- { name: "POLICY-PARSE+AGE", pass: parseOK && ageOK, detail: "policy DSL parses severity prefix (default warn); severity-by-age thresholds correct" },
152
- { name: "TOTAL", pass: total, detail: "null/garbage never throws" },
254
+ { name: "BLOCK-OLD(+2⇒critical)", pass: blocksOld, detail: "base high + age≥730d (+2) critical BLOCK; counterexample names the 2nd writer; heldThrough kept" },
255
+ { name: "YOUNG-IS-WARN", pass: youngIsWarn, detail: "base high + 3d (+0) high; below critical block threshold ⇒ WARN, not BLOCK" },
256
+ { name: "WAIVER-SUPPRESSES", pass: waiverSuppresses, detail: "an approved waiver suppresses the block" },
257
+ { name: "EXPIRED-WAIVER-FAILS-LOUD", pass: expiredBlocks, detail: "an expired waiver is NOT honoured block stands + surfaced" },
258
+ { name: "CLEAN-PASSES", pass: e.verdict === "PASS" && e.clean, detail: "no regression PASS" },
259
+ { name: "SEVERITY-MATH+PARSE", pass: scoreOK && parseOK, detail: "age bump / flicker cap / UNKNOWN penalty correct; DSL parses name/blockon/default/enforce/waiver+until" },
260
+ { name: "TOTAL", pass: total, detail: "null/garbage/bad-json never throws" },
153
261
  ];
154
262
  return { score: checks.every((c) => c.pass) ? 100 : 0, checks };
155
263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arch_firewall/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arch_firewall/index.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ export const DECISION_TABLE = [
44
44
  { when: "user asks 'how much has Mneme saved me?' / about cost", tool: "mneme.treasury.report · CLI: mneme savings --price-per-1k <usd>", why: "the measured, signed input-tokens (and USD at the user's price) saved — only counts content routed through Mneme" },
45
45
  { when: "user (or a CEO/owner) asks 'what has Mneme actually DONE for me / which agent / is it worth it' — or you just caught/blocked/gated/saved something", tool: "CLI: mneme proof · log one with: mneme proof record --agent <id> --kind <hallucination_caught|leak_blocked|injection_neutralized|command_gated|token_saved|confirmed|unknown_flagged>", why: "LIVE PROOF — a measured, per-agent scorecard of real assists (harms prevented + tokens saved), counted not claimed. Log an assist whenever an organ helps; show the scorecard to prove value per agent / per day" },
46
46
  { when: "user asks if a repo/dependency is safe to build on, how risky/clean a codebase is, or who the key person is", tool: "mneme.xray.scan { gitUrl | repoPath } · CLI: mneme xray", why: "a signed, deterministic repo audit (grade · secrets · bus-factor · coupling) + Context Air Quality + Keystone/Action-plan — no LLM guesses a number" },
47
- { when: "BEFORE you edit a function, rename/drop a DB table, or change an API route — to see what ELSE breaks across layers — OR the user asks to SEE/visualize the project", tool: "mneme.graph.blast { name } · mneme.graph.mermaid { name } · CLI: mneme graph blast/stats/mermaid/view <name>", why: "CROSS-LAYER GRAPH — now reads JS/TS · Python · Go · Rust · Ruby. Links 4 layers: 💼 BUSINESS (rules from PRD/markdown, prove-or-unknown anchoring) ↔ 🌐 API (endpoints from route files) ↔ ⚙ CODE (functions) ↔ 🗄 DATA (db tables from the Prisma/SQL schema). `blast` = the cross-layer blast radius (edit a function → which tables it writes + which endpoints reach it). `mermaid` = a flowchart string you render INLINE in the chat to SHOW the user. `view` = a self-contained offline interactive HTML — the 🛰 IMPACT RADAR (center=the change · sectors=layers · rings=blast hop-distance · animated sweep+pulse · click a node to re-center; no name = a project-overview GALAXY you click into; --style lanes for a tiered SVG), signed by fingerprint. `card` = a static PNG/SVG share card (1200×630). `pr` (mneme.graph.pr) = the cross-layer blast radius of a whole git diff/PR — which DB tables + API routes + business rules the change set touches (a GitHub Action posts it on every PR). `check` (mneme.graph.check) = BEFORE applying a multi-file edit, flag a DB table/route/rule the diff touches that the user did NOT mention → route to the human. `reverse` (mneme.graph.reverse) = DROP SAFETY: before removing a table/endpoint, everything that depends on it + SAFE/RISKY/CRITICAL. `health` (mneme.graph.health) = cross-layer KEYSTONES (sole-writer single-points-of-failure) + ORPHANS (dead code); SCOPE COVENANT (world-first): mneme.scope.verify {intent, allow, diff} → HONORED/BREACHED signed verdict that an autonomous edit stayed within the architectural scope it DECLARED (the unpromised file/table/endpoint it reached); mneme.scope.fidelity = each agent's cross-vendor scope-keeping track record (Wilson-LB). GRAPHQL BREAKING: mneme.graphql.breaking {base} → diff GraphQL SDL surface (Query/Mutation/Subscription); removed-op or retyped-return = BREAKING (clients break). API BREAKING-CHANGE: mneme.api.breaking {base} → which endpoints removed/added vs a base ref, + which REMOVED ones are still CONSUMED (BREAKING, names the consumer) vs POSSIBLY breaking; cross-repo break git cant see. MEASURED ACCURACY: mneme.accuracy.report → real precision/recall/F1 per extractor on a labeled corpus (proves accuracy, not claims it; deterministic≠accurate). PROVABLE CROSS-LAYER: mneme.graph.prove {kind:drop|reaches} → extracts facts from the graph + the logic engine PROVES unsafe_to_drop(table) with a proof chain to the cited blocker (or LIKELY_SAFE=no structural blocker), or proves an endpoint reaches a table; heuristic→PROOF. THE LOGIC ENGINE: mneme.logic.check {facts,rules,mutexes,goal} → is a reasoning chain SOUND (not are facts true): PROVEN+proof-tree / CONTRADICTED (premises entail mutually-exclusive pair) / UNKNOWN (does not follow, never false). For checking an AI agents own argument before acting. CROSS-SERVICE: mneme.services.graph → across MANY repos/services, which service calls whose endpoints (producer↔consumer) + DANGLING calls to an endpoint no service produces; org-scale blast radius git cant see. ARCHITECTURAL INVARIANTS: mneme.invariants.check {mine?:true} → MINE the invariants the repo already upholds (zero-config, proven-at-mine-time) OR prove declared rules; HOLDS/VIOLATED+counterexample. ARCH FIREWALL: mneme.arch.firewall {baseline} → the gate for AI-generated change: PASS/WARN/BLOCK on whether the current code violates a load-bearing contract (severity weighted by contract age; declared policies honoured). On BLOCK do NOT commit. DEAD-PATH DETECTOR: mneme.arch.dead_paths → architectural data-flow smells: write-only tables (written never read), read-only tables, functions reachable from no endpoint (dead-code candidates). CONTRACT MAP: mneme.arch.contract_map {since} → mine ALL contracts, rank by age=load-bearing (FOUNDATIONAL near-sacred → RECENT fragile); one repo-wide view of what to respect vs revise. INVARIANT LINEAGE: mneme.arch.lineage {invariant,since} → the AGE of a contract: the commit it was first established + held since (mirror of bisect); old=load-bearing near-sacred, young=fragile. ARCHITECTURAL REGRESSIONS: mneme.arch.regressions {since} → self-diagnosing capstone: mine contracts upheld at baseline, re-prove at HEAD, bisect each break to commit+author (read before touching a repo). CHANGE-COUPLING: mneme.arch.coupling {since} → HIDDEN dependencies the code conceals but git history reveals: files that change together with NO graph link (implicit deps) vs STRUCTURAL (graph explains). CROSS-LAYER HOTSPOTS: mneme.arch.hotspots {since} → ranked refactor targets = files that churn (git) AND are cross-layer entangled (graph); sharper than churn×complexity. ARCHITECTURAL DECAY: mneme.arch.decay {since,samples} → is the architecture getting MORE entangled over time (ERODING/STABLE/IMPROVING) + coupling velocity + worst-step commit; structural-debt time-series. ARCHITECTURAL BISECT: mneme.arch.bisect {invariant,since} → git-bisect for a contract: the exact commit+author where an architectural invariant first broke (replays graph across history). ARCHITECTURAL-INVARIANTS: mneme.invariants.check → prove team-declared rules (table single-writer/private/guarded · endpoint exists) → HOLDS/VIOLATED+counterexample, design-by-contract for architecture. ARCHITECTURE LOCK: mneme.arch.check → package-lock for accountability; CI gate fails on a REGRESSION vs the committed contract (removed endpoint=BREAKING, new authz gap=SECURITY); additions fine; re-lock=reviewed act. THE FRONT DOOR — mneme.review (CLI `mneme review` [--base ref]) → one Codebase Accountability Report: graph + risk hotspots + authz gaps + untested keystones (the whole cross-layer suite in one call). ONBOARDING PATH: mneme.onboard.path → orient in an unfamiliar repo fast — real data-flows (entry→handler→callees→tables+rules), sensitive first. RISK HOTSPOTS: mneme.risk.hotspots → the ONE ranked list of the riskiest cross-layer nodes (keystone × untested × sensitive × authz-gap, fused) — the single what-to-guard-first answer. BLAST-AWARE COMMIT MSG: mneme.commit.suggest → generate an honest commit message from the diff impact. INTENT-vs-IMPACT: mneme.commit.check {message,diff} → a trivial-sounding commit (chore / fix-typo) that secretly rewrites a keystone/touches unmentioned tables = MISMATCH (mislabel/scope-creep). CROSS-LAYER AUTHZ GAP: mneme.authz.scan → endpoints whose handler reaches a WRITE to a sensitive table (accounts/payments) with NO auth function on the path (security smell to review first, may be middleware). CRITICAL UNTESTED SURFACE: mneme.testgap.scan → keystones/tables/endpoints NO test mentions (line-coverage-hidden risk); pass a diff → does THIS change reach untested critical surface. CROSS-AGENT COLLISION (world-first): mneme.collision.detect {changeSets:[{agent,diff}]} → where 2 concurrent agents/branches CONVERGE on the same table/endpoint/function across DIFFERENT files (the conflict git is blind to) + severity HIGH/MEDIUM/LOW. `benchmark` = measured extractor precision/recall; `drift --base <ref>` = architectural drift (cross-layer couplings that appeared/disappeared since a commit). The hosted xray server also serves it: GET /api/radar?gitUrl=<public repo> renders the radar for ANY public repo with no install. Deterministic, no LLM — every node/edge derives from a real file (nothing hallucinated); business→code links are anchored only on an explicit annotation or a strong name match, else the rule stays ORPHAN/UNKNOWN (never a guessed link). ★HONEST: reachable COUPLING to inspect, not a proven runtime break; bodies region-approximated, not a full AST" },
47
+ { when: "BEFORE you edit a function, rename/drop a DB table, or change an API route — to see what ELSE breaks across layers — OR the user asks to SEE/visualize the project", tool: "mneme.graph.blast { name } · mneme.graph.mermaid { name } · CLI: mneme graph blast/stats/mermaid/view <name>", why: "CROSS-LAYER GRAPH — now reads JS/TS · Python · Go · Rust · Ruby. Links 4 layers: 💼 BUSINESS (rules from PRD/markdown, prove-or-unknown anchoring) ↔ 🌐 API (endpoints from route files) ↔ ⚙ CODE (functions) ↔ 🗄 DATA (db tables from the Prisma/SQL schema). `blast` = the cross-layer blast radius (edit a function → which tables it writes + which endpoints reach it). `mermaid` = a flowchart string you render INLINE in the chat to SHOW the user. `view` = a self-contained offline interactive HTML — the 🛰 IMPACT RADAR (center=the change · sectors=layers · rings=blast hop-distance · animated sweep+pulse · click a node to re-center; no name = a project-overview GALAXY you click into; --style lanes for a tiered SVG), signed by fingerprint. `card` = a static PNG/SVG share card (1200×630). `pr` (mneme.graph.pr) = the cross-layer blast radius of a whole git diff/PR — which DB tables + API routes + business rules the change set touches (a GitHub Action posts it on every PR). `check` (mneme.graph.check) = BEFORE applying a multi-file edit, flag a DB table/route/rule the diff touches that the user did NOT mention → route to the human. `reverse` (mneme.graph.reverse) = DROP SAFETY: before removing a table/endpoint, everything that depends on it + SAFE/RISKY/CRITICAL. `health` (mneme.graph.health) = cross-layer KEYSTONES (sole-writer single-points-of-failure) + ORPHANS (dead code); SCOPE COVENANT (world-first): mneme.scope.verify {intent, allow, diff} → HONORED/BREACHED signed verdict that an autonomous edit stayed within the architectural scope it DECLARED (the unpromised file/table/endpoint it reached); mneme.scope.fidelity = each agent's cross-vendor scope-keeping track record (Wilson-LB). GRAPHQL BREAKING: mneme.graphql.breaking {base} → diff GraphQL SDL surface (Query/Mutation/Subscription); removed-op or retyped-return = BREAKING (clients break). API BREAKING-CHANGE: mneme.api.breaking {base} → which endpoints removed/added vs a base ref, + which REMOVED ones are still CONSUMED (BREAKING, names the consumer) vs POSSIBLY breaking; cross-repo break git cant see. MEASURED ACCURACY: mneme.accuracy.report → real precision/recall/F1 per extractor on a labeled corpus (proves accuracy, not claims it; deterministic≠accurate). PROVABLE CROSS-LAYER: mneme.graph.prove {kind:drop|reaches} → extracts facts from the graph + the logic engine PROVES unsafe_to_drop(table) with a proof chain to the cited blocker (or LIKELY_SAFE=no structural blocker), or proves an endpoint reaches a table; heuristic→PROOF. THE LOGIC ENGINE: mneme.logic.check {facts,rules,mutexes,goal} → is a reasoning chain SOUND (not are facts true): PROVEN+proof-tree / CONTRADICTED (premises entail mutually-exclusive pair) / UNKNOWN (does not follow, never false). For checking an AI agents own argument before acting. CROSS-SERVICE: mneme.services.graph → across MANY repos/services, which service calls whose endpoints (producer↔consumer) + DANGLING calls to an endpoint no service produces; org-scale blast radius git cant see. ARCHITECTURAL INVARIANTS: mneme.invariants.check {mine?:true} → MINE the invariants the repo already upholds (zero-config, proven-at-mine-time) OR prove declared rules; HOLDS/VIOLATED+counterexample. SCAR VACCINE: mneme.scar.check {code,files} → inject the org past-mistake lesson BEFORE you commit; fires on the mistake-shape, quiet when the fix(antibody) is present. ARCH FIREWALL: mneme.arch.firewall {baseline} → the gate for AI-generated change: PASS/WARN/BLOCK on whether the current code violates a load-bearing contract (severity weighted by contract age; declared policies honoured). On BLOCK do NOT commit. DEAD-PATH DETECTOR: mneme.arch.dead_paths → architectural data-flow smells: write-only tables (written never read), read-only tables, functions reachable from no endpoint (dead-code candidates). CONTRACT MAP: mneme.arch.contract_map {since} → mine ALL contracts, rank by age=load-bearing (FOUNDATIONAL near-sacred → RECENT fragile); one repo-wide view of what to respect vs revise. INVARIANT LINEAGE: mneme.arch.lineage {invariant,since} → the AGE of a contract: the commit it was first established + held since (mirror of bisect); old=load-bearing near-sacred, young=fragile. ARCHITECTURAL REGRESSIONS: mneme.arch.regressions {since} → self-diagnosing capstone: mine contracts upheld at baseline, re-prove at HEAD, bisect each break to commit+author (read before touching a repo). CHANGE-COUPLING: mneme.arch.coupling {since} → HIDDEN dependencies the code conceals but git history reveals: files that change together with NO graph link (implicit deps) vs STRUCTURAL (graph explains). CROSS-LAYER HOTSPOTS: mneme.arch.hotspots {since} → ranked refactor targets = files that churn (git) AND are cross-layer entangled (graph); sharper than churn×complexity. ARCHITECTURAL DECAY: mneme.arch.decay {since,samples} → is the architecture getting MORE entangled over time (ERODING/STABLE/IMPROVING) + coupling velocity + worst-step commit; structural-debt time-series. ARCHITECTURAL BISECT: mneme.arch.bisect {invariant,since} → git-bisect for a contract: the exact commit+author where an architectural invariant first broke (replays graph across history). ARCHITECTURAL-INVARIANTS: mneme.invariants.check → prove team-declared rules (table single-writer/private/guarded · endpoint exists) → HOLDS/VIOLATED+counterexample, design-by-contract for architecture. ARCHITECTURE LOCK: mneme.arch.check → package-lock for accountability; CI gate fails on a REGRESSION vs the committed contract (removed endpoint=BREAKING, new authz gap=SECURITY); additions fine; re-lock=reviewed act. THE FRONT DOOR — mneme.review (CLI `mneme review` [--base ref]) → one Codebase Accountability Report: graph + risk hotspots + authz gaps + untested keystones (the whole cross-layer suite in one call). ONBOARDING PATH: mneme.onboard.path → orient in an unfamiliar repo fast — real data-flows (entry→handler→callees→tables+rules), sensitive first. RISK HOTSPOTS: mneme.risk.hotspots → the ONE ranked list of the riskiest cross-layer nodes (keystone × untested × sensitive × authz-gap, fused) — the single what-to-guard-first answer. BLAST-AWARE COMMIT MSG: mneme.commit.suggest → generate an honest commit message from the diff impact. INTENT-vs-IMPACT: mneme.commit.check {message,diff} → a trivial-sounding commit (chore / fix-typo) that secretly rewrites a keystone/touches unmentioned tables = MISMATCH (mislabel/scope-creep). CROSS-LAYER AUTHZ GAP: mneme.authz.scan → endpoints whose handler reaches a WRITE to a sensitive table (accounts/payments) with NO auth function on the path (security smell to review first, may be middleware). CRITICAL UNTESTED SURFACE: mneme.testgap.scan → keystones/tables/endpoints NO test mentions (line-coverage-hidden risk); pass a diff → does THIS change reach untested critical surface. CROSS-AGENT COLLISION (world-first): mneme.collision.detect {changeSets:[{agent,diff}]} → where 2 concurrent agents/branches CONVERGE on the same table/endpoint/function across DIFFERENT files (the conflict git is blind to) + severity HIGH/MEDIUM/LOW. `benchmark` = measured extractor precision/recall; `drift --base <ref>` = architectural drift (cross-layer couplings that appeared/disappeared since a commit). The hosted xray server also serves it: GET /api/radar?gitUrl=<public repo> renders the radar for ANY public repo with no install. Deterministic, no LLM — every node/edge derives from a real file (nothing hallucinated); business→code links are anchored only on an explicit annotation or a strong name match, else the rule stays ORPHAN/UNKNOWN (never a guessed link). ★HONEST: reachable COUPLING to inspect, not a proven runtime break; bodies region-approximated, not a full AST" },
48
48
  { when: "you know what the user WANTS but not which of ~1000 tools fits", tool: "mneme.gateway.route { text } · CLI: mneme matrix search \"<intent>\"", why: "intent → the right tool, ranked (BM25 + curated-trigger wisdom, no LLM) — so you never need to memorise tool names" },
49
49
  { when: "you just made (or are reviewing) a git commit and provenance matters", tool: "mneme.attest.verify · CLI: mneme attest commit / verify / install-hook", why: "sign each commit into a tamper-evident, OFFLINE-verifiable trail (which AI made it · what changed · the screen that ran) — `git log` becomes provable, no trust required" },
50
50
  { when: "BEFORE a risky action (push:main · deploy:prod · add a dependency · touch .env/secrets)", tool: "mneme.engagement.scan { kind, paths, license }", why: "robots.txt-for-agents — check the action against the repo's signed Engagement Policy → ALLOW / NEEDS_COSIGN / BLOCK before you act" },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/boot/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/boot/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -219,6 +219,7 @@ export * as archRegressions from "./arch_regressions/index.js";
219
219
  export * as archLineage from "./arch_lineage/index.js";
220
220
  export * as deadPath from "./dead_path/index.js";
221
221
  export * as archFirewall from "./arch_firewall/index.js";
222
+ export * as scarVaccine from "./scar_vaccine/index.js";
222
223
  export * as moat from "./moat/index.js";
223
224
  export * as symbiosis from "./symbiosis/index.js";
224
225
  export * as truthKernel from "./truth_kernel/index.js";