@mneme-ai/core 3.78.0 → 3.79.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.
@@ -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 → 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. ARCHITECTURAL-INVARIANTS-OLD: 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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"}
@@ -39,6 +39,24 @@ export declare function checkInvariants(files: ReadonlyArray<SourceFile>, invari
39
39
  allHold: boolean;
40
40
  violated: number;
41
41
  };
42
+ export interface MinedInvariant {
43
+ rule: string;
44
+ kind: InvKind;
45
+ confidence: "high" | "medium";
46
+ rationale: string;
47
+ }
48
+ /**
49
+ * Discover the invariants that PROVABLY hold in the repo right now — every table with exactly one writer
50
+ * (single-writer), every sensitive table with no unguarded write path (guarded), every table no endpoint
51
+ * reaches (private). Each mined rule is true at mine-time by construction, so checkInvariants on the same
52
+ * repo returns all-HOLD. The team reviews + keeps the ones that reflect intent; thereafter any PR that
53
+ * breaks one is caught. ★HONEST: mined invariants are DESCRIPTIVE (what holds now) proposed as
54
+ * candidates — not every currently-true fact is an intended rule (a 1-writer table may gain a 2nd by
55
+ * design), so it proposes, a human curates; the rarity is the INDUCTION + proven-at-mine-time.
56
+ */
57
+ export declare function mineInvariants(files: ReadonlyArray<SourceFile>): MinedInvariant[];
58
+ /** Render mined invariants as a ready-to-commit .mneme/invariants.txt (each rule + its rationale). */
59
+ export declare function renderMined(mined: ReadonlyArray<MinedInvariant>): string;
42
60
  export interface InvariantsGauntlet {
43
61
  score: 0 | 100;
44
62
  checks: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAwB,KAAK,UAAU,EAAwB,MAAM,+BAA+B,CAAC;AAM5G,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AACzE,MAAM,WAAW,SAAS;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACrH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AACzD,MAAM,WAAW,SAAS;IAAG,SAAS,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAE/G,mIAAmI;AACnI,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAUzD;AASD,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA4BpK;AAGD,MAAM,WAAW,kBAAkB;IAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE;AACtH,wBAAgB,kBAAkB,IAAI,kBAAkB,CAiCvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAwB,KAAK,UAAU,EAAwB,MAAM,+BAA+B,CAAC;AAM5G,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AACzE,MAAM,WAAW,SAAS;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACrH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AACzD,MAAM,WAAW,SAAS;IAAG,SAAS,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAE/G,mIAAmI;AACnI,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAUzD;AASD,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA4BpK;AAID,MAAM,WAAW,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AACjH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,cAAc,EAAE,CAkBjF;AACD,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM,CAGxE;AAGD,MAAM,WAAW,kBAAkB;IAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE;AACtH,wBAAgB,kBAAkB,IAAI,kBAAkB,CAwCvD"}
@@ -97,6 +97,44 @@ export function checkInvariants(files, invariants) {
97
97
  const violated = results.filter((r) => r.status === "VIOLATED").length;
98
98
  return { results, allHold: violated === 0, violated };
99
99
  }
100
+ // ── INVARIANT MINING — induce the architectural contract the codebase ALREADY upholds ──────────────
101
+ const SENSITIVE_RE = /\b(account|payment|wallet|password|credential|secret|token|admin|role|permission|balance|transaction|billing|card|user|order|invoice|subscription)\b/i;
102
+ /**
103
+ * Discover the invariants that PROVABLY hold in the repo right now — every table with exactly one writer
104
+ * (single-writer), every sensitive table with no unguarded write path (guarded), every table no endpoint
105
+ * reaches (private). Each mined rule is true at mine-time by construction, so checkInvariants on the same
106
+ * repo returns all-HOLD. The team reviews + keeps the ones that reflect intent; thereafter any PR that
107
+ * breaks one is caught. ★HONEST: mined invariants are DESCRIPTIVE (what holds now) proposed as
108
+ * candidates — not every currently-true fact is an intended rule (a 1-writer table may gain a 2nd by
109
+ * design), so it proposes, a human curates; the rarity is the INDUCTION + proven-at-mine-time.
110
+ */
111
+ export function mineInvariants(files) {
112
+ const g = buildCrossLayerGraph((files ?? []));
113
+ const tables = g.nodes.filter((n) => n.type === "db_table");
114
+ const endpoints = g.nodes.filter((n) => n.type === "api_endpoint");
115
+ const gaps = authzGaps(g);
116
+ const gappedTables = new Set(gaps.flatMap((x) => x.sensitiveTables.map(lc)));
117
+ const byId = new Map(g.nodes.map((n) => [n.id, n]));
118
+ const touched = (t) => g.edges.some((e) => (e.relation === "READS" || e.relation === "WRITES_TO") && e.target === t.id);
119
+ const out = [];
120
+ for (const t of tables) {
121
+ const writers = [...new Set(g.edges.filter((e) => e.relation === "WRITES_TO" && e.target === t.id).map((e) => byId.get(e.source)?.name || "").filter(Boolean))];
122
+ if (writers.length === 1)
123
+ out.push({ rule: `table ${t.name} single-writer`, kind: "single-writer", confidence: "high", rationale: `only ${writers[0]} writes it today` });
124
+ if (SENSITIVE_RE.test(t.name) && !gappedTables.has(lc(t.name)) && touched(t))
125
+ out.push({ rule: `table ${t.name} guarded`, kind: "guarded", confidence: "medium", rationale: `sensitive table with no unguarded write path today` });
126
+ if (touched(t) && !endpoints.some((ep) => reachesProof(g, `${ep.method || ""} ${ep.name}`.trim(), t.name).reachable))
127
+ out.push({ rule: `table ${t.name} private`, kind: "private", confidence: "medium", rationale: `used internally; no endpoint reaches it today` });
128
+ }
129
+ // stable order, de-duped
130
+ const seen = new Set();
131
+ return out.filter((m) => (seen.has(m.rule) ? false : (seen.add(m.rule), true))).sort((a, b) => a.rule.localeCompare(b.rule));
132
+ }
133
+ /** Render mined invariants as a ready-to-commit .mneme/invariants.txt (each rule + its rationale). */
134
+ export function renderMined(mined) {
135
+ const head = "# Architectural invariants — mined by Mneme (each held at mine-time). Review + keep the ones that reflect intent.\n";
136
+ return head + (mined ?? []).map((m) => `${m.rule} # ${m.confidence}: ${m.rationale}`).join("\n") + "\n";
137
+ }
100
138
  export function invariantsGauntlet() {
101
139
  const files = [
102
140
  { path: "schema.prisma", content: "model Payment { id Int @id }\nmodel Audit { id Int @id }\nmodel Secret { id Int @id }\nmodel Account { id Int @id }" },
@@ -121,9 +159,16 @@ export function invariantsGauntlet() {
121
159
  const guardViol = by("table Account guarded").status === "VIOLATED";
122
160
  const existHold = by("endpoint POST /v1/charge exists").status === "HOLDS";
123
161
  const existViol = by("endpoint GET /v1/nope exists").status === "VIOLATED";
162
+ // MINING: induce the invariants the repo upholds; they must all HOLD on the same repo (proven-at-mine-time).
163
+ const mined = mineInvariants(files);
164
+ const minedHold = checkInvariants(files, parseInvariants(renderMined(mined)));
165
+ const mineAllHold = mined.length >= 3 && minedHold.violated === 0 && minedHold.results.every((r) => r.status === "HOLDS");
166
+ const mineExcludesViolations = !mined.some((m) => m.rule === "table Audit single-writer"); // Audit has 2 writers → never mined as single-writer
124
167
  const total = (() => { try {
125
168
  checkInvariants(null, null);
126
169
  parseInvariants(null);
170
+ mineInvariants(null);
171
+ renderMined(null);
127
172
  return true;
128
173
  }
129
174
  catch {
@@ -134,6 +179,8 @@ export function invariantsGauntlet() {
134
179
  { name: "PRIVATE-TABLE", pass: privViol && privHold, detail: "private VIOLATED when an endpoint reaches the table (counterexample), HOLDS when none does" },
135
180
  { name: "GUARDED-TABLE", pass: guardViol, detail: "guarded VIOLATED when there is an unguarded sensitive-write path" },
136
181
  { name: "ENDPOINT-EXISTS", pass: existHold && existViol, detail: "exists HOLDS when the endpoint is in the API surface, VIOLATED when absent" },
182
+ { name: "MINING-PROVEN-AT-MINE-TIME", pass: mineAllHold, detail: "mined invariants (≥3) all HOLD on the same repo by construction — induced, not guessed" },
183
+ { name: "MINING-EXCLUDES-VIOLATIONS", pass: mineExcludesViolations, detail: "a table with 2 writers is NEVER mined as single-writer (only true invariants are induced)" },
137
184
  { name: "TOTAL", pass: total, detail: "null/garbage never throws" },
138
185
  ];
139
186
  return { score: checks.every((c) => c.pass) ? 100 : 0, checks };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/invariants/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,oBAAoB,EAAyC,MAAM,+BAA+B,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAMxD,mIAAmI;AACnI,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG;YAAE,SAAS;QAChE,IAAI,CAA0B,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACtK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACpM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,CAAkB,EAAE,KAAa;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3J,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAAC,KAAgC,EAAE,UAAoC;IACpG,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAiB,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,4BAA4B,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9I,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAM,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;iBAC3H,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;;gBACxK,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,CAAC,KAAK,gCAAgC,EAAE,CAAC,CAAC;QAC/H,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,kCAAkC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;;gBACnO,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,yCAAyC,GAAG,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;QACjI,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,GAAG,GAAkB,IAAI,CAAC;YAC9B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,KAAM,CAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;oBAAC,MAAM;gBAAC,CAAC;YAAC,CAAC;YACxL,IAAI,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,gCAAgC,GAAG,4BAA4B,EAAE,CAAC,CAAC;;gBACpK,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAwB,GAAG,CAAC,KAAK,uBAAuB,EAAE,CAAC,CAAC;QAC3H,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;YAAC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACxJ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;QAC9O,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IACvE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,sGAAsG;AACtG,MAAM,YAAY,GAAG,uJAAuJ,CAAC;AAE7K;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAgC;IAC7D,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAiB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACxI,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChK,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC1K,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,oDAAoD,EAAE,CAAC,CAAC;QACpO,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,+CAA+C,EAAE,CAAC,CAAC;IACzQ,CAAC;IACD,yBAAyB;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/H,CAAC;AACD,sGAAsG;AACtG,MAAM,UAAU,WAAW,CAAC,KAAoC;IAC9D,MAAM,IAAI,GAAG,qHAAqH,CAAC;IACnI,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5G,CAAC;AAID,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAiB;QAC1B,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,qHAAqH,EAAE;QACzJ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iHAAiH,EAAE;QACjJ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sZAAsZ,EAAE;KAClb,CAAC;IACF,MAAM,GAAG,GAAG,eAAe,CAAC;QAC1B,6BAA6B,EAAI,4BAA4B;QAC7D,2BAA2B,EAAM,iCAAiC;QAClE,sBAAsB,EAAW,uCAAuC;QACxE,qBAAqB,EAAY,oCAAoC;QACrE,uBAAuB,EAAU,8CAA8C;QAC/E,iCAAiC,EAAE,QAAQ;QAC3C,8BAA8B,EAAG,WAAW;KAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACd,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAE,CAAC;IAC5E,MAAM,MAAM,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;IACpE,MAAM,MAAM,GAAG,EAAE,CAAC,2BAA2B,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9I,MAAM,QAAQ,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;IAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;IAC9D,MAAM,SAAS,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;IACpE,MAAM,SAAS,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;IAC3E,MAAM,SAAS,GAAG,EAAE,CAAC,8BAA8B,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;IAC3E,6GAA6G;IAC7G,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAC1H,MAAM,sBAAsB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,2BAA2B,CAAC,CAAC,CAAG,qDAAqD;IAClJ,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,eAAe,CAAC,IAAa,EAAE,IAAa,CAAC,CAAC;QAAC,eAAe,CAAC,IAAa,CAAC,CAAC;QAAC,cAAc,CAAC,IAAa,CAAC,CAAC;QAAC,WAAW,CAAC,IAAa,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnN,MAAM,MAAM,GAAG;QACb,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,0EAA0E,EAAE;QACrI,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,EAAE,4FAA4F,EAAE;QAC3J,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,kEAAkE,EAAE;QACtH,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,EAAE,4EAA4E,EAAE;QAC/I,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,wFAAwF,EAAE;QAC3J,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,2FAA2F,EAAE;QACzK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE;KACpE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from "vitest";
2
- import { parseInvariants, checkInvariants, invariantsGauntlet } from "./index.js";
2
+ import { parseInvariants, checkInvariants, invariantsGauntlet, mineInvariants, renderMined } from "./index.js";
3
3
  const files = [
4
4
  { path: "schema.prisma", content: "model Payment { id Int @id }\nmodel Audit { id Int @id }\nmodel Secret { id Int @id }\nmodel Account { id Int @id }" },
5
5
  { path: "routes.ts", content: "router.post(\"/v1/charge\", charge);\nrouter.get(\"/v1/secret\", leakSecret);\nrouter.post(\"/v1/xfer\", xfer);" },
@@ -29,9 +29,20 @@ describe("invariants", () => {
29
29
  expect(r.results[2].status).toBe("VIOLATED");
30
30
  expect(r.allHold).toBe(false);
31
31
  });
32
+ it("MINING: induced invariants all HOLD on the same repo (proven at mine-time)", () => {
33
+ const mined = mineInvariants(files);
34
+ expect(mined.length).toBeGreaterThanOrEqual(3);
35
+ const r = checkInvariants(files, parseInvariants(renderMined(mined)));
36
+ expect(r.violated).toBe(0);
37
+ expect(r.results.every((x) => x.status === "HOLDS")).toBe(true);
38
+ });
39
+ it("MINING never induces a false single-writer (Audit has 2 writers)", () => {
40
+ expect(mineInvariants(files).some((m) => m.rule === "table Audit single-writer")).toBe(false);
41
+ });
32
42
  it("never throws on garbage", () => {
33
43
  expect(() => checkInvariants(null, null)).not.toThrow();
34
44
  expect(() => parseInvariants(null)).not.toThrow();
45
+ expect(() => mineInvariants(null)).not.toThrow();
35
46
  });
36
47
  });
37
48
  //# sourceMappingURL=invariants.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invariants.test.js","sourceRoot":"","sources":["../../src/invariants/invariants.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invariants.test.js","sourceRoot":"","sources":["../../src/invariants/invariants.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "3.78.0",
3
+ "version": "3.79.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",