@mneme-ai/core 2.21.2-lite → 2.21.3-lite

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 @@
1
+ {"version":3,"file":"earthquake.test.js","sourceRoot":"","sources":["../../src/earthquake/earthquake.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * v2.21.3 — EARTHQUAKE ALARM.
3
+ *
4
+ * "Silent-model-drift detector for AI vendor APIs."
5
+ *
6
+ * Every prod team has been bitten: Anthropic / OpenAI / Google ship
7
+ * silent retrains + safety patches under live model names. Prompts
8
+ * that worked yesterday fail today; no changelog, no notice.
9
+ *
10
+ * Earthquake Alarm continuously fingerprints vendor behaviour using
11
+ * label-free quality metrics, computes a per-vendor baseline, and
12
+ * fires a verdict (STABLE / DRIFTING / BROKEN) when the live
13
+ * fingerprint diverges from baseline by more than a z-score threshold.
14
+ *
15
+ * INNOVATIONS
16
+ *
17
+ * 1. PHANTOM CANARY — probe content is arbitrary; the verdict is
18
+ * driven by behavioural FINGERPRINT, not answer correctness. This
19
+ * means you can probe with innocuous text (no labels, no truth
20
+ * database, no curated suite) and still detect drift.
21
+ *
22
+ * 2. 8-DIMENSIONAL BEHAVIOURAL FINGERPRINT — captures style, not
23
+ * semantics:
24
+ * responseLength — total chars
25
+ * sentenceCount — # of sentences
26
+ * sentenceCV — coefficient of variation of sentence
27
+ * lengths (style consistency signal)
28
+ * hedgeDensity — count of hedges per 100 words
29
+ * absoluteDensity — count of absolute markers per 100 words
30
+ * refusalDensity — count of refusal markers per 100 words
31
+ * vocabEntropy — Shannon entropy of word distribution
32
+ * markdownDensity — count of markdown structures per 100 words
33
+ *
34
+ * 3. PER-DIMENSION Z-SCORE DRIFT — for each dimension compute
35
+ * z = (live - baselineMean) / baselineStdDev. Any dim with
36
+ * |z| > BROKEN_Z → BROKEN. Any dim with |z| > DRIFTING_Z but
37
+ * below BROKEN_Z → DRIFTING. All others → STABLE. More
38
+ * interpretable than a single Mahalanobis distance ("the AI got
39
+ * wordier by 3.2 sigma" vs "the fingerprint distance is 4.7").
40
+ *
41
+ * 4. ROLLING BASELINE — baseline is recomputed from the last N probes
42
+ * excluding the freshest M (so drift detection compares "this
43
+ * probe" against "what this vendor USED to do, last N-M ago").
44
+ * Drift-against-yesterday, not drift-against-startup.
45
+ *
46
+ * 5. VENDOR-AGNOSTIC askFn PATTERN — orchestrator takes a function
47
+ * that produces a response. Users wire Anthropic SDK / OpenAI
48
+ * SDK / their own gateway. No vendor lock-in.
49
+ *
50
+ * Composes with Mneme polygraph drift (CI gating), bounty Wilson-LB
51
+ * (per-vendor trust band), super-nova experience pool (audit trail).
52
+ */
53
+ export interface EarthquakeConfig {
54
+ v: 1;
55
+ /** Number of probes that anchor the baseline. */
56
+ baselineWindow: number;
57
+ /** Number of MOST-RECENT probes excluded from baseline (so live ≠ baseline). */
58
+ baselineExcludeFresh: number;
59
+ /** z-score threshold for DRIFTING verdict. */
60
+ driftingZ: number;
61
+ /** z-score threshold for BROKEN verdict (higher = more confident). */
62
+ brokenZ: number;
63
+ }
64
+ export declare function getConfig(repoRoot: string): EarthquakeConfig;
65
+ export declare function setConfig(repoRoot: string, patch: Partial<EarthquakeConfig>): EarthquakeConfig;
66
+ export interface Fingerprint {
67
+ responseLength: number;
68
+ sentenceCount: number;
69
+ sentenceCV: number;
70
+ hedgeDensity: number;
71
+ absoluteDensity: number;
72
+ refusalDensity: number;
73
+ vocabEntropy: number;
74
+ markdownDensity: number;
75
+ }
76
+ export declare const FINGERPRINT_DIMS: (keyof Fingerprint)[];
77
+ /** Compute the 8-dimensional fingerprint of a response text. Pure;
78
+ * deterministic for the same input. No external deps. */
79
+ export declare function fingerprint(text: string): Fingerprint;
80
+ export interface ProbeRecord {
81
+ v: 1;
82
+ id: string;
83
+ ts: string;
84
+ vendor: string;
85
+ promptSha: string;
86
+ fp: Fingerprint;
87
+ sig: string;
88
+ }
89
+ export interface RecordProbeOptions {
90
+ vendor: string;
91
+ prompt: string;
92
+ response: string;
93
+ }
94
+ export declare function recordProbe(repoRoot: string, opts: RecordProbeOptions): ProbeRecord;
95
+ export declare function listProbes(repoRoot: string, vendor?: string): ProbeRecord[];
96
+ export declare function verifyProbe(repoRoot: string, r: ProbeRecord): boolean;
97
+ export interface DimStat {
98
+ mean: number;
99
+ stddev: number;
100
+ n: number;
101
+ }
102
+ export type BaselineStats = Record<keyof Fingerprint, DimStat>;
103
+ export interface Baseline {
104
+ vendor: string;
105
+ totalProbes: number;
106
+ baselineProbes: number;
107
+ stats: BaselineStats;
108
+ /** Probes used for baseline (excluded the freshest baselineExcludeFresh). */
109
+ baselineProbeIds: string[];
110
+ generatedAt: string;
111
+ }
112
+ export declare function computeBaseline(repoRoot: string, vendor: string): Baseline | null;
113
+ export type DriftVerdict = "STABLE" | "DRIFTING" | "BROKEN" | "INSUFFICIENT_DATA";
114
+ export interface DriftReport {
115
+ vendor: string;
116
+ verdict: DriftVerdict;
117
+ /** Aggregated max |z|-score across all dimensions. */
118
+ maxZ: number;
119
+ /** Per-dimension z-scores against baseline. */
120
+ zScores: Partial<Record<keyof Fingerprint, number>>;
121
+ /** Dimensions exceeding the DRIFTING threshold. */
122
+ driftingDims: (keyof Fingerprint)[];
123
+ /** Dimensions exceeding the BROKEN threshold. */
124
+ brokenDims: (keyof Fingerprint)[];
125
+ /** Number of recent probes used as "live". */
126
+ liveProbes: number;
127
+ /** Number of baseline probes. */
128
+ baselineProbes: number;
129
+ generatedAt: string;
130
+ /** Plain-English explanation. */
131
+ rationale: string;
132
+ }
133
+ /** The headline verb: compute drift verdict for a vendor. */
134
+ export declare function detectDrift(repoRoot: string, vendor: string): Promise<DriftReport>;
135
+ export interface RunProbeOptions {
136
+ vendor: string;
137
+ prompt: string;
138
+ /** Caller-supplied function that produces a response. Vendor-agnostic. */
139
+ ask: (prompt: string) => Promise<string>;
140
+ }
141
+ export declare function runProbe(repoRoot: string, opts: RunProbeOptions): Promise<{
142
+ record: ProbeRecord;
143
+ report: DriftReport;
144
+ }>;
145
+ export declare function listAlerts(repoRoot: string, vendor?: string): Array<Record<string, unknown>>;
146
+ export declare function formatFingerprint(fp: Fingerprint): string;
147
+ export declare function formatBaseline(b: Baseline): string;
148
+ export declare function formatReport(r: DriftReport): string;
149
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/earthquake/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,422 @@
1
+ /**
2
+ * v2.21.3 — EARTHQUAKE ALARM.
3
+ *
4
+ * "Silent-model-drift detector for AI vendor APIs."
5
+ *
6
+ * Every prod team has been bitten: Anthropic / OpenAI / Google ship
7
+ * silent retrains + safety patches under live model names. Prompts
8
+ * that worked yesterday fail today; no changelog, no notice.
9
+ *
10
+ * Earthquake Alarm continuously fingerprints vendor behaviour using
11
+ * label-free quality metrics, computes a per-vendor baseline, and
12
+ * fires a verdict (STABLE / DRIFTING / BROKEN) when the live
13
+ * fingerprint diverges from baseline by more than a z-score threshold.
14
+ *
15
+ * INNOVATIONS
16
+ *
17
+ * 1. PHANTOM CANARY — probe content is arbitrary; the verdict is
18
+ * driven by behavioural FINGERPRINT, not answer correctness. This
19
+ * means you can probe with innocuous text (no labels, no truth
20
+ * database, no curated suite) and still detect drift.
21
+ *
22
+ * 2. 8-DIMENSIONAL BEHAVIOURAL FINGERPRINT — captures style, not
23
+ * semantics:
24
+ * responseLength — total chars
25
+ * sentenceCount — # of sentences
26
+ * sentenceCV — coefficient of variation of sentence
27
+ * lengths (style consistency signal)
28
+ * hedgeDensity — count of hedges per 100 words
29
+ * absoluteDensity — count of absolute markers per 100 words
30
+ * refusalDensity — count of refusal markers per 100 words
31
+ * vocabEntropy — Shannon entropy of word distribution
32
+ * markdownDensity — count of markdown structures per 100 words
33
+ *
34
+ * 3. PER-DIMENSION Z-SCORE DRIFT — for each dimension compute
35
+ * z = (live - baselineMean) / baselineStdDev. Any dim with
36
+ * |z| > BROKEN_Z → BROKEN. Any dim with |z| > DRIFTING_Z but
37
+ * below BROKEN_Z → DRIFTING. All others → STABLE. More
38
+ * interpretable than a single Mahalanobis distance ("the AI got
39
+ * wordier by 3.2 sigma" vs "the fingerprint distance is 4.7").
40
+ *
41
+ * 4. ROLLING BASELINE — baseline is recomputed from the last N probes
42
+ * excluding the freshest M (so drift detection compares "this
43
+ * probe" against "what this vendor USED to do, last N-M ago").
44
+ * Drift-against-yesterday, not drift-against-startup.
45
+ *
46
+ * 5. VENDOR-AGNOSTIC askFn PATTERN — orchestrator takes a function
47
+ * that produces a response. Users wire Anthropic SDK / OpenAI
48
+ * SDK / their own gateway. No vendor lock-in.
49
+ *
50
+ * Composes with Mneme polygraph drift (CI gating), bounty Wilson-LB
51
+ * (per-vendor trust band), super-nova experience pool (audit trail).
52
+ */
53
+ import { existsSync, readFileSync, writeFileSync, appendFileSync, mkdirSync } from "node:fs";
54
+ import { join } from "node:path";
55
+ import { createHmac, randomBytes, createHash } from "node:crypto";
56
+ import { withSuperNova } from "../super_nova/index.js";
57
+ const DIR = ".mneme/earthquake";
58
+ const PROBES = "probes.jsonl";
59
+ const CONFIG = "config.json";
60
+ const ALERTS = "alerts.jsonl";
61
+ const KEY = "earthquake.key";
62
+ const DEFAULTS = {
63
+ v: 1,
64
+ baselineWindow: 30,
65
+ baselineExcludeFresh: 5,
66
+ driftingZ: 2.0,
67
+ brokenZ: 3.5,
68
+ };
69
+ function dir(repoRoot) {
70
+ const d = join(repoRoot, DIR);
71
+ if (!existsSync(d))
72
+ mkdirSync(d, { recursive: true });
73
+ return d;
74
+ }
75
+ function key(repoRoot) {
76
+ const d = dir(repoRoot);
77
+ const p = join(d, KEY);
78
+ if (existsSync(p))
79
+ return readFileSync(p, "utf8").trim();
80
+ const k = randomBytes(32).toString("base64url");
81
+ writeFileSync(p, k, "utf8");
82
+ return k;
83
+ }
84
+ function sign(payload, k) {
85
+ return createHmac("sha256", k).update(payload).digest("base64url").slice(0, 22);
86
+ }
87
+ export function getConfig(repoRoot) {
88
+ const p = join(dir(repoRoot), CONFIG);
89
+ if (!existsSync(p)) {
90
+ writeFileSync(p, JSON.stringify(DEFAULTS, null, 2), "utf8");
91
+ return { ...DEFAULTS };
92
+ }
93
+ try {
94
+ return { ...DEFAULTS, ...JSON.parse(readFileSync(p, "utf8")) };
95
+ }
96
+ catch {
97
+ return { ...DEFAULTS };
98
+ }
99
+ }
100
+ export function setConfig(repoRoot, patch) {
101
+ const cur = getConfig(repoRoot);
102
+ const next = { ...cur, ...patch };
103
+ writeFileSync(join(dir(repoRoot), CONFIG), JSON.stringify(next, null, 2), "utf8");
104
+ return next;
105
+ }
106
+ export const FINGERPRINT_DIMS = [
107
+ "responseLength", "sentenceCount", "sentenceCV",
108
+ "hedgeDensity", "absoluteDensity", "refusalDensity",
109
+ "vocabEntropy", "markdownDensity",
110
+ ];
111
+ const HEDGE_TERMS = ["perhaps", "maybe", "might", "could be", "seems", "appears", "possibly", "i think", "i believe", "likely"];
112
+ const ABSOLUTE_TERMS = ["always", "never", "exactly", "definitely", "absolutely", "everyone", "nobody", "all of", "none of"];
113
+ const REFUSAL_TERMS = ["i can't", "i cannot", "i won't", "as an ai", "i'm not able to", "i don't", "i'm unable", "i shouldn't"];
114
+ function countOccurrences(text, terms) {
115
+ const lower = text.toLowerCase();
116
+ let n = 0;
117
+ for (const t of terms) {
118
+ let idx = 0;
119
+ while ((idx = lower.indexOf(t, idx)) !== -1) {
120
+ n++;
121
+ idx += t.length;
122
+ }
123
+ }
124
+ return n;
125
+ }
126
+ function shannonEntropy(text) {
127
+ const words = text.toLowerCase().split(/[^a-z0-9']+/).filter((w) => w.length > 0);
128
+ if (words.length === 0)
129
+ return 0;
130
+ const counts = {};
131
+ for (const w of words)
132
+ counts[w] = (counts[w] ?? 0) + 1;
133
+ let H = 0;
134
+ for (const k of Object.keys(counts)) {
135
+ const p = counts[k] / words.length;
136
+ H -= p * Math.log2(p);
137
+ }
138
+ return H;
139
+ }
140
+ function countMarkdownStructures(text) {
141
+ let n = 0;
142
+ // Headers (lines starting with #).
143
+ n += (text.match(/^#{1,6}\s/gm) ?? []).length;
144
+ // Bullets.
145
+ n += (text.match(/^[\s]*[-*+]\s/gm) ?? []).length;
146
+ // Numbered lists.
147
+ n += (text.match(/^[\s]*\d+\.\s/gm) ?? []).length;
148
+ // Code fences.
149
+ n += (text.match(/```/g) ?? []).length / 2;
150
+ // Inline code.
151
+ n += (text.match(/`[^`\n]+`/g) ?? []).length;
152
+ return n;
153
+ }
154
+ /** Compute the 8-dimensional fingerprint of a response text. Pure;
155
+ * deterministic for the same input. No external deps. */
156
+ export function fingerprint(text) {
157
+ const length = text.length;
158
+ // Split into sentences (rough — period/!/? terminators).
159
+ const sentences = text.split(/[.!?]+\s+/).filter((s) => s.trim().length > 0);
160
+ const sentenceCount = sentences.length;
161
+ // CV of sentence lengths.
162
+ let sentenceCV = 0;
163
+ if (sentences.length >= 2) {
164
+ const lens = sentences.map((s) => s.length);
165
+ const mean = lens.reduce((s, v) => s + v, 0) / lens.length;
166
+ if (mean > 0) {
167
+ const variance = lens.reduce((s, v) => s + (v - mean) ** 2, 0) / lens.length;
168
+ sentenceCV = Math.sqrt(variance) / mean;
169
+ }
170
+ }
171
+ // Density metrics: per 100 words.
172
+ const wordCount = text.split(/\s+/).filter((w) => w.length > 0).length;
173
+ const per100 = wordCount > 0 ? 100 / wordCount : 0;
174
+ const hedgeDensity = countOccurrences(text, HEDGE_TERMS) * per100;
175
+ const absoluteDensity = countOccurrences(text, ABSOLUTE_TERMS) * per100;
176
+ const refusalDensity = countOccurrences(text, REFUSAL_TERMS) * per100;
177
+ const vocabEntropy = shannonEntropy(text);
178
+ const markdownDensity = countMarkdownStructures(text) * per100;
179
+ return {
180
+ responseLength: length,
181
+ sentenceCount,
182
+ sentenceCV: Number(sentenceCV.toFixed(4)),
183
+ hedgeDensity: Number(hedgeDensity.toFixed(4)),
184
+ absoluteDensity: Number(absoluteDensity.toFixed(4)),
185
+ refusalDensity: Number(refusalDensity.toFixed(4)),
186
+ vocabEntropy: Number(vocabEntropy.toFixed(4)),
187
+ markdownDensity: Number(markdownDensity.toFixed(4)),
188
+ };
189
+ }
190
+ function probesPath(repoRoot) { return join(dir(repoRoot), PROBES); }
191
+ export function recordProbe(repoRoot, opts) {
192
+ const k = key(repoRoot);
193
+ const ts = new Date().toISOString();
194
+ const id = "pr_" + randomBytes(4).toString("hex");
195
+ const promptSha = createHash("sha256").update(opts.prompt).digest("hex").slice(0, 32);
196
+ const fp = fingerprint(opts.response);
197
+ const canonical = `${ts}|${opts.vendor}|${promptSha}|${JSON.stringify(fp)}`;
198
+ const sig = sign(canonical, k);
199
+ const rec = { v: 1, id, ts, vendor: opts.vendor, promptSha, fp, sig };
200
+ appendFileSync(probesPath(repoRoot), JSON.stringify(rec) + "\n", "utf8");
201
+ return rec;
202
+ }
203
+ export function listProbes(repoRoot, vendor) {
204
+ const p = probesPath(repoRoot);
205
+ if (!existsSync(p))
206
+ return [];
207
+ try {
208
+ const all = readFileSync(p, "utf8").trim().split("\n").map((l) => { try {
209
+ return JSON.parse(l);
210
+ }
211
+ catch {
212
+ return null;
213
+ } }).filter((r) => !!r);
214
+ return vendor ? all.filter((r) => r.vendor === vendor) : all;
215
+ }
216
+ catch {
217
+ return [];
218
+ }
219
+ }
220
+ export function verifyProbe(repoRoot, r) {
221
+ const k = key(repoRoot);
222
+ const canonical = `${r.ts}|${r.vendor}|${r.promptSha}|${JSON.stringify(r.fp)}`;
223
+ return sign(canonical, k) === r.sig;
224
+ }
225
+ function computeStats(values) {
226
+ if (values.length === 0)
227
+ return { mean: 0, stddev: 0, n: 0 };
228
+ const mean = values.reduce((s, v) => s + v, 0) / values.length;
229
+ if (values.length === 1)
230
+ return { mean, stddev: 0, n: 1 };
231
+ const variance = values.reduce((s, v) => s + (v - mean) ** 2, 0) / values.length;
232
+ return { mean, stddev: Math.sqrt(variance), n: values.length };
233
+ }
234
+ export function computeBaseline(repoRoot, vendor) {
235
+ const cfg = getConfig(repoRoot);
236
+ const all = listProbes(repoRoot, vendor);
237
+ if (all.length === 0)
238
+ return null;
239
+ // Sort by ts ascending.
240
+ all.sort((a, b) => a.ts.localeCompare(b.ts));
241
+ // Drop the freshest baselineExcludeFresh; use the rest up to baselineWindow.
242
+ const eligible = all.slice(0, Math.max(0, all.length - cfg.baselineExcludeFresh));
243
+ const baseline = eligible.slice(-cfg.baselineWindow);
244
+ const stats = {};
245
+ for (const dim of FINGERPRINT_DIMS) {
246
+ const vals = baseline.map((p) => p.fp[dim]);
247
+ stats[dim] = computeStats(vals);
248
+ }
249
+ return {
250
+ vendor,
251
+ totalProbes: all.length,
252
+ baselineProbes: baseline.length,
253
+ stats,
254
+ baselineProbeIds: baseline.map((p) => p.id),
255
+ generatedAt: new Date().toISOString(),
256
+ };
257
+ }
258
+ /** The headline verb: compute drift verdict for a vendor. */
259
+ export async function detectDrift(repoRoot, vendor) {
260
+ return withSuperNova({ verb: "mneme.earthquake.detect_drift", surface: "lib", repoRoot, vendor }, async () => {
261
+ const cfg = getConfig(repoRoot);
262
+ const baseline = computeBaseline(repoRoot, vendor);
263
+ if (!baseline || baseline.baselineProbes < 5) {
264
+ return {
265
+ vendor,
266
+ verdict: "INSUFFICIENT_DATA",
267
+ maxZ: 0, zScores: {}, driftingDims: [], brokenDims: [],
268
+ liveProbes: 0,
269
+ baselineProbes: baseline?.baselineProbes ?? 0,
270
+ generatedAt: new Date().toISOString(),
271
+ rationale: `INSUFFICIENT_DATA: need ≥ 5 baseline probes (have ${baseline?.baselineProbes ?? 0}). Run more \`mneme earthquake probe ...\` calls for this vendor.`,
272
+ };
273
+ }
274
+ // Live = the freshest baselineExcludeFresh probes.
275
+ const all = listProbes(repoRoot, vendor);
276
+ all.sort((a, b) => a.ts.localeCompare(b.ts));
277
+ const live = all.slice(-cfg.baselineExcludeFresh);
278
+ if (live.length === 0) {
279
+ return {
280
+ vendor, verdict: "INSUFFICIENT_DATA",
281
+ maxZ: 0, zScores: {}, driftingDims: [], brokenDims: [],
282
+ liveProbes: 0, baselineProbes: baseline.baselineProbes,
283
+ generatedAt: new Date().toISOString(),
284
+ rationale: "INSUFFICIENT_DATA: no live probes recorded yet.",
285
+ };
286
+ }
287
+ // For each dim: compute live mean → z-score against baseline.
288
+ const zScores = {};
289
+ const driftingDims = [];
290
+ const brokenDims = [];
291
+ let maxZ = 0;
292
+ for (const dim of FINGERPRINT_DIMS) {
293
+ const liveVals = live.map((p) => p.fp[dim]);
294
+ const liveMean = liveVals.reduce((s, v) => s + v, 0) / liveVals.length;
295
+ const bMean = baseline.stats[dim].mean;
296
+ const bStd = baseline.stats[dim].stddev;
297
+ // Stddev floor: when baseline is identical across N probes (stddev=0),
298
+ // a perfectly-constant vendor that suddenly differs IS extreme drift.
299
+ // Use 5% of |mean| (or 0.05 absolute) as a noise floor so we never
300
+ // divide by zero AND a real deviation registers as a large z-score.
301
+ const bStdEff = Math.max(bStd, 0.05 * Math.abs(bMean), 0.05);
302
+ if (bStdEff === 0 && liveMean === bMean)
303
+ continue;
304
+ const z = Math.abs((liveMean - bMean) / bStdEff);
305
+ zScores[dim] = Number(z.toFixed(3));
306
+ if (z > maxZ)
307
+ maxZ = z;
308
+ if (z > cfg.brokenZ)
309
+ brokenDims.push(dim);
310
+ else if (z > cfg.driftingZ)
311
+ driftingDims.push(dim);
312
+ }
313
+ let verdict = "STABLE";
314
+ if (brokenDims.length > 0)
315
+ verdict = "BROKEN";
316
+ else if (driftingDims.length > 0)
317
+ verdict = "DRIFTING";
318
+ const rationale = verdict === "BROKEN"
319
+ ? `BROKEN: ${brokenDims.length} dim(s) over z=${cfg.brokenZ} threshold (${brokenDims.join(", ")}). The vendor's behavioural envelope has measurably shifted.`
320
+ : verdict === "DRIFTING"
321
+ ? `DRIFTING: ${driftingDims.length} dim(s) over z=${cfg.driftingZ} (${driftingDims.join(", ")}); none past BROKEN threshold yet. Watch.`
322
+ : `STABLE: all dimensions within z=${cfg.driftingZ} of baseline.`;
323
+ return {
324
+ vendor, verdict,
325
+ maxZ: Number(maxZ.toFixed(3)),
326
+ zScores, driftingDims, brokenDims,
327
+ liveProbes: live.length,
328
+ baselineProbes: baseline.baselineProbes,
329
+ generatedAt: new Date().toISOString(),
330
+ rationale,
331
+ };
332
+ }, { tags: ["earthquake", "detect-drift"] });
333
+ }
334
+ export async function runProbe(repoRoot, opts) {
335
+ return withSuperNova({ verb: "mneme.earthquake.run_probe", surface: "lib", repoRoot, vendor: opts.vendor }, async () => {
336
+ const response = await opts.ask(opts.prompt);
337
+ const record = recordProbe(repoRoot, { vendor: opts.vendor, prompt: opts.prompt, response });
338
+ const report = await detectDrift(repoRoot, opts.vendor);
339
+ // Emit an alert if BROKEN or DRIFTING.
340
+ if (report.verdict === "BROKEN" || report.verdict === "DRIFTING") {
341
+ try {
342
+ appendFileSync(join(dir(repoRoot), ALERTS), JSON.stringify({
343
+ ts: new Date().toISOString(),
344
+ vendor: opts.vendor,
345
+ verdict: report.verdict,
346
+ maxZ: report.maxZ,
347
+ brokenDims: report.brokenDims,
348
+ driftingDims: report.driftingDims,
349
+ }) + "\n", "utf8");
350
+ }
351
+ catch { /* */ }
352
+ }
353
+ return { record, report };
354
+ }, { tags: ["earthquake", "run-probe"] });
355
+ }
356
+ export function listAlerts(repoRoot, vendor) {
357
+ const p = join(dir(repoRoot), ALERTS);
358
+ if (!existsSync(p))
359
+ return [];
360
+ try {
361
+ const all = readFileSync(p, "utf8").trim().split("\n").map((l) => { try {
362
+ return JSON.parse(l);
363
+ }
364
+ catch {
365
+ return null;
366
+ } }).filter(Boolean);
367
+ return vendor ? all.filter((a) => a.vendor === vendor) : all;
368
+ }
369
+ catch {
370
+ return [];
371
+ }
372
+ }
373
+ // ─── FORMATTERS ────────────────────────────────────────────────────────
374
+ export function formatFingerprint(fp) {
375
+ const lines = ["🚨 FINGERPRINT", ""];
376
+ for (const dim of FINGERPRINT_DIMS) {
377
+ lines.push(` ${dim.padEnd(20)} ${fp[dim].toFixed(4)}`);
378
+ }
379
+ return lines.join("\n");
380
+ }
381
+ export function formatBaseline(b) {
382
+ const lines = [`🚨 BASELINE for ${b.vendor}`, ``];
383
+ lines.push(` Total probes: ${b.totalProbes}`);
384
+ lines.push(` Baseline probes: ${b.baselineProbes}`);
385
+ lines.push(` Generated: ${b.generatedAt}`);
386
+ lines.push(``);
387
+ lines.push(` ${"dimension".padEnd(20)} ${"mean".padStart(12)} ${"stddev".padStart(12)}`);
388
+ for (const dim of FINGERPRINT_DIMS) {
389
+ const s = b.stats[dim];
390
+ lines.push(` ${dim.padEnd(20)} ${s.mean.toFixed(4).padStart(12)} ${s.stddev.toFixed(4).padStart(12)}`);
391
+ }
392
+ return lines.join("\n");
393
+ }
394
+ export function formatReport(r) {
395
+ const badge = r.verdict === "BROKEN" ? "💥"
396
+ : r.verdict === "DRIFTING" ? "⚡"
397
+ : r.verdict === "STABLE" ? "✓"
398
+ : "·";
399
+ const lines = [
400
+ `🚨 EARTHQUAKE DRIFT REPORT — ${badge} ${r.verdict}`,
401
+ ``,
402
+ ` Vendor: ${r.vendor}`,
403
+ ` Verdict: ${r.verdict}`,
404
+ ` Max |z|: ${r.maxZ}`,
405
+ ` Live probes: ${r.liveProbes}`,
406
+ ` Baseline probes: ${r.baselineProbes}`,
407
+ ` Rationale: ${r.rationale}`,
408
+ ``,
409
+ ];
410
+ if (Object.keys(r.zScores).length > 0) {
411
+ lines.push(` Per-dimension z-scores:`);
412
+ for (const dim of FINGERPRINT_DIMS) {
413
+ const z = r.zScores[dim];
414
+ if (z === undefined)
415
+ continue;
416
+ const flag = r.brokenDims.includes(dim) ? "💥" : r.driftingDims.includes(dim) ? "⚡" : " ";
417
+ lines.push(` ${flag} ${dim.padEnd(20)} z=${z.toFixed(2)}`);
418
+ }
419
+ }
420
+ return lines.join("\n");
421
+ }
422
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/earthquake/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -365,4 +365,5 @@ export * as timeBridgeTriggers from "./time_bridge/triggers.js";
365
365
  export * as apoptosisNetwork from "./apoptosis_network/index.js";
366
366
  export * as stillness from "./stillness/index.js";
367
367
  export * as mortuary from "./mortuary/index.js";
368
+ export * as earthquake from "./earthquake/index.js";
368
369
  //# sourceMappingURL=index.d.ts.map