@mneme-ai/core 2.51.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.
- package/dist/agent_manifest.d.ts.map +1 -1
- package/dist/agent_manifest.js +18 -0
- package/dist/agent_manifest.js.map +1 -1
- package/dist/nemesis/capillary.d.ts +68 -0
- package/dist/nemesis/capillary.d.ts.map +1 -0
- package/dist/nemesis/capillary.js +465 -0
- package/dist/nemesis/capillary.js.map +1 -0
- package/dist/nemesis/colosseum.d.ts +111 -0
- package/dist/nemesis/colosseum.d.ts.map +1 -0
- package/dist/nemesis/colosseum.js +275 -0
- package/dist/nemesis/colosseum.js.map +1 -0
- package/dist/nemesis/index.d.ts +6 -0
- package/dist/nemesis/index.d.ts.map +1 -1
- package/dist/nemesis/index.js +23 -0
- package/dist/nemesis/index.js.map +1 -1
- package/dist/nemesis/molt.d.ts +104 -0
- package/dist/nemesis/molt.d.ts.map +1 -0
- package/dist/nemesis/molt.js +220 -0
- package/dist/nemesis/molt.js.map +1 -0
- package/dist/nemesis/sibyl.d.ts +122 -0
- package/dist/nemesis/sibyl.d.ts.map +1 -0
- package/dist/nemesis/sibyl.js +179 -0
- package/dist/nemesis/sibyl.js.map +1 -0
- package/dist/nemesis/stealth_score.d.ts +97 -0
- package/dist/nemesis/stealth_score.d.ts.map +1 -0
- package/dist/nemesis/stealth_score.js +204 -0
- package/dist/nemesis/stealth_score.js.map +1 -0
- package/dist/nemesis/themis.d.ts +109 -0
- package/dist/nemesis/themis.d.ts.map +1 -0
- package/dist/nemesis/themis.js +194 -0
- package/dist/nemesis/themis.js.map +1 -0
- package/dist/truth_gate/claims.d.ts.map +1 -1
- package/dist/truth_gate/claims.js +13 -0
- package/dist/truth_gate/claims.js.map +1 -1
- package/dist/truth_gate/probes.d.ts.map +1 -1
- package/dist/truth_gate/probes.js +95 -0
- package/dist/truth_gate/probes.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.52.0 — STEALTH SCORE (Diamond 1 / Million Dollar Secret series).
|
|
3
|
+
*
|
|
4
|
+
* Show mechanic: Eve won by being naturally undetectable — Devin's
|
|
5
|
+
* minimal-diff / empty-PR pattern is so weak NEMESIS can't lock onto
|
|
6
|
+
* her own real identity (0.484 conf), so she SURVIVES even while
|
|
7
|
+
* pretending to be Codex.
|
|
8
|
+
*
|
|
9
|
+
* Mneme primitive: invert NEMESIS classifier confidence into a
|
|
10
|
+
* 0..1 STEALTH SCORE. 0 = wearing a name tag; 1 = perfect ghost.
|
|
11
|
+
*
|
|
12
|
+
* Wild value the user pointed at:
|
|
13
|
+
* - Privacy mode for OSS contributors who don't want to advertise
|
|
14
|
+
* "this was AI-assisted"
|
|
15
|
+
* - Bug-bounty researchers reporting anonymously
|
|
16
|
+
* - Whistleblower protection — leak code, hide the tool
|
|
17
|
+
* - INVERSE compliance: HIPAA-mode codebases that LEGALLY can't have
|
|
18
|
+
* an external AI fingerprint hit → STEALTH SCORE becomes a risk
|
|
19
|
+
* metric (low stealth = compliance hazard)
|
|
20
|
+
*
|
|
21
|
+
* Wild idea this module adds on top:
|
|
22
|
+
* ANONYMITY-CREDIT LEDGER. Every commit that scores ≥ 0.7 stealth
|
|
23
|
+
* EARNS 1 credit, hash-chained. Every "anonymize this commit" call
|
|
24
|
+
* SPENDS credits. Forensic-evidence-grade anonymity budget so
|
|
25
|
+
* compliance + privacy claims can be proven against a tamper-evident
|
|
26
|
+
* record ("you spent 47 stealth credits in Q2 2026, all signed").
|
|
27
|
+
*
|
|
28
|
+
* Composes: classifier_calibrated.classifyAgentCalibrated +
|
|
29
|
+
* features.extractFingerprint + the cli-activity HMAC pattern.
|
|
30
|
+
*
|
|
31
|
+
* Pure deterministic + defensive; never throws.
|
|
32
|
+
*/
|
|
33
|
+
import { existsSync, mkdirSync, readFileSync, appendFileSync } from "node:fs";
|
|
34
|
+
import { join } from "node:path";
|
|
35
|
+
import { createHmac } from "node:crypto";
|
|
36
|
+
import { extractFingerprint } from "./features.js";
|
|
37
|
+
import { classifyAgentCalibrated } from "./classifier_calibrated.js";
|
|
38
|
+
/**
|
|
39
|
+
* Compute the stealth verdict for a fingerprint OR for a raw fixture
|
|
40
|
+
* (diff + prDescription + commitMessages). Pure.
|
|
41
|
+
*/
|
|
42
|
+
export function computeStealthScore(input) {
|
|
43
|
+
let fp;
|
|
44
|
+
if ("multiline_commit_ratio" in input) {
|
|
45
|
+
fp = input;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
fp = extractFingerprint(input);
|
|
49
|
+
}
|
|
50
|
+
const verdict = classifyAgentCalibrated(fp);
|
|
51
|
+
const conf = clamp01(verdict.confidence);
|
|
52
|
+
const stealth = 1 - conf;
|
|
53
|
+
const band = bandFor(stealth);
|
|
54
|
+
const creditsEarnable = stealth >= 0.7 ? Math.floor(stealth * 10) : 0;
|
|
55
|
+
const evidence = `${verdict.topVendor} confidence ${conf.toFixed(3)} → stealth ${stealth.toFixed(3)} (${band})`;
|
|
56
|
+
return {
|
|
57
|
+
stealthScore: stealth,
|
|
58
|
+
topVendor: verdict.topVendor,
|
|
59
|
+
detectionConfidence: conf,
|
|
60
|
+
band,
|
|
61
|
+
evidence,
|
|
62
|
+
creditsEarnable,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function clamp01(n) {
|
|
66
|
+
if (!Number.isFinite(n))
|
|
67
|
+
return 0;
|
|
68
|
+
if (n < 0)
|
|
69
|
+
return 0;
|
|
70
|
+
if (n > 1)
|
|
71
|
+
return 1;
|
|
72
|
+
return n;
|
|
73
|
+
}
|
|
74
|
+
function bandFor(stealth) {
|
|
75
|
+
if (stealth < 0.20)
|
|
76
|
+
return "exposed";
|
|
77
|
+
if (stealth < 0.40)
|
|
78
|
+
return "visible";
|
|
79
|
+
if (stealth < 0.60)
|
|
80
|
+
return "partial-cover";
|
|
81
|
+
if (stealth < 0.80)
|
|
82
|
+
return "stealth";
|
|
83
|
+
return "ghost";
|
|
84
|
+
}
|
|
85
|
+
// ════════════════════════════════════════════════════════════════════
|
|
86
|
+
// ANONYMITY-CREDIT LEDGER (the "wild twist")
|
|
87
|
+
// ════════════════════════════════════════════════════════════════════
|
|
88
|
+
const LEDGER_FILE = ".mneme/nemesis/anonymity_credits.jsonl";
|
|
89
|
+
const SEED = "0".repeat(64);
|
|
90
|
+
const KEY_ENV = "MNEME_STEALTH_LEDGER_KEY";
|
|
91
|
+
const DEFAULT_KEY = "mneme-anonymity-credits-v1";
|
|
92
|
+
function keyOf() {
|
|
93
|
+
return process.env[KEY_ENV] ?? DEFAULT_KEY;
|
|
94
|
+
}
|
|
95
|
+
function readLedger(repoRoot) {
|
|
96
|
+
const path = join(repoRoot, LEDGER_FILE);
|
|
97
|
+
if (!existsSync(path))
|
|
98
|
+
return [];
|
|
99
|
+
try {
|
|
100
|
+
const txt = readFileSync(path, "utf8");
|
|
101
|
+
const out = [];
|
|
102
|
+
for (const line of txt.split("\n")) {
|
|
103
|
+
if (!line.trim())
|
|
104
|
+
continue;
|
|
105
|
+
try {
|
|
106
|
+
out.push(JSON.parse(line));
|
|
107
|
+
}
|
|
108
|
+
catch { /* skip */ }
|
|
109
|
+
}
|
|
110
|
+
return out;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function balanceFromLedger(rows) {
|
|
117
|
+
if (rows.length === 0)
|
|
118
|
+
return 0;
|
|
119
|
+
return rows[rows.length - 1].balanceAfter;
|
|
120
|
+
}
|
|
121
|
+
function appendLedger(repoRoot, row, balanceAfter) {
|
|
122
|
+
try {
|
|
123
|
+
mkdirSync(join(repoRoot, ".mneme/nemesis"), { recursive: true });
|
|
124
|
+
}
|
|
125
|
+
catch { /* ok */ }
|
|
126
|
+
const existing = readLedger(repoRoot);
|
|
127
|
+
const prev = existing.length === 0 ? SEED : existing[existing.length - 1].hmac;
|
|
128
|
+
const body = { ...row, balanceAfter, prev };
|
|
129
|
+
const hmac = createHmac("sha256", keyOf()).update(JSON.stringify(body)).digest("hex");
|
|
130
|
+
const full = { ...body, hmac };
|
|
131
|
+
try {
|
|
132
|
+
appendFileSync(join(repoRoot, LEDGER_FILE), JSON.stringify(full) + "\n");
|
|
133
|
+
}
|
|
134
|
+
catch { /* best-effort */ }
|
|
135
|
+
return full;
|
|
136
|
+
}
|
|
137
|
+
/** Earn credits from a stealth verdict (no-op when band too visible). */
|
|
138
|
+
export function earnAnonymityCredits(repoRoot, verdict, contextRef) {
|
|
139
|
+
if (verdict.creditsEarnable <= 0) {
|
|
140
|
+
return { earned: 0, newBalance: balanceFromLedger(readLedger(repoRoot)), rejected: `band="${verdict.band}" is below earning threshold` };
|
|
141
|
+
}
|
|
142
|
+
const balanceBefore = balanceFromLedger(readLedger(repoRoot));
|
|
143
|
+
const newBalance = balanceBefore + verdict.creditsEarnable;
|
|
144
|
+
appendLedger(repoRoot, {
|
|
145
|
+
at: new Date().toISOString(),
|
|
146
|
+
kind: "earn",
|
|
147
|
+
amount: verdict.creditsEarnable,
|
|
148
|
+
context: `${contextRef} @ stealth=${verdict.stealthScore.toFixed(3)} (${verdict.band})`,
|
|
149
|
+
}, newBalance);
|
|
150
|
+
return { earned: verdict.creditsEarnable, newBalance };
|
|
151
|
+
}
|
|
152
|
+
/** Spend credits for an anonymize action. Returns insufficient when low. */
|
|
153
|
+
export function spendAnonymityCredits(repoRoot, amount, contextRef) {
|
|
154
|
+
if (!Number.isFinite(amount) || amount <= 0) {
|
|
155
|
+
return { spent: 0, newBalance: balanceFromLedger(readLedger(repoRoot)), rejected: "amount must be > 0" };
|
|
156
|
+
}
|
|
157
|
+
const balanceBefore = balanceFromLedger(readLedger(repoRoot));
|
|
158
|
+
if (balanceBefore < amount) {
|
|
159
|
+
return { spent: 0, newBalance: balanceBefore, rejected: `insufficient: have ${balanceBefore}, need ${amount}` };
|
|
160
|
+
}
|
|
161
|
+
const newBalance = balanceBefore - amount;
|
|
162
|
+
appendLedger(repoRoot, {
|
|
163
|
+
at: new Date().toISOString(),
|
|
164
|
+
kind: "spend",
|
|
165
|
+
amount,
|
|
166
|
+
context: contextRef,
|
|
167
|
+
}, newBalance);
|
|
168
|
+
return { spent: amount, newBalance };
|
|
169
|
+
}
|
|
170
|
+
/** Current balance + last 10 rows for diagnostics. */
|
|
171
|
+
export function stealthCreditStatus(repoRoot) {
|
|
172
|
+
const rows = readLedger(repoRoot);
|
|
173
|
+
let earned = 0;
|
|
174
|
+
let spent = 0;
|
|
175
|
+
for (const r of rows) {
|
|
176
|
+
if (r.kind === "earn")
|
|
177
|
+
earned += r.amount;
|
|
178
|
+
else
|
|
179
|
+
spent += r.amount;
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
balance: balanceFromLedger(rows),
|
|
183
|
+
totalEarned: earned,
|
|
184
|
+
totalSpent: spent,
|
|
185
|
+
lastRows: rows.slice(-10),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/** Verify the HMAC chain of the anonymity ledger (tamper-evident). */
|
|
189
|
+
export function verifyStealthLedger(repoRoot) {
|
|
190
|
+
const rows = readLedger(repoRoot);
|
|
191
|
+
let prev = SEED;
|
|
192
|
+
for (let i = 0; i < rows.length; i++) {
|
|
193
|
+
const r = rows[i];
|
|
194
|
+
const { hmac, ...body } = r;
|
|
195
|
+
if (body.prev !== prev)
|
|
196
|
+
return { ok: false, rows: i, brokenAt: i, reason: "prev mismatch" };
|
|
197
|
+
const expected = createHmac("sha256", keyOf()).update(JSON.stringify(body)).digest("hex");
|
|
198
|
+
if (expected !== hmac)
|
|
199
|
+
return { ok: false, rows: i, brokenAt: i, reason: "hmac mismatch" };
|
|
200
|
+
prev = hmac;
|
|
201
|
+
}
|
|
202
|
+
return { ok: true, rows: rows.length };
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=stealth_score.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stealth_score.js","sourceRoot":"","sources":["../../src/nemesis/stealth_score.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.52.0 — THEMIS (Diamond 5 / Million Dollar Secret series).
|
|
3
|
+
*
|
|
4
|
+
* Show mechanic: contestants must PROVE they're NOT the millionaire
|
|
5
|
+
* — alibi-based defense. Mirror of NEMESIS verify_identity (accusation)
|
|
6
|
+
* → THEMIS verify_alibi (defense).
|
|
7
|
+
*
|
|
8
|
+
* Use case: EU AI Act compliance defense. Auditor asks "did you use
|
|
9
|
+
* Devin to generate this code?" → company runs THEMIS → returns
|
|
10
|
+
* star-rated evidence per feature that the fingerprint diverges from
|
|
11
|
+
* the suspect vendor's calibration. Court-admissible because each
|
|
12
|
+
* feature carries its own z-score against the seed corpus.
|
|
13
|
+
*
|
|
14
|
+
* The output is SPECIFICALLY designed to look like a legal alibi:
|
|
15
|
+
*
|
|
16
|
+
* ALIBI: CONFIRMED · you are NOT codex
|
|
17
|
+
* Evidence (★ = z-score band, ★★★★★ = farthest from suspect):
|
|
18
|
+
* ★★★★★ multiline_commit_ratio = 0.04 (codex mean 0.78)
|
|
19
|
+
* ★★★★ conditional_density = 0.31 (codex mean 0.08)
|
|
20
|
+
* ★★★ pr_desc_length = 12 (codex mean 540)
|
|
21
|
+
*
|
|
22
|
+
* No paper / product offers "AI alibi" as primitive. NEMESIS classify
|
|
23
|
+
* returns IMPOSSIBLE — useful for offense. THEMIS returns ALIBI_CONFIRMED
|
|
24
|
+
* with star-rated divergence — useful for defense.
|
|
25
|
+
*
|
|
26
|
+
* Wild value-adds this module ships:
|
|
27
|
+
* - COMPLIANCE BUNDLE: pair THEMIS verdict with EU AI Act Article 50
|
|
28
|
+
* stamp + HMAC → court-admissible "compliance proof bundle" that
|
|
29
|
+
* auditor can verify offline
|
|
30
|
+
* - CONFIDENCE INTERVAL on the alibi strength (95% CI from per-feature
|
|
31
|
+
* z-scores)
|
|
32
|
+
*
|
|
33
|
+
* Composes: extractFingerprint + seedStats from calibration_corpus +
|
|
34
|
+
* createHmac for signing.
|
|
35
|
+
*
|
|
36
|
+
* Pure deterministic + defensive; never throws.
|
|
37
|
+
*/
|
|
38
|
+
import type { Fingerprint, VendorId } from "./types.js";
|
|
39
|
+
export interface AlibiEvidenceItem {
|
|
40
|
+
feature: string;
|
|
41
|
+
observed: number;
|
|
42
|
+
suspectMean: number;
|
|
43
|
+
suspectStdev: number;
|
|
44
|
+
/** z-score: |(observed - mean) / max(stdev, ε)|. Higher = stronger alibi. */
|
|
45
|
+
z: number;
|
|
46
|
+
/** 1..5 ★ band. */
|
|
47
|
+
stars: number;
|
|
48
|
+
}
|
|
49
|
+
export type AlibiVerdict = "CONFIRMED" | "DENIED" | "INCONCLUSIVE";
|
|
50
|
+
export interface ThemisResult {
|
|
51
|
+
/** Vendor the caller is claiming they are NOT. */
|
|
52
|
+
notVendor: string;
|
|
53
|
+
verdict: AlibiVerdict;
|
|
54
|
+
/** 0..1 — strength of the alibi (mean z-score across top features, normalized). */
|
|
55
|
+
alibiStrength: number;
|
|
56
|
+
/** 95% CI half-width over the per-feature z-scores. */
|
|
57
|
+
ci95: number;
|
|
58
|
+
/** Star-rated evidence items, strongest first. */
|
|
59
|
+
evidence: AlibiEvidenceItem[];
|
|
60
|
+
/** Plain-English statement suitable for a compliance bundle. */
|
|
61
|
+
statement: string;
|
|
62
|
+
/** HMAC over the canonical verdict body. */
|
|
63
|
+
hmac: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ThemisInput {
|
|
66
|
+
/** Vendor the claimant is denying. */
|
|
67
|
+
notVendor: VendorId | string;
|
|
68
|
+
/** EITHER a pre-computed fingerprint OR a raw fixture. */
|
|
69
|
+
fixture?: {
|
|
70
|
+
diff: string;
|
|
71
|
+
prDescription: string;
|
|
72
|
+
commitMessages: string[];
|
|
73
|
+
};
|
|
74
|
+
fingerprint?: Fingerprint;
|
|
75
|
+
/** Minimum stars to include feature in evidence (default 3). */
|
|
76
|
+
minStars?: number;
|
|
77
|
+
/** Max evidence items to surface (default 8). */
|
|
78
|
+
maxEvidence?: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Compute the alibi verdict for "I am NOT vendor X".
|
|
82
|
+
* Defensive: missing inputs → INCONCLUSIVE with reason in statement.
|
|
83
|
+
*/
|
|
84
|
+
export declare function verifyAlibi(input: ThemisInput): ThemisResult;
|
|
85
|
+
/** Verify a ThemisResult's HMAC. */
|
|
86
|
+
export declare function verifyAlibiSignature(r: ThemisResult): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* COMPLIANCE BUNDLE: pair a THEMIS alibi with an EU AI Act Article 50
|
|
89
|
+
* stamp (if available) and return a signed bundle suitable for sharing
|
|
90
|
+
* with auditors. Pure assembly; never throws.
|
|
91
|
+
*/
|
|
92
|
+
export interface ComplianceBundle {
|
|
93
|
+
bundleId: string;
|
|
94
|
+
at: string;
|
|
95
|
+
alibi: ThemisResult;
|
|
96
|
+
stamp?: {
|
|
97
|
+
block: string;
|
|
98
|
+
hmac: string;
|
|
99
|
+
version: string;
|
|
100
|
+
};
|
|
101
|
+
hmac: string;
|
|
102
|
+
}
|
|
103
|
+
export declare function buildComplianceBundle(alibi: ThemisResult, stamp?: {
|
|
104
|
+
block: string;
|
|
105
|
+
hmac: string;
|
|
106
|
+
version: string;
|
|
107
|
+
}): ComplianceBundle;
|
|
108
|
+
export declare function verifyComplianceBundle(b: ComplianceBundle): boolean;
|
|
109
|
+
//# sourceMappingURL=themis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themis.d.ts","sourceRoot":"","sources":["../../src/nemesis/themis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKxD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,CAAC,EAAE,MAAM,CAAC;IACV,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AA6BD,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAyE5D;AAkBD,oCAAoC;AACpC,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAK7D;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD,gBAAgB,CAMlB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAMnE"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.52.0 — THEMIS (Diamond 5 / Million Dollar Secret series).
|
|
3
|
+
*
|
|
4
|
+
* Show mechanic: contestants must PROVE they're NOT the millionaire
|
|
5
|
+
* — alibi-based defense. Mirror of NEMESIS verify_identity (accusation)
|
|
6
|
+
* → THEMIS verify_alibi (defense).
|
|
7
|
+
*
|
|
8
|
+
* Use case: EU AI Act compliance defense. Auditor asks "did you use
|
|
9
|
+
* Devin to generate this code?" → company runs THEMIS → returns
|
|
10
|
+
* star-rated evidence per feature that the fingerprint diverges from
|
|
11
|
+
* the suspect vendor's calibration. Court-admissible because each
|
|
12
|
+
* feature carries its own z-score against the seed corpus.
|
|
13
|
+
*
|
|
14
|
+
* The output is SPECIFICALLY designed to look like a legal alibi:
|
|
15
|
+
*
|
|
16
|
+
* ALIBI: CONFIRMED · you are NOT codex
|
|
17
|
+
* Evidence (★ = z-score band, ★★★★★ = farthest from suspect):
|
|
18
|
+
* ★★★★★ multiline_commit_ratio = 0.04 (codex mean 0.78)
|
|
19
|
+
* ★★★★ conditional_density = 0.31 (codex mean 0.08)
|
|
20
|
+
* ★★★ pr_desc_length = 12 (codex mean 540)
|
|
21
|
+
*
|
|
22
|
+
* No paper / product offers "AI alibi" as primitive. NEMESIS classify
|
|
23
|
+
* returns IMPOSSIBLE — useful for offense. THEMIS returns ALIBI_CONFIRMED
|
|
24
|
+
* with star-rated divergence — useful for defense.
|
|
25
|
+
*
|
|
26
|
+
* Wild value-adds this module ships:
|
|
27
|
+
* - COMPLIANCE BUNDLE: pair THEMIS verdict with EU AI Act Article 50
|
|
28
|
+
* stamp + HMAC → court-admissible "compliance proof bundle" that
|
|
29
|
+
* auditor can verify offline
|
|
30
|
+
* - CONFIDENCE INTERVAL on the alibi strength (95% CI from per-feature
|
|
31
|
+
* z-scores)
|
|
32
|
+
*
|
|
33
|
+
* Composes: extractFingerprint + seedStats from calibration_corpus +
|
|
34
|
+
* createHmac for signing.
|
|
35
|
+
*
|
|
36
|
+
* Pure deterministic + defensive; never throws.
|
|
37
|
+
*/
|
|
38
|
+
import { createHmac } from "node:crypto";
|
|
39
|
+
import { extractFingerprint } from "./features.js";
|
|
40
|
+
import { seedStats } from "./calibration_corpus.js";
|
|
41
|
+
const KEY_ENV = "MNEME_THEMIS_KEY";
|
|
42
|
+
const DEFAULT_KEY = "mneme-themis-v1";
|
|
43
|
+
function keyOf() {
|
|
44
|
+
return process.env[KEY_ENV] ?? DEFAULT_KEY;
|
|
45
|
+
}
|
|
46
|
+
function starsFor(z) {
|
|
47
|
+
if (z < 0.5)
|
|
48
|
+
return 1;
|
|
49
|
+
if (z < 1.5)
|
|
50
|
+
return 2;
|
|
51
|
+
if (z < 2.5)
|
|
52
|
+
return 3;
|
|
53
|
+
if (z < 3.5)
|
|
54
|
+
return 4;
|
|
55
|
+
return 5;
|
|
56
|
+
}
|
|
57
|
+
function normalize(values) {
|
|
58
|
+
if (values.length === 0)
|
|
59
|
+
return 0;
|
|
60
|
+
const sum = values.reduce((a, b) => a + b, 0);
|
|
61
|
+
const mean = sum / values.length;
|
|
62
|
+
return Math.min(1, mean / 5); // 5σ → 1.0
|
|
63
|
+
}
|
|
64
|
+
function ci95Half(values) {
|
|
65
|
+
if (values.length < 2)
|
|
66
|
+
return 0;
|
|
67
|
+
const mean = values.reduce((a, b) => a + b, 0) / values.length;
|
|
68
|
+
const variance = values.reduce((s, v) => s + (v - mean) ** 2, 0) / (values.length - 1);
|
|
69
|
+
const stdev = Math.sqrt(variance);
|
|
70
|
+
return 1.96 * stdev / Math.sqrt(values.length);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Compute the alibi verdict for "I am NOT vendor X".
|
|
74
|
+
* Defensive: missing inputs → INCONCLUSIVE with reason in statement.
|
|
75
|
+
*/
|
|
76
|
+
export function verifyAlibi(input) {
|
|
77
|
+
const notVendor = String(input?.notVendor ?? "");
|
|
78
|
+
const minStars = input?.minStars ?? 3;
|
|
79
|
+
const maxEvidence = input?.maxEvidence ?? 8;
|
|
80
|
+
const inconclusiveBody = {
|
|
81
|
+
notVendor,
|
|
82
|
+
verdict: "INCONCLUSIVE",
|
|
83
|
+
alibiStrength: 0,
|
|
84
|
+
ci95: 0,
|
|
85
|
+
evidence: [],
|
|
86
|
+
statement: "",
|
|
87
|
+
};
|
|
88
|
+
if (!notVendor) {
|
|
89
|
+
const body = { ...inconclusiveBody, statement: "THEMIS: missing notVendor — supply the vendor you are denying." };
|
|
90
|
+
return signed(body);
|
|
91
|
+
}
|
|
92
|
+
let fp;
|
|
93
|
+
try {
|
|
94
|
+
if (input.fingerprint)
|
|
95
|
+
fp = input.fingerprint;
|
|
96
|
+
else if (input.fixture)
|
|
97
|
+
fp = extractFingerprint(input.fixture);
|
|
98
|
+
else {
|
|
99
|
+
const body = { ...inconclusiveBody, statement: "THEMIS: supply fingerprint OR fixture." };
|
|
100
|
+
return signed(body);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
const body = { ...inconclusiveBody, statement: "THEMIS: fingerprint extraction failed." };
|
|
105
|
+
return signed(body);
|
|
106
|
+
}
|
|
107
|
+
// Pull stats for the suspect vendor
|
|
108
|
+
let stats;
|
|
109
|
+
try {
|
|
110
|
+
stats = seedStats();
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
const body = { ...inconclusiveBody, statement: "THEMIS: calibration corpus unavailable." };
|
|
114
|
+
return signed(body);
|
|
115
|
+
}
|
|
116
|
+
const suspectStats = stats.get(notVendor);
|
|
117
|
+
if (!suspectStats) {
|
|
118
|
+
const body = { ...inconclusiveBody, statement: `THEMIS: no calibration for "${notVendor}" — alibi cannot be computed.` };
|
|
119
|
+
return signed(body);
|
|
120
|
+
}
|
|
121
|
+
// Per-feature z + stars
|
|
122
|
+
const items = [];
|
|
123
|
+
for (const [k, observed] of Object.entries(fp)) {
|
|
124
|
+
const featureStats = suspectStats.features[k];
|
|
125
|
+
if (!featureStats)
|
|
126
|
+
continue;
|
|
127
|
+
const stdev = Math.max(featureStats.stdev, Math.abs(featureStats.mean) * 0.1, 1e-3);
|
|
128
|
+
const z = Math.abs((observed - featureStats.mean) / stdev);
|
|
129
|
+
if (!Number.isFinite(z))
|
|
130
|
+
continue;
|
|
131
|
+
const stars = starsFor(z);
|
|
132
|
+
items.push({
|
|
133
|
+
feature: k,
|
|
134
|
+
observed: observed,
|
|
135
|
+
suspectMean: featureStats.mean,
|
|
136
|
+
suspectStdev: featureStats.stdev,
|
|
137
|
+
z,
|
|
138
|
+
stars,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
items.sort((a, b) => b.z - a.z);
|
|
142
|
+
const filtered = items.filter((i) => i.stars >= minStars).slice(0, maxEvidence);
|
|
143
|
+
const zs = filtered.map((i) => i.z);
|
|
144
|
+
const alibiStrength = normalize(zs);
|
|
145
|
+
const ci95 = ci95Half(zs);
|
|
146
|
+
let verdict;
|
|
147
|
+
if (alibiStrength >= 0.6 && filtered.length >= 3)
|
|
148
|
+
verdict = "CONFIRMED";
|
|
149
|
+
else if (alibiStrength < 0.2 && items.length >= 5)
|
|
150
|
+
verdict = "DENIED";
|
|
151
|
+
else
|
|
152
|
+
verdict = "INCONCLUSIVE";
|
|
153
|
+
const statement = buildStatement(notVendor, verdict, alibiStrength, ci95, filtered);
|
|
154
|
+
return signed({ notVendor, verdict, alibiStrength, ci95, evidence: filtered, statement });
|
|
155
|
+
}
|
|
156
|
+
function signed(body) {
|
|
157
|
+
const hmac = createHmac("sha256", keyOf()).update(JSON.stringify(body)).digest("hex");
|
|
158
|
+
return { ...body, hmac };
|
|
159
|
+
}
|
|
160
|
+
function buildStatement(notVendor, verdict, strength, ci95, evidence) {
|
|
161
|
+
if (verdict === "INCONCLUSIVE") {
|
|
162
|
+
return `ALIBI INCONCLUSIVE for "NOT ${notVendor}" — fingerprint diverges only weakly (strength=${strength.toFixed(2)}, 95%CI±${ci95.toFixed(2)}).`;
|
|
163
|
+
}
|
|
164
|
+
if (verdict === "DENIED") {
|
|
165
|
+
return `ALIBI DENIED for "NOT ${notVendor}" — fingerprint matches ${notVendor}'s calibration too closely (strength=${strength.toFixed(2)}).`;
|
|
166
|
+
}
|
|
167
|
+
const top = evidence.slice(0, 3).map((e) => `${"★".repeat(e.stars)} ${e.feature}=${e.observed.toFixed(3)} (${notVendor} mean ${e.suspectMean.toFixed(3)})`).join("; ");
|
|
168
|
+
return `ALIBI CONFIRMED — fingerprint diverges from ${notVendor} with strength ${strength.toFixed(2)} (95%CI±${ci95.toFixed(2)}). Top evidence: ${top}.`;
|
|
169
|
+
}
|
|
170
|
+
/** Verify a ThemisResult's HMAC. */
|
|
171
|
+
export function verifyAlibiSignature(r) {
|
|
172
|
+
if (!r || typeof r.hmac !== "string")
|
|
173
|
+
return false;
|
|
174
|
+
const { hmac, ...body } = r;
|
|
175
|
+
const expected = createHmac("sha256", keyOf()).update(JSON.stringify(body)).digest("hex");
|
|
176
|
+
return expected === hmac;
|
|
177
|
+
}
|
|
178
|
+
export function buildComplianceBundle(alibi, stamp) {
|
|
179
|
+
const bundleId = `BNDL-${Date.now().toString(36)}`;
|
|
180
|
+
const at = new Date().toISOString();
|
|
181
|
+
const body = { bundleId, at, alibi, stamp };
|
|
182
|
+
const hmac = createHmac("sha256", keyOf()).update(JSON.stringify(body)).digest("hex");
|
|
183
|
+
return { ...body, hmac };
|
|
184
|
+
}
|
|
185
|
+
export function verifyComplianceBundle(b) {
|
|
186
|
+
if (!b || typeof b.hmac !== "string")
|
|
187
|
+
return false;
|
|
188
|
+
const { hmac, ...body } = b;
|
|
189
|
+
const expected = createHmac("sha256", keyOf()).update(JSON.stringify(body)).digest("hex");
|
|
190
|
+
if (expected !== hmac)
|
|
191
|
+
return false;
|
|
192
|
+
return verifyAlibiSignature(b.alibi);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=themis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themis.js","sourceRoot":"","sources":["../../src/nemesis/themis.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,
|
|
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,CA2R9C,CAAC"}
|
|
@@ -222,6 +222,19 @@ export const CLAIM_CATALOG = [
|
|
|
222
222
|
probeId: "probe.activity.vendor_field_never_embedder",
|
|
223
223
|
severity: "block",
|
|
224
224
|
},
|
|
225
|
+
// ── v2.52.0 — MILLION DOLLAR SECRET DIAMONDS binding ────────────────
|
|
226
|
+
// Inspired by the Netflix identity-deception reality show: 6 NEMESIS
|
|
227
|
+
// extensions that turn fingerprinting into competitive / forensic /
|
|
228
|
+
// privacy primitives.
|
|
229
|
+
{
|
|
230
|
+
id: "claim.nemesis.million_dollar_diamonds",
|
|
231
|
+
source: "v2.52.0 release notes",
|
|
232
|
+
text: "Mneme ships 6 NEMESIS extensions (STEALTH SCORE / CAPILLARY 50+ micro-tells / COLOSSEUM auto-tournament with 3-axis HMAC leaderboard / MOLT silent model-rotation detector / THEMIS alibi verifier / SIBYL ZK identity commitment) — each functional in-process every TRUTH GATE run",
|
|
233
|
+
kind: "numeric",
|
|
234
|
+
asserted: { value: 1, op: "=", unit: "boolean" },
|
|
235
|
+
probeId: "probe.nemesis.million_dollar_diamonds",
|
|
236
|
+
severity: "block",
|
|
237
|
+
},
|
|
225
238
|
// ── v2.51.0 — AUDIT REPRODUCTION SUITE binding ──────────────────────
|
|
226
239
|
// Closes "audit-perception" gap: external audit screenshots claimed
|
|
227
240
|
// regressions on edge-case verdict / schema-bypass / throughput /
|
|
@@ -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;
|
|
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;AAuiCnE,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"}
|