@tangle-network/agent-eval 0.197.0 → 0.198.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 +45 -0
- package/dist/active-curriculum-B_Lc9kfO.js +61 -0
- package/dist/active-curriculum-B_Lc9kfO.js.map +1 -0
- package/dist/adapters/http.d.ts +2 -2
- package/dist/analyst/index.d.ts +5 -5
- package/dist/analyst/index.js +3 -3
- package/dist/{analyze-runs-B6gv7vAT.js → analyze-runs-DFbp2gB8.js} +5 -5
- package/dist/{analyze-runs-B6gv7vAT.js.map → analyze-runs-DFbp2gB8.js.map} +1 -1
- package/dist/{benchmark-command-DB7pxlks.js → benchmark-command-D8E5TaPC.js} +6 -5
- package/dist/{benchmark-command-DB7pxlks.js.map → benchmark-command-D8E5TaPC.js.map} +1 -1
- package/dist/benchmarks/index.d.ts +4 -3
- package/dist/benchmarks/index.d.ts.map +1 -1
- package/dist/benchmarks/index.js +3 -3
- package/dist/campaign/index.d.ts +5 -4
- package/dist/campaign/index.js +13 -11
- package/dist/{campaign-BUFSOI36.js → campaign-Dlg2iOzH.js} +13 -12
- package/dist/{campaign-BUFSOI36.js.map → campaign-Dlg2iOzH.js.map} +1 -1
- package/dist/{campaign-evidence-DJc60F9C.js → campaign-evidence-jL_U7Ikv.js} +2 -2
- package/dist/{campaign-evidence-DJc60F9C.js.map → campaign-evidence-jL_U7Ikv.js.map} +1 -1
- package/dist/cli.js +243 -13
- package/dist/cli.js.map +1 -1
- package/dist/contract/index.d.ts +7 -6
- package/dist/contract/index.js +9 -9
- package/dist/{default-registry-D2csUBBQ.d.ts → default-registry-oK9hHfX_.d.ts} +3 -3
- package/dist/{default-registry-D2csUBBQ.d.ts.map → default-registry-oK9hHfX_.d.ts.map} +1 -1
- package/dist/{define-agent-eval-ulRlLvse.d.ts → define-agent-eval-By9PImpa.d.ts} +5 -4
- package/dist/define-agent-eval-By9PImpa.d.ts.map +1 -0
- package/dist/{define-agent-eval-4J02MdF7.js → define-agent-eval-DvBgSzAI.js} +6 -6
- package/dist/{define-agent-eval-4J02MdF7.js.map → define-agent-eval-DvBgSzAI.js.map} +1 -1
- package/dist/diagnosis/index.js +1 -1
- package/dist/{dspy-rlm-engine-k_QdEBZo.js → dspy-rlm-engine-B5T43BkZ.js} +2 -2
- package/dist/{dspy-rlm-engine-k_QdEBZo.js.map → dspy-rlm-engine-B5T43BkZ.js.map} +1 -1
- package/dist/{engine-De2hfuiQ.d.ts → engine-Dc996kAg.d.ts} +2 -2
- package/dist/{engine-De2hfuiQ.d.ts.map → engine-Dc996kAg.d.ts.map} +1 -1
- package/dist/{eval-campaign-CXT2WYUe.js → eval-campaign-GapmPHIA.js} +2 -2
- package/dist/{eval-campaign-CXT2WYUe.js.map → eval-campaign-GapmPHIA.js.map} +1 -1
- package/dist/evaluation.d.ts +1 -1
- package/dist/experiment/index.d.ts +1 -1
- package/dist/experiment/index.js +8 -6
- package/dist/experiment/index.js.map +1 -1
- package/dist/{external-optimizer-process-_YIECYJ7.js → external-optimizer-process-CEXcCKqd.js} +2 -2
- package/dist/{external-optimizer-process-_YIECYJ7.js.map → external-optimizer-process-CEXcCKqd.js.map} +1 -1
- package/dist/{external-optimizer-subprocess-BrghTvEp.js → external-optimizer-subprocess-laM1-UDV.js} +2 -61
- package/dist/external-optimizer-subprocess-laM1-UDV.js.map +1 -0
- package/dist/fuzz.d.ts.map +1 -1
- package/dist/fuzz.js +2 -3
- package/dist/fuzz.js.map +1 -1
- package/dist/hosted/index.js +1 -1
- package/dist/{index-DJKZEldg.d.ts → index-BhoOCduB.d.ts} +12 -947
- package/dist/index-BhoOCduB.d.ts.map +1 -0
- package/dist/{index-CRsmcAGl.d.ts → index-D-tI1vgf.d.ts} +6 -6
- package/dist/{index-CRsmcAGl.d.ts.map → index-D-tI1vgf.d.ts.map} +1 -1
- package/dist/{index-kKECJfib.d.ts → index-lbwvO9vJ.d.ts} +3 -3
- package/dist/{index-kKECJfib.d.ts.map → index-lbwvO9vJ.d.ts.map} +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +15 -13
- package/dist/index.js.map +1 -1
- package/dist/jev.d.ts +1 -1
- package/dist/{llm-judge-fhkFQL1N.js → llm-judge-BYWXsxhZ.js} +415 -1981
- package/dist/llm-judge-BYWXsxhZ.js.map +1 -0
- package/dist/{matrix-C1X-fIVX.d.ts → matrix-BnksRaDD.d.ts} +2 -2
- package/dist/{matrix-C1X-fIVX.d.ts.map → matrix-BnksRaDD.d.ts.map} +1 -1
- package/dist/multiplicity-D9cjmStq.js +101 -0
- package/dist/multiplicity-D9cjmStq.js.map +1 -0
- package/dist/multishot/golden/index.d.ts +1 -1
- package/dist/multishot/golden/index.js +1 -1
- package/dist/multishot/index.d.ts +2 -2
- package/dist/multishot/index.js +1 -1
- package/dist/openapi.json +1 -1
- package/dist/{paired-arms-JSDcs2zx.js → paired-arms-DKZFVPt8.js} +4 -398
- package/dist/paired-arms-DKZFVPt8.js.map +1 -0
- package/dist/paired-binary-fzkwENI4.js +399 -0
- package/dist/paired-binary-fzkwENI4.js.map +1 -0
- package/dist/{paired-promotion-decision-DTKl6-G8.js → paired-promotion-decision-D5B1Cxc2.js} +78 -5
- package/dist/paired-promotion-decision-D5B1Cxc2.js.map +1 -0
- package/dist/{power-and-mde-BJOpt6pq.js → power-and-mde-K_CmO3dc.js} +3 -101
- package/dist/power-and-mde-K_CmO3dc.js.map +1 -0
- package/dist/{produced-state-1RnbLrSa.js → produced-state-DOfmCEwP.js} +3 -3
- package/dist/{produced-state-1RnbLrSa.js.map → produced-state-DOfmCEwP.js.map} +1 -1
- package/dist/{promotion-policy-Cy5OV8BV.js → promotion-policy-C6FAJvmZ.js} +3 -3
- package/dist/{promotion-policy-Cy5OV8BV.js.map → promotion-policy-C6FAJvmZ.js.map} +1 -1
- package/dist/reporting.js +3 -3
- package/dist/rl.d.ts +17 -39
- package/dist/rl.d.ts.map +1 -1
- package/dist/rl.js +5 -5
- package/dist/search/index.d.ts +1162 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +187 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search-kernel-CuvbakC_.d.ts +1176 -0
- package/dist/search-kernel-CuvbakC_.d.ts.map +1 -0
- package/dist/search-kernel-D8_kxChy.js +2399 -0
- package/dist/search-kernel-D8_kxChy.js.map +1 -0
- package/dist/{search-ledger-9W0g5FP6.js → search-ledger-BnUytR8X.js} +3 -1
- package/dist/search-ledger-BnUytR8X.js.map +1 -0
- package/dist/{search-shipper-CYbmJQx8.js → search-shipper-Cn8cxcyp.js} +2 -2
- package/dist/{search-shipper-CYbmJQx8.js.map → search-shipper-Cn8cxcyp.js.map} +1 -1
- package/dist/search-summary-Dmppg8kV.js +133 -0
- package/dist/search-summary-Dmppg8kV.js.map +1 -0
- package/dist/{semantic-concept-judge-Bh5lvKGg.js → semantic-concept-judge-2SE_kXGF.js} +2 -2
- package/dist/{semantic-concept-judge-Bh5lvKGg.js.map → semantic-concept-judge-2SE_kXGF.js.map} +1 -1
- package/dist/{sequential-C21_PP7F.js → sequential-Yz3OSskl.js} +2 -2
- package/dist/{sequential-C21_PP7F.js.map → sequential-Yz3OSskl.js.map} +1 -1
- package/dist/single-run-lock-fVu3MZWH.js +62 -0
- package/dist/single-run-lock-fVu3MZWH.js.map +1 -0
- package/dist/{skillopt-optimization-method-CHUcZ8w6.js → skillopt-optimization-method-BMP2qV_1.js} +8 -7
- package/dist/{skillopt-optimization-method-CHUcZ8w6.js.map → skillopt-optimization-method-BMP2qV_1.js.map} +1 -1
- package/dist/{statistical-heldout-DANVmyug.js → statistical-heldout-BAFDCo07.js} +2 -2
- package/dist/{statistical-heldout-DANVmyug.js.map → statistical-heldout-BAFDCo07.js.map} +1 -1
- package/dist/{statistical-heldout-BedVSZb2.d.ts → statistical-heldout-CMpxMjlQ.d.ts} +2 -2
- package/dist/{statistical-heldout-BedVSZb2.d.ts.map → statistical-heldout-CMpxMjlQ.d.ts.map} +1 -1
- package/dist/{store-tool-spans-CawP-WxM.d.ts → store-tool-spans-CUwWSXoj.d.ts} +3 -3
- package/dist/{store-tool-spans-CawP-WxM.d.ts.map → store-tool-spans-CUwWSXoj.d.ts.map} +1 -1
- package/dist/{summary-report-BMvou2oZ.js → summary-report-BeYnvddy.js} +4 -3
- package/dist/{summary-report-BMvou2oZ.js.map → summary-report-BeYnvddy.js.map} +1 -1
- package/dist/{tool-groups-B4JVrH3g.d.ts → tool-groups-DVJAR1GE.d.ts} +2 -2
- package/dist/tool-groups-DVJAR1GE.d.ts.map +1 -0
- package/dist/trace-repair/index.d.ts +1 -1
- package/dist/traces.d.ts +2 -2
- package/dist/tree-DHHWsH-X.js +4045 -0
- package/dist/tree-DHHWsH-X.js.map +1 -0
- package/dist/{types-B3jzCp0p.js → types-B3jzCp0p2.js} +1 -1
- package/dist/types-B3jzCp0p2.js.map +1 -0
- package/dist/{types-CjFDKMDe.d.ts → types-D94EanDL.d.ts} +2 -2
- package/dist/{types-CjFDKMDe.d.ts.map → types-D94EanDL.d.ts.map} +1 -1
- package/dist/{types-B2673PBj.d.ts → types-EBUav9Bu.d.ts} +8 -4
- package/dist/types-EBUav9Bu.d.ts.map +1 -0
- package/docs/campaign-proposers.md +2 -0
- package/docs/design/statistics-decisions.md +1 -1
- package/docs/search-ledger.md +143 -8
- package/package.json +6 -1
- package/dist/active-curriculum-OjIWgrUJ.js +0 -204
- package/dist/active-curriculum-OjIWgrUJ.js.map +0 -1
- package/dist/define-agent-eval-ulRlLvse.d.ts.map +0 -1
- package/dist/external-optimizer-subprocess-BrghTvEp.js.map +0 -1
- package/dist/index-DJKZEldg.d.ts.map +0 -1
- package/dist/llm-judge-fhkFQL1N.js.map +0 -1
- package/dist/paired-arms-JSDcs2zx.js.map +0 -1
- package/dist/paired-delta-test-BF-FEP8V.js +0 -78
- package/dist/paired-delta-test-BF-FEP8V.js.map +0 -1
- package/dist/paired-promotion-decision-DTKl6-G8.js.map +0 -1
- package/dist/power-and-mde-BJOpt6pq.js.map +0 -1
- package/dist/search-ledger-9W0g5FP6.js.map +0 -1
- package/dist/search-summary-CcavvYLe.js +0 -378
- package/dist/search-summary-CcavvYLe.js.map +0 -1
- package/dist/tool-groups-B4JVrH3g.d.ts.map +0 -1
- package/dist/types-B2673PBj.d.ts.map +0 -1
- package/dist/types-B3jzCp0p.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { c as ValidationError, t as AgentEvalError } from "./errors-DEE6u6ot.js";
|
|
2
|
-
import { T as RunPaidCallInput, c as CostLedgerHandle, f as CostLedgerSummary, m as CostReceipt,
|
|
2
|
+
import { T as RunPaidCallInput, c as CostLedgerHandle, f as CostLedgerSummary, m as CostReceipt, p as CostProvenance } from "./cost-ledger-DbQdN3nO.js";
|
|
3
3
|
import { a as RunRecord, c as RunSplitTag } from "./run-record-DF-fuu31.js";
|
|
4
4
|
import { O as TraceAnalysisStore, _ as ProposalFinding, f as AnalystUsageReceipt, i as AnalystFinding, l as AnalystRunResult } from "./types-CeDfCRXp.js";
|
|
5
5
|
import { M as LlmCallMetadata, ft as ServedModelPolicy, rt as RawProviderSink, x as ChatClient } from "./types-C0bWoSKC.js";
|
|
6
|
-
import { Et as FinalEvidenceLedger, P as PairedArmsComparison, ft as EvidenceReceipt, it as CampaignEvidenceContext, kt as FinalEvidenceRecord } from "./statistical-heldout-
|
|
6
|
+
import { Et as FinalEvidenceLedger, P as PairedArmsComparison, ft as EvidenceReceipt, it as CampaignEvidenceContext, kt as FinalEvidenceRecord } from "./statistical-heldout-CMpxMjlQ.js";
|
|
7
7
|
import { a as PairedPromotionDecision, d as PairedBootstrapResult } from "./paired-promotion-decision-DPKz8ZnF.js";
|
|
8
|
-
import {
|
|
9
|
-
import { b as LedgerTrustedHeadRemoval, f as LedgerLineContext, h as LedgerTextStore, y as LedgerTrustedHead } from "./index-Bj96W0jZ.js";
|
|
8
|
+
import { E as SearchExecutionIdentity, G as SearchSplit, V as SearchProposer, a as SearchAttemptAccounting, i as SearchArtifactRef, j as SearchModelIdentity, nt as EvaluationClaim, rt as EvaluationUnitSummary, tt as SearchUnknown, z as SearchOperationRecordedEvent } from "./search-ledger-types-p2xKfiDJ.js";
|
|
10
9
|
import { r as LedgerHash } from "./canonical-CFpojCN5.js";
|
|
11
|
-
import {
|
|
10
|
+
import { A as LabeledScenarioWrite, C as JudgeDimension, D as LabeledScenarioSampleArgs, E as LabeledScenarioRecord, H as SurfaceProposer, N as ParetoParent, O as LabeledScenarioSource, R as Scenario, S as JudgeConfig, T as LabelTrust, _ as GateDecision, a as CampaignResult, b as GenerationRecord, c as CampaignTraceWriter, d as DispatchContext, f as DispatchFn, g as GateContribution, i as CampaignCostMeter, j as MutableSurface, k as LabeledScenarioStore, l as CodeSurface, o as CampaignScenarioIdentity, p as Gate, r as CampaignCellResult, u as ComponentSurface, v as GateResult, y as GenerationCandidate } from "./types-EBUav9Bu.js";
|
|
11
|
+
import { Dt as SearchHistoryAdmissionOptions, L as SearchPolicy, Mt as SearchHistoryReceipt, Yt as CampaignStorage, bt as SearchRunIdentity, gt as SearchLedgerBinding, ht as RegisterSearchNodeInput, i as SearchCellResult, kt as SearchHistoryCoverage, vt as SearchRecorder } from "./search-kernel-CuvbakC_.js";
|
|
12
12
|
import { B as ExternalOptimizerModelBudget, E as AnalystIssueExpectation, F as ExternalOptimizerCallbackLimits, J as ExternalOptimizerWireCounts, K as ExternalOptimizerResumeMode, R as ExternalOptimizerEvaluationObservation, V as ExternalOptimizerModelCall, X as ExternalTextEvaluationRequest, Y as ExternalTextCandidate, m as AnalystBenchmarkLabelState, q as ExternalOptimizerRunnerCommand, t as AgentProfile$1, u as AnalystBenchmarkCase } from "./agent-profile-DDfIjdyS.js";
|
|
13
13
|
import { r as DatasetScenario, t as Dataset } from "./dataset-DQqhOCPt.js";
|
|
14
14
|
import { a as CheckerIdentity, n as VerdictCertification, t as DefaultVerdict, x as VerificationStrategySource } from "./verdict-E4eRNf7-.js";
|
|
@@ -40,60 +40,6 @@ interface FinalEvidenceUse {
|
|
|
40
40
|
record: FinalEvidenceRecord;
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|
|
43
|
-
//#region src/campaign/storage.d.ts
|
|
44
|
-
/**
|
|
45
|
-
* `CampaignStorage` — the filesystem seam `runCampaign` writes through
|
|
46
|
-
* (run/cell dirs, the resumability cache, per-cell artifacts, trace spans).
|
|
47
|
-
*
|
|
48
|
-
* The default (`fsCampaignStorage`) is the Node filesystem — identical
|
|
49
|
-
* behavior to the inline `node:fs` calls it replaces, so existing CLI
|
|
50
|
-
* consumers are unaffected. `inMemoryCampaignStorage` keeps everything in a
|
|
51
|
-
* `Map`, so the substrate runs in environments WITHOUT a filesystem
|
|
52
|
-
* (Cloudflare Workers, Deno Deploy, other edge runtimes) — the campaign
|
|
53
|
-
* still produces its `CampaignResult` (cells + aggregates) in memory;
|
|
54
|
-
* artifacts/traces simply aren't persisted to disk.
|
|
55
|
-
*
|
|
56
|
-
* Paths are opaque keys to the in-memory adapter — it does not parse them,
|
|
57
|
-
* so the same `join(...)`-built paths work unchanged across both adapters.
|
|
58
|
-
*/
|
|
59
|
-
interface CampaignStorage {
|
|
60
|
-
/** `filesystem` for the Node filesystem, whose paths durable journals such
|
|
61
|
-
* as the search ledger may open directly; any other storage keeps those
|
|
62
|
-
* journals in itself. */
|
|
63
|
-
readonly kind?: 'filesystem' | 'memory';
|
|
64
|
-
/** Ensure a directory exists (recursive). No-op for in-memory. */
|
|
65
|
-
ensureDir(dir: string): void;
|
|
66
|
-
/** Does this path exist (as a written file or an ensured dir)? */
|
|
67
|
-
exists(path: string): boolean;
|
|
68
|
-
/** Read a UTF-8 file; `undefined` when missing or unreadable. */
|
|
69
|
-
read(path: string): string | undefined;
|
|
70
|
-
/** Write a file (string or bytes). Parent dir is assumed ensured. */
|
|
71
|
-
write(path: string, content: string | Uint8Array): void;
|
|
72
|
-
/** Append only when the current UTF-8 byte length matches `expectedBytes`.
|
|
73
|
-
* Returns the new length, or undefined when another writer won. */
|
|
74
|
-
append(path: string, content: string, expectedBytes: number): number | undefined;
|
|
75
|
-
}
|
|
76
|
-
/** Node-filesystem storage — the default. Lazily requires `node:fs` so the
|
|
77
|
-
* module imports cleanly in non-Node runtimes (where the caller passes
|
|
78
|
-
* `inMemoryCampaignStorage` instead and never constructs this).
|
|
79
|
-
*
|
|
80
|
-
* `createRequire(import.meta.url)` is the ESM-native lazy require — a bare
|
|
81
|
-
* `require` is a ReferenceError under `"type": "module"`, which is exactly
|
|
82
|
-
* the shape this package publishes. */
|
|
83
|
-
declare function fsCampaignStorage(): CampaignStorage;
|
|
84
|
-
/** In-memory storage for filesystem-less runtimes. Artifacts + trace spans
|
|
85
|
-
* live in a `Map` for the duration of the run; the `CampaignResult` is
|
|
86
|
-
* fully populated, but nothing is persisted to disk. */
|
|
87
|
-
declare function inMemoryCampaignStorage(): CampaignStorage;
|
|
88
|
-
/** Open the durable spend account stored beside a logical run. */
|
|
89
|
-
declare function createRunCostLedger(input: {
|
|
90
|
-
storage: CampaignStorage;
|
|
91
|
-
runDir: string;
|
|
92
|
-
costCeilingUsd?: number;
|
|
93
|
-
/** Set false for read-only inspection that must not create the run directory. */
|
|
94
|
-
ensureRunDir?: boolean;
|
|
95
|
-
}): CostLedger;
|
|
96
|
-
//#endregion
|
|
97
43
|
//#region src/campaign/cell-schedule.d.ts
|
|
98
44
|
declare function buildCellSchedule<TScenario extends Scenario>(scenarios: TScenario[], seed: number, reps: number): Array<{
|
|
99
45
|
scenario: TScenario;
|
|
@@ -403,434 +349,6 @@ declare class SearchLedgerIntegrityError extends SearchLedgerError {}
|
|
|
403
349
|
/** Error raised when an event identifier is reused with different content. */
|
|
404
350
|
declare class SearchLedgerConflictError extends SearchLedgerError {}
|
|
405
351
|
//#endregion
|
|
406
|
-
//#region src/campaign/search-ledger.d.ts
|
|
407
|
-
/** Validate and return a canonical copy. Arrays whose order carries no meaning
|
|
408
|
-
* are sorted, so retries from different processes produce identical bytes. */
|
|
409
|
-
declare function validateSearchLedgerEvent(input: unknown): SearchLedgerEvent;
|
|
410
|
-
/**
|
|
411
|
-
* How this ledger uses its trusted head — the `(sequence, entryHash)` pin kept
|
|
412
|
-
* in the sibling `<path>.head` file that a hash chain needs to prove entries
|
|
413
|
-
* were not deleted from the end. `ledger-core/trusted-head.ts` holds the threat
|
|
414
|
-
* model.
|
|
415
|
-
*
|
|
416
|
-
* - `pin` (default): every append records the new head, and a pin that is
|
|
417
|
-
* present is verified on every read.
|
|
418
|
-
* - `require`: additionally refuses to read a non-empty ledger whose pin is
|
|
419
|
-
* gone, so deleting the sibling file cannot downgrade the guarantee.
|
|
420
|
-
* - `off`: chain verification only. Truncation to a valid shorter prefix is
|
|
421
|
-
* undetectable.
|
|
422
|
-
*/
|
|
423
|
-
type SearchLedgerTrustedHeadMode = 'pin' | 'require' | 'off';
|
|
424
|
-
interface OpenSearchLedgerOptions {
|
|
425
|
-
path: string;
|
|
426
|
-
searchId: string;
|
|
427
|
-
trustedHead?: SearchLedgerTrustedHeadMode;
|
|
428
|
-
/**
|
|
429
|
-
* Keep the ledger's text in this in-process store instead of a file, for a
|
|
430
|
-
* run without a filesystem (an in-memory `CampaignStorage`, keyed by `path`).
|
|
431
|
-
* The chain, parse and state rules are the file ledger's; there is no lock,
|
|
432
|
-
* fsync or trusted head, and the ledger lives as long as the store.
|
|
433
|
-
*/
|
|
434
|
-
store?: LedgerTextStore;
|
|
435
|
-
}
|
|
436
|
-
interface SearchLedgerAppendResult {
|
|
437
|
-
entry: SearchLedgerEntry;
|
|
438
|
-
/** False when the exact event was already durably present. */
|
|
439
|
-
appended: boolean;
|
|
440
|
-
state: SearchStateView;
|
|
441
|
-
}
|
|
442
|
-
interface SearchLedger {
|
|
443
|
-
readonly path: string;
|
|
444
|
-
readonly searchId: string;
|
|
445
|
-
/** Sibling file holding this ledger's trusted head. */
|
|
446
|
-
readonly trustedHeadPath: string;
|
|
447
|
-
append(event: SearchLedgerEvent): Promise<SearchLedgerAppendResult>;
|
|
448
|
-
/** The verified state at the file's current head. */
|
|
449
|
-
state(): Promise<SearchStateView>;
|
|
450
|
-
/** The pinned head, or null when this ledger has never been pinned. */
|
|
451
|
-
trustedHead(): Promise<LedgerTrustedHead | null>;
|
|
452
|
-
/** Pin the current verified head without rewriting a byte. */
|
|
453
|
-
pinTrustedHead(): Promise<LedgerTrustedHead>;
|
|
454
|
-
/** Discard this ledger's pin, reporting what was discarded. It gives up the
|
|
455
|
-
* deletion guarantee for every entry the pin covered. */
|
|
456
|
-
clearTrustedHead(): Promise<LedgerTrustedHeadRemoval>;
|
|
457
|
-
}
|
|
458
|
-
/** Open a durable filesystem search ledger. Construction performs no I/O; the
|
|
459
|
-
* first `append` or `state` verifies the whole existing file. */
|
|
460
|
-
declare function openSearchLedger(options: OpenSearchLedgerOptions): SearchLedger;
|
|
461
|
-
/** Verify and project immutable search-ledger JSONL through the same codec as
|
|
462
|
-
* `FileSearchLedger`. */
|
|
463
|
-
declare function replaySearchLedgerText(text: string, searchId: string, source: string): SearchStateView;
|
|
464
|
-
/**
|
|
465
|
-
* Verify one stored ledger line in isolation: the schema tag, the entry and
|
|
466
|
-
* event schemas, canonical bytes, the entry's own hash, and its search. The
|
|
467
|
-
* chain (sequence and previous hash) and the state machine are the caller's,
|
|
468
|
-
* because they need the lines before this one. An ingest server runs this on
|
|
469
|
-
* every received line, so it hashes exactly the bytes the producer hashed.
|
|
470
|
-
*/
|
|
471
|
-
declare function parseSearchLedgerLine(line: string, searchId: string, context: LedgerLineContext): SearchLedgerEntry;
|
|
472
|
-
/** Append-only file-backed search ledger with idempotent writes. */
|
|
473
|
-
declare class FileSearchLedger implements SearchLedger {
|
|
474
|
-
readonly path: string;
|
|
475
|
-
readonly searchId: string;
|
|
476
|
-
readonly trustedHeadPath: string;
|
|
477
|
-
private readonly trustedHeadMode;
|
|
478
|
-
private readonly journal;
|
|
479
|
-
constructor(path: string, searchId: string, trustedHead?: SearchLedgerTrustedHeadMode);
|
|
480
|
-
state(): Promise<SearchStateView>;
|
|
481
|
-
append(input: SearchLedgerEvent): Promise<SearchLedgerAppendResult>;
|
|
482
|
-
trustedHead(): Promise<LedgerTrustedHead | null>;
|
|
483
|
-
pinTrustedHead(): Promise<LedgerTrustedHead>;
|
|
484
|
-
clearTrustedHead(): Promise<LedgerTrustedHeadRemoval>;
|
|
485
|
-
}
|
|
486
|
-
//#endregion
|
|
487
|
-
//#region src/campaign/search-history-receipt.d.ts
|
|
488
|
-
declare const SEARCH_HISTORY_RECEIPT_SCHEMA_VERSION: '2026-09';
|
|
489
|
-
declare const SEARCH_HISTORY_RECEIPT_DIGEST_ALGORITHM: 'rfc8785-sha256';
|
|
490
|
-
/** Bounded summary of a search's audit. Exact ids stay in the ledger. */
|
|
491
|
-
interface SearchHistoryAuditSummary {
|
|
492
|
-
readonly searchId: string;
|
|
493
|
-
readonly headHash: SearchLedgerHash | null;
|
|
494
|
-
readonly status: SearchAudit['status'];
|
|
495
|
-
readonly closeReason: SearchAudit['closeReason'];
|
|
496
|
-
readonly claimDecision: 'ship' | 'hold' | 'test-cannot-resolve' | null;
|
|
497
|
-
readonly selectedNodeId: string | null;
|
|
498
|
-
readonly eventCount: number;
|
|
499
|
-
readonly nodes: number;
|
|
500
|
-
readonly edges: number;
|
|
501
|
-
readonly cells: number;
|
|
502
|
-
readonly openCells: number;
|
|
503
|
-
readonly openOperations: number;
|
|
504
|
-
readonly nodesWithoutEdge: number;
|
|
505
|
-
readonly undecidedNodes: number;
|
|
506
|
-
}
|
|
507
|
-
/**
|
|
508
|
-
* A bounded proof envelope over one search ledger.
|
|
509
|
-
*
|
|
510
|
-
* The content-addressed ledger stays the only rich history. The receipt binds
|
|
511
|
-
* its producer and run, the exact ledger bytes, the digest of the complete
|
|
512
|
-
* audit, and a bounded summary. `complete` means the ledger holds
|
|
513
|
-
* `search-closed`, which the ledger admits only when every allocated cell has
|
|
514
|
-
* an outcome or was cancelled, every started operation was recorded, and every
|
|
515
|
-
* node has an edge and a terminal decision.
|
|
516
|
-
*/
|
|
517
|
-
interface SearchHistoryReceipt {
|
|
518
|
-
readonly schemaVersion: typeof SEARCH_HISTORY_RECEIPT_SCHEMA_VERSION;
|
|
519
|
-
readonly kind: 'search-history-receipt';
|
|
520
|
-
readonly digestAlgorithm: typeof SEARCH_HISTORY_RECEIPT_DIGEST_ALGORITHM;
|
|
521
|
-
readonly receiptDigest: SearchLedgerHash;
|
|
522
|
-
/** Stable producer identity, for example an OptimizationMethod name. */
|
|
523
|
-
readonly producerId: string;
|
|
524
|
-
/** Concrete optimizer or runtime invocation that produced the ledger. */
|
|
525
|
-
readonly runId: string;
|
|
526
|
-
/** The ledger file: `sha256` and `byteLength` of its exact bytes. */
|
|
527
|
-
readonly ledger: SearchArtifactRef;
|
|
528
|
-
/** `hashCanonical` of the complete `SearchAudit` from replaying those bytes. */
|
|
529
|
-
readonly auditDigest: SearchLedgerHash;
|
|
530
|
-
readonly summary: SearchHistoryAuditSummary;
|
|
531
|
-
readonly complete: boolean;
|
|
532
|
-
readonly incompleteReasons: readonly string[];
|
|
533
|
-
}
|
|
534
|
-
interface CreateSearchHistoryReceiptInput {
|
|
535
|
-
readonly producerId: string;
|
|
536
|
-
readonly runId: string;
|
|
537
|
-
readonly ledger: {
|
|
538
|
-
readonly path: string;
|
|
539
|
-
readonly searchId: string;
|
|
540
|
-
};
|
|
541
|
-
readonly storage?: Pick<CampaignStorage, 'read'>;
|
|
542
|
-
}
|
|
543
|
-
type SearchHistoryPolicy = 'allow-missing' | 'require-complete';
|
|
544
|
-
interface SearchHistoryAdmissionOptions {
|
|
545
|
-
/** Missing history is reported by default; require-complete refuses final
|
|
546
|
-
* assessment without a closed search ledger. */
|
|
547
|
-
searchHistoryPolicy?: SearchHistoryPolicy;
|
|
548
|
-
/** Receipt checks are the default. Ledger checks also resolve and replay the bytes. */
|
|
549
|
-
searchHistoryVerification?: 'receipt' | 'ledger';
|
|
550
|
-
}
|
|
551
|
-
/** Read the ledger's bytes, replay them through the search codec, and build
|
|
552
|
-
* the receipt from that replay. */
|
|
553
|
-
declare function createSearchHistoryReceipt(input: CreateSearchHistoryReceiptInput): SearchHistoryReceipt;
|
|
554
|
-
/** Verify the receipt, then resolve its ledger bytes, check them, and replay
|
|
555
|
-
* them with the canonical codec. Never trusts a caller-supplied projection. */
|
|
556
|
-
declare function verifySearchHistoryArtifact(receipt: SearchHistoryReceipt, storage: Pick<CampaignStorage, 'read'>): void;
|
|
557
|
-
interface SearchHistoryCoverageRow {
|
|
558
|
-
readonly producerId: string;
|
|
559
|
-
readonly status: 'complete' | 'incomplete' | 'missing';
|
|
560
|
-
readonly reasons: readonly string[];
|
|
561
|
-
readonly stages?: readonly SearchHistoryCoverageRow[];
|
|
562
|
-
readonly receipt?: SearchHistoryReceipt;
|
|
563
|
-
/** Present only after the referenced bytes and replay were verified. */
|
|
564
|
-
readonly ledgerVerified?: true;
|
|
565
|
-
}
|
|
566
|
-
interface SearchHistoryCoverage {
|
|
567
|
-
readonly policy: SearchHistoryPolicy;
|
|
568
|
-
readonly allComplete: boolean;
|
|
569
|
-
readonly producers: readonly SearchHistoryCoverageRow[];
|
|
570
|
-
}
|
|
571
|
-
declare class SearchHistoryRequiredError extends Error {
|
|
572
|
-
readonly producerId: string;
|
|
573
|
-
readonly reasons: readonly string[];
|
|
574
|
-
constructor(producerId: string, reasons: readonly string[]);
|
|
575
|
-
}
|
|
576
|
-
/** Verify a receipt's own consistency and digest. */
|
|
577
|
-
declare function verifySearchHistoryReceipt(receipt: SearchHistoryReceipt): SearchHistoryReceipt;
|
|
578
|
-
/** Prove that a receipt describes exactly the supplied replayed state. */
|
|
579
|
-
declare function assertSearchHistoryMatchesState(receipt: SearchHistoryReceipt, state: SearchStateView): void;
|
|
580
|
-
/** Require a receipt owned by this producer over a closed search. */
|
|
581
|
-
declare function assertCompleteSearchHistory(producerId: string, receipt: SearchHistoryReceipt | undefined): asserts receipt is SearchHistoryReceipt;
|
|
582
|
-
/** Classify one producer's history without treating malformed evidence as absence. */
|
|
583
|
-
declare function searchHistoryCoverageRow(producerId: string, receipt: SearchHistoryReceipt | undefined): SearchHistoryCoverageRow;
|
|
584
|
-
//#endregion
|
|
585
|
-
//#region src/campaign/search-ledger-recording.d.ts
|
|
586
|
-
/** Identities the ledger needs and a loop cannot infer. */
|
|
587
|
-
interface SearchRunIdentity {
|
|
588
|
-
/** The agent implementation under optimization. */
|
|
589
|
-
agent: SearchSourceRef;
|
|
590
|
-
/** The candidate generator: a model call or deterministic code. */
|
|
591
|
-
proposer: SearchOperationRecordedEvent['execution'];
|
|
592
|
-
/** The code that runs the search and decides its nodes. */
|
|
593
|
-
search: SearchSourceRef;
|
|
594
|
-
/** Model the agent runs; used for a cell that reported none. */
|
|
595
|
-
model: SearchModelIdentity;
|
|
596
|
-
/** What the search improves, for example `vb/coder`. Default: the producer's name. */
|
|
597
|
-
subject?: string;
|
|
598
|
-
/** The judge's pinned source. Default: unknown, because judges arrive as functions. */
|
|
599
|
-
judge?: SearchSourceRef;
|
|
600
|
-
/** The claim the search's numbers may support. Default: a development claim
|
|
601
|
-
* over the supplied tasks, one unit per task. */
|
|
602
|
-
claim?: EvaluationClaim;
|
|
603
|
-
}
|
|
604
|
-
/** A ledger and the identities a loop records into it. */
|
|
605
|
-
interface SearchLedgerBinding {
|
|
606
|
-
ledger: SearchLedger;
|
|
607
|
-
identity: SearchRunIdentity;
|
|
608
|
-
}
|
|
609
|
-
/** The default claim: development numbers over exactly the supplied tasks. */
|
|
610
|
-
declare function developmentClaim(populationId: string): EvaluationClaim;
|
|
611
|
-
/** The header of a search, with plain task lists; the recorder digests them. */
|
|
612
|
-
type SearchOpening = Omit<SearchOpenedEvent, 'kind' | 'eventId' | 'occurredAt' | 'artifacts' | 'splits'> & {
|
|
613
|
-
splits: {
|
|
614
|
-
train: SearchTask[];
|
|
615
|
-
selection: SearchTask[];
|
|
616
|
-
test: SearchTask[];
|
|
617
|
-
heldOutUnits: boolean;
|
|
618
|
-
};
|
|
619
|
-
};
|
|
620
|
-
interface SearchRecorderOptions {
|
|
621
|
-
ledger: SearchLedger;
|
|
622
|
-
/** Where content-addressed blobs are written. Default: `blobs/` beside the ledger. */
|
|
623
|
-
blobDir?: string;
|
|
624
|
-
storage?: CampaignStorage;
|
|
625
|
-
/** Milliseconds since the epoch. Default: `Date.now`. */
|
|
626
|
-
now?: () => number;
|
|
627
|
-
}
|
|
628
|
-
interface RegisterSearchNodeInput {
|
|
629
|
-
artifactDigest: `sha256:${string}`;
|
|
630
|
-
artifact: SearchArtifactRef;
|
|
631
|
-
surfaces: SearchCandidateSurface[];
|
|
632
|
-
}
|
|
633
|
-
interface RecordSearchEdgeInput {
|
|
634
|
-
childNodeId: string;
|
|
635
|
-
/** Parents in this search, primary first, as node ids; or refs for a derive edge. */
|
|
636
|
-
parents: Array<string | SearchNodeRef>;
|
|
637
|
-
operator: SearchEdgeOperator;
|
|
638
|
-
attribution: SearchEdgeAttribution;
|
|
639
|
-
proposer: SearchProposer | null;
|
|
640
|
-
/** Stable id of this proposal within the search, so a resumed search
|
|
641
|
-
* recognizes the edge; for example `gen-3:candidate-1`. */
|
|
642
|
-
proposalKey: string;
|
|
643
|
-
selection?: {
|
|
644
|
-
rule: string;
|
|
645
|
-
evidence: Record<string, number>;
|
|
646
|
-
} | null;
|
|
647
|
-
/** The proposer's free-text rationale; redacted before it is stored. */
|
|
648
|
-
rationale: string | SearchUnknown;
|
|
649
|
-
/** One per parent: a diff blob from `recorder.blob('diff', …)`, or why there is none. */
|
|
650
|
-
diffs: Array<SearchArtifactRef | SearchUnknown>;
|
|
651
|
-
label?: string;
|
|
652
|
-
}
|
|
653
|
-
interface AllocateSearchCellInput {
|
|
654
|
-
nodeId: string;
|
|
655
|
-
taskId: string;
|
|
656
|
-
split: SearchSplit;
|
|
657
|
-
rep: number;
|
|
658
|
-
stage: SearchCellStage;
|
|
659
|
-
lane?: string | null;
|
|
660
|
-
reservation?: SearchReservation | null;
|
|
661
|
-
}
|
|
662
|
-
interface SettleSearchCellInput {
|
|
663
|
-
cellId: string;
|
|
664
|
-
/** Default: the next attempt. An attempt already in the ledger is not appended again. */
|
|
665
|
-
attempt?: number;
|
|
666
|
-
outcome: SearchTaskOutcome;
|
|
667
|
-
accounting: SearchAttemptAccounting;
|
|
668
|
-
identity: SearchExecutionIdentity;
|
|
669
|
-
boxMinutes?: number | null;
|
|
670
|
-
wallMs?: number | null;
|
|
671
|
-
queueMs?: number | null;
|
|
672
|
-
placement?: {
|
|
673
|
-
lane: string;
|
|
674
|
-
boxId: string | null;
|
|
675
|
-
} | null;
|
|
676
|
-
surfaceEvidence?: SearchSurfaceEvidence[];
|
|
677
|
-
traceRef?: SearchTraceRef;
|
|
678
|
-
/** The attempt's RunRecord; its search coordinates and runId must match. */
|
|
679
|
-
runRecord?: RunRecord;
|
|
680
|
-
artifacts?: SearchArtifactRef[];
|
|
681
|
-
}
|
|
682
|
-
/** Deterministic edge id: one proposal of one child within one search. */
|
|
683
|
-
declare function searchEdgeId(searchId: string, childNodeId: string, proposalKey: string): string;
|
|
684
|
-
/** Writes one search's events into its ledger as they happen. */
|
|
685
|
-
declare class SearchRecorder {
|
|
686
|
-
readonly ledger: SearchLedger;
|
|
687
|
-
private readonly storage;
|
|
688
|
-
private readonly blobDir;
|
|
689
|
-
private readonly now;
|
|
690
|
-
private readonly tasks;
|
|
691
|
-
private lastStampMs;
|
|
692
|
-
private constructor();
|
|
693
|
-
/**
|
|
694
|
-
* Open the search: append `search-opened`, or, when the ledger already holds
|
|
695
|
-
* one, check that it is this search and continue it.
|
|
696
|
-
*/
|
|
697
|
-
static open(options: SearchRecorderOptions, opening: SearchOpening, artifacts?: SearchArtifactRef[]): Promise<SearchRecorder>;
|
|
698
|
-
get searchId(): string;
|
|
699
|
-
/** The ledger's verified state now. */
|
|
700
|
-
state(): Promise<SearchStateView>;
|
|
701
|
-
/** Store `body` as a canonical JSON blob and return its content address. */
|
|
702
|
-
blob(role: string, body: unknown): SearchArtifactRef;
|
|
703
|
-
/**
|
|
704
|
-
* Read back a blob this recorder stored, by its content address. The bytes
|
|
705
|
-
* must hash to the reference's digest and length, so a resumed search reads
|
|
706
|
-
* exactly what the ledger bound.
|
|
707
|
-
*/
|
|
708
|
-
readBlob(ref: SearchArtifactRef): unknown;
|
|
709
|
-
/** Register a node, or return the existing node with the same artifact digest. */
|
|
710
|
-
registerNode(input: RegisterSearchNodeInput): Promise<{
|
|
711
|
-
nodeId: string;
|
|
712
|
-
existed: boolean;
|
|
713
|
-
}>;
|
|
714
|
-
/** Record the proposal that derived a node. Returns the edge id. */
|
|
715
|
-
recordEdge(input: RecordSearchEdgeInput): Promise<string>;
|
|
716
|
-
startOperation(input: {
|
|
717
|
-
operationId: string;
|
|
718
|
-
operationKind: SearchOperationKind;
|
|
719
|
-
reservation?: SearchReservation | null;
|
|
720
|
-
/** Bound at the start, so a restart finds them even if the operation
|
|
721
|
-
* never records a result. */
|
|
722
|
-
artifacts?: SearchArtifactRef[];
|
|
723
|
-
}): Promise<void>;
|
|
724
|
-
recordOperation(input: Omit<SearchOperationRecordedEvent, 'kind' | 'eventId' | 'occurredAt' | 'artifacts'> & {
|
|
725
|
-
artifacts?: SearchArtifactRef[];
|
|
726
|
-
}): Promise<void>;
|
|
727
|
-
/** Plan one cell. Returns the cell id; an allocated cell is not allocated again. */
|
|
728
|
-
allocateCell(input: AllocateSearchCellInput): Promise<string>;
|
|
729
|
-
/** Record one finished attempt at a cell. */
|
|
730
|
-
settleCell(input: SettleSearchCellInput): Promise<void>;
|
|
731
|
-
cancelCell(input: {
|
|
732
|
-
cellId: string;
|
|
733
|
-
reason: 'pruned' | 'budget' | 'deadline' | 'aborted';
|
|
734
|
-
}): Promise<void>;
|
|
735
|
-
/** Record a decision about a node. Repeating the node's latest decision appends nothing. */
|
|
736
|
-
decideNode(input: {
|
|
737
|
-
nodeId: string;
|
|
738
|
-
decision: SearchNodeDecision;
|
|
739
|
-
basis?: NodeEstimate | null;
|
|
740
|
-
rule: string;
|
|
741
|
-
reason: string;
|
|
742
|
-
}): Promise<void>;
|
|
743
|
-
/** Close the search. The ledger refuses a close while any cell, operation or
|
|
744
|
-
* node decision is outstanding. */
|
|
745
|
-
close(input: {
|
|
746
|
-
reason: SearchCloseReason;
|
|
747
|
-
claim: SearchClaim | null;
|
|
748
|
-
}): Promise<void>;
|
|
749
|
-
/** A bounded receipt over the exact ledger bytes. */
|
|
750
|
-
receipt(input: {
|
|
751
|
-
producerId: string;
|
|
752
|
-
runId: string;
|
|
753
|
-
}): SearchHistoryReceipt;
|
|
754
|
-
private append;
|
|
755
|
-
/** Non-decreasing ISO stamps; the ledger refuses an event that moves back. */
|
|
756
|
-
private stamp;
|
|
757
|
-
}
|
|
758
|
-
/** A mutable surface as a node: its content digest, stored bytes and declared surfaces. */
|
|
759
|
-
declare function surfaceNode(recorder: SearchRecorder, surface: MutableSurface): RegisterSearchNodeInput;
|
|
760
|
-
/** A parent-to-child diff of two mutable surfaces, stored as a blob. */
|
|
761
|
-
declare function surfaceDiff(recorder: SearchRecorder, parent: MutableSurface, child: MutableSurface): SearchArtifactRef;
|
|
762
|
-
//#endregion
|
|
763
|
-
//#region src/campaign/search-policy.d.ts
|
|
764
|
-
/** What a policy may read about a search. */
|
|
765
|
-
interface SearchPolicyView {
|
|
766
|
-
readonly searchId: string;
|
|
767
|
-
readonly seed: number;
|
|
768
|
-
readonly direction: 'maximize' | 'minimize';
|
|
769
|
-
/** The split nodes are ranked on: selection, or train when the search
|
|
770
|
-
* declares no selection split (the proposer's own feedback then ranks). */
|
|
771
|
-
readonly split: 'selection' | 'train';
|
|
772
|
-
readonly rootNodeId: string;
|
|
773
|
-
/** Proposals completed so far. One an interrupted process lost does not count. */
|
|
774
|
-
readonly expansions: number;
|
|
775
|
-
/** Admitted nodes whose screen finished, in registration order, root first. */
|
|
776
|
-
readonly screened: readonly string[];
|
|
777
|
-
/** Admitted nodes still being screened. */
|
|
778
|
-
readonly screening: number;
|
|
779
|
-
/** True when the node has a scored cell on `split` and none of its cells
|
|
780
|
-
* there ran and ended unscored. A node that dodged a unit cannot lead; cells
|
|
781
|
-
* still to run, such as a rung the allocator just opened, do not count. */
|
|
782
|
-
complete(nodeId: string): boolean;
|
|
783
|
-
/** Per-unit means on `split`, in unitId order. */
|
|
784
|
-
unitScores(nodeId: string): readonly SearchUnitScore[];
|
|
785
|
-
/** The paired contrast of `nodeId` against `against` on `split`. */
|
|
786
|
-
estimate(nodeId: string, against: string): NodeEstimate;
|
|
787
|
-
}
|
|
788
|
-
/** One expansion: the parents a proposer derives a child from, and how. */
|
|
789
|
-
interface SearchExpansion {
|
|
790
|
-
parents: string[];
|
|
791
|
-
operator: Exclude<SearchEdgeOperator, 'seed' | 'derive'>;
|
|
792
|
-
/** Why these parents: recorded on every edge the expansion produces. */
|
|
793
|
-
selection: {
|
|
794
|
-
rule: string;
|
|
795
|
-
evidence: Record<string, number>;
|
|
796
|
-
};
|
|
797
|
-
}
|
|
798
|
-
interface SearchPolicy {
|
|
799
|
-
/** Recorded as the search's `policy.expansion`. */
|
|
800
|
-
readonly name: string;
|
|
801
|
-
/** Stop after this many expansions without a new leader. */
|
|
802
|
-
readonly patience?: number;
|
|
803
|
-
/** The next expansion, or null to wait for more evidence. */
|
|
804
|
-
expand(view: SearchPolicyView): SearchExpansion | null;
|
|
805
|
-
/** The node the search keeps if it stopped now. */
|
|
806
|
-
leader(view: SearchPolicyView): string;
|
|
807
|
-
}
|
|
808
|
-
/**
|
|
809
|
-
* The hill climb. The leader starts at the root; a screened node that dodged no
|
|
810
|
-
* unit takes the lead when it scored every unit the leader scored and its mean
|
|
811
|
-
* on them beats the leader's. A node measured on fewer units than the leader,
|
|
812
|
-
* such as one an allocator has only screened, cannot take the lead on less
|
|
813
|
-
* evidence than the leader holds. Nodes are taken in registration order, so
|
|
814
|
-
* the leader is a pure function of the ledger. The policy expands the leader,
|
|
815
|
-
* and only once every earlier child is screened, so each proposal sees every
|
|
816
|
-
* result before it.
|
|
817
|
-
*/
|
|
818
|
-
declare function incumbent(options?: {
|
|
819
|
-
patience?: number;
|
|
820
|
-
}): SearchPolicy;
|
|
821
|
-
/**
|
|
822
|
-
* The hill climb with a different parent: each expansion draws two distinct
|
|
823
|
-
* members of the Pareto frontier (per-unit means on the policy split) with a
|
|
824
|
-
* PRNG seeded from `seed` and the expansion index, and keeps the one with the
|
|
825
|
-
* larger crowding distance, the more isolated. Boundary members carry infinite
|
|
826
|
-
* distance. Ties fall to the higher mean, then to the earlier node. The leader
|
|
827
|
-
* rule is the incumbent's: a frontier parent explores, and only a node that
|
|
828
|
-
* beats the leader leads.
|
|
829
|
-
*/
|
|
830
|
-
declare function crowdedFrontierParent(options: {
|
|
831
|
-
seed: number;
|
|
832
|
-
}): SearchPolicy;
|
|
833
|
-
//#endregion
|
|
834
352
|
//#region src/campaign/presets/run-optimization.d.ts
|
|
835
353
|
interface PremeasuredOptimizationBaseline<TArtifact, TScenario extends Scenario> {
|
|
836
354
|
/** Hash of the exact surface that produced `campaign`. */
|
|
@@ -887,7 +405,11 @@ interface RunOptimizationBaseOptions<TScenario extends Scenario, TArtifact> exte
|
|
|
887
405
|
}) => Promise<ReadonlyArray<ProposalFinding>>;
|
|
888
406
|
/** Which node each proposal extends, and which node the run keeps. Default
|
|
889
407
|
* `incumbent()`: the hill climb. `crowdedFrontierParent({ seed })` draws
|
|
890
|
-
* the parent from the Pareto frontier instead
|
|
408
|
+
* the parent from the Pareto frontier instead; `aide()` drafts, debugs and
|
|
409
|
+
* improves with Thompson-sampled parents, and `beam({ width })` expands the
|
|
410
|
+
* top nodes in turn. Every policy ranks on the scenarios, and the run keeps
|
|
411
|
+
* the `uniform` allocator, because the proposer reads every candidate's
|
|
412
|
+
* score on every scenario. */
|
|
891
413
|
policy?: SearchPolicy;
|
|
892
414
|
/** Where the search ledger goes and the identities it records. Default: a
|
|
893
415
|
* ledger at `<runDir>/search/ledger.jsonl`, held in `storage` unless that is
|
|
@@ -2318,97 +1840,6 @@ interface EmitLoopProvenanceArgs<TArtifact, TScenario extends Scenario> extends
|
|
|
2318
1840
|
*/
|
|
2319
1841
|
declare function emitLoopProvenance<TArtifact, TScenario extends Scenario>(args: EmitLoopProvenanceArgs<TArtifact, TScenario>): Promise<EmitLoopProvenanceResult>;
|
|
2320
1842
|
//#endregion
|
|
2321
|
-
//#region src/campaign/allocation.d.ts
|
|
2322
|
-
/** One cell an allocator wants for a node. */
|
|
2323
|
-
interface SearchCellPlan {
|
|
2324
|
-
taskId: string;
|
|
2325
|
-
split: SearchSplit;
|
|
2326
|
-
rep: number;
|
|
2327
|
-
stage: SearchCellStage;
|
|
2328
|
-
}
|
|
2329
|
-
/** What an allocator reads when it decides. */
|
|
2330
|
-
interface SearchAllocationView {
|
|
2331
|
-
readonly state: SearchStateView;
|
|
2332
|
-
/** True when no cell allocated to the node can still run: each one ended
|
|
2333
|
-
* scored, failed, cancelled or out of attempts. */
|
|
2334
|
-
idle(nodeId: string): boolean;
|
|
2335
|
-
}
|
|
2336
|
-
/** A rank decision an allocator asks the kernel to record. */
|
|
2337
|
-
interface SearchRungDecision {
|
|
2338
|
-
nodeId: string;
|
|
2339
|
-
decision: {
|
|
2340
|
-
status: 'advanced';
|
|
2341
|
-
rung: number;
|
|
2342
|
-
} | {
|
|
2343
|
-
status: 'pruned';
|
|
2344
|
-
};
|
|
2345
|
-
/** The node against the root on the ranked split, as it stood at the decision. */
|
|
2346
|
-
basis: NodeEstimate | null;
|
|
2347
|
-
rule: string;
|
|
2348
|
-
reason: string;
|
|
2349
|
-
}
|
|
2350
|
-
interface SearchAllocator {
|
|
2351
|
-
/** Recorded as the search's `policy.allocation`. */
|
|
2352
|
-
readonly name: string;
|
|
2353
|
-
/** Repeats of each task. The claim runs its test cells at the same repeats. */
|
|
2354
|
-
readonly reps: number;
|
|
2355
|
-
/** Every cell the node needs through `rung`. The kernel allocates the ones
|
|
2356
|
-
* missing; a node that was never advanced is at rung 0. */
|
|
2357
|
-
plan(state: SearchStateView, nodeId: string, rung: number): SearchCellPlan[];
|
|
2358
|
-
/** Cells a newly admitted node's screen allocates, so the kernel can price an
|
|
2359
|
-
* expansion against the budget before the proposer runs. */
|
|
2360
|
-
screenSize(state: SearchStateView): number;
|
|
2361
|
-
/** Nodes the evidence now moves to a further rung, deepest rung first. The
|
|
2362
|
-
* kernel records each one the budget admits and allocates its rung. */
|
|
2363
|
-
advance(view: SearchAllocationView): SearchRungDecision[];
|
|
2364
|
-
/** At close: nodes left waiting below the top rung, decided `pruned` with
|
|
2365
|
-
* their rank. `keep`, the node the search keeps, is never pruned. */
|
|
2366
|
-
prune(view: SearchAllocationView, keep: string): SearchRungDecision[];
|
|
2367
|
-
}
|
|
2368
|
-
/**
|
|
2369
|
-
* Every node gets every train and selection task at every repeat: the root as
|
|
2370
|
-
* `root` cells, every other node as `train` cells (the proposer's feedback) and
|
|
2371
|
-
* `screen` cells (the policy's private evidence). This is the fixed plan the
|
|
2372
|
-
* generation loop ran and GEPA runs. It has one rung, so it never advances or
|
|
2373
|
-
* prunes a node.
|
|
2374
|
-
*/
|
|
2375
|
-
declare function uniform(options?: {
|
|
2376
|
-
reps?: number;
|
|
2377
|
-
}): SearchAllocator;
|
|
2378
|
-
interface AshaOptions {
|
|
2379
|
-
/** Units of the first rung. Default 6, `minimumPairsForPairedDeltaTest(0.95)`:
|
|
2380
|
-
* the fewest shared units a paired contrast needs, so every screened edge
|
|
2381
|
-
* gets one. */
|
|
2382
|
-
units?: number;
|
|
2383
|
-
/** Reduction factor: a node advances when it ranks in the top 1/eta of the
|
|
2384
|
-
* nodes that finished its rung. Default 3. */
|
|
2385
|
-
eta?: number;
|
|
2386
|
-
/** Train units every non-root node also runs, as the proposer's feedback.
|
|
2387
|
-
* They never enter a rank. Default 2. */
|
|
2388
|
-
trainUnits?: number;
|
|
2389
|
-
/** Repeats per task. Default 1. */
|
|
2390
|
-
reps?: number;
|
|
2391
|
-
}
|
|
2392
|
-
/**
|
|
2393
|
-
* Asynchronous successive halving (Li et al., 2020) over one seeded
|
|
2394
|
-
* permutation of the ranked split's units, fixed by the search's seed.
|
|
2395
|
-
*
|
|
2396
|
-
* Rung k is the first `units × 2^k` units of the permutation; the top rung is
|
|
2397
|
-
* every unit. The root runs every unit before anything else, so every rung
|
|
2398
|
-
* pairs against it. A new node screens on rung 0 plus `trainUnits` train
|
|
2399
|
-
* units. Every node at a rung runs the same units as its parent, the root and
|
|
2400
|
-
* its siblings, so every contrast pairs.
|
|
2401
|
-
*
|
|
2402
|
-
* A node that finished rung k advances once it ranks in the top
|
|
2403
|
-
* floor(n / eta) of the n nodes that finished rung k, the root included, by
|
|
2404
|
-
* mean over the rung's units; a node with an unscored unit ranks last and
|
|
2405
|
-
* never advances. There is no barrier: a node outside the top waits, because
|
|
2406
|
-
* the set grows as more nodes finish. At close a waiting node is pruned with
|
|
2407
|
-
* its rank. The ranked split is selection, or train when a search declares no
|
|
2408
|
-
* selection split, as the policy's.
|
|
2409
|
-
*/
|
|
2410
|
-
declare function asha(options?: AshaOptions): SearchAllocator;
|
|
2411
|
-
//#endregion
|
|
2412
1843
|
//#region src/campaign/analyst-surface.d.ts
|
|
2413
1844
|
interface TraceAnalystScenario extends Scenario {
|
|
2414
1845
|
kind: 'trace-analyst';
|
|
@@ -2702,89 +2133,6 @@ interface CrossSurfaceInteractionReport<TRow extends CrossSurfaceTaskRow = Cross
|
|
|
2702
2133
|
*/
|
|
2703
2134
|
declare function analyzeCrossSurfaceInteractions<TRow extends CrossSurfaceTaskRow>(input: AnalyzeCrossSurfaceInteractionsInput<TRow>): CrossSurfaceInteractionReport<TRow>;
|
|
2704
2135
|
//#endregion
|
|
2705
|
-
//#region src/campaign/estimate-node.d.ts
|
|
2706
|
-
/** The estimator every `NodeEstimate` names. */
|
|
2707
|
-
declare const SEARCH_ESTIMATOR: SearchSourceRef;
|
|
2708
|
-
interface EstimateNodeCellsInput {
|
|
2709
|
-
nodeId: string;
|
|
2710
|
-
against: string;
|
|
2711
|
-
split: SearchSplit;
|
|
2712
|
-
direction: 'maximize' | 'minimize';
|
|
2713
|
-
/** Every scored cell of `nodeId` on `split`. */
|
|
2714
|
-
nodeCells: readonly SearchScoredCell[];
|
|
2715
|
-
/** Every scored cell of `against` on `split`. */
|
|
2716
|
-
againstCells: readonly SearchScoredCell[];
|
|
2717
|
-
}
|
|
2718
|
-
/**
|
|
2719
|
-
* Digest of the cells an estimate reads, with the contrast they serve. Cells
|
|
2720
|
-
* are listed in cellId order, so the digest names the set, not the order it
|
|
2721
|
-
* was read in.
|
|
2722
|
-
*/
|
|
2723
|
-
declare function searchCellSetDigest(input: Omit<EstimateNodeCellsInput, 'direction'>): SearchLedgerHash;
|
|
2724
|
-
/**
|
|
2725
|
-
* The paired contrast of `nodeId` against `against` on the units both scored.
|
|
2726
|
-
*
|
|
2727
|
-
* `delta` is the mean per-unit difference, node minus `against`, in the
|
|
2728
|
-
* metric's own units; for a `minimize` objective an improvement is negative.
|
|
2729
|
-
* The exact sign test is one-sided toward improvement in the objective's
|
|
2730
|
-
* direction. Unscored cells (errored, cancelled or in flight) are absent from
|
|
2731
|
-
* the inputs, never zero.
|
|
2732
|
-
*
|
|
2733
|
-
* - `none` (0 or 1 pair): no delta.
|
|
2734
|
-
* - `insufficient` (2 to 5): the delta only.
|
|
2735
|
-
* - `descriptive` (6 to 19): the bootstrap interval as spread, and the sign-test p.
|
|
2736
|
-
* - `bootstrap` (20 or more): the decision-grade bootstrap interval.
|
|
2737
|
-
*
|
|
2738
|
-
* When every paired delta is equal the interval would have zero width, which
|
|
2739
|
-
* is an absence of evidence; the estimate is then `indeterminate` and carries
|
|
2740
|
-
* neither an interval nor a p-value.
|
|
2741
|
-
*/
|
|
2742
|
-
declare function estimateNodeFromCells(input: EstimateNodeCellsInput): NodeEstimate;
|
|
2743
|
-
/**
|
|
2744
|
-
* `estimateNodeFromCells` over the cells a search state holds: `nodeId`
|
|
2745
|
-
* against `against` on one split, in the direction the search's objective
|
|
2746
|
-
* declares.
|
|
2747
|
-
*/
|
|
2748
|
-
declare function estimateNode(state: SearchStateView, nodeId: string, options: {
|
|
2749
|
-
against: string;
|
|
2750
|
-
split: SearchSplit;
|
|
2751
|
-
}): NodeEstimate;
|
|
2752
|
-
/** A node's normal posterior on its improvement over the root. */
|
|
2753
|
-
interface NodePosterior {
|
|
2754
|
-
nodeId: string;
|
|
2755
|
-
/** Units the node and the root both scored. */
|
|
2756
|
-
pairs: number;
|
|
2757
|
-
/** Mean per-unit improvement over the root in the objective's direction,
|
|
2758
|
-
* so larger is better for either direction. Null without a shared unit. */
|
|
2759
|
-
mean: number | null;
|
|
2760
|
-
/** The pooled variance divided by `pairs`. Null when either is unknown. */
|
|
2761
|
-
variance: number | null;
|
|
2762
|
-
}
|
|
2763
|
-
interface SearchPosterior {
|
|
2764
|
-
split: SearchSplit;
|
|
2765
|
-
rootNodeId: string;
|
|
2766
|
-
/**
|
|
2767
|
-
* Between-unit variance of the per-unit improvements over the root, pooled
|
|
2768
|
-
* across every non-root node with at least 2 shared units. Null until some
|
|
2769
|
-
* node has 2.
|
|
2770
|
-
*/
|
|
2771
|
-
pooledVariance: number | null;
|
|
2772
|
-
/** Sum over the pooled nodes of their shared units minus one. */
|
|
2773
|
-
degreesOfFreedom: number;
|
|
2774
|
-
/** Every node in registration order; the root first, at exactly 0. */
|
|
2775
|
-
nodes: NodePosterior[];
|
|
2776
|
-
}
|
|
2777
|
-
/**
|
|
2778
|
-
* The posterior every node's parent-selection draw uses. Each node's mean is
|
|
2779
|
-
* its improvement over the root on shared units; its variance is the search's
|
|
2780
|
-
* pooled between-unit variance divided by its unit count, so a node measured
|
|
2781
|
-
* on one unit has a wide posterior rather than none. The root is the reference
|
|
2782
|
-
* and sits at exactly 0.
|
|
2783
|
-
*/
|
|
2784
|
-
declare function searchPosterior(state: SearchStateView, options?: {
|
|
2785
|
-
split?: SearchSplit;
|
|
2786
|
-
}): SearchPosterior;
|
|
2787
|
-
//#endregion
|
|
2788
2136
|
//#region src/campaign/fixtures.d.ts
|
|
2789
2137
|
type EvalFixtureValidationMode = 'vitest' | 'none';
|
|
2790
2138
|
interface EvalFixtureFile {
|
|
@@ -3777,289 +3125,6 @@ declare function selectDiscriminative(signals: ScenarioSignal[], k: number, opts
|
|
|
3777
3125
|
saturationCeiling?: number;
|
|
3778
3126
|
}): string[];
|
|
3779
3127
|
//#endregion
|
|
3780
|
-
//#region src/campaign/search-claim.d.ts
|
|
3781
|
-
/** The claim procedure every `SearchClaim` and claim plan names. */
|
|
3782
|
-
declare const SEARCH_CLAIM_RULE: SearchSourceRef;
|
|
3783
|
-
/**
|
|
3784
|
-
* The claim reserve a search needs: the root and 3 finalists on every test
|
|
3785
|
-
* task at `reps` repeats, each held at `cellUsd`. Declare at least this as
|
|
3786
|
-
* `budget.reservedClaimUsd`; `runSearch` refuses to start a capped search
|
|
3787
|
-
* with less.
|
|
3788
|
-
*/
|
|
3789
|
-
declare function searchClaimReserveUsd(input: {
|
|
3790
|
-
testTasks: number;
|
|
3791
|
-
reps: number;
|
|
3792
|
-
cellUsd: number;
|
|
3793
|
-
}): number;
|
|
3794
|
-
/**
|
|
3795
|
-
* The claim's design, fixed before any test cell runs, and stored as the
|
|
3796
|
-
* `claim-plan` artifact of the ledger's `claim` operation.
|
|
3797
|
-
*/
|
|
3798
|
-
interface SearchClaimPlan {
|
|
3799
|
-
kind: 'search-claim-plan';
|
|
3800
|
-
rule: SearchSourceRef;
|
|
3801
|
-
/** Why expansion stopped; the search closes with this reason. */
|
|
3802
|
-
stopReason: SearchCloseReason;
|
|
3803
|
-
/** Best first. Every one is decided `finalist` and named by the claim. */
|
|
3804
|
-
finalists: Array<{
|
|
3805
|
-
nodeId: string;
|
|
3806
|
-
selectionMean: number;
|
|
3807
|
-
}>;
|
|
3808
|
-
power: SearchClaimPower;
|
|
3809
|
-
/** `run`: the root and the finalists run every test task. Otherwise the
|
|
3810
|
-
* claim closes with this decision and spends nothing on test cells. */
|
|
3811
|
-
test: 'run' | 'hold' | 'test-cannot-resolve';
|
|
3812
|
-
reason: string;
|
|
3813
|
-
}
|
|
3814
|
-
interface PlanSearchClaimInput {
|
|
3815
|
-
stopReason: SearchCloseReason;
|
|
3816
|
-
/** Repeats per test task. */
|
|
3817
|
-
reps: number;
|
|
3818
|
-
/** Whether the budget admits the test cells of the root and `finalists`. */
|
|
3819
|
-
affordable(finalists: number): boolean;
|
|
3820
|
-
}
|
|
3821
|
-
/** Fix the claim's design from a search that stopped expanding. */
|
|
3822
|
-
declare function planSearchClaim(state: SearchStateView, input: PlanSearchClaimInput): SearchClaimPlan;
|
|
3823
|
-
/** A node decision the claim makes, ready for `recorder.decideNode`. */
|
|
3824
|
-
interface SearchClaimDecision {
|
|
3825
|
-
nodeId: string;
|
|
3826
|
-
decision: SearchNodeDecision;
|
|
3827
|
-
basis: NodeEstimate | null;
|
|
3828
|
-
rule: string;
|
|
3829
|
-
reason: string;
|
|
3830
|
-
}
|
|
3831
|
-
/**
|
|
3832
|
-
* Decide the claim from the test cells of the root and the finalists. Call it
|
|
3833
|
-
* once every claim cell is settled or cancelled. It returns the claim and the
|
|
3834
|
-
* terminal decisions of the root and every finalist.
|
|
3835
|
-
*/
|
|
3836
|
-
declare function decideSearchClaim(state: SearchStateView, plan: SearchClaimPlan): {
|
|
3837
|
-
claim: SearchClaim;
|
|
3838
|
-
decisions: SearchClaimDecision[];
|
|
3839
|
-
};
|
|
3840
|
-
/** Whether a closed search's claim is the one its own ledger supports. */
|
|
3841
|
-
type SearchClaimVerification = {
|
|
3842
|
-
status: 'verified';
|
|
3843
|
-
} |
|
|
3844
|
-
/** The claim differs from the one the claim rule makes from the ledger. */
|
|
3845
|
-
{
|
|
3846
|
-
status: 'mismatch';
|
|
3847
|
-
differences: string[];
|
|
3848
|
-
} |
|
|
3849
|
-
/** The claim names a rule revision this code does not implement, so this
|
|
3850
|
-
* code can neither confirm nor refute it. */
|
|
3851
|
-
{
|
|
3852
|
-
status: 'unknown';
|
|
3853
|
-
reason: string;
|
|
3854
|
-
};
|
|
3855
|
-
/**
|
|
3856
|
-
* Make a closed search's claim again from its ledger alone and compare it with
|
|
3857
|
-
* the recorded one, byte for byte: the power check, the finalists, each
|
|
3858
|
-
* finalist's test estimate and deciding interval, the selection, the decision
|
|
3859
|
-
* and the reason. A producer's claim is not evidence until this holds; a store
|
|
3860
|
-
* keeps what this function derives, not what the producer wrote.
|
|
3861
|
-
*
|
|
3862
|
-
* It needs no blob, so it works on a store that keeps digests only. The
|
|
3863
|
-
* finalists are the nodes the ledger decided `finalist`, in decision order.
|
|
3864
|
-
* The one input the ledger cannot replay is whether the budget covered k
|
|
3865
|
-
* finalists' test cells; the claim cells that ran answer it (none ran: the
|
|
3866
|
-
* budget covered none). Test repeats come from the claim cells too; without
|
|
3867
|
-
* test cells, the recorded estimator stands for them (binary needs one repeat,
|
|
3868
|
-
* so any other count reproduces continuous).
|
|
3869
|
-
*
|
|
3870
|
-
* Returns null for a search that made no claim.
|
|
3871
|
-
*/
|
|
3872
|
-
declare function verifySearchClaim(state: SearchStateView): SearchClaimVerification | null;
|
|
3873
|
-
//#endregion
|
|
3874
|
-
//#region src/campaign/search-kernel.d.ts
|
|
3875
|
-
/** The kernel every `runSearch` ledger names as its search implementation. */
|
|
3876
|
-
declare const SEARCH_KERNEL_SOURCE: SearchSourceRef;
|
|
3877
|
-
/** An execution lane: a pool of slots whose cells share a cost rule. */
|
|
3878
|
-
interface SearchLane {
|
|
3879
|
-
name: string;
|
|
3880
|
-
/** Cells the lane runs at once. */
|
|
3881
|
-
capacity: number;
|
|
3882
|
-
/** `hard`: the lane enforces `cellUsd` as each cell's maximum. `estimate`:
|
|
3883
|
-
* it cannot, and the kernel holds an estimate, recording any overshoot. */
|
|
3884
|
-
costCap: 'hard' | 'estimate';
|
|
3885
|
-
/** The enforced per-cell maximum of a hard lane; the prior estimate of an
|
|
3886
|
-
* estimate lane until it has settled enough cells to estimate its own. */
|
|
3887
|
-
cellUsd: number;
|
|
3888
|
-
}
|
|
3889
|
-
/** One attempt at one cell, as the kernel hands it to an executor. */
|
|
3890
|
-
interface SearchCellWork<TArtifact> {
|
|
3891
|
-
searchId: string;
|
|
3892
|
-
cellId: string;
|
|
3893
|
-
nodeId: string;
|
|
3894
|
-
taskId: string;
|
|
3895
|
-
unitId: string;
|
|
3896
|
-
split: SearchSplit;
|
|
3897
|
-
rep: number;
|
|
3898
|
-
stage: SearchCellStage;
|
|
3899
|
-
lane: string;
|
|
3900
|
-
attempt: number;
|
|
3901
|
-
/** `cellId:attempt`: the id an executor keys the attempt's run by. */
|
|
3902
|
-
runId: string;
|
|
3903
|
-
artifact: TArtifact;
|
|
3904
|
-
signal: AbortSignal;
|
|
3905
|
-
}
|
|
3906
|
-
/** What an attempt produced: everything `cell-settled` records except the
|
|
3907
|
-
* coordinates the kernel owns. An environment fault is an `errored` outcome,
|
|
3908
|
-
* not a rejection; a rejection stops the search. */
|
|
3909
|
-
type SearchCellResult = Omit<SettleSearchCellInput, 'cellId' | 'attempt'>;
|
|
3910
|
-
/** The executor port: lanes, placement, running a cell, and adopting an
|
|
3911
|
-
* attempt an earlier kernel process started. */
|
|
3912
|
-
interface SearchExecutor<TArtifact> {
|
|
3913
|
-
lanes(): readonly SearchLane[];
|
|
3914
|
-
/** The lane a planned cell runs on. */
|
|
3915
|
-
place(cell: SearchCellPlan & {
|
|
3916
|
-
nodeId: string;
|
|
3917
|
-
}): string;
|
|
3918
|
-
run(work: SearchCellWork<TArtifact>): Promise<SearchCellResult>;
|
|
3919
|
-
/** The result of `work.runId` if the executor already has it, else null.
|
|
3920
|
-
* Called before the first dispatch of a cell the ledger shows unsettled when
|
|
3921
|
-
* the kernel starts, so a restart does not run an attempt twice. */
|
|
3922
|
-
adopt(work: SearchCellWork<TArtifact>): Promise<SearchCellResult | null>;
|
|
3923
|
-
}
|
|
3924
|
-
/** How a search stores, compares and restores its artifacts. */
|
|
3925
|
-
interface SearchArtifactCodec<TArtifact> {
|
|
3926
|
-
/** The artifact as a content-addressed node; stores its bytes. */
|
|
3927
|
-
node(recorder: SearchRecorder, artifact: TArtifact): RegisterSearchNodeInput;
|
|
3928
|
-
/** The parent-to-child diff, stored as a blob, or why there is none. */
|
|
3929
|
-
diff(recorder: SearchRecorder, parent: TArtifact, child: TArtifact): SearchArtifactRef | SearchUnknown;
|
|
3930
|
-
/** The artifact a node holds, read back from its stored bytes. */
|
|
3931
|
-
load(recorder: SearchRecorder, node: SearchNode): TArtifact;
|
|
3932
|
-
}
|
|
3933
|
-
interface SearchProposalRequest<TArtifact> {
|
|
3934
|
-
expansion: number;
|
|
3935
|
-
operationId: string;
|
|
3936
|
-
operator: Exclude<SearchEdgeOperator, 'seed' | 'derive'>;
|
|
3937
|
-
/** The parents the policy chose, primary first. */
|
|
3938
|
-
parents: ReadonlyArray<{
|
|
3939
|
-
nodeId: string;
|
|
3940
|
-
artifact: TArtifact;
|
|
3941
|
-
}>;
|
|
3942
|
-
/** The node the search keeps now. */
|
|
3943
|
-
leader: string;
|
|
3944
|
-
signal: AbortSignal;
|
|
3945
|
-
}
|
|
3946
|
-
/** One child a proposal returned. */
|
|
3947
|
-
interface SearchProposedChild<TArtifact> {
|
|
3948
|
-
artifact: TArtifact;
|
|
3949
|
-
label: string;
|
|
3950
|
-
/** The proposer's reason; redacted with the share profile before it is stored. */
|
|
3951
|
-
rationale: string;
|
|
3952
|
-
/** Typed JSON the proposer attaches to the child, stored with the proposal
|
|
3953
|
-
* and never interpreted by the kernel. */
|
|
3954
|
-
attribution?: Readonly<Record<string, unknown>>;
|
|
3955
|
-
}
|
|
3956
|
-
interface SearchProposalResult<TArtifact> {
|
|
3957
|
-
children: ReadonlyArray<SearchProposedChild<TArtifact>>;
|
|
3958
|
-
/** Set when the proposer judges the search converged; expansion stops. */
|
|
3959
|
-
stop?: string;
|
|
3960
|
-
/** What generated the children; default the port's `execution`. */
|
|
3961
|
-
execution?: SearchOperationRecordedEvent['execution'];
|
|
3962
|
-
accounting: SearchAttemptAccounting;
|
|
3963
|
-
}
|
|
3964
|
-
/** The proposer port: derives children from the parents the policy chose. */
|
|
3965
|
-
interface SearchProposerPort<TArtifact> {
|
|
3966
|
-
readonly name: string;
|
|
3967
|
-
readonly kind: SearchProposerKind;
|
|
3968
|
-
readonly source: SearchSourceRef;
|
|
3969
|
-
readonly execution: SearchOperationRecordedEvent['execution'];
|
|
3970
|
-
/** Prior hold for one proposal until 20 proposals have settled. Default 0. */
|
|
3971
|
-
readonly reservationUsd?: number;
|
|
3972
|
-
/** Children one proposal usually returns, to price an expansion's screens
|
|
3973
|
-
* before it runs. Default 1. */
|
|
3974
|
-
readonly childrenPerProposal?: number;
|
|
3975
|
-
propose(request: SearchProposalRequest<TArtifact>): Promise<SearchProposalResult<TArtifact>>;
|
|
3976
|
-
}
|
|
3977
|
-
interface RunSearchOptions<TArtifact> {
|
|
3978
|
-
/** An opened recorder; its header names this policy and allocator. */
|
|
3979
|
-
recorder: SearchRecorder;
|
|
3980
|
-
/** The starting artifact: the seeded root. */
|
|
3981
|
-
root: TArtifact;
|
|
3982
|
-
codec: SearchArtifactCodec<TArtifact>;
|
|
3983
|
-
policy: SearchPolicy;
|
|
3984
|
-
allocation: SearchAllocator;
|
|
3985
|
-
proposer: SearchProposerPort<TArtifact>;
|
|
3986
|
-
executor: SearchExecutor<TArtifact>;
|
|
3987
|
-
/** Refuse a child before it runs: the reason, or null to admit it. A
|
|
3988
|
-
* refused child is recorded, decided `invalid`, and never becomes a parent. */
|
|
3989
|
-
admit?: (artifact: TArtifact) => string | null;
|
|
3990
|
-
/** Stop expanding after this many proposals. */
|
|
3991
|
-
maxExpansions?: number;
|
|
3992
|
-
/** Attempts per cell for retryable environment errors. Default 3. */
|
|
3993
|
-
maxAttempts?: number;
|
|
3994
|
-
/** Aborting pauses the search: in-flight cells are aborted, what settled is
|
|
3995
|
-
* recorded, the ledger stays open, and the call rejects. Run the kernel on
|
|
3996
|
-
* the same ledger again to continue. */
|
|
3997
|
-
signal?: AbortSignal;
|
|
3998
|
-
/** Milliseconds since the epoch, for the deadline. Default `Date.now`. */
|
|
3999
|
-
now?: () => number;
|
|
4000
|
-
}
|
|
4001
|
-
interface SearchRunResult {
|
|
4002
|
-
/** The closed search. */
|
|
4003
|
-
state: SearchStateView;
|
|
4004
|
-
/** The node the search keeps: the claim's selection, or without a claim the
|
|
4005
|
-
* policy leader; the root when nothing was selected. */
|
|
4006
|
-
leader: string;
|
|
4007
|
-
reason: SearchCloseReason;
|
|
4008
|
-
/** The claim on the sealed test split; null for a search without one. */
|
|
4009
|
-
claim: SearchClaim | null;
|
|
4010
|
-
/** The claim made again from the ledger alone (`verifySearchClaim`): never
|
|
4011
|
-
* `mismatch`, which `runSearch` throws; `unknown` for a claim another rule
|
|
4012
|
-
* revision made; null without a claim. */
|
|
4013
|
-
claimVerification: SearchClaimVerification | null;
|
|
4014
|
-
}
|
|
4015
|
-
/** Run a search to its close, or continue one from its ledger. */
|
|
4016
|
-
declare function runSearch<TArtifact>(options: RunSearchOptions<TArtifact>): Promise<SearchRunResult>;
|
|
4017
|
-
/** The expansion index a kernel operation id encodes, or null. */
|
|
4018
|
-
declare function searchExpansionIndex(operationId: string): number | null;
|
|
4019
|
-
/** The stored output of one proposal: enough to register its children again. */
|
|
4020
|
-
interface SearchProposalBlob {
|
|
4021
|
-
kind: 'search-proposal';
|
|
4022
|
-
operator: SearchProposalRequest<unknown>['operator'];
|
|
4023
|
-
parents: string[];
|
|
4024
|
-
selection: {
|
|
4025
|
-
rule: string;
|
|
4026
|
-
evidence: Record<string, number>;
|
|
4027
|
-
};
|
|
4028
|
-
children: Array<{
|
|
4029
|
-
node: RegisterSearchNodeInput;
|
|
4030
|
-
diffs: Array<SearchArtifactRef | SearchUnknown>;
|
|
4031
|
-
label: string;
|
|
4032
|
-
rationale: string;
|
|
4033
|
-
attribution: Readonly<Record<string, unknown>> | null;
|
|
4034
|
-
invalid: string | null;
|
|
4035
|
-
}>;
|
|
4036
|
-
}
|
|
4037
|
-
/**
|
|
4038
|
-
* A policy's read of a search: `screened` lists the admitted nodes whose screen
|
|
4039
|
-
* finished, in registration order; `screening` counts the admitted nodes still
|
|
4040
|
-
* being screened. Nodes are ranked on the selection split, or on train when
|
|
4041
|
-
* the search declares no selection split. The view reads no test cell.
|
|
4042
|
-
* `maxAttempts` (default 3, the kernel's) says when an errored cell has no
|
|
4043
|
-
* attempt left, which makes its unit a dodge.
|
|
4044
|
-
*/
|
|
4045
|
-
declare function searchPolicyView(state: SearchStateView, input: {
|
|
4046
|
-
screened: readonly string[];
|
|
4047
|
-
screening: number;
|
|
4048
|
-
expansions: number;
|
|
4049
|
-
maxAttempts?: number;
|
|
4050
|
-
}): SearchPolicyView;
|
|
4051
|
-
/**
|
|
4052
|
-
* The divergence rule: a node whose train mean rose over its parent's on the
|
|
4053
|
-
* train units they share while its selection interval against the parent (6
|
|
4054
|
-
* or more units, not indeterminate) lies wholly on the worse side. Train is
|
|
4055
|
-
* what the proposer reads; a gain there that selection contradicts is the
|
|
4056
|
-
* signature of fitting the feedback instead of the task.
|
|
4057
|
-
*/
|
|
4058
|
-
declare function searchDivergence(state: SearchStateView, nodeId: string): {
|
|
4059
|
-
basis: NodeEstimate;
|
|
4060
|
-
reason: string;
|
|
4061
|
-
} | null;
|
|
4062
|
-
//#endregion
|
|
4063
3128
|
//#region src/campaign/search-campaign-cell.d.ts
|
|
4064
3129
|
/**
|
|
4065
3130
|
* What `cell-settled` records for one campaign cell: `passed` with the
|
|
@@ -4266,5 +3331,5 @@ declare function verifyCodeSurface(surface: CodeSurface, worktreeDir?: string):
|
|
|
4266
3331
|
* identity against the checkout at `worktreeRef`. */
|
|
4267
3332
|
declare function resolveWorktreePath(surface: CodeSurface, worktreeDir?: string): string;
|
|
4268
3333
|
//#endregion
|
|
4269
|
-
export { searchClaimReserveUsd as $, SearchOpening as $a, OptimizationMethodInput as $i, CrossSurfaceBestSingleSelection as $n, CampaignStorage as $o, loopProvenanceArgsFromResult as $r, RequirementCheck as $t, SEARCH_KERNEL_SOURCE as A, LlmJudgeDimension as Aa, SkillOptRunnerCommand as Ai, EvalFixtureLoadOptions as An, validateSearchLedgerEvent as Ao, TraceAnalystScenario as Ar, userStoryScoreboard as At, SearchProposerPort as B, PremeasuredOptimizationBaseline as Ba, OpenAICompatibleOptimizerModel as Bi, EstimateNodeCellsInput as Bn, CampaignCellRetryPolicy as Bo, BuildLoopProvenanceArgs as Br, assertRealBackend as Bt, SingleRunLockOptions as C, REFERENCE_EQUIVALENCE_JUDGE_VERSION as Ca, CanaryEvaluation as Ci, importGepaPopulation as Cn, OpenSearchLedgerOptions as Co, CrossSurfaceRankedSingle as Cr, ScoreboardSummary as Ct, searchProposalExecution as D, ReferenceEquivalenceScenario as Da, runCanaries as Di, neutralizationGate as Dn, openSearchLedger as Do, CrossSurfaceTaskRow as Dr, renderScoreboardMarkdown as Dt, searchModelIdentity as E, ReferenceEquivalenceJudgeResult as Ea, CanaryReport as Ei, NeutralizationGateOptions as En, SearchLedgerTrustedHeadMode as Eo, CrossSurfaceSelections as Er, makePlaybackDispatch as Et, SearchLane as F, quotaExhaustedUntil as Fa, GepaEngineRun as Fi, PlanEvalFixtureRunOptions as Fn, OpenAutoPrResult as Fo, SearchAllocator as Fr, RunProfileMatrixResult as Ft, searchPolicyView as G, SearchPolicy as Ga, ExternalTextOptimizerResult as Gi, estimateNodeFromCells as Gn, PlanCampaignRunOptions as Go, LoopProvenanceCandidate as Gr, ToolCallEventLike as Gt, runSearch as H, RunOptimizationResult as Ha, externalTextOptimizationMethod as Hi, SEARCH_ESTIMATOR as Hn, runCampaign as Ho, EmitLoopProvenanceResult as Hr, ArtifactEventLike as Ht, SearchProposalBlob as I, transientDispatchFailure as Ia, GepaOptimizationMethodConfig as Ii, discoverEvalFixtures as In, openAutoPr as Io, SearchCellPlan as Ir, ScenarioRollup as It, SearchClaimDecision as J, incumbent as Ja, decodeExternalTextCandidate as Ji, analyzeCrossSurfaceInteractions as Jn, CacheRead as Jo, LoopProvenanceRecord as Jr, CompletionVerdict as Jt, PlanSearchClaimInput as K, SearchPolicyView as Ka, ExternalOptimizationExample as Ki, searchCellSetDigest as Kn, planCampaignRun as Ko, LoopProvenanceEvidence as Kr, extractProducedState as Kt, SearchProposalRequest as L, RunImprovementLoopOptions as La, GepaOptimizationRecipe as Li, loadEvalFixture as Ln, RunEvalOptions as Lo, SearchRungDecision as Lr, runProfileMatrix as Lt, SearchCellResult as M, llmJudge as Ma, skillOptOptimizationMethod as Mi, EvalFixtureScenario as Mn, SearchLedgerError as Mo, traceAnalystQualityJudge as Mr, ProfileMatrixError as Mt, SearchCellWork as N, TransientFailureOptions as Na, GepaAdaptiveEngineRun as Ni, EvalFixtureValidationMode as Nn, SearchLedgerIntegrityError as No, AshaOptions as Nr, ProfileSummary as Nt, searchReceiptAccounting as O, createReferenceEquivalenceJudge as Oa, composeGate as Oi, EvalFixture as On, parseSearchLedgerLine as Oo, BuildTraceAnalystSurfaceDispatchOptions as Or, scoreUserStory as Ot, SearchExecutor as P, isTransientTransportFailure as Pa, GepaEngineOptions as Pi, LoadEvalFixtureScenariosOptions as Pn, OpenAutoPrOptions as Po, SearchAllocationView as Pr, RunProfileMatrixOptions as Pt, planSearchClaim as Q, SearchLedgerBinding as Qa, OptimizationMethodComposition as Qi, CrossSurfaceAttemptCompleteness as Qn, cellCachePath as Qo, emitLoopProvenance as Qr, ProducedState as Qt, SearchProposalResult as R, RunImprovementLoopResult as Ra, GepaRunnerCommand as Ri, loadEvalFixtureScenarios as Rn, runEval as Ro, asha as Rr, BackendIntegrityError as Rt, SingleRunLock as S, REFERENCE_EQUIVALENCE_INPUT_LIMITS as Sa, CanaryAlert as Si, importExternalEvaluations as Sn, FileSearchLedger as So, CrossSurfacePairwiseEntry as Sr, ScoreboardRow as St, campaignCellSearchResult as T, ReferenceEquivalenceJudgeOptions as Ta, CanaryOptions as Ti, recordSkillOptSearch as Tn, SearchLedgerAppendResult as To, CrossSurfaceSelectionPolicy as Tr, UserStoryVerdict as Tt, searchDivergence as U, runOptimization as Ua, ExternalTextOptimizationMethodConfig as Ui, SearchPosterior as Un, CampaignRunPlan as Uo, LoopProvenanceArgsFromResult as Ur, ProposalEventLike as Ut, SearchRunResult as V, RunOptimizationOptions as Va, OptimizerModelBudget as Vi, NodePosterior as Vn, RunCampaignOptions as Vo, EmitLoopProvenanceArgs as Vr, summarizeBackendIntegrity as Vt, searchExpansionIndex as W, SearchExpansion as Wa, ExternalTextOptimizerContext as Wi, estimateNode as Wn, CampaignRunPlanCell as Wo, LoopProvenanceBackend as Wr, RuntimeEventLike as Wt, SearchClaimVerification as X, RecordSearchEdgeInput as Xa, OptimizationMethod as Xi, CrossSurfaceAdditionDecision as Xn, CellScheduleSlot as Xo, campaignMeasurementDigest as Xr, LlmCorrectnessCheckerOpts as Xt, SearchClaimPlan as Y, AllocateSearchCellInput as Ya, CompareOptimizationMethodsOptions as Yi, AnalyzeCrossSurfaceInteractionsInput as Yn, readCachedCell as Yo, buildLoopProvenanceRecord as Yr, CorrectnessChecker as Yt, decideSearchClaim as Z, RegisterSearchNodeInput as Za, OptimizationMethodComparison as Zi, CrossSurfaceAdditionRejectionReason as Zn, buildCellSchedule as Zo, canonicalDigest as Zr, ProducedProposal as Zt, componentSurfaceIdentityMaterial as _, ExternalOptimizerExecutionSummary as _a, RedTeamFinding as _i, rolloutArgumentDiff as _n, assertSearchHistoryMatchesState as _o, CrossSurfaceInteractionTask as _r, runProfileMatrixSegment as _t, WorktreeAdapterError as a, OptimizationPackageSource as aa, CampaignComparisonUnits as ai, scopedOptimizationMethod as an, searchEdgeId as ao, CrossSurfaceCandidateSummary as ar, assertCampaignDesign as as, resolveRunDir as at, surfaceDispatchRef as b, ExternalOptimizerSubmittedCandidate as ba, redTeamReport as bi, GepaPopulationImport as bn, verifySearchHistoryArtifact as bo, CrossSurfacePairEvidence as br, PlaybackStep as bt, verifyCodeSurface as c, optimizationTokenUsageFromSummary as ca, HeldOutGateOptions as ci, FsLabeledScenarioStore as cn, CreateSearchHistoryReceiptInput as co, CrossSurfaceCompositionStep as cr, campaignSplitDigest as cs, FinalizeProfileMatrixOptions as ct, PhoenixEvaluationResultLike as d, costFromLedgerSummary as da, DefaultProductionGateOptions as di, RolloutArgumentDiff as dn, SearchHistoryCoverage as do, CrossSurfaceEvidenceBreakdown as dr, ProfileMatrixPlan as dt, OptimizationMethodPairwise as ea, loopProvenanceSpans as ei, SatisfiedBy as en, SearchRecorder as eo, CrossSurfaceBootstrapPolicy as er, createRunCostLedger as es, verifySearchClaim as et, PhoenixEvaluatorLike as f, GepaCandidatePopulationArtifact as fa, DefaultProductionRewardHackingOptions as fi, RolloutArgumentDiffOptions as fn, SearchHistoryCoverageRow as fo, CrossSurfaceIneligibilityReason as fr, ProfileMatrixRow as ft, codeSurfaceIdentityMaterial as g, readGepaCandidatePopulationArtifact as ga, RedTeamCategory as gi, classifyUngroundedLiterals as gn, assertCompleteSearchHistory as go, CrossSurfaceInteractionReport as gr, finalizeProfileMatrix as gt, assertCodeSurfaceIdentity as h, GepaCandidateSelectionScore as ha, RedTeamCase as hi, UngroundedLiteralReport as hn, SearchHistoryRequiredError as ho, CrossSurfaceInteractionPath as hr, createProfileMatrixPlan as ht, WorktreeAdapter as i, OptimizationMethodScore as ia, CampaignBreakdown as ii, verifyCompletion as in, developmentClaim as io, CrossSurfaceCandidateOutcome as ir, FinalEvidenceUse as is, selectDiscriminative as it, SearchArtifactCodec as j, LlmJudgeOptions as ja, SkillOptTrainerConfig as ji, EvalFixtureRunPlan as jn, SearchLedgerConflictError as jo, buildTraceAnalystSurfaceDispatch as jr, ProfileDispatchFn as jt, RunSearchOptions as k, runReferenceEquivalenceJudge as ka, SkillOptOptimizationMethodConfig as ki, EvalFixtureFile as kn, replaySearchLedgerText as ko, TraceAnalystArtifact as kr, scoreboardSummary as kt, AutoevalsScoreLike as l, ComparisonCost as la, heldOutGate as li, FsLabeledScenarioStoreOptions as ln, SearchHistoryAdmissionOptions as lo, CrossSurfaceDistribution as lr, campaignSplitDigestFromIdentities as ls, FinalizedProfileMatrixResult as lt, phoenixEvaluatorJudge as m, GepaCandidatePopulationSummary as ma, DEFAULT_RED_TEAM_CORPUS as mi, ScoredRollout as mn, SearchHistoryReceipt as mo, CrossSurfaceInteractionEffect as mr, RunProfileMatrixSegmentOptions as mt, GitWorktreeAdapterOptions as n, OptimizationMethodResult as na, provenanceSpansPath as ni, completionVerdict as nn, SearchRunIdentity as no, CrossSurfaceCandidateComparison as nr, inMemoryCampaignStorage as ns, ScenarioSignal as nt, gitWorktreeAdapter as o, OptimizationTokenUsage as oa, campaignBreakdown as oi, sequentialOptimizationMethod as on, surfaceDiff as oo, CrossSurfaceComponent as or, assertCampaignSplitIdentity as os, tangleTracesRoot as ot, autoevalsScorerJudge as p, GepaCandidatePopulationCandidate as pa, defaultProductionGate as pi, RolloutCall as pn, SearchHistoryPolicy as po, CrossSurfaceInteractionAwareSelection as pr, ProfileMatrixSegmentResult as pt, SEARCH_CLAIM_RULE as q, crowdedFrontierParent as qa, ExternalTextEvaluationResponse as qi, searchPosterior as qn, CacheIssueReason as qo, LoopProvenanceOptimizationMethod as qr, CompletionRequirement as qt, Worktree as r, OptimizationMethodRunOptions as ra, verifyLoopProvenanceRecord as ri, createLlmCorrectnessChecker as rn, SettleSearchCellInput as ro, CrossSurfaceCandidateEvidence as rr, FinalEvidencePolicy as rs, scoreDiscrimination as rt, resolveWorktreePath as s, compareOptimizationMethods as sa, campaignMeanComposite as si, neutralizeText as sn, surfaceNode as so, CrossSurfaceComponentEvidence as sr, campaignScenarioIdentity as ss, CreateProfileMatrixPlanOptions as st, CodeSurfaceVerification as t, OptimizationMethodProvenance as ta, provenanceRecordPath as ti, TaskGold as tn, SearchRecorderOptions as to, CrossSurfaceCandidate as tr, fsCampaignStorage as ts, DiscriminationScore as tt, AutoevalsScorerLike as u, combineComparisonCosts as ua, DefaultProductionGateCheck as ui, LabeledScenarioStoreError as un, SearchHistoryAuditSummary as uo, CrossSurfaceEligibility as ur, ProfileMatrixCoverage as ut, renderSurfaceDiff as v, ExternalOptimizerObservationArtifact as va, RedTeamReport as vi, ExternalSearchOptimizer as vn, createSearchHistoryReceipt as vo, CrossSurfaceNaiveStackSelection as vr, PlaybackContext as vt, acquireSingleRunLock as w, ReferenceEquivalenceJudgeInput as wa, CanaryKind as wi, recordGepaSearch as wn, SearchLedger as wo, CrossSurfaceRelativeCost as wr, UserStory as wt, surfaceHash as x, readExternalOptimizerObservationArtifact as xa, scoreRedTeamOutput as xi, externalSurface as xn, verifySearchHistoryReceipt as xo, CrossSurfacePairIncompatibilityReason as xr, ScoreboardRenderOptions as xt, surfaceContentHash as y, ExternalOptimizerObservationSummary as ya, redTeamDataset as yi, GepaEvaluationImport as yn, searchHistoryCoverageRow as yo, CrossSurfacePairCompatibility as yr, PlaybackDriver as yt, SearchProposedChild as z, runImprovementLoop as za, gepaOptimizationMethod as zi, planEvalFixtureRun as zn, CampaignCellFailureReceipt as zo, uniform as zr, BackendIntegrityReport as zt };
|
|
4270
|
-
//# sourceMappingURL=index-
|
|
3334
|
+
export { UserStoryVerdict as $, PremeasuredOptimizationBaseline as $i, BuildLoopProvenanceArgs as $n, OpenAICompatibleOptimizerModel as $r, recordSkillOptSearch as $t, ScenarioSignal as A, campaignSplitDigest as Aa, ExternalOptimizerExecutionSummary as Ai, CrossSurfaceEligibility as An, RedTeamFinding as Ar, completionVerdict as At, ProfileMatrixRow as B, ReferenceEquivalenceScenario as Bi, CrossSurfacePairEvidence as Bn, runCanaries as Br, RolloutArgumentDiffOptions as Bt, SingleRunLockOptions as C, buildCellSchedule as Ca, combineComparisonCosts as Ci, CrossSurfaceCandidateEvidence as Cn, DefaultProductionGateCheck as Cr, CorrectnessChecker as Ct, searchProposalExecution as D, assertCampaignDesign as Da, GepaCandidatePopulationSummary as Di, CrossSurfaceComponentEvidence as Dn, DEFAULT_RED_TEAM_CORPUS as Dr, RequirementCheck as Dt, searchModelIdentity as E, FinalEvidenceUse as Ea, GepaCandidatePopulationCandidate as Ei, CrossSurfaceComponent as En, defaultProductionGate as Er, ProducedState as Et, CreateProfileMatrixPlanOptions as F, REFERENCE_EQUIVALENCE_INPUT_LIMITS as Fi, CrossSurfaceInteractionPath as Fn, CanaryAlert as Fr, neutralizeText as Ft, runProfileMatrixSegment as G, llmJudge as Gi, CrossSurfaceSelectionPolicy as Gn, skillOptOptimizationMethod as Gr, rolloutArgumentDiff as Gt, RunProfileMatrixSegmentOptions as H, runReferenceEquivalenceJudge as Hi, CrossSurfacePairwiseEntry as Hn, SkillOptOptimizationMethodConfig as Hr, ScoredRollout as Ht, FinalizeProfileMatrixOptions as I, REFERENCE_EQUIVALENCE_JUDGE_VERSION as Ii, CrossSurfaceInteractionReport as In, CanaryEvaluation as Ir, FsLabeledScenarioStore as It, PlaybackStep as J, quotaExhaustedUntil as Ji, BuildTraceAnalystSurfaceDispatchOptions as Jn, GepaEngineRun as Jr, GepaPopulationImport as Jt, PlaybackContext as K, TransientFailureOptions as Ki, CrossSurfaceSelections as Kn, GepaAdaptiveEngineRun as Kr, ExternalSearchOptimizer as Kt, FinalizedProfileMatrixResult as L, ReferenceEquivalenceJudgeInput as Li, CrossSurfaceInteractionTask as Ln, CanaryKind as Lr, FsLabeledScenarioStoreOptions as Lt, selectDiscriminative as M, ExternalOptimizerObservationSummary as Mi, CrossSurfaceIneligibilityReason as Mn, redTeamDataset as Mr, verifyCompletion as Mt, resolveRunDir as N, ExternalOptimizerSubmittedCandidate as Ni, CrossSurfaceInteractionAwareSelection as Nn, redTeamReport as Nr, scopedOptimizationMethod as Nt, searchReceiptAccounting as O, assertCampaignSplitIdentity as Oa, GepaCandidateSelectionScore as Oi, CrossSurfaceCompositionStep as On, RedTeamCase as Or, SatisfiedBy as Ot, tangleTracesRoot as P, readExternalOptimizerObservationArtifact as Pi, CrossSurfaceInteractionEffect as Pn, scoreRedTeamOutput as Pr, sequentialOptimizationMethod as Pt, UserStory as Q, runImprovementLoop as Qi, traceAnalystQualityJudge as Qn, gepaOptimizationMethod as Qr, recordGepaSearch as Qt, ProfileMatrixCoverage as R, ReferenceEquivalenceJudgeOptions as Ri, CrossSurfaceNaiveStackSelection as Rn, CanaryOptions as Rr, LabeledScenarioStoreError as Rt, SingleRunLock as S, CellScheduleSlot as Sa, ComparisonCost as Si, CrossSurfaceCandidateComparison as Sn, heldOutGate as Sr, CompletionVerdict as St, campaignCellSearchResult as T, FinalEvidencePolicy as Ta, GepaCandidatePopulationArtifact as Ti, CrossSurfaceCandidateSummary as Tn, DefaultProductionRewardHackingOptions as Tr, ProducedProposal as Tt, createProfileMatrixPlan as U, LlmJudgeDimension as Ui, CrossSurfaceRankedSingle as Un, SkillOptRunnerCommand as Ur, UngroundedLiteralReport as Ut, ProfileMatrixSegmentResult as V, createReferenceEquivalenceJudge as Vi, CrossSurfacePairIncompatibilityReason as Vn, composeGate as Vr, RolloutCall as Vt, finalizeProfileMatrix as W, LlmJudgeOptions as Wi, CrossSurfaceRelativeCost as Wn, SkillOptTrainerConfig as Wr, classifyUngroundedLiterals as Wt, ScoreboardRow as X, RunImprovementLoopOptions as Xi, TraceAnalystScenario as Xn, GepaOptimizationRecipe as Xr, importExternalEvaluations as Xt, ScoreboardRenderOptions as Y, transientDispatchFailure as Yi, TraceAnalystArtifact as Yn, GepaOptimizationMethodConfig as Yr, externalSurface as Yt, ScoreboardSummary as Z, RunImprovementLoopResult as Zi, buildTraceAnalystSurfaceDispatch as Zn, GepaRunnerCommand as Zr, importGepaPopulation as Zt, componentSurfaceIdentityMaterial as _, PlanCampaignRunOptions as _a, OptimizationMethodScore as _i, CrossSurfaceAdditionRejectionReason as _n, CampaignBreakdown as _r, ProposalEventLike as _t, WorktreeAdapterError as a, SearchLedgerIntegrityError as aa, ExternalOptimizationExample as ai, EvalFixtureRunPlan as an, LoopProvenanceEvidence as ar, ProfileDispatchFn as at, surfaceDispatchRef as b, CacheRead as ba, compareOptimizationMethods as bi, CrossSurfaceBootstrapPolicy as bn, campaignMeanComposite as br, extractProducedState as bt, verifyCodeSurface as c, openAutoPr as ca, CompareOptimizationMethodsOptions as ci, LoadEvalFixtureScenariosOptions as cn, buildLoopProvenanceRecord as cr, RunProfileMatrixOptions as ct, PhoenixEvaluationResultLike as d, CampaignCellFailureReceipt as da, OptimizationMethodComposition as di, loadEvalFixture as dn, emitLoopProvenance as dr, runProfileMatrix as dt, RunOptimizationOptions as ea, OptimizerModelBudget as ei, NeutralizationGateOptions as en, EmitLoopProvenanceArgs as er, makePlaybackDispatch as et, PhoenixEvaluatorLike as f, CampaignCellRetryPolicy as fa, OptimizationMethodInput as fi, loadEvalFixtureScenarios as fn, loopProvenanceArgsFromResult as fr, BackendIntegrityError as ft, codeSurfaceIdentityMaterial as g, CampaignRunPlanCell as ga, OptimizationMethodRunOptions as gi, CrossSurfaceAdditionDecision as gn, verifyLoopProvenanceRecord as gr, ArtifactEventLike as gt, assertCodeSurfaceIdentity as h, CampaignRunPlan as ha, OptimizationMethodResult as hi, AnalyzeCrossSurfaceInteractionsInput as hn, provenanceSpansPath as hr, summarizeBackendIntegrity as ht, WorktreeAdapter as i, SearchLedgerError as ia, ExternalTextOptimizerResult as ii, EvalFixtureLoadOptions as in, LoopProvenanceCandidate as ir, userStoryScoreboard as it, scoreDiscrimination as j, campaignSplitDigestFromIdentities as ja, ExternalOptimizerObservationArtifact as ji, CrossSurfaceEvidenceBreakdown as jn, RedTeamReport as jr, createLlmCorrectnessChecker as jt, DiscriminationScore as k, campaignScenarioIdentity as ka, readGepaCandidatePopulationArtifact as ki, CrossSurfaceDistribution as kn, RedTeamCategory as kr, TaskGold as kt, AutoevalsScoreLike as l, RunEvalOptions as la, OptimizationMethod as li, PlanEvalFixtureRunOptions as ln, campaignMeasurementDigest as lr, RunProfileMatrixResult as lt, phoenixEvaluatorJudge as m, runCampaign as ma, OptimizationMethodProvenance as mi, analyzeCrossSurfaceInteractions as mn, provenanceRecordPath as mr, assertRealBackend as mt, GitWorktreeAdapterOptions as n, runOptimization as na, ExternalTextOptimizationMethodConfig as ni, EvalFixture as nn, LoopProvenanceArgsFromResult as nr, scoreUserStory as nt, gitWorktreeAdapter as o, OpenAutoPrOptions as oa, ExternalTextEvaluationResponse as oi, EvalFixtureScenario as on, LoopProvenanceOptimizationMethod as or, ProfileMatrixError as ot, autoevalsScorerJudge as p, RunCampaignOptions as pa, OptimizationMethodPairwise as pi, planEvalFixtureRun as pn, loopProvenanceSpans as pr, BackendIntegrityReport as pt, PlaybackDriver as q, isTransientTransportFailure as qi, CrossSurfaceTaskRow as qn, GepaEngineOptions as qr, GepaEvaluationImport as qt, Worktree as r, SearchLedgerConflictError as ra, ExternalTextOptimizerContext as ri, EvalFixtureFile as rn, LoopProvenanceBackend as rr, scoreboardSummary as rt, resolveWorktreePath as s, OpenAutoPrResult as sa, decodeExternalTextCandidate as si, EvalFixtureValidationMode as sn, LoopProvenanceRecord as sr, ProfileSummary as st, CodeSurfaceVerification as t, RunOptimizationResult as ta, externalTextOptimizationMethod as ti, neutralizationGate as tn, EmitLoopProvenanceResult as tr, renderScoreboardMarkdown as tt, AutoevalsScorerLike as u, runEval as ua, OptimizationMethodComparison as ui, discoverEvalFixtures as un, canonicalDigest as ur, ScenarioRollup as ut, renderSurfaceDiff as v, planCampaignRun as va, OptimizationPackageSource as vi, CrossSurfaceAttemptCompleteness as vn, CampaignComparisonUnits as vr, RuntimeEventLike as vt, acquireSingleRunLock as w, cellCachePath as wa, costFromLedgerSummary as wi, CrossSurfaceCandidateOutcome as wn, DefaultProductionGateOptions as wr, LlmCorrectnessCheckerOpts as wt, surfaceHash as x, readCachedCell as xa, optimizationTokenUsageFromSummary as xi, CrossSurfaceCandidate as xn, HeldOutGateOptions as xr, CompletionRequirement as xt, surfaceContentHash as y, CacheIssueReason as ya, OptimizationTokenUsage as yi, CrossSurfaceBestSingleSelection as yn, campaignBreakdown as yr, ToolCallEventLike as yt, ProfileMatrixPlan as z, ReferenceEquivalenceJudgeResult as zi, CrossSurfacePairCompatibility as zn, CanaryReport as zr, RolloutArgumentDiff as zt };
|
|
3335
|
+
//# sourceMappingURL=index-BhoOCduB.d.ts.map
|