@tangle-network/agent-eval 0.126.6 → 0.127.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 +51 -0
- package/README.md +2 -2
- package/dist/analyst/index.d.ts +52 -40
- package/dist/analyst/index.js +4 -4
- package/dist/belief-state/index.d.ts +34 -36
- package/dist/belief-state/index.js +2 -2
- package/dist/benchmarks/index.d.ts +30 -12
- package/dist/benchmarks/index.js +12 -10
- package/dist/builder-eval/index.js +1 -1
- package/dist/campaign/index.d.ts +432 -146
- package/dist/campaign/index.js +11 -9
- package/dist/{chunk-ARU2PZFM.js → chunk-424XHVKV.js} +43 -23
- package/dist/chunk-424XHVKV.js.map +1 -0
- package/dist/{chunk-NUKSVU3W.js → chunk-5DTSBUL2.js} +2 -2
- package/dist/{chunk-BTACVO2W.js → chunk-65QETEKG.js} +542 -258
- package/dist/chunk-65QETEKG.js.map +1 -0
- package/dist/{chunk-CGG5SLH3.js → chunk-ARCFIY7U.js} +2 -2
- package/dist/{chunk-P22LJ3Y2.js → chunk-CLELFRQG.js} +6 -4
- package/dist/chunk-CLELFRQG.js.map +1 -0
- package/dist/{chunk-LUNF2SEL.js → chunk-DJKY2TSY.js} +3 -3
- package/dist/chunk-DPUHNQLN.js +232 -0
- package/dist/chunk-DPUHNQLN.js.map +1 -0
- package/dist/{chunk-IPYXE555.js → chunk-EJGRPCO3.js} +36 -13
- package/dist/chunk-EJGRPCO3.js.map +1 -0
- package/dist/{chunk-K6IAZZ6L.js → chunk-FA3MFYNA.js} +132 -110
- package/dist/chunk-FA3MFYNA.js.map +1 -0
- package/dist/chunk-IG35YDN3.js +614 -0
- package/dist/chunk-IG35YDN3.js.map +1 -0
- package/dist/{chunk-DPZAEKA6.js → chunk-IMGJZBFG.js} +84 -56
- package/dist/chunk-IMGJZBFG.js.map +1 -0
- package/dist/{chunk-H5UD2323.js → chunk-IN455XKS.js} +53 -1
- package/dist/chunk-IN455XKS.js.map +1 -0
- package/dist/{chunk-PJQFMIOX.js → chunk-MHELPNRP.js} +31 -1
- package/dist/chunk-MHELPNRP.js.map +1 -0
- package/dist/{chunk-IILEIWGW.js → chunk-NL33OXEP.js} +41 -36
- package/dist/chunk-NL33OXEP.js.map +1 -0
- package/dist/{chunk-474LBSOX.js → chunk-OD5NQ2CS.js} +41 -16
- package/dist/chunk-OD5NQ2CS.js.map +1 -0
- package/dist/{chunk-QOTFXW5L.js → chunk-P5W7RQKK.js} +2 -2
- package/dist/{chunk-IR3KBHOY.js → chunk-P6FYH6K4.js} +39 -3
- package/dist/chunk-P6FYH6K4.js.map +1 -0
- package/dist/{chunk-J5SQWP6Y.js → chunk-PBE2LOSS.js} +18 -2
- package/dist/chunk-PBE2LOSS.js.map +1 -0
- package/dist/{chunk-E3IADPLG.js → chunk-PRB53E3J.js} +50 -224
- package/dist/chunk-PRB53E3J.js.map +1 -0
- package/dist/{chunk-X4UCIOTZ.js → chunk-S5YLIBFX.js} +2 -2
- package/dist/{chunk-7VYEGHWF.js → chunk-SZLVEKMJ.js} +41 -20
- package/dist/chunk-SZLVEKMJ.js.map +1 -0
- package/dist/{chunk-LKKT3IVV.js → chunk-TSN7JT6D.js} +6 -4
- package/dist/{chunk-LKKT3IVV.js.map → chunk-TSN7JT6D.js.map} +1 -1
- package/dist/{chunk-M7AH34KV.js → chunk-UTA2TGC4.js} +32 -16
- package/dist/chunk-UTA2TGC4.js.map +1 -0
- package/dist/{chunk-MAX3TN3C.js → chunk-UWZZKKU7.js} +7 -19
- package/dist/chunk-UWZZKKU7.js.map +1 -0
- package/dist/{chunk-ZVCHKKOP.js → chunk-WED5KLZQ.js} +39 -15
- package/dist/chunk-WED5KLZQ.js.map +1 -0
- package/dist/{chunk-OCFJACJU.js → chunk-X6VOPMLD.js} +74 -14
- package/dist/chunk-X6VOPMLD.js.map +1 -0
- package/dist/{chunk-MOXWMGPC.js → chunk-Y5CYOL42.js} +159 -70
- package/dist/chunk-Y5CYOL42.js.map +1 -0
- package/dist/{chunk-FO7HEH76.js → chunk-YJBNWCAA.js} +2 -2
- package/dist/chunk-ZPUEEM5U.js +179 -0
- package/dist/chunk-ZPUEEM5U.js.map +1 -0
- package/dist/{chunk-KE2VWPZX.js → chunk-ZUUWPZCV.js} +3 -3
- package/dist/cli.js +4 -4
- package/dist/contract/index.d.ts +464 -126
- package/dist/contract/index.js +425 -211
- package/dist/contract/index.js.map +1 -1
- package/dist/control.d.ts +34 -32
- package/dist/control.js +2 -2
- package/dist/hosted/index.d.ts +142 -41
- package/dist/hosted/index.js +23 -1
- package/dist/index.d.ts +365 -256
- package/dist/index.js +315 -226
- package/dist/index.js.map +1 -1
- package/dist/meta-eval/index.d.ts +32 -32
- package/dist/meta-eval/index.js +2 -2
- package/dist/multishot/index.d.ts +1 -0
- package/dist/openapi.json +1 -1
- package/dist/pipelines/index.js +2 -2
- package/dist/reporting.d.ts +97 -74
- package/dist/reporting.js +5 -4
- package/dist/rl.d.ts +177 -131
- package/dist/rl.js +232 -126
- package/dist/rl.js.map +1 -1
- package/dist/rollout/index.d.ts +53 -63
- package/dist/rollout/index.js +7 -5
- package/dist/{run-campaign-FFRM3RH5.js → run-campaign-3A2EBYBE.js} +4 -3
- package/dist/supervisor-run/index.d.ts +7 -15
- package/dist/supervisor-run/index.js +2 -2
- package/dist/traces.d.ts +66 -41
- package/dist/traces.js +9 -5
- package/dist/wire/index.d.ts +1 -0
- package/dist/wire/index.js +2 -2
- package/docs/concepts.md +18 -1
- package/docs/hosted-ingest-spec.md +37 -40
- package/docs/insight-report.md +57 -7
- package/docs/research-report-methodology.md +20 -21
- package/docs/rollout.md +13 -8
- package/package.json +21 -14
- package/dist/chunk-474LBSOX.js.map +0 -1
- package/dist/chunk-7VYEGHWF.js.map +0 -1
- package/dist/chunk-ARU2PZFM.js.map +0 -1
- package/dist/chunk-BTACVO2W.js.map +0 -1
- package/dist/chunk-DPZAEKA6.js.map +0 -1
- package/dist/chunk-E3IADPLG.js.map +0 -1
- package/dist/chunk-H5UD2323.js.map +0 -1
- package/dist/chunk-IILEIWGW.js.map +0 -1
- package/dist/chunk-IPYXE555.js.map +0 -1
- package/dist/chunk-IR3KBHOY.js.map +0 -1
- package/dist/chunk-J5SQWP6Y.js.map +0 -1
- package/dist/chunk-K6IAZZ6L.js.map +0 -1
- package/dist/chunk-M7AH34KV.js.map +0 -1
- package/dist/chunk-MAX3TN3C.js.map +0 -1
- package/dist/chunk-MOXWMGPC.js.map +0 -1
- package/dist/chunk-OCFJACJU.js.map +0 -1
- package/dist/chunk-P22LJ3Y2.js.map +0 -1
- package/dist/chunk-PJQFMIOX.js.map +0 -1
- package/dist/chunk-ZVCHKKOP.js.map +0 -1
- package/dist/chunk-ZZUXHH3R.js +0 -99
- package/dist/chunk-ZZUXHH3R.js.map +0 -1
- /package/dist/{chunk-NUKSVU3W.js.map → chunk-5DTSBUL2.js.map} +0 -0
- /package/dist/{chunk-CGG5SLH3.js.map → chunk-ARCFIY7U.js.map} +0 -0
- /package/dist/{chunk-LUNF2SEL.js.map → chunk-DJKY2TSY.js.map} +0 -0
- /package/dist/{chunk-QOTFXW5L.js.map → chunk-P5W7RQKK.js.map} +0 -0
- /package/dist/{chunk-X4UCIOTZ.js.map → chunk-S5YLIBFX.js.map} +0 -0
- /package/dist/{chunk-FO7HEH76.js.map → chunk-YJBNWCAA.js.map} +0 -0
- /package/dist/{chunk-KE2VWPZX.js.map → chunk-ZUUWPZCV.js.map} +0 -0
- /package/dist/{run-campaign-FFRM3RH5.js.map → run-campaign-3A2EBYBE.js.map} +0 -0
package/dist/rl.d.ts
CHANGED
|
@@ -233,7 +233,8 @@ type FailureClass = 'success' | 'reasoning_error' | 'tool_selection_error' | 'to
|
|
|
233
233
|
* researcher loop SHOULD be recorded as a `RunRecord`. The mandatory
|
|
234
234
|
* fields are exactly those the paper "Two Loops, Three Roles" requires
|
|
235
235
|
* for reproducibility: who/what/when/cost/seed/hash, plus the search vs
|
|
236
|
-
* holdout split tag
|
|
236
|
+
* holdout split tag. A task score is optional because execution-only records
|
|
237
|
+
* must preserve missing labels instead of converting errors into zero quality.
|
|
237
238
|
*
|
|
238
239
|
* This is intentionally NOT a replacement for the rich `Run` /
|
|
239
240
|
* `ProposeReviewReport` / `ScenarioResult` types already in the
|
|
@@ -254,6 +255,13 @@ type FailureClass = 'success' | 'reasoning_error' | 'tool_selection_error' | 'to
|
|
|
254
255
|
/** Search/dev/holdout split tag. 'search' is the paper-grade alias for the
|
|
255
256
|
* combined train+test pool that the optimizer is allowed to read. */
|
|
256
257
|
type RunSplitTag = 'search' | 'dev' | 'holdout';
|
|
258
|
+
/**
|
|
259
|
+
* Explicit execution-lifecycle result for a run.
|
|
260
|
+
*
|
|
261
|
+
* This is separate from task quality (`outcome`) and failure classification.
|
|
262
|
+
* Producers set it only from root-run or process evidence.
|
|
263
|
+
*/
|
|
264
|
+
type RunTerminalOutcome = 'succeeded' | 'failed' | 'cancelled' | 'incomplete' | 'unknown';
|
|
257
265
|
interface RunTokenUsage {
|
|
258
266
|
input: number;
|
|
259
267
|
/** All generated tokens charged as output, including reasoning tokens. */
|
|
@@ -267,11 +275,6 @@ interface RunTokenUsage {
|
|
|
267
275
|
}
|
|
268
276
|
/**
|
|
269
277
|
* How a run's USD amount was obtained.
|
|
270
|
-
*
|
|
271
|
-
* `costUsd` remains mandatory for wire compatibility. New producers should
|
|
272
|
-
* always populate this discriminated union so a missing bill is never
|
|
273
|
-
* mistaken for an observed zero-dollar run. For `uncaptured`, `costUsd` uses
|
|
274
|
-
* the legacy `0` sentinel while this field carries the truthful null.
|
|
275
278
|
*/
|
|
276
279
|
type RunCostProvenance = {
|
|
277
280
|
kind: 'observed';
|
|
@@ -317,8 +320,8 @@ interface JudgeScoresRecord {
|
|
|
317
320
|
perJudge: Record<string, Record<string, number>>;
|
|
318
321
|
/** Per-dim mean across judges. Convenience — derivable from `perJudge`. */
|
|
319
322
|
perDimMean: Record<string, number>;
|
|
320
|
-
/** Composite mean across
|
|
321
|
-
*
|
|
323
|
+
/** Composite mean across successful judges. Mirrors the task score only
|
|
324
|
+
* when `failedJudges` is empty. */
|
|
322
325
|
composite: number;
|
|
323
326
|
/** Judges that errored or returned an unparseable verdict. Recorded
|
|
324
327
|
* by id (e.g. `['glm-5.1']`) so a partial-failure case is explicit,
|
|
@@ -329,11 +332,11 @@ interface JudgeScoresRecord {
|
|
|
329
332
|
notes?: string;
|
|
330
333
|
}
|
|
331
334
|
interface RunOutcome {
|
|
332
|
-
/** Score on the search/optimization split. Optional
|
|
333
|
-
*
|
|
335
|
+
/** Score on the search/optimization split. Optional for holdout-only and
|
|
336
|
+
* execution-only records. */
|
|
334
337
|
searchScore?: number;
|
|
335
|
-
/** Score on the held-out split. Optional
|
|
336
|
-
*
|
|
338
|
+
/** Score on the held-out split. Optional for search-only and execution-only
|
|
339
|
+
* records. When both scores are absent, the run is explicitly unlabeled. */
|
|
337
340
|
holdoutScore?: number;
|
|
338
341
|
/** Bag of any other metric the run produced — judge dimensions,
|
|
339
342
|
* pass/fail counters, latency stats, etc. Numeric only — keeps
|
|
@@ -397,42 +400,39 @@ interface RunRecord {
|
|
|
397
400
|
wallMs: number;
|
|
398
401
|
/** Time spent queued before execution started, if known. */
|
|
399
402
|
queueMs?: number;
|
|
400
|
-
/** Total USD cost
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
costUsd: number;
|
|
405
|
-
/** Observed, model-priced estimate, or genuinely uncaptured USD amount.
|
|
406
|
-
* Optional only so existing serialized RunRecords remain valid. */
|
|
407
|
-
costProvenance?: RunCostProvenance;
|
|
403
|
+
/** Total USD cost, or null when the producer could not capture one. */
|
|
404
|
+
costUsd: number | null;
|
|
405
|
+
/** Whether `costUsd` came from billing data, a price calculation, or is unavailable. */
|
|
406
|
+
costProvenance: RunCostProvenance;
|
|
408
407
|
/** Token usage breakdown. */
|
|
409
408
|
tokenUsage: RunTokenUsage;
|
|
409
|
+
/** Root-run or process terminal result. Never inferred from a child span. */
|
|
410
|
+
terminalOutcome: RunTerminalOutcome;
|
|
411
|
+
/** Root-run or process failure reason. Valid only for a failed, cancelled,
|
|
412
|
+
* or incomplete terminal result; never populated from a child span. */
|
|
413
|
+
terminalFailureReason?: string;
|
|
410
414
|
/** Judge-side metadata, if a judge was used. */
|
|
411
415
|
judgeMetadata?: RunJudgeMetadata;
|
|
412
416
|
/** Per-split scores + raw bag. */
|
|
413
417
|
outcome: RunOutcome;
|
|
414
|
-
/** Canonical
|
|
418
|
+
/** Canonical task-failure class drawn from the shared
|
|
415
419
|
* `FAILURE_CLASSES` taxonomy. This is the aggregation key that makes
|
|
416
420
|
* "which failure dominates across the whole fleet" answerable in ONE
|
|
417
421
|
* vocabulary — every agent classifies against the same enum. Producers
|
|
418
|
-
* set it
|
|
419
|
-
*
|
|
422
|
+
* set it only from task-result evidence. Execution errors belong in
|
|
423
|
+
* `outcome.raw.execution_error_count`, even when the run later fails. */
|
|
420
424
|
failureClass?: FailureClass;
|
|
421
|
-
/** Free-form
|
|
425
|
+
/** Free-form task-failure detail, scoped UNDER `failureClass`
|
|
422
426
|
* (e.g. failureClass='tool_recovery_failure', failureMode='forge_build_unsatisfied').
|
|
423
|
-
*
|
|
427
|
+
* Do not populate this from a child execution error alone. */
|
|
424
428
|
failureMode?: string;
|
|
425
429
|
/** Which split this run was drawn from. */
|
|
426
430
|
splitTag: RunSplitTag;
|
|
427
431
|
/**
|
|
428
|
-
* Stable scenario identifier the run was scored against.
|
|
429
|
-
*
|
|
430
|
-
* that pairs runs by scenario (preferences, paired stats, BT tournament)
|
|
431
|
-
* keys on this. The campaign artifact populates it canonically; legacy
|
|
432
|
-
* runs without it fall back to inference from `outcome.raw.scenario_id`
|
|
433
|
-
* or `experimentId`.
|
|
432
|
+
* Stable scenario identifier the run observed or was scored against.
|
|
433
|
+
* Comparison primitives match this identity rather than input order.
|
|
434
434
|
*/
|
|
435
|
-
scenarioId
|
|
435
|
+
scenarioId: string;
|
|
436
436
|
/**
|
|
437
437
|
* Canonical identity for the agent profile cell that produced this row:
|
|
438
438
|
* profile artifact hash plus optional harness/model/prompt/reporting
|
|
@@ -959,9 +959,7 @@ declare function injectIrrelevantClause<S extends {
|
|
|
959
959
|
* per scenario but biggest score gap per pair. Useful for early
|
|
960
960
|
* bootstrapping when you have few variants.
|
|
961
961
|
*
|
|
962
|
-
*
|
|
963
|
-
* mappable to TRL's `DPODataset` shape (`prompt`, `chosen`, `rejected`)
|
|
964
|
-
* via the `toTRLFormat` helper.
|
|
962
|
+
* Resolve `PreferenceTriple` text with `toDpoRows` from `./exporters`.
|
|
965
963
|
*/
|
|
966
964
|
|
|
967
965
|
type PreferenceStrategy = 'paired-by-scenario-and-seed' | 'paired-by-scenario' | 'top-vs-bottom';
|
|
@@ -1000,7 +998,7 @@ interface PreferenceTriple {
|
|
|
1000
998
|
rejectedModel: string;
|
|
1001
999
|
};
|
|
1002
1000
|
}
|
|
1003
|
-
interface ExtractPreferencesOptions {
|
|
1001
|
+
interface ExtractPreferencesOptions extends TrainingRunSelectionOptions {
|
|
1004
1002
|
strategy?: PreferenceStrategy;
|
|
1005
1003
|
/**
|
|
1006
1004
|
* Minimum score gap required to admit a pair. Pairs below this are
|
|
@@ -1008,8 +1006,8 @@ interface ExtractPreferencesOptions {
|
|
|
1008
1006
|
*/
|
|
1009
1007
|
minMargin?: number;
|
|
1010
1008
|
/**
|
|
1011
|
-
* Optional split tag filter
|
|
1012
|
-
* `
|
|
1009
|
+
* Optional split tag filter. Without one, only search is included.
|
|
1010
|
+
* Holdout requires `allowHeldOutTrainingData: true`; dev is evaluation-only.
|
|
1013
1011
|
*/
|
|
1014
1012
|
splitTag?: RunRecord['splitTag'];
|
|
1015
1013
|
/**
|
|
@@ -1040,19 +1038,9 @@ interface PreferenceExtractionReport {
|
|
|
1040
1038
|
* 1. Run a campaign producing 5–10 variants × 50–200 scenarios × 3 seeds
|
|
1041
1039
|
* 2. Call this with `strategy: 'paired-by-scenario-and-seed'` and a
|
|
1042
1040
|
* verifiable-reward extractor as `rewardOf`
|
|
1043
|
-
* 3. Pass `report.pairs` to `
|
|
1041
|
+
* 3. Pass `report.pairs` to `toDpoRows` with prompt/completion resolvers
|
|
1044
1042
|
*/
|
|
1045
1043
|
declare function extractPreferences(runs: RunRecord[], opts?: ExtractPreferencesOptions): PreferenceExtractionReport;
|
|
1046
|
-
/**
|
|
1047
|
-
* TRL-compatible export. TRL's `DPODataset` is `{ prompt, chosen, rejected }`
|
|
1048
|
-
* but the prompt isn't stored on the RunRecord — only its hash. The caller
|
|
1049
|
-
* passes a `promptOf(promptHash)` lookup that the TRL trainer can use.
|
|
1050
|
-
*/
|
|
1051
|
-
declare function toTRLFormat(triples: PreferenceTriple[], promptOf: (hash: string) => string): Array<{
|
|
1052
|
-
prompt: string;
|
|
1053
|
-
chosen: string;
|
|
1054
|
-
rejected: string;
|
|
1055
|
-
}>;
|
|
1056
1044
|
/**
|
|
1057
1045
|
* Anthropic finetuning JSONL export — `{ system, user, assistant_chosen, assistant_rejected }`
|
|
1058
1046
|
* shape. Same caveat as TRL: prompt + outputs are content the caller has
|
|
@@ -1290,7 +1278,13 @@ interface DpoExportRow {
|
|
|
1290
1278
|
declare function toDpoRows(triples: PreferenceTriple[], lookups: DpoLookups): Promise<DpoExportRow[]>;
|
|
1291
1279
|
/** Serialize DPO rows as JSONL. One line per row. */
|
|
1292
1280
|
declare function toDpoJsonl(rows: DpoExportRow[]): string;
|
|
1293
|
-
interface
|
|
1281
|
+
interface TrainingRunSelectionOptions {
|
|
1282
|
+
/** Include held-out evaluation data in training output. Default false. */
|
|
1283
|
+
allowHeldOutTrainingData?: boolean;
|
|
1284
|
+
/** Require quality to be strictly greater than this value. Default 0. */
|
|
1285
|
+
minimumQualityExclusive?: number;
|
|
1286
|
+
}
|
|
1287
|
+
interface GrpoLookups extends TrainingRunSelectionOptions {
|
|
1294
1288
|
promptOf: (runId: string) => string | Promise<string>;
|
|
1295
1289
|
completionOf: (runId: string) => string | Promise<string>;
|
|
1296
1290
|
/** Optional: derive a custom reward from the run. Defaults to score. */
|
|
@@ -1305,16 +1299,17 @@ interface GrpoExportRow {
|
|
|
1305
1299
|
meta?: Record<string, unknown>;
|
|
1306
1300
|
}
|
|
1307
1301
|
/**
|
|
1308
|
-
* Convert RunRecord[] grouped by `(scenarioId)`
|
|
1309
|
-
*
|
|
1302
|
+
* Convert RunRecord[] grouped by canonical `(scenarioId, promptHash)` identity
|
|
1303
|
+
* into GRPO offline rows.
|
|
1310
1304
|
*
|
|
1311
1305
|
* GRPO (Shao et al. 2024 / DeepSeek-R1) trains on relative advantages
|
|
1312
1306
|
* within a group of completions for the same prompt; this is the
|
|
1313
|
-
* canonical input format.
|
|
1307
|
+
* canonical input format. A scenario containing multiple prompt hashes, or a
|
|
1308
|
+
* prompt hash that resolves to different text, is rejected rather than mixed.
|
|
1314
1309
|
*/
|
|
1315
1310
|
declare function toGrpoRows(runs: RunRecord[], lookups: GrpoLookups): Promise<GrpoExportRow[]>;
|
|
1316
1311
|
declare function toGrpoJsonl(rows: GrpoExportRow[]): string;
|
|
1317
|
-
interface SftLookups {
|
|
1312
|
+
interface SftLookups extends TrainingRunSelectionOptions {
|
|
1318
1313
|
promptOf: (runId: string) => string | Promise<string>;
|
|
1319
1314
|
completionOf: (runId: string) => string | Promise<string>;
|
|
1320
1315
|
/** Optional system message. Default omits. */
|
|
@@ -1331,9 +1326,8 @@ interface SftExportRow {
|
|
|
1331
1326
|
}
|
|
1332
1327
|
/**
|
|
1333
1328
|
* Convert RunRecord[] into Hugging Face / OpenAI / Anthropic-style
|
|
1334
|
-
* conversational SFT rows. By default
|
|
1335
|
-
*
|
|
1336
|
-
* rejection-sampling SFT).
|
|
1329
|
+
* conversational SFT rows. By default, only completed, positive-quality
|
|
1330
|
+
* search runs are eligible. Pass `include` for additional filtering.
|
|
1337
1331
|
*/
|
|
1338
1332
|
declare function toSftRows(runs: RunRecord[], lookups: SftLookups): Promise<SftExportRow[]>;
|
|
1339
1333
|
declare function toSftJsonl(rows: SftExportRow[]): string;
|
|
@@ -1372,6 +1366,7 @@ interface StepRewardJsonlRow {
|
|
|
1372
1366
|
weight: number;
|
|
1373
1367
|
}
|
|
1374
1368
|
declare function stepRewardsToJsonl(stepRewards: StepReward[]): string;
|
|
1369
|
+
declare function isTrainingRunEligible(run: RunRecord, quality: number | null | undefined, options?: TrainingRunSelectionOptions): quality is number;
|
|
1375
1370
|
|
|
1376
1371
|
/**
|
|
1377
1372
|
* RL dataset packaging + datasheet — the publishable, sellable bundle.
|
|
@@ -1393,7 +1388,9 @@ declare function stepRewardsToJsonl(stepRewards: StepReward[]): string;
|
|
|
1393
1388
|
*/
|
|
1394
1389
|
|
|
1395
1390
|
type RewardKind = 'deterministic' | 'probabilistic' | 'mixed';
|
|
1396
|
-
|
|
1391
|
+
declare const DATASET_FORMATS: readonly ["grpo", "sft", "dpo"];
|
|
1392
|
+
type DatasetFormat = (typeof DATASET_FORMATS)[number];
|
|
1393
|
+
declare function validateDatasetFormats(value: unknown): DatasetFormat[];
|
|
1397
1394
|
/** Caller-declared context — the qualitative half of the datasheet that can't
|
|
1398
1395
|
* be computed from records. */
|
|
1399
1396
|
interface RlDatasetConfig {
|
|
@@ -1416,7 +1413,7 @@ interface RlDatasetConfig {
|
|
|
1416
1413
|
limitations: string;
|
|
1417
1414
|
/** ISO timestamp — passed in (the substrate forbids Date.now()). */
|
|
1418
1415
|
createdAtIso: string;
|
|
1419
|
-
/** Default: ['
|
|
1416
|
+
/** Default: ['sft']. GRPO must be requested for multi-completion groups. */
|
|
1420
1417
|
formats?: DatasetFormat[];
|
|
1421
1418
|
/** Quality gates already run, recorded on the card for the buyer. */
|
|
1422
1419
|
qualityGates?: {
|
|
@@ -1427,14 +1424,16 @@ interface RlDatasetConfig {
|
|
|
1427
1424
|
}
|
|
1428
1425
|
interface RewardStats {
|
|
1429
1426
|
n: number;
|
|
1430
|
-
mean: number;
|
|
1431
|
-
median: number;
|
|
1432
|
-
min: number;
|
|
1433
|
-
max: number;
|
|
1434
|
-
std: number;
|
|
1427
|
+
mean: number | null;
|
|
1428
|
+
median: number | null;
|
|
1429
|
+
min: number | null;
|
|
1430
|
+
max: number | null;
|
|
1431
|
+
std: number | null;
|
|
1435
1432
|
}
|
|
1436
1433
|
interface RlDatasetStats {
|
|
1437
1434
|
records: number;
|
|
1435
|
+
/** Records carrying an explicit task-quality score. */
|
|
1436
|
+
scoredRecords: number;
|
|
1438
1437
|
/** Record count per split — a publishable dataset must declare its holdout. */
|
|
1439
1438
|
splits: Record<RunSplitTag, number>;
|
|
1440
1439
|
reward: RewardStats;
|
|
@@ -1470,7 +1469,7 @@ declare function buildRlDataset(records: RunRecord[], lookups: GrpoLookups & Sft
|
|
|
1470
1469
|
triples: PreferenceTriple[];
|
|
1471
1470
|
lookups: DpoLookups;
|
|
1472
1471
|
}): Promise<RlDatasetBundle>;
|
|
1473
|
-
/** Render the "Datasheet for Datasets" card
|
|
1472
|
+
/** Render the "Datasheet for Datasets" card that a buyer reads. */
|
|
1474
1473
|
declare function datasheetToMarkdown(m: RlDatasetManifest): string;
|
|
1475
1474
|
|
|
1476
1475
|
/**
|
|
@@ -1515,8 +1514,10 @@ declare function readCorpus(corpusPath: string): CorpusRecord[];
|
|
|
1515
1514
|
interface HarvestOptions {
|
|
1516
1515
|
/** Keep only records scoring >= this (rejection-sampling for SFT). */
|
|
1517
1516
|
minScore?: number;
|
|
1518
|
-
/** Keep only these splits
|
|
1517
|
+
/** Keep only these source splits. Held-out rows still require the explicit override below. */
|
|
1519
1518
|
splits?: RunRecord['splitTag'][];
|
|
1519
|
+
/** Permit held-out rows in training files. Default false. */
|
|
1520
|
+
allowHeldOutTrainingData?: boolean;
|
|
1520
1521
|
}
|
|
1521
1522
|
/**
|
|
1522
1523
|
* Harvest the accumulated corpus into a publishable RL dataset bundle. Reads
|
|
@@ -1851,35 +1852,39 @@ interface RubricPredictiveValidityReport {
|
|
|
1851
1852
|
* specific promotion path (still useful for replay-style evals).
|
|
1852
1853
|
*/
|
|
1853
1854
|
|
|
1854
|
-
type HeldOutGateRejectionCode = 'few_runs' | 'negative_delta' | 'overfit_gap' | 'cost_ceiling';
|
|
1855
|
+
type HeldOutGateRejectionCode = 'few_runs' | 'missing_split_scores' | 'missing_cost' | 'negative_delta' | 'overfit_gap' | 'cost_ceiling';
|
|
1855
1856
|
interface GateEvidence {
|
|
1856
1857
|
/** Number of paired (candidate, baseline) holdout observations used. */
|
|
1857
1858
|
productiveRuns: number;
|
|
1858
|
-
/**
|
|
1859
|
-
|
|
1860
|
-
/**
|
|
1859
|
+
/** Candidate holdout rows with no baseline row at the same work identity. */
|
|
1860
|
+
unpairedCandidateRuns: number;
|
|
1861
|
+
/** Baseline holdout rows with no candidate row at the same work identity. */
|
|
1862
|
+
unpairedBaselineRuns: number;
|
|
1863
|
+
/** Median of paired holdout deltas, or null when there are no pairs. */
|
|
1864
|
+
medianPairedDelta: number | null;
|
|
1865
|
+
/** Bootstrap CI on the median paired holdout delta, if computed. */
|
|
1861
1866
|
pairedCI: {
|
|
1862
1867
|
low: number;
|
|
1863
1868
|
high: number;
|
|
1864
|
-
};
|
|
1865
|
-
/** Wilcoxon signed-rank p-value
|
|
1866
|
-
pairedPValue: number;
|
|
1867
|
-
/** Mean candidate score on the search split
|
|
1868
|
-
searchScore: number;
|
|
1869
|
-
/** Mean candidate score on the holdout split
|
|
1870
|
-
holdoutScore: number;
|
|
1871
|
-
/** Candidate (search − holdout) gap. */
|
|
1872
|
-
overfitGap: number;
|
|
1873
|
-
/** Baseline (search − holdout) gap. */
|
|
1874
|
-
baselineOverfitGap: number;
|
|
1869
|
+
} | null;
|
|
1870
|
+
/** Wilcoxon signed-rank p-value, if computed. */
|
|
1871
|
+
pairedPValue: number | null;
|
|
1872
|
+
/** Mean candidate score on the search split, or null when absent. */
|
|
1873
|
+
searchScore: number | null;
|
|
1874
|
+
/** Mean candidate score on the holdout split, or null when absent. */
|
|
1875
|
+
holdoutScore: number | null;
|
|
1876
|
+
/** Candidate (search − holdout) gap, or null when either side is absent. */
|
|
1877
|
+
overfitGap: number | null;
|
|
1878
|
+
/** Baseline (search − holdout) gap, or null when either side is absent. */
|
|
1879
|
+
baselineOverfitGap: number | null;
|
|
1875
1880
|
/** Median per-task USD cost across the candidate's runs. Recorded
|
|
1876
1881
|
* even when no `costPerTaskCeiling` is configured so downstream
|
|
1877
1882
|
* dashboards (intelligence.tangle.tools) can render \$/task per
|
|
1878
1883
|
* generation regardless of gating policy. */
|
|
1879
|
-
medianCandidateCost: number;
|
|
1884
|
+
medianCandidateCost: number | null;
|
|
1880
1885
|
/** Median per-task USD cost across the baseline runs, for
|
|
1881
1886
|
* symmetric reporting. */
|
|
1882
|
-
medianBaselineCost: number;
|
|
1887
|
+
medianBaselineCost: number | null;
|
|
1883
1888
|
}
|
|
1884
1889
|
interface GateDecision$1 {
|
|
1885
1890
|
/** Final promote/no-promote verdict. */
|
|
@@ -2142,6 +2147,8 @@ interface Finding {
|
|
|
2142
2147
|
interface LayerResult {
|
|
2143
2148
|
layer: string;
|
|
2144
2149
|
status: LayerStatus;
|
|
2150
|
+
/** Origin of an `error` or `timeout`. Defaults to `execution`. */
|
|
2151
|
+
errorSource?: 'execution' | 'judge';
|
|
2145
2152
|
/** 0..1 score, optional — layers that don't produce a numeric score omit. */
|
|
2146
2153
|
score?: number;
|
|
2147
2154
|
durationMs: number;
|
|
@@ -2160,22 +2167,29 @@ interface LayerResult {
|
|
|
2160
2167
|
/** Any rich per-layer detail — rendered as-is by consumers that know the layer. */
|
|
2161
2168
|
detail?: Record<string, unknown>;
|
|
2162
2169
|
}
|
|
2163
|
-
/** Extends the substrate verdict spine: `valid` = `allPass
|
|
2164
|
-
*
|
|
2165
|
-
* consumers (drivers, gates) read this report without an adapter. */
|
|
2170
|
+
/** Extends the substrate verdict spine: `valid` = `allPass`; `score` is the
|
|
2171
|
+
* complete task score or 0 when the configured scoring panel was incomplete. */
|
|
2166
2172
|
interface VerificationReport extends DefaultVerdict {
|
|
2167
2173
|
layers: LayerResult[];
|
|
2168
2174
|
passCount: number;
|
|
2169
2175
|
failCount: number;
|
|
2170
2176
|
skippedCount: number;
|
|
2171
2177
|
errorCount: number;
|
|
2172
|
-
/** True iff
|
|
2178
|
+
/** True iff the configured scoring panel completed and every layer passed. */
|
|
2173
2179
|
allPass: boolean;
|
|
2174
2180
|
/**
|
|
2175
|
-
*
|
|
2176
|
-
*
|
|
2181
|
+
* Diagnostic weighted mean across contributing layers. This may represent a
|
|
2182
|
+
* partial panel. It is 0 when no layer contributed.
|
|
2177
2183
|
*/
|
|
2178
2184
|
blendedScore: number;
|
|
2185
|
+
/**
|
|
2186
|
+
* Complete task-quality measurement.
|
|
2187
|
+
* Present when at least one layer produced a valid score, every other layer
|
|
2188
|
+
* completed successfully or contributed an explicit scored failure, and no
|
|
2189
|
+
* result is missing because of a failure, skip, error, or timeout.
|
|
2190
|
+
* Use this field, not `blendedScore`, when creating task labels.
|
|
2191
|
+
*/
|
|
2192
|
+
taskScore?: number;
|
|
2179
2193
|
durationMs: number;
|
|
2180
2194
|
startedAt: string;
|
|
2181
2195
|
finishedAt: string;
|
|
@@ -2354,14 +2368,17 @@ interface RewardHackingFinding {
|
|
|
2354
2368
|
}
|
|
2355
2369
|
interface RewardHackingReport {
|
|
2356
2370
|
findings: RewardHackingFinding[];
|
|
2371
|
+
/** Signals with enough usable observations to produce a finding. */
|
|
2372
|
+
evaluatedSignals: RewardHackingSignal[];
|
|
2357
2373
|
/**
|
|
2358
|
-
* Composite verdict. `'
|
|
2359
|
-
* `'
|
|
2374
|
+
* Composite verdict. `'insufficient_evidence'` when fewer than four scored
|
|
2375
|
+
* runs exist; otherwise `'clean'` if every signal severity < 0.3,
|
|
2376
|
+
* `'suspect'` if at least one ≥ 0.3 but none ≥ 0.6, and `'gaming'` if any ≥ 0.6.
|
|
2360
2377
|
*/
|
|
2361
|
-
verdict: 'clean' | 'suspect' | 'gaming';
|
|
2378
|
+
verdict: 'insufficient_evidence' | 'clean' | 'suspect' | 'gaming';
|
|
2362
2379
|
/** Rationale for the verdict, ready to paste into an audit log. */
|
|
2363
2380
|
rationale: string[];
|
|
2364
|
-
/** Number of
|
|
2381
|
+
/** Number of runs with a usable proxy reward. */
|
|
2365
2382
|
n: number;
|
|
2366
2383
|
}
|
|
2367
2384
|
interface DetectRewardHackingInput {
|
|
@@ -2531,6 +2548,7 @@ type ProviderRedactor = (event: RawProviderEvent) => RawProviderEvent;
|
|
|
2531
2548
|
* OpenAI-compatible `/v1/chat/completions` client with:
|
|
2532
2549
|
* - Exponential-backoff retry on 429 + 5xx gateway errors (502/503/504).
|
|
2533
2550
|
* - Retry on transient network errors (fetch failed, AbortError, ECONNRESET).
|
|
2551
|
+
* - One retry at temperature 1 when a model explicitly requires it.
|
|
2534
2552
|
* - Graceful json_schema → json_object degrade on 400 with schema-reject body.
|
|
2535
2553
|
* - Fenced-JSON stripping (```json ... ```) for models that wrap structured output.
|
|
2536
2554
|
* - Configurable base URL + api key / bearer, works with LiteLLM proxies, OpenAI
|
|
@@ -2751,10 +2769,16 @@ interface SummaryTableRow {
|
|
|
2751
2769
|
mean: number;
|
|
2752
2770
|
ciLow: number;
|
|
2753
2771
|
ciHigh: number;
|
|
2754
|
-
/** BH-adjusted q-value vs comparator
|
|
2755
|
-
qValue: number;
|
|
2756
|
-
/** Cohen's
|
|
2757
|
-
cohensD: number;
|
|
2772
|
+
/** BH-adjusted q-value vs comparator, or null when unavailable. */
|
|
2773
|
+
qValue: number | null;
|
|
2774
|
+
/** Paired Cohen's dz vs comparator, or null when the paired variance is zero. */
|
|
2775
|
+
cohensD: number | null;
|
|
2776
|
+
/** Matched observations used for paired comparison, or null on the comparator row. */
|
|
2777
|
+
pairedN: number | null;
|
|
2778
|
+
/** Candidate observations without a comparator match. */
|
|
2779
|
+
unpairedCandidateN: number | null;
|
|
2780
|
+
/** Comparator observations without a candidate match. */
|
|
2781
|
+
unpairedComparatorN: number | null;
|
|
2758
2782
|
}
|
|
2759
2783
|
interface SummaryTable {
|
|
2760
2784
|
rows: SummaryTableRow[];
|
|
@@ -2776,7 +2800,7 @@ interface ParetoPoint {
|
|
|
2776
2800
|
onFrontier: boolean;
|
|
2777
2801
|
/** Optional gate verdict for this candidate, if a `GateDecision`
|
|
2778
2802
|
* for it was passed in. */
|
|
2779
|
-
gate?: 'promote' | '
|
|
2803
|
+
gate?: 'promote' | 'reject';
|
|
2780
2804
|
}
|
|
2781
2805
|
interface ParetoFigureSpec {
|
|
2782
2806
|
kind: 'pareto-cost-quality';
|
|
@@ -2802,12 +2826,16 @@ interface GainDistributionFigureSpec {
|
|
|
2802
2826
|
split: 'search' | 'holdout';
|
|
2803
2827
|
/** Number of pairs used. */
|
|
2804
2828
|
n: number;
|
|
2829
|
+
/** Candidate rows without a comparator match. */
|
|
2830
|
+
unpairedCandidateN: number;
|
|
2831
|
+
/** Comparator rows without a candidate match. */
|
|
2832
|
+
unpairedComparatorN: number;
|
|
2805
2833
|
bins: GainDistributionBin[];
|
|
2806
|
-
median: number;
|
|
2834
|
+
median: number | null;
|
|
2807
2835
|
ci: {
|
|
2808
2836
|
low: number;
|
|
2809
2837
|
high: number;
|
|
2810
|
-
};
|
|
2838
|
+
} | null;
|
|
2811
2839
|
}
|
|
2812
2840
|
type ResearchReportDecision = 'promote' | 'hold' | 'reject' | 'equivalent' | 'needs_more_data';
|
|
2813
2841
|
interface ResearchReportOptions {
|
|
@@ -2880,8 +2908,8 @@ interface ResearchReportCandidate {
|
|
|
2880
2908
|
mean: number;
|
|
2881
2909
|
ciLow: number;
|
|
2882
2910
|
ciHigh: number;
|
|
2883
|
-
qValue: number;
|
|
2884
|
-
cohensD: number;
|
|
2911
|
+
qValue: number | null;
|
|
2912
|
+
cohensD: number | null;
|
|
2885
2913
|
meanDeltaVsComparator: number | null;
|
|
2886
2914
|
pairedN: number;
|
|
2887
2915
|
medianGain: number | null;
|
|
@@ -2891,10 +2919,9 @@ interface ResearchReportCandidate {
|
|
|
2891
2919
|
high: number;
|
|
2892
2920
|
} | null;
|
|
2893
2921
|
/**
|
|
2894
|
-
* Bayesian-bootstrap
|
|
2895
|
-
*
|
|
2896
|
-
*
|
|
2897
|
-
* matched pairs."
|
|
2922
|
+
* Bayesian-bootstrap posterior summaries on the paired mean delta.
|
|
2923
|
+
* Dirichlet(1, ..., 1) weights represent uncertainty over the empirical
|
|
2924
|
+
* distribution of matched deltas.
|
|
2898
2925
|
*/
|
|
2899
2926
|
prGreaterThanZero: number | null;
|
|
2900
2927
|
prInRope: number | null;
|
|
@@ -3209,8 +3236,10 @@ interface CampaignRunOutcome {
|
|
|
3209
3236
|
pass: boolean;
|
|
3210
3237
|
/** Score for the run on its split. Maps to `searchScore` or `holdoutScore`. */
|
|
3211
3238
|
score: number;
|
|
3212
|
-
/**
|
|
3213
|
-
costUsd: number;
|
|
3239
|
+
/** Cost in USD, or null when the runner could not capture it. */
|
|
3240
|
+
costUsd: number | null;
|
|
3241
|
+
/** Source of the cost amount. */
|
|
3242
|
+
costProvenance: RunCostProvenance;
|
|
3214
3243
|
tokenUsage: RunTokenUsage;
|
|
3215
3244
|
/** Snapshot model id (e.g. `claude-sonnet-4-6@2025-04-15`). */
|
|
3216
3245
|
model: string;
|
|
@@ -3569,14 +3598,17 @@ interface JudgeScore {
|
|
|
3569
3598
|
}
|
|
3570
3599
|
/** Five-valued verdict taxonomy (MOSS-paper alignment). */
|
|
3571
3600
|
type GateDecision = 'ship' | 'hold' | 'need_more_work' | 'model_ceiling' | 'arch_ceiling';
|
|
3601
|
+
/** Outcome of one check that contributed to a release decision. */
|
|
3602
|
+
type GateCheckStatus = 'pass' | 'fail' | 'not_evaluated';
|
|
3603
|
+
interface GateContribution {
|
|
3604
|
+
name: string;
|
|
3605
|
+
status: GateCheckStatus;
|
|
3606
|
+
detail: unknown;
|
|
3607
|
+
}
|
|
3572
3608
|
interface GateResult {
|
|
3573
3609
|
decision: GateDecision;
|
|
3574
3610
|
reasons: string[];
|
|
3575
|
-
contributingGates:
|
|
3576
|
-
name: string;
|
|
3577
|
-
passed: boolean;
|
|
3578
|
-
detail: unknown;
|
|
3579
|
-
}>;
|
|
3611
|
+
contributingGates: GateContribution[];
|
|
3580
3612
|
delta?: number;
|
|
3581
3613
|
}
|
|
3582
3614
|
/** Token usage accumulated for a cell. Aliased to the canonical `RunTokenUsage`
|
|
@@ -3609,6 +3641,10 @@ interface CampaignCellResult<TArtifact> {
|
|
|
3609
3641
|
durationMs: number;
|
|
3610
3642
|
seed: number;
|
|
3611
3643
|
cached: boolean;
|
|
3644
|
+
/** Stage that produced `error`. Missing on successful cells. */
|
|
3645
|
+
errorStage?: 'dispatch' | 'judge';
|
|
3646
|
+
/** Judge that threw when `errorStage` is `judge`. */
|
|
3647
|
+
errorJudge?: string;
|
|
3612
3648
|
error?: string;
|
|
3613
3649
|
}
|
|
3614
3650
|
interface JudgeAggregate {
|
|
@@ -3633,8 +3669,10 @@ interface GenerationRecord {
|
|
|
3633
3669
|
* handled — the evidence a blind `Mutator` cannot see. */
|
|
3634
3670
|
interface GenerationCandidate {
|
|
3635
3671
|
surfaceHash: string;
|
|
3636
|
-
|
|
3637
|
-
|
|
3672
|
+
/** Mean over complete task-quality scores, or null when none were produced. */
|
|
3673
|
+
composite: number | null;
|
|
3674
|
+
/** Descriptive interval for `composite`, or null when no score exists. */
|
|
3675
|
+
ci95: [number, number] | null;
|
|
3638
3676
|
/** Exact surface this candidate mutated. */
|
|
3639
3677
|
parentSurfaceHash?: string;
|
|
3640
3678
|
/** Measured search-split composite of the exact parent surface. */
|
|
@@ -3644,13 +3682,12 @@ interface GenerationCandidate {
|
|
|
3644
3682
|
observedDeltaFromParent?: number;
|
|
3645
3683
|
/** Whether this candidate had a scorable result for every designed campaign
|
|
3646
3684
|
* cell and was therefore eligible for ranking, promotion, and Pareto
|
|
3647
|
-
* selection.
|
|
3648
|
-
|
|
3649
|
-
eligibleForPromotion?: boolean;
|
|
3685
|
+
* selection. */
|
|
3686
|
+
eligibleForPromotion: boolean;
|
|
3650
3687
|
/** Exact denominator receipt for selection eligibility. Scores stay
|
|
3651
3688
|
* descriptive: an incomplete candidate is retained with its observed score
|
|
3652
3689
|
* and errors instead of receiving an invented penalty. */
|
|
3653
|
-
coverage
|
|
3690
|
+
coverage: {
|
|
3654
3691
|
expectedCells: number;
|
|
3655
3692
|
scorableCells: number;
|
|
3656
3693
|
unscorableCells: Array<{
|
|
@@ -3691,10 +3728,18 @@ interface CampaignAggregates {
|
|
|
3691
3728
|
cost: CostLedgerSummary;
|
|
3692
3729
|
/** Compatibility alias of `cost.totalCostUsd`. */
|
|
3693
3730
|
totalCostUsd: number;
|
|
3731
|
+
/** Cells whose dispatch completed, including cells whose later judge failed. */
|
|
3694
3732
|
cellsExecuted: number;
|
|
3695
3733
|
cellsSkipped: number;
|
|
3696
3734
|
cellsCached: number;
|
|
3735
|
+
/** All non-skipped dispatch, judge, and unclassified cell failures. */
|
|
3697
3736
|
cellsFailed: number;
|
|
3737
|
+
/** Present on results that record failure stages. */
|
|
3738
|
+
cellsDispatchFailed?: number;
|
|
3739
|
+
/** Present on results that record failure stages. */
|
|
3740
|
+
cellsJudgeFailed?: number;
|
|
3741
|
+
/** Legacy failures whose stage was not recorded. */
|
|
3742
|
+
cellsUnclassifiedFailed?: number;
|
|
3698
3743
|
}
|
|
3699
3744
|
interface CampaignResult<TArtifact = unknown, TScenario extends Scenario = Scenario> {
|
|
3700
3745
|
/** sha256(scenarios, judges, dispatch source ref, optimizer config, seed). Stable identity for reruns. */
|
|
@@ -3749,29 +3794,30 @@ interface AdapterContext {
|
|
|
3749
3794
|
configHash: string;
|
|
3750
3795
|
/** Default split tag. Default `'search'`. */
|
|
3751
3796
|
splitTag?: RunSplitTag;
|
|
3752
|
-
/**
|
|
3797
|
+
/** Estimated cost in USD when the source doesn't record one. */
|
|
3753
3798
|
defaultCostUsd?: number;
|
|
3754
3799
|
}
|
|
3755
3800
|
/**
|
|
3756
|
-
* Convert a `CampaignResult` into canonical `RunRecord[]
|
|
3757
|
-
*
|
|
3758
|
-
*
|
|
3759
|
-
*
|
|
3760
|
-
*
|
|
3761
|
-
*
|
|
3801
|
+
* Convert a `CampaignResult` into canonical `RunRecord[]`, one per cell.
|
|
3802
|
+
* Successful judged cells carry their mean judge composite and dimensions.
|
|
3803
|
+
* Errored or unjudged cells remain unlabeled while retaining explicit terminal
|
|
3804
|
+
* outcome, execution-error count, token usage, cost, and failure detail.
|
|
3805
|
+
* `candidateId` identifies the measured surface and defaults to the campaign
|
|
3806
|
+
* manifest hash.
|
|
3762
3807
|
*/
|
|
3763
3808
|
declare function campaignToRunRecords(campaign: CampaignResult, ctx: AdapterContext & {
|
|
3764
3809
|
candidateId?: string;
|
|
3765
3810
|
}): RunRecord[];
|
|
3766
3811
|
/**
|
|
3767
3812
|
* Convert a `MultiLayerVerifier` `VerificationReport` into a `RunRecord`.
|
|
3768
|
-
*
|
|
3769
|
-
*
|
|
3770
|
-
*
|
|
3813
|
+
* A split score is emitted only when `report.taskScore` proves the configured
|
|
3814
|
+
* scoring panel completed. Partial scores remain in `outcome.raw` for
|
|
3815
|
+
* diagnosis. Layer errors and timeouts become judge or execution telemetry;
|
|
3816
|
+
* only a scored `fail` layer may produce task-failure detail.
|
|
3771
3817
|
*/
|
|
3772
3818
|
declare function verificationReportToRunRecord(report: VerificationReport, ctx: AdapterContext & {
|
|
3773
3819
|
candidateId: string;
|
|
3774
|
-
scenarioId
|
|
3820
|
+
scenarioId: string;
|
|
3775
3821
|
}, opts?: {
|
|
3776
3822
|
runId?: string;
|
|
3777
3823
|
}): RunRecord;
|
|
@@ -4057,4 +4103,4 @@ interface BuildPairwiseFromCampaignInput {
|
|
|
4057
4103
|
}
|
|
4058
4104
|
declare function buildPairwiseFromCampaign(input: BuildPairwiseFromCampaignInput): PairwiseOutcome[];
|
|
4059
4105
|
|
|
4060
|
-
export { ABSENT_CATEGORY, type AdaptationCurve, type AdaptationPoint, type AdaptationRunner, type AdapterContext, type AdversarialMutation, type BehaviorFeatures, type BradleyTerryFit, type BradleyTerryRating, type BuildPairwiseFromCampaignInput, type CellObservation, type CompareCurvesResult, type ComputeBestOfNOptions, type ComputeBestOfNResult, type ComputeCurve, type ComputeCurveBudget, type ComputeCurvePoint, type ContaminationProbeInput, type ContaminationProbeOptions, type ContaminationProbeReport, type CorpusAppendResult, type CorpusRecord, type CurriculumAllocation, DEFAULT_MIN_N_PER_FEATURE, DEFAULT_QUANTILE_BUCKETS, type DatasetFormat, type DeploymentOutcome, type DetectRewardHackingInput, type DpoExportRow, type DpoLookups, type EasyModeOptions, type EasyModeReport, type EloOptions, type ExtractPreferencesOptions, type ExtractStepRewardsOptions, type FeatureDivergence, type FeatureShift, type FidelityReport, type FidelityVerdict, FileSystemOutcomeStore, type FileSystemOutcomeStoreOptions, type GrpoExportRow, type GrpoLookups, type HarvestOptions, InMemoryOutcomeStore, type OffPolicyContributionCounts, type OffPolicyEstimate, type OffPolicyOptions, type OffPolicyTrajectory, type OutcomeStore, type PairwiseOutcome, type ParetoPointInput, PredictiveValidityResearcher, type PredictiveValidityResearcherOptions, type PreferenceExtractionReport, type PreferenceStrategy, type PreferenceTriple, type PrmExportRow, type PrmLookups, type PrmTrainingTriple, REPRESENTATIVE_MIN_FIDELITY, type RLCampaignResult, type RewardHackingFinding, type RewardHackingReport, type RewardHackingSignal, type RewardKind, type RewardStats, type RlDatasetBundle, type RlDatasetConfig, type RlDatasetManifest, type RlDatasetStats, type RunAdaptationCurveOptions, type RunComputeCurveOptions, type RunRLCampaignOptions, type RunwiseStepSummary, type ScenarioPerturbation, type ScenarioPerturbationKind, type SelfConsistencyOptions, type SelfConsistencyResult, type SftExportRow, type SftLookups, type SimFidelityOptions, type StepReward, type StepRewardJsonlRow, type StepScorer, type ThompsonCurriculumOptions, type VarianceCurriculumOptions, type VerifiableReward, type VerifiableRewardExtractionOptions, type VerifiableRewardSource, appendToCorpus, applyEloUpdate, bestOfN, bucketLabel, buildDatasetFromCorpus, buildPairwiseFromCampaign, buildRlDataset, campaignToRunRecords, compareAdaptationCurves, datasheetToMarkdown, defaultBehaviorFeatures, detectRewardHacking, doublyRobust, easyModeCheck, extractPreferences, extractStepRewards, extractVerifiableReward, extractVerifiableRewardsFromRecords, filterDeterministicallyRewarded, firstPassK, fitBradleyTerry, injectIrrelevantClause, inverseProbabilityWeighting, jsDivergence, observationsFromRunRecords, offPolicyEstimateAll, paretoFrontier, prmTrainingPairs, quantileEdges, readCorpus, renameVariables, runAdaptationCurve, runComputeCurve, runContaminationProbe, runEvalCampaign, runRLCampaign, runwiseStepRewardSummary, selfConsistency, selfNormalizedImportanceWeighting, shuffleOrder, simFidelityReport, stepRewardsToJsonl, thompsonCurriculum, toAnthropicFormat, toDpoJsonl, toDpoRows, toGrpoJsonl, toGrpoRows, toPrmJsonl, toPrmRows, toSftJsonl, toSftRows,
|
|
4106
|
+
export { ABSENT_CATEGORY, type AdaptationCurve, type AdaptationPoint, type AdaptationRunner, type AdapterContext, type AdversarialMutation, type BehaviorFeatures, type BradleyTerryFit, type BradleyTerryRating, type BuildPairwiseFromCampaignInput, type CellObservation, type CompareCurvesResult, type ComputeBestOfNOptions, type ComputeBestOfNResult, type ComputeCurve, type ComputeCurveBudget, type ComputeCurvePoint, type ContaminationProbeInput, type ContaminationProbeOptions, type ContaminationProbeReport, type CorpusAppendResult, type CorpusRecord, type CurriculumAllocation, DEFAULT_MIN_N_PER_FEATURE, DEFAULT_QUANTILE_BUCKETS, type DatasetFormat, type DeploymentOutcome, type DetectRewardHackingInput, type DpoExportRow, type DpoLookups, type EasyModeOptions, type EasyModeReport, type EloOptions, type ExtractPreferencesOptions, type ExtractStepRewardsOptions, type FeatureDivergence, type FeatureShift, type FidelityReport, type FidelityVerdict, FileSystemOutcomeStore, type FileSystemOutcomeStoreOptions, type GrpoExportRow, type GrpoLookups, type HarvestOptions, InMemoryOutcomeStore, type OffPolicyContributionCounts, type OffPolicyEstimate, type OffPolicyOptions, type OffPolicyTrajectory, type OutcomeStore, type PairwiseOutcome, type ParetoPointInput, PredictiveValidityResearcher, type PredictiveValidityResearcherOptions, type PreferenceExtractionReport, type PreferenceStrategy, type PreferenceTriple, type PrmExportRow, type PrmLookups, type PrmTrainingTriple, REPRESENTATIVE_MIN_FIDELITY, type RLCampaignResult, type RewardHackingFinding, type RewardHackingReport, type RewardHackingSignal, type RewardKind, type RewardStats, type RlDatasetBundle, type RlDatasetConfig, type RlDatasetManifest, type RlDatasetStats, type RunAdaptationCurveOptions, type RunComputeCurveOptions, type RunRLCampaignOptions, type RunwiseStepSummary, type ScenarioPerturbation, type ScenarioPerturbationKind, type SelfConsistencyOptions, type SelfConsistencyResult, type SftExportRow, type SftLookups, type SimFidelityOptions, type StepReward, type StepRewardJsonlRow, type StepScorer, type ThompsonCurriculumOptions, type TrainingRunSelectionOptions, type VarianceCurriculumOptions, type VerifiableReward, type VerifiableRewardExtractionOptions, type VerifiableRewardSource, appendToCorpus, applyEloUpdate, bestOfN, bucketLabel, buildDatasetFromCorpus, buildPairwiseFromCampaign, buildRlDataset, campaignToRunRecords, compareAdaptationCurves, datasheetToMarkdown, defaultBehaviorFeatures, detectRewardHacking, doublyRobust, easyModeCheck, extractPreferences, extractStepRewards, extractVerifiableReward, extractVerifiableRewardsFromRecords, filterDeterministicallyRewarded, firstPassK, fitBradleyTerry, injectIrrelevantClause, inverseProbabilityWeighting, isTrainingRunEligible, jsDivergence, observationsFromRunRecords, offPolicyEstimateAll, paretoFrontier, prmTrainingPairs, quantileEdges, readCorpus, renameVariables, runAdaptationCurve, runComputeCurve, runContaminationProbe, runEvalCampaign, runRLCampaign, runwiseStepRewardSummary, selfConsistency, selfNormalizedImportanceWeighting, shuffleOrder, simFidelityReport, stepRewardsToJsonl, thompsonCurriculum, toAnthropicFormat, toDpoJsonl, toDpoRows, toGrpoJsonl, toGrpoRows, toPrmJsonl, toPrmRows, toSftJsonl, toSftRows, validateDatasetFormats, varianceBasedCurriculum, verificationReportToRunRecord };
|