@mneme-ai/core 2.21.2 → 2.21.3
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 +1 -1
- package/dist/agent_manifest.d.ts.map +1 -1
- package/dist/agent_manifest.js +15 -1
- package/dist/agent_manifest.js.map +1 -1
- package/dist/earthquake/earthquake.test.d.ts +2 -0
- package/dist/earthquake/earthquake.test.d.ts.map +1 -0
- package/dist/earthquake/earthquake.test.js +241 -0
- package/dist/earthquake/earthquake.test.js.map +1 -0
- package/dist/earthquake/index.d.ts +149 -0
- package/dist/earthquake/index.d.ts.map +1 -0
- package/dist/earthquake/index.js +422 -0
- package/dist/earthquake/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|