@tangle-network/agent-eval 0.190.1 → 0.192.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.
Files changed (167) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/adapters/http.d.ts +2 -2
  3. package/dist/{agent-profile-DNV_U6QR.d.ts → agent-profile-DDfIjdyS.d.ts} +3 -3
  4. package/dist/{agent-profile-DNV_U6QR.d.ts.map → agent-profile-DDfIjdyS.d.ts.map} +1 -1
  5. package/dist/analyst/index.d.ts +11 -11
  6. package/dist/analyst/index.js +5 -5
  7. package/dist/{insight-report-CvPkEIcC.d.ts → analyze-runs-CPiKLJFs.d.ts} +73 -3
  8. package/dist/analyze-runs-CPiKLJFs.d.ts.map +1 -0
  9. package/dist/{attribute-vocabulary-DLJ6303h.d.ts → attribute-vocabulary-CcXqHODT.d.ts} +23 -12
  10. package/dist/attribute-vocabulary-CcXqHODT.d.ts.map +1 -0
  11. package/dist/{benchmark-command-BXIr_k8D.js → benchmark-command-C458yEFK.js} +9 -9
  12. package/dist/{benchmark-command-BXIr_k8D.js.map → benchmark-command-C458yEFK.js.map} +1 -1
  13. package/dist/benchmarks/index.d.ts +3 -3
  14. package/dist/benchmarks/index.js +3 -3
  15. package/dist/campaign/index.d.ts +6 -6
  16. package/dist/campaign/index.js +8 -7
  17. package/dist/{campaign-B7q74uIh.js → campaign-BVQVBEfH.js} +13 -325
  18. package/dist/campaign-BVQVBEfH.js.map +1 -0
  19. package/dist/{campaign-evidence-D40-LHIL.js → campaign-evidence-DcQiYhJI.js} +18 -154
  20. package/dist/campaign-evidence-DcQiYhJI.js.map +1 -0
  21. package/dist/claim-V9Zqbq0J.js +54 -0
  22. package/dist/claim-V9Zqbq0J.js.map +1 -0
  23. package/dist/cli.js +99 -2
  24. package/dist/cli.js.map +1 -1
  25. package/dist/client-wFyDisxi.d.ts +236 -0
  26. package/dist/client-wFyDisxi.d.ts.map +1 -0
  27. package/dist/contract/index.d.ts +10 -11
  28. package/dist/contract/index.js +10 -140
  29. package/dist/contract/index.js.map +1 -1
  30. package/dist/{default-registry-B5HrwrPM.d.ts → default-registry-DdqA_-_o.d.ts} +6 -6
  31. package/dist/{default-registry-B5HrwrPM.d.ts.map → default-registry-DdqA_-_o.d.ts.map} +1 -1
  32. package/dist/{default-registry-16I-Bxlf.js → default-registry-xMLX160E.js} +3 -3
  33. package/dist/{default-registry-16I-Bxlf.js.map → default-registry-xMLX160E.js.map} +1 -1
  34. package/dist/{define-agent-eval-DPizhHfy.js → define-agent-eval-DQuos3Aw.js} +30 -113
  35. package/dist/define-agent-eval-DQuos3Aw.js.map +1 -0
  36. package/dist/{define-agent-eval-DblGedQk.d.ts → define-agent-eval-DcludNJS.d.ts} +25 -38
  37. package/dist/define-agent-eval-DcludNJS.d.ts.map +1 -0
  38. package/dist/diagnosis/index.d.ts +2 -2
  39. package/dist/diagnosis/index.js +1 -1
  40. package/dist/{dspy-rlm-engine-Cs5LzJ-f.js → dspy-rlm-engine-BX34vPVY.js} +3 -3
  41. package/dist/{dspy-rlm-engine-Cs5LzJ-f.js.map → dspy-rlm-engine-BX34vPVY.js.map} +1 -1
  42. package/dist/{engine-BkLCnZQX.d.ts → engine-C1DIAEpn.d.ts} +4 -4
  43. package/dist/{engine-BkLCnZQX.d.ts.map → engine-C1DIAEpn.d.ts.map} +1 -1
  44. package/dist/evaluation.d.ts +2 -2
  45. package/dist/{exact-types-CfpP2A4Z.d.ts → exact-types-KGxBWH4b.d.ts} +2 -2
  46. package/dist/{exact-types-CfpP2A4Z.d.ts.map → exact-types-KGxBWH4b.d.ts.map} +1 -1
  47. package/dist/experiment/index.d.ts +1 -1
  48. package/dist/experiment/index.js +2 -1
  49. package/dist/experiment/index.js.map +1 -1
  50. package/dist/{external-optimizer-process-BnSmrkgL.js → external-optimizer-process-D-Sab4v3.js} +3 -62
  51. package/dist/external-optimizer-process-D-Sab4v3.js.map +1 -0
  52. package/dist/{external-optimizer-subprocess-kbcPu5po.js → external-optimizer-subprocess-kbqC-iWf.js} +65 -27
  53. package/dist/external-optimizer-subprocess-kbqC-iWf.js.map +1 -0
  54. package/dist/{extract-usage-BrQ8mCLX.js → extract-usage-DFATEuWW.js} +2 -2
  55. package/dist/{extract-usage-BrQ8mCLX.js.map → extract-usage-DFATEuWW.js.map} +1 -1
  56. package/dist/{feedback-trajectory-BYjh7NEM.d.ts → feedback-trajectory-BXCGTRkz.d.ts} +3 -3
  57. package/dist/{feedback-trajectory-BYjh7NEM.d.ts.map → feedback-trajectory-BXCGTRkz.d.ts.map} +1 -1
  58. package/dist/hosted/index.d.ts +66 -6
  59. package/dist/hosted/index.d.ts.map +1 -1
  60. package/dist/hosted/index.js +2 -2
  61. package/dist/{index-I4UJGRno.d.ts → index-Bj96W0jZ.d.ts} +28 -2
  62. package/dist/{index-I4UJGRno.d.ts.map → index-Bj96W0jZ.d.ts.map} +1 -1
  63. package/dist/{index-2e_MTznj.d.ts → index-DBoXFaz0.d.ts} +6 -6
  64. package/dist/{index-2e_MTznj.d.ts.map → index-DBoXFaz0.d.ts.map} +1 -1
  65. package/dist/{index-CWoIJHmy.d.ts → index-DNVzu9Vv.d.ts} +10 -104
  66. package/dist/index-DNVzu9Vv.d.ts.map +1 -0
  67. package/dist/{index-CJv56rhX.d.ts → index-DwQxdWve.d.ts} +351 -135
  68. package/dist/index-DwQxdWve.d.ts.map +1 -0
  69. package/dist/index.d.ts +16 -17
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +11 -11
  72. package/dist/jev.d.ts +2 -2
  73. package/dist/{journal-c3qY0SDP.js → journal-DvKCvjty.js} +94 -2
  74. package/dist/{journal-c3qY0SDP.js.map → journal-DvKCvjty.js.map} +1 -1
  75. package/dist/{kind-factory-ByZeXDqF.js → kind-factory-CdPPHtGZ.js} +10 -26
  76. package/dist/kind-factory-CdPPHtGZ.js.map +1 -0
  77. package/dist/ledger-core/index.d.ts +2 -2
  78. package/dist/ledger-core/index.js +2 -2
  79. package/dist/{llm-judge-BnxAv7ed.js → llm-judge-Z6MkTkd0.js} +1805 -2012
  80. package/dist/llm-judge-Z6MkTkd0.js.map +1 -0
  81. package/dist/{matrix-CNypzP-v.d.ts → matrix-CQMMrEQ5.d.ts} +2 -2
  82. package/dist/{matrix-CNypzP-v.d.ts.map → matrix-CQMMrEQ5.d.ts.map} +1 -1
  83. package/dist/multishot/golden/index.d.ts +1 -1
  84. package/dist/multishot/index.d.ts +2 -2
  85. package/dist/openapi.json +1 -1
  86. package/dist/{otel-spans-CQY1pNiN.js → otel-spans-DS7t1t1J.js} +8 -19
  87. package/dist/otel-spans-DS7t1t1J.js.map +1 -0
  88. package/dist/otlp-attributes-D9ptWaIJ.js +53 -0
  89. package/dist/otlp-attributes-D9ptWaIJ.js.map +1 -0
  90. package/dist/{prime-protocol-Fwvctmhm.d.ts → prime-protocol-T0i6xcAs.d.ts} +2 -2
  91. package/dist/{prime-protocol-Fwvctmhm.d.ts.map → prime-protocol-T0i6xcAs.d.ts.map} +1 -1
  92. package/dist/{produced-state-BXjXJHJT.js → produced-state-CVmCPQDJ.js} +3 -3
  93. package/dist/{produced-state-BXjXJHJT.js.map → produced-state-CVmCPQDJ.js.map} +1 -1
  94. package/dist/{registry-mAQVtuLx.d.ts → registry-Bu3lNole.d.ts} +3 -3
  95. package/dist/{registry-mAQVtuLx.d.ts.map → registry-Bu3lNole.d.ts.map} +1 -1
  96. package/dist/rl.d.ts +1 -1
  97. package/dist/rl.js +1 -1
  98. package/dist/{run-record-DnMFyg_g.js → run-record-tNnlQIrD.js} +2 -10
  99. package/dist/{run-record-DnMFyg_g.js.map → run-record-tNnlQIrD.js.map} +1 -1
  100. package/dist/search-ledger-Ck7tok0h.js +1517 -0
  101. package/dist/search-ledger-Ck7tok0h.js.map +1 -0
  102. package/dist/search-ledger-file-DY0AXX3W.js +27 -0
  103. package/dist/search-ledger-file-DY0AXX3W.js.map +1 -0
  104. package/dist/search-shipper-BG182p-U.js +781 -0
  105. package/dist/search-shipper-BG182p-U.js.map +1 -0
  106. package/dist/{semantic-concept-judge-ClB73cei.js → semantic-concept-judge-Bg-560H0.js} +4 -4
  107. package/dist/{semantic-concept-judge-ClB73cei.js.map → semantic-concept-judge-Bg-560H0.js.map} +1 -1
  108. package/dist/{skillopt-optimization-method-l2vDBtKp.js → skillopt-optimization-method-DoayuM6D.js} +6 -5
  109. package/dist/{skillopt-optimization-method-l2vDBtKp.js.map → skillopt-optimization-method-DoayuM6D.js.map} +1 -1
  110. package/dist/{statistical-heldout-CLpjYffJ.d.ts → statistical-heldout-C1Ej5Ce8.d.ts} +2 -2
  111. package/dist/{statistical-heldout-CLpjYffJ.d.ts.map → statistical-heldout-C1Ej5Ce8.d.ts.map} +1 -1
  112. package/dist/{store-otlp-84DH0OEH.js → store-otlp-BPowgPm6.js} +2 -2
  113. package/dist/{store-otlp-84DH0OEH.js.map → store-otlp-BPowgPm6.js.map} +1 -1
  114. package/dist/{store-tool-spans-DUiqyHvR.js → store-tool-spans-BcC_5ef-.js} +5 -5
  115. package/dist/{store-tool-spans-DUiqyHvR.js.map → store-tool-spans-BcC_5ef-.js.map} +1 -1
  116. package/dist/{store-tool-spans-BBXs8hDP.d.ts → store-tool-spans-ByLdU26j.d.ts} +5 -9
  117. package/dist/store-tool-spans-ByLdU26j.d.ts.map +1 -0
  118. package/dist/{task-failure-attributes-B34TiMBe.js → task-failure-attributes-CEqEfuIY.js} +17 -9
  119. package/dist/task-failure-attributes-CEqEfuIY.js.map +1 -0
  120. package/dist/{tool-groups-W7MJobX_.d.ts → tool-groups-DiBi16ns.d.ts} +3 -3
  121. package/dist/tool-groups-DiBi16ns.d.ts.map +1 -0
  122. package/dist/trace-attributes.d.ts +1 -1
  123. package/dist/trace-attributes.js +23 -75
  124. package/dist/trace-attributes.js.map +1 -1
  125. package/dist/trace-repair/index.d.ts +1 -1
  126. package/dist/traces.d.ts +11 -18
  127. package/dist/traces.d.ts.map +1 -1
  128. package/dist/traces.js +16 -16
  129. package/dist/traces.js.map +1 -1
  130. package/dist/{types-Cvqy7asY.d.ts → types-ByZslIlr.d.ts} +2 -2
  131. package/dist/{types-Cvqy7asY.d.ts.map → types-ByZslIlr.d.ts.map} +1 -1
  132. package/dist/{types-BvmWNjjs.d.ts → types-C1CAD70_.d.ts} +15 -16
  133. package/dist/types-C1CAD70_.d.ts.map +1 -0
  134. package/dist/{types-Bay1dh2o.d.ts → types-CeDfCRXp.d.ts} +11 -16
  135. package/dist/types-CeDfCRXp.d.ts.map +1 -0
  136. package/dist/wire/index.d.ts +1 -1
  137. package/docs/campaign-proposers.md +14 -16
  138. package/docs/hosted-ingest-spec.md +92 -133
  139. package/docs/public-api.md +46 -35
  140. package/docs/search-ledger.md +79 -1
  141. package/package.json +2 -2
  142. package/dist/analyze-runs-BvK4-wSs.d.ts +0 -75
  143. package/dist/analyze-runs-BvK4-wSs.d.ts.map +0 -1
  144. package/dist/attribute-vocabulary-DLJ6303h.d.ts.map +0 -1
  145. package/dist/campaign-B7q74uIh.js.map +0 -1
  146. package/dist/campaign-evidence-D40-LHIL.js.map +0 -1
  147. package/dist/client-BhEyAdfe.d.ts +0 -202
  148. package/dist/client-BhEyAdfe.d.ts.map +0 -1
  149. package/dist/client-QwJpsNYU.js +0 -655
  150. package/dist/client-QwJpsNYU.js.map +0 -1
  151. package/dist/define-agent-eval-DPizhHfy.js.map +0 -1
  152. package/dist/define-agent-eval-DblGedQk.d.ts.map +0 -1
  153. package/dist/external-optimizer-process-BnSmrkgL.js.map +0 -1
  154. package/dist/external-optimizer-subprocess-kbcPu5po.js.map +0 -1
  155. package/dist/index-CJv56rhX.d.ts.map +0 -1
  156. package/dist/index-CWoIJHmy.d.ts.map +0 -1
  157. package/dist/insight-report-CvPkEIcC.d.ts.map +0 -1
  158. package/dist/kind-factory-ByZeXDqF.js.map +0 -1
  159. package/dist/llm-judge-BnxAv7ed.js.map +0 -1
  160. package/dist/otel-spans-CQY1pNiN.js.map +0 -1
  161. package/dist/otlp-attributes-BpC_blLF.js +0 -83
  162. package/dist/otlp-attributes-BpC_blLF.js.map +0 -1
  163. package/dist/store-tool-spans-BBXs8hDP.d.ts.map +0 -1
  164. package/dist/task-failure-attributes-B34TiMBe.js.map +0 -1
  165. package/dist/tool-groups-W7MJobX_.d.ts.map +0 -1
  166. package/dist/types-Bay1dh2o.d.ts.map +0 -1
  167. package/dist/types-BvmWNjjs.d.ts.map +0 -1
@@ -1,21 +1,21 @@
1
1
  import { c as ValidationError, t as AgentEvalError } from "./errors-DEE6u6ot.js";
2
2
  import { T as RunPaidCallInput, c as CostLedgerHandle, f as CostLedgerSummary, m as CostReceipt, o as CostLedger, p as CostProvenance } from "./cost-ledger-DbQdN3nO.js";
3
3
  import { a as RunRecord, c as RunSplitTag, s as RunSearchCoordinates } from "./run-record-DF-fuu31.js";
4
- import { D as TraceAnalysisStore, _ as ProposalFinding, f as AnalystUsageReceipt, i as AnalystFinding, l as AnalystRunResult } from "./types-Bay1dh2o.js";
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-CLpjYffJ.js";
6
+ import { Et as FinalEvidenceLedger, P as PairedArmsComparison, ft as EvidenceReceipt, it as CampaignEvidenceContext, kt as FinalEvidenceRecord } from "./statistical-heldout-C1Ej5Ce8.js";
7
7
  import { a as PairedPromotionDecision, d as PairedBootstrapResult } from "./paired-promotion-decision-DPKz8ZnF.js";
8
- import { A as LabeledScenarioWrite, B as ScoredSurfaceOutcome, 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-BvmWNjjs.js";
8
+ 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-C1CAD70_.js";
9
9
  import { n as EvaluationUnitSummary, t as EvaluationClaim } from "./claim-BGOUqoMq.js";
10
10
  import { r as LedgerHash } from "./canonical-CFpojCN5.js";
11
- import { _ as LedgerTrustedHead, p as LedgerProjector, v as LedgerTrustedHeadRemoval } from "./index-I4UJGRno.js";
12
- import { A as SearchNodeDecision, B as SearchReservation, C as SearchExecutionIdentity, D as SearchLedgerHash, E as SearchLedgerEvent, F as SearchOperationKind, H as SearchSplit, I as SearchOperationRecordedEvent, J as SearchTask, K as SearchSurfaceEvidence, N as SearchNodeStatus, O as SearchModelIdentity, P as SearchOpenedEvent, Q as SearchUnknown, R as SearchProposer, T as SearchLedgerEntry, V as SearchSourceRef, Y as SearchTaskOutcome, Z as SearchTraceRef, _ as SearchClosedEvent, a as SearchAttemptAccounting, b as SearchEdgeOperator, d as SearchCellCancelledEvent, g as SearchCloseReason, i as SearchArtifactRef, j as SearchNodeRef, l as SearchCandidateSurface, m as SearchClaim, o as SearchAudit, p as SearchCellStage, t as NodeEstimate, x as SearchEdgeRecordedEvent, y as SearchEdgeAttribution } from "./search-ledger-types-C9anU2DX.js";
11
+ import { b as LedgerTrustedHeadRemoval, f as LedgerLineContext, h as LedgerTextStore, p as LedgerProjector, y as LedgerTrustedHead } from "./index-Bj96W0jZ.js";
12
+ import { A as SearchNodeDecision, B as SearchReservation, C as SearchExecutionIdentity, D as SearchLedgerHash, E as SearchLedgerEvent, F as SearchOperationKind, H as SearchSplit, I as SearchOperationRecordedEvent, J as SearchTask, K as SearchSurfaceEvidence, N as SearchNodeStatus, O as SearchModelIdentity, P as SearchOpenedEvent, Q as SearchUnknown, R as SearchProposer, T as SearchLedgerEntry, V as SearchSourceRef, Y as SearchTaskOutcome, Z as SearchTraceRef, _ as SearchClosedEvent, a as SearchAttemptAccounting, b as SearchEdgeOperator, d as SearchCellCancelledEvent, g as SearchCloseReason, i as SearchArtifactRef, j as SearchNodeRef, l as SearchCandidateSurface, m as SearchClaim, o as SearchAudit, p as SearchCellStage, t as NodeEstimate, x as SearchEdgeRecordedEvent, y as SearchEdgeAttribution, z as SearchProposerKind } from "./search-ledger-types-C9anU2DX.js";
13
13
  import { i as RolloutSearchLineage } from "./mint-C9Lojt1V.js";
14
- 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-DNV_U6QR.js";
14
+ 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";
15
15
  import { r as DatasetScenario, t as Dataset } from "./dataset-DQqhOCPt.js";
16
16
  import { a as CheckerIdentity, n as VerdictCertification, t as DefaultVerdict, x as VerificationStrategySource } from "./verdict-E4eRNf7-.js";
17
17
  import { t as DetectRewardHackingInput } from "./reward-hacking-Cyk-QHk9.js";
18
- import { g as TraceSpanEvent, t as HostedClient } from "./client-BhEyAdfe.js";
18
+ import { p as TraceSpanEvent, t as HostedClient } from "./client-wFyDisxi.js";
19
19
  import { AgentProfile } from "@tangle-network/agent-interface";
20
20
  import { z } from "zod";
21
21
  //#region src/campaign/coverage.d.ts
@@ -59,6 +59,10 @@ interface FinalEvidenceUse {
59
59
  * so the same `join(...)`-built paths work unchanged across both adapters.
60
60
  */
61
61
  interface CampaignStorage {
62
+ /** `filesystem` for the Node filesystem, whose paths durable journals such
63
+ * as the search ledger may open directly; any other storage keeps those
64
+ * journals in itself. */
65
+ readonly kind?: 'filesystem' | 'memory';
62
66
  /** Ensure a directory exists (recursive). No-op for in-memory. */
63
67
  ensureDir(dir: string): void;
64
68
  /** Does this path exist (as a written file or an ensured dir)? */
@@ -393,40 +397,6 @@ interface OpenAutoPrResult {
393
397
  */
394
398
  declare function openAutoPr<TArtifact, TScenario extends Scenario>(options: OpenAutoPrOptions<TArtifact, TScenario>): OpenAutoPrResult;
395
399
  //#endregion
396
- //#region src/campaign/parent-selection.d.ts
397
- /** Search state supplied to one parent-selection call. */
398
- interface ParentSelectionContext {
399
- /** Non-dominated scored surfaces across the whole run so far, including the
400
- * baseline (`generation: -1`). Never empty. */
401
- readonly frontier: ReadonlyArray<ParetoParent>;
402
- /** Measured result of the global incumbent, the promotion bar. Under the
403
- * default `selectionRankKey` the incumbent is always on `frontier`. */
404
- readonly incumbent: ScoredSurfaceOutcome;
405
- /** Every completed generation so far. */
406
- readonly history: ReadonlyArray<GenerationRecord>;
407
- /** Index of the generation about to propose. */
408
- readonly generation: number;
409
- }
410
- /** Chooses the surface the next generation mutates. Returns one frontier
411
- * parent; `runOptimization` refuses a parent it has not measured to
412
- * completion or whose surface does not match its `surfaceHash`. */
413
- type ParentSelector = (ctx: ParentSelectionContext) => ParetoParent;
414
- interface CrowdedFrontierParentOptions {
415
- /** Integer seed for the per-generation draw. The same seed, frontier, and
416
- * generation index select the same parent. */
417
- seed: number;
418
- }
419
- /**
420
- * NSGA-II crowded tournament selection over the frontier. Each generation
421
- * draws two distinct frontier members with a PRNG seeded from `seed` and the
422
- * generation index, and keeps the one with the larger crowding distance (more
423
- * isolated on the frontier). Boundary parents carry infinite distance, so a
424
- * boundary parent always beats an interior one. A tie on distance falls back
425
- * to the higher mean composite, then to the smaller surface hash. A frontier
426
- * of one member returns that member.
427
- */
428
- declare function crowdedFrontierParent(options: CrowdedFrontierParentOptions): ParentSelector;
429
- //#endregion
430
400
  //#region src/campaign/search-ledger-errors.d.ts
431
401
  /** Base error for invalid search-ledger input or operations. */
432
402
  declare class SearchLedgerError extends ValidationError {}
@@ -535,6 +505,10 @@ interface SearchOperation {
535
505
  operationKind: SearchOperationKind;
536
506
  reservation: SearchReservation | null;
537
507
  recorded: boolean;
508
+ /** The recorded outcome; null until the operation is recorded. */
509
+ outcome: SearchOperationRecordedEvent['outcome']['status'] | null;
510
+ /** Artifacts the recorded event bound, for example a proposal's output. */
511
+ artifacts: readonly SearchArtifactRef[];
538
512
  spentUsd: number;
539
513
  }
540
514
  interface SearchCompletion {
@@ -594,6 +568,12 @@ declare class SearchState implements LedgerProjector<SearchLedgerEntry, SearchSt
594
568
  * reserve and the new hold stay within the cap. A claim cell draws on the
595
569
  * claim reserve instead of adding to it. */
596
570
  private admit;
571
+ /** @internal The largest hold a new non-claim cell or operation may take,
572
+ * and the claim reserve still unspent. */
573
+ readBudget(): {
574
+ headroomUsd: number | null;
575
+ claimReserveUsd: number;
576
+ };
597
577
  /** @internal */
598
578
  readHeader(): SearchOpenedEvent | null;
599
579
  /** @internal */
@@ -645,6 +625,16 @@ declare class SearchStateView {
645
625
  readonly lastOccurredAt: string | null;
646
626
  readonly audit: SearchAudit;
647
627
  readonly completion: SearchCompletion;
628
+ /**
629
+ * The admission rule's room: `headroomUsd` is the largest reservation a new
630
+ * non-claim cell or operation may hold (committed spend, open holds and the
631
+ * unspent claim reserve all count against the cap), or null when the search
632
+ * declares no cap. `claimReserveUsd` is what claim cells may still draw.
633
+ */
634
+ readonly budget: {
635
+ headroomUsd: number | null;
636
+ claimReserveUsd: number;
637
+ };
648
638
  private readonly state;
649
639
  private readonly version;
650
640
  constructor(state: SearchState, version: number);
@@ -698,6 +688,13 @@ interface OpenSearchLedgerOptions {
698
688
  path: string;
699
689
  searchId: string;
700
690
  trustedHead?: SearchLedgerTrustedHeadMode;
691
+ /**
692
+ * Keep the ledger's text in this in-process store instead of a file, for a
693
+ * run without a filesystem (an in-memory `CampaignStorage`, keyed by `path`).
694
+ * The chain, parse and state rules are the file ledger's; there is no lock,
695
+ * fsync or trusted head, and the ledger lives as long as the store.
696
+ */
697
+ store?: LedgerTextStore;
701
698
  }
702
699
  interface SearchLedgerAppendResult {
703
700
  entry: SearchLedgerEntry;
@@ -727,6 +724,14 @@ declare function openSearchLedger(options: OpenSearchLedgerOptions): SearchLedge
727
724
  /** Verify and project immutable search-ledger JSONL through the same codec as
728
725
  * `FileSearchLedger`. */
729
726
  declare function replaySearchLedgerText(text: string, searchId: string, source: string): SearchStateView;
727
+ /**
728
+ * Verify one stored ledger line in isolation: the schema tag, the entry and
729
+ * event schemas, canonical bytes, the entry's own hash, and its search. The
730
+ * chain (sequence and previous hash) and the state machine are the caller's,
731
+ * because they need the lines before this one. An ingest server runs this on
732
+ * every received line, so it hashes exactly the bytes the producer hashed.
733
+ */
734
+ declare function parseSearchLedgerLine(line: string, searchId: string, context: LedgerLineContext): SearchLedgerEntry;
730
735
  /** Append-only file-backed search ledger with idempotent writes. */
731
736
  declare class FileSearchLedger implements SearchLedger {
732
737
  readonly path: string;
@@ -958,6 +963,12 @@ declare class SearchRecorder {
958
963
  state(): Promise<SearchStateView>;
959
964
  /** Store `body` as a canonical JSON blob and return its content address. */
960
965
  blob(role: string, body: unknown): SearchArtifactRef;
966
+ /**
967
+ * Read back a blob this recorder stored, by its content address. The bytes
968
+ * must hash to the reference's digest and length, so a resumed search reads
969
+ * exactly what the ledger bound.
970
+ */
971
+ readBlob(ref: SearchArtifactRef): unknown;
961
972
  /** Register a node, or return the existing node with the same artifact digest. */
962
973
  registerNode(input: RegisterSearchNodeInput): Promise<{
963
974
  nodeId: string;
@@ -1009,6 +1020,74 @@ declare function surfaceNode(recorder: SearchRecorder, surface: MutableSurface):
1009
1020
  /** A parent-to-child diff of two mutable surfaces, stored as a blob. */
1010
1021
  declare function surfaceDiff(recorder: SearchRecorder, parent: MutableSurface, child: MutableSurface): SearchArtifactRef;
1011
1022
  //#endregion
1023
+ //#region src/campaign/search-policy.d.ts
1024
+ /** What a policy may read about a search. */
1025
+ interface SearchPolicyView {
1026
+ readonly searchId: string;
1027
+ readonly seed: number;
1028
+ readonly direction: 'maximize' | 'minimize';
1029
+ /** The split nodes are ranked on: selection, or train when the search
1030
+ * declares no selection split (the proposer's own feedback then ranks). */
1031
+ readonly split: 'selection' | 'train';
1032
+ readonly rootNodeId: string;
1033
+ /** Proposals completed so far. One an interrupted process lost does not count. */
1034
+ readonly expansions: number;
1035
+ /** Admitted nodes whose screen finished, in registration order, root first. */
1036
+ readonly screened: readonly string[];
1037
+ /** Admitted nodes still being screened. */
1038
+ readonly screening: number;
1039
+ /** True when the node scored every unit its screen allocated on `split`.
1040
+ * A node that dodged a unit (an unscored cell) cannot lead. */
1041
+ complete(nodeId: string): boolean;
1042
+ /** Per-unit means on `split`, in unitId order. */
1043
+ unitScores(nodeId: string): readonly SearchUnitScore[];
1044
+ /** The paired contrast of `nodeId` against `against` on `split`. */
1045
+ estimate(nodeId: string, against: string): NodeEstimate;
1046
+ }
1047
+ /** One expansion: the parents a proposer derives a child from, and how. */
1048
+ interface SearchExpansion {
1049
+ parents: string[];
1050
+ operator: Exclude<SearchEdgeOperator, 'seed' | 'derive'>;
1051
+ /** Why these parents: recorded on every edge the expansion produces. */
1052
+ selection: {
1053
+ rule: string;
1054
+ evidence: Record<string, number>;
1055
+ };
1056
+ }
1057
+ interface SearchPolicy {
1058
+ /** Recorded as the search's `policy.expansion`. */
1059
+ readonly name: string;
1060
+ /** Stop after this many expansions without a new leader. */
1061
+ readonly patience?: number;
1062
+ /** The next expansion, or null to wait for more evidence. */
1063
+ expand(view: SearchPolicyView): SearchExpansion | null;
1064
+ /** The node the search keeps if it stopped now. */
1065
+ leader(view: SearchPolicyView): string;
1066
+ }
1067
+ /**
1068
+ * The hill climb. The leader starts at the root; a screened node that scored
1069
+ * every unit of its screen takes the lead when its mean on the units it shares
1070
+ * with the leader beats the leader's mean on those units. Nodes are taken in
1071
+ * registration order, so the leader is a pure function of the ledger. The
1072
+ * policy expands the leader, and only once every earlier child is screened,
1073
+ * so each proposal sees every result before it.
1074
+ */
1075
+ declare function incumbent(options?: {
1076
+ patience?: number;
1077
+ }): SearchPolicy;
1078
+ /**
1079
+ * The hill climb with a different parent: each expansion draws two distinct
1080
+ * members of the Pareto frontier (per-unit means on the policy split) with a
1081
+ * PRNG seeded from `seed` and the expansion index, and keeps the one with the
1082
+ * larger crowding distance, the more isolated. Boundary members carry infinite
1083
+ * distance. Ties fall to the higher mean, then to the earlier node. The leader
1084
+ * rule is the incumbent's: a frontier parent explores, and only a node that
1085
+ * beats the leader leads.
1086
+ */
1087
+ declare function crowdedFrontierParent(options: {
1088
+ seed: number;
1089
+ }): SearchPolicy;
1090
+ //#endregion
1012
1091
  //#region src/campaign/presets/run-optimization.d.ts
1013
1092
  interface PremeasuredOptimizationBaseline<TArtifact, TScenario extends Scenario> {
1014
1093
  /** Hash of the exact surface that produced `campaign`. */
@@ -1022,36 +1101,34 @@ interface RunOptimizationBaseOptions<TScenario extends Scenario, TArtifact> exte
1022
1101
  /**
1023
1102
  * Complete prior measurement of `baselineSurface`. When present,
1024
1103
  * `runOptimization` validates its surface, scenario split, seed, reps, and
1025
- * normal campaign coverage, then skips the baseline campaign entirely — no
1026
- * dispatch or resumability-cache lookup. Candidate campaigns still run
1027
- * normally. Prior spend remains in the imported campaign aggregates and is
1028
- * not added again to this continuation's CostLedger.
1104
+ * normal campaign coverage, then records its cells as the root's instead of
1105
+ * dispatching them. Prior spend stays in the imported campaign aggregates and
1106
+ * is not added again to this run's CostLedger.
1029
1107
  */
1030
1108
  premeasuredBaseline?: PremeasuredOptimizationBaseline<TArtifact, TScenario>;
1031
- /** Dispatcher that takes the CURRENT surface + scenario → artifact. */
1109
+ /** Dispatcher that takes a surface and a scenario to an artifact. */
1032
1110
  dispatchWithSurface: (surface: MutableSurface, scenario: TScenario, ctx: Parameters<RunCampaignOptions<TScenario, TArtifact>['dispatch']>[1]) => Promise<TArtifact>;
1033
1111
  /** The candidate-generation strategy. */
1034
1112
  proposer: SurfaceProposer<ProposalFinding>;
1113
+ /** Candidates asked of each proposal. */
1035
1114
  populationSize: number;
1115
+ /** Proposals the search may make. */
1036
1116
  maxGenerations: number;
1037
- /** Candidate campaigns run at once. Default 1. Total concurrent cells are
1038
- * bounded by candidateConcurrency * maxConcurrency. */
1117
+ /** Scales the run's cell lanes: at most `candidateConcurrency *
1118
+ * maxConcurrency` cells run at once. Default 1. */
1039
1119
  candidateConcurrency?: number;
1040
- /** DEPTH knob forwarded to the proposer's `propose()` — max iterations the
1120
+ /** DEPTH knob forwarded to the proposer's `propose()`: max iterations the
1041
1121
  * agentic generator may take per candidate. */
1042
1122
  maxImprovementShots?: number;
1043
1123
  /** Search or observed-production findings forwarded to candidate generation. */
1044
1124
  findings?: ReadonlyArray<ProposalFinding>;
1045
- /** Per-generation findings producer. Runs once on the BASELINE campaign
1046
- * (as `generation: -1`, the baseline convention) before generation 0
1047
- * proposes — so even a single-generation run proposes with trace context —
1048
- * and then after each generation's candidates are scored with that
1049
- * generation's results; whatever it returns REPLACES `ctx.findings` for the
1050
- * NEXT `propose()`, so the diagnosis is refreshed each round instead
1051
- * of being a static one-shot. Generic by design: the substrate does not
1052
- * import an analyst — the consumer plugs its trace-analyst registry / HALO
1053
- * here (reading the per-candidate `runDir` traces). When absent, findings
1054
- * stay the static `opts.findings`. */
1125
+ /** Findings producer. Before each proposal it runs on the previous
1126
+ * generation's measured candidates (the baseline, as `generation: -1`,
1127
+ * before the first), and what it returns REPLACES `ctx.findings` for that
1128
+ * proposal. The substrate does not import an analyst: the consumer plugs its
1129
+ * trace-analyst registry here, reading the per-candidate `runDir` traces.
1130
+ * When absent, findings stay the static `opts.findings`. Its spend is
1131
+ * booked to the proposal's operation. */
1055
1132
  analyzeGeneration?: (input: {
1056
1133
  generation: number;
1057
1134
  runDir: string;
@@ -1065,53 +1142,19 @@ interface RunOptimizationBaseOptions<TScenario extends Scenario, TArtifact> exte
1065
1142
  costLedger?: CostLedgerHandle;
1066
1143
  costPhase?: string;
1067
1144
  }) => Promise<ReadonlyArray<ProposalFinding>>;
1068
- /**
1069
- * Optional override for how the WINNER is selected among coverage-complete
1070
- * candidates (and how the incumbent bar is set). Returns a lexicographic rank
1071
- * key — each element higher-is-better; candidates are ranked by descending key
1072
- * (`compareRankKeys`) and the top must STRICTLY beat the incumbent's key to
1073
- * promote. Defaults to `[campaignMeanComposite(campaign)]`, i.e. the historical
1074
- * scalar-mean ranking (single-element key ⇒ identical behavior).
1075
- *
1076
- * A binary-with-replicates consumer (e.g. swe-arena, whose ship-gate counts an
1077
- * instance resolved only when EVERY replicate resolved) passes a fail-closed
1078
- * key built from the SAME reduction its gate uses, so winner-selection and the
1079
- * ship-gate rank on the identical metric and can never invert — the selector
1080
- * cannot promote a flaky per-cell-mean candidate the gate would reject over a
1081
- * fail-closed candidate the gate would accept. Only the winner CHOICE changes;
1082
- * the descriptive `composite` (mean) on every record and the Pareto objective
1083
- * vectors are untouched, so proposer diversity and reporting are unaffected.
1084
- */
1085
- selectionRankKey?: (campaign: CampaignResult<TArtifact, TScenario>) => number[];
1086
- /**
1087
- * Optional policy for which scored surface the next generation MUTATES.
1088
- * Absent, every generation mutates the global incumbent, so the recorded
1089
- * `parentSurfaceHash` lineage is a chain. Present, the selector receives the
1090
- * Pareto frontier so far, the measured incumbent, the generation history,
1091
- * and the generation index, and returns one frontier parent; the loop hands
1092
- * that parent to `propose()` as `currentSurface` + `parentOutcome` and
1093
- * records it as every candidate's `parentSurfaceHash`. Promotion is
1094
- * unchanged: a candidate still has to beat the incumbent. The loop refuses
1095
- * a parent it has not measured to completion. `crowdedFrontierParent` is
1096
- * the provided seeded policy.
1097
- */
1098
- selectParent?: ParentSelector;
1099
- /**
1100
- * Record this search into a search ledger as it runs: the baseline as the
1101
- * seeded root and its cells, each generation's candidate-generation
1102
- * operation, each candidate as a node with an explicit edge, rationale and
1103
- * diff from the parent it mutated, each designed cell when its campaign
1104
- * starts and settles, one decision per node, and the close. Returns a
1105
- * bounded `searchHistory` receipt over the exact ledger bytes.
1106
- *
1107
- * `identity` declares what the ledger requires and a campaign cannot infer:
1108
- * immutable revisions for the agent, proposer, and search implementations,
1109
- * and the model the agent runs when a cell reports none.
1110
- */
1145
+ /** Which node each proposal extends, and which node the run keeps. Default
1146
+ * `incumbent()`: the hill climb. `crowdedFrontierParent({ seed })` draws
1147
+ * the parent from the Pareto frontier instead. */
1148
+ policy?: SearchPolicy;
1149
+ /** Where the search ledger goes and the identities it records. Default: a
1150
+ * ledger at `<runDir>/search/ledger.jsonl`, held in `storage` unless that is
1151
+ * the filesystem, whose identities are the dispatch ref's and proposer's
1152
+ * digests. */
1111
1153
  searchLedger?: SearchLedgerBinding;
1112
1154
  }
1113
1155
  type RunOptimizationOptions<TScenario extends Scenario, TArtifact> = RunOptimizationBaseOptions<TScenario, TArtifact>;
1114
1156
  interface RunOptimizationResult<TArtifact, TScenario extends Scenario> {
1157
+ /** One entry per proposal, with the candidates it registered. */
1115
1158
  generations: Array<{
1116
1159
  record: GenerationRecord;
1117
1160
  surfaces: Array<{
@@ -1124,31 +1167,20 @@ interface RunOptimizationResult<TArtifact, TScenario extends Scenario> {
1124
1167
  baselineSurface: MutableSurface;
1125
1168
  winnerSurface: MutableSurface;
1126
1169
  winnerSurfaceHash: string;
1127
- /** Proposer label for the promoted surface. Present when the winning
1128
- * candidate came from a `ProposedCandidate` (a reflective proposer);
1129
- * absent when the winner is the baseline or a bare-surface mutator. */
1170
+ /** Proposer label for the kept surface; absent when the winner is the baseline. */
1130
1171
  winnerLabel?: string;
1131
- /** Proposer rationale for the promoted surface — the "because Z" that
1132
- * motivated the winning change. Survives to `SelfImproveResult` and the
1133
- * emitted provenance record. Absent when the winner is the baseline. */
1172
+ /** Proposer rationale for the kept surface, as stored: redacted with the
1173
+ * share profile. Absent when the winner is the baseline. */
1134
1174
  winnerRationale?: string;
1135
1175
  baselineCampaign: CampaignResult<TArtifact, TScenario>;
1136
1176
  /** Run-wide spend, including agents, proposers, analysts, and judges. */
1137
1177
  cost: CostLedgerSummary;
1138
- /** Bounded proof envelope over the canonical search ledger. Present only
1139
- * when `searchLedger` was supplied. `complete` is false when the search was
1140
- * interrupted or a candidate left a designed cell unscored. */
1141
- searchHistory?: SearchHistoryReceipt;
1142
- /** The GEPA Pareto frontier across every scored surface (baseline + all
1143
- * generations) by per-scenario objective vector — the non-dominated set.
1144
- * Each generation's `propose()` received the frontier-so-far as
1145
- * `ctx.paretoParents`; this is the final frontier. A surface here that is
1146
- * NOT the winner is uniquely best on some scenario the winner loses on. */
1178
+ /** Bounded proof envelope over the search ledger. */
1179
+ searchHistory: SearchHistoryReceipt;
1180
+ /** The non-dominated set of measured surfaces by per-scenario composite. */
1147
1181
  paretoFrontier: ParetoParent[];
1148
1182
  }
1149
- /**
1150
- * Improvement loop body: N generations of propose → campaign → rank, maintaining a Pareto frontier and one global incumbent across generations. The parent each generation mutates is the incumbent unless `selectParent` draws it from the frontier.
1151
- */
1183
+ /** Improve a surface as a search on the kernel; see the module comment. */
1152
1184
  declare function runOptimization<TScenario extends Scenario, TArtifact>(opts: RunOptimizationOptions<TScenario, TArtifact>): Promise<RunOptimizationResult<TArtifact, TScenario>>;
1153
1185
  //#endregion
1154
1186
  //#region src/campaign/presets/run-improvement-loop.d.ts
@@ -2285,10 +2317,6 @@ interface CampaignComparisonUnits {
2285
2317
  * Partial judge results remain on their cells but never enter this value.
2286
2318
  * A campaign with no complete score has no numeric mean and fails loudly. */
2287
2319
  declare function campaignMeanComposite<TArtifact, TScenario extends Scenario>(campaign: CampaignResult<TArtifact, TScenario>): number;
2288
- /** Compare fixed-length lexicographic rank keys where each element is higher-is-better.
2289
- * Returns a positive number when `a` ranks above `b`, negative when below, and
2290
- * zero when equal. */
2291
- declare function compareRankKeys(a: readonly number[], b: readonly number[]): number;
2292
2320
  interface CampaignBreakdown {
2293
2321
  /** Mean score per judge dimension across all cells. */
2294
2322
  dimensions: Record<string, number>;
@@ -2326,12 +2354,6 @@ interface LoopProvenanceCandidate {
2326
2354
  * `GenerationCandidate.attribution`. Opaque here; the producer's schema tag
2327
2355
  * governs interpretation. */
2328
2356
  attribution?: Readonly<Record<string, unknown>>;
2329
- /** Exact complete incumbent this candidate mutated. */
2330
- parentSurfaceHash: string;
2331
- /** Search-split composite of the exact parent. */
2332
- parentComposite: number;
2333
- /** Search-split composite change relative to the exact parent. */
2334
- observedDeltaFromParent?: number;
2335
2357
  /** Whether the candidate completed every designed cell and could be selected. */
2336
2358
  eligibleForPromotion: boolean;
2337
2359
  /** Designed-denominator receipt retained even for incomplete candidates. */
@@ -2378,9 +2400,8 @@ interface LoopProvenanceOptimizationMethod {
2378
2400
  provenance?: OptimizationMethodProvenance;
2379
2401
  }
2380
2402
  /**
2381
- * The durable provenance record. Aligns to the hosted `EvalRunEvent` path but
2382
- * ADDS the rationale + the explicit baseline→candidate diff (both omitted from
2383
- * the bare hosted event) + backend provenance.
2403
+ * The durable provenance record: the baseline and winner measurements, the
2404
+ * rationale, the explicit baseline→candidate diff, and backend provenance.
2384
2405
  */
2385
2406
  interface LoopProvenanceRecord {
2386
2407
  schema: 'tangle.loop-provenance';
@@ -2539,6 +2560,33 @@ interface EmitLoopProvenanceArgs<TArtifact, TScenario extends Scenario> extends
2539
2560
  */
2540
2561
  declare function emitLoopProvenance<TArtifact, TScenario extends Scenario>(args: EmitLoopProvenanceArgs<TArtifact, TScenario>): Promise<EmitLoopProvenanceResult>;
2541
2562
  //#endregion
2563
+ //#region src/campaign/allocation.d.ts
2564
+ /** One cell an allocator wants for a node. */
2565
+ interface SearchCellPlan {
2566
+ taskId: string;
2567
+ split: SearchSplit;
2568
+ rep: number;
2569
+ stage: SearchCellStage;
2570
+ }
2571
+ interface SearchAllocator {
2572
+ /** Recorded as the search's `policy.allocation`. */
2573
+ readonly name: string;
2574
+ /** Every cell the node needs now. The kernel allocates the ones missing. */
2575
+ plan(state: SearchStateView, nodeId: string): SearchCellPlan[];
2576
+ /** Cells a newly admitted node's screen allocates, so the kernel can price an
2577
+ * expansion against the budget before the proposer runs. */
2578
+ screenSize(state: SearchStateView): number;
2579
+ }
2580
+ /**
2581
+ * Every node gets every train and selection task at every repeat: the root as
2582
+ * `root` cells, every other node as `train` cells (the proposer's feedback) and
2583
+ * `screen` cells (the policy's private evidence). This is the fixed plan the
2584
+ * generation loop ran and GEPA runs.
2585
+ */
2586
+ declare function uniform(options?: {
2587
+ reps?: number;
2588
+ }): SearchAllocator;
2589
+ //#endregion
2542
2590
  //#region src/campaign/analyst-surface.d.ts
2543
2591
  interface TraceAnalystScenario extends Scenario {
2544
2592
  kind: 'trace-analyst';
@@ -3882,6 +3930,174 @@ declare function selectDiscriminative(signals: ScenarioSignal[], k: number, opts
3882
3930
  saturationCeiling?: number;
3883
3931
  }): string[];
3884
3932
  //#endregion
3933
+ //#region src/campaign/search-kernel.d.ts
3934
+ /** The kernel every `runSearch` ledger names as its search implementation. */
3935
+ declare const SEARCH_KERNEL_SOURCE: SearchSourceRef;
3936
+ /** An execution lane: a pool of slots whose cells share a cost rule. */
3937
+ interface SearchLane {
3938
+ name: string;
3939
+ /** Cells the lane runs at once. */
3940
+ capacity: number;
3941
+ /** `hard`: the lane enforces `cellUsd` as each cell's maximum. `estimate`:
3942
+ * it cannot, and the kernel holds an estimate, recording any overshoot. */
3943
+ costCap: 'hard' | 'estimate';
3944
+ /** The enforced per-cell maximum of a hard lane; the prior estimate of an
3945
+ * estimate lane until it has settled enough cells to estimate its own. */
3946
+ cellUsd: number;
3947
+ }
3948
+ /** One attempt at one cell, as the kernel hands it to an executor. */
3949
+ interface SearchCellWork<TArtifact> {
3950
+ searchId: string;
3951
+ cellId: string;
3952
+ nodeId: string;
3953
+ taskId: string;
3954
+ unitId: string;
3955
+ split: SearchSplit;
3956
+ rep: number;
3957
+ stage: SearchCellStage;
3958
+ lane: string;
3959
+ attempt: number;
3960
+ /** `cellId:attempt`: the id an executor keys the attempt's run by. */
3961
+ runId: string;
3962
+ artifact: TArtifact;
3963
+ signal: AbortSignal;
3964
+ }
3965
+ /** What an attempt produced: everything `cell-settled` records except the
3966
+ * coordinates the kernel owns. An environment fault is an `errored` outcome,
3967
+ * not a rejection; a rejection stops the search. */
3968
+ type SearchCellResult = Omit<SettleSearchCellInput, 'cellId' | 'attempt'>;
3969
+ /** The executor port: lanes, placement, running a cell, and adopting an
3970
+ * attempt an earlier kernel process started. */
3971
+ interface SearchExecutor<TArtifact> {
3972
+ lanes(): readonly SearchLane[];
3973
+ /** The lane a planned cell runs on. */
3974
+ place(cell: SearchCellPlan & {
3975
+ nodeId: string;
3976
+ }): string;
3977
+ run(work: SearchCellWork<TArtifact>): Promise<SearchCellResult>;
3978
+ /** The result of `work.runId` if the executor already has it, else null.
3979
+ * Called before the first dispatch of a cell the ledger shows unsettled when
3980
+ * the kernel starts, so a restart does not run an attempt twice. */
3981
+ adopt(work: SearchCellWork<TArtifact>): Promise<SearchCellResult | null>;
3982
+ }
3983
+ /** How a search stores, compares and restores its artifacts. */
3984
+ interface SearchArtifactCodec<TArtifact> {
3985
+ /** The artifact as a content-addressed node; stores its bytes. */
3986
+ node(recorder: SearchRecorder, artifact: TArtifact): RegisterSearchNodeInput;
3987
+ /** The parent-to-child diff, stored as a blob, or why there is none. */
3988
+ diff(recorder: SearchRecorder, parent: TArtifact, child: TArtifact): SearchArtifactRef | SearchUnknown;
3989
+ /** The artifact a node holds, read back from its stored bytes. */
3990
+ load(recorder: SearchRecorder, node: SearchNode): TArtifact;
3991
+ }
3992
+ interface SearchProposalRequest<TArtifact> {
3993
+ expansion: number;
3994
+ operationId: string;
3995
+ operator: Exclude<SearchEdgeOperator, 'seed' | 'derive'>;
3996
+ /** The parents the policy chose, primary first. */
3997
+ parents: ReadonlyArray<{
3998
+ nodeId: string;
3999
+ artifact: TArtifact;
4000
+ }>;
4001
+ /** The node the search keeps now. */
4002
+ leader: string;
4003
+ signal: AbortSignal;
4004
+ }
4005
+ /** One child a proposal returned. */
4006
+ interface SearchProposedChild<TArtifact> {
4007
+ artifact: TArtifact;
4008
+ label: string;
4009
+ /** The proposer's reason; redacted with the share profile before it is stored. */
4010
+ rationale: string;
4011
+ /** Typed JSON the proposer attaches to the child, stored with the proposal
4012
+ * and never interpreted by the kernel. */
4013
+ attribution?: Readonly<Record<string, unknown>>;
4014
+ }
4015
+ interface SearchProposalResult<TArtifact> {
4016
+ children: ReadonlyArray<SearchProposedChild<TArtifact>>;
4017
+ /** Set when the proposer judges the search converged; expansion stops. */
4018
+ stop?: string;
4019
+ /** What generated the children; default the port's `execution`. */
4020
+ execution?: SearchOperationRecordedEvent['execution'];
4021
+ accounting: SearchAttemptAccounting;
4022
+ }
4023
+ /** The proposer port: derives children from the parents the policy chose. */
4024
+ interface SearchProposerPort<TArtifact> {
4025
+ readonly name: string;
4026
+ readonly kind: SearchProposerKind;
4027
+ readonly source: SearchSourceRef;
4028
+ readonly execution: SearchOperationRecordedEvent['execution'];
4029
+ /** Prior hold for one proposal until 20 proposals have settled. Default 0. */
4030
+ readonly reservationUsd?: number;
4031
+ /** Children one proposal usually returns, to price an expansion's screens
4032
+ * before it runs. Default 1. */
4033
+ readonly childrenPerProposal?: number;
4034
+ propose(request: SearchProposalRequest<TArtifact>): Promise<SearchProposalResult<TArtifact>>;
4035
+ }
4036
+ interface RunSearchOptions<TArtifact> {
4037
+ /** An opened recorder; its header names this policy and allocator. */
4038
+ recorder: SearchRecorder;
4039
+ /** The starting artifact: the seeded root. */
4040
+ root: TArtifact;
4041
+ codec: SearchArtifactCodec<TArtifact>;
4042
+ policy: SearchPolicy;
4043
+ allocation: SearchAllocator;
4044
+ proposer: SearchProposerPort<TArtifact>;
4045
+ executor: SearchExecutor<TArtifact>;
4046
+ /** Refuse a child before it runs: the reason, or null to admit it. A
4047
+ * refused child is recorded, decided `invalid`, and never becomes a parent. */
4048
+ admit?: (artifact: TArtifact) => string | null;
4049
+ /** Stop expanding after this many proposals. */
4050
+ maxExpansions?: number;
4051
+ /** Attempts per cell for retryable environment errors. Default 3. */
4052
+ maxAttempts?: number;
4053
+ /** Aborting pauses the search: in-flight cells are aborted, what settled is
4054
+ * recorded, the ledger stays open, and the call rejects. Run the kernel on
4055
+ * the same ledger again to continue. */
4056
+ signal?: AbortSignal;
4057
+ /** Milliseconds since the epoch, for the deadline. Default `Date.now`. */
4058
+ now?: () => number;
4059
+ }
4060
+ interface SearchRunResult {
4061
+ /** The closed search. */
4062
+ state: SearchStateView;
4063
+ /** The node the policy kept, decided `selected` when it has a scored cell. */
4064
+ leader: string;
4065
+ reason: SearchCloseReason;
4066
+ }
4067
+ /** Run a search to its close, or continue one from its ledger. */
4068
+ declare function runSearch<TArtifact>(options: RunSearchOptions<TArtifact>): Promise<SearchRunResult>;
4069
+ /** The expansion index a kernel operation id encodes, or null. */
4070
+ declare function searchExpansionIndex(operationId: string): number | null;
4071
+ /** The stored output of one proposal: enough to register its children again. */
4072
+ interface SearchProposalBlob {
4073
+ kind: 'search-proposal';
4074
+ operator: SearchProposalRequest<unknown>['operator'];
4075
+ parents: string[];
4076
+ selection: {
4077
+ rule: string;
4078
+ evidence: Record<string, number>;
4079
+ };
4080
+ children: Array<{
4081
+ node: RegisterSearchNodeInput;
4082
+ diffs: Array<SearchArtifactRef | SearchUnknown>;
4083
+ label: string;
4084
+ rationale: string;
4085
+ attribution: Readonly<Record<string, unknown>> | null;
4086
+ invalid: string | null;
4087
+ }>;
4088
+ }
4089
+ /**
4090
+ * A policy's read of a search: `screened` lists the admitted nodes whose screen
4091
+ * finished, in registration order; `screening` counts the admitted nodes still
4092
+ * being screened. Nodes are ranked on the selection split, or on train when
4093
+ * the search declares no selection split. The view reads no test cell.
4094
+ */
4095
+ declare function searchPolicyView(state: SearchStateView, input: {
4096
+ screened: readonly string[];
4097
+ screening: number;
4098
+ expansions: number;
4099
+ }): SearchPolicyView;
4100
+ //#endregion
3885
4101
  //#region src/campaign/single-run-lock.d.ts
3886
4102
  /**
3887
4103
  * Single-run lock for evaluations that share one mutable environment.
@@ -4067,5 +4283,5 @@ declare function verifyCodeSurface(surface: CodeSurface, worktreeDir?: string):
4067
4283
  * identity against the checkout at `worktreeRef`. */
4068
4284
  declare function resolveWorktreePath(surface: CodeSurface, worktreeDir?: string): string;
4069
4285
  //#endregion
4070
- export { scoreboardSummary as $, searchTaskSetDigest as $a, RunImprovementLoopOptions as $i, buildTraceAnalystSurfaceDispatch as $n, GepaOptimizationRecipe as $r, EvalFixtureRunPlan as $t, tangleTracesRoot as A, searchHistoryCoverageRow as Aa, GepaCandidatePopulationSummary as Ai, CrossSurfaceCompositionStep as An, inMemoryCampaignStorage as Ao, DEFAULT_RED_TEAM_CORPUS as Ar, sequentialOptimizationMethod as At, finalizeProfileMatrix as B, validateSearchLedgerEvent as Ba, ReferenceEquivalenceJudgeInput as Bi, CrossSurfaceNaiveStackSelection as Bn, CanaryKind as Br, classifyUngroundedLiterals as Bt, SingleRunLockOptions as C, SearchHistoryCoverageRow as Ca, compareOptimizationMethods as Ci, CrossSurfaceCandidate as Cn, readCachedCell as Co, compareRankKeys as Cr, RequirementCheck as Ct, scoreDiscrimination as D, assertCompleteSearchHistory as Da, costFromLedgerSummary as Di, CrossSurfaceCandidateSummary as Dn, CampaignStorage as Do, DefaultProductionGateOptions as Dr, createLlmCorrectnessChecker as Dt, ScenarioSignal as E, SearchHistoryRequiredError as Ea, combineComparisonCosts as Ei, CrossSurfaceCandidateOutcome as En, cellCachePath as Eo, DefaultProductionGateCheck as Er, completionVerdict as Et, ProfileMatrixPlan as F, SearchLedger as Fa, ExternalOptimizerObservationSummary as Fi, CrossSurfaceInteractionAwareSelection as Fn, campaignScenarioIdentity as Fo, redTeamDataset as Fr, RolloutArgumentDiff as Ft, ScoreboardRenderOptions as G, SearchOperation as Ga, runReferenceEquivalenceJudge as Gi, CrossSurfaceRankedSingle as Gn, SkillOptOptimizationMethodConfig as Gr, importExternalEvaluations as Gt, PlaybackContext as H, SearchCompletion as Ha, ReferenceEquivalenceJudgeResult as Hi, CrossSurfacePairEvidence as Hn, CanaryReport as Hr, GepaEvaluationImport as Ht, ProfileMatrixRow as I, SearchLedgerAppendResult as Ia, ExternalOptimizerSubmittedCandidate as Ii, CrossSurfaceInteractionEffect as In, campaignSplitDigest as Io, redTeamReport as Ir, RolloutArgumentDiffOptions as It, UserStory as J, SearchState as Ja, llmJudge as Ji, CrossSurfaceSelections as Jn, skillOptOptimizationMethod as Jr, NeutralizationGateOptions as Jt, ScoreboardRow as K, SearchScoredCell as Ka, LlmJudgeDimension as Ki, CrossSurfaceRelativeCost as Kn, SkillOptRunnerCommand as Kr, importGepaPopulation as Kt, ProfileMatrixSegmentResult as L, SearchLedgerTrustedHeadMode as La, readExternalOptimizerObservationArtifact as Li, CrossSurfaceInteractionPath as Ln, campaignSplitDigestFromIdentities as Lo, scoreRedTeamOutput as Lr, RolloutCall as Lt, FinalizeProfileMatrixOptions as M, verifySearchHistoryReceipt as Ma, readGepaCandidatePopulationArtifact as Mi, CrossSurfaceEligibility as Mn, FinalEvidenceUse as Mo, RedTeamCategory as Mr, FsLabeledScenarioStore as Mt, FinalizedProfileMatrixResult as N, FileSearchLedger as Na, ExternalOptimizerExecutionSummary as Ni, CrossSurfaceEvidenceBreakdown as Nn, assertCampaignDesign as No, RedTeamFinding as Nr, FsLabeledScenarioStoreOptions as Nt, selectDiscriminative as O, assertSearchHistoryMatchesState as Oa, GepaCandidatePopulationArtifact as Oi, CrossSurfaceComponent as On, createRunCostLedger as Oo, DefaultProductionRewardHackingOptions as Or, verifyCompletion as Ot, ProfileMatrixCoverage as P, OpenSearchLedgerOptions as Pa, ExternalOptimizerObservationArtifact as Pi, CrossSurfaceIneligibilityReason as Pn, assertCampaignSplitIdentity as Po, RedTeamReport as Pr, LabeledScenarioStoreError as Pt, scoreUserStory as Q, searchNodeId as Qa, transientDispatchFailure as Qi, TraceAnalystScenario as Qn, GepaOptimizationMethodConfig as Qr, EvalFixtureLoadOptions as Qt, RunProfileMatrixSegmentOptions as R, openSearchLedger as Ra, REFERENCE_EQUIVALENCE_INPUT_LIMITS as Ri, CrossSurfaceInteractionReport as Rn, CanaryAlert as Rr, ScoredRollout as Rt, SingleRunLock as S, SearchHistoryCoverage as Sa, OptimizationTokenUsage as Si, CrossSurfaceBootstrapPolicy as Sn, CacheRead as So, campaignMeanComposite as Sr, ProducedState as St, DiscriminationScore as T, SearchHistoryReceipt as Ta, ComparisonCost as Ti, CrossSurfaceCandidateEvidence as Tn, buildCellSchedule as To, heldOutGate as Tr, TaskGold as Tt, PlaybackDriver as U, SearchDecisionRecord as Ua, ReferenceEquivalenceScenario as Ui, CrossSurfacePairIncompatibilityReason as Un, runCanaries as Ur, GepaPopulationImport as Ut, runProfileMatrixSegment as V, SearchCell as Va, ReferenceEquivalenceJudgeOptions as Vi, CrossSurfacePairCompatibility as Vn, CanaryOptions as Vr, rolloutArgumentDiff as Vt, PlaybackStep as W, SearchNode as Wa, createReferenceEquivalenceJudge as Wi, CrossSurfacePairwiseEntry as Wn, composeGate as Wr, externalSurface as Wt, makePlaybackDispatch as X, SearchUnitScore as Xa, isTransientTransportFailure as Xi, BuildTraceAnalystSurfaceDispatchOptions as Xn, GepaEngineOptions as Xr, EvalFixture as Xt, UserStoryVerdict as Y, SearchStateView as Ya, TransientFailureOptions as Yi, CrossSurfaceTaskRow as Yn, GepaAdaptiveEngineRun as Yr, neutralizationGate as Yt, renderScoreboardMarkdown as Z, searchCellId as Za, quotaExhaustedUntil as Zi, TraceAnalystArtifact as Zn, GepaEngineRun as Zr, EvalFixtureFile as Zt, componentSurfaceIdentityMaterial as _, surfaceDiff as _a, OptimizationMethodProvenance as _i, AnalyzeCrossSurfaceInteractionsInput as _n, CampaignRunPlan as _o, provenanceSpansPath as _r, CompletionRequirement as _t, WorktreeAdapterError as a, runOptimization as aa, ExternalTextOptimizationMethodConfig as ai, loadEvalFixture as an, ParentSelectionContext as ao, LoopProvenanceBackend as ar, RunProfileMatrixResult as at, surfaceDispatchRef as b, SearchHistoryAdmissionOptions as ba, OptimizationMethodScore as bi, CrossSurfaceAttemptCompleteness as bn, planCampaignRun as bo, CampaignComparisonUnits as br, LlmCorrectnessCheckerOpts as bt, verifyCodeSurface as c, RegisterSearchNodeInput as ca, ExternalOptimizationExample as ci, EstimateNodeCellsInput as cn, OpenAutoPrOptions as co, LoopProvenanceOptimizationMethod as cr, BackendIntegrityError as ct, PhoenixEvaluationResultLike as d, SearchRecorder as da, CompareOptimizationMethodsOptions as di, SearchPosterior as dn, RunEvalOptions as do, campaignMeasurementDigest as dr, summarizeBackendIntegrity as dt, RunImprovementLoopResult as ea, GepaRunnerCommand as ei, EvalFixtureScenario as en, searchUnitScores as eo, traceAnalystQualityJudge as er, userStoryScoreboard as et, PhoenixEvaluatorLike as f, SearchRecorderOptions as fa, OptimizationMethod as fi, estimateNode as fn, runEval as fo, canonicalDigest as fr, ArtifactEventLike as ft, codeSurfaceIdentityMaterial as g, searchEdgeId as ga, OptimizationMethodPairwise as gi, analyzeCrossSurfaceInteractions as gn, runCampaign as go, provenanceRecordPath as gr, extractProducedState as gt, assertCodeSurfaceIdentity as h, developmentClaim as ha, OptimizationMethodInput as hi, searchPosterior as hn, RunCampaignOptions as ho, loopProvenanceSpans as hr, ToolCallEventLike as ht, WorktreeAdapter as i, RunOptimizationResult as ia, externalTextOptimizationMethod as ii, discoverEvalFixtures as in, CrowdedFrontierParentOptions as io, LoopProvenanceArgsFromResult as ir, RunProfileMatrixOptions as it, CreateProfileMatrixPlanOptions as j, verifySearchHistoryArtifact as ja, GepaCandidateSelectionScore as ji, CrossSurfaceDistribution as jn, FinalEvidencePolicy as jo, RedTeamCase as jr, neutralizeText as jt, resolveRunDir as k, createSearchHistoryReceipt as ka, GepaCandidatePopulationCandidate as ki, CrossSurfaceComponentEvidence as kn, fsCampaignStorage as ko, defaultProductionGate as kr, scopedOptimizationMethod as kt, AutoevalsScoreLike as l, SearchLedgerBinding as la, ExternalTextEvaluationResponse as li, NodePosterior as ln, OpenAutoPrResult as lo, LoopProvenanceRecord as lr, BackendIntegrityReport as lt, phoenixEvaluatorJudge as m, SettleSearchCellInput as ma, OptimizationMethodComposition as mi, searchCellSetDigest as mn, CampaignCellRetryPolicy as mo, loopProvenanceArgsFromResult as mr, RuntimeEventLike as mt, GitWorktreeAdapterOptions as n, PremeasuredOptimizationBaseline as na, OpenAICompatibleOptimizerModel as ni, LoadEvalFixtureScenariosOptions as nn, SearchLedgerError as no, EmitLoopProvenanceArgs as nr, ProfileMatrixError as nt, gitWorktreeAdapter as o, AllocateSearchCellInput as oa, ExternalTextOptimizerContext as oi, loadEvalFixtureScenarios as on, ParentSelector as oo, LoopProvenanceCandidate as or, ScenarioRollup as ot, autoevalsScorerJudge as p, SearchRunIdentity as pa, OptimizationMethodComparison as pi, estimateNodeFromCells as pn, CampaignCellFailureReceipt as po, emitLoopProvenance as pr, ProposalEventLike as pt, ScoreboardSummary as q, SearchSpend as qa, LlmJudgeOptions as qi, CrossSurfaceSelectionPolicy as qn, SkillOptTrainerConfig as qr, recordGepaSearch as qt, Worktree as r, RunOptimizationOptions as ra, OptimizerModelBudget as ri, PlanEvalFixtureRunOptions as rn, SearchLedgerIntegrityError as ro, EmitLoopProvenanceResult as rr, ProfileSummary as rt, resolveWorktreePath as s, RecordSearchEdgeInput as sa, ExternalTextOptimizerResult as si, planEvalFixtureRun as sn, crowdedFrontierParent as so, LoopProvenanceEvidence as sr, runProfileMatrix as st, CodeSurfaceVerification as t, runImprovementLoop as ta, gepaOptimizationMethod as ti, EvalFixtureValidationMode as tn, SearchLedgerConflictError as to, BuildLoopProvenanceArgs as tr, ProfileDispatchFn as tt, AutoevalsScorerLike as u, SearchOpening as ua, decodeExternalTextCandidate as ui, SEARCH_ESTIMATOR as un, openAutoPr as uo, buildLoopProvenanceRecord as ur, assertRealBackend as ut, renderSurfaceDiff as v, surfaceNode as va, OptimizationMethodResult as vi, CrossSurfaceAdditionDecision as vn, CampaignRunPlanCell as vo, verifyLoopProvenanceRecord as vr, CompletionVerdict as vt, acquireSingleRunLock as w, SearchHistoryPolicy as wa, optimizationTokenUsageFromSummary as wi, CrossSurfaceCandidateComparison as wn, CellScheduleSlot as wo, HeldOutGateOptions as wr, SatisfiedBy as wt, surfaceHash as x, SearchHistoryAuditSummary as xa, OptimizationPackageSource as xi, CrossSurfaceBestSingleSelection as xn, CacheIssueReason as xo, campaignBreakdown as xr, ProducedProposal as xt, surfaceContentHash as y, CreateSearchHistoryReceiptInput as ya, OptimizationMethodRunOptions as yi, CrossSurfaceAdditionRejectionReason as yn, PlanCampaignRunOptions as yo, CampaignBreakdown as yr, CorrectnessChecker as yt, createProfileMatrixPlan as z, replaySearchLedgerText as za, REFERENCE_EQUIVALENCE_JUDGE_VERSION as zi, CrossSurfaceInteractionTask as zn, CanaryEvaluation as zr, UngroundedLiteralReport as zt };
4071
- //# sourceMappingURL=index-CJv56rhX.d.ts.map
4286
+ export { ProfileMatrixSegmentResult as $, searchHistoryCoverageRow as $a, ExternalOptimizerObservationSummary as $i, CrossSurfaceInteractionPath as $n, assertCampaignDesign as $o, redTeamDataset as $r, RolloutCall as $t, SearchExecutor as A, RecordSearchEdgeInput as Aa, OptimizationMethod as Ai, searchCellSetDigest as An, openAutoPr as Ao, campaignMeasurementDigest as Ar, RuntimeEventLike as At, searchPolicyView as B, surfaceDiff as Ba, OptimizationTokenUsage as Bi, CrossSurfaceCandidateComparison as Bn, planCampaignRun as Bo, campaignBreakdown as Br, SatisfiedBy as Bt, SingleRunLockOptions as C, runOptimization as Ca, ExternalTextOptimizationMethodConfig as Ci, planEvalFixtureRun as Cn, searchTaskSetDigest as Co, LoopProvenanceArgsFromResult as Cr, runProfileMatrix as Ct, SearchArtifactCodec as D, crowdedFrontierParent as Da, ExternalTextEvaluationResponse as Di, SearchPosterior as Dn, SearchLedgerIntegrityError as Do, LoopProvenanceOptimizationMethod as Dr, summarizeBackendIntegrity as Dt, SEARCH_KERNEL_SOURCE as E, SearchPolicyView as Ea, ExternalOptimizationExample as Ei, SEARCH_ESTIMATOR as En, SearchLedgerError as Eo, LoopProvenanceEvidence as Er, assertRealBackend as Et, SearchProposedChild as F, SearchRecorderOptions as Fa, OptimizationMethodProvenance as Fi, CrossSurfaceAdditionRejectionReason as Fn, RunCampaignOptions as Fo, provenanceRecordPath as Fr, CorrectnessChecker as Ft, resolveRunDir as G, SearchHistoryCoverage as Ga, costFromLedgerSummary as Gi, CrossSurfaceComponentEvidence as Gn, buildCellSchedule as Go, DefaultProductionGateOptions as Gr, scopedOptimizationMethod as Gt, ScenarioSignal as H, CreateSearchHistoryReceiptInput as Ha, optimizationTokenUsageFromSummary as Hi, CrossSurfaceCandidateOutcome as Hn, CacheRead as Ho, HeldOutGateOptions as Hr, completionVerdict as Ht, SearchProposerPort as I, SearchRunIdentity as Ia, OptimizationMethodResult as Ii, CrossSurfaceAttemptCompleteness as In, runCampaign as Io, provenanceSpansPath as Ir, LlmCorrectnessCheckerOpts as It, FinalizeProfileMatrixOptions as J, SearchHistoryReceipt as Ja, GepaCandidatePopulationSummary as Ji, CrossSurfaceEligibility as Jn, createRunCostLedger as Jo, DEFAULT_RED_TEAM_CORPUS as Jr, FsLabeledScenarioStore as Jt, tangleTracesRoot as K, SearchHistoryCoverageRow as Ka, GepaCandidatePopulationArtifact as Ki, CrossSurfaceCompositionStep as Kn, cellCachePath as Ko, DefaultProductionRewardHackingOptions as Kr, sequentialOptimizationMethod as Kt, SearchRunResult as L, SettleSearchCellInput as La, OptimizationMethodRunOptions as Li, CrossSurfaceBestSingleSelection as Ln, CampaignRunPlan as Lo, verifyLoopProvenanceRecord as Lr, ProducedProposal as Lt, SearchProposalBlob as M, SearchLedgerBinding as Ma, OptimizationMethodComposition as Mi, analyzeCrossSurfaceInteractions as Mn, runEval as Mo, emitLoopProvenance as Mr, extractProducedState as Mt, SearchProposalRequest as N, SearchOpening as Na, OptimizationMethodInput as Ni, AnalyzeCrossSurfaceInteractionsInput as Nn, CampaignCellFailureReceipt as No, loopProvenanceArgsFromResult as Nr, CompletionRequirement as Nt, SearchCellResult as O, incumbent as Oa, decodeExternalTextCandidate as Oi, estimateNode as On, OpenAutoPrOptions as Oo, LoopProvenanceRecord as Or, ArtifactEventLike as Ot, SearchProposalResult as P, SearchRecorder as Pa, OptimizationMethodPairwise as Pi, CrossSurfaceAdditionDecision as Pn, CampaignCellRetryPolicy as Po, loopProvenanceSpans as Pr, CompletionVerdict as Pt, ProfileMatrixRow as Q, createSearchHistoryReceipt as Qa, ExternalOptimizerObservationArtifact as Qi, CrossSurfaceInteractionEffect as Qn, FinalEvidenceUse as Qo, RedTeamReport as Qr, RolloutArgumentDiffOptions as Qt, runSearch as R, developmentClaim as Ra, OptimizationMethodScore as Ri, CrossSurfaceBootstrapPolicy as Rn, CampaignRunPlanCell as Ro, CampaignBreakdown as Rr, ProducedState as Rt, SingleRunLock as S, RunOptimizationResult as Sa, externalTextOptimizationMethod as Si, loadEvalFixtureScenarios as Sn, searchNodeId as So, EmitLoopProvenanceResult as Sr, ScenarioRollup as St, RunSearchOptions as T, SearchPolicy as Ta, ExternalTextOptimizerResult as Ti, NodePosterior as Tn, SearchLedgerConflictError as To, LoopProvenanceCandidate as Tr, BackendIntegrityReport as Tt, scoreDiscrimination as U, SearchHistoryAdmissionOptions as Ua, ComparisonCost as Ui, CrossSurfaceCandidateSummary as Un, readCachedCell as Uo, heldOutGate as Ur, createLlmCorrectnessChecker as Ut, DiscriminationScore as V, surfaceNode as Va, compareOptimizationMethods as Vi, CrossSurfaceCandidateEvidence as Vn, CacheIssueReason as Vo, campaignMeanComposite as Vr, TaskGold as Vt, selectDiscriminative as W, SearchHistoryAuditSummary as Wa, combineComparisonCosts as Wi, CrossSurfaceComponent as Wn, CellScheduleSlot as Wo, DefaultProductionGateCheck as Wr, verifyCompletion as Wt, ProfileMatrixCoverage as X, assertCompleteSearchHistory as Xa, readGepaCandidatePopulationArtifact as Xi, CrossSurfaceIneligibilityReason as Xn, inMemoryCampaignStorage as Xo, RedTeamCategory as Xr, LabeledScenarioStoreError as Xt, FinalizedProfileMatrixResult as Y, SearchHistoryRequiredError as Ya, GepaCandidateSelectionScore as Yi, CrossSurfaceEvidenceBreakdown as Yn, fsCampaignStorage as Yo, RedTeamCase as Yr, FsLabeledScenarioStoreOptions as Yt, ProfileMatrixPlan as Z, assertSearchHistoryMatchesState as Za, ExternalOptimizerExecutionSummary as Zi, CrossSurfaceInteractionAwareSelection as Zn, FinalEvidencePolicy as Zo, RedTeamFinding as Zr, RolloutArgumentDiff as Zt, componentSurfaceIdentityMaterial as _, RunImprovementLoopOptions as _a, GepaOptimizationRecipe as _i, EvalFixtureValidationMode as _n, SearchSpend as _o, SearchAllocator as _r, ProfileDispatchFn as _t, WorktreeAdapterError as a, ReferenceEquivalenceJudgeOptions as aa, CanaryOptions as ai, GepaPopulationImport as an, SearchLedgerAppendResult as ao, CrossSurfacePairIncompatibilityReason as ar, PlaybackDriver as at, surfaceDispatchRef as b, PremeasuredOptimizationBaseline as ba, OpenAICompatibleOptimizerModel as bi, discoverEvalFixtures as bn, SearchUnitScore as bo, BuildLoopProvenanceArgs as br, RunProfileMatrixOptions as bt, verifyCodeSurface as c, createReferenceEquivalenceJudge as ca, composeGate as ci, importGepaPopulation as cn, parseSearchLedgerLine as co, CrossSurfaceRelativeCost as cr, ScoreboardRow as ct, PhoenixEvaluationResultLike as d, LlmJudgeOptions as da, SkillOptTrainerConfig as di, neutralizationGate as dn, SearchCell as do, CrossSurfaceTaskRow as dr, UserStoryVerdict as dt, ExternalOptimizerSubmittedCandidate as ea, redTeamReport as ei, ScoredRollout as en, verifySearchHistoryArtifact as eo, CrossSurfaceInteractionReport as er, assertCampaignSplitIdentity as es, RunProfileMatrixSegmentOptions as et, PhoenixEvaluatorLike as f, llmJudge as fa, skillOptOptimizationMethod as fi, EvalFixture as fn, SearchCompletion as fo, BuildTraceAnalystSurfaceDispatchOptions as fr, makePlaybackDispatch as ft, codeSurfaceIdentityMaterial as g, transientDispatchFailure as ga, GepaOptimizationMethodConfig as gi, EvalFixtureScenario as gn, SearchScoredCell as go, traceAnalystQualityJudge as gr, userStoryScoreboard as gt, assertCodeSurfaceIdentity as h, quotaExhaustedUntil as ha, GepaEngineRun as hi, EvalFixtureRunPlan as hn, SearchOperation as ho, buildTraceAnalystSurfaceDispatch as hr, scoreboardSummary as ht, WorktreeAdapter as i, ReferenceEquivalenceJudgeInput as ia, CanaryKind as ii, GepaEvaluationImport as in, SearchLedger as io, CrossSurfacePairEvidence as ir, PlaybackContext as it, SearchLane as j, RegisterSearchNodeInput as ja, OptimizationMethodComparison as ji, searchPosterior as jn, RunEvalOptions as jo, canonicalDigest as jr, ToolCallEventLike as jt, SearchCellWork as k, AllocateSearchCellInput as ka, CompareOptimizationMethodsOptions as ki, estimateNodeFromCells as kn, OpenAutoPrResult as ko, buildLoopProvenanceRecord as kr, ProposalEventLike as kt, AutoevalsScoreLike as l, runReferenceEquivalenceJudge as la, SkillOptOptimizationMethodConfig as li, recordGepaSearch as ln, replaySearchLedgerText as lo, CrossSurfaceSelectionPolicy as lr, ScoreboardSummary as lt, phoenixEvaluatorJudge as m, isTransientTransportFailure as ma, GepaEngineOptions as mi, EvalFixtureLoadOptions as mn, SearchNode as mo, TraceAnalystScenario as mr, scoreUserStory as mt, GitWorktreeAdapterOptions as n, REFERENCE_EQUIVALENCE_INPUT_LIMITS as na, CanaryAlert as ni, classifyUngroundedLiterals as nn, FileSearchLedger as no, CrossSurfaceNaiveStackSelection as nr, campaignSplitDigest as ns, finalizeProfileMatrix as nt, gitWorktreeAdapter as o, ReferenceEquivalenceJudgeResult as oa, CanaryReport as oi, externalSurface as on, SearchLedgerTrustedHeadMode as oo, CrossSurfacePairwiseEntry as or, PlaybackStep as ot, autoevalsScorerJudge as p, TransientFailureOptions as pa, GepaAdaptiveEngineRun as pi, EvalFixtureFile as pn, SearchDecisionRecord as po, TraceAnalystArtifact as pr, renderScoreboardMarkdown as pt, CreateProfileMatrixPlanOptions as q, SearchHistoryPolicy as qa, GepaCandidatePopulationCandidate as qi, CrossSurfaceDistribution as qn, CampaignStorage as qo, defaultProductionGate as qr, neutralizeText as qt, Worktree as r, REFERENCE_EQUIVALENCE_JUDGE_VERSION as ra, CanaryEvaluation as ri, rolloutArgumentDiff as rn, OpenSearchLedgerOptions as ro, CrossSurfacePairCompatibility as rr, campaignSplitDigestFromIdentities as rs, runProfileMatrixSegment as rt, resolveWorktreePath as s, ReferenceEquivalenceScenario as sa, runCanaries as si, importExternalEvaluations as sn, openSearchLedger as so, CrossSurfaceRankedSingle as sr, ScoreboardRenderOptions as st, CodeSurfaceVerification as t, readExternalOptimizerObservationArtifact as ta, scoreRedTeamOutput as ti, UngroundedLiteralReport as tn, verifySearchHistoryReceipt as to, CrossSurfaceInteractionTask as tr, campaignScenarioIdentity as ts, createProfileMatrixPlan as tt, AutoevalsScorerLike as u, LlmJudgeDimension as ua, SkillOptRunnerCommand as ui, NeutralizationGateOptions as un, validateSearchLedgerEvent as uo, CrossSurfaceSelections as ur, UserStory as ut, renderSurfaceDiff as v, RunImprovementLoopResult as va, GepaRunnerCommand as vi, LoadEvalFixtureScenariosOptions as vn, SearchState as vo, SearchCellPlan as vr, ProfileMatrixError as vt, acquireSingleRunLock as w, SearchExpansion as wa, ExternalTextOptimizerContext as wi, EstimateNodeCellsInput as wn, searchUnitScores as wo, LoopProvenanceBackend as wr, BackendIntegrityError as wt, surfaceHash as x, RunOptimizationOptions as xa, OptimizerModelBudget as xi, loadEvalFixture as xn, searchCellId as xo, EmitLoopProvenanceArgs as xr, RunProfileMatrixResult as xt, surfaceContentHash as y, runImprovementLoop as ya, gepaOptimizationMethod as yi, PlanEvalFixtureRunOptions as yn, SearchStateView as yo, uniform as yr, ProfileSummary as yt, searchExpansionIndex as z, searchEdgeId as za, OptimizationPackageSource as zi, CrossSurfaceCandidate as zn, PlanCampaignRunOptions as zo, CampaignComparisonUnits as zr, RequirementCheck as zt };
4287
+ //# sourceMappingURL=index-DwQxdWve.d.ts.map