peeksafe 0.2.0 → 0.4.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/CHANGELOG.md +91 -0
- package/README.md +32 -7
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +11 -8
- package/dist/check.js.map +1 -1
- package/dist/cluster.d.ts.map +1 -1
- package/dist/cluster.js +11 -4
- package/dist/cluster.js.map +1 -1
- package/dist/frontier.d.ts +5 -4
- package/dist/frontier.d.ts.map +1 -1
- package/dist/frontier.js +30 -31
- package/dist/frontier.js.map +1 -1
- package/dist/gate.d.ts +18 -0
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +32 -3
- package/dist/gate.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plan.d.ts +37 -20
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +167 -73
- package/dist/plan.js.map +1 -1
- package/dist/stats.d.ts +1 -1
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +56 -6
- package/dist/stats.js.map +1 -1
- package/dist/stop.d.ts +0 -1
- package/dist/stop.d.ts.map +1 -1
- package/dist/stop.js +1 -1
- package/dist/stop.js.map +1 -1
- package/package.json +11 -2
- package/src/check.ts +12 -8
- package/src/cluster.ts +12 -4
- package/src/frontier.ts +39 -34
- package/src/gate.ts +50 -3
- package/src/index.ts +5 -0
- package/src/plan.ts +178 -78
- package/src/stats.ts +70 -6
- package/src/stop.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,97 @@ All notable changes to this project are documented here. The format follows
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.4.0 (2026-11-05)
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `docs/recipes.md`: tested modules that turn promptfoo's JSON output, Vitest JSON reports and one JSON
|
|
14
|
+
line per run into the counts `gate` takes, with a CI script and a baseline script, linked from the
|
|
15
|
+
README's quick start.
|
|
16
|
+
- `gateReport(result)` and the `GateReport`, `CaseReport` and `JsonNumber` types: the gate result as
|
|
17
|
+
JSON can carry it, with non-finite numbers written as strings.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- The npm `keywords` add `eval`, `llm-evals`, `regression-testing`, `flaky-tests`, `ab-testing`,
|
|
22
|
+
`benjamini-hochberg`, `e-bh`, `early-stopping` and `significance`, the terms people search when an eval
|
|
23
|
+
suite is flaky or a gate needs a multiple-testing correction.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- `JSON.stringify` wrote a paired case's `ceiling` of `Infinity` as `null`, so a CI artifact read "no
|
|
28
|
+
ceiling" where the truth is "no limit". A gate result's `toJSON` now writes `"Infinity"`, `"-Infinity"`
|
|
29
|
+
and `"NaN"` as strings, which `Number()` reads back.
|
|
30
|
+
- The README and the doc comment on `PlanCase.baselineRunsNeeded` read it as how many baseline runs
|
|
31
|
+
to add. It is the smallest total baseline size at which the unpaired design works, and a floor: a few
|
|
32
|
+
runs more can fall back under the bar. The README planning table's 75 and 63 are 15 and 3 more runs.
|
|
33
|
+
- `groupByCluster` refused a non-finite value as `clustered mean`, a name no export has, and
|
|
34
|
+
`clusterRobustMean`, `randomEffectsMean`, `clusteredEffect` and `clusterKeyDiagnostic` inherited that
|
|
35
|
+
message. `clusteredEffect` also refused a bad `level` as `clusterRobustMean`. Each now names itself.
|
|
36
|
+
- `typeOneError` checked only `rate` and refused every other bad option (`alpha`, `horizon`,
|
|
37
|
+
`baselineTrials`, `mde`, `altConcentration`, `evidence`) as `certifyProbability`. It now names itself
|
|
38
|
+
in those refusals.
|
|
39
|
+
- `betaPosterior` let an infinite prior shape through its positivity check, so a prior of
|
|
40
|
+
`{ alpha: Infinity, beta: 1 }` came back with `NaN` for `mean`, `mode`, `variance` and `sd`, and an
|
|
41
|
+
infinite `beta` with a mean of 0. It now refuses a prior shape that is not finite and positive with
|
|
42
|
+
`PEEKSAFE_E_STAT_DOMAIN`, as `betaQuantile` and `ibeta` already did.
|
|
43
|
+
- `gate` read only the counts of a case's `baseline` and never compared `baseline.caseId` with the
|
|
44
|
+
case's `id`, so a baseline joined to the wrong case was gated against without a word. It now refuses a
|
|
45
|
+
case whose baseline names another case with `PEEKSAFE_E_CONFIG`.
|
|
46
|
+
- `erf`, `normalCdf`, `logBetaPdf`, `evidenceCeilingLogE`, `evidenceCeilingAsymptotic` and
|
|
47
|
+
`universalTwoSampleLogE` refused a bad argument in the name of the helper they call (`gammaP`,
|
|
48
|
+
`logGamma`, `twoSamplePriors`), so the message pointed at a call the caller never made. Each now
|
|
49
|
+
checks its own arguments first and names itself in the refusal.
|
|
50
|
+
- `expectedLogE` refused a bad baseline count, `mde` or `altConcentration` as `twoSamplePriors`. It now
|
|
51
|
+
checks them first and names itself in the refusal.
|
|
52
|
+
- `expectedLogEExact` refused a bad baseline count, `mde` or `altConcentration` as `twoSampleLogE`, and
|
|
53
|
+
`samplesForEvidence` refused a bad `pTrue`, baseline count, `mde` or `altConcentration` as
|
|
54
|
+
`evidenceCeilingLogE`. Both now check them first and name themselves in the refusal.
|
|
55
|
+
- `mcnemarSamplesForEvidence` refused a bad `pBaseline`, `mde` or `rho` as `pairedDiscordance`, and
|
|
56
|
+
`betaCredibleInterval` and `betaMassBetween` refused a posterior whose `alpha` or `beta` is not finite
|
|
57
|
+
and positive as `betaQuantile` and `ibeta`. All three now check them first and name themselves in the
|
|
58
|
+
refusal.
|
|
59
|
+
|
|
60
|
+
## 0.3.0 (2026-11-03)
|
|
61
|
+
|
|
62
|
+
### Added
|
|
63
|
+
|
|
64
|
+
- Each `PlanCase` carries `typicalRuns`, the runs that case costs in the expected bill at the design
|
|
65
|
+
the bill prices it at. The plan summed these into `totals.typicalRuns` and kept nothing per case,
|
|
66
|
+
so the only per-case figure a caller could read was `expectedSequentialSamples`, which is Wald's:
|
|
67
|
+
on the README suite it said 40 and 28 where the plan bills 74 and 66. `planCase` called on its own
|
|
68
|
+
prices a case with no `design` unpaired, since it cannot see the suite, and now refuses the trial
|
|
69
|
+
grid and `futilityConfidence` that `makePlan` refuses.
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
|
|
73
|
+
- `expectedSequentialSamples` still answered Wald's expected sample number for the SPRT after the plan
|
|
74
|
+
stopped billing from it, so on the README suite it said 40 and 28 runs where the plan bills 74 and
|
|
75
|
+
66. It now counts each case in the runs `shouldStop` takes to stop it, at its `trueRate` and the
|
|
76
|
+
suite size `cases.length`, at `mde`, `fdr` and `futilityConfidence`: 61 and 66 runs there, and at
|
|
77
|
+
the default rate each case equals its unpaired `typicalRuns`. It refuses an `mde`, `fdr` or
|
|
78
|
+
`futilityConfidence` that `makePlan` refuses, and a `trueRate` of `NaN`.
|
|
79
|
+
- `evaluatePoint` (so `computeFrontier`) and `affordabilityGrid` still priced an unpaired typical
|
|
80
|
+
bill with Wald's expected sample number after `makePlan` moved off it in 0.2.0, so they disagreed
|
|
81
|
+
with the plan about the same case. They now count the runs `shouldStop` takes to stop it, at the
|
|
82
|
+
point's or cell's suite size, `mde` and baseline and at `futilityConfidence`: 100 cases at 85% over
|
|
83
|
+
240 baseline runs and 15 points take 49 runs a case, not 36, and an unpaired grid cell of 20 cases
|
|
84
|
+
there expects 188 runs, not 152. On the frontier's defaults nothing fits the $100 typical budget
|
|
85
|
+
any more; the cheapest certifiable point is 10 cases at 35 points on a 30-run baseline, $163.
|
|
86
|
+
- `typicalObservationsPerCase` still answered Wald's expected sample number after the frontier
|
|
87
|
+
stopped billing from it, so it said 36 runs for a case at 85% over 240 baseline runs where the
|
|
88
|
+
frontier bills 58. It now takes the suite size as a fifth argument, `cases`, and counts the runs
|
|
89
|
+
`shouldStop` takes to stop the case at `mde`, `fdr` and `futilityConfidence`, so it equals the
|
|
90
|
+
per-case share `evaluatePoint` bills an unpaired point at. It refuses a `cases` that is not a
|
|
91
|
+
positive integer and the `fdr` and `futilityConfidence` that `evaluatePoint` refuses.
|
|
92
|
+
- A paired case's typical bill in `makePlan`, `evaluatePoint` (so `computeFrontier`) and
|
|
93
|
+
`affordabilityGrid` was the first pair count at which the settle e-value on the mean trajectory
|
|
94
|
+
ruled out a drop of `mde`, which ignores the variance. Near independence that was far off: at 85%
|
|
95
|
+
and a coupling of 0 a case stops after 65.6 pairs on average, where the plan quoted the 96-pair
|
|
96
|
+
cap. It is now the exact expected number of pairs `shouldStopPaired` takes, at the suite size and
|
|
97
|
+
`futilityConfidence`: 66 there, 37 at 75% and a coupling of 0.9 (36 before), and the README's two
|
|
98
|
+
cases cost 140 runs, not 138.
|
|
99
|
+
|
|
9
100
|
## 0.2.0 (2026-11-02)
|
|
10
101
|
|
|
11
102
|
### Added
|
package/README.md
CHANGED
|
@@ -2,12 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
Statistically valid gates for non-deterministic eval suites. Stop early without losing error control.
|
|
4
4
|
|
|
5
|
+
It is for teams that gate CI or releases on LLM or other non-deterministic eval suites and stop runs early to save cost.
|
|
6
|
+
|
|
5
7
|
```bash
|
|
6
8
|
npm install peeksafe
|
|
7
9
|
```
|
|
8
10
|
|
|
9
11
|
Zero runtime dependencies. TypeScript, ESM, Node 22 or newer.
|
|
10
12
|
|
|
13
|
+
**Contents:**
|
|
14
|
+
[The problem](#the-problem) ·
|
|
15
|
+
[The part that is genuinely counterintuitive](#the-part-that-is-genuinely-counterintuitive) ·
|
|
16
|
+
[What it costs, measured](#what-it-costs-measured) ·
|
|
17
|
+
[Quick start](#quick-start) ·
|
|
18
|
+
[Use it in CI](#use-it-in-ci) ·
|
|
19
|
+
[Stopping early](#stopping-early) ·
|
|
20
|
+
[When more runs will not help](#when-more-runs-will-not-help) ·
|
|
21
|
+
[Planning: how many runs do I need](#planning-how-many-runs-do-i-need) ·
|
|
22
|
+
[The paired alternative](#the-paired-alternative) ·
|
|
23
|
+
[Suites are not independent draws](#suites-are-not-independent-draws) ·
|
|
24
|
+
[What it refuses to do](#what-it-refuses-to-do) ·
|
|
25
|
+
[API](#api) ·
|
|
26
|
+
[Reproducing the numbers](#reproducing-the-numbers) ·
|
|
27
|
+
[What this is not](#what-this-is-not) ·
|
|
28
|
+
[References](#references) ·
|
|
29
|
+
[Licence](#licence)
|
|
30
|
+
|
|
11
31
|
## The problem
|
|
12
32
|
|
|
13
33
|
You have an eval suite. Each case is non-deterministic, so you run it several times and compare a pass rate against a recorded baseline. Runs cost money, so you watch results arrive and stop a case once it looks decided. Then you correct for multiplicity with Benjamini-Hochberg, because 200 cases at 5% each is a lot of false alarms.
|
|
@@ -69,6 +89,8 @@ result.newCases; // ['summary/new-case']
|
|
|
69
89
|
|
|
70
90
|
`mde` is the drop, in rate, that counts as a regression. `fdr` is the false discovery rate you are willing to accept across the whole suite. Both default to the values above.
|
|
71
91
|
|
|
92
|
+
Already running promptfoo or Vitest? The [recipes](docs/recipes.md) turn their result files, or one JSON line per run from a runner of your own, into these counts.
|
|
93
|
+
|
|
72
94
|
### Reading a case verdict
|
|
73
95
|
|
|
74
96
|
Every case comes back with the evidence behind its decision, not just the decision:
|
|
@@ -92,7 +114,7 @@ result.soloThreshold; // the bar a case clears on its own evidence, whatever th
|
|
|
92
114
|
|
|
93
115
|
## Use it in CI
|
|
94
116
|
|
|
95
|
-
The whole integration is an exit code and a report.
|
|
117
|
+
The whole integration is an exit code and a report. Building it with a coding agent? `npx skills add sferarc/peeksafe` installs the [`peeksafe-gate` skill](skills/peeksafe-gate/SKILL.md), which carries this script, the counts it needs and `makePlan`.
|
|
96
118
|
|
|
97
119
|
```ts
|
|
98
120
|
import { gate, PeeksafeError } from 'peeksafe';
|
|
@@ -114,11 +136,12 @@ try {
|
|
|
114
136
|
}
|
|
115
137
|
for (const id of result.newCases) console.log(`NEW ${id}: no baseline, not gated`);
|
|
116
138
|
|
|
117
|
-
|
|
139
|
+
// exitCode rather than exit(), which can cut off piped output on macOS.
|
|
140
|
+
process.exitCode = result.verdict === 'FAIL' ? 1 : 0;
|
|
118
141
|
} catch (e) {
|
|
119
142
|
// A refusal is a bug in the harness, not a regression. Do not let it read as a pass.
|
|
120
143
|
if (e instanceof PeeksafeError) console.error(`${e.code}: ${e.message}\n${e.hint ?? ''}`);
|
|
121
|
-
process.
|
|
144
|
+
process.exitCode = 2;
|
|
122
145
|
}
|
|
123
146
|
```
|
|
124
147
|
|
|
@@ -131,6 +154,8 @@ budget (thin), which needs more baseline runs, not more candidate runs; 1 case(s
|
|
|
131
154
|
and were not gated (new).
|
|
132
155
|
```
|
|
133
156
|
|
|
157
|
+
To keep the result as a CI artifact, write `JSON.stringify(result)`. JSON has no `Infinity`, and a plain object would have a paired case's `ceiling` (no limit) written as `null`, so the result's `toJSON` writes every non-finite number as the string `"Infinity"`, `"-Infinity"` or `"NaN"`, which `Number()` reads back. The shape is `GateReport`: a `GateResult` whose cases are `CaseReport`s, with `ceiling` and `logE` typed `JsonNumber`. A copy made with a spread (`{ ...result }`) drops `toJSON`; pass the result through `gateReport(result)` first, which returns the same JSON safe object.
|
|
158
|
+
|
|
134
159
|
## Stopping early
|
|
135
160
|
|
|
136
161
|
This is the reason the library exists. Stop each case whenever you like, for any reason, including "it already looks bad". The guarantee does not depend on the rule you used, because the statistic is an e-value rather than a p-value: a non-negative statistic with mean at most 1 under the null, so Ville's inequality bounds `P(sup_n E_n >= 1/a) <= a` over the whole trajectory. The multiplicity correction is e-BH (Wang and Ramdas), which consumes e-values directly and controls FDR under arbitrary dependence between cases.
|
|
@@ -295,7 +320,7 @@ for (const c of plan.cases) {
|
|
|
295
320
|
c.detectability; // 'UNPAIRED' | 'PAIRED_ONLY' | 'TOO_EXPENSIVE' | 'IMPOSSIBLE'
|
|
296
321
|
c.unpaired.runs; // what the default design costs, or Infinity
|
|
297
322
|
c.paired.pairs; // what the paired design costs
|
|
298
|
-
c.baselineRunsNeeded; // baseline
|
|
323
|
+
c.baselineRunsNeeded; // smallest total baseline that makes unpaired work, or null
|
|
299
324
|
c.design; // 'unpaired' | 'paired' | null, the cheaper design that decides it
|
|
300
325
|
}
|
|
301
326
|
```
|
|
@@ -309,7 +334,7 @@ summary/tone IMPOSSIBLE unpaired=Infinity paired=Infinity needBaseline
|
|
|
309
334
|
search/rerank PAIRED_ONLY unpaired=Infinity paired= 53 needBaseline=63
|
|
310
335
|
```
|
|
311
336
|
|
|
312
|
-
Read that as four different answers, not one number. `parsing/nested` has a 240-run baseline and needs 93 candidate runs. `routing/fallback` and `search/rerank` have thin baselines, so the unpaired design cannot do them at any budget, but 75 and 63
|
|
337
|
+
Read that as four different answers, not one number. `parsing/nested` has a 240-run baseline and needs 93 candidate runs. `routing/fallback` and `search/rerank` have thin baselines, so the unpaired design cannot do them at any budget, but baselines of 75 and 63 runs in total (15 and 3 more) would fix that, and pairing works today. `baselineRunsNeeded` is a floor, not a threshold: the ceiling is a sawtooth in the baseline size, so a few runs past it can fall back under the bar. `summary/tone` passes 10% of the time and cannot lose 15 points at all, so `sampleSizeTwoProportion(0.1, 0.15)` is `Infinity` rather than a plausible-looking 44.
|
|
313
338
|
|
|
314
339
|
`plan.totals` carries the suite-level roll-up, including `decidableUnpaired` and `decidableBest`: how many cases each design can decide at all.
|
|
315
340
|
|
|
@@ -339,7 +364,7 @@ parsing/nested 75 100 unpaired (no pilot) 100
|
|
|
339
364
|
|
|
340
365
|
At the assumed coupling, `checkout/flow` would pair and spend 118 runs instead of 164. The pilot measures 0.6, pairing would cost 206, and the plan keeps it on the stored baseline. A case only pairing can decide (`PAIRED_ONLY`) is paired whatever the pilot says, because independent pairs are still valid; the coupling only moves its price.
|
|
341
366
|
|
|
342
|
-
The expected bill, what a pull request in which nothing moved spends, prices each case at its own `design`, and a case with none at the suite's `recommendedDesign`. A paired case is counted in the pairs `shouldStopPaired` takes to
|
|
367
|
+
The expected bill, what a pull request in which nothing moved spends, prices each case at its own `design`, and a case with none at the suite's `recommendedDesign`. A paired case is counted in the pairs `shouldStopPaired` takes to stop it at its coupling, and an unpaired one in the runs `shouldStop` takes to stop it, both checked at `minTrials` and then every `batchSize` runs. If you run them at a `futilityConfidence` other than the default, set the same one in the config, since a stricter level stops later. `computeFrontier` and `affordabilityGrid` count a case's expected bill the same way. At the assumed coupling the bill is 140 runs: 37 pairs of `checkout/flow` at two runs each and 66 runs of `parsing/nested`. Each case reports its share as `typicalRuns`, 74 and 66 here, and the shares sum to `totals.typicalRuns`. Set `design` in the config to price every case at one design instead: 127 runs unpaired, 142 paired. `expectedSequentialSamples` answers the unpaired figure per case, 61 and 66 runs here, and takes a candidate rate per case for a pull request that did move something.
|
|
343
368
|
|
|
344
369
|
## The paired alternative
|
|
345
370
|
|
|
@@ -450,7 +475,7 @@ A case with no baseline is not an error, though. It comes back in `newCases`, ta
|
|
|
450
475
|
|
|
451
476
|
Four layers. Most callers need the first.
|
|
452
477
|
|
|
453
|
-
**The decision.** `gate` for a whole suite from final counts or pair tables, `shouldStop` and `shouldStopPaired` for one case mid-run, and the types around them.
|
|
478
|
+
**The decision.** `gate` for a whole suite from final counts or pair tables, `gateReport` for its result as JSON can carry it, `shouldStop` and `shouldStopPaired` for one case mid-run, and the types around them.
|
|
454
479
|
|
|
455
480
|
**The budget.** `makePlan`, `planCase`, `affordabilityGrid`, `computeFrontier`, `enumerateFrontier`.
|
|
456
481
|
|
package/dist/check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAI/D,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAClF,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAI/D,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAClF,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAE7E;AA6GD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAIjE;AAED,MAAM,WAAW,+BAA+B;IAC9C,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAmDzF"}
|
package/dist/check.js
CHANGED
|
@@ -21,22 +21,25 @@ import { logBeta, logGamma, pairedLogE, twoSamplePriors } from "./stats.js";
|
|
|
21
21
|
* baseline at a horizon of 600 takes tens of milliseconds.
|
|
22
22
|
*/
|
|
23
23
|
export function certifyProbability(options) {
|
|
24
|
+
return certify(options, "certifyProbability");
|
|
25
|
+
}
|
|
26
|
+
function certify(options, where) {
|
|
24
27
|
const { baselineRate, candidateRate: pc, baselineTrials: nb, alpha, horizon } = options;
|
|
25
28
|
const mde = options.mde ?? DEFAULT_GATE_OPTIONS.mde;
|
|
26
29
|
const concentration = options.altConcentration ?? DEFAULT_GATE_OPTIONS.altConcentration;
|
|
27
30
|
const evidence = options.evidence ?? DEFAULT_GATE_OPTIONS.evidence;
|
|
28
|
-
requireEvidence(evidence,
|
|
29
|
-
requireOpenProbability(baselineRate, "baselineRate",
|
|
30
|
-
requireOpenProbability(pc, "candidateRate",
|
|
31
|
-
requireOpenProbability(alpha, "alpha",
|
|
32
|
-
requireOpenProbability(mde, "mde",
|
|
33
|
-
requirePositiveConfig(concentration, "altConcentration",
|
|
31
|
+
requireEvidence(evidence, where);
|
|
32
|
+
requireOpenProbability(baselineRate, "baselineRate", where);
|
|
33
|
+
requireOpenProbability(pc, "candidateRate", where);
|
|
34
|
+
requireOpenProbability(alpha, "alpha", where);
|
|
35
|
+
requireOpenProbability(mde, "mde", where);
|
|
36
|
+
requirePositiveConfig(concentration, "altConcentration", where);
|
|
34
37
|
for (const [name, v] of [
|
|
35
38
|
["baselineTrials", nb],
|
|
36
39
|
["horizon", horizon],
|
|
37
40
|
]) {
|
|
38
41
|
if (!Number.isInteger(v) || v < 1) {
|
|
39
|
-
throw new PeeksafeError("PEEKSAFE_E_CONFIG",
|
|
42
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `${where}: ${name} must be a positive integer, got ${v}`, {
|
|
40
43
|
detail: { [name]: v },
|
|
41
44
|
});
|
|
42
45
|
}
|
|
@@ -116,7 +119,7 @@ function universalFromBayes(rawLog, s, n, sb, nb) {
|
|
|
116
119
|
export function typeOneError(options) {
|
|
117
120
|
const { rate, ...rest } = options;
|
|
118
121
|
requireOpenProbability(rate, "rate", "typeOneError");
|
|
119
|
-
return
|
|
122
|
+
return certify({ ...rest, baselineRate: rate, candidateRate: rate }, "typeOneError");
|
|
120
123
|
}
|
|
121
124
|
/**
|
|
122
125
|
* `certifyProbability` for a paired case: the exact probability it is certified within
|
package/dist/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAiB,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwB5E;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACxF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,IAAI,oBAAoB,CAAC,gBAAgB,CAAC;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC;IACnE,eAAe,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
|
package/dist/cluster.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AAGH,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,YAAY,CAAC;AAItE;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,MAAO;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,MAKhE,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAgBD,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":"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"}
|
package/dist/cluster.js
CHANGED
|
@@ -119,10 +119,13 @@ function requireLevel(level, where) {
|
|
|
119
119
|
}
|
|
120
120
|
/** Group observations by cluster, preserving first-seen order. */
|
|
121
121
|
export function groupByCluster(obs) {
|
|
122
|
+
return group(obs, "groupByCluster");
|
|
123
|
+
}
|
|
124
|
+
function group(obs, where) {
|
|
122
125
|
const m = new Map();
|
|
123
126
|
for (const o of obs) {
|
|
124
127
|
if (!Number.isFinite(o.value)) {
|
|
125
|
-
throw new PeeksafeError("PEEKSAFE_E_STAT_DOMAIN",
|
|
128
|
+
throw new PeeksafeError("PEEKSAFE_E_STAT_DOMAIN", `${where}: value for cluster "${o.cluster}" is not finite`, {
|
|
126
129
|
detail: { cluster: o.cluster, value: o.value },
|
|
127
130
|
});
|
|
128
131
|
}
|
|
@@ -165,7 +168,7 @@ export function iidMean(values, level = 0.95) {
|
|
|
165
168
|
*/
|
|
166
169
|
export function clusterRobustMean(obs, level = 0.95) {
|
|
167
170
|
requireLevel(level, "clusterRobustMean");
|
|
168
|
-
const groups =
|
|
171
|
+
const groups = group(obs, "clusterRobustMean");
|
|
169
172
|
const n = obs.length;
|
|
170
173
|
const G = groups.size;
|
|
171
174
|
const sizes = [...groups.values()].map((xs) => xs.length);
|
|
@@ -273,7 +276,7 @@ export function clusterRobustMean(obs, level = 0.95) {
|
|
|
273
276
|
*/
|
|
274
277
|
export function randomEffectsMean(obs, level = 0.95) {
|
|
275
278
|
requireLevel(level, "randomEffectsMean");
|
|
276
|
-
const groups =
|
|
279
|
+
const groups = group(obs, "randomEffectsMean");
|
|
277
280
|
const n = obs.length;
|
|
278
281
|
const G = groups.size;
|
|
279
282
|
const grand = n > 0 ? obs.reduce((a, o) => a + o.value, 0) / n : 0;
|
|
@@ -390,10 +393,12 @@ const fmtPts = (x) => `${x >= 0 ? "+" : ""}${(x * 100).toFixed(1)}`;
|
|
|
390
393
|
* a reader would conclude.
|
|
391
394
|
*/
|
|
392
395
|
export function clusteredEffect(obs, level = 0.95) {
|
|
396
|
+
// Checked before the estimators below, which would refuse the same input in their own names.
|
|
397
|
+
requireLevel(level, "clusteredEffect");
|
|
398
|
+
const groups = group(obs, "clusteredEffect");
|
|
393
399
|
const cr2 = clusterRobustMean(obs, level);
|
|
394
400
|
const re = randomEffectsMean(obs, level);
|
|
395
401
|
const naive = iidMean(obs.map((o) => o.value), level);
|
|
396
|
-
const groups = groupByCluster(obs);
|
|
397
402
|
const families = [...groups.entries()]
|
|
398
403
|
.map(([family, xs]) => {
|
|
399
404
|
const m = xs.reduce((a, x) => a + x, 0) / xs.length;
|
|
@@ -512,6 +517,8 @@ export function clusterKeyDiagnostic(declared, fallback) {
|
|
|
512
517
|
hint: "group the same value array twice; do not filter one of them",
|
|
513
518
|
});
|
|
514
519
|
}
|
|
520
|
+
group(declared, "clusterKeyDiagnostic");
|
|
521
|
+
group(fallback, "clusterKeyDiagnostic");
|
|
515
522
|
const d = summarise("declared", declared);
|
|
516
523
|
const f = summarise("case-id", fallback);
|
|
517
524
|
// A grouping with fewer than two clusters has no estimable between-family
|
package/dist/cluster.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":"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"}
|
package/dist/frontier.d.ts
CHANGED
|
@@ -159,7 +159,7 @@ export interface FrontierConfig {
|
|
|
159
159
|
maxTrials: number;
|
|
160
160
|
batchSize: number;
|
|
161
161
|
nullQuantile: number;
|
|
162
|
-
/** the `futilityConfidence` `shouldStopPaired`
|
|
162
|
+
/** the `futilityConfidence` `shouldStop` and `shouldStopPaired` run at; unset takes their default */
|
|
163
163
|
futilityConfidence?: number;
|
|
164
164
|
}
|
|
165
165
|
export declare const DEFAULT_FRONTIER: FrontierConfig;
|
|
@@ -222,10 +222,11 @@ export interface FrontierPoint {
|
|
|
222
222
|
/** $1.00, but $0.0021 rather than $0.00, a per-run price rounds to nothing. */
|
|
223
223
|
export declare const fmtRate: (x: number) => string;
|
|
224
224
|
/**
|
|
225
|
-
*
|
|
226
|
-
*
|
|
225
|
+
* Expected runs `shouldStop` takes to stop an unpaired case where nothing
|
|
226
|
+
* moved, in a suite of `cases`, at `mde`, `fdr` and `futilityConfidence`: the
|
|
227
|
+
* per-case share `evaluatePoint` bills an unpaired point at.
|
|
227
228
|
*/
|
|
228
|
-
export declare function typicalObservationsPerCase(rate: number, mde: number, cfg: FrontierConfig, baselineRuns: number): number;
|
|
229
|
+
export declare function typicalObservationsPerCase(rate: number, mde: number, cfg: FrontierConfig, baselineRuns: number, cases: number): number;
|
|
229
230
|
export declare function evaluatePoint(cases: number, mde: number, baselineRuns: number, design: FrontierDesign, screen: FrontierScreen, screenRunsPerCase: number, cfg: FrontierConfig): FrontierPoint;
|
|
230
231
|
/** Every point in the swept space, feasible or not. */
|
|
231
232
|
export declare function enumerateFrontier(cfg: FrontierConfig, axes?: FrontierAxes): FrontierPoint[];
|
package/dist/frontier.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier.d.ts","sourceRoot":"","sources":["../src/frontier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;
|
|
1
|
+
{"version":3,"file":"frontier.d.ts","sourceRoot":"","sources":["../src/frontier.ts"],"names":[],"mappings":"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"}
|
package/dist/frontier.js
CHANGED
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
* screened plan is unknown rather than low.
|
|
58
58
|
*/
|
|
59
59
|
import { PeeksafeError, requireErrorRates, requireOpenProbability, requireProbability, requireRunCeiling, requireTrialGrid, } from "./errors.js";
|
|
60
|
-
import { DEFAULT_PLAN, expectedSettlePairs, requireSettleConfidence } from "./plan.js";
|
|
61
|
-
import {
|
|
60
|
+
import { DEFAULT_PLAN, expectedSettlePairs, expectedStopRuns, requireSettleConfidence, } from "./plan.js";
|
|
61
|
+
import { ebhSoloThreshold, evidenceCeilingLogE, mcnemarSamplesForEvidence, samplesForEvidence, } from "./stats.js";
|
|
62
62
|
export const DEFAULT_AXES = {
|
|
63
63
|
cases: [10, 20, 50, 100, 200],
|
|
64
64
|
mdes: [0.1, 0.15, 0.25, 0.35],
|
|
@@ -139,29 +139,31 @@ function requirePricing(cfg, where) {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
142
|
+
* Expected runs `shouldStop` takes to stop an unpaired case where nothing
|
|
143
|
+
* moved, in a suite of `cases`, at `mde`, `fdr` and `futilityConfidence`: the
|
|
144
|
+
* per-case share `evaluatePoint` bills an unpaired point at.
|
|
144
145
|
*/
|
|
145
|
-
export function typicalObservationsPerCase(rate, mde, cfg, baselineRuns) {
|
|
146
|
-
|
|
147
|
-
// one outside (0,1)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
146
|
+
export function typicalObservationsPerCase(rate, mde, cfg, baselineRuns, cases) {
|
|
147
|
+
const where = "typicalObservationsPerCase";
|
|
148
|
+
// `makePlan` reaches this quantile through `baselineNullRate`, which refuses one outside (0,1), so the frontier refuses it too.
|
|
149
|
+
requireOpenProbability(cfg.nullQuantile, "nullQuantile", where);
|
|
150
|
+
requireTrialGrid(cfg, where);
|
|
151
|
+
// Unchecked, an mde of 0 or below priced a bill for an effect nobody can detect, and a bad rate or run count was refused under another function's name.
|
|
152
|
+
requireOpenProbability(rate, "rate", where);
|
|
153
|
+
requireOpenProbability(mde, "mde", where);
|
|
154
|
+
requireBaselineRuns(baselineRuns, "baselineRuns", where);
|
|
155
|
+
if (!Number.isInteger(cases) || cases < 1) {
|
|
156
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `${where}: cases must be a positive integer, got ${cases}`, {
|
|
157
|
+
detail: { cases, where },
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
requireOpenProbability(cfg.fdr, "fdr", where);
|
|
161
|
+
requireSettleConfidence(cfg, where);
|
|
162
|
+
const successes = Math.round(rate * baselineRuns);
|
|
163
|
+
return expectedStopRuns({ caseId: "typical", successes, trials: baselineRuns }, rate, cases, {
|
|
164
|
+
...cfg,
|
|
165
|
+
mde,
|
|
166
|
+
});
|
|
165
167
|
}
|
|
166
168
|
export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRunsPerCase, cfg) {
|
|
167
169
|
// Strictly open: an MDE of 0 means "detect a zero-point drop", which every
|
|
@@ -171,10 +173,7 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
171
173
|
requireOpenProbability(mde, "mde", "evaluatePoint");
|
|
172
174
|
requireOpenProbability(cfg.baselineRate, "baselineRate", "evaluatePoint");
|
|
173
175
|
// `makePlan` refuses these two and this did not, so one options object was a
|
|
174
|
-
// refusal through the planner and a priced frontier through here.
|
|
175
|
-
// in `sprtExpectedN`, which answers NaN or Infinity outside (0,1), and
|
|
176
|
-
// `typicalObservationsPerCase` reads either as "cannot price this" and falls
|
|
177
|
-
// back to the run ceiling.
|
|
176
|
+
// refusal through the planner and a priced frontier through here.
|
|
178
177
|
requireErrorRates(cfg.alpha, cfg.beta, "evaluatePoint");
|
|
179
178
|
requireProbability(cfg.pairCoupling, "pairCoupling", "evaluatePoint");
|
|
180
179
|
requireOpenProbability(cfg.nullQuantile, "nullQuantile", "evaluatePoint");
|
|
@@ -256,10 +255,10 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
256
255
|
`${cfg.runsPerCaseCeiling}-run per-case ceiling`;
|
|
257
256
|
}
|
|
258
257
|
const feasible = infeasibleBecause === null;
|
|
259
|
-
//
|
|
258
|
+
// Each design is counted under the rule that stops it, as `makePlan` does; Wald's SPRT figure ignores the coupling and the suite size.
|
|
260
259
|
const typicalObservations = design === "paired"
|
|
261
|
-
? expectedSettlePairs(rate, cfg.pairCoupling, mde, cfg)
|
|
262
|
-
: typicalObservationsPerCase(rate, mde, cfg, effectiveBaselineRuns);
|
|
260
|
+
? expectedSettlePairs(rate, cfg.pairCoupling, mde, cases, cfg)
|
|
261
|
+
: typicalObservationsPerCase(rate, mde, cfg, effectiveBaselineRuns, cases);
|
|
263
262
|
const keep = screen === "none" ? cases : Math.max(1, Math.ceil(cases * cfg.screenKeepFraction));
|
|
264
263
|
// Screening runs are graded by whichever grader the screen uses. A proxy
|
|
265
264
|
// screen still *executes* the agent, it only skips the grade, so it saves
|