/** * BREAKTHROUGH RADAR (SURPRISE) — the result the model never saw coming. Optimization quietly assumes the * response is well-behaved, so it can miss the most important thing that can happen in a real lab: a setting * that performs FAR better (or worse) than everything around it predicts. A surprising high is a possible * breakthrough — a sweet spot, a synergy, a regime nobody expected — and it deserves to be chased, not * averaged away. A surprising low is a warning — a likely measurement error, or a hidden penalty worth * re-checking before you trust it. * * SURPRISE predicts each measurement from all the OTHERS (a leave-one-out stand-in for your process) and * flags the ones whose actual result departs far more than the typical prediction error. It separates them * by direction: a big positive surprise is tagged a potential breakthrough to verify and explore around; a * big negative one is tagged an anomaly to re-check. * * Honest by construction (DIAKRISIS): a surprise is a residual outlier against your own data's smooth trend * — strong EVIDENCE that a point is special, not proof it's a breakthrough (it could still be a lucky * misread; that's exactly why the advice is "verify it"). Distinct from the noise lens (near-neighbour * disagreement / meter reliability); this is departure from the global trend. Abstains on thin data. */ import { type Space } from "./space.js"; import { type Observation, type Goal } from "./engine.js"; export interface SurpriseItem { at: Record; value: number; expected: number; sigma: number; direction: "high" | "low"; } export interface SurpriseReport { surprises: SurpriseItem[]; breakthrough: SurpriseItem | null; note: string; } /** Flag measurements that depart far more than usual from what the rest of the data predicts. */ export declare function analyzeSurprise(obs: ReadonlyArray, space: Space, goal?: Goal): SurpriseReport; export declare function surpriseGauntlet(): { score: 0 | 100; checks: Array<{ name: string; pass: boolean; detail: string; }>; }; //# sourceMappingURL=surprise.d.ts.map