peeksafe 0.1.0 → 0.3.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 +220 -1
- package/README.md +3 -5
- package/dist/cluster.d.ts.map +1 -1
- package/dist/cluster.js +8 -0
- package/dist/cluster.js.map +1 -1
- package/dist/errors.d.ts +24 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +52 -3
- package/dist/errors.js.map +1 -1
- package/dist/frontier.d.ts +9 -6
- package/dist/frontier.d.ts.map +1 -1
- package/dist/frontier.js +99 -55
- package/dist/frontier.js.map +1 -1
- package/dist/gate.d.ts +2 -0
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +5 -1
- package/dist/gate.js.map +1 -1
- package/dist/plan.d.ts +65 -17
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +289 -51
- package/dist/plan.js.map +1 -1
- package/dist/rand.d.ts.map +1 -1
- package/dist/rand.js +16 -4
- package/dist/rand.js.map +1 -1
- package/dist/stats.d.ts +7 -3
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +103 -45
- package/dist/stats.js.map +1 -1
- package/dist/stop.d.ts.map +1 -1
- package/dist/stop.js +12 -4
- package/dist/stop.js.map +1 -1
- package/package.json +10 -11
- package/src/cluster.ts +12 -0
- package/src/errors.ts +70 -3
- package/src/frontier.ts +131 -71
- package/src/gate.ts +6 -1
- package/src/plan.ts +355 -66
- package/src/rand.ts +20 -4
- package/src/stats.ts +134 -51
- package/src/stop.ts +16 -4
package/dist/frontier.js
CHANGED
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
* against planted ground truth, and until someone has, the honest price of a
|
|
57
57
|
* screened plan is unknown rather than low.
|
|
58
58
|
*/
|
|
59
|
-
import { PeeksafeError, requireErrorRates, requireOpenProbability, requireProbability, } from "./errors.js";
|
|
60
|
-
import { DEFAULT_PLAN } from "./plan.js";
|
|
61
|
-
import {
|
|
59
|
+
import { PeeksafeError, requireErrorRates, requireOpenProbability, requireProbability, requireRunCeiling, requireTrialGrid, } from "./errors.js";
|
|
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],
|
|
@@ -89,6 +89,7 @@ export const DEFAULT_FRONTIER = {
|
|
|
89
89
|
nullQuantile: DEFAULT_PLAN.nullQuantile,
|
|
90
90
|
};
|
|
91
91
|
const RUNS_PER_OBS = { unpaired: 1, paired: 2 };
|
|
92
|
+
const SCREENS = ["none", "expensive", "proxy"];
|
|
92
93
|
/** $1.00, but $0.0021 rather than $0.00, a per-run price rounds to nothing. */
|
|
93
94
|
export const fmtRate = (x) => !Number.isFinite(x)
|
|
94
95
|
? Number.isNaN(x)
|
|
@@ -99,25 +100,70 @@ export const fmtRate = (x) => !Number.isFinite(x)
|
|
|
99
100
|
: `$${x.toPrecision(2)}`;
|
|
100
101
|
/** Cost of `runs` runs, all of them graded by the real grader. */
|
|
101
102
|
const graded = (runs, cfg) => runs * (cfg.costPerRunUsd + cfg.costPerGradeUsd);
|
|
103
|
+
function requireBaselineRuns(v, name, where) {
|
|
104
|
+
if (!Number.isInteger(v) || v < 1) {
|
|
105
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `${where}: ${name} must be a positive integer, got ${v}`, {
|
|
106
|
+
detail: { [name]: v, where },
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
102
110
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
111
|
+
* The budget, the prices, the screen's keep fraction and `amortisePrs`.
|
|
112
|
+
* `enumerateFrontier` checked these and `evaluatePoint` did not, so a direct
|
|
113
|
+
* call recommended a point at a negative bill and priced a screen that kept
|
|
114
|
+
* twice the suite.
|
|
105
115
|
*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
function requirePricing(cfg, where) {
|
|
117
|
+
const finiteCost = (v) => Number.isFinite(v) && v >= 0;
|
|
118
|
+
if (!(cfg.budgetUsd >= 0) || !finiteCost(cfg.costPerRunUsd) || !finiteCost(cfg.costPerGradeUsd)) {
|
|
119
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `${where}: budget must be ≥ 0 and costs finite and ≥ 0`, {
|
|
120
|
+
detail: {
|
|
121
|
+
budgetUsd: cfg.budgetUsd,
|
|
122
|
+
costPerRunUsd: cfg.costPerRunUsd,
|
|
123
|
+
costPerGradeUsd: cfg.costPerGradeUsd,
|
|
124
|
+
where,
|
|
125
|
+
},
|
|
126
|
+
hint: "an infinite cost fits an infinite budget, so the frontier recommended a point on an infinite bill",
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (!(cfg.screenKeepFraction > 0) || !(cfg.screenKeepFraction <= 1)) {
|
|
130
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `${where}: screenKeepFraction must be in (0,1], got ${cfg.screenKeepFraction}`, {
|
|
131
|
+
detail: { screenKeepFraction: cfg.screenKeepFraction, where },
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (!Number.isInteger(cfg.amortisePrs) || cfg.amortisePrs < 1) {
|
|
135
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `${where}: amortisePrs must be a positive integer, got ${cfg.amortisePrs}`, {
|
|
136
|
+
detail: { amortisePrs: cfg.amortisePrs, where },
|
|
137
|
+
hint: 'a baseline spread over "infinity" pull requests is how the baseline cost disappears from a plan',
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
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.
|
|
145
|
+
*/
|
|
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
|
+
});
|
|
121
167
|
}
|
|
122
168
|
export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRunsPerCase, cfg) {
|
|
123
169
|
// Strictly open: an MDE of 0 means "detect a zero-point drop", which every
|
|
@@ -127,29 +173,42 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
127
173
|
requireOpenProbability(mde, "mde", "evaluatePoint");
|
|
128
174
|
requireOpenProbability(cfg.baselineRate, "baselineRate", "evaluatePoint");
|
|
129
175
|
// `makePlan` refuses these two and this did not, so one options object was a
|
|
130
|
-
// refusal through the planner and a priced frontier through here.
|
|
131
|
-
// in `sprtExpectedN`, which answers NaN or Infinity outside (0,1), and
|
|
132
|
-
// `typicalObservationsPerCase` reads either as "cannot price this" and falls
|
|
133
|
-
// back to the run ceiling.
|
|
176
|
+
// refusal through the planner and a priced frontier through here.
|
|
134
177
|
requireErrorRates(cfg.alpha, cfg.beta, "evaluatePoint");
|
|
135
178
|
requireProbability(cfg.pairCoupling, "pairCoupling", "evaluatePoint");
|
|
136
179
|
requireOpenProbability(cfg.nullQuantile, "nullQuantile", "evaluatePoint");
|
|
180
|
+
requireSettleConfidence(cfg, "evaluatePoint");
|
|
181
|
+
// makePlan refuses it; unchecked, an fdr of 2 cut the bar and 0 was blamed on the ceiling.
|
|
182
|
+
requireOpenProbability(cfg.fdr, "fdr", "evaluatePoint");
|
|
183
|
+
requireRunCeiling(cfg.runsPerCaseCeiling, "evaluatePoint");
|
|
184
|
+
requirePricing(cfg, "evaluatePoint");
|
|
137
185
|
if (!Number.isInteger(cases) || cases < 1) {
|
|
138
186
|
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: cases must be a positive integer, got ${cases}`, {
|
|
139
187
|
detail: { cases },
|
|
140
188
|
});
|
|
141
189
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
190
|
+
// The paired design prices its baseline from this one, and 0 or 2.5 runs priced a cheaper frontier than any real baseline.
|
|
191
|
+
requireBaselineRuns(cfg.pairedBaselineRuns, "pairedBaselineRuns", "evaluatePoint");
|
|
192
|
+
requireBaselineRuns(baselineRuns, "baselineRuns", "evaluatePoint");
|
|
193
|
+
requireTrialGrid(cfg, "evaluatePoint");
|
|
194
|
+
// An unknown design fell through to the paired branch with no runs per observation and came back feasible on an infinite bill.
|
|
195
|
+
if (!Object.hasOwn(RUNS_PER_OBS, design)) {
|
|
196
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: design must be one of ${Object.keys(RUNS_PER_OBS).join(", ")}, got "${String(design)}"`, {
|
|
197
|
+
detail: { design },
|
|
145
198
|
});
|
|
146
199
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
200
|
+
// An unknown screen was priced and recommended as the expensive one.
|
|
201
|
+
if (!SCREENS.includes(screen)) {
|
|
202
|
+
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: screen must be one of ${SCREENS.join(", ")}, got "${String(screen)}"`, {
|
|
203
|
+
detail: { screen },
|
|
151
204
|
});
|
|
152
205
|
}
|
|
206
|
+
// Only null withholds a recommendation, so a NaN recall (0 of 0 regressions caught) recommended the screen.
|
|
207
|
+
for (const kind of ["expensive", "proxy"]) {
|
|
208
|
+
const recall = cfg.screenRecall[kind];
|
|
209
|
+
if (recall !== null)
|
|
210
|
+
requireProbability(recall, `screenRecall.${kind}`, "evaluatePoint");
|
|
211
|
+
}
|
|
153
212
|
if (screen !== "none" && (!Number.isInteger(screenRunsPerCase) || screenRunsPerCase < 1)) {
|
|
154
213
|
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: a ${screen} screen needs at least one run per case, got ${screenRunsPerCase}`, {
|
|
155
214
|
detail: { screen, screenRunsPerCase },
|
|
@@ -196,7 +255,10 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
196
255
|
`${cfg.runsPerCaseCeiling}-run per-case ceiling`;
|
|
197
256
|
}
|
|
198
257
|
const feasible = infeasibleBecause === null;
|
|
199
|
-
|
|
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.
|
|
259
|
+
const typicalObservations = design === "paired"
|
|
260
|
+
? expectedSettlePairs(rate, cfg.pairCoupling, mde, cases, cfg)
|
|
261
|
+
: typicalObservationsPerCase(rate, mde, cfg, effectiveBaselineRuns, cases);
|
|
200
262
|
const keep = screen === "none" ? cases : Math.max(1, Math.ceil(cases * cfg.screenKeepFraction));
|
|
201
263
|
// Screening runs are graded by whichever grader the screen uses. A proxy
|
|
202
264
|
// screen still *executes* the agent, it only skips the grade, so it saves
|
|
@@ -214,7 +276,7 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
214
276
|
: graded(screenRuns, cfg);
|
|
215
277
|
// The baseline. Unpaired buys its ceiling here; paired does not.
|
|
216
278
|
const baselineRunsTotal = cases * effectiveBaselineRuns;
|
|
217
|
-
const baselineRunsAmortised = baselineRunsTotal /
|
|
279
|
+
const baselineRunsAmortised = baselineRunsTotal / cfg.amortisePrs;
|
|
218
280
|
const baselineUsd = graded(baselineRunsAmortised, cfg);
|
|
219
281
|
const costFor = (obsPerCase) => {
|
|
220
282
|
const testRuns = Number.isFinite(obsPerCase) ? keep * obsPerCase * runsPerObs : Infinity;
|
|
@@ -256,13 +318,14 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
256
318
|
"certify-all": certifyAll,
|
|
257
319
|
ceiling,
|
|
258
320
|
};
|
|
259
|
-
|
|
260
|
-
if (
|
|
321
|
+
// `hasOwn`, as in `costShares`: `BILLS.toString` is inherited, so "toString" passed an `undefined` check.
|
|
322
|
+
if (!Object.hasOwn(BILLS, cfg.basis)) {
|
|
261
323
|
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: basis must be one of ${Object.keys(BILLS).join(", ")}, got "${String(cfg.basis)}"`, {
|
|
262
324
|
detail: { basis: cfg.basis },
|
|
263
325
|
hint: "an unrecognised basis silently defaulting to the cheaper bill is how a budget becomes fiction",
|
|
264
326
|
});
|
|
265
327
|
}
|
|
328
|
+
const basisCost = BILLS[cfg.basis];
|
|
266
329
|
const withinBudget = feasible && basisCost.totalUsd <= cfg.budgetUsd;
|
|
267
330
|
// Reportable and recommendable are different. A screen whose recall nobody
|
|
268
331
|
// measured is cheap in a way we cannot price, and a proxy screen at zero
|
|
@@ -303,26 +366,7 @@ export function evaluatePoint(cases, mde, baselineRuns, design, screen, screenRu
|
|
|
303
366
|
}
|
|
304
367
|
/** Every point in the swept space, feasible or not. */
|
|
305
368
|
export function enumerateFrontier(cfg, axes = DEFAULT_AXES) {
|
|
306
|
-
|
|
307
|
-
throw new PeeksafeError("PEEKSAFE_E_CONFIG", "frontier: budget and costs must be ≥ 0 and not NaN", {
|
|
308
|
-
detail: {
|
|
309
|
-
budgetUsd: cfg.budgetUsd,
|
|
310
|
-
costPerRunUsd: cfg.costPerRunUsd,
|
|
311
|
-
costPerGradeUsd: cfg.costPerGradeUsd,
|
|
312
|
-
},
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
if (!(cfg.screenKeepFraction > 0) || !(cfg.screenKeepFraction <= 1)) {
|
|
316
|
-
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: screenKeepFraction must be in (0,1], got ${cfg.screenKeepFraction}`, {
|
|
317
|
-
detail: { screenKeepFraction: cfg.screenKeepFraction },
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
if (!Number.isInteger(cfg.amortisePrs) || cfg.amortisePrs < 1) {
|
|
321
|
-
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: amortisePrs must be a positive integer, got ${cfg.amortisePrs}`, {
|
|
322
|
-
detail: { amortisePrs: cfg.amortisePrs },
|
|
323
|
-
hint: 'a baseline spread over "infinity" pull requests is how the baseline cost disappears from a plan',
|
|
324
|
-
});
|
|
325
|
-
}
|
|
369
|
+
requirePricing(cfg, "frontier");
|
|
326
370
|
for (const [name, xs] of Object.entries(axes)) {
|
|
327
371
|
if (!Array.isArray(xs) || xs.length === 0) {
|
|
328
372
|
throw new PeeksafeError("PEEKSAFE_E_CONFIG", `frontier: axis "${name}" is empty, nothing to sweep`, {
|
package/dist/frontier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier.js","sourceRoot":"","sources":["../src/frontier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontier.js","sourceRoot":"","sources":["../src/frontier.ts"],"names":[],"mappings":"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"}
|
package/dist/gate.d.ts
CHANGED
|
@@ -58,6 +58,8 @@ export declare const cannotDropBy: (baseline: {
|
|
|
58
58
|
successes: number;
|
|
59
59
|
trials: number;
|
|
60
60
|
}, mde: number) => boolean;
|
|
61
|
+
/** `options` without its `undefined` entries, so a spread over the defaults leaves those defaults in place. */
|
|
62
|
+
export declare function definedOptions<T extends object>(options: T): T;
|
|
61
63
|
/** One case's candidate result, and the baseline it is measured against. */
|
|
62
64
|
export interface GateCase {
|
|
63
65
|
id: string;
|
package/dist/gate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQlD,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,YAAY,aACb;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,OAC1C,MAAM,KACV,OAAsD,CAAC;AAE1D,4EAA4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB;aAC/B,GAAG,EAAE,IAAI;aACT,GAAG,EAAE,IAAI;aACT,gBAAgB,EAAE,CAAC;aACnB,QAAQ,EAAE,OAAO;CACT,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,qEAAqE;IACrE,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,yCAAyC;IACzC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,wDAAwD;IACxD,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,EAC7C,OAAO,GAAE,WAAgB,GACxB,UAAU,CAiKZ"}
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
package/dist/gate.js
CHANGED
|
@@ -55,6 +55,10 @@ import { discordant, ebhCorrect, ebhSoloThreshold, pairedLogE, } from "./stats.j
|
|
|
55
55
|
* `makePlan` calls the same cases IMPOSSIBLE, by the same rule.
|
|
56
56
|
*/
|
|
57
57
|
export const cannotDropBy = (baseline, mde) => baseline.successes / baseline.trials <= mde;
|
|
58
|
+
/** `options` without its `undefined` entries, so a spread over the defaults leaves those defaults in place. */
|
|
59
|
+
export function definedOptions(options) {
|
|
60
|
+
return Object.fromEntries(Object.entries(options ?? {}).filter(([, v]) => v !== undefined));
|
|
61
|
+
}
|
|
58
62
|
export const DEFAULT_GATE_OPTIONS = {
|
|
59
63
|
mde: 0.15,
|
|
60
64
|
fdr: 0.05,
|
|
@@ -69,7 +73,7 @@ export const DEFAULT_GATE_OPTIONS = {
|
|
|
69
73
|
* depend on the rule you used.
|
|
70
74
|
*/
|
|
71
75
|
export function gate(cases, options = {}) {
|
|
72
|
-
const opts = { ...DEFAULT_GATE_OPTIONS, ...options };
|
|
76
|
+
const opts = { ...DEFAULT_GATE_OPTIONS, ...definedOptions(options) };
|
|
73
77
|
requireOpenProbability(opts.mde, "mde", "gate");
|
|
74
78
|
requireOpenProbability(opts.fdr, "fdr", "gate");
|
|
75
79
|
requireEvidence(opts.evidence, "gate");
|
package/dist/gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAGH,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAElB,WAAW,EACX,eAAe,EACf,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAEhB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,QAA+C,EAC/C,GAAW,EACF,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
package/dist/plan.d.ts
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* scores exactly its expected successes). Realised sample counts vary around
|
|
32
32
|
* it.
|
|
33
33
|
*/
|
|
34
|
-
import {
|
|
34
|
+
import type { BaselineStat, CaseRef } from "./baseline.js";
|
|
35
35
|
import { type PairedCounts } from "./stats.js";
|
|
36
36
|
export interface PlanConfig {
|
|
37
37
|
/** the drop we want to be able to detect, in probability units (0.15 = 15 points) */
|
|
@@ -56,14 +56,14 @@ export interface PlanConfig {
|
|
|
56
56
|
/** beyond this many runs for one case we stop calling it "affordable" */
|
|
57
57
|
runsPerCaseCeiling: number;
|
|
58
58
|
/**
|
|
59
|
-
* Which design the *expected* bill
|
|
60
|
-
* runs,
|
|
59
|
+
* Which design the *expected* bill and the screening pass are priced for. A
|
|
60
|
+
* paired observation is two runs, and a paired case's observation count is
|
|
61
|
+
* the pairs `shouldStopPaired` takes to settle it at its coupling; an
|
|
62
|
+
* unpaired case's is the runs `shouldStop` takes to stop it.
|
|
61
63
|
*
|
|
62
|
-
* `undefined`
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* and quoting the *unpaired* bill underneath that recommendation would price
|
|
66
|
-
* a design nobody runs.
|
|
64
|
+
* `undefined` prices each case at its own `PlanCase.design`, and a case with
|
|
65
|
+
* none at the suite's `recommendedDesign`. Setting it prices every case at
|
|
66
|
+
* that one design.
|
|
67
67
|
*/
|
|
68
68
|
design?: "unpaired" | "paired";
|
|
69
69
|
alpha: number;
|
|
@@ -72,6 +72,13 @@ export interface PlanConfig {
|
|
|
72
72
|
maxTrials: number;
|
|
73
73
|
batchSize: number;
|
|
74
74
|
nullQuantile: number;
|
|
75
|
+
/**
|
|
76
|
+
* The `futilityConfidence` you run `shouldStop` and `shouldStopPaired` at.
|
|
77
|
+
* The expected bill counts the runs or pairs a case takes to stop at this
|
|
78
|
+
* level, so a higher one prices more. `undefined` takes the stopping rules'
|
|
79
|
+
* own default.
|
|
80
|
+
*/
|
|
81
|
+
futilityConfidence?: number;
|
|
75
82
|
}
|
|
76
83
|
export declare const DEFAULT_PLAN: PlanConfig;
|
|
77
84
|
export type Detectability =
|
|
@@ -126,6 +133,13 @@ export interface PlanCase {
|
|
|
126
133
|
* "undetectable" verdict.
|
|
127
134
|
*/
|
|
128
135
|
baselineRunsNeeded: number | null;
|
|
136
|
+
/**
|
|
137
|
+
* Expected runs this case costs in a pull request in which nothing moved, at
|
|
138
|
+
* the design the expected bill prices it at: `config.design`, else `design`,
|
|
139
|
+
* else the suite's `recommendedDesign` (unpaired when `planCase` is called on
|
|
140
|
+
* its own). The cases of a plan sum to `totals.typicalRuns`; 0 with no baseline.
|
|
141
|
+
*/
|
|
142
|
+
typicalRuns: number;
|
|
129
143
|
/** what a fixed-N two-proportion design would spend per arm, for comparison */
|
|
130
144
|
fixedNPerArm: number;
|
|
131
145
|
reason: string;
|
|
@@ -156,7 +170,11 @@ export interface PlanTotals {
|
|
|
156
170
|
wallMsScreened: number;
|
|
157
171
|
/** fraction of cases the screen is budgeted to carry through to the full test */
|
|
158
172
|
screenContinueFraction: number;
|
|
159
|
-
/**
|
|
173
|
+
/**
|
|
174
|
+
* What one observation of the expected bill costs in runs, averaged over its
|
|
175
|
+
* cases: 1 when every case runs unpaired, 2 when every case is paired, and in
|
|
176
|
+
* between for a suite that mixes the two.
|
|
177
|
+
*/
|
|
160
178
|
runsPerObservation: number;
|
|
161
179
|
/** expected *runs* (not observations) for a pull request in which nothing moved */
|
|
162
180
|
typicalRuns: number;
|
|
@@ -176,7 +194,13 @@ export interface Plan {
|
|
|
176
194
|
pairedOnly: PlanCase[];
|
|
177
195
|
/** cases whose baseline rate is too low to lose `mde` points at all */
|
|
178
196
|
impossible: PlanCase[];
|
|
179
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* The design the recommendation names: paired when more than a quarter of
|
|
199
|
+
* the suite is `PAIRED_ONLY` or most decidable cases' own `design` is
|
|
200
|
+
* paired. `expectedCostUsd` prices each case at
|
|
201
|
+
* its own `design` and falls back to this one only for a case with none,
|
|
202
|
+
* unless `config.design` fixes one design for the whole suite.
|
|
203
|
+
*/
|
|
180
204
|
recommendedDesign: "unpaired" | "paired";
|
|
181
205
|
/** the cheapest design that decides every decidable case */
|
|
182
206
|
recommendation: string;
|
|
@@ -200,23 +224,46 @@ export interface Plan {
|
|
|
200
224
|
}
|
|
201
225
|
export declare function planCase(c: CaseRef, b: BaselineStat | undefined, cfg: PlanConfig, m: number): PlanCase;
|
|
202
226
|
/**
|
|
203
|
-
* Expected total samples for the sequential design,
|
|
204
|
-
* expected
|
|
205
|
-
* the gate's own
|
|
227
|
+
* Expected total samples for the sequential design: per case, the exact
|
|
228
|
+
* expected runs `shouldStop` takes to stop it when its candidate passes at
|
|
229
|
+
* `trueRate`, in a suite of `cases.length`, on the gate's own batch grid
|
|
230
|
+
* (`expectedStopRuns`). At the default rate this is the figure the plan bills
|
|
231
|
+
* an unpaired case at, `PlanCase.typicalRuns`.
|
|
206
232
|
*
|
|
207
|
-
* This is the number that predicts what the gate will actually spend.
|
|
208
233
|
* `samplesForEvidence`, the one behind `PlanCase.unpaired.runs`, answers a
|
|
209
234
|
* different question: how many runs it takes to *certify a regression*. A case
|
|
210
|
-
* that did not regress never gets there; it
|
|
211
|
-
*
|
|
235
|
+
* that did not regress never gets there; it stops as futile or settled in a
|
|
236
|
+
* few batches. Pricing every case at the certification cost over-predicts the
|
|
212
237
|
* bill.
|
|
213
238
|
*
|
|
214
|
-
* `trueRate` defaults to the case's own baseline rate, i.e. "nothing moved",
|
|
239
|
+
* `trueRate` defaults to the case's own baseline rate, i.e. "nothing moved",
|
|
240
|
+
* which is what almost every pull request looks like.
|
|
215
241
|
*/
|
|
216
242
|
export declare function expectedSequentialSamples(cases: Array<CaseRef>, baseline: Map<string, BaselineStat>, cfg: PlanConfig, trueRate?: (caseId: string, b: BaselineStat) => number): {
|
|
217
243
|
samples: number;
|
|
218
244
|
perCase: Map<string, number>;
|
|
219
245
|
};
|
|
246
|
+
type TrialGrid = Pick<PlanConfig, "minTrials" | "maxTrials" | "batchSize">;
|
|
247
|
+
/** Refuses a set `futilityConfidence` outside (0, 1), where the settle bar is 0 or Infinity. */
|
|
248
|
+
export declare function requireSettleConfidence(cfg: Pick<PlanConfig, "futilityConfidence">, where: string): void;
|
|
249
|
+
/**
|
|
250
|
+
* Expected pairs `shouldStopPaired` takes to stop a paired case that did not
|
|
251
|
+
* move, at coupling `rho`, checked at `minTrials` and then every `batchSize`
|
|
252
|
+
* pairs up to `maxTrials`, in a suite of `suiteSize`. Exact, as
|
|
253
|
+
* `expectedStopRuns` is: the decision depends only on the worse and better
|
|
254
|
+
* counts at a given pair count, so a dynamic program carries their joint
|
|
255
|
+
* distribution from one check to the next. Rounded up to a whole pair.
|
|
256
|
+
*/
|
|
257
|
+
export declare function expectedSettlePairs(rate: number, rho: number, mde: number, suiteSize: number, cfg: TrialGrid & Pick<PlanConfig, "fdr" | "futilityConfidence">): number;
|
|
258
|
+
/**
|
|
259
|
+
* Expected runs `shouldStop` takes to stop an unpaired case whose candidate
|
|
260
|
+
* passes at `rate`, checked at `minTrials` and then every `batchSize` runs up
|
|
261
|
+
* to `maxTrials`, in a suite of `suiteSize`. Exact rather than simulated:
|
|
262
|
+
* the decision depends on the candidate only through its counts, so a dynamic
|
|
263
|
+
* program carries the distribution of the success count from one check to the
|
|
264
|
+
* next. Rounded up to a whole run; an expectation is not a grid point.
|
|
265
|
+
*/
|
|
266
|
+
export declare function expectedStopRuns(baseline: BaselineStat, rate: number, suiteSize: number, cfg: TrialGrid & Pick<PlanConfig, "mde" | "fdr" | "futilityConfidence">): number;
|
|
220
267
|
/**
|
|
221
268
|
* Plan a suite. `pilots` holds a pair table per case from a pilot run of the
|
|
222
269
|
* paired design, ideally with both arms on the same revision; a case with one
|
|
@@ -245,4 +292,5 @@ export interface AffordabilityCell {
|
|
|
245
292
|
typicallyAffordable: boolean;
|
|
246
293
|
}
|
|
247
294
|
export declare function affordabilityGrid(baselineRate: number, baselineTrials: number, cfg: PlanConfig, budgetUsd: number, caseCounts?: number[], mdes?: number[]): AffordabilityCell[];
|
|
295
|
+
export {};
|
|
248
296
|
//# sourceMappingURL=plan.d.ts.map
|
package/dist/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW3D,OAAO,EAIL,KAAK,YAAY,EAIlB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAO/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,EAAE,UAiB1B,CAAC;AAEF,MAAM,MAAM,aAAa;AACvB,gFAAgF;AAC9E,UAAU;AACZ,4FAA4F;GAC1F,aAAa;AACf,0FAA0F;GACxF,eAAe;AACjB,mFAAmF;GACjF,YAAY,CAAC;AAEjB,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,sBAAsB,EAAE,MAAM,CAAC;IAU/B;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,2DAA2D;IAC3D,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,6CAA6C;IAC7C,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,uEAAuE;IACvE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC;IACzC,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AA2DD,wBAAgB,QAAQ,CACtB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,YAAY,GAAG,SAAS,EAC3B,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,MAAM,GACR,QAAQ,CAiIV;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACnC,GAAG,EAAE,UAAU,EACf,QAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,KAAK,MACJ,GAC1C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAqBnD;AAED,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAE3E,gGAAgG;AAChG,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAC3C,KAAK,EAAE,MAAM,GACZ,IAAI,CAIN;AAOD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,oBAAoB,CAAC,GAC9D,MAAM,CA4ER;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,oBAAoB,CAAC,GACtE,MAAM,CAoDR;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACnC,GAAG,GAAE,UAAyB,EAC9B,MAAM,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,GAC5C,IAAI,CA+NN;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAM,EAAuB,EACzC,IAAI,GAAE,MAAM,EAA4B,GACvC,iBAAiB,EAAE,CAwGrB"}
|