@tangle-network/agent-eval 0.144.11 → 0.144.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/agent-profile-B9_GGsG8.d.ts +84 -0
- package/dist/agent-profile-B9_GGsG8.d.ts.map +1 -0
- package/dist/{agent-profile-cell-BOP-iA9Q.d.ts → agent-profile-cell-BkcRDikH.d.ts} +2 -2
- package/dist/{agent-profile-cell-BOP-iA9Q.d.ts.map → agent-profile-cell-BkcRDikH.d.ts.map} +1 -1
- package/dist/analyst/index.d.ts +134 -16
- package/dist/analyst/index.d.ts.map +1 -1
- package/dist/analyst/index.js +364 -10
- package/dist/analyst/index.js.map +1 -1
- package/dist/backend-integrity-CsVin_Wb.d.ts +280 -0
- package/dist/backend-integrity-CsVin_Wb.d.ts.map +1 -0
- package/dist/{baseline-C-GocmIW.js → baseline-BhPRQBVn.js} +3 -2
- package/dist/{baseline-C-GocmIW.js.map → baseline-BhPRQBVn.js.map} +1 -1
- package/dist/{benchmark-CWeqGl7x.js → benchmark-BhT16ep9.js} +2 -2
- package/dist/{benchmark-CWeqGl7x.js.map → benchmark-BhT16ep9.js.map} +1 -1
- package/dist/{agent-profile-DPi7IZg7.d.ts → benchmark-Ceoan7vk.d.ts} +4 -91
- package/dist/benchmark-Ceoan7vk.d.ts.map +1 -0
- package/dist/{benchmark-command-BteMFN62.js → benchmark-command-CY6cbhOB.js} +36 -79
- package/dist/benchmark-command-CY6cbhOB.js.map +1 -0
- package/dist/benchmarks/index.d.ts +244 -2
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/index.js +733 -1
- package/dist/benchmarks/index.js.map +1 -0
- package/dist/builder-eval/index.d.ts +23 -2
- package/dist/builder-eval/index.d.ts.map +1 -1
- package/dist/builder-eval/index.js +227 -3
- package/dist/builder-eval/index.js.map +1 -1
- package/dist/campaign/index.d.ts +10 -8
- package/dist/campaign/index.js +9 -6
- package/dist/{campaign-C2TTzQII.js → campaign-BYjBAypg.js} +21 -634
- package/dist/campaign-BYjBAypg.js.map +1 -0
- package/dist/{canonical-D011XM8r.js → canonical-D-XsTQ6_.js} +2 -2
- package/dist/{canonical-D011XM8r.js.map → canonical-D-XsTQ6_.js.map} +1 -1
- package/dist/{index-CQTZ-4XN.d.ts → capture-fetch-DDvpjVRU.d.ts} +3 -3
- package/dist/capture-fetch-DDvpjVRU.d.ts.map +1 -0
- package/dist/{default-registry-BmktKy8r.js → chat-client-Bp4Ebuuc.js} +1276 -1276
- package/dist/chat-client-Bp4Ebuuc.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{client-C9gzZE59.d.ts → client-KUbGulm_.d.ts} +4 -4
- package/dist/{client-C9gzZE59.d.ts.map → client-KUbGulm_.d.ts.map} +1 -1
- package/dist/contract/index.d.ts +13 -390
- package/dist/contract/index.d.ts.map +1 -1
- package/dist/contract/index.js +18 -542
- package/dist/contract/index.js.map +1 -1
- package/dist/{cost-ledger-DMFxsLKr.js → cost-ledger-BSe92yAV.js} +3 -3
- package/dist/{cost-ledger-DMFxsLKr.js.map → cost-ledger-BSe92yAV.js.map} +1 -1
- package/dist/{cost-ledger-Bv_e8XHY.d.ts → cost-ledger-DbQdN3nO.d.ts} +2 -2
- package/dist/{cost-ledger-Bv_e8XHY.d.ts.map → cost-ledger-DbQdN3nO.d.ts.map} +1 -1
- package/dist/{counterfactual-CxmxAONP.d.ts → counterfactual--bpysZF0.d.ts} +2 -14
- package/dist/{counterfactual-CxmxAONP.d.ts.map → counterfactual--bpysZF0.d.ts.map} +1 -1
- package/dist/{counterfactual-CWPTrMH7.js → counterfactual-lDfCx0Uz.js} +3 -31
- package/dist/{counterfactual-CWPTrMH7.js.map → counterfactual-lDfCx0Uz.js.map} +1 -1
- package/dist/{dataset-C8xaLXdY.d.ts → dataset-CJjKqQfA.d.ts} +2 -8
- package/dist/dataset-CJjKqQfA.d.ts.map +1 -0
- package/dist/{default-registry-Bf8Woqmq.d.ts → default-registry-Di6HP6pG.d.ts} +7 -12
- package/dist/default-registry-Di6HP6pG.d.ts.map +1 -0
- package/dist/{analyze-runs-C30yljDJ.js → define-agent-eval-iqjT--ZZ.js} +542 -130
- package/dist/define-agent-eval-iqjT--ZZ.js.map +1 -0
- package/dist/define-agent-eval-sH24zBfM.d.ts +388 -0
- package/dist/define-agent-eval-sH24zBfM.d.ts.map +1 -0
- package/dist/descriptive-B5MwKfbf.js +144 -0
- package/dist/descriptive-B5MwKfbf.js.map +1 -0
- package/dist/{dspy-rlm-engine-DbTk4JdR.js → dspy-rlm-engine-B_qhSc21.js} +4 -4
- package/dist/{dspy-rlm-engine-DbTk4JdR.js.map → dspy-rlm-engine-B_qhSc21.js.map} +1 -1
- package/dist/effect-sizes-DiH8MGOH.js +82 -0
- package/dist/effect-sizes-DiH8MGOH.js.map +1 -0
- package/dist/{engine-3hL-XqwJ.d.ts → engine-otFpE2gF.d.ts} +10 -38
- package/dist/engine-otFpE2gF.d.ts.map +1 -0
- package/dist/{errors-CKPfb2aH.d.ts → errors-DEE6u6ot.d.ts} +2 -14
- package/dist/{errors-CKPfb2aH.d.ts.map → errors-DEE6u6ot.d.ts.map} +1 -1
- package/dist/{errors-D-LKuDhb.js → errors-Dngq5h35.js} +2 -8
- package/dist/{errors-D-LKuDhb.js.map → errors-Dngq5h35.js.map} +1 -1
- package/dist/{eval-campaign-B_7wcnav.js → eval-campaign-UB-usSQ2.js} +6 -6
- package/dist/{eval-campaign-B_7wcnav.js.map → eval-campaign-UB-usSQ2.js.map} +1 -1
- package/dist/{exact-types-DSFFpLLI.d.ts → exact-types-BH1twmAJ.d.ts} +2 -2
- package/dist/{exact-types-DSFFpLLI.d.ts.map → exact-types-BH1twmAJ.d.ts.map} +1 -1
- package/dist/experiment/index.d.ts +9 -6
- package/dist/experiment/index.d.ts.map +1 -1
- package/dist/experiment/index.js +11 -7
- package/dist/experiment/index.js.map +1 -1
- package/dist/experiment-tracker-C29gXM4B.js +269 -0
- package/dist/experiment-tracker-C29gXM4B.js.map +1 -0
- package/dist/{experiment-tracker-IMntXr6J.d.ts → experiment-tracker-DWHZBAYL.d.ts} +77 -121
- package/dist/experiment-tracker-DWHZBAYL.d.ts.map +1 -0
- package/dist/{external-optimizer-contracts-CZuJNcT5.d.ts → external-optimizer-contracts-lixrOZdX.d.ts} +3 -3
- package/dist/{external-optimizer-contracts-CZuJNcT5.d.ts.map → external-optimizer-contracts-lixrOZdX.d.ts.map} +1 -1
- package/dist/external-optimizer-process-BTiNB-RH.js +301 -0
- package/dist/external-optimizer-process-BTiNB-RH.js.map +1 -0
- package/dist/{single-run-lock-DFWHEB09.js → external-optimizer-subprocess-DrJ9hR8u.js} +144 -438
- package/dist/external-optimizer-subprocess-DrJ9hR8u.js.map +1 -0
- package/dist/extract-usage-BrQ8mCLX.js +155 -0
- package/dist/extract-usage-BrQ8mCLX.js.map +1 -0
- package/dist/{failure-cluster-CqcvCcdR.d.ts → failure-cluster-BLURuWG4.d.ts} +2 -3
- package/dist/failure-cluster-BLURuWG4.d.ts.map +1 -0
- package/dist/{feedback-trajectory-CacHpxsp.d.ts → feedback-trajectory-juOozjAc.d.ts} +5 -36
- package/dist/feedback-trajectory-juOozjAc.d.ts.map +1 -0
- package/dist/fuzz.d.ts +2 -2
- package/dist/fuzz.js +2 -2
- package/dist/hosted/index.d.ts +3 -3
- package/dist/{index-CvSN3IG1.d.ts → index-B8Ui1mr1.d.ts} +2 -2
- package/dist/{index-CvSN3IG1.d.ts.map → index-B8Ui1mr1.d.ts.map} +1 -1
- package/dist/{skill-usage-CO9OLRBx.d.ts → index-BWDrSVfw.d.ts} +11 -136
- package/dist/index-BWDrSVfw.d.ts.map +1 -0
- package/dist/index-Ba3YrbAL.d.ts +1 -0
- package/dist/{index-BnEuDAK2.d.ts → index-COQYtuRF.d.ts} +3 -3
- package/dist/{index-BnEuDAK2.d.ts.map → index-COQYtuRF.d.ts.map} +1 -1
- package/dist/{index-C3ssXVLv.d.ts → index-CvjYbU0D.d.ts} +2 -2
- package/dist/{index-C3ssXVLv.d.ts.map → index-CvjYbU0D.d.ts.map} +1 -1
- package/dist/{index-DPPGNJ_R.d.ts → index-DSmEylT9.d.ts} +17 -115
- package/dist/index-DSmEylT9.d.ts.map +1 -0
- package/dist/index.d.ts +2397 -5308
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5914 -10496
- package/dist/index.js.map +1 -1
- package/dist/{insight-report-CgX_s0Ez.d.ts → insight-report-CRi-Ufrj.d.ts} +4 -4
- package/dist/{insight-report-CgX_s0Ez.d.ts.map → insight-report-CRi-Ufrj.d.ts.map} +1 -1
- package/dist/{integrity-MLzHOfV9.js → integrity-Cy9WHAtb.js} +2 -2
- package/dist/{integrity-MLzHOfV9.js.map → integrity-Cy9WHAtb.js.map} +1 -1
- package/dist/{integrity-DY6tIbl0.js → integrity-DysDBWDu.js} +2 -2
- package/dist/{integrity-DY6tIbl0.js.map → integrity-DysDBWDu.js.map} +1 -1
- package/dist/{integrity-BuqEKu-x.d.ts → integrity-OrcI9Nau.d.ts} +3 -3
- package/dist/{integrity-BuqEKu-x.d.ts.map → integrity-OrcI9Nau.d.ts.map} +1 -1
- package/dist/internal-BDHPCnjk.js +230 -0
- package/dist/internal-BDHPCnjk.js.map +1 -0
- package/dist/judge-calibration-C5CbMYce.d.ts +117 -0
- package/dist/judge-calibration-C5CbMYce.d.ts.map +1 -0
- package/dist/judge-calibration-DZkWrm5H.js +317 -0
- package/dist/judge-calibration-DZkWrm5H.js.map +1 -0
- package/dist/{kind-factory-B8-r8-y8.js → kind-factory-CPmSd58s.js} +208 -208
- package/dist/{kind-factory-B8-r8-y8.js.map → kind-factory-CPmSd58s.js.map} +1 -1
- package/dist/ledger-core/index.d.ts +1 -1
- package/dist/ledger-core/index.js +2 -2
- package/dist/{ledger-core-DXZIqu17.js → ledger-core-BmZt19oQ.js} +110 -110
- package/dist/{ledger-core-DXZIqu17.js.map → ledger-core-BmZt19oQ.js.map} +1 -1
- package/dist/{llm-client-DzvMUsS_.js → llm-client-d0-2TT1g.js} +4 -64
- package/dist/{llm-client-DzvMUsS_.js.map → llm-client-d0-2TT1g.js.map} +1 -1
- package/dist/{skillopt-optimization-method-CQdVeM8k.js → llm-judge-dZ8P6nGI.js} +3349 -5401
- package/dist/llm-judge-dZ8P6nGI.js.map +1 -0
- package/dist/matrix/index.d.ts +2 -2
- package/dist/meta-eval/index.d.ts +3 -3
- package/dist/meta-eval/index.js +3 -3
- package/dist/{metrics-C9YY1OcL.js → metrics-Cl0L1KUy.js} +2 -108
- package/dist/{metrics-C9YY1OcL.js.map → metrics-Cl0L1KUy.js.map} +1 -1
- package/dist/{mint-B2O60ACG.js → mint-Dj9Ww_3I.js} +4 -4
- package/dist/{mint-B2O60ACG.js.map → mint-Dj9Ww_3I.js.map} +1 -1
- package/dist/{multi-layer-verifier-DnAqwl0h.d.ts → multi-layer-verifier-DIguZc8Z.d.ts} +3 -3
- package/dist/{multi-layer-verifier-DnAqwl0h.d.ts.map → multi-layer-verifier-DIguZc8Z.d.ts.map} +1 -1
- package/dist/multiplicity-DIWHvysC.d.ts +43 -0
- package/dist/multiplicity-DIWHvysC.d.ts.map +1 -0
- package/dist/multishot/index.d.ts +3 -3
- package/dist/multishot/index.js +1 -1
- package/dist/openapi.json +1 -1
- package/dist/{opencode-sqlite-8r6WUfHc.js → opencode-sqlite-DJWAXLms.js} +2 -2
- package/dist/{opencode-sqlite-8r6WUfHc.js.map → opencode-sqlite-DJWAXLms.js.map} +1 -1
- package/dist/package-version-D7lQHt_-.js +34 -0
- package/dist/package-version-D7lQHt_-.js.map +1 -0
- package/dist/paired-arms-D-XRF_fy.js +1045 -0
- package/dist/paired-arms-D-XRF_fy.js.map +1 -0
- package/dist/paired-promotion-decision-CGzg0cI_.d.ts +251 -0
- package/dist/paired-promotion-decision-CGzg0cI_.d.ts.map +1 -0
- package/dist/paired-tests-BHIhYVdu.js +213 -0
- package/dist/paired-tests-BHIhYVdu.js.map +1 -0
- package/dist/pareto-BqNW3LJR.d.ts +117 -0
- package/dist/pareto-BqNW3LJR.d.ts.map +1 -0
- package/dist/pipelines/index.d.ts +3 -64
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +4 -284
- package/dist/pipelines/index.js.map +1 -1
- package/dist/power-and-mde-CHIrXJll.js +195 -0
- package/dist/power-and-mde-CHIrXJll.js.map +1 -0
- package/dist/{promotion-policy-CrLrmys8.js → power-preflight-DEw-uC7q.js} +4 -184
- package/dist/power-preflight-DEw-uC7q.js.map +1 -0
- package/dist/pre-registration-CZwSFQS4.d.ts +577 -0
- package/dist/pre-registration-CZwSFQS4.d.ts.map +1 -0
- package/dist/{prime-protocol-BfSalTfR.js → prime-protocol-6tZTVsWm.js} +72 -21
- package/dist/prime-protocol-6tZTVsWm.js.map +1 -0
- package/dist/produced-state-DU79a81m.js +586 -0
- package/dist/produced-state-DU79a81m.js.map +1 -0
- package/dist/profile-cell.d.ts +1 -1
- package/dist/profile-cell.js +1 -1
- package/dist/promotion-policy-D0nPhkSy.d.ts +134 -0
- package/dist/promotion-policy-D0nPhkSy.d.ts.map +1 -0
- package/dist/promotion-policy-xzA40Evo.js +186 -0
- package/dist/promotion-policy-xzA40Evo.js.map +1 -0
- package/dist/{skillopt-optimization-method-USDKhxSA.d.ts → provenance-CCdxgLDT.d.ts} +57 -478
- package/dist/provenance-CCdxgLDT.d.ts.map +1 -0
- package/dist/registry-oJeeI4-a.d.ts +178 -0
- package/dist/registry-oJeeI4-a.d.ts.map +1 -0
- package/dist/{release-report-DA2BCu5a.d.ts → release-confidence-BFRE5WSp.d.ts} +180 -112
- package/dist/release-confidence-BFRE5WSp.d.ts.map +1 -0
- package/dist/{release-report-BUYmoKo2.js → release-confidence-CxDuiAev.js} +125 -217
- package/dist/release-confidence-CxDuiAev.js.map +1 -0
- package/dist/reporting.d.ts +6 -5
- package/dist/reporting.js +7 -5
- package/dist/{researcher-BchpD55R.d.ts → researcher-DaN4GST-.d.ts} +7 -40
- package/dist/{researcher-BchpD55R.d.ts.map → researcher-DaN4GST-.d.ts.map} +1 -1
- package/dist/{reward-hacking-BDToousL.js → reward-hacking-DNgjilrV.js} +3 -3
- package/dist/reward-hacking-DNgjilrV.js.map +1 -0
- package/dist/{reward-hacking-BI0OMAlo.d.ts → reward-hacking-DSSTuI9r.d.ts} +5 -5
- package/dist/{reward-hacking-BI0OMAlo.d.ts.map → reward-hacking-DSSTuI9r.d.ts.map} +1 -1
- package/dist/rl.d.ts +7 -7
- package/dist/rl.js +11 -10
- package/dist/rl.js.map +1 -1
- package/dist/rollout/index.d.ts +2 -2
- package/dist/rollout/index.js +4 -4
- package/dist/{rollout-DRrksrcV.js → rollout-BWtw0I_6.js} +3 -3
- package/dist/{rollout-DRrksrcV.js.map → rollout-BWtw0I_6.js.map} +1 -1
- package/dist/{rubric-predictive-validity-DvkjPYCe.d.ts → rubric-predictive-validity-BgxtKe4G.d.ts} +2 -2
- package/dist/{rubric-predictive-validity-DvkjPYCe.d.ts.map → rubric-predictive-validity-BgxtKe4G.d.ts.map} +1 -1
- package/dist/{rubric-predictive-validity-BRR632r1.js → rubric-predictive-validity-Cwwyd7ah.js} +2 -2
- package/dist/{rubric-predictive-validity-BRR632r1.js.map → rubric-predictive-validity-Cwwyd7ah.js.map} +1 -1
- package/dist/{run-record-BmSPWXJR.js → run-record-BvHPVS-i.js} +3 -3
- package/dist/{run-record-BmSPWXJR.js.map → run-record-BvHPVS-i.js.map} +1 -1
- package/dist/{run-record-CF4Dwpxr.d.ts → run-record-CKiihE6f.d.ts} +4 -4
- package/dist/{run-record-CF4Dwpxr.d.ts.map → run-record-CKiihE6f.d.ts.map} +1 -1
- package/dist/{proposal-findings-2GIUo1et.js → run-score-lDzV0X8j.js} +31 -31
- package/dist/run-score-lDzV0X8j.js.map +1 -0
- package/dist/sandbox-harness-BlSOu4LX.d.ts +70 -0
- package/dist/sandbox-harness-BlSOu4LX.d.ts.map +1 -0
- package/dist/{schema-Cef2cFmb2.d.ts → schema-Cef2cFmb.d.ts} +1 -1
- package/dist/schema-Cef2cFmb.d.ts.map +1 -0
- package/dist/semantic-concept-judge-BiJxScqe.js +406 -0
- package/dist/semantic-concept-judge-BiJxScqe.js.map +1 -0
- package/dist/{sequential-D-BLJBKU.js → sequential-C458DXNf.js} +4 -3
- package/dist/{sequential-D-BLJBKU.js.map → sequential-C458DXNf.js.map} +1 -1
- package/dist/sequential-eprocess-CbUt2htw.js +83 -0
- package/dist/sequential-eprocess-CbUt2htw.js.map +1 -0
- package/dist/series-convergence-D1cL1f-4.d.ts +129 -0
- package/dist/series-convergence-D1cL1f-4.d.ts.map +1 -0
- package/dist/{server-iu0ede49.js → server-ulsOdrTI.js} +5 -21
- package/dist/server-ulsOdrTI.js.map +1 -0
- package/dist/skillopt-optimization-method-C5cotF4E.d.ts +427 -0
- package/dist/skillopt-optimization-method-C5cotF4E.d.ts.map +1 -0
- package/dist/skillopt-optimization-method-jjdnc3YK.js +1999 -0
- package/dist/skillopt-optimization-method-jjdnc3YK.js.map +1 -0
- package/dist/{statistical-heldout-TQ-4CYiN.d.ts → statistical-heldout-DoFF5KJX.d.ts} +5 -278
- package/dist/statistical-heldout-DoFF5KJX.d.ts.map +1 -0
- package/dist/{store-otlp-Dw8PPIlL.js → store-otlp-CsptLYpN.js} +3 -3
- package/dist/{store-otlp-Dw8PPIlL.js.map → store-otlp-CsptLYpN.js.map} +1 -1
- package/dist/store-tool-spans-Cq9mFd-q.js +667 -0
- package/dist/store-tool-spans-Cq9mFd-q.js.map +1 -0
- package/dist/store-tool-spans-DbDLOBOb.d.ts +342 -0
- package/dist/store-tool-spans-DbDLOBOb.d.ts.map +1 -0
- package/dist/student-t-CvBq2mve.js +38 -0
- package/dist/student-t-CvBq2mve.js.map +1 -0
- package/dist/{summary-report-Lf-5I7xh.js → summary-report-Blysd6Z2.js} +6 -3
- package/dist/{summary-report-Lf-5I7xh.js.map → summary-report-Blysd6Z2.js.map} +1 -1
- package/dist/{summary-report-BNR7DWTj.d.ts → summary-report-CaL-Hnxt.d.ts} +5 -5
- package/dist/{summary-report-BNR7DWTj.d.ts.map → summary-report-CaL-Hnxt.d.ts.map} +1 -1
- package/dist/supervisor-run/index.d.ts +391 -3
- package/dist/supervisor-run/index.d.ts.map +1 -0
- package/dist/supervisor-run/index.js +1689 -2
- package/dist/{supervisor-run-D_sokXcO.js.map → supervisor-run/index.js.map} +1 -1
- package/dist/{extract-usage-CdZdoj1s.js → task-failure-attributes-CpQ4y5RD.js} +5 -157
- package/dist/task-failure-attributes-CpQ4y5RD.js.map +1 -0
- package/dist/{tool-groups-CZPGGlHf.d.ts → tool-groups-Cteb03Ps.d.ts} +3 -3
- package/dist/tool-groups-Cteb03Ps.d.ts.map +1 -0
- package/dist/tool-waste-BDdBZG1F.js +803 -0
- package/dist/tool-waste-BDdBZG1F.js.map +1 -0
- package/dist/tool-waste-DjRDEsuI.d.ts +128 -0
- package/dist/tool-waste-DjRDEsuI.d.ts.map +1 -0
- package/dist/trace-repair/index.d.ts +14 -5
- package/dist/trace-repair/index.d.ts.map +1 -1
- package/dist/trace-repair/index.js +35 -7
- package/dist/trace-repair/index.js.map +1 -1
- package/dist/traces.d.ts +406 -7
- package/dist/traces.d.ts.map +1 -0
- package/dist/traces.js +1011 -10
- package/dist/traces.js.map +1 -0
- package/dist/trajectory-replay/index.d.ts +16 -3
- package/dist/trajectory-replay/index.d.ts.map +1 -1
- package/dist/trajectory-replay/index.js +52 -5
- package/dist/trajectory-replay/index.js.map +1 -1
- package/dist/types-BEPZc6eo.d.ts +93 -0
- package/dist/types-BEPZc6eo.d.ts.map +1 -0
- package/dist/{usage-receipt-t7vAzCRQ.js → types-BI4fT3HN.js} +67 -67
- package/dist/types-BI4fT3HN.js.map +1 -0
- package/dist/{types-BnjdJ70P.d.ts → types-BZ59Ahr8.d.ts} +5 -5
- package/dist/{types-BnjdJ70P.d.ts.map → types-BZ59Ahr8.d.ts.map} +1 -1
- package/dist/{types-D216SgwM.d.ts → types-Cx3YUh2r.d.ts} +4 -241
- package/dist/types-Cx3YUh2r.d.ts.map +1 -0
- package/dist/{types-BvDKaULh.d.ts → types-DLQx4mKU.d.ts} +4 -4
- package/dist/{types-BvDKaULh.d.ts.map → types-DLQx4mKU.d.ts.map} +1 -1
- package/dist/{types-D4mog56g.d.ts → types-yLK8gXE9.d.ts} +2 -2
- package/dist/{types-D4mog56g.d.ts.map → types-yLK8gXE9.d.ts.map} +1 -1
- package/dist/verdict-BndeTAh_.js +61 -0
- package/dist/verdict-BndeTAh_.js.map +1 -0
- package/dist/verdict-E4eRNf7-.d.ts +392 -0
- package/dist/verdict-E4eRNf7-.d.ts.map +1 -0
- package/dist/{verdict-cache-BCcOh0kF.js → verdict-cache-mZf5FEiY.js} +3 -55
- package/dist/{verdict-cache-BCcOh0kF.js.map → verdict-cache-mZf5FEiY.js.map} +1 -1
- package/dist/wire/index.d.ts +3 -3
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +1 -1
- package/docs/charter.md +3 -3
- package/docs/control-runtime.md +3 -42
- package/docs/experiment.md +0 -1
- package/docs/feature-guide.md +2 -2
- package/docs/trace-repair-grader.md +1 -0
- package/docs/trajectory-replay.md +1 -0
- package/docs/verdicts.md +43 -0
- package/docs/verification-strategies.md +3 -2
- package/package.json +6 -11
- package/dist/agent-profile-DPi7IZg7.d.ts.map +0 -1
- package/dist/analyze-runs-C30yljDJ.js.map +0 -1
- package/dist/baseline-CavEbRyH.d.ts +0 -136
- package/dist/baseline-CavEbRyH.d.ts.map +0 -1
- package/dist/benchmark-command-BteMFN62.js.map +0 -1
- package/dist/benchmarks-Dzs8CKb1.js +0 -755
- package/dist/benchmarks-Dzs8CKb1.js.map +0 -1
- package/dist/campaign-C2TTzQII.js.map +0 -1
- package/dist/completion-verifier-DJA5BhPb.d.ts +0 -414
- package/dist/completion-verifier-DJA5BhPb.d.ts.map +0 -1
- package/dist/control.d.ts +0 -3
- package/dist/control.js +0 -2
- package/dist/dataset-C8xaLXdY.d.ts.map +0 -1
- package/dist/default-registry-Bf8Woqmq.d.ts.map +0 -1
- package/dist/default-registry-BmktKy8r.js.map +0 -1
- package/dist/engine-3hL-XqwJ.d.ts.map +0 -1
- package/dist/experiment-tracker-CnRICnMl.js +0 -500
- package/dist/experiment-tracker-CnRICnMl.js.map +0 -1
- package/dist/experiment-tracker-IMntXr6J.d.ts.map +0 -1
- package/dist/extract-usage-CdZdoj1s.js.map +0 -1
- package/dist/failure-cluster-CqcvCcdR.d.ts.map +0 -1
- package/dist/feedback-trajectory-CacHpxsp.d.ts.map +0 -1
- package/dist/index-BZ3-y4YL.d.ts +0 -391
- package/dist/index-BZ3-y4YL.d.ts.map +0 -1
- package/dist/index-CQTZ-4XN.d.ts.map +0 -1
- package/dist/index-DPPGNJ_R.d.ts.map +0 -1
- package/dist/index-YE4KdKbO2.d.ts +0 -335
- package/dist/index-YE4KdKbO2.d.ts.map +0 -1
- package/dist/paired-arms-iZ08VFMN.js +0 -260
- package/dist/paired-arms-iZ08VFMN.js.map +0 -1
- package/dist/paired-promotion-decision-B6zJ3gYM.d.ts +0 -114
- package/dist/paired-promotion-decision-B6zJ3gYM.d.ts.map +0 -1
- package/dist/prime-protocol-BfSalTfR.js.map +0 -1
- package/dist/promotion-policy-Ckjhzg_4.d.ts +0 -289
- package/dist/promotion-policy-Ckjhzg_4.d.ts.map +0 -1
- package/dist/promotion-policy-CrLrmys8.js.map +0 -1
- package/dist/proposal-findings-2GIUo1et.js.map +0 -1
- package/dist/propose-review-control-dSNPjFUH.js +0 -1458
- package/dist/propose-review-control-dSNPjFUH.js.map +0 -1
- package/dist/release-report-BUYmoKo2.js.map +0 -1
- package/dist/release-report-DA2BCu5a.d.ts.map +0 -1
- package/dist/replay-CohS93nE.js +0 -1859
- package/dist/replay-CohS93nE.js.map +0 -1
- package/dist/replay-DbhZ4Ked.d.ts +0 -834
- package/dist/replay-DbhZ4Ked.d.ts.map +0 -1
- package/dist/reward-hacking-BDToousL.js.map +0 -1
- package/dist/run-evidence-Dhi3C81V.d.ts +0 -225
- package/dist/run-evidence-Dhi3C81V.d.ts.map +0 -1
- package/dist/schema-Cef2cFmb2.d.ts.map +0 -1
- package/dist/semantic-concept-judge-D1z-KepS.js +0 -767
- package/dist/semantic-concept-judge-D1z-KepS.js.map +0 -1
- package/dist/series-convergence-ofsqPWhs.d.ts +0 -35
- package/dist/series-convergence-ofsqPWhs.d.ts.map +0 -1
- package/dist/server-iu0ede49.js.map +0 -1
- package/dist/single-run-lock-DFWHEB09.js.map +0 -1
- package/dist/skill-usage-CO9OLRBx.d.ts.map +0 -1
- package/dist/skillopt-optimization-method-CQdVeM8k.js.map +0 -1
- package/dist/skillopt-optimization-method-USDKhxSA.d.ts.map +0 -1
- package/dist/statistical-heldout-TQ-4CYiN.d.ts.map +0 -1
- package/dist/statistics-ByxzSiOM.js +0 -2212
- package/dist/statistics-ByxzSiOM.js.map +0 -1
- package/dist/statistics-D6Uebe_4.d.ts +0 -968
- package/dist/statistics-D6Uebe_4.d.ts.map +0 -1
- package/dist/supervisor-run-D_sokXcO.js +0 -1690
- package/dist/test-graded-scenario-D1TaI2va.d.ts +0 -141
- package/dist/test-graded-scenario-D1TaI2va.d.ts.map +0 -1
- package/dist/test-graded-scenario-JHcKQNpq.js +0 -318
- package/dist/test-graded-scenario-JHcKQNpq.js.map +0 -1
- package/dist/tool-groups-CZPGGlHf.d.ts.map +0 -1
- package/dist/tool-use-metrics-DEGMKycK.js +0 -370
- package/dist/tool-use-metrics-DEGMKycK.js.map +0 -1
- package/dist/types-D216SgwM.d.ts.map +0 -1
- package/dist/usage-receipt-t7vAzCRQ.js.map +0 -1
- package/dist/verdict-DExhxfgR.d.ts +0 -201
- package/dist/verdict-DExhxfgR.d.ts.map +0 -1
|
@@ -1,18 +1,139 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { a as appendLedgerLine,
|
|
1
|
+
import { s as ValidationError } from "./errors-Dngq5h35.js";
|
|
2
|
+
import { t as canonicalJson } from "./verdict-cache-mZf5FEiY.js";
|
|
3
|
+
import { c as costForTokenPricing, i as CostLedger } from "./cost-ledger-BSe92yAV.js";
|
|
4
|
+
import { a as appendLedgerLine, o as tryWithLedgerFileLock } from "./ledger-core-BmZt19oQ.js";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
|
-
import { isAbsolute, join, resolve } from "node:path";
|
|
7
6
|
import { randomBytes } from "node:crypto";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { isAbsolute, join, resolve } from "node:path";
|
|
8
|
+
import { tmpdir } from "node:os";
|
|
9
|
+
import { constants as constants$1 } from "node:buffer";
|
|
10
10
|
import { spawn } from "node:child_process";
|
|
11
11
|
import { lstat, mkdtemp, open, rm, writeFile } from "node:fs/promises";
|
|
12
|
-
import {
|
|
12
|
+
import { createServer } from "node:http";
|
|
13
|
+
//#region src/campaign/search-ledger-errors.ts
|
|
14
|
+
/** Base error for invalid search-ledger input or operations. */
|
|
15
|
+
var SearchLedgerError = class extends ValidationError {};
|
|
16
|
+
/** Error raised when durable search-ledger data fails an integrity check. */
|
|
17
|
+
var SearchLedgerIntegrityError = class extends SearchLedgerError {};
|
|
18
|
+
/** Error raised when an event identifier is reused with different content. */
|
|
19
|
+
var SearchLedgerConflictError = class extends SearchLedgerError {};
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/campaign/search-ledger-file.ts
|
|
22
|
+
/** Campaign binding of the generic journal file layer to search-ledger errors. */
|
|
23
|
+
const SEARCH_LEDGER_FILE_CONTEXT = {
|
|
24
|
+
subject: "search ledger",
|
|
25
|
+
integrityError: (message, options) => new SearchLedgerIntegrityError(message, options)
|
|
26
|
+
};
|
|
27
|
+
function appendSearchLedgerLine(path, line) {
|
|
28
|
+
appendLedgerLine(path, line, SEARCH_LEDGER_FILE_CONTEXT);
|
|
29
|
+
}
|
|
30
|
+
function tryWithSearchLedgerFileLock(ledgerPath, run) {
|
|
31
|
+
return tryWithLedgerFileLock(ledgerPath, SEARCH_LEDGER_FILE_CONTEXT, run);
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/campaign/storage.ts
|
|
35
|
+
/** Node-filesystem storage — the default. Lazily requires `node:fs` so the
|
|
36
|
+
* module imports cleanly in non-Node runtimes (where the caller passes
|
|
37
|
+
* `inMemoryCampaignStorage` instead and never constructs this).
|
|
38
|
+
*
|
|
39
|
+
* `createRequire(import.meta.url)` is the ESM-native lazy require — a bare
|
|
40
|
+
* `require` is a ReferenceError under `"type": "module"`, which is exactly
|
|
41
|
+
* the shape this package publishes. */
|
|
42
|
+
function fsCampaignStorage() {
|
|
43
|
+
const { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } = createRequire(import.meta.url)("node:fs");
|
|
44
|
+
return {
|
|
45
|
+
ensureDir(dir) {
|
|
46
|
+
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
|
|
47
|
+
},
|
|
48
|
+
exists(path) {
|
|
49
|
+
return existsSync(path);
|
|
50
|
+
},
|
|
51
|
+
read(path) {
|
|
52
|
+
try {
|
|
53
|
+
return readFileSync(path, "utf8");
|
|
54
|
+
} catch {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
write(path, content) {
|
|
59
|
+
writeFileSync(path, content);
|
|
60
|
+
},
|
|
61
|
+
append(path, content, expectedBytes) {
|
|
62
|
+
const result = tryWithSearchLedgerFileLock(path, () => {
|
|
63
|
+
let actualBytes = 0;
|
|
64
|
+
try {
|
|
65
|
+
actualBytes = statSync(path).size;
|
|
66
|
+
} catch (error) {
|
|
67
|
+
if (error.code !== "ENOENT") throw error;
|
|
68
|
+
}
|
|
69
|
+
if (actualBytes !== expectedBytes) return void 0;
|
|
70
|
+
appendSearchLedgerLine(path, content);
|
|
71
|
+
return expectedBytes + Buffer.byteLength(content);
|
|
72
|
+
});
|
|
73
|
+
return result.acquired ? result.value : void 0;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** In-memory storage for filesystem-less runtimes. Artifacts + trace spans
|
|
78
|
+
* live in a `Map` for the duration of the run; the `CampaignResult` is
|
|
79
|
+
* fully populated, but nothing is persisted to disk. */
|
|
80
|
+
function inMemoryCampaignStorage() {
|
|
81
|
+
const files = /* @__PURE__ */ new Map();
|
|
82
|
+
const dirs = /* @__PURE__ */ new Set();
|
|
83
|
+
return {
|
|
84
|
+
ensureDir(dir) {
|
|
85
|
+
dirs.add(dir);
|
|
86
|
+
},
|
|
87
|
+
exists(path) {
|
|
88
|
+
return files.has(path) || dirs.has(path);
|
|
89
|
+
},
|
|
90
|
+
read(path) {
|
|
91
|
+
const value = files.get(path);
|
|
92
|
+
if (value === void 0) return void 0;
|
|
93
|
+
return typeof value === "string" ? value : new TextDecoder().decode(value);
|
|
94
|
+
},
|
|
95
|
+
write(path, content) {
|
|
96
|
+
files.set(path, content);
|
|
97
|
+
},
|
|
98
|
+
append(path, content, expectedBytes) {
|
|
99
|
+
const current = files.get(path);
|
|
100
|
+
const currentText = current === void 0 ? "" : typeof current === "string" ? current : new TextDecoder().decode(current);
|
|
101
|
+
const currentBytes = new TextEncoder().encode(currentText).byteLength;
|
|
102
|
+
if (currentBytes !== expectedBytes) return void 0;
|
|
103
|
+
files.set(path, `${currentText}${content}`);
|
|
104
|
+
return currentBytes + new TextEncoder().encode(content).byteLength;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/** Open the durable spend account stored beside a logical run. */
|
|
109
|
+
function createRunCostLedger(input) {
|
|
110
|
+
const path = join(input.runDir, "cost-ledger.jsonl");
|
|
111
|
+
if (input.ensureRunDir ?? true) input.storage.ensureDir(input.runDir);
|
|
112
|
+
return new CostLedger({
|
|
113
|
+
costCeilingUsd: input.costCeilingUsd,
|
|
114
|
+
persistence: {
|
|
115
|
+
read: () => {
|
|
116
|
+
const stored = input.storage.read(path);
|
|
117
|
+
if (stored === void 0 && input.storage.exists(path)) throw new Error(`CostLedger: cannot read existing event log '${path}'`);
|
|
118
|
+
const events = stored ?? "";
|
|
119
|
+
return {
|
|
120
|
+
revision: String(new TextEncoder().encode(events).byteLength),
|
|
121
|
+
events
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
append: (expectedRevision, event) => {
|
|
125
|
+
const expectedBytes = Number(expectedRevision);
|
|
126
|
+
if (!Number.isSafeInteger(expectedBytes) || expectedBytes < 0) throw new Error(`CostLedger: invalid storage revision '${expectedRevision}'`);
|
|
127
|
+
const next = input.storage.append(path, event, expectedBytes);
|
|
128
|
+
return next === void 0 ? void 0 : String(next);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
13
134
|
//#region src/campaign/external-optimizer-contracts.ts
|
|
14
135
|
const MAX_TIMER_DELAY_MS$1 = 2147483647;
|
|
15
|
-
const MAXIMUM_JSON_BYTES = Math.min(constants.MAX_LENGTH - 1, constants.MAX_STRING_LENGTH);
|
|
136
|
+
const MAXIMUM_JSON_BYTES = Math.min(constants$1.MAX_LENGTH - 1, constants$1.MAX_STRING_LENGTH);
|
|
16
137
|
const DEFAULT_EXTERNAL_OPTIMIZER_PROCESS_LIMITS = Object.freeze({
|
|
17
138
|
maxInputBytes: 64 * 1024 * 1024,
|
|
18
139
|
maxResultBytes: 4 * 1024 * 1024,
|
|
@@ -29,7 +150,7 @@ function resolveExternalOptimizerProcessLimits(value, label = "external optimize
|
|
|
29
150
|
};
|
|
30
151
|
assertBoundedPositiveInteger(resolved.maxInputBytes, `${label}.maxInputBytes`, MAXIMUM_JSON_BYTES);
|
|
31
152
|
assertBoundedPositiveInteger(resolved.maxResultBytes, `${label}.maxResultBytes`, MAXIMUM_JSON_BYTES);
|
|
32
|
-
assertBoundedPositiveInteger(resolved.maxOutputChars, `${label}.maxOutputChars`, constants.MAX_STRING_LENGTH);
|
|
153
|
+
assertBoundedPositiveInteger(resolved.maxOutputChars, `${label}.maxOutputChars`, constants$1.MAX_STRING_LENGTH);
|
|
33
154
|
return resolved;
|
|
34
155
|
}
|
|
35
156
|
function resolveExternalOptimizerCallbackLimits(value, label = "external optimizer callback limits") {
|
|
@@ -180,7 +301,7 @@ async function startExternalOptimizerModelProxy(args) {
|
|
|
180
301
|
const activeHandlers = /* @__PURE__ */ new Set();
|
|
181
302
|
const server = createServer((request, response) => {
|
|
182
303
|
if (!accepting) {
|
|
183
|
-
sendJsonIfOpen
|
|
304
|
+
sendJsonIfOpen(response, 503, { error: "external optimizer model proxy is closing" });
|
|
184
305
|
return;
|
|
185
306
|
}
|
|
186
307
|
const controller = new AbortController();
|
|
@@ -272,7 +393,7 @@ async function startExternalOptimizerModelProxy(args) {
|
|
|
272
393
|
accepting = false;
|
|
273
394
|
const closingServer = closeServer(server);
|
|
274
395
|
server.closeIdleConnections?.();
|
|
275
|
-
const [serverResult] = await Promise.allSettled([closingServer, waitForActiveHandlers
|
|
396
|
+
const [serverResult] = await Promise.allSettled([closingServer, waitForActiveHandlers(activeHandlers)]);
|
|
276
397
|
if (activeControllers.size !== 0 || activeHandlers.size !== 0) throw new Error("external optimizer model proxy closed with active request work");
|
|
277
398
|
let executionError;
|
|
278
399
|
try {
|
|
@@ -290,12 +411,12 @@ async function handleModelProxyRequest(args) {
|
|
|
290
411
|
try {
|
|
291
412
|
const path = request.url ? new URL(request.url, "http://127.0.0.1").pathname : "";
|
|
292
413
|
if (request.method !== "POST" || !MODEL_PROXY_PATHS.has(path)) {
|
|
293
|
-
sendJsonIfOpen
|
|
414
|
+
sendJsonIfOpen(response, 404, { error: "not found" });
|
|
294
415
|
return;
|
|
295
416
|
}
|
|
296
417
|
const modelPath = path;
|
|
297
418
|
if (request.headers.authorization !== `Bearer ${args.token}`) {
|
|
298
|
-
sendJsonIfOpen
|
|
419
|
+
sendJsonIfOpen(response, 401, { error: "unauthorized" });
|
|
299
420
|
return;
|
|
300
421
|
}
|
|
301
422
|
const body = await readBody(request, args.args.budget.maxRequestBytes);
|
|
@@ -304,7 +425,7 @@ async function handleModelProxyRequest(args) {
|
|
|
304
425
|
const maximumCostUsd = args.args.budget.pricing ? costForTokenPricing(args.args.budget.pricing, maximumUsage) : void 0;
|
|
305
426
|
const reservation = args.nextReservation(maximumCostUsd);
|
|
306
427
|
if (!reservation.accepted) {
|
|
307
|
-
sendJsonIfOpen
|
|
428
|
+
sendJsonIfOpen(response, 429, { error: reservation.reason });
|
|
308
429
|
return;
|
|
309
430
|
}
|
|
310
431
|
const timeout = setTimeout(() => controller.abort(), args.args.budget.requestTimeoutMs ?? 3e5);
|
|
@@ -348,16 +469,16 @@ async function handleModelProxyRequest(args) {
|
|
|
348
469
|
if (!paid.succeeded) {
|
|
349
470
|
args.recordFailure(paid.error);
|
|
350
471
|
chargedForBudget = paid.receipt ? paid.receipt.usageUnknown || paid.receipt.costUnknown ? maximumCostUsd : paid.receipt.costUsd : void 0;
|
|
351
|
-
sendJsonIfOpen
|
|
472
|
+
sendJsonIfOpen(response, isAbortError(paid.error) ? 504 : paid.error instanceof ProviderResponseTooLargeError || paid.error instanceof MissingModelExecutionError || paid.error instanceof ModelExecutionPersistenceError || paid.error instanceof OwnerModelContractError ? 502 : 429, { error: paid.error.message });
|
|
352
473
|
return;
|
|
353
474
|
}
|
|
354
475
|
if (paid.value.modelCallFailed) {
|
|
355
|
-
sendJsonIfOpen
|
|
476
|
+
sendJsonIfOpen(response, 502, { error: paid.value.modelCallFailed });
|
|
356
477
|
return;
|
|
357
478
|
}
|
|
358
479
|
chargedForBudget = paid.value.usageComplete ? paid.receipt.costUsd : maximumCostUsd;
|
|
359
480
|
if (paid.value.usageRejected) {
|
|
360
|
-
sendJsonIfOpen
|
|
481
|
+
sendJsonIfOpen(response, 502, { error: paid.value.usageRejected });
|
|
361
482
|
return;
|
|
362
483
|
}
|
|
363
484
|
if (paid.value.status >= 200 && paid.value.status < 300) args.recordSuccessfulCompletion();
|
|
@@ -372,13 +493,13 @@ async function handleModelProxyRequest(args) {
|
|
|
372
493
|
args.settleReservation(maximumCostUsd, chargedForBudget);
|
|
373
494
|
}
|
|
374
495
|
} catch (error) {
|
|
375
|
-
sendJsonIfOpen
|
|
496
|
+
sendJsonIfOpen(response, error instanceof RequestBodyTooLargeError ? 413 : error instanceof Error && isAbortError(error) ? 503 : 400, { error: toErrorMessage(error) });
|
|
376
497
|
}
|
|
377
498
|
}
|
|
378
|
-
async function waitForActiveHandlers
|
|
499
|
+
async function waitForActiveHandlers(activeHandlers) {
|
|
379
500
|
while (activeHandlers.size > 0) await Promise.allSettled([...activeHandlers]);
|
|
380
501
|
}
|
|
381
|
-
function sendJsonIfOpen
|
|
502
|
+
function sendJsonIfOpen(response, status, body) {
|
|
382
503
|
if (response.destroyed || response.writableEnded) return;
|
|
383
504
|
sendJson(response, status, body);
|
|
384
505
|
}
|
|
@@ -1225,421 +1346,6 @@ function summarizeProcessOutput(capture, max = 4e3) {
|
|
|
1225
1346
|
return `${compact.slice(0, headChars)}...[${compact.length - max} chars omitted]...${compact.slice(-tailChars)}`;
|
|
1226
1347
|
}
|
|
1227
1348
|
//#endregion
|
|
1228
|
-
|
|
1229
|
-
/** Base error for invalid search-ledger input or operations. */
|
|
1230
|
-
var SearchLedgerError = class extends ValidationError {};
|
|
1231
|
-
/** Error raised when durable search-ledger data fails an integrity check. */
|
|
1232
|
-
var SearchLedgerIntegrityError = class extends SearchLedgerError {};
|
|
1233
|
-
/** Error raised when an event identifier is reused with different content. */
|
|
1234
|
-
var SearchLedgerConflictError = class extends SearchLedgerError {};
|
|
1235
|
-
//#endregion
|
|
1236
|
-
//#region src/campaign/search-ledger-file.ts
|
|
1237
|
-
/** Campaign binding of the generic journal file layer to search-ledger errors. */
|
|
1238
|
-
const SEARCH_LEDGER_FILE_CONTEXT = {
|
|
1239
|
-
subject: "search ledger",
|
|
1240
|
-
integrityError: (message, options) => new SearchLedgerIntegrityError(message, options)
|
|
1241
|
-
};
|
|
1242
|
-
function appendSearchLedgerLine(path, line) {
|
|
1243
|
-
appendLedgerLine(path, line, SEARCH_LEDGER_FILE_CONTEXT);
|
|
1244
|
-
}
|
|
1245
|
-
function tryWithSearchLedgerFileLock(ledgerPath, run) {
|
|
1246
|
-
return tryWithLedgerFileLock(ledgerPath, SEARCH_LEDGER_FILE_CONTEXT, run);
|
|
1247
|
-
}
|
|
1248
|
-
//#endregion
|
|
1249
|
-
//#region src/campaign/storage.ts
|
|
1250
|
-
/** Node-filesystem storage — the default. Lazily requires `node:fs` so the
|
|
1251
|
-
* module imports cleanly in non-Node runtimes (where the caller passes
|
|
1252
|
-
* `inMemoryCampaignStorage` instead and never constructs this).
|
|
1253
|
-
*
|
|
1254
|
-
* `createRequire(import.meta.url)` is the ESM-native lazy require — a bare
|
|
1255
|
-
* `require` is a ReferenceError under `"type": "module"`, which is exactly
|
|
1256
|
-
* the shape this package publishes. */
|
|
1257
|
-
function fsCampaignStorage() {
|
|
1258
|
-
const { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } = createRequire(import.meta.url)("node:fs");
|
|
1259
|
-
return {
|
|
1260
|
-
ensureDir(dir) {
|
|
1261
|
-
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
|
|
1262
|
-
},
|
|
1263
|
-
exists(path) {
|
|
1264
|
-
return existsSync(path);
|
|
1265
|
-
},
|
|
1266
|
-
read(path) {
|
|
1267
|
-
try {
|
|
1268
|
-
return readFileSync(path, "utf8");
|
|
1269
|
-
} catch {
|
|
1270
|
-
return;
|
|
1271
|
-
}
|
|
1272
|
-
},
|
|
1273
|
-
write(path, content) {
|
|
1274
|
-
writeFileSync(path, content);
|
|
1275
|
-
},
|
|
1276
|
-
append(path, content, expectedBytes) {
|
|
1277
|
-
const result = tryWithSearchLedgerFileLock(path, () => {
|
|
1278
|
-
let actualBytes = 0;
|
|
1279
|
-
try {
|
|
1280
|
-
actualBytes = statSync(path).size;
|
|
1281
|
-
} catch (error) {
|
|
1282
|
-
if (error.code !== "ENOENT") throw error;
|
|
1283
|
-
}
|
|
1284
|
-
if (actualBytes !== expectedBytes) return void 0;
|
|
1285
|
-
appendSearchLedgerLine(path, content);
|
|
1286
|
-
return expectedBytes + Buffer.byteLength(content);
|
|
1287
|
-
});
|
|
1288
|
-
return result.acquired ? result.value : void 0;
|
|
1289
|
-
}
|
|
1290
|
-
};
|
|
1291
|
-
}
|
|
1292
|
-
/** In-memory storage for filesystem-less runtimes. Artifacts + trace spans
|
|
1293
|
-
* live in a `Map` for the duration of the run; the `CampaignResult` is
|
|
1294
|
-
* fully populated, but nothing is persisted to disk. */
|
|
1295
|
-
function inMemoryCampaignStorage() {
|
|
1296
|
-
const files = /* @__PURE__ */ new Map();
|
|
1297
|
-
const dirs = /* @__PURE__ */ new Set();
|
|
1298
|
-
return {
|
|
1299
|
-
ensureDir(dir) {
|
|
1300
|
-
dirs.add(dir);
|
|
1301
|
-
},
|
|
1302
|
-
exists(path) {
|
|
1303
|
-
return files.has(path) || dirs.has(path);
|
|
1304
|
-
},
|
|
1305
|
-
read(path) {
|
|
1306
|
-
const value = files.get(path);
|
|
1307
|
-
if (value === void 0) return void 0;
|
|
1308
|
-
return typeof value === "string" ? value : new TextDecoder().decode(value);
|
|
1309
|
-
},
|
|
1310
|
-
write(path, content) {
|
|
1311
|
-
files.set(path, content);
|
|
1312
|
-
},
|
|
1313
|
-
append(path, content, expectedBytes) {
|
|
1314
|
-
const current = files.get(path);
|
|
1315
|
-
const currentText = current === void 0 ? "" : typeof current === "string" ? current : new TextDecoder().decode(current);
|
|
1316
|
-
const currentBytes = new TextEncoder().encode(currentText).byteLength;
|
|
1317
|
-
if (currentBytes !== expectedBytes) return void 0;
|
|
1318
|
-
files.set(path, `${currentText}${content}`);
|
|
1319
|
-
return currentBytes + new TextEncoder().encode(content).byteLength;
|
|
1320
|
-
}
|
|
1321
|
-
};
|
|
1322
|
-
}
|
|
1323
|
-
/** Open the durable spend account stored beside a logical run. */
|
|
1324
|
-
function createRunCostLedger(input) {
|
|
1325
|
-
const path = join(input.runDir, "cost-ledger.jsonl");
|
|
1326
|
-
if (input.ensureRunDir ?? true) input.storage.ensureDir(input.runDir);
|
|
1327
|
-
return new CostLedger({
|
|
1328
|
-
costCeilingUsd: input.costCeilingUsd,
|
|
1329
|
-
persistence: {
|
|
1330
|
-
read: () => {
|
|
1331
|
-
const stored = input.storage.read(path);
|
|
1332
|
-
if (stored === void 0 && input.storage.exists(path)) throw new Error(`CostLedger: cannot read existing event log '${path}'`);
|
|
1333
|
-
const events = stored ?? "";
|
|
1334
|
-
return {
|
|
1335
|
-
revision: String(new TextEncoder().encode(events).byteLength),
|
|
1336
|
-
events
|
|
1337
|
-
};
|
|
1338
|
-
},
|
|
1339
|
-
append: (expectedRevision, event) => {
|
|
1340
|
-
const expectedBytes = Number(expectedRevision);
|
|
1341
|
-
if (!Number.isSafeInteger(expectedBytes) || expectedBytes < 0) throw new Error(`CostLedger: invalid storage revision '${expectedRevision}'`);
|
|
1342
|
-
const next = input.storage.append(path, event, expectedBytes);
|
|
1343
|
-
return next === void 0 ? void 0 : String(next);
|
|
1344
|
-
}
|
|
1345
|
-
}
|
|
1346
|
-
});
|
|
1347
|
-
}
|
|
1348
|
-
//#endregion
|
|
1349
|
-
//#region src/campaign/external-optimizer-callback.ts
|
|
1350
|
-
async function startExternalOptimizerCallback(args) {
|
|
1351
|
-
assertCallbackConfig(args);
|
|
1352
|
-
const limits = resolveExternalOptimizerCallbackLimits(args.limits);
|
|
1353
|
-
args.signal?.throwIfAborted();
|
|
1354
|
-
let evaluations = 0;
|
|
1355
|
-
let accepting = true;
|
|
1356
|
-
let closePromise;
|
|
1357
|
-
const activeControllers = /* @__PURE__ */ new Set();
|
|
1358
|
-
const activeHandlers = /* @__PURE__ */ new Set();
|
|
1359
|
-
const proposedCandidateHashes = /* @__PURE__ */ new Set();
|
|
1360
|
-
let observationSequence = 0;
|
|
1361
|
-
const server = createServer((request, response) => {
|
|
1362
|
-
if (!accepting) {
|
|
1363
|
-
sendJsonIfOpen(response, 503, { error: "external optimizer callback is closing" });
|
|
1364
|
-
return;
|
|
1365
|
-
}
|
|
1366
|
-
const controller = new AbortController();
|
|
1367
|
-
const abortRequest = () => {
|
|
1368
|
-
request.destroy();
|
|
1369
|
-
response.destroy();
|
|
1370
|
-
};
|
|
1371
|
-
activeControllers.add(controller);
|
|
1372
|
-
controller.signal.addEventListener("abort", abortRequest, { once: true });
|
|
1373
|
-
let handler;
|
|
1374
|
-
handler = handleCallback(request, response, controller.signal, args, limits, () => {
|
|
1375
|
-
const accepted = args.acceptEvaluation ? args.acceptEvaluation() : evaluations + 1;
|
|
1376
|
-
if (accepted === void 0) return void 0;
|
|
1377
|
-
if (!Number.isSafeInteger(accepted) || accepted <= 0) throw new Error("external optimizer callback: invalid accepted evaluation count");
|
|
1378
|
-
if (accepted > args.maxEvaluations) return void 0;
|
|
1379
|
-
evaluations += 1;
|
|
1380
|
-
return accepted;
|
|
1381
|
-
}, (observation) => {
|
|
1382
|
-
if (!args.observe) return;
|
|
1383
|
-
args.observe({
|
|
1384
|
-
...observation,
|
|
1385
|
-
sequence: ++observationSequence
|
|
1386
|
-
});
|
|
1387
|
-
}, proposedCandidateHashes).finally(() => {
|
|
1388
|
-
controller.signal.removeEventListener("abort", abortRequest);
|
|
1389
|
-
activeControllers.delete(controller);
|
|
1390
|
-
activeHandlers.delete(handler);
|
|
1391
|
-
});
|
|
1392
|
-
activeHandlers.add(handler);
|
|
1393
|
-
handler.catch(() => void 0);
|
|
1394
|
-
});
|
|
1395
|
-
const port = await listenLocal(server);
|
|
1396
|
-
const close = () => {
|
|
1397
|
-
closePromise ??= closeCallbackServer();
|
|
1398
|
-
return closePromise;
|
|
1399
|
-
};
|
|
1400
|
-
const onAbort = () => {
|
|
1401
|
-
close().catch(() => void 0);
|
|
1402
|
-
};
|
|
1403
|
-
args.signal?.addEventListener("abort", onAbort, { once: true });
|
|
1404
|
-
if (args.signal?.aborted) onAbort();
|
|
1405
|
-
return {
|
|
1406
|
-
url: `http://127.0.0.1:${port}/evaluate`,
|
|
1407
|
-
token: args.token,
|
|
1408
|
-
evaluations: () => evaluations,
|
|
1409
|
-
close
|
|
1410
|
-
};
|
|
1411
|
-
async function closeCallbackServer() {
|
|
1412
|
-
args.signal?.removeEventListener("abort", onAbort);
|
|
1413
|
-
accepting = false;
|
|
1414
|
-
const closingServer = closeServer(server);
|
|
1415
|
-
server.closeIdleConnections?.();
|
|
1416
|
-
for (const controller of activeControllers) controller.abort();
|
|
1417
|
-
const [serverResult] = await Promise.allSettled([closingServer, waitForActiveHandlers(activeHandlers)]);
|
|
1418
|
-
if (activeControllers.size !== 0 || activeHandlers.size !== 0) throw new Error("external optimizer callback closed with active request work");
|
|
1419
|
-
if (serverResult?.status === "rejected") throw serverResult.reason;
|
|
1420
|
-
}
|
|
1421
|
-
}
|
|
1422
|
-
async function handleCallback(request, response, signal, args, limits, nextEvaluation, observe, proposedCandidateHashes) {
|
|
1423
|
-
try {
|
|
1424
|
-
if (request.method !== "POST" || request.url !== "/evaluate") {
|
|
1425
|
-
sendJsonIfOpen(response, 404, { error: "not found" });
|
|
1426
|
-
return;
|
|
1427
|
-
}
|
|
1428
|
-
if (request.headers.authorization !== `Bearer ${args.token}`) {
|
|
1429
|
-
sendJsonIfOpen(response, 401, { error: "unauthorized" });
|
|
1430
|
-
return;
|
|
1431
|
-
}
|
|
1432
|
-
let body;
|
|
1433
|
-
try {
|
|
1434
|
-
body = await readJson(request, limits.maxRequestBytes);
|
|
1435
|
-
} catch {
|
|
1436
|
-
observe({
|
|
1437
|
-
kind: "refusal",
|
|
1438
|
-
reason: "invalid-request"
|
|
1439
|
-
});
|
|
1440
|
-
sendJsonIfOpen(response, 400, { error: "request body must be bounded valid JSON" });
|
|
1441
|
-
return;
|
|
1442
|
-
}
|
|
1443
|
-
if (!isRecord(body) || !isExternalTextCandidate(body.candidate) || typeof body.exampleId !== "string") {
|
|
1444
|
-
observe({
|
|
1445
|
-
kind: "refusal",
|
|
1446
|
-
reason: "invalid-request"
|
|
1447
|
-
});
|
|
1448
|
-
sendJsonIfOpen(response, 400, { error: "candidate and exampleId are required strings" });
|
|
1449
|
-
return;
|
|
1450
|
-
}
|
|
1451
|
-
const candidate = cloneCandidate(body.candidate);
|
|
1452
|
-
const candidateHash = contentHash({
|
|
1453
|
-
kind: "external-text-candidate",
|
|
1454
|
-
candidate
|
|
1455
|
-
});
|
|
1456
|
-
if (!proposedCandidateHashes.has(candidateHash)) {
|
|
1457
|
-
observe({
|
|
1458
|
-
kind: "proposal",
|
|
1459
|
-
candidate,
|
|
1460
|
-
candidateHash
|
|
1461
|
-
});
|
|
1462
|
-
proposedCandidateHashes.add(candidateHash);
|
|
1463
|
-
}
|
|
1464
|
-
const count = nextEvaluation();
|
|
1465
|
-
if (count === void 0) {
|
|
1466
|
-
observe({
|
|
1467
|
-
kind: "refusal",
|
|
1468
|
-
reason: "evaluation-limit",
|
|
1469
|
-
candidate,
|
|
1470
|
-
candidateHash,
|
|
1471
|
-
exampleId: body.exampleId
|
|
1472
|
-
});
|
|
1473
|
-
sendJsonIfOpen(response, 429, { error: "evaluation limit reached" });
|
|
1474
|
-
return;
|
|
1475
|
-
}
|
|
1476
|
-
let result;
|
|
1477
|
-
try {
|
|
1478
|
-
result = await args.evaluate({
|
|
1479
|
-
candidate,
|
|
1480
|
-
exampleId: body.exampleId
|
|
1481
|
-
}, signal);
|
|
1482
|
-
} catch {
|
|
1483
|
-
observe({
|
|
1484
|
-
kind: "refusal",
|
|
1485
|
-
reason: "evaluation-failed",
|
|
1486
|
-
candidate,
|
|
1487
|
-
candidateHash,
|
|
1488
|
-
exampleId: body.exampleId
|
|
1489
|
-
});
|
|
1490
|
-
sendJsonIfOpen(response, 500, { error: "evaluation failed" });
|
|
1491
|
-
return;
|
|
1492
|
-
}
|
|
1493
|
-
let encoded;
|
|
1494
|
-
try {
|
|
1495
|
-
encoded = encodeJsonResponse(result);
|
|
1496
|
-
} catch {
|
|
1497
|
-
observe({
|
|
1498
|
-
kind: "refusal",
|
|
1499
|
-
reason: "evaluation-failed",
|
|
1500
|
-
candidate,
|
|
1501
|
-
candidateHash,
|
|
1502
|
-
exampleId: body.exampleId
|
|
1503
|
-
});
|
|
1504
|
-
sendJsonIfOpen(response, 500, { error: "evaluation response must be valid JSON" });
|
|
1505
|
-
return;
|
|
1506
|
-
}
|
|
1507
|
-
if (Buffer.byteLength(encoded) > limits.maxResponseBytes) {
|
|
1508
|
-
observe({
|
|
1509
|
-
kind: "refusal",
|
|
1510
|
-
reason: "evaluation-failed",
|
|
1511
|
-
candidate,
|
|
1512
|
-
candidateHash,
|
|
1513
|
-
exampleId: body.exampleId
|
|
1514
|
-
});
|
|
1515
|
-
sendJsonIfOpen(response, 413, { error: "evaluation response too large" });
|
|
1516
|
-
return;
|
|
1517
|
-
}
|
|
1518
|
-
observe({
|
|
1519
|
-
kind: "evaluation",
|
|
1520
|
-
candidate,
|
|
1521
|
-
candidateHash,
|
|
1522
|
-
exampleId: body.exampleId,
|
|
1523
|
-
evaluationNumber: count,
|
|
1524
|
-
response: structuredClone(result)
|
|
1525
|
-
});
|
|
1526
|
-
sendEncodedJsonIfOpen(response, 200, encoded);
|
|
1527
|
-
} catch {
|
|
1528
|
-
sendJsonIfOpen(response, 500, { error: "evaluation failed" });
|
|
1529
|
-
}
|
|
1530
|
-
}
|
|
1531
|
-
async function waitForActiveHandlers(activeHandlers) {
|
|
1532
|
-
while (activeHandlers.size > 0) await Promise.allSettled([...activeHandlers]);
|
|
1533
|
-
}
|
|
1534
|
-
function sendJsonIfOpen(response, status, body) {
|
|
1535
|
-
if (response.destroyed || response.writableEnded) return;
|
|
1536
|
-
sendJson(response, status, body);
|
|
1537
|
-
}
|
|
1538
|
-
function readJson(request, maxRequestBytes) {
|
|
1539
|
-
return new Promise((resolvePromise, reject) => {
|
|
1540
|
-
let size = 0;
|
|
1541
|
-
const chunks = [];
|
|
1542
|
-
request.on("data", (chunk) => {
|
|
1543
|
-
size += chunk.length;
|
|
1544
|
-
if (size > maxRequestBytes) {
|
|
1545
|
-
reject(/* @__PURE__ */ new Error("callback body too large"));
|
|
1546
|
-
request.destroy();
|
|
1547
|
-
return;
|
|
1548
|
-
}
|
|
1549
|
-
chunks.push(chunk);
|
|
1550
|
-
});
|
|
1551
|
-
request.on("error", reject);
|
|
1552
|
-
request.on("end", () => {
|
|
1553
|
-
try {
|
|
1554
|
-
resolvePromise(JSON.parse(Buffer.concat(chunks).toString("utf8")));
|
|
1555
|
-
} catch (error) {
|
|
1556
|
-
reject(error);
|
|
1557
|
-
}
|
|
1558
|
-
});
|
|
1559
|
-
});
|
|
1560
|
-
}
|
|
1561
|
-
function encodeJsonResponse(value) {
|
|
1562
|
-
const encoded = JSON.stringify(value);
|
|
1563
|
-
if (encoded === void 0) throw new Error("evaluation response must be JSON-serializable");
|
|
1564
|
-
return encoded;
|
|
1565
|
-
}
|
|
1566
|
-
function sendEncodedJsonIfOpen(response, status, encoded) {
|
|
1567
|
-
if (response.destroyed || response.writableEnded) return;
|
|
1568
|
-
response.writeHead(status, {
|
|
1569
|
-
"content-type": "application/json; charset=utf-8",
|
|
1570
|
-
"content-length": String(Buffer.byteLength(encoded))
|
|
1571
|
-
});
|
|
1572
|
-
response.end(encoded);
|
|
1573
|
-
}
|
|
1574
|
-
function assertCallbackConfig(args) {
|
|
1575
|
-
if (typeof args.token !== "string" || !args.token.trim()) throw new Error("external optimizer callback: token must be non-empty");
|
|
1576
|
-
if (!Number.isSafeInteger(args.maxEvaluations) || args.maxEvaluations <= 0) throw new Error("external optimizer callback: maxEvaluations must be a positive safe integer");
|
|
1577
|
-
if (args.acceptEvaluation !== void 0 && typeof args.acceptEvaluation !== "function") throw new Error("external optimizer callback: acceptEvaluation must be a function");
|
|
1578
|
-
if (typeof args.evaluate !== "function") throw new Error("external optimizer callback: evaluate must be a function");
|
|
1579
|
-
if (args.observe !== void 0 && typeof args.observe !== "function") throw new Error("external optimizer callback: observe must be a function");
|
|
1580
|
-
}
|
|
1581
|
-
function cloneCandidate(candidate) {
|
|
1582
|
-
return typeof candidate === "string" ? candidate : { ...candidate };
|
|
1583
|
-
}
|
|
1584
|
-
//#endregion
|
|
1585
|
-
//#region src/campaign/single-run-lock.ts
|
|
1586
|
-
/**
|
|
1587
|
-
* Single-run lock for evaluations that share one mutable environment.
|
|
1588
|
-
*
|
|
1589
|
-
* Two concurrent runs against a shared stateful gym silently corrupt each
|
|
1590
|
-
* other: each resets/mutates environment state mid-cell of the other, and
|
|
1591
|
-
* every score from both becomes garbage that LOOKS like worker variance
|
|
1592
|
-
* (agent-lab R357 burned hours on flip-flopping scores before tracing them
|
|
1593
|
-
* to exactly this). The fix is a pid lockfile: refuse to start while a live
|
|
1594
|
-
* holder exists, reclaim stale locks whose pid is gone, release only if the
|
|
1595
|
-
* lock is still ours.
|
|
1596
|
-
*
|
|
1597
|
-
* `alsoCheck` exists because independent runners can guard the same shared
|
|
1598
|
-
* resource with differently named lockfiles; a runner must respect all of
|
|
1599
|
-
* them even though it writes only its own.
|
|
1600
|
-
*/
|
|
1601
|
-
function assertAvailable(path) {
|
|
1602
|
-
const unavailable = probeAtomicFileLock({ lockPath: path });
|
|
1603
|
-
if (unavailable) throw unavailableError(path, unavailable);
|
|
1604
|
-
}
|
|
1605
|
-
function unavailableError(path, unavailable) {
|
|
1606
|
-
if (unavailable.reason === "recovery") return /* @__PURE__ */ new Error(`single-run lock recovery is already in progress (${path}); refusing a concurrent run`);
|
|
1607
|
-
return /* @__PURE__ */ new Error(`single-run lock held by live pid ${unavailable.holder.pid} (${path}); refusing a concurrent run on the shared resource`);
|
|
1608
|
-
}
|
|
1609
|
-
/**
|
|
1610
|
-
* Acquire the lock or throw naming the live holder. A stale lock (holder pid
|
|
1611
|
-
* no longer running) is reclaimed by one contender. An interrupted reclaim
|
|
1612
|
-
* leaves a marker that fails closed instead of admitting overlapping runs.
|
|
1613
|
-
*/
|
|
1614
|
-
function acquireSingleRunLock(opts) {
|
|
1615
|
-
const pid = opts.pid ?? process.pid;
|
|
1616
|
-
if (!Number.isSafeInteger(pid) || pid <= 0) throw new Error("single-run lock pid must be a positive integer");
|
|
1617
|
-
for (const path of opts.alsoCheck ?? []) assertAvailable(path);
|
|
1618
|
-
const acquisition = tryAcquireAtomicFileLock({
|
|
1619
|
-
lockPath: opts.lockPath,
|
|
1620
|
-
pid
|
|
1621
|
-
});
|
|
1622
|
-
if (!acquisition.acquired) throw unavailableError(opts.lockPath, acquisition);
|
|
1623
|
-
const releaseOnExit = opts.releaseOnExit ?? true;
|
|
1624
|
-
let released = false;
|
|
1625
|
-
const release = () => {
|
|
1626
|
-
if (released) return;
|
|
1627
|
-
released = true;
|
|
1628
|
-
if (releaseOnExit) process.off("exit", release);
|
|
1629
|
-
try {
|
|
1630
|
-
acquisition.lock.release();
|
|
1631
|
-
} catch {}
|
|
1632
|
-
};
|
|
1633
|
-
try {
|
|
1634
|
-
for (const path of opts.alsoCheck ?? []) assertAvailable(path);
|
|
1635
|
-
} catch (error) {
|
|
1636
|
-
release();
|
|
1637
|
-
throw error;
|
|
1638
|
-
}
|
|
1639
|
-
if (releaseOnExit) process.on("exit", release);
|
|
1640
|
-
return { release };
|
|
1641
|
-
}
|
|
1642
|
-
//#endregion
|
|
1643
|
-
export { isExternalTextCandidate as C, resolveExternalOptimizerProcessLimits as D, resolveExternalOptimizerCallbackLimits as E, safePathComponent as O, isCandidateText as S, removeCredentialEnvironment as T, DEFAULT_EXTERNAL_OPTIMIZER_CALLBACK_LIMITS as _, inMemoryCampaignStorage as a, assertJsonValue as b, SearchLedgerError as c, closeExternalOptimizerResources as d, runWithCleanup as f, sendJson as g, listenLocal as h, fsCampaignStorage as i, SearchLedgerIntegrityError as l, closeServer as m, startExternalOptimizerCallback as n, SEARCH_LEDGER_FILE_CONTEXT as o, startExternalOptimizerModelProxy as p, createRunCostLedger as r, SearchLedgerConflictError as s, acquireSingleRunLock as t, runExternalOptimizerProcess as u, DEFAULT_EXTERNAL_OPTIMIZER_PROCESS_LIMITS as v, isRecord as w, assertNoCredentialValues as x, assertExternalOptimizerModelBudget as y };
|
|
1349
|
+
export { SEARCH_LEDGER_FILE_CONTEXT as C, SearchLedgerIntegrityError as E, inMemoryCampaignStorage as S, SearchLedgerError as T, resolveExternalOptimizerCallbackLimits as _, closeServer as a, createRunCostLedger as b, DEFAULT_EXTERNAL_OPTIMIZER_CALLBACK_LIMITS as c, assertJsonValue as d, assertNoCredentialValues as f, removeCredentialEnvironment as g, isRecord as h, startExternalOptimizerModelProxy as i, DEFAULT_EXTERNAL_OPTIMIZER_PROCESS_LIMITS as l, isExternalTextCandidate as m, closeExternalOptimizerResources as n, listenLocal as o, isCandidateText as p, runWithCleanup as r, sendJson as s, runExternalOptimizerProcess as t, assertExternalOptimizerModelBudget as u, resolveExternalOptimizerProcessLimits as v, SearchLedgerConflictError as w, fsCampaignStorage as x, safePathComponent as y };
|
|
1644
1350
|
|
|
1645
|
-
//# sourceMappingURL=
|
|
1351
|
+
//# sourceMappingURL=external-optimizer-subprocess-DrJ9hR8u.js.map
|