@tangle-network/agent-eval 0.199.0 → 0.200.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 (114) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/dist/adapters/http.d.ts +2 -2
  3. package/dist/analyst/index.d.ts +9 -69
  4. package/dist/analyst/index.d.ts.map +1 -1
  5. package/dist/analyst/index.js +1 -1
  6. package/dist/{benchmark-command-CoBwYvau.js → benchmark-command-EBmuMUBo.js} +5 -3
  7. package/dist/benchmark-command-EBmuMUBo.js.map +1 -0
  8. package/dist/benchmarks/index.d.ts +4 -4
  9. package/dist/benchmarks/index.js +2 -2
  10. package/dist/campaign/index.d.ts +4 -4
  11. package/dist/campaign/index.js +6 -6
  12. package/dist/{campaign-BIqhoN9r.js → campaign-L391bmir.js} +7 -7
  13. package/dist/{campaign-BIqhoN9r.js.map → campaign-L391bmir.js.map} +1 -1
  14. package/dist/cli.js +11 -9
  15. package/dist/cli.js.map +1 -1
  16. package/dist/contract/index.d.ts +7 -7
  17. package/dist/contract/index.js +3 -3
  18. package/dist/{default-registry-oK9hHfX_.d.ts → default-registry-D1rNS2yB.d.ts} +3 -3
  19. package/dist/{default-registry-oK9hHfX_.d.ts.map → default-registry-D1rNS2yB.d.ts.map} +1 -1
  20. package/dist/{define-agent-eval-Bgwt5ZcC.d.ts → define-agent-eval-1YuvJpOs.d.ts} +5 -5
  21. package/dist/{define-agent-eval-Bgwt5ZcC.d.ts.map → define-agent-eval-1YuvJpOs.d.ts.map} +1 -1
  22. package/dist/{define-agent-eval-BRCLti7N.js → define-agent-eval-7q_UwsTt.js} +3 -3
  23. package/dist/{define-agent-eval-BRCLti7N.js.map → define-agent-eval-7q_UwsTt.js.map} +1 -1
  24. package/dist/{engine-Dc996kAg.d.ts → engine-DlKIzDKo.d.ts} +2 -2
  25. package/dist/{engine-Dc996kAg.d.ts.map → engine-DlKIzDKo.d.ts.map} +1 -1
  26. package/dist/evaluation.d.ts +1 -1
  27. package/dist/experiment/index.d.ts +1 -1
  28. package/dist/hosted/index.js +1 -1
  29. package/dist/{index-lbwvO9vJ.d.ts → index-Bi2fLITd.d.ts} +3 -3
  30. package/dist/{index-lbwvO9vJ.d.ts.map → index-Bi2fLITd.d.ts.map} +1 -1
  31. package/dist/{index-D4pC7Tvd.d.ts → index-D4pC7Tvd2.d.ts} +1 -1
  32. package/dist/index-D4pC7Tvd2.d.ts.map +1 -0
  33. package/dist/{index-OuIM7sJz.d.ts → index-DKmrHA02.d.ts} +4 -4
  34. package/dist/{index-OuIM7sJz.d.ts.map → index-DKmrHA02.d.ts.map} +1 -1
  35. package/dist/{index-DNgf5gyG.d.ts → index-DNgf5gyG2.d.ts} +1 -1
  36. package/dist/index-DNgf5gyG2.d.ts.map +1 -0
  37. package/dist/{index-J8BB_NYv.d.ts → index-EkRNsLr4.d.ts} +6 -6
  38. package/dist/{index-J8BB_NYv.d.ts.map → index-EkRNsLr4.d.ts.map} +1 -1
  39. package/dist/index.d.ts +10 -10
  40. package/dist/index.js +4 -4
  41. package/dist/jev-protocol-CpKI7XSu.d.ts +82 -0
  42. package/dist/jev-protocol-CpKI7XSu.d.ts.map +1 -0
  43. package/dist/jev-protocol.d.ts +2 -82
  44. package/dist/jev-review-Cu9xtIu4.js +155 -0
  45. package/dist/jev-review-Cu9xtIu4.js.map +1 -0
  46. package/dist/jev-review-D4ynCORp.d.ts +76 -0
  47. package/dist/jev-review-D4ynCORp.d.ts.map +1 -0
  48. package/dist/jev.d.ts +3 -74
  49. package/dist/jev.d.ts.map +1 -1
  50. package/dist/jev.js +2 -151
  51. package/dist/jev.js.map +1 -1
  52. package/dist/{llm-judge-GSlZ0eG8.js → llm-judge-CL6f3utD.js} +4 -4
  53. package/dist/{llm-judge-GSlZ0eG8.js.map → llm-judge-CL6f3utD.js.map} +1 -1
  54. package/dist/matrix/index.d.ts +1 -1
  55. package/dist/{matrix-BnksRaDD.d.ts → matrix-_NLSWsKM.d.ts} +3 -3
  56. package/dist/{matrix-BnksRaDD.d.ts.map → matrix-_NLSWsKM.d.ts.map} +1 -1
  57. package/dist/multishot/golden/index.d.ts +1 -1
  58. package/dist/multishot/golden/index.js +1 -1
  59. package/dist/multishot/index.d.ts +2 -2
  60. package/dist/multishot/index.js +1 -1
  61. package/dist/openapi.json +1 -1
  62. package/dist/{produced-state-D2ff-Dyo.js → produced-state-DZMW8cuF.js} +2 -2
  63. package/dist/{produced-state-D2ff-Dyo.js.map → produced-state-DZMW8cuF.js.map} +1 -1
  64. package/dist/rl.d.ts +279 -2
  65. package/dist/rl.d.ts.map +1 -1
  66. package/dist/rl.js +576 -2
  67. package/dist/rl.js.map +1 -1
  68. package/dist/rollout/index.d.ts +1 -1
  69. package/dist/search/index.d.ts +2 -2
  70. package/dist/search/index.js +2 -2
  71. package/dist/{search-kernel-CumYAjA3.js → search-kernel-AVgIjXaI.js} +56 -15
  72. package/dist/search-kernel-AVgIjXaI.js.map +1 -0
  73. package/dist/{search-kernel-DA2-mS4N.d.ts → search-kernel-C9CXvFR7.d.ts} +6 -4
  74. package/dist/search-kernel-C9CXvFR7.d.ts.map +1 -0
  75. package/dist/{search-ledger-BnUytR8X.js → search-ledger-CL0-mXQ8.js} +4 -2
  76. package/dist/search-ledger-CL0-mXQ8.js.map +1 -0
  77. package/dist/{search-shipper-Cn8cxcyp.js → search-shipper-Cs6K4km9.js} +2 -2
  78. package/dist/{search-shipper-Cn8cxcyp.js.map → search-shipper-Cs6K4km9.js.map} +1 -1
  79. package/dist/{search-summary-dJOaZ3Dw.js → search-summary-DvWk0hb3.js} +2 -2
  80. package/dist/{search-summary-dJOaZ3Dw.js.map → search-summary-DvWk0hb3.js.map} +1 -1
  81. package/dist/{skillopt-optimization-method-DDt77V-N.js → skillopt-optimization-method-B2syNik0.js} +3 -3
  82. package/dist/{skillopt-optimization-method-DDt77V-N.js.map → skillopt-optimization-method-B2syNik0.js.map} +1 -1
  83. package/dist/{statistical-heldout-CMpxMjlQ.d.ts → statistical-heldout-HswMvzbP.d.ts} +2 -2
  84. package/dist/{statistical-heldout-CMpxMjlQ.d.ts.map → statistical-heldout-HswMvzbP.d.ts.map} +1 -1
  85. package/dist/{store-tool-spans-CUwWSXoj.d.ts → store-tool-spans-Dv9x4XYG.d.ts} +3 -3
  86. package/dist/{store-tool-spans-CUwWSXoj.d.ts.map → store-tool-spans-Dv9x4XYG.d.ts.map} +1 -1
  87. package/dist/{tool-groups-DVJAR1GE.d.ts → tool-groups-BY1MdSIE.d.ts} +2 -2
  88. package/dist/tool-groups-BY1MdSIE.d.ts.map +1 -0
  89. package/dist/trace-questions-DnqdmwyV.d.ts +68 -0
  90. package/dist/trace-questions-DnqdmwyV.d.ts.map +1 -0
  91. package/dist/trace-repair/index.d.ts +1 -1
  92. package/dist/traces.d.ts +2 -2
  93. package/dist/{tree-DxGfhISA.js → tree-Ki_gW7z8.js} +25 -26
  94. package/dist/{tree-DxGfhISA.js.map → tree-Ki_gW7z8.js.map} +1 -1
  95. package/dist/{types-B3jzCp0p2.js → types-B3jzCp0p.js} +1 -1
  96. package/dist/types-B3jzCp0p.js.map +1 -0
  97. package/dist/{types-D94EanDL.d.ts → types-C4hH69a9.d.ts} +2 -2
  98. package/dist/{types-D94EanDL.d.ts.map → types-C4hH69a9.d.ts.map} +1 -1
  99. package/dist/{types-EBUav9Bu.d.ts → types-DfvQOe91.d.ts} +4 -1
  100. package/dist/types-DfvQOe91.d.ts.map +1 -0
  101. package/docs/jev-behavior-review.md +24 -0
  102. package/docs/public-api.md +50 -31
  103. package/docs/search-ledger.md +20 -2
  104. package/package.json +1 -1
  105. package/dist/benchmark-command-CoBwYvau.js.map +0 -1
  106. package/dist/index-D4pC7Tvd.d.ts.map +0 -1
  107. package/dist/index-DNgf5gyG.d.ts.map +0 -1
  108. package/dist/jev-protocol.d.ts.map +0 -1
  109. package/dist/search-kernel-CumYAjA3.js.map +0 -1
  110. package/dist/search-kernel-DA2-mS4N.d.ts.map +0 -1
  111. package/dist/search-ledger-BnUytR8X.js.map +0 -1
  112. package/dist/tool-groups-DVJAR1GE.d.ts.map +0 -1
  113. package/dist/types-B3jzCp0p2.js.map +0 -1
  114. package/dist/types-EBUav9Bu.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { C as assertMinted, D as isRolloutLine, E as gateGamedOutcome, O as isTrainableSplit, S as ToolDef, T as assertRolloutLine, _ as RolloutProvenance, a as MintedRolloutLine, b as RolloutStep, c as ROLLOUT_ROLES, d as RolloutArtifacts, f as RolloutCapture, g as RolloutPolicy, h as RolloutOutcome, i as GatedEvidence, k as validateRolloutLine, l as ROLLOUT_SCHEMA, m as RolloutLine, n as ChatRole, o as MintedRolloutOutcome, p as RolloutCostBlock, r as ChatToolCall, s as ROLLOUT_CAPTURES, t as ChatMessage, u as ROLLOUT_SPLITS, v as RolloutRole, w as assertMintedLines, x as RolloutTask, y as RolloutSplit } from "../schema-B5LtYvn9.js";
2
2
  import { a as mintRolloutRows, c as ScorePreference, d as observedSplitScore, f as scoreOrigin, i as RolloutSearchLineage, l as isRealnessGated, m as trainingScore, n as MintRolloutResult, o as unmintableReasons, p as trainingReward, r as RolloutScrubber, s as ScoreOrigin, t as MintRolloutOptions, u as observedScore } from "../mint-C9Lojt1V.js";
3
3
  import { a as SftRow, c as VerifiersTokenUsage, d as toRftItem, f as toRftItems, h as toVerifiersRolloutOutputs, i as SftExportOptions, l as toJsonl, m as toVerifiersRolloutOutput, n as RewardRow, p as toSftRows, r as RftItem, s as VerifiersRolloutOutput, t as RealnessLabels, u as toRewardRows } from "../exporters-XMCYJlqT.js";
4
- import { $ as HarborFinalMetrics, A as measureFormatGate, B as DEFAULT_CLAUDE_PROJECTS_DIR, C as FORMAT_GATE_DISPOSITION, Ct as gatedEvidenceOf, D as ReleaseRowRef, E as GateReport, F as openOpencodeDb, G as readRolloutJournal, H as findClaudeTranscripts, I as readOpencodeSessionMessages, J as ATIF_SCHEMA_VERSION, K as readRolloutLedger, L as ClaudeTranscript, M as DEFAULT_OPENCODE_DB, N as OpencodeSessionRow, O as assertGateReport, P as findOpencodeSessionsByDirectory, Q as HarborContentPart, R as ClaudeTranscriptRef, S as EmittedEvidence, St as gateErrors, T as GateDisposition, U as readClaudeTranscript, V as claudeProjectSlug, W as appendRolloutLines, X as HARBOR_IMPORT_GAP, Y as FromHarborOptions, Z as HarborAgent, _ as defaultRolloutScrubber, _t as GateCheckDisposition, a as buildHfDataset, at as HarborStepSource, b as scrubRolloutLine, bt as GateEntryPoint, c as runRolloutReleaseCli, ct as HarborTrajectory, d as RELEASE_FORMATS, dt as toHarborTrajectories, et as HarborImageSource, f as ReleaseFormat, ft as toHarborTrajectory, g as addScrubCounts, gt as GateCheck, h as ScrubRule, ht as GATE_POLICIES, i as ScrubReport, it as HarborStep, j as releaseRowRefs, k as gatedRolloutIds, l as DatasetCardInputs, lt as fromHarborTrajectory, m as ScrubCounts, mt as GATE_CHECK_IDS, n as BuildSummary, nt as HarborObservation, o as parseRolloutReleaseArgs, ot as HarborSubagentTrajectoryRef, p as buildDatasetCard, pt as GATE_CHECKS, q as writeRolloutLedger, r as RolloutReleaseCliArgs, rt as HarborObservationResult, s as planPushCommand, st as HarborToolCall, t as BuildOptions, tt as HarborMetrics, u as FORMAT_FILES, ut as relabelImportedSplit, v as emptyScrubCounts, vt as GateCheckId, w as FormatGateCounts, x as scrubText, xt as GatePolicy, y as scrubLines, yt as GateCheckedOutcome, z as ClaudeUsageTotals } from "../index-D4pC7Tvd.js";
4
+ import { $ as HarborFinalMetrics, A as measureFormatGate, B as DEFAULT_CLAUDE_PROJECTS_DIR, C as FORMAT_GATE_DISPOSITION, Ct as gatedEvidenceOf, D as ReleaseRowRef, E as GateReport, F as openOpencodeDb, G as readRolloutJournal, H as findClaudeTranscripts, I as readOpencodeSessionMessages, J as ATIF_SCHEMA_VERSION, K as readRolloutLedger, L as ClaudeTranscript, M as DEFAULT_OPENCODE_DB, N as OpencodeSessionRow, O as assertGateReport, P as findOpencodeSessionsByDirectory, Q as HarborContentPart, R as ClaudeTranscriptRef, S as EmittedEvidence, St as gateErrors, T as GateDisposition, U as readClaudeTranscript, V as claudeProjectSlug, W as appendRolloutLines, X as HARBOR_IMPORT_GAP, Y as FromHarborOptions, Z as HarborAgent, _ as defaultRolloutScrubber, _t as GateCheckDisposition, a as buildHfDataset, at as HarborStepSource, b as scrubRolloutLine, bt as GateEntryPoint, c as runRolloutReleaseCli, ct as HarborTrajectory, d as RELEASE_FORMATS, dt as toHarborTrajectories, et as HarborImageSource, f as ReleaseFormat, ft as toHarborTrajectory, g as addScrubCounts, gt as GateCheck, h as ScrubRule, ht as GATE_POLICIES, i as ScrubReport, it as HarborStep, j as releaseRowRefs, k as gatedRolloutIds, l as DatasetCardInputs, lt as fromHarborTrajectory, m as ScrubCounts, mt as GATE_CHECK_IDS, n as BuildSummary, nt as HarborObservation, o as parseRolloutReleaseArgs, ot as HarborSubagentTrajectoryRef, p as buildDatasetCard, pt as GATE_CHECKS, q as writeRolloutLedger, r as RolloutReleaseCliArgs, rt as HarborObservationResult, s as planPushCommand, st as HarborToolCall, t as BuildOptions, tt as HarborMetrics, u as FORMAT_FILES, ut as relabelImportedSplit, v as emptyScrubCounts, vt as GateCheckId, w as FormatGateCounts, x as scrubText, xt as GatePolicy, y as scrubLines, yt as GateCheckedOutcome, z as ClaudeUsageTotals } from "../index-D4pC7Tvd2.js";
5
5
  export { ATIF_SCHEMA_VERSION, type BuildOptions, type BuildSummary, type ChatMessage, type ChatRole, type ChatToolCall, type ClaudeTranscript, type ClaudeTranscriptRef, type ClaudeUsageTotals, DEFAULT_CLAUDE_PROJECTS_DIR, DEFAULT_OPENCODE_DB, type DatasetCardInputs, type EmittedEvidence, FORMAT_FILES, FORMAT_GATE_DISPOSITION, type FormatGateCounts, type FromHarborOptions, GATE_CHECKS, GATE_CHECK_IDS, GATE_POLICIES, type GateCheck, type GateCheckDisposition, type GateCheckId, type GateCheckedOutcome, type GateDisposition, type GateEntryPoint, type GatePolicy, type GateReport, type GatedEvidence, HARBOR_IMPORT_GAP, type HarborAgent, type HarborContentPart, type HarborFinalMetrics, type HarborImageSource, type HarborMetrics, type HarborObservation, type HarborObservationResult, type HarborStep, type HarborStepSource, type HarborSubagentTrajectoryRef, type HarborToolCall, type HarborTrajectory, type MintRolloutOptions, type MintRolloutResult, type MintedRolloutLine, type MintedRolloutOutcome, type OpencodeSessionRow, RELEASE_FORMATS, ROLLOUT_CAPTURES, ROLLOUT_ROLES, ROLLOUT_SCHEMA, ROLLOUT_SPLITS, type RealnessLabels, type ReleaseFormat, type ReleaseRowRef, type RewardRow, type RftItem, type RolloutArtifacts, type RolloutCapture, type RolloutCostBlock, type RolloutLine, type RolloutOutcome, type RolloutPolicy, type RolloutProvenance, type RolloutReleaseCliArgs, type RolloutRole, type RolloutScrubber, type RolloutSearchLineage, type RolloutSplit, type RolloutStep, type RolloutTask, type ScoreOrigin, type ScorePreference, type ScrubCounts, type ScrubReport, type ScrubRule, type SftExportOptions, type SftRow, type ToolDef, type VerifiersRolloutOutput, type VerifiersTokenUsage, addScrubCounts, appendRolloutLines, assertGateReport, assertMinted, assertMintedLines, assertRolloutLine, buildDatasetCard, buildHfDataset, claudeProjectSlug, defaultRolloutScrubber, emptyScrubCounts, findClaudeTranscripts, findOpencodeSessionsByDirectory, fromHarborTrajectory, gateErrors, gateGamedOutcome, gatedEvidenceOf, gatedRolloutIds, isRealnessGated, isRolloutLine, isTrainableSplit, measureFormatGate, mintRolloutRows, observedScore, observedSplitScore, openOpencodeDb, parseRolloutReleaseArgs, planPushCommand, readClaudeTranscript, readOpencodeSessionMessages, readRolloutJournal, readRolloutLedger, relabelImportedSplit, releaseRowRefs, runRolloutReleaseCli, scoreOrigin, scrubLines, scrubRolloutLine, scrubText, toHarborTrajectories, toHarborTrajectory, toJsonl, toRewardRows, toRftItem, toRftItems, toSftRows, toVerifiersRolloutOutput, toVerifiersRolloutOutputs, trainingReward, trainingScore, unmintableReasons, validateRolloutLine, writeRolloutLedger };
@@ -1,6 +1,6 @@
1
1
  import { A as SearchLedgerHash, C as SearchEdgeOperator, G as SearchSplit, H as SearchProposerKind, I as SearchNodeStatus, L as SearchOpenedEvent, T as SearchEstimateMethod, W as SearchSourceRef, i as SearchArtifactRef, j as SearchModelIdentity, l as SearchCandidateSurface, m as SearchClaim, t as NodeEstimate, y as SearchCloseReason } from "../search-ledger-types-p2xKfiDJ.js";
2
- import { $ as SearchNode, it as SearchStateView } from "../types-EBUav9Bu.js";
3
- import { $ as EXPANSION_OPERATORS, L as SearchPolicy, M as SearchUnitExtension, at as OperatorYieldRow, ct as LensResult, dt as rankingSplit, et as ExpansionOperator, ft as summarizeSamples, it as OperatorYieldOptions, lt as LensSignal, nt as OperatorOutcomeCounts, ot as OperatorYieldSignal, p as SearchRunResult, r as SearchArtifactCodec, rt as OperatorYieldData, s as SearchLane, st as operatorYield, t as RunSearchOptions, tt as MIN_OUTCOMES_FOR_WEIGHT, ut as SampleSummary, z as SearchPolicyView } from "../search-kernel-DA2-mS4N.js";
2
+ import { $ as SearchNode, it as SearchStateView } from "../types-DfvQOe91.js";
3
+ import { $ as EXPANSION_OPERATORS, L as SearchPolicy, M as SearchUnitExtension, at as OperatorYieldRow, ct as LensResult, dt as rankingSplit, et as ExpansionOperator, ft as summarizeSamples, it as OperatorYieldOptions, lt as LensSignal, nt as OperatorOutcomeCounts, ot as OperatorYieldSignal, p as SearchRunResult, r as SearchArtifactCodec, rt as OperatorYieldData, s as SearchLane, st as operatorYield, t as RunSearchOptions, tt as MIN_OUTCOMES_FOR_WEIGHT, ut as SampleSummary, z as SearchPolicyView } from "../search-kernel-C9CXvFR7.js";
4
4
  import { AgentProfileResourceRef } from "@tangle-network/agent-interface";
5
5
  //#region src/search/lenses/edit-credit.d.ts
6
6
  /** Signal name a policy reads. */
@@ -1,6 +1,6 @@
1
1
  import { a as hashCanonical } from "../canonical-BsZVgBhW.js";
2
- import { _ as rankingSplit, h as operatorYield, m as MIN_OUTCOMES_FOR_WEIGHT, n as runSearch, p as EXPANSION_OPERATORS, v as summarizeSamples } from "../search-kernel-CumYAjA3.js";
3
- import { A as editCreditText, C as draftOnPlateau, D as EDIT_CREDIT_ESTIMATOR, E as front, O as EDIT_CREDIT_SIGNAL, S as vectorEmbedding, T as screenedNodes, _ as lineageEdits, a as skillCalibration, b as surfaceDigestEdits, c as META_SEARCH_SIGNAL, d as objectiveKey, f as renderMetaSearchText, g as lineEditDistance, h as landscape, i as nextUnitExtension, k as editCredit, l as metaSearch, m as formatLandscape, n as taskMatrix, o as skillManifold, p as searchPolicyGenome, r as formatSkillManifold, s as META_SEARCH_SCORE_SOURCE, t as tree, u as metaSearchScore, v as nearestNeighbours, w as searchPlateau, x as surfaceTextEdits, y as profileTextLines } from "../tree-DxGfhISA.js";
2
+ import { _ as rankingSplit, h as operatorYield, m as MIN_OUTCOMES_FOR_WEIGHT, n as runSearch, p as EXPANSION_OPERATORS, v as summarizeSamples } from "../search-kernel-AVgIjXaI.js";
3
+ import { A as editCreditText, C as draftOnPlateau, D as EDIT_CREDIT_ESTIMATOR, E as front, O as EDIT_CREDIT_SIGNAL, S as vectorEmbedding, T as screenedNodes, _ as lineageEdits, a as skillCalibration, b as surfaceDigestEdits, c as META_SEARCH_SIGNAL, d as objectiveKey, f as renderMetaSearchText, g as lineEditDistance, h as landscape, i as nextUnitExtension, k as editCredit, l as metaSearch, m as formatLandscape, n as taskMatrix, o as skillManifold, p as searchPolicyGenome, r as formatSkillManifold, s as META_SEARCH_SCORE_SOURCE, t as tree, u as metaSearchScore, v as nearestNeighbours, w as searchPlateau, x as surfaceTextEdits, y as profileTextLines } from "../tree-Ki_gW7z8.js";
4
4
  //#region src/search/nested-search.ts
5
5
  /** The deterministic id of the inner search one outer cell attempt runs. */
6
6
  function nestedSearchId(containment) {
@@ -6,7 +6,7 @@ import { n as DECISION_PAIRED_DELTA_STATISTIC } from "./paired-tests-C8iCsioC.js
6
6
  import { i as pairedDeltaTest, r as minimumPairsForPairedDeltaTest, t as decidePairedPromotion } from "./paired-promotion-decision-D5B1Cxc2.js";
7
7
  import { a as SearchLedgerError } from "./search-ledger-file-DY0AXX3W.js";
8
8
  import { f as redactText } from "./redact-Dk1ZdJEm.js";
9
- import { f as searchUnitScores, l as searchCellId, t as FileSearchLedger } from "./search-ledger-BnUytR8X.js";
9
+ import { f as searchUnitScores, l as searchCellId, t as FileSearchLedger } from "./search-ledger-CL0-mXQ8.js";
10
10
  import { t as acquireSingleRunLock } from "./single-run-lock-fVu3MZWH.js";
11
11
  //#region src/pareto.ts
12
12
  /** Does candidate A weakly dominate B — strictly better on at least one objective and no worse on any? */
@@ -396,15 +396,27 @@ function summarizeSamples(samples, seed) {
396
396
  * per-node mean is already the node's improvement over the root, oriented so
397
397
  * larger is always better regardless of the objective's direction — this
398
398
  * lens adds no second orientation rule of its own. A child's sample is
399
- * `posteriorMean / knownCostUsd`, and only enters the sample when both are
400
- * known: the node shares 2 or more units with the root (one shared unit is
401
- * no estimate, §6.4), every one of its cells has a known cost
402
- * (`SearchSpend.unknownCostCells === 0`, so an unpriced cell never floors a
403
- * node to an artificially cheap, inflated yield), and it was not decided
404
- * `invalid` (a judge integrity or admission failure: its score is not
405
- * evidence of improvement, and `editCredit` excludes such nodes the same
406
- * way). A $0-known-cost node is excluded from yield (division by zero is not
407
- * a yield), not treated as free.
399
+ * `posteriorMean / screenCostUsd`: the gain over the known cost of producing
400
+ * and screening the node, which is the operator's doing. That cost is the
401
+ * node's share of its proposal (the candidate-generation operation's cost
402
+ * split evenly over every child edge the operation recorded, re-proposals
403
+ * included) plus its cells allocated before its first decision: the first
404
+ * rung and the proposer's train feedback, which the allocator plans together
405
+ * at admission. Cells a later rung or the claim adds come after an
406
+ * `advanced` or `finalist` decision; they are the allocator's and the
407
+ * claim's choice, not the operator's, so an operator whose children advance
408
+ * is not charged for the measurement their success earned. A seed edge
409
+ * proposed nothing, so the root's cost is its cells alone.
410
+ *
411
+ * A child enters the sample only when both numbers are known: the node
412
+ * shares 2 or more units with the root (one shared unit is no estimate,
413
+ * §6.4); the edge names a recorded proposal operation whose cost is known;
414
+ * every screen cell has run and has a known cost (an unpriced or unrecorded
415
+ * part never floors a node to an artificially cheap, inflated yield); and it
416
+ * was not decided `invalid` (a judge integrity or admission failure: its
417
+ * score is not evidence of improvement, and `editCredit` excludes such nodes
418
+ * the same way). A $0-known-cost node is excluded from yield (division by
419
+ * zero is not a yield), not treated as free.
408
420
  */
409
421
  /** The operators an expansion may choose (`SearchExpansion.operator` in
410
422
  * `search-policy.ts`): every edge operator except `seed` (the search's own
@@ -420,6 +432,7 @@ const EXPANSION_OPERATORS = [
420
432
  * weight for that operator. Same threshold `NodeEstimate.method` uses for
421
433
  * `insufficient` (`minimumPairsForPairedDeltaTest(0.95)` = 6). */
422
434
  const MIN_OUTCOMES_FOR_WEIGHT = 6;
435
+ const YIELD_METHOD = "per registered node, searchPosterior's mean gain over the root divided by the known cost of producing and screening the node: its even share of the proposal operation's cost over the operation's child edges, plus its cells allocated before its first decision (first rung and train feedback; later rungs and the claim excluded); no sample when the node was decided invalid, shares fewer than 2 units with the root, or any part of that cost is unknown, unrecorded or zero";
423
436
  function operatorYield(state, options = {}) {
424
437
  const split = options.split ?? rankingSplit(state);
425
438
  const posteriorByNode = new Map(state.header && state.rootNodeId !== null ? searchPosterior(state, { split }).nodes.map((node) => [node.nodeId, node]) : []);
@@ -446,7 +459,13 @@ function operatorYield(state, options = {}) {
446
459
  }
447
460
  return existing;
448
461
  };
449
- for (const edge of state.edges()) {
462
+ const edges = state.edges();
463
+ const childEdges = /* @__PURE__ */ new Map();
464
+ for (const edge of edges) {
465
+ const operationId = edge.proposer?.operationId;
466
+ if (operationId) childEdges.set(operationId, (childEdges.get(operationId) ?? 0) + 1);
467
+ }
468
+ for (const edge of edges) {
450
469
  const child = state.node(edge.childNodeId);
451
470
  if (!child) continue;
452
471
  const bucket = group(edge.operator);
@@ -457,12 +476,12 @@ function operatorYield(state, options = {}) {
457
476
  }
458
477
  bucket.outcomes[statusKey(child.status)] += 1;
459
478
  const posterior = posteriorByNode.get(child.nodeId);
460
- const costKnown = child.spend.unknownCostCells === 0;
461
- if (child.status === "invalid" || !posterior || posterior.mean === null || posterior.pairs < 2 || !costKnown || child.spend.knownUsd <= 0) {
479
+ const costUsd = screenCostUsd(state, child, edge, childEdges);
480
+ if (child.status === "invalid" || !posterior || posterior.mean === null || posterior.pairs < 2 || costUsd === null || costUsd <= 0) {
462
481
  bucket.excluded += 1;
463
482
  continue;
464
483
  }
465
- bucket.samples.push(posterior.mean / child.spend.knownUsd);
484
+ bucket.samples.push(posterior.mean / costUsd);
466
485
  }
467
486
  const rows = [...grouped.entries()].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([operator, bucket]) => ({
468
487
  operator,
@@ -480,6 +499,7 @@ function operatorYield(state, options = {}) {
480
499
  return {
481
500
  data: {
482
501
  split,
502
+ method: YIELD_METHOD,
483
503
  rows
484
504
  },
485
505
  signal: {
@@ -488,6 +508,27 @@ function operatorYield(state, options = {}) {
488
508
  }
489
509
  };
490
510
  }
511
+ /** The known cost of producing and screening `node`, which `edge` registered;
512
+ * null when any part of it is unknown. The screen ends at the node's first
513
+ * decision: the allocator records `advanced` before it allocates a further
514
+ * rung, and the claim decides `finalist` before it allocates test cells. */
515
+ function screenCostUsd(state, node, edge, childEdges) {
516
+ let usd = 0;
517
+ if (edge.proposer !== null) {
518
+ const { operationId } = edge.proposer;
519
+ if (operationId === null) return null;
520
+ const operation = state.operation(operationId);
521
+ if (!operation?.recorded || !operation.costKnown) return null;
522
+ usd += operation.spentUsd / childEdges.get(operationId);
523
+ }
524
+ const screenEnd = node.decisions[0]?.sequence ?? Number.POSITIVE_INFINITY;
525
+ for (const cell of state.cells({ nodeId: node.nodeId })) {
526
+ if (cell.allocatedSequence > screenEnd) continue;
527
+ if (!cell.costKnown || cell.attempts === 0 && cell.cancelled === null) return null;
528
+ usd += cell.spentUsd;
529
+ }
530
+ return usd;
531
+ }
491
532
  function statusKey(status) {
492
533
  return status ?? "undecided";
493
534
  }
@@ -2424,4 +2465,4 @@ function errorMessage(error) {
2424
2465
  //#endregion
2425
2466
  export { searchEstimateMethod as C, paretoFrontier as D, dominates as E, paretoFrontierWithCrowding as O, searchCellSetDigest as S, seedFromDigest as T, rankingSplit as _, searchPolicyView as a, estimateNode as b, planSearchClaim as c, pairedPromotionPower as d, requiredPairsForPairedPromotion as f, INSUFFICIENT_FROM as g, operatorYield as h, searchExpansionIndex as i, searchClaimReserveUsd as l, MIN_OUTCOMES_FOR_WEIGHT as m, runSearch as n, SEARCH_CLAIM_RULE as o, EXPANSION_OPERATORS as p, searchDivergence as r, decideSearchClaim as s, SEARCH_KERNEL_SOURCE as t, verifySearchClaim as u, summarizeSamples as v, searchPosterior as w, estimateNodeFromCells as x, SEARCH_ESTIMATOR as y };
2426
2467
 
2427
- //# sourceMappingURL=search-kernel-CumYAjA3.js.map
2468
+ //# sourceMappingURL=search-kernel-AVgIjXaI.js.map