@mneme-ai/core 2.50.0 → 2.52.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.
Files changed (42) hide show
  1. package/dist/agent_manifest.d.ts.map +1 -1
  2. package/dist/agent_manifest.js +18 -0
  3. package/dist/agent_manifest.js.map +1 -1
  4. package/dist/nemesis/capillary.d.ts +68 -0
  5. package/dist/nemesis/capillary.d.ts.map +1 -0
  6. package/dist/nemesis/capillary.js +465 -0
  7. package/dist/nemesis/capillary.js.map +1 -0
  8. package/dist/nemesis/colosseum.d.ts +111 -0
  9. package/dist/nemesis/colosseum.d.ts.map +1 -0
  10. package/dist/nemesis/colosseum.js +275 -0
  11. package/dist/nemesis/colosseum.js.map +1 -0
  12. package/dist/nemesis/index.d.ts +6 -0
  13. package/dist/nemesis/index.d.ts.map +1 -1
  14. package/dist/nemesis/index.js +23 -0
  15. package/dist/nemesis/index.js.map +1 -1
  16. package/dist/nemesis/molt.d.ts +104 -0
  17. package/dist/nemesis/molt.d.ts.map +1 -0
  18. package/dist/nemesis/molt.js +220 -0
  19. package/dist/nemesis/molt.js.map +1 -0
  20. package/dist/nemesis/sibyl.d.ts +122 -0
  21. package/dist/nemesis/sibyl.d.ts.map +1 -0
  22. package/dist/nemesis/sibyl.js +179 -0
  23. package/dist/nemesis/sibyl.js.map +1 -0
  24. package/dist/nemesis/stealth_score.d.ts +97 -0
  25. package/dist/nemesis/stealth_score.d.ts.map +1 -0
  26. package/dist/nemesis/stealth_score.js +204 -0
  27. package/dist/nemesis/stealth_score.js.map +1 -0
  28. package/dist/nemesis/themis.d.ts +109 -0
  29. package/dist/nemesis/themis.d.ts.map +1 -0
  30. package/dist/nemesis/themis.js +194 -0
  31. package/dist/nemesis/themis.js.map +1 -0
  32. package/dist/people/lineage.d.ts +11 -6
  33. package/dist/people/lineage.d.ts.map +1 -1
  34. package/dist/people/lineage.js +51 -9
  35. package/dist/people/lineage.js.map +1 -1
  36. package/dist/truth_gate/claims.d.ts.map +1 -1
  37. package/dist/truth_gate/claims.js +29 -0
  38. package/dist/truth_gate/claims.js.map +1 -1
  39. package/dist/truth_gate/probes.d.ts.map +1 -1
  40. package/dist/truth_gate/probes.js +252 -0
  41. package/dist/truth_gate/probes.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,275 @@
1
+ /**
2
+ * v2.52.0 — COLOSSEUM (Diamond 3 / Million Dollar Secret series).
3
+ *
4
+ * Show mechanic: 5 contestants × multiple rounds = leaderboard.
5
+ * The user's session simulation: Eve won as Devin-disguised-as-Codex
6
+ * because Devin's natural fingerprint is too weak to lock onto, so
7
+ * NEMESIS got 4/4 = 100% accuracy but Eve "survived as noise".
8
+ *
9
+ * COLOSSEUM turns that simulation into a deterministic primitive:
10
+ * given N seed fixtures × M disguise targets, run NEMESIS verify_identity
11
+ * across every (real, claimed) pair → produce an HMAC-signed leaderboard
12
+ * with THREE axes never co-measured by any existing fingerprinting paper:
13
+ *
14
+ * 🎭 DECEPTION_SCORE — % of trials where this vendor was NOT caught
15
+ * while wearing a disguise (Eve = champion)
16
+ * 🎯 DETECTABILITY — % of trials where this vendor's TRUE identity
17
+ * was correctly named (Claude/Copilot = high)
18
+ * 🦎 MIMICRY_SKILL — % of trials where this vendor's disguise was
19
+ * mistaken for the target vendor (vs caught)
20
+ *
21
+ * + ELO-style rating that updates per round (you can run nightly, see
22
+ * vendor reputation evolve over months).
23
+ *
24
+ * Wild value-adds this module ships:
25
+ * - SPECTATOR replay: every tournament event saved to JSONL → can be
26
+ * re-walked, audited, presented as "post-game show"
27
+ * - PUBLIC LEADERBOARD export: signed JSON suitable for vendor cards
28
+ *
29
+ * Composes: verify_identity + classifyAgentCalibrated + features.
30
+ * Pure deterministic + defensive; never throws.
31
+ */
32
+ import { existsSync, mkdirSync, appendFileSync, readFileSync } from "node:fs";
33
+ import { join } from "node:path";
34
+ import { createHmac } from "node:crypto";
35
+ import { extractFingerprint } from "./features.js";
36
+ import { classifyAgentCalibrated } from "./classifier_calibrated.js";
37
+ import { verifyIdentityClaim } from "./identity_verifier.js";
38
+ const COLOSSEUM_DIR = ".mneme/nemesis/colosseum";
39
+ const TOURNAMENTS_FILE = "tournaments.jsonl";
40
+ const LEADERBOARD_FILE = "leaderboard.json";
41
+ const SEED = "0".repeat(64);
42
+ const KEY_ENV = "MNEME_COLOSSEUM_KEY";
43
+ const DEFAULT_KEY = "mneme-colosseum-v1";
44
+ const ELO_K = 24;
45
+ const ELO_START = 1200;
46
+ function keyOf() {
47
+ return process.env[KEY_ENV] ?? DEFAULT_KEY;
48
+ }
49
+ function eloDelta(rating, oppRating, won) {
50
+ const exp = 1 / (1 + 10 ** ((oppRating - rating) / 400));
51
+ return ELO_K * ((won ? 1 : 0) - exp);
52
+ }
53
+ function readLeaderboard(repoRoot) {
54
+ const p = join(repoRoot, COLOSSEUM_DIR, LEADERBOARD_FILE);
55
+ if (!existsSync(p))
56
+ return {};
57
+ try {
58
+ return JSON.parse(readFileSync(p, "utf8"));
59
+ }
60
+ catch {
61
+ return {};
62
+ }
63
+ }
64
+ function writeLeaderboard(repoRoot, board) {
65
+ const dir = join(repoRoot, COLOSSEUM_DIR);
66
+ try {
67
+ mkdirSync(dir, { recursive: true });
68
+ }
69
+ catch { /* ok */ }
70
+ try {
71
+ const { writeFileSync } = require("node:fs");
72
+ writeFileSync(join(dir, LEADERBOARD_FILE), JSON.stringify(board, null, 2));
73
+ }
74
+ catch { /* best-effort */ }
75
+ }
76
+ function appendTournament(repoRoot, ev) {
77
+ const dir = join(repoRoot, COLOSSEUM_DIR);
78
+ try {
79
+ mkdirSync(dir, { recursive: true });
80
+ }
81
+ catch { /* ok */ }
82
+ try {
83
+ appendFileSync(join(dir, TOURNAMENTS_FILE), JSON.stringify(ev) + "\n");
84
+ }
85
+ catch { /* ok */ }
86
+ }
87
+ function hmacEvent(ev) {
88
+ return createHmac("sha256", keyOf()).update(JSON.stringify(ev)).digest("hex");
89
+ }
90
+ /**
91
+ * Run a tournament. For each contender, for each disguise target (other
92
+ * vendors), simulate the round + collect verdict + update scores.
93
+ *
94
+ * Disguise targets default = every vendor in contenders OTHER than self.
95
+ */
96
+ export function runTournament(repoRoot, contenders, opts = {}) {
97
+ const tournamentId = opts.tournamentId ?? `T-${Date.now()}`;
98
+ const at = new Date().toISOString();
99
+ const events = [];
100
+ const board = readLeaderboard(repoRoot);
101
+ // Default disguise pool = every unique realVendor in the lineup
102
+ const allVendors = Array.from(new Set(contenders.map((c) => c.realVendor)));
103
+ const targets = opts.disguiseTargets ?? allVendors;
104
+ let prev = SEED;
105
+ // Find tail of previous events for chain continuity if persisting
106
+ if (opts.persist !== false && existsSync(join(repoRoot, COLOSSEUM_DIR, TOURNAMENTS_FILE))) {
107
+ try {
108
+ const lines = readFileSync(join(repoRoot, COLOSSEUM_DIR, TOURNAMENTS_FILE), "utf8").split("\n").filter(Boolean);
109
+ for (let i = lines.length - 1; i >= 0; i--) {
110
+ try {
111
+ const last = JSON.parse(lines[i]);
112
+ if (typeof last.hmac === "string") {
113
+ prev = last.hmac;
114
+ break;
115
+ }
116
+ }
117
+ catch { /* skip */ }
118
+ }
119
+ }
120
+ catch { /* skip */ }
121
+ }
122
+ let round = 0;
123
+ for (const contender of contenders) {
124
+ for (const claimed of targets) {
125
+ if (claimed === contender.realVendor)
126
+ continue;
127
+ round++;
128
+ const fp = extractFingerprint(contender.fixture);
129
+ const detection = classifyAgentCalibrated(fp);
130
+ const verdict = verifyIdentityClaim({
131
+ claimedVendor: claimed,
132
+ fixture: contender.fixture,
133
+ });
134
+ const caught = verdict.verdict === "IMPOSSIBLE" || verdict.verdict === "DISPUTED";
135
+ const mimicked = detection.topVendor === claimed && !caught;
136
+ // Update scores
137
+ const realScore = ensureScore(board, contender.realVendor);
138
+ const claimedScore = ensureScore(board, claimed);
139
+ realScore.rounds++;
140
+ claimedScore.rounds++;
141
+ if (caught)
142
+ realScore.caught++;
143
+ else
144
+ realScore.survived++;
145
+ if (mimicked)
146
+ realScore.mimicSuccesses++;
147
+ // ELO: real-vs-claimed pairing — real "won" if they SURVIVED
148
+ const realWon = !caught;
149
+ const deltaReal = eloDelta(realScore.elo, claimedScore.elo, realWon);
150
+ realScore.elo = +(realScore.elo + deltaReal).toFixed(2);
151
+ claimedScore.elo = +(claimedScore.elo - deltaReal).toFixed(2);
152
+ // Recompute axes
153
+ realScore.deceptionScore = +(realScore.survived / Math.max(1, realScore.rounds)).toFixed(3);
154
+ realScore.detectability = +(realScore.caught / Math.max(1, realScore.rounds)).toFixed(3);
155
+ realScore.mimicrySkill = +(realScore.mimicSuccesses / Math.max(1, realScore.rounds)).toFixed(3);
156
+ claimedScore.deceptionScore = +(claimedScore.survived / Math.max(1, claimedScore.rounds)).toFixed(3);
157
+ claimedScore.detectability = +(claimedScore.caught / Math.max(1, claimedScore.rounds)).toFixed(3);
158
+ claimedScore.mimicrySkill = +(claimedScore.mimicSuccesses / Math.max(1, claimedScore.rounds)).toFixed(3);
159
+ const evBody = {
160
+ at: new Date().toISOString(),
161
+ round,
162
+ contender: contender.alias ?? contender.realVendor,
163
+ realVendor: contender.realVendor,
164
+ claimedVendor: claimed,
165
+ detectedVendor: detection.topVendor,
166
+ detectionConfidence: detection.confidence,
167
+ caught,
168
+ mimicked,
169
+ prev,
170
+ };
171
+ const hmac = hmacEvent(evBody);
172
+ const ev = { ...evBody, hmac };
173
+ events.push(ev);
174
+ if (opts.persist !== false)
175
+ appendTournament(repoRoot, ev);
176
+ prev = hmac;
177
+ }
178
+ }
179
+ if (opts.persist !== false)
180
+ writeLeaderboard(repoRoot, board);
181
+ const leaderboard = rankLeaderboard(board);
182
+ const champion = pickChampion(leaderboard);
183
+ const tBody = { tournamentId, at, rounds: round, eventCount: events.length, championVendor: champion?.vendor ?? null };
184
+ const tournamentHmac = createHmac("sha256", keyOf()).update(JSON.stringify(tBody)).digest("hex");
185
+ return { tournamentId, at, rounds: round, events, leaderboard, champion, hmac: tournamentHmac };
186
+ }
187
+ function ensureScore(board, vendor) {
188
+ if (!board[vendor]) {
189
+ board[vendor] = {
190
+ vendor,
191
+ elo: ELO_START,
192
+ rounds: 0,
193
+ caught: 0,
194
+ survived: 0,
195
+ mimicSuccesses: 0,
196
+ deceptionScore: 0,
197
+ detectability: 0,
198
+ mimicrySkill: 0,
199
+ };
200
+ }
201
+ return board[vendor];
202
+ }
203
+ function rankLeaderboard(board) {
204
+ return Object.values(board).sort((a, b) => b.elo - a.elo);
205
+ }
206
+ function pickChampion(board) {
207
+ if (board.length === 0)
208
+ return null;
209
+ // Pick whoever leads each axis
210
+ const decChamp = board.slice().sort((a, b) => b.deceptionScore - a.deceptionScore)[0];
211
+ const detChamp = board.slice().sort((a, b) => b.detectability - a.detectability)[0];
212
+ const mimChamp = board.slice().sort((a, b) => b.mimicrySkill - a.mimicrySkill)[0];
213
+ // Return deception champion by default (Eve-the-survivor pattern)
214
+ return { axis: "deception", vendor: decChamp.vendor, score: decChamp.deceptionScore };
215
+ }
216
+ /** Read current leaderboard from disk + return ranked array + HMAC. */
217
+ export function readColosseumLeaderboard(repoRoot) {
218
+ const board = readLeaderboard(repoRoot);
219
+ const ranked = rankLeaderboard(board);
220
+ const totalEvents = (() => {
221
+ try {
222
+ const p = join(repoRoot, COLOSSEUM_DIR, TOURNAMENTS_FILE);
223
+ if (!existsSync(p))
224
+ return 0;
225
+ return readFileSync(p, "utf8").split("\n").filter(Boolean).length;
226
+ }
227
+ catch {
228
+ return 0;
229
+ }
230
+ })();
231
+ const hmac = createHmac("sha256", keyOf()).update(JSON.stringify({ leaderboard: ranked, totalEvents })).digest("hex");
232
+ return { leaderboard: ranked, hmac, totalEvents };
233
+ }
234
+ /** Verify the HMAC chain of the tournaments ledger. */
235
+ export function verifyColosseumChain(repoRoot) {
236
+ const p = join(repoRoot, COLOSSEUM_DIR, TOURNAMENTS_FILE);
237
+ if (!existsSync(p))
238
+ return { ok: true, rows: 0 };
239
+ const lines = readFileSync(p, "utf8").split("\n").filter(Boolean);
240
+ let prev = SEED;
241
+ for (let i = 0; i < lines.length; i++) {
242
+ let ev;
243
+ try {
244
+ ev = JSON.parse(lines[i]);
245
+ }
246
+ catch {
247
+ return { ok: false, rows: i, brokenAt: i, reason: "row not parseable" };
248
+ }
249
+ const { hmac, ...body } = ev;
250
+ if (body.prev !== prev)
251
+ return { ok: false, rows: i, brokenAt: i, reason: "prev mismatch" };
252
+ const expected = hmacEvent(body);
253
+ if (expected !== hmac)
254
+ return { ok: false, rows: i, brokenAt: i, reason: "hmac mismatch" };
255
+ prev = hmac;
256
+ }
257
+ return { ok: true, rows: lines.length };
258
+ }
259
+ /** Replay events (spectator mode) — read last N events. */
260
+ export function spectatorReplay(repoRoot, n = 20) {
261
+ const p = join(repoRoot, COLOSSEUM_DIR, TOURNAMENTS_FILE);
262
+ if (!existsSync(p))
263
+ return [];
264
+ const lines = readFileSync(p, "utf8").split("\n").filter(Boolean);
265
+ const tail = lines.slice(-n);
266
+ const out = [];
267
+ for (const ln of tail) {
268
+ try {
269
+ out.push(JSON.parse(ln));
270
+ }
271
+ catch { /* skip */ }
272
+ }
273
+ return out;
274
+ }
275
+ //# sourceMappingURL=colosseum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colosseum.js","sourceRoot":"","sources":["../../src/nemesis/colosseum.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,12 @@ export { resolveHmacKey, generateProductionKey, type KeyResolution, type KeySour
29
29
  export { reconcileVendor, type ReconcileInput, type ReconcileVerdict, } from "./vendor_reconcile.js";
30
30
  export { computeWeightDelta, applyToConclave, type VerdictInput, type WeightDelta, type ApplyResult, } from "./nemesis_to_conclave.js";
31
31
  export { recordActivityReconciled, type RecordActivityInput, type RecordActivityResult, } from "./activity_writer.js";
32
+ export { computeStealthScore, earnAnonymityCredits, spendAnonymityCredits, stealthCreditStatus, verifyStealthLedger, type StealthVerdict, } from "./stealth_score.js";
33
+ export { extractMicroProfile, microDistance, suggestAntiCapillary, listCapillaryFeatures, type MicroProfile, type AntiCapillaryHint, } from "./capillary.js";
34
+ export { runTournament, readColosseumLeaderboard, verifyColosseumChain, spectatorReplay, type ContenderFixture, type MatchEvent, type VendorScore, type TournamentResult, } from "./colosseum.js";
35
+ export { detectMolt, verifyMoltVerdict, emitMoltWebhook, type FeatureShift, type MoltVerdict, } from "./molt.js";
36
+ export { verifyAlibi, verifyAlibiSignature, buildComplianceBundle, verifyComplianceBundle, type AlibiEvidenceItem, type AlibiVerdict, type ThemisResult, type ThemisInput, type ComplianceBundle, } from "./themis.js";
37
+ export { commitIdentity, revealIdentity, verifySibylChain, verifyCommitmentReveal, listOpenCommitments, type SibylIdentity, type SibylCommitment, type SibylReveal, type CommitOpts, type CommitResult, type RevealOpts, type RevealResult, } from "./sibyl.js";
32
38
  export { AGENT_VENDOR_ALLOWLIST, EMBEDDER_LEAK_SIGNATURES, guardVendor, fullGuard, logEmbedderLeak, cleanseLedger, type VendorGuardResult, type FullGuardInput, type FullGuardResult, type CleanseLedgerInput, type CleanseLedgerResult, } from "./vendor_allowlist.js";
33
39
  export { generateProbes, gradeRun, recordRun, readRuns, trendFor, type Probe, type ProbeFamily, type NemesisRun, type TrendSeries, } from "./nemesis.js";
34
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nemesis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,YAAY,EACV,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAC5C,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EACxD,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,GACpE,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI3E,OAAO,EACL,eAAe,EAAE,YAAY,EAAE,SAAS,EACxC,KAAK,WAAW,EAAE,KAAK,WAAW,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EAAE,oBAAoB,EAC7C,KAAK,cAAc,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAChF,KAAK,iBAAiB,EAAE,KAAK,YAAY,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EAAE,qBAAqB,EACrC,KAAK,aAAa,EAAE,KAAK,SAAS,GACnC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,GAC5D,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAAE,eAAe,EACnC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,GACtD,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,wBAAwB,EACxB,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,GACpD,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,sBAAsB,EAAE,wBAAwB,EAChD,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EACtD,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EACjE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,GAClD,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nemesis/index.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,29 @@ export { reconcileVendor, } from "./vendor_reconcile.js";
32
32
  export { computeWeightDelta, applyToConclave, } from "./nemesis_to_conclave.js";
33
33
  // v2.49.0 — B4 actual wire: write-path canonical record.
34
34
  export { recordActivityReconciled, } from "./activity_writer.js";
35
+ // v2.52.0 — STEALTH SCORE (Million Dollar Secret diamond #1) — inverse
36
+ // of fingerprint confidence + anonymity-credit HMAC ledger.
37
+ export { computeStealthScore, earnAnonymityCredits, spendAnonymityCredits, stealthCreditStatus, verifyStealthLedger, } from "./stealth_score.js";
38
+ // v2.52.0 — CAPILLARY (Million Dollar Secret diamond #2) — micro-tell
39
+ // fingerprinter at whitespace/quote/naming/comma level + ANTI-CAPILLARY
40
+ // style-rewrite suggestion engine (the first AI-coding-agent micro-fingerprinter).
41
+ export { extractMicroProfile, microDistance, suggestAntiCapillary, listCapillaryFeatures, } from "./capillary.js";
42
+ // v2.52.0 — COLOSSEUM (Million Dollar Secret diamond #3) — auto-tournament
43
+ // of N contenders × M disguise targets + 3-axis HMAC-signed ELO leaderboard
44
+ // (deception / detectability / mimicry) + spectator replay.
45
+ export { runTournament, readColosseumLeaderboard, verifyColosseumChain, spectatorReplay, } from "./colosseum.js";
46
+ // v2.52.0 — MOLT (Million Dollar Secret diamond #4) — silent model-rotation
47
+ // detector. Per-feature Welch-style comparison of pre/post fingerprint
48
+ // distributions; HMAC-signed forensic verdict + optional webhook emit.
49
+ export { detectMolt, verifyMoltVerdict, emitMoltWebhook, } from "./molt.js";
50
+ // v2.52.0 — THEMIS (Million Dollar Secret diamond #5) — alibi verifier
51
+ // ("I am NOT vendor X") + star-rated evidence + compliance bundle pairing.
52
+ export { verifyAlibi, verifyAlibiSignature, buildComplianceBundle, verifyComplianceBundle, } from "./themis.js";
53
+ // v2.52.0 — SIBYL (Million Dollar Secret diamond #6) — ZK-style identity
54
+ // commitment: commit at session-start (sealed), reveal at end. Hash-commitment
55
+ // branch (SHA-256(identity || nonce || sessionId)) — locks identity against
56
+ // mid-session switching. Supports nested commitments (vendor/model/version mask).
57
+ export { commitIdentity, revealIdentity, verifySibylChain, verifyCommitmentReveal, listOpenCommitments, } from "./sibyl.js";
35
58
  // v2.50.0 — VENDOR ALLOWLIST GUARD: kills EMBEDDER-LEAK class structurally.
36
59
  // Central allowlist of real agent vendors; backend/embedder names (ollama,
37
60
  // openai-gpt, gemini, etc) coerced to "unknown" + logged to
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nemesis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAsB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAiD,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAwC,MAAM,qBAAqB,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAE3E,qEAAqE;AACrE,wCAAwC;AACxC,OAAO,EACL,eAAe,EAAE,YAAY,EAAE,SAAS,GAEzC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EAAE,oBAAoB,GAE9C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,GAEjF,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EAAE,qBAAqB,GAEtC,MAAM,qBAAqB,CAAC;AAE7B,+CAA+C;AAC/C,OAAO,EACL,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAAE,eAAe,GAEpC,MAAM,0BAA0B,CAAC;AAElC,yDAAyD;AACzD,OAAO,EACL,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAE9B,4EAA4E;AAC5E,2EAA2E;AAC3E,4DAA4D;AAC5D,mDAAmD;AACnD,OAAO,EACL,sBAAsB,EAAE,wBAAwB,EAChD,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,GAGvD,MAAM,uBAAuB,CAAC;AAE/B,sEAAsE;AACtE,sEAAsE;AACtE,6EAA6E;AAC7E,qEAAqE;AACrE,sEAAsE;AACtE,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GAKT,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nemesis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAsB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAiD,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAwC,MAAM,qBAAqB,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAE3E,qEAAqE;AACrE,wCAAwC;AACxC,OAAO,EACL,eAAe,EAAE,YAAY,EAAE,SAAS,GAEzC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EAAE,oBAAoB,GAE9C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,GAEjF,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EAAE,qBAAqB,GAEtC,MAAM,qBAAqB,CAAC;AAE7B,+CAA+C;AAC/C,OAAO,EACL,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAAE,eAAe,GAEpC,MAAM,0BAA0B,CAAC;AAElC,yDAAyD;AACzD,OAAO,EACL,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAE9B,uEAAuE;AACvE,4DAA4D;AAC5D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAAE,qBAAqB,EAC3C,mBAAmB,EAAE,mBAAmB,GAEzC,MAAM,oBAAoB,CAAC;AAE5B,sEAAsE;AACtE,wEAAwE;AACxE,mFAAmF;AACnF,OAAO,EACL,mBAAmB,EAAE,aAAa,EAClC,oBAAoB,EAAE,qBAAqB,GAE5C,MAAM,gBAAgB,CAAC;AAExB,2EAA2E;AAC3E,4EAA4E;AAC5E,4DAA4D;AAC5D,OAAO,EACL,aAAa,EACb,wBAAwB,EAAE,oBAAoB,EAAE,eAAe,GAEhE,MAAM,gBAAgB,CAAC;AAExB,4EAA4E;AAC5E,uEAAuE;AACvE,uEAAuE;AACvE,OAAO,EACL,UAAU,EAAE,iBAAiB,EAAE,eAAe,GAE/C,MAAM,WAAW,CAAC;AAEnB,uEAAuE;AACvE,2EAA2E;AAC3E,OAAO,EACL,WAAW,EAAE,oBAAoB,EACjC,qBAAqB,EAAE,sBAAsB,GAG9C,MAAM,aAAa,CAAC;AAErB,yEAAyE;AACzE,+EAA+E;AAC/E,4EAA4E;AAC5E,kFAAkF;AAClF,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAChD,sBAAsB,EAAE,mBAAmB,GAG5C,MAAM,YAAY,CAAC;AAEpB,4EAA4E;AAC5E,2EAA2E;AAC3E,4DAA4D;AAC5D,mDAAmD;AACnD,OAAO,EACL,sBAAsB,EAAE,wBAAwB,EAChD,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,GAGvD,MAAM,uBAAuB,CAAC;AAE/B,sEAAsE;AACtE,sEAAsE;AACtE,6EAA6E;AAC7E,qEAAqE;AACrE,sEAAsE;AACtE,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GAKT,MAAM,cAAc,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * v2.52.0 — MOLT (Diamond 4 / Million Dollar Secret series).
3
+ *
4
+ * Show mechanic: contestants change behaviour when they sense suspicion.
5
+ * Drift over time is itself a tell.
6
+ *
7
+ * Mneme primitive: extends drift_timeline (v2.46 ORGAN 4) into a
8
+ * SILENT-MODEL-ROTATION detector. AI vendors frequently swap backend
9
+ * models without telling users (GPT-4 → GPT-4 Turbo → GPT-4o; Claude
10
+ * 3 Opus → Claude 3.5 Sonnet → Claude Opus 4.6). Users paying for
11
+ * "model A" get rotated to "model B" with no notice. Consumer-protection
12
+ * issue + potential class-action surface.
13
+ *
14
+ * MOLT computes Mahalanobis-style drift between fingerprint snapshots
15
+ * over a time window, identifies the DOMINANT shifted features, and
16
+ * emits a forensic-evidence-grade event:
17
+ *
18
+ * {
19
+ * vendor: "cursor",
20
+ * molted: true,
21
+ * moltedAt: "2026-04-15T...",
22
+ * priorWindow: "2026-03-15..2026-04-14",
23
+ * postWindow: "2026-04-15..2026-05-15",
24
+ * dominantShifts: [
25
+ * { feature: "conditional_density", priorMean: 0.32, postMean: 0.09, z: 4.7 },
26
+ * ...
27
+ * ],
28
+ * hmac: "..." // forensic preservation
29
+ * }
30
+ *
31
+ * No paper / product surfaces silent model rotation from output alone.
32
+ *
33
+ * Wild value-adds this module ships:
34
+ * - WEBHOOK emit (optional): when molt detected, POST signed JSON
35
+ * to an opt-in endpoint so the user's CI / Slack / monitoring
36
+ * learns about the rotation automatically
37
+ * - DOMINANT-SHIFT CITATION: the 3 features that moved most → caller
38
+ * can write a court-admissible "vendor X silently rotated on Y"
39
+ * statement
40
+ *
41
+ * Composes: drift_timeline.readTimeline + a per-feature Welch-style
42
+ * comparison of pre/post means + variances.
43
+ *
44
+ * Pure deterministic + defensive; never throws.
45
+ */
46
+ export interface FeatureShift {
47
+ feature: string;
48
+ priorMean: number;
49
+ postMean: number;
50
+ priorStdev: number;
51
+ postStdev: number;
52
+ /** Welch-style t-like statistic. */
53
+ z: number;
54
+ /** Direction shorthand. */
55
+ direction: "increase" | "decrease" | "flat";
56
+ }
57
+ export interface MoltVerdict {
58
+ vendor: string;
59
+ molted: boolean;
60
+ /** Detected molt timestamp (latest post-window timestamp). */
61
+ moltedAt: string | null;
62
+ priorWindow: {
63
+ from: string;
64
+ to: string;
65
+ n: number;
66
+ };
67
+ postWindow: {
68
+ from: string;
69
+ to: string;
70
+ n: number;
71
+ };
72
+ dominantShifts: FeatureShift[];
73
+ /** HMAC over the canonical verdict body — forensic evidence. */
74
+ hmac: string;
75
+ /** Plain-English citation suitable for compliance / news report. */
76
+ citation: string;
77
+ }
78
+ /**
79
+ * Detect silent model rotation by comparing pre/post fingerprint
80
+ * distributions split at a given timestamp (default: midpoint by count).
81
+ *
82
+ * Defensive: missing vendor / empty timeline / not enough samples → returns
83
+ * molted=false with reason in citation.
84
+ */
85
+ export declare function detectMolt(repoRoot: string, vendor: string, opts?: {
86
+ sinceMs?: number;
87
+ splitAtMs?: number;
88
+ minZ?: number;
89
+ }): MoltVerdict;
90
+ /**
91
+ * Verify a MoltVerdict's HMAC. Returns true iff hmac matches the
92
+ * canonical body. Caller-side forensic check.
93
+ */
94
+ export declare function verifyMoltVerdict(v: MoltVerdict): boolean;
95
+ /**
96
+ * Optional webhook emit (HTTP POST). Returns ok=true on 2xx; defensive.
97
+ * Caller controls when to fire (e.g. only when verdict.molted).
98
+ */
99
+ export declare function emitMoltWebhook(verdict: MoltVerdict, webhookUrl: string): Promise<{
100
+ ok: boolean;
101
+ status?: number;
102
+ reason?: string;
103
+ }>;
104
+ //# sourceMappingURL=molt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"molt.d.ts","sourceRoot":"","sources":["../../src/nemesis/molt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAKH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,WAAW,CAqFb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAKzD;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAe1I"}