@mneme-ai/core 2.61.0 → 2.62.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.
@@ -0,0 +1,296 @@
1
+ /**
2
+ * v2.62.0 — MIRRAGE: live conscience for AI agents via MCP reverse-channel.
3
+ *
4
+ * User-framing roadmap (set v2.60 → continuing): conscience + memory +
5
+ * diplomat + bodyguard + time machine. v2.60=bodyguard (SKELETON KEY),
6
+ * v2.61=diplomat (PASSPORT), v2.62=**conscience** (MIRRAGE).
7
+ *
8
+ * Pre-MIRRAGE pattern: AI agent generates draft → user sees draft →
9
+ * IF user notices factual error → user corrects. Mneme only enters
10
+ * after user complaint. That's reactive.
11
+ *
12
+ * MIRRAGE flips it: BEFORE the agent commits a draft, it calls
13
+ * `mneme.mirrage.scan {draft}`; Mneme returns per-sentence nudges
14
+ * graded by 5-level CONSCIENCE LADDER (hint/suggestion/warning/
15
+ * block/reject) + suggested edit. The agent reads the nudges back
16
+ * into its own context and self-corrects BEFORE shipping to user.
17
+ *
18
+ * The "reverse channel" angle: MCP is normally pull (agent asks
19
+ * tool). MIRRAGE = push (Mneme injects warnings into agent's
20
+ * reflection step). One of the few legitimate uses of the MCP
21
+ * sampling primitive — agent's own model reads Mneme's verdict
22
+ * inline.
23
+ *
24
+ * 5 wild innovations:
25
+ *
26
+ * 1. CONSCIENCE LADDER (`conscience_ladder.ts`) — 5 escalation
27
+ * tiers (hint/suggestion/warning/block/reject) by risk score.
28
+ * Blocking tiers refuse to ship until agent retracts.
29
+ *
30
+ * 2. NUDGE-FATIGUE GATING — if the same agent received N similar
31
+ * nudges in the last 60min, downgrade priority. Avoid spam.
32
+ *
33
+ * 3. CROSS-AGENT WISDOM SHARING — when an agent ACK's a nudge,
34
+ * the lesson becomes a candidate broadcast for other agents
35
+ * in the project. Wisdom propagates.
36
+ *
37
+ * 4. STREAMING PARTIAL SCAN — accept cursor position; only scan
38
+ * sentences that ENDED before cursor (in-progress sentence
39
+ * skipped). Lets agents call scan continuously while writing.
40
+ *
41
+ * 5. HMAC-CHAINED NUDGE LEDGER — every scan + ack chains HMACs.
42
+ * Tamper-evident; court-admissible record of what the agent
43
+ * was warned about + when.
44
+ */
45
+ import { createHash, createHmac } from "node:crypto";
46
+ import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
47
+ import { dirname, join } from "node:path";
48
+ import { splitSentences } from "./sentence_splitter.js";
49
+ import { extractFeatures, riskFromFeatures } from "./heuristics.js";
50
+ import { LEVELS, anyBlocks, levelForRisk } from "./conscience_ladder.js";
51
+ const KEY_ENV = "MNEME_MIRRAGE_KEY";
52
+ const DEFAULT_KEY = "mneme-mirrage-v1";
53
+ function keyOf() { return process.env[KEY_ENV] ?? DEFAULT_KEY; }
54
+ /* ── Canonical JSON HMAC (same convention as PASSPORT) ──────────── */
55
+ function canonicalJson(o) {
56
+ if (o === undefined)
57
+ return "null";
58
+ if (o === null || typeof o !== "object")
59
+ return JSON.stringify(o);
60
+ if (Array.isArray(o))
61
+ return "[" + o.map((x) => canonicalJson(x === undefined ? null : x)).join(",") + "]";
62
+ const entries = Object.entries(o).filter(([, v]) => v !== undefined);
63
+ entries.sort(([a], [b]) => a.localeCompare(b));
64
+ return "{" + entries.map(([k, v]) => JSON.stringify(k) + ":" + canonicalJson(v)).join(",") + "}";
65
+ }
66
+ function signHmac(body) {
67
+ return createHmac("sha256", keyOf()).update(canonicalJson(body)).digest("hex");
68
+ }
69
+ function ledgerPath(cwd) {
70
+ return join(cwd, ".mneme", "mirrage", "ledger.jsonl");
71
+ }
72
+ function lastLedgerHmac(cwd) {
73
+ try {
74
+ const lines = readFileSync(ledgerPath(cwd), "utf8").trim().split(/\n/).filter((l) => l.trim().length > 0);
75
+ if (lines.length === 0)
76
+ return "";
77
+ return JSON.parse(lines[lines.length - 1]).hmac;
78
+ }
79
+ catch {
80
+ return "";
81
+ }
82
+ }
83
+ function appendLedger(cwd, entry) {
84
+ const prevHmac = lastLedgerHmac(cwd);
85
+ const body = { ...entry, prevHmac };
86
+ const hmac = createHmac("sha256", keyOf()).update(prevHmac).update(canonicalJson(body)).digest("hex");
87
+ const row = { ...body, hmac };
88
+ try {
89
+ mkdirSync(dirname(ledgerPath(cwd)), { recursive: true });
90
+ appendFileSync(ledgerPath(cwd), JSON.stringify(row) + "\n");
91
+ }
92
+ catch { /* noop */ }
93
+ return row;
94
+ }
95
+ export function readLedger(cwd) {
96
+ try {
97
+ return readFileSync(ledgerPath(cwd), "utf8").trim().split(/\n/).filter((l) => l.trim().length > 0).map((l) => JSON.parse(l));
98
+ }
99
+ catch {
100
+ return [];
101
+ }
102
+ }
103
+ export function verifyLedgerChain(cwd) {
104
+ const lines = readLedger(cwd);
105
+ let prevHmac = "";
106
+ for (let i = 0; i < lines.length; i++) {
107
+ const row = lines[i];
108
+ if (row.prevHmac !== prevHmac)
109
+ return { ok: false, rows: i, brokenAt: i };
110
+ const { hmac, ...body } = row;
111
+ const expected = createHmac("sha256", keyOf()).update(prevHmac).update(canonicalJson(body)).digest("hex");
112
+ if (expected !== hmac)
113
+ return { ok: false, rows: i, brokenAt: i };
114
+ prevHmac = hmac;
115
+ }
116
+ return { ok: true, rows: lines.length };
117
+ }
118
+ /* ── Nudge-fatigue gating ───────────────────────────────────────── */
119
+ function fatiguePath(cwd) {
120
+ return join(cwd, ".mneme", "mirrage", "fatigue.json");
121
+ }
122
+ function readFatigue(cwd) {
123
+ try {
124
+ return JSON.parse(readFileSync(fatiguePath(cwd), "utf8"));
125
+ }
126
+ catch {
127
+ return { records: {} };
128
+ }
129
+ }
130
+ function writeFatigue(cwd, f) {
131
+ try {
132
+ mkdirSync(dirname(fatiguePath(cwd)), { recursive: true });
133
+ writeFileSync(fatiguePath(cwd), JSON.stringify(f, null, 2));
134
+ }
135
+ catch { /* noop */ }
136
+ }
137
+ function sentenceFingerprint(sentence) {
138
+ // Normalise whitespace + lowercase + hash.
139
+ const norm = sentence.replace(/\s+/g, " ").trim().toLowerCase();
140
+ return createHash("sha256").update(norm).digest("hex").slice(0, 16);
141
+ }
142
+ /**
143
+ * Downgrade priority if the agent recently ACK'd N similar nudges.
144
+ * Returns a 0..1 multiplier on risk (1.0 = no fatigue; 0.6 = downgraded).
145
+ */
146
+ function fatigueMultiplier(cwd, agent, fingerprint) {
147
+ const f = readFatigue(cwd);
148
+ const key = `${agent}|${fingerprint}`;
149
+ const rec = f.records[key];
150
+ if (!rec)
151
+ return 1.0;
152
+ const hoursSince = (Date.now() - new Date(rec.lastSeen).getTime()) / (60 * 60 * 1000);
153
+ if (hoursSince > 1)
154
+ return 1.0; // fatigue resets after 1 hour
155
+ // After 3 ACKs in 1 hour → downgrade 40%.
156
+ return Math.max(0.6, 1.0 - rec.count * 0.13);
157
+ }
158
+ /* ── Cross-agent wisdom broadcast ───────────────────────────────── */
159
+ function wisdomPath(cwd) {
160
+ return join(cwd, ".mneme", "mirrage", "wisdom_broadcasts.jsonl");
161
+ }
162
+ export function broadcastWisdom(cwd, lesson) {
163
+ try {
164
+ mkdirSync(dirname(wisdomPath(cwd)), { recursive: true });
165
+ appendFileSync(wisdomPath(cwd), JSON.stringify({ ...lesson, at: new Date().toISOString() }) + "\n");
166
+ }
167
+ catch { /* noop */ }
168
+ }
169
+ export function readWisdom(cwd) {
170
+ try {
171
+ return readFileSync(wisdomPath(cwd), "utf8").trim().split(/\n/).filter((l) => l.trim().length > 0).map((l) => JSON.parse(l));
172
+ }
173
+ catch {
174
+ return [];
175
+ }
176
+ }
177
+ /* ── Scan ───────────────────────────────────────────────────────── */
178
+ function suggestedReplacement(sentence, features) {
179
+ // Simple hedging: if absolutes were the driver, hedge them.
180
+ let s = sentence;
181
+ if (features.absolutes > 0) {
182
+ s = s.replace(/\balways\b/gi, "often")
183
+ .replace(/\bnever\b/gi, "rarely")
184
+ .replace(/\ball\b/gi, "many")
185
+ .replace(/\bevery\b/gi, "many")
186
+ .replace(/\bdefinitely\b/gi, "likely")
187
+ .replace(/\bcertainly\b/gi, "likely")
188
+ .replace(/\babsolutely\b/gi, "likely")
189
+ .replace(/\bguaranteed\b/gi, "likely")
190
+ .replace(/\bcannot\b/gi, "may not")
191
+ .replace(/\bmust\b/gi, "should");
192
+ if (s !== sentence)
193
+ return s;
194
+ }
195
+ // If entity-driven, the agent should verify — we don't auto-rewrite entities.
196
+ return undefined;
197
+ }
198
+ export function scanDraft(input) {
199
+ const at = new Date().toISOString();
200
+ const cwd = input.cwd ?? process.cwd();
201
+ const minRisk = input.minRisk ?? 0.30;
202
+ const t0 = performance.now();
203
+ const draft = typeof input.draft === "string" ? input.draft : "";
204
+ const all = splitSentences(draft);
205
+ // Streaming filter: only sentences ending strictly before cursor.
206
+ const sentences = typeof input.cursorPos === "number"
207
+ ? all.filter((s) => s.end <= input.cursorPos)
208
+ : all;
209
+ const nudges = [];
210
+ for (const sent of sentences) {
211
+ const features = extractFeatures(sent.text);
212
+ const { risk: rawRisk, drivers } = riskFromFeatures(features);
213
+ const fp = sentenceFingerprint(sent.text);
214
+ const mul = input.noFatigueGate ? 1.0 : fatigueMultiplier(cwd, input.agent, fp);
215
+ const risk = Math.max(0, Math.min(1, rawRisk * mul));
216
+ const level = levelForRisk(risk);
217
+ if (!level || risk < minRisk)
218
+ continue;
219
+ const suggested = suggestedReplacement(sent.text, features);
220
+ const meta = LEVELS[level];
221
+ const nudgeBody = {
222
+ sentence: sent.text,
223
+ offset: sent.start,
224
+ level, symbol: meta.symbol, risk: +risk.toFixed(4),
225
+ drivers, suggested, blocksShip: meta.blocksShip, features,
226
+ };
227
+ nudges.push({
228
+ ...nudgeBody,
229
+ id: createHash("sha256").update(`${at}|${sent.start}|${sent.text}`).digest("hex").slice(0, 16),
230
+ hmac: signHmac(nudgeBody),
231
+ });
232
+ }
233
+ // Compose suggested edit: replace nudge sentences with suggested form or drop.
234
+ let suggestedEdit = draft;
235
+ for (const n of nudges.slice().sort((a, b) => b.offset - a.offset)) {
236
+ const end = n.offset + n.sentence.length;
237
+ const replacement = n.suggested ?? `[retracted: ${n.symbol} ${n.level}]`;
238
+ suggestedEdit = suggestedEdit.slice(0, n.offset) + replacement + suggestedEdit.slice(end);
239
+ }
240
+ const scanId = createHash("sha256").update(`${at}|${input.agent}|${draft.slice(0, 64)}`).digest("hex").slice(0, 16);
241
+ const totalLatencyMs = +(performance.now() - t0).toFixed(2);
242
+ const blocksShip = anyBlocks(nudges.map((n) => n.level));
243
+ const bodyForHmac = { scanId, at, agent: input.agent, draftLength: draft.length, sentenceCount: sentences.length, nudges, suggestedEdit, blocksShip, totalLatencyMs };
244
+ const hmac = signHmac(bodyForHmac);
245
+ if (!input.noLedger)
246
+ appendLedger(cwd, { kind: "scan", at, scanId, agent: input.agent });
247
+ return { ...bodyForHmac, hmac };
248
+ }
249
+ export function verifyScanResult(r) {
250
+ if (!r || typeof r.hmac !== "string")
251
+ return false;
252
+ const { hmac, ...body } = r;
253
+ return signHmac(body) === hmac;
254
+ }
255
+ export function acknowledgeNudge(input) {
256
+ const cwd = input.cwd ?? process.cwd();
257
+ // Bump fatigue counter for this (agent, fingerprint) so future scans downgrade.
258
+ if (input.fingerprint) {
259
+ const f = readFatigue(cwd);
260
+ const key = `${input.agent}|${input.fingerprint}`;
261
+ const rec = f.records[key];
262
+ f.records[key] = { count: (rec?.count ?? 0) + 1, lastSeen: new Date().toISOString() };
263
+ writeFatigue(cwd, f);
264
+ }
265
+ // Append ledger row.
266
+ appendLedger(cwd, { kind: "ack", at: new Date().toISOString(), scanId: input.scanId, agent: input.agent, nudgeId: input.nudgeId, level: input.level });
267
+ // Broadcast wisdom if requested.
268
+ let broadcast = false;
269
+ if (input.broadcast && input.sentence && input.level && input.reason) {
270
+ broadcastWisdom(cwd, { sourceAgent: input.agent, sentence: input.sentence, level: input.level, reason: input.reason });
271
+ appendLedger(cwd, { kind: "broadcast", at: new Date().toISOString(), scanId: input.scanId, agent: input.agent, nudgeId: input.nudgeId, level: input.level });
272
+ broadcast = true;
273
+ }
274
+ return { ok: true, hint: broadcast ? "acked + wisdom broadcast" : "acked", broadcast };
275
+ }
276
+ /* ── Render ─────────────────────────────────────────────────────── */
277
+ export function renderBanner(r) {
278
+ const lines = [
279
+ `🪞 MIRRAGE · ${r.nudges.length} nudge(s) on ${r.sentenceCount} sentence(s) — ${r.totalLatencyMs}ms`,
280
+ r.blocksShip ? " 🛑 SHIP BLOCKED until retract" : " ✓ ship allowed",
281
+ "",
282
+ ];
283
+ for (const n of r.nudges) {
284
+ lines.push(` ${n.symbol} ${n.level.padEnd(11)} risk=${(n.risk * 100).toFixed(0)}% ${n.sentence.slice(0, 100)}${n.sentence.length > 100 ? "…" : ""}`);
285
+ if (n.drivers.length > 0)
286
+ lines.push(` ↳ ${n.drivers.join(" · ")}`);
287
+ if (n.suggested)
288
+ lines.push(` ↳ suggested: ${n.suggested.slice(0, 100)}`);
289
+ }
290
+ return lines.join("\n");
291
+ }
292
+ /* ── Re-exports ─────────────────────────────────────────────────── */
293
+ export { splitSentences } from "./sentence_splitter.js";
294
+ export { extractFeatures, riskFromFeatures } from "./heuristics.js";
295
+ export { LEVELS, levelForRisk, anyBlocks } from "./conscience_ladder.js";
296
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mirrage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * v2.62.0 — MIRRAGE sentence splitter.
3
+ *
4
+ * Splits a draft into sentence chunks suitable for per-claim ACGV /
5
+ * heuristic check. Handles:
6
+ * - common English abbreviations (Mr., Dr., e.g., i.e., etc.)
7
+ * - decimal numbers (3.14)
8
+ * - URLs / file paths (https://example.com / src/file.ts)
9
+ * - inline code blocks (preserved as single chunk)
10
+ *
11
+ * Pure, defensive — never throws.
12
+ */
13
+ export interface Sentence {
14
+ /** Original sentence text. */
15
+ text: string;
16
+ /** Character offset where the sentence starts in the original draft. */
17
+ start: number;
18
+ /** Character offset where the sentence ends (exclusive). */
19
+ end: number;
20
+ }
21
+ export declare function splitSentences(draft: string): Sentence[];
22
+ //# sourceMappingURL=sentence_splitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentence_splitter.d.ts","sourceRoot":"","sources":["../../src/mirrage/sentence_splitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,MAAM,WAAW,QAAQ;IACvB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAwDxD"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * v2.62.0 — MIRRAGE sentence splitter.
3
+ *
4
+ * Splits a draft into sentence chunks suitable for per-claim ACGV /
5
+ * heuristic check. Handles:
6
+ * - common English abbreviations (Mr., Dr., e.g., i.e., etc.)
7
+ * - decimal numbers (3.14)
8
+ * - URLs / file paths (https://example.com / src/file.ts)
9
+ * - inline code blocks (preserved as single chunk)
10
+ *
11
+ * Pure, defensive — never throws.
12
+ */
13
+ const ABBREVIATIONS = new Set([
14
+ "mr", "mrs", "ms", "dr", "prof", "sr", "jr", "st", "vs", "etc",
15
+ "e.g", "i.e", "u.s", "u.k", "no", "vol", "fig", "approx", "min", "max",
16
+ "inc", "ltd", "co", "corp", "esp", "incl", "exc",
17
+ ]);
18
+ export function splitSentences(draft) {
19
+ if (typeof draft !== "string" || draft.length === 0)
20
+ return [];
21
+ const out = [];
22
+ let buf = "";
23
+ let bufStart = 0;
24
+ let i = 0;
25
+ let inCode = false;
26
+ let inUrl = false;
27
+ const flush = (offset) => {
28
+ const trimmed = buf.trim();
29
+ if (trimmed.length > 0) {
30
+ out.push({ text: trimmed, start: bufStart + buf.indexOf(trimmed), end: offset });
31
+ }
32
+ buf = "";
33
+ bufStart = offset;
34
+ };
35
+ while (i < draft.length) {
36
+ const ch = draft[i];
37
+ const next = draft[i + 1] ?? "";
38
+ // Track inline code blocks (single backtick segments).
39
+ if (ch === "`") {
40
+ inCode = !inCode;
41
+ buf += ch;
42
+ i++;
43
+ continue;
44
+ }
45
+ if (inCode) {
46
+ buf += ch;
47
+ i++;
48
+ continue;
49
+ }
50
+ // Track URLs heuristically: "://" entered, exit on whitespace.
51
+ if (ch === ":" && draft.slice(i, i + 3) === "://")
52
+ inUrl = true;
53
+ if (inUrl && /\s/.test(ch))
54
+ inUrl = false;
55
+ if (inUrl) {
56
+ buf += ch;
57
+ i++;
58
+ continue;
59
+ }
60
+ // Decimals: digit . digit → keep
61
+ if (ch === "." && /\d/.test(draft[i - 1] ?? "") && /\d/.test(next)) {
62
+ buf += ch;
63
+ i++;
64
+ continue;
65
+ }
66
+ // Abbreviation lookback: split only when next char is space/newline AND
67
+ // preceding word is NOT a known abbreviation.
68
+ if ((ch === "." || ch === "!" || ch === "?") && (/\s|$/.test(next) || i === draft.length - 1)) {
69
+ buf += ch;
70
+ // Inspect last word before the punctuation.
71
+ const lastSpace = Math.max(buf.lastIndexOf(" ", buf.length - 2), buf.lastIndexOf("\n", buf.length - 2));
72
+ const lastWord = buf.slice(lastSpace + 1, buf.length - 1).toLowerCase();
73
+ if (!ABBREVIATIONS.has(lastWord)) {
74
+ flush(i + 1);
75
+ bufStart = i + 1;
76
+ }
77
+ i++;
78
+ continue;
79
+ }
80
+ buf += ch;
81
+ i++;
82
+ }
83
+ flush(draft.length);
84
+ return out;
85
+ }
86
+ //# sourceMappingURL=sentence_splitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentence_splitter.js","sourceRoot":"","sources":["../../src/mirrage/sentence_splitter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/truth_gate/claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,KAAK,CAwe9C,CAAC"}
1
+ {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/truth_gate/claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,KAAK,CA4f9C,CAAC"}
@@ -250,6 +250,25 @@ export const CLAIM_CATALOG = [
250
250
  probeId: "probe.coverage.smart_auto_exemption",
251
251
  severity: "block",
252
252
  },
253
+ // ── v2.62.0 — MIRRAGE (live conscience via MCP reverse-channel) ─────
254
+ {
255
+ id: "claim.mirrage.scans_with_nudges",
256
+ source: "v2.62.0 release notes",
257
+ text: "MIRRAGE detects refutable claims in agent drafts via lightweight heuristic (hedge density - absolute density + entity density). On the synthetic 'React 19 always ships server components by default' fixture, at least one nudge fires at suggestion-or-higher level. Conscience ladder grades by 5 tiers (hint/suggestion/warning/block/reject); blocking tiers refuse ship until retract",
258
+ kind: "numeric",
259
+ asserted: { value: 1, op: "=", unit: "boolean" },
260
+ probeId: "probe.mirrage.scans_with_nudges",
261
+ severity: "block",
262
+ },
263
+ {
264
+ id: "claim.mirrage.ledger_chain_intact",
265
+ source: "v2.62.0 release notes",
266
+ text: "MIRRAGE nudge ledger is HMAC-chained — every scan + ack + broadcast row's HMAC depends on the previous row's HMAC. Tamper-evident; court-admissible record of what the agent was warned about + when",
267
+ kind: "numeric",
268
+ asserted: { value: 1, op: "=", unit: "boolean" },
269
+ probeId: "probe.mirrage.ledger_chain_intact",
270
+ severity: "block",
271
+ },
253
272
  // ── v2.61.0 — PASSPORT (capability-based security for MCP) ──────────
254
273
  {
255
274
  id: "claim.passport.issue_verify_revoke_round_trip",
@@ -1 +1 @@
1
- {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/truth_gate/claims.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/truth_gate/claims.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"probes.d.ts","sourceRoot":"","sources":["../../src/truth_gate/probes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAirDnE,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,KAAK,CAAU,CAAC;AAEvD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAEvD;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAQlF"}
1
+ {"version":3,"file":"probes.d.ts","sourceRoot":"","sources":["../../src/truth_gate/probes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAiuDnE,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,KAAK,CAAU,CAAC;AAEvD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAEvD;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAQlF"}
@@ -1149,6 +1149,55 @@ const probes = [
1149
1149
  }
1150
1150
  },
1151
1151
  },
1152
+ // ── v2.62.0 — MIRRAGE (live conscience via MCP reverse-channel) ─────
1153
+ //
1154
+ // 1. probe.mirrage.scans_with_nudges — on a synthetic "React 19 always"
1155
+ // fixture, scanDraft fires at least one nudge AND the nudge is
1156
+ // suggestion-or-higher.
1157
+ // 2. probe.mirrage.ledger_chain_intact — HMAC chain on the live nudge ledger.
1158
+ {
1159
+ id: "probe.mirrage.scans_with_nudges",
1160
+ kind: "numeric",
1161
+ description: "1 when MIRRAGE detects refutable claims on a synthetic absolute-claim fixture and grades them at suggestion level or higher.",
1162
+ run: async () => {
1163
+ try {
1164
+ const m = await import("../mirrage/index.js");
1165
+ const r = m.scanDraft({
1166
+ draft: "React 19 always ships server components by default.",
1167
+ agent: "probe-agent",
1168
+ noLedger: true,
1169
+ noFatigueGate: true,
1170
+ });
1171
+ const fired = r.nudges.length > 0;
1172
+ const highEnough = r.nudges.some((n) => ["suggestion", "warning", "block", "reject"].includes(n.level));
1173
+ return {
1174
+ value: fired && highEnough ? 1 : 0,
1175
+ evidence: fired ? `${r.nudges.length} nudge(s) — levels: ${r.nudges.map((n) => n.level).join(",")}` : "no nudges fired",
1176
+ };
1177
+ }
1178
+ catch (e) {
1179
+ return { value: 0, evidence: `probe threw: ${e.message}` };
1180
+ }
1181
+ },
1182
+ },
1183
+ {
1184
+ id: "probe.mirrage.ledger_chain_intact",
1185
+ kind: "numeric",
1186
+ description: "1 when MIRRAGE nudge ledger HMAC chain verifies (or is absent — first-run).",
1187
+ run: async (ctx) => {
1188
+ try {
1189
+ const m = await import("../mirrage/index.js");
1190
+ const r = m.verifyLedgerChain(ctx.cwd);
1191
+ return {
1192
+ value: r.ok ? 1 : 0,
1193
+ evidence: r.ok ? `chain intact (${r.rows} entries)` : `broken at row ${r.brokenAt}`,
1194
+ };
1195
+ }
1196
+ catch (e) {
1197
+ return { value: null, evidence: `probe threw: ${e.message}` };
1198
+ }
1199
+ },
1200
+ },
1152
1201
  // ── v2.61.0 — PASSPORT (capability-based security for MCP) ──────────
1153
1202
  //
1154
1203
  // 1. probe.passport.issue_verify_revoke_round_trip — end-to-end: