@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.
Files changed (378) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/agent-profile-B9_GGsG8.d.ts +84 -0
  3. package/dist/agent-profile-B9_GGsG8.d.ts.map +1 -0
  4. package/dist/{agent-profile-cell-BOP-iA9Q.d.ts → agent-profile-cell-BkcRDikH.d.ts} +2 -2
  5. package/dist/{agent-profile-cell-BOP-iA9Q.d.ts.map → agent-profile-cell-BkcRDikH.d.ts.map} +1 -1
  6. package/dist/analyst/index.d.ts +134 -16
  7. package/dist/analyst/index.d.ts.map +1 -1
  8. package/dist/analyst/index.js +364 -10
  9. package/dist/analyst/index.js.map +1 -1
  10. package/dist/backend-integrity-CsVin_Wb.d.ts +280 -0
  11. package/dist/backend-integrity-CsVin_Wb.d.ts.map +1 -0
  12. package/dist/{baseline-C-GocmIW.js → baseline-BhPRQBVn.js} +3 -2
  13. package/dist/{baseline-C-GocmIW.js.map → baseline-BhPRQBVn.js.map} +1 -1
  14. package/dist/{benchmark-CWeqGl7x.js → benchmark-BhT16ep9.js} +2 -2
  15. package/dist/{benchmark-CWeqGl7x.js.map → benchmark-BhT16ep9.js.map} +1 -1
  16. package/dist/{agent-profile-DPi7IZg7.d.ts → benchmark-Ceoan7vk.d.ts} +4 -91
  17. package/dist/benchmark-Ceoan7vk.d.ts.map +1 -0
  18. package/dist/{benchmark-command-BteMFN62.js → benchmark-command-CY6cbhOB.js} +36 -79
  19. package/dist/benchmark-command-CY6cbhOB.js.map +1 -0
  20. package/dist/benchmarks/index.d.ts +244 -2
  21. package/dist/benchmarks/index.d.ts.map +1 -0
  22. package/dist/benchmarks/index.js +733 -1
  23. package/dist/benchmarks/index.js.map +1 -0
  24. package/dist/builder-eval/index.d.ts +23 -2
  25. package/dist/builder-eval/index.d.ts.map +1 -1
  26. package/dist/builder-eval/index.js +227 -3
  27. package/dist/builder-eval/index.js.map +1 -1
  28. package/dist/campaign/index.d.ts +10 -8
  29. package/dist/campaign/index.js +9 -6
  30. package/dist/{campaign-C2TTzQII.js → campaign-BYjBAypg.js} +21 -634
  31. package/dist/campaign-BYjBAypg.js.map +1 -0
  32. package/dist/{canonical-D011XM8r.js → canonical-D-XsTQ6_.js} +2 -2
  33. package/dist/{canonical-D011XM8r.js.map → canonical-D-XsTQ6_.js.map} +1 -1
  34. package/dist/{index-CQTZ-4XN.d.ts → capture-fetch-DDvpjVRU.d.ts} +3 -3
  35. package/dist/capture-fetch-DDvpjVRU.d.ts.map +1 -0
  36. package/dist/{default-registry-BmktKy8r.js → chat-client-Bp4Ebuuc.js} +1276 -1276
  37. package/dist/chat-client-Bp4Ebuuc.js.map +1 -0
  38. package/dist/cli.js +2 -2
  39. package/dist/{client-C9gzZE59.d.ts → client-KUbGulm_.d.ts} +4 -4
  40. package/dist/{client-C9gzZE59.d.ts.map → client-KUbGulm_.d.ts.map} +1 -1
  41. package/dist/contract/index.d.ts +13 -390
  42. package/dist/contract/index.d.ts.map +1 -1
  43. package/dist/contract/index.js +18 -542
  44. package/dist/contract/index.js.map +1 -1
  45. package/dist/{cost-ledger-DMFxsLKr.js → cost-ledger-BSe92yAV.js} +3 -3
  46. package/dist/{cost-ledger-DMFxsLKr.js.map → cost-ledger-BSe92yAV.js.map} +1 -1
  47. package/dist/{cost-ledger-Bv_e8XHY.d.ts → cost-ledger-DbQdN3nO.d.ts} +2 -2
  48. package/dist/{cost-ledger-Bv_e8XHY.d.ts.map → cost-ledger-DbQdN3nO.d.ts.map} +1 -1
  49. package/dist/{counterfactual-CxmxAONP.d.ts → counterfactual--bpysZF0.d.ts} +2 -14
  50. package/dist/{counterfactual-CxmxAONP.d.ts.map → counterfactual--bpysZF0.d.ts.map} +1 -1
  51. package/dist/{counterfactual-CWPTrMH7.js → counterfactual-lDfCx0Uz.js} +3 -31
  52. package/dist/{counterfactual-CWPTrMH7.js.map → counterfactual-lDfCx0Uz.js.map} +1 -1
  53. package/dist/{dataset-C8xaLXdY.d.ts → dataset-CJjKqQfA.d.ts} +2 -8
  54. package/dist/dataset-CJjKqQfA.d.ts.map +1 -0
  55. package/dist/{default-registry-Bf8Woqmq.d.ts → default-registry-Di6HP6pG.d.ts} +7 -12
  56. package/dist/default-registry-Di6HP6pG.d.ts.map +1 -0
  57. package/dist/{analyze-runs-C30yljDJ.js → define-agent-eval-iqjT--ZZ.js} +542 -130
  58. package/dist/define-agent-eval-iqjT--ZZ.js.map +1 -0
  59. package/dist/define-agent-eval-sH24zBfM.d.ts +388 -0
  60. package/dist/define-agent-eval-sH24zBfM.d.ts.map +1 -0
  61. package/dist/descriptive-B5MwKfbf.js +144 -0
  62. package/dist/descriptive-B5MwKfbf.js.map +1 -0
  63. package/dist/{dspy-rlm-engine-DbTk4JdR.js → dspy-rlm-engine-B_qhSc21.js} +4 -4
  64. package/dist/{dspy-rlm-engine-DbTk4JdR.js.map → dspy-rlm-engine-B_qhSc21.js.map} +1 -1
  65. package/dist/effect-sizes-DiH8MGOH.js +82 -0
  66. package/dist/effect-sizes-DiH8MGOH.js.map +1 -0
  67. package/dist/{engine-3hL-XqwJ.d.ts → engine-otFpE2gF.d.ts} +10 -38
  68. package/dist/engine-otFpE2gF.d.ts.map +1 -0
  69. package/dist/{errors-CKPfb2aH.d.ts → errors-DEE6u6ot.d.ts} +2 -14
  70. package/dist/{errors-CKPfb2aH.d.ts.map → errors-DEE6u6ot.d.ts.map} +1 -1
  71. package/dist/{errors-D-LKuDhb.js → errors-Dngq5h35.js} +2 -8
  72. package/dist/{errors-D-LKuDhb.js.map → errors-Dngq5h35.js.map} +1 -1
  73. package/dist/{eval-campaign-B_7wcnav.js → eval-campaign-UB-usSQ2.js} +6 -6
  74. package/dist/{eval-campaign-B_7wcnav.js.map → eval-campaign-UB-usSQ2.js.map} +1 -1
  75. package/dist/{exact-types-DSFFpLLI.d.ts → exact-types-BH1twmAJ.d.ts} +2 -2
  76. package/dist/{exact-types-DSFFpLLI.d.ts.map → exact-types-BH1twmAJ.d.ts.map} +1 -1
  77. package/dist/experiment/index.d.ts +9 -6
  78. package/dist/experiment/index.d.ts.map +1 -1
  79. package/dist/experiment/index.js +11 -7
  80. package/dist/experiment/index.js.map +1 -1
  81. package/dist/experiment-tracker-C29gXM4B.js +269 -0
  82. package/dist/experiment-tracker-C29gXM4B.js.map +1 -0
  83. package/dist/{experiment-tracker-IMntXr6J.d.ts → experiment-tracker-DWHZBAYL.d.ts} +77 -121
  84. package/dist/experiment-tracker-DWHZBAYL.d.ts.map +1 -0
  85. package/dist/{external-optimizer-contracts-CZuJNcT5.d.ts → external-optimizer-contracts-lixrOZdX.d.ts} +3 -3
  86. package/dist/{external-optimizer-contracts-CZuJNcT5.d.ts.map → external-optimizer-contracts-lixrOZdX.d.ts.map} +1 -1
  87. package/dist/external-optimizer-process-BTiNB-RH.js +301 -0
  88. package/dist/external-optimizer-process-BTiNB-RH.js.map +1 -0
  89. package/dist/{single-run-lock-DFWHEB09.js → external-optimizer-subprocess-DrJ9hR8u.js} +144 -438
  90. package/dist/external-optimizer-subprocess-DrJ9hR8u.js.map +1 -0
  91. package/dist/extract-usage-BrQ8mCLX.js +155 -0
  92. package/dist/extract-usage-BrQ8mCLX.js.map +1 -0
  93. package/dist/{failure-cluster-CqcvCcdR.d.ts → failure-cluster-BLURuWG4.d.ts} +2 -3
  94. package/dist/failure-cluster-BLURuWG4.d.ts.map +1 -0
  95. package/dist/{feedback-trajectory-CacHpxsp.d.ts → feedback-trajectory-juOozjAc.d.ts} +5 -36
  96. package/dist/feedback-trajectory-juOozjAc.d.ts.map +1 -0
  97. package/dist/fuzz.d.ts +2 -2
  98. package/dist/fuzz.js +2 -2
  99. package/dist/hosted/index.d.ts +3 -3
  100. package/dist/{index-CvSN3IG1.d.ts → index-B8Ui1mr1.d.ts} +2 -2
  101. package/dist/{index-CvSN3IG1.d.ts.map → index-B8Ui1mr1.d.ts.map} +1 -1
  102. package/dist/{skill-usage-CO9OLRBx.d.ts → index-BWDrSVfw.d.ts} +11 -136
  103. package/dist/index-BWDrSVfw.d.ts.map +1 -0
  104. package/dist/index-Ba3YrbAL.d.ts +1 -0
  105. package/dist/{index-BnEuDAK2.d.ts → index-COQYtuRF.d.ts} +3 -3
  106. package/dist/{index-BnEuDAK2.d.ts.map → index-COQYtuRF.d.ts.map} +1 -1
  107. package/dist/{index-C3ssXVLv.d.ts → index-CvjYbU0D.d.ts} +2 -2
  108. package/dist/{index-C3ssXVLv.d.ts.map → index-CvjYbU0D.d.ts.map} +1 -1
  109. package/dist/{index-DPPGNJ_R.d.ts → index-DSmEylT9.d.ts} +17 -115
  110. package/dist/index-DSmEylT9.d.ts.map +1 -0
  111. package/dist/index.d.ts +2397 -5308
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +5914 -10496
  114. package/dist/index.js.map +1 -1
  115. package/dist/{insight-report-CgX_s0Ez.d.ts → insight-report-CRi-Ufrj.d.ts} +4 -4
  116. package/dist/{insight-report-CgX_s0Ez.d.ts.map → insight-report-CRi-Ufrj.d.ts.map} +1 -1
  117. package/dist/{integrity-MLzHOfV9.js → integrity-Cy9WHAtb.js} +2 -2
  118. package/dist/{integrity-MLzHOfV9.js.map → integrity-Cy9WHAtb.js.map} +1 -1
  119. package/dist/{integrity-DY6tIbl0.js → integrity-DysDBWDu.js} +2 -2
  120. package/dist/{integrity-DY6tIbl0.js.map → integrity-DysDBWDu.js.map} +1 -1
  121. package/dist/{integrity-BuqEKu-x.d.ts → integrity-OrcI9Nau.d.ts} +3 -3
  122. package/dist/{integrity-BuqEKu-x.d.ts.map → integrity-OrcI9Nau.d.ts.map} +1 -1
  123. package/dist/internal-BDHPCnjk.js +230 -0
  124. package/dist/internal-BDHPCnjk.js.map +1 -0
  125. package/dist/judge-calibration-C5CbMYce.d.ts +117 -0
  126. package/dist/judge-calibration-C5CbMYce.d.ts.map +1 -0
  127. package/dist/judge-calibration-DZkWrm5H.js +317 -0
  128. package/dist/judge-calibration-DZkWrm5H.js.map +1 -0
  129. package/dist/{kind-factory-B8-r8-y8.js → kind-factory-CPmSd58s.js} +208 -208
  130. package/dist/{kind-factory-B8-r8-y8.js.map → kind-factory-CPmSd58s.js.map} +1 -1
  131. package/dist/ledger-core/index.d.ts +1 -1
  132. package/dist/ledger-core/index.js +2 -2
  133. package/dist/{ledger-core-DXZIqu17.js → ledger-core-BmZt19oQ.js} +110 -110
  134. package/dist/{ledger-core-DXZIqu17.js.map → ledger-core-BmZt19oQ.js.map} +1 -1
  135. package/dist/{llm-client-DzvMUsS_.js → llm-client-d0-2TT1g.js} +4 -64
  136. package/dist/{llm-client-DzvMUsS_.js.map → llm-client-d0-2TT1g.js.map} +1 -1
  137. package/dist/{skillopt-optimization-method-CQdVeM8k.js → llm-judge-dZ8P6nGI.js} +3349 -5401
  138. package/dist/llm-judge-dZ8P6nGI.js.map +1 -0
  139. package/dist/matrix/index.d.ts +2 -2
  140. package/dist/meta-eval/index.d.ts +3 -3
  141. package/dist/meta-eval/index.js +3 -3
  142. package/dist/{metrics-C9YY1OcL.js → metrics-Cl0L1KUy.js} +2 -108
  143. package/dist/{metrics-C9YY1OcL.js.map → metrics-Cl0L1KUy.js.map} +1 -1
  144. package/dist/{mint-B2O60ACG.js → mint-Dj9Ww_3I.js} +4 -4
  145. package/dist/{mint-B2O60ACG.js.map → mint-Dj9Ww_3I.js.map} +1 -1
  146. package/dist/{multi-layer-verifier-DnAqwl0h.d.ts → multi-layer-verifier-DIguZc8Z.d.ts} +3 -3
  147. package/dist/{multi-layer-verifier-DnAqwl0h.d.ts.map → multi-layer-verifier-DIguZc8Z.d.ts.map} +1 -1
  148. package/dist/multiplicity-DIWHvysC.d.ts +43 -0
  149. package/dist/multiplicity-DIWHvysC.d.ts.map +1 -0
  150. package/dist/multishot/index.d.ts +3 -3
  151. package/dist/multishot/index.js +1 -1
  152. package/dist/openapi.json +1 -1
  153. package/dist/{opencode-sqlite-8r6WUfHc.js → opencode-sqlite-DJWAXLms.js} +2 -2
  154. package/dist/{opencode-sqlite-8r6WUfHc.js.map → opencode-sqlite-DJWAXLms.js.map} +1 -1
  155. package/dist/package-version-D7lQHt_-.js +34 -0
  156. package/dist/package-version-D7lQHt_-.js.map +1 -0
  157. package/dist/paired-arms-D-XRF_fy.js +1045 -0
  158. package/dist/paired-arms-D-XRF_fy.js.map +1 -0
  159. package/dist/paired-promotion-decision-CGzg0cI_.d.ts +251 -0
  160. package/dist/paired-promotion-decision-CGzg0cI_.d.ts.map +1 -0
  161. package/dist/paired-tests-BHIhYVdu.js +213 -0
  162. package/dist/paired-tests-BHIhYVdu.js.map +1 -0
  163. package/dist/pareto-BqNW3LJR.d.ts +117 -0
  164. package/dist/pareto-BqNW3LJR.d.ts.map +1 -0
  165. package/dist/pipelines/index.d.ts +3 -64
  166. package/dist/pipelines/index.d.ts.map +1 -1
  167. package/dist/pipelines/index.js +4 -284
  168. package/dist/pipelines/index.js.map +1 -1
  169. package/dist/power-and-mde-CHIrXJll.js +195 -0
  170. package/dist/power-and-mde-CHIrXJll.js.map +1 -0
  171. package/dist/{promotion-policy-CrLrmys8.js → power-preflight-DEw-uC7q.js} +4 -184
  172. package/dist/power-preflight-DEw-uC7q.js.map +1 -0
  173. package/dist/pre-registration-CZwSFQS4.d.ts +577 -0
  174. package/dist/pre-registration-CZwSFQS4.d.ts.map +1 -0
  175. package/dist/{prime-protocol-BfSalTfR.js → prime-protocol-6tZTVsWm.js} +72 -21
  176. package/dist/prime-protocol-6tZTVsWm.js.map +1 -0
  177. package/dist/produced-state-DU79a81m.js +586 -0
  178. package/dist/produced-state-DU79a81m.js.map +1 -0
  179. package/dist/profile-cell.d.ts +1 -1
  180. package/dist/profile-cell.js +1 -1
  181. package/dist/promotion-policy-D0nPhkSy.d.ts +134 -0
  182. package/dist/promotion-policy-D0nPhkSy.d.ts.map +1 -0
  183. package/dist/promotion-policy-xzA40Evo.js +186 -0
  184. package/dist/promotion-policy-xzA40Evo.js.map +1 -0
  185. package/dist/{skillopt-optimization-method-USDKhxSA.d.ts → provenance-CCdxgLDT.d.ts} +57 -478
  186. package/dist/provenance-CCdxgLDT.d.ts.map +1 -0
  187. package/dist/registry-oJeeI4-a.d.ts +178 -0
  188. package/dist/registry-oJeeI4-a.d.ts.map +1 -0
  189. package/dist/{release-report-DA2BCu5a.d.ts → release-confidence-BFRE5WSp.d.ts} +180 -112
  190. package/dist/release-confidence-BFRE5WSp.d.ts.map +1 -0
  191. package/dist/{release-report-BUYmoKo2.js → release-confidence-CxDuiAev.js} +125 -217
  192. package/dist/release-confidence-CxDuiAev.js.map +1 -0
  193. package/dist/reporting.d.ts +6 -5
  194. package/dist/reporting.js +7 -5
  195. package/dist/{researcher-BchpD55R.d.ts → researcher-DaN4GST-.d.ts} +7 -40
  196. package/dist/{researcher-BchpD55R.d.ts.map → researcher-DaN4GST-.d.ts.map} +1 -1
  197. package/dist/{reward-hacking-BDToousL.js → reward-hacking-DNgjilrV.js} +3 -3
  198. package/dist/reward-hacking-DNgjilrV.js.map +1 -0
  199. package/dist/{reward-hacking-BI0OMAlo.d.ts → reward-hacking-DSSTuI9r.d.ts} +5 -5
  200. package/dist/{reward-hacking-BI0OMAlo.d.ts.map → reward-hacking-DSSTuI9r.d.ts.map} +1 -1
  201. package/dist/rl.d.ts +7 -7
  202. package/dist/rl.js +11 -10
  203. package/dist/rl.js.map +1 -1
  204. package/dist/rollout/index.d.ts +2 -2
  205. package/dist/rollout/index.js +4 -4
  206. package/dist/{rollout-DRrksrcV.js → rollout-BWtw0I_6.js} +3 -3
  207. package/dist/{rollout-DRrksrcV.js.map → rollout-BWtw0I_6.js.map} +1 -1
  208. package/dist/{rubric-predictive-validity-DvkjPYCe.d.ts → rubric-predictive-validity-BgxtKe4G.d.ts} +2 -2
  209. package/dist/{rubric-predictive-validity-DvkjPYCe.d.ts.map → rubric-predictive-validity-BgxtKe4G.d.ts.map} +1 -1
  210. package/dist/{rubric-predictive-validity-BRR632r1.js → rubric-predictive-validity-Cwwyd7ah.js} +2 -2
  211. package/dist/{rubric-predictive-validity-BRR632r1.js.map → rubric-predictive-validity-Cwwyd7ah.js.map} +1 -1
  212. package/dist/{run-record-BmSPWXJR.js → run-record-BvHPVS-i.js} +3 -3
  213. package/dist/{run-record-BmSPWXJR.js.map → run-record-BvHPVS-i.js.map} +1 -1
  214. package/dist/{run-record-CF4Dwpxr.d.ts → run-record-CKiihE6f.d.ts} +4 -4
  215. package/dist/{run-record-CF4Dwpxr.d.ts.map → run-record-CKiihE6f.d.ts.map} +1 -1
  216. package/dist/{proposal-findings-2GIUo1et.js → run-score-lDzV0X8j.js} +31 -31
  217. package/dist/run-score-lDzV0X8j.js.map +1 -0
  218. package/dist/sandbox-harness-BlSOu4LX.d.ts +70 -0
  219. package/dist/sandbox-harness-BlSOu4LX.d.ts.map +1 -0
  220. package/dist/{schema-Cef2cFmb2.d.ts → schema-Cef2cFmb.d.ts} +1 -1
  221. package/dist/schema-Cef2cFmb.d.ts.map +1 -0
  222. package/dist/semantic-concept-judge-BiJxScqe.js +406 -0
  223. package/dist/semantic-concept-judge-BiJxScqe.js.map +1 -0
  224. package/dist/{sequential-D-BLJBKU.js → sequential-C458DXNf.js} +4 -3
  225. package/dist/{sequential-D-BLJBKU.js.map → sequential-C458DXNf.js.map} +1 -1
  226. package/dist/sequential-eprocess-CbUt2htw.js +83 -0
  227. package/dist/sequential-eprocess-CbUt2htw.js.map +1 -0
  228. package/dist/series-convergence-D1cL1f-4.d.ts +129 -0
  229. package/dist/series-convergence-D1cL1f-4.d.ts.map +1 -0
  230. package/dist/{server-iu0ede49.js → server-ulsOdrTI.js} +5 -21
  231. package/dist/server-ulsOdrTI.js.map +1 -0
  232. package/dist/skillopt-optimization-method-C5cotF4E.d.ts +427 -0
  233. package/dist/skillopt-optimization-method-C5cotF4E.d.ts.map +1 -0
  234. package/dist/skillopt-optimization-method-jjdnc3YK.js +1999 -0
  235. package/dist/skillopt-optimization-method-jjdnc3YK.js.map +1 -0
  236. package/dist/{statistical-heldout-TQ-4CYiN.d.ts → statistical-heldout-DoFF5KJX.d.ts} +5 -278
  237. package/dist/statistical-heldout-DoFF5KJX.d.ts.map +1 -0
  238. package/dist/{store-otlp-Dw8PPIlL.js → store-otlp-CsptLYpN.js} +3 -3
  239. package/dist/{store-otlp-Dw8PPIlL.js.map → store-otlp-CsptLYpN.js.map} +1 -1
  240. package/dist/store-tool-spans-Cq9mFd-q.js +667 -0
  241. package/dist/store-tool-spans-Cq9mFd-q.js.map +1 -0
  242. package/dist/store-tool-spans-DbDLOBOb.d.ts +342 -0
  243. package/dist/store-tool-spans-DbDLOBOb.d.ts.map +1 -0
  244. package/dist/student-t-CvBq2mve.js +38 -0
  245. package/dist/student-t-CvBq2mve.js.map +1 -0
  246. package/dist/{summary-report-Lf-5I7xh.js → summary-report-Blysd6Z2.js} +6 -3
  247. package/dist/{summary-report-Lf-5I7xh.js.map → summary-report-Blysd6Z2.js.map} +1 -1
  248. package/dist/{summary-report-BNR7DWTj.d.ts → summary-report-CaL-Hnxt.d.ts} +5 -5
  249. package/dist/{summary-report-BNR7DWTj.d.ts.map → summary-report-CaL-Hnxt.d.ts.map} +1 -1
  250. package/dist/supervisor-run/index.d.ts +391 -3
  251. package/dist/supervisor-run/index.d.ts.map +1 -0
  252. package/dist/supervisor-run/index.js +1689 -2
  253. package/dist/{supervisor-run-D_sokXcO.js.map → supervisor-run/index.js.map} +1 -1
  254. package/dist/{extract-usage-CdZdoj1s.js → task-failure-attributes-CpQ4y5RD.js} +5 -157
  255. package/dist/task-failure-attributes-CpQ4y5RD.js.map +1 -0
  256. package/dist/{tool-groups-CZPGGlHf.d.ts → tool-groups-Cteb03Ps.d.ts} +3 -3
  257. package/dist/tool-groups-Cteb03Ps.d.ts.map +1 -0
  258. package/dist/tool-waste-BDdBZG1F.js +803 -0
  259. package/dist/tool-waste-BDdBZG1F.js.map +1 -0
  260. package/dist/tool-waste-DjRDEsuI.d.ts +128 -0
  261. package/dist/tool-waste-DjRDEsuI.d.ts.map +1 -0
  262. package/dist/trace-repair/index.d.ts +14 -5
  263. package/dist/trace-repair/index.d.ts.map +1 -1
  264. package/dist/trace-repair/index.js +35 -7
  265. package/dist/trace-repair/index.js.map +1 -1
  266. package/dist/traces.d.ts +406 -7
  267. package/dist/traces.d.ts.map +1 -0
  268. package/dist/traces.js +1011 -10
  269. package/dist/traces.js.map +1 -0
  270. package/dist/trajectory-replay/index.d.ts +16 -3
  271. package/dist/trajectory-replay/index.d.ts.map +1 -1
  272. package/dist/trajectory-replay/index.js +52 -5
  273. package/dist/trajectory-replay/index.js.map +1 -1
  274. package/dist/types-BEPZc6eo.d.ts +93 -0
  275. package/dist/types-BEPZc6eo.d.ts.map +1 -0
  276. package/dist/{usage-receipt-t7vAzCRQ.js → types-BI4fT3HN.js} +67 -67
  277. package/dist/types-BI4fT3HN.js.map +1 -0
  278. package/dist/{types-BnjdJ70P.d.ts → types-BZ59Ahr8.d.ts} +5 -5
  279. package/dist/{types-BnjdJ70P.d.ts.map → types-BZ59Ahr8.d.ts.map} +1 -1
  280. package/dist/{types-D216SgwM.d.ts → types-Cx3YUh2r.d.ts} +4 -241
  281. package/dist/types-Cx3YUh2r.d.ts.map +1 -0
  282. package/dist/{types-BvDKaULh.d.ts → types-DLQx4mKU.d.ts} +4 -4
  283. package/dist/{types-BvDKaULh.d.ts.map → types-DLQx4mKU.d.ts.map} +1 -1
  284. package/dist/{types-D4mog56g.d.ts → types-yLK8gXE9.d.ts} +2 -2
  285. package/dist/{types-D4mog56g.d.ts.map → types-yLK8gXE9.d.ts.map} +1 -1
  286. package/dist/verdict-BndeTAh_.js +61 -0
  287. package/dist/verdict-BndeTAh_.js.map +1 -0
  288. package/dist/verdict-E4eRNf7-.d.ts +392 -0
  289. package/dist/verdict-E4eRNf7-.d.ts.map +1 -0
  290. package/dist/{verdict-cache-BCcOh0kF.js → verdict-cache-mZf5FEiY.js} +3 -55
  291. package/dist/{verdict-cache-BCcOh0kF.js.map → verdict-cache-mZf5FEiY.js.map} +1 -1
  292. package/dist/wire/index.d.ts +3 -3
  293. package/dist/wire/index.d.ts.map +1 -1
  294. package/dist/wire/index.js +1 -1
  295. package/docs/charter.md +3 -3
  296. package/docs/control-runtime.md +3 -42
  297. package/docs/experiment.md +0 -1
  298. package/docs/feature-guide.md +2 -2
  299. package/docs/trace-repair-grader.md +1 -0
  300. package/docs/trajectory-replay.md +1 -0
  301. package/docs/verdicts.md +43 -0
  302. package/docs/verification-strategies.md +3 -2
  303. package/package.json +6 -11
  304. package/dist/agent-profile-DPi7IZg7.d.ts.map +0 -1
  305. package/dist/analyze-runs-C30yljDJ.js.map +0 -1
  306. package/dist/baseline-CavEbRyH.d.ts +0 -136
  307. package/dist/baseline-CavEbRyH.d.ts.map +0 -1
  308. package/dist/benchmark-command-BteMFN62.js.map +0 -1
  309. package/dist/benchmarks-Dzs8CKb1.js +0 -755
  310. package/dist/benchmarks-Dzs8CKb1.js.map +0 -1
  311. package/dist/campaign-C2TTzQII.js.map +0 -1
  312. package/dist/completion-verifier-DJA5BhPb.d.ts +0 -414
  313. package/dist/completion-verifier-DJA5BhPb.d.ts.map +0 -1
  314. package/dist/control.d.ts +0 -3
  315. package/dist/control.js +0 -2
  316. package/dist/dataset-C8xaLXdY.d.ts.map +0 -1
  317. package/dist/default-registry-Bf8Woqmq.d.ts.map +0 -1
  318. package/dist/default-registry-BmktKy8r.js.map +0 -1
  319. package/dist/engine-3hL-XqwJ.d.ts.map +0 -1
  320. package/dist/experiment-tracker-CnRICnMl.js +0 -500
  321. package/dist/experiment-tracker-CnRICnMl.js.map +0 -1
  322. package/dist/experiment-tracker-IMntXr6J.d.ts.map +0 -1
  323. package/dist/extract-usage-CdZdoj1s.js.map +0 -1
  324. package/dist/failure-cluster-CqcvCcdR.d.ts.map +0 -1
  325. package/dist/feedback-trajectory-CacHpxsp.d.ts.map +0 -1
  326. package/dist/index-BZ3-y4YL.d.ts +0 -391
  327. package/dist/index-BZ3-y4YL.d.ts.map +0 -1
  328. package/dist/index-CQTZ-4XN.d.ts.map +0 -1
  329. package/dist/index-DPPGNJ_R.d.ts.map +0 -1
  330. package/dist/index-YE4KdKbO2.d.ts +0 -335
  331. package/dist/index-YE4KdKbO2.d.ts.map +0 -1
  332. package/dist/paired-arms-iZ08VFMN.js +0 -260
  333. package/dist/paired-arms-iZ08VFMN.js.map +0 -1
  334. package/dist/paired-promotion-decision-B6zJ3gYM.d.ts +0 -114
  335. package/dist/paired-promotion-decision-B6zJ3gYM.d.ts.map +0 -1
  336. package/dist/prime-protocol-BfSalTfR.js.map +0 -1
  337. package/dist/promotion-policy-Ckjhzg_4.d.ts +0 -289
  338. package/dist/promotion-policy-Ckjhzg_4.d.ts.map +0 -1
  339. package/dist/promotion-policy-CrLrmys8.js.map +0 -1
  340. package/dist/proposal-findings-2GIUo1et.js.map +0 -1
  341. package/dist/propose-review-control-dSNPjFUH.js +0 -1458
  342. package/dist/propose-review-control-dSNPjFUH.js.map +0 -1
  343. package/dist/release-report-BUYmoKo2.js.map +0 -1
  344. package/dist/release-report-DA2BCu5a.d.ts.map +0 -1
  345. package/dist/replay-CohS93nE.js +0 -1859
  346. package/dist/replay-CohS93nE.js.map +0 -1
  347. package/dist/replay-DbhZ4Ked.d.ts +0 -834
  348. package/dist/replay-DbhZ4Ked.d.ts.map +0 -1
  349. package/dist/reward-hacking-BDToousL.js.map +0 -1
  350. package/dist/run-evidence-Dhi3C81V.d.ts +0 -225
  351. package/dist/run-evidence-Dhi3C81V.d.ts.map +0 -1
  352. package/dist/schema-Cef2cFmb2.d.ts.map +0 -1
  353. package/dist/semantic-concept-judge-D1z-KepS.js +0 -767
  354. package/dist/semantic-concept-judge-D1z-KepS.js.map +0 -1
  355. package/dist/series-convergence-ofsqPWhs.d.ts +0 -35
  356. package/dist/series-convergence-ofsqPWhs.d.ts.map +0 -1
  357. package/dist/server-iu0ede49.js.map +0 -1
  358. package/dist/single-run-lock-DFWHEB09.js.map +0 -1
  359. package/dist/skill-usage-CO9OLRBx.d.ts.map +0 -1
  360. package/dist/skillopt-optimization-method-CQdVeM8k.js.map +0 -1
  361. package/dist/skillopt-optimization-method-USDKhxSA.d.ts.map +0 -1
  362. package/dist/statistical-heldout-TQ-4CYiN.d.ts.map +0 -1
  363. package/dist/statistics-ByxzSiOM.js +0 -2212
  364. package/dist/statistics-ByxzSiOM.js.map +0 -1
  365. package/dist/statistics-D6Uebe_4.d.ts +0 -968
  366. package/dist/statistics-D6Uebe_4.d.ts.map +0 -1
  367. package/dist/supervisor-run-D_sokXcO.js +0 -1690
  368. package/dist/test-graded-scenario-D1TaI2va.d.ts +0 -141
  369. package/dist/test-graded-scenario-D1TaI2va.d.ts.map +0 -1
  370. package/dist/test-graded-scenario-JHcKQNpq.js +0 -318
  371. package/dist/test-graded-scenario-JHcKQNpq.js.map +0 -1
  372. package/dist/tool-groups-CZPGGlHf.d.ts.map +0 -1
  373. package/dist/tool-use-metrics-DEGMKycK.js +0 -370
  374. package/dist/tool-use-metrics-DEGMKycK.js.map +0 -1
  375. package/dist/types-D216SgwM.d.ts.map +0 -1
  376. package/dist/usage-receipt-t7vAzCRQ.js.map +0 -1
  377. package/dist/verdict-DExhxfgR.d.ts +0 -201
  378. package/dist/verdict-DExhxfgR.d.ts.map +0 -1
@@ -0,0 +1,388 @@
1
+ import { c as CostLedgerHandle, f as CostLedgerSummary, m as CostReceipt } from "./cost-ledger-DbQdN3nO.js";
2
+ import { _ as ProposalFinding } from "./types-DLQx4mKU.js";
3
+ import { H as SurfaceProposer, R as Scenario, S as JudgeConfig, a as CampaignResult, d as DispatchContext, j as MutableSurface, k as LabeledScenarioStore, p as Gate } from "./types-BZ59Ahr8.js";
4
+ import { o as InsightReport } from "./insight-report-CRi-Ufrj.js";
5
+ import { C as RunOptimizationOptions, E as RunEvalOptions, J as OptimizationMethodProvenance, S as PremeasuredOptimizationBaseline, W as OptimizationMethod, Y as OptimizationMethodResult, b as RunImprovementLoopResult, l as LoopProvenanceRecord, xt as CampaignStorage } from "./provenance-CCdxgLDT.js";
6
+ import { o as PowerPreflight } from "./pareto-BqNW3LJR.js";
7
+ import { n as HostedTenant } from "./client-KUbGulm_.js";
8
+ //#region src/contract/self-improve.d.ts
9
+ interface SelfImproveBudget {
10
+ /** Hard spend cap across the full run. Each paid call reserves its enforced
11
+ * maximum before dispatch, so completed spend cannot cross this amount. */
12
+ dollars?: number;
13
+ /** Proposer generations. Default: 3. External methods own their rounds and
14
+ * require this value to be omitted or set to 1. Set 0 only for a
15
+ * proposer-free baseline run. */
16
+ generations?: number;
17
+ /** Candidates the proposer emits per generation. Default 2. */
18
+ populationSize?: number;
19
+ /** Max concurrent cells across the loop. Default 2. */
20
+ maxConcurrency?: number;
21
+ /** Candidate campaigns scored in parallel. Default 1. Total concurrent
22
+ * cells are bounded by `candidateConcurrency * maxConcurrency`. */
23
+ candidateConcurrency?: number;
24
+ /** Fraction of `scenarios` held out from training, used for the gate.
25
+ * Default 0.25. Ignored when `holdoutScenarios` is set explicitly. */
26
+ holdoutFraction?: number;
27
+ /** Fraction of the non-final cases reserved for method selection.
28
+ * Default 0.25. Used only with `method` and ignored when
29
+ * `selectionScenarios` is supplied explicitly. */
30
+ selectionFraction?: number;
31
+ /** Explicit held-out scenarios; overrides `holdoutFraction`. */
32
+ holdoutScenarios?: Scenario[];
33
+ /** Holdout policy. Default `'measured'`: split, re-score baseline vs winner
34
+ * on the held-out set, gate on that comparison. `'deferred'`: run the
35
+ * improvement-set campaigns + search promotion, dispatch ZERO holdout cells,
36
+ * force the gate to `'hold'`, return `lift: undefined`, and record
37
+ * `holdout: 'deferred'` in the provenance record — for callers that measure
38
+ * the held-out comparison in a separate later run instead of faking a
39
+ * static holdout scenario and recording a meaningless lift. Unless
40
+ * `holdoutScenarios` reserves an explicit set, ALL scenarios train. */
41
+ holdout?: 'measured' | 'deferred';
42
+ /** Per-scenario replicates per cell — raises bootstrap-CI tightness. Default 1. */
43
+ reps?: number;
44
+ /** DEPTH dial forwarded to the proposer's `propose()` as
45
+ * `ctx.maxImprovementShots` — max iterations an agentic candidate generator
46
+ * may take per candidate (verify-in-session retries). Unset ⇒ the
47
+ * proposer's own default. */
48
+ maxImprovementShots?: number;
49
+ }
50
+ type SelfImproveProgressEvent = {
51
+ kind: 'baseline.started';
52
+ scenarios: number;
53
+ } | {
54
+ kind: 'baseline.completed';
55
+ compositeMean: number;
56
+ durationMs: number;
57
+ } | {
58
+ kind: 'generation.started';
59
+ index: number;
60
+ populationSize: number;
61
+ } | {
62
+ kind: 'generation.completed';
63
+ index: number;
64
+ bestComposite: number;
65
+ durationMs: number;
66
+ } | {
67
+ kind: 'gate.decided';
68
+ decision: string;
69
+ lift?: number;
70
+ } | {
71
+ kind: 'power.estimated';
72
+ n: number;
73
+ sd: number;
74
+ mde: number;
75
+ underpowered: boolean;
76
+ };
77
+ interface SelfImproveOptions<TScenario extends Scenario, TArtifact> {
78
+ /**
79
+ * Your agent — a function that takes the current `MutableSurface`
80
+ * (typically a system prompt the loop is optimizing) plus the
81
+ * scenario + cell ctx, and returns the artifact your judge scores.
82
+ *
83
+ * Same shape as `RunOptimizationOptions.dispatchWithSurface`. Wrap a
84
+ * plain `Dispatch` if you don't have a surface seam:
85
+ *
86
+ * agent: (_surface, scenario, ctx) => yourPlainDispatch(scenario, ctx)
87
+ *
88
+ * That mode evaluates without mutating any surface — useful as a
89
+ * baseline-only run (set `budget.generations = 0`).
90
+ */
91
+ agent: (surface: MutableSurface, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
92
+ /**
93
+ * Snapshot-bearing model identity for agents that do not report a paid-call
94
+ * receipt through `ctx.cost.runPaidCall()`.
95
+ *
96
+ * Omit this when every cell reports its concrete model in a receipt.
97
+ */
98
+ model?: string;
99
+ /** Scenarios to evaluate against. Train/holdout split is computed from
100
+ * these unless `budget.holdoutScenarios` is set explicitly. */
101
+ scenarios: TScenario[];
102
+ /** Judge that scores artifacts. Bring your own; use `langchainJudge`
103
+ * from `/adapters/langchain` for a Runnable-shaped one. */
104
+ judge: JudgeConfig<TArtifact, TScenario>;
105
+ /** Starting surface — system prompt, JSON config, anything `MutableSurface`
106
+ * accepts. The proposer mutates this each generation. */
107
+ baselineSurface: MutableSurface;
108
+ /** Budget + loop shape. All fields optional. */
109
+ budget?: SelfImproveBudget;
110
+ /**
111
+ * Complete prior measurement of `baselineSurface` over the TRAIN split.
112
+ * Forwarded to the loop body, which validates its surface hash, scenario
113
+ * split, seed (42), reps, and coverage, then skips the baseline search
114
+ * campaign entirely — no baseline dispatch, no resumability lookup. The
115
+ * train split is `scenarios` minus the holdout split, so premeasure with
116
+ * exactly that scenario set (explicit `budget.holdoutScenarios`, or
117
+ * `budget.holdout: 'deferred'` with no reserved set, makes the train split
118
+ * deterministic). Prior spend stays in the imported campaign aggregates and
119
+ * is not re-added to this run's cost ledger.
120
+ */
121
+ premeasuredBaseline?: PremeasuredOptimizationBaseline<TArtifact, TScenario>;
122
+ /**
123
+ * Candidate generator for this local generation loop.
124
+ * Required when `budget.generations` is greater than zero.
125
+ */
126
+ proposer?: SurfaceProposer<ProposalFinding>;
127
+ /**
128
+ * Complete optimization method, such as official GEPA or SkillOpt.
129
+ * The method receives disjoint train and selection cases and never receives
130
+ * the final comparison cases. Mutually exclusive with `proposer`.
131
+ */
132
+ method?: OptimizationMethod<TScenario, TArtifact>;
133
+ /** Explicit method-selection cases. They must also appear in `scenarios`
134
+ * and must not overlap the final comparison cases. */
135
+ selectionScenarios?: TScenario[];
136
+ /** Custom gate. Default is `defaultProductionGate` with
137
+ * `deltaThreshold: 0.05` on the held-out split. */
138
+ gate?: Gate<TArtifact, TScenario>;
139
+ /** Placebo control. When supplied AND the winner differs from baseline, the
140
+ * loop scores a THIRD held-out arm: the winner surface with its content
141
+ * footprint-matched-blanked by this fn (typically via `neutralizeText`). Its
142
+ * scores reach the gate as `ctx.neutralizedJudgeScores`, letting a
143
+ * `neutralizationGate` reject a win whose lift survives blanking the content
144
+ * (decorative — driven by footprint, not content). Costs one extra held-out
145
+ * campaign; omit to skip. Compose `neutralizationGate` into `gate` to act on it. */
146
+ neutralize?: (winnerSurface: MutableSurface, baselineSurface: MutableSurface) => MutableSurface;
147
+ /** Storage backend. A filesystem run directory uses `fsCampaignStorage()`;
148
+ * a `mem://` directory uses in-memory storage. External methods default to
149
+ * a filesystem directory because their official state must survive. */
150
+ storage?: CampaignStorage;
151
+ /** Run directory. Proposer mode defaults to
152
+ * `mem://selfImprove-<timestamp>`. External method mode defaults to
153
+ * `.agent-eval/runs/self-improve-<timestamp>`. */
154
+ runDir?: string;
155
+ /** Fires once the durable provenance record + OTel spans are emitted.
156
+ * Receives the structured record for inline assertions / custom routing. */
157
+ onProvenance?: (record: LoopProvenanceRecord) => void;
158
+ /** Distributed execution seam — same as `RunCampaignOptions.cellPlacement`.
159
+ * Returns an opaque placement key the substrate forwards to your agent
160
+ * as `ctx.placement`. Combined with `httpDispatch` from
161
+ * `/adapters/http`, fans cells across regions. */
162
+ cellPlacement?: (input: {
163
+ scenario: TScenario;
164
+ rep: number;
165
+ generation?: number;
166
+ }) => string | undefined;
167
+ /** Per-cell agent dispatch deadline, applied to baseline, candidate, and
168
+ * held-out campaigns. Default 600_000 ms. Set 0 to disable. */
169
+ dispatchTimeoutMs?: number;
170
+ /** Streaming hook — fires on baseline + each generation + gate decision.
171
+ * Consumer routes events wherever (UI, dashboard, logs). */
172
+ onProgress?: (event: SelfImproveProgressEvent) => void;
173
+ /** Auto-promotion behavior on a ship decision. Default `'none'` — we
174
+ * return the winner; you ship it however you ship. `'pr'` opens a
175
+ * GitHub PR via `openAutoPr`; requires `ghOwner` + `ghRepo`. */
176
+ autoOnPromote?: 'pr' | 'none';
177
+ ghOwner?: string;
178
+ ghRepo?: string;
179
+ /**
180
+ * Opt-in: ship eval-run events to a hosted orchestrator (ours, your
181
+ * self-hosted one, or any compatible implementation of the
182
+ * `docs/hosted-ingest-spec.md` wire format). When set, the substrate
183
+ * POSTs the final `EvalRunEvent` to `${endpoint}/v1/ingest/eval-runs`
184
+ * after the loop completes. Failures are logged but do not fail the
185
+ * loop — local result is always returned.
186
+ *
187
+ * For our orchestrator: `{ endpoint: 'https://orchestrator.tangle.tools/v1', apiKey, tenantId }`.
188
+ *
189
+ * For your self-hosted: any URL serving the wire format. See
190
+ * `examples/hosted-ingest-server/` for the reference receiver.
191
+ */
192
+ hostedTenant?: HostedTenant;
193
+ /** Free-form labels attached to the hosted event (env, branch, model id,
194
+ * etc.). Ignored when `hostedTenant` is unset. */
195
+ hostedLabels?: Record<string, string>;
196
+ /** Capture every search artifact and judge score to this store.
197
+ * The store is output only and is never exposed to candidate generation.
198
+ * Pass `'off'` to disable. Default: off. */
199
+ labeledStore?: LabeledScenarioStore | 'off';
200
+ /** Capture-source tag for `labeledStore`. Default `'eval-run'`. */
201
+ captureSource?: 'production-trace' | 'eval-run' | 'manual' | 'red-team' | 'synthetic';
202
+ /**
203
+ * Per-cell backend-integrity expectation — the fail-loud guard. A cell that
204
+ * produced an artifact but reported `costUsd === 0` AND zero tokens is a
205
+ * stub. Modes: `'assert'` throws on the first such cell, `'warn'` logs it,
206
+ * `'off'` skips the check (offline/replay). Default `'assert'` — `selfImprove`
207
+ * is the real-run path, so a stub fails loud rather than scoring a clean 0.
208
+ */
209
+ expectUsage?: 'assert' | 'warn' | 'off';
210
+ /**
211
+ * Per-generation findings producer. Runs once on the baseline campaign (as
212
+ * `generation: -1`) before generation 0 proposes — so single-generation runs
213
+ * propose with trace context — and again after each generation is scored;
214
+ * whatever it returns REPLACES the proposer's `findings` for the next
215
+ * `propose()`. Plug a trace-analyst registry / HALO here. When absent,
216
+ * findings stay `opts.findings`.
217
+ */
218
+ analyzeGeneration?: RunOptimizationOptions<TScenario, TArtifact>['analyzeGeneration'];
219
+ /** Static findings forwarded to the proposer's `propose()` as `ctx.findings`
220
+ * (a findings-grounded proposer consumes them). Default: none. */
221
+ findings?: ProposalFinding[];
222
+ /** Override how the WINNER is selected among coverage-complete candidates.
223
+ * Defaults to the scalar mean composite (historical behavior). A binary-with-
224
+ * replicates consumer whose ship-gate counts an instance resolved only when
225
+ * every replicate resolved passes a fail-closed lexicographic key here so that
226
+ * winner-selection and the ship-gate rank on the identical metric and cannot
227
+ * invert. See `RunOptimizationOptions.selectionRankKey`. */
228
+ selectionRankKey?: RunOptimizationOptions<TScenario, TArtifact>['selectionRankKey'];
229
+ }
230
+ interface SelfImproveResult<TScenario extends Scenario, TArtifact> {
231
+ /** Composite mean across all scenarios, baseline run. When
232
+ * `budget.holdout === 'deferred'` this is measured on the improvement
233
+ * (search) split — no holdout campaign ran. */
234
+ baseline: {
235
+ compositeMean: number;
236
+ perScenario: Record<string, number>;
237
+ };
238
+ /** Composite mean on the held-out set, winner run. When
239
+ * `budget.holdout === 'deferred'` this is the winner's improvement-set
240
+ * (search) measurement — no holdout campaign ran. */
241
+ winner: {
242
+ compositeMean: number;
243
+ perScenario: Record<string, number>;
244
+ surface: MutableSurface;
245
+ /** Proposer label for the promoted change. Absent ⇒ winner == baseline or
246
+ * a bare-surface mutator. */
247
+ label?: string;
248
+ /** Proposer rationale — the "because Z" that motivated the promoted change.
249
+ * Threaded from the proposer's `ProposedCandidate` through the loop.
250
+ * Absent ⇒ winner == baseline. */
251
+ rationale?: string;
252
+ };
253
+ /** `winner.compositeMean - baselineOnHoldout.compositeMean`. Positive
254
+ * means the gate observed improvement. Absent iff
255
+ * `budget.holdout === 'deferred'` — no held-out measurement ran, so there
256
+ * is no lift to report (never a fabricated 0). */
257
+ lift?: number;
258
+ /** The explicit baseline→winner unified diff. Always present (empty string
259
+ * when winner == baseline). */
260
+ diff: string;
261
+ /** Durable, queryable provenance record: candidate→cell→gate→promote chain +
262
+ * rationale + diff + backend provenance. The artifact the hosted ingest
263
+ * path stores; the +lift RECOMPUTES from `record.heldOutLift`. */
264
+ provenance: LoopProvenanceRecord;
265
+ /** `defaultProductionGate.decide()` result. */
266
+ gateDecision: 'ship' | 'hold' | 'need_more_work' | 'model_ceiling' | 'arch_ceiling';
267
+ /** Number of generations actually explored (may be less than the
268
+ * budget if the proposer gave up early). */
269
+ generationsExplored: number;
270
+ /** Wall-clock total. */
271
+ durationMs: number;
272
+ /** Total newly observed cost across the full run. */
273
+ totalCostUsd: number;
274
+ /** Canonical run-wide spend summary. */
275
+ cost: CostLedgerSummary;
276
+ /** Run-wide receipts across proposal, search, holdout, judging, analysis,
277
+ * and promotion work, with phase and actor attribution. */
278
+ receipts: CostReceipt[];
279
+ /** Exact external method and source identity, when `method` was used. */
280
+ optimization?: {
281
+ name: string;
282
+ cost: OptimizationMethodResult['cost'];
283
+ durationMs?: number;
284
+ provenance?: OptimizationMethodProvenance;
285
+ };
286
+ /**
287
+ * Rigor packet: distributional summary, paired-bootstrap lift CI,
288
+ * judge stats, contamination check, recommendations. Wired through
289
+ * `analyzeRuns()` on the baseline + winner cells of the campaign.
290
+ * Hosted-tier dashboards render this as the v3-vs-v4 decision view.
291
+ */
292
+ insight: InsightReport;
293
+ /** Minimum-detectable-lift analysis from the baseline holdout cells: could this
294
+ * budget have shipped ANY plausible effect? Absent when the baseline produced
295
+ * fewer than 3 scored holdout cells. See `powerPreflight` for the standalone
296
+ * pre-run version (run `gate: 'none'` first, budget the real search after). */
297
+ power?: PowerPreflight;
298
+ /**
299
+ * Raw substrate result for advanced inspection — full per-generation
300
+ * candidates, full campaign artifacts, all judge scores. Useful for
301
+ * debugging or reporting beyond the summary.
302
+ */
303
+ raw: RunImprovementLoopResult<TArtifact, TScenario>;
304
+ }
305
+ /** Failed self-improvement run with an immutable receipt snapshot. */
306
+ declare class SelfImproveRunError extends Error {
307
+ readonly cost: CostLedgerSummary;
308
+ readonly receipts: CostReceipt[];
309
+ constructor(cause: unknown, ledger: CostLedgerHandle);
310
+ }
311
+ /**
312
+ * One-shot self-improvement loop. See module docstring for defaults +
313
+ * extension points.
314
+ *
315
+ * @example Minimum:
316
+ *
317
+ * const result = await selfImprove({
318
+ * agent: (surface, scenario, ctx) => myAgent(surface, scenario, ctx.signal),
319
+ * scenarios,
320
+ * judge,
321
+ * baselineSurface: DEFAULT_PROMPT,
322
+ * proposer,
323
+ * })
324
+ * console.log(`lift: ${result.lift.toFixed(3)} (${result.gateDecision})`)
325
+ *
326
+ * @example Distributed (workers in three regions):
327
+ *
328
+ * await selfImprove({
329
+ * agent: httpDispatch({ resolveUrl: ({ placement }) => REGION_URLS[placement!] }),
330
+ * scenarios,
331
+ * judge,
332
+ * baselineSurface: DEFAULT_PROMPT,
333
+ * cellPlacement: ({ scenario }) => scenario.region,
334
+ * budget: { maxConcurrency: 12 },
335
+ * })
336
+ */
337
+ declare function selfImprove<TScenario extends Scenario, TArtifact>(opts: SelfImproveOptions<TScenario, TArtifact>): Promise<SelfImproveResult<TScenario, TArtifact>>;
338
+ //#endregion
339
+ //#region src/contract/define-agent-eval.d.ts
340
+ type AgentEvalAgent<TScenario extends Scenario, TArtifact> = (surface: MutableSurface, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
341
+ type DefineAgentEvalOptions<TScenario extends Scenario, TArtifact> = SelfImproveOptions<TScenario, TArtifact>;
342
+ interface AgentEvalEvaluateOptions<TScenario extends Scenario, TArtifact> extends Omit<RunEvalOptions<TScenario, TArtifact>, 'dispatch' | 'judges' | 'runDir' | 'scenarios'> {
343
+ /** Scenario set to evaluate. Defaults to the scenarios passed to `defineAgentEval`. */
344
+ scenarios?: TScenario[];
345
+ /** Surface to evaluate. Defaults to the baseline surface passed to `defineAgentEval`. */
346
+ surface?: MutableSurface;
347
+ /** Agent to evaluate. Defaults to the agent passed to `defineAgentEval`. */
348
+ agent?: AgentEvalAgent<TScenario, TArtifact>;
349
+ /** Single judge override. Ignored when `judges` is set. */
350
+ judge?: JudgeConfig<TArtifact, TScenario>;
351
+ /** Full judge list override. Defaults to the single judge passed to `defineAgentEval`. */
352
+ judges?: JudgeConfig<TArtifact, TScenario>[];
353
+ /** Logical or filesystem run directory. Defaults to an in-memory run. */
354
+ runDir?: string;
355
+ }
356
+ type AgentEvalImproveOptions<TScenario extends Scenario, TArtifact> = Omit<Partial<SelfImproveOptions<TScenario, TArtifact>>, 'budget' | 'hostedTenant'> & {
357
+ budget?: Partial<SelfImproveBudget>;
358
+ hostedTenant?: Partial<HostedTenant>;
359
+ };
360
+ interface DefinedAgentEval<TScenario extends Scenario, TArtifact> {
361
+ /** The default scenarios used by `evaluate()` and `improve()`. */
362
+ readonly scenarios: readonly TScenario[];
363
+ /** The default baseline surface used by `evaluate()` and `improve()`. */
364
+ readonly baselineSurface: MutableSurface;
365
+ /**
366
+ * Run one scored evaluation. Use this for a baseline score or to score one
367
+ * candidate surface without running an improvement loop.
368
+ */
369
+ evaluate(opts?: AgentEvalEvaluateOptions<TScenario, TArtifact>): Promise<CampaignResult<TArtifact, TScenario>>;
370
+ /**
371
+ * Run the closed improvement loop. Per-call overrides replace the definition
372
+ * except for nested config objects (`budget`, `hostedTenant`), which
373
+ * are merged field-by-field so callers can override one knob without
374
+ * repeating secrets or budget defaults.
375
+ */
376
+ improve(opts?: AgentEvalImproveOptions<TScenario, TArtifact>): Promise<SelfImproveResult<TScenario, TArtifact>>;
377
+ }
378
+ /**
379
+ * Define an agent eval once, then either score a surface with `evaluate()` or
380
+ * run the closed loop with `improve()`.
381
+ *
382
+ * This is a DX wrapper only: it delegates to `runEval()` and `selfImprove()` and
383
+ * returns their native result shapes.
384
+ */
385
+ declare function defineAgentEval<TScenario extends Scenario, TArtifact>(defaults: DefineAgentEvalOptions<TScenario, TArtifact>): DefinedAgentEval<TScenario, TArtifact>;
386
+ //#endregion
387
+ export { DefinedAgentEval as a, SelfImproveOptions as c, SelfImproveRunError as d, selfImprove as f, DefineAgentEvalOptions as i, SelfImproveProgressEvent as l, AgentEvalEvaluateOptions as n, defineAgentEval as o, AgentEvalImproveOptions as r, SelfImproveBudget as s, AgentEvalAgent as t, SelfImproveResult as u };
388
+ //# sourceMappingURL=define-agent-eval-sH24zBfM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-agent-eval-sH24zBfM.d.ts","names":[],"sources":["../src/contract/self-improve.ts","../src/contract/define-agent-eval.ts"],"mappings":";;;;;;;;UA+DiB;;;EAGf;;;;EAIA;;EAEA;;EAEA;;;EAGA;;;EAGA;;;;EAIA;;EAEA,mBAAmB;;;;;;;;;EASnB;;EAEA;;;;;EAKA;;KAGU;EACN;EAA0B;;EAC1B;EAA4B;EAAuB;;EACnD;EAA4B;EAAe;;EAC3C;EAA8B;EAAe;EAAuB;;EAGpE;EAAsB;EAAkB;;EACxC;EAAyB;EAAW;EAAY;EAAa;;UAElD,mBAAmB,kBAAkB,UAAU;;;;;;;;;;;;;;EAc9D,QAAQ,SAAS,gBAAgB,UAAU,WAAW,KAAK,oBAAoB,QAAQ;;;;;;;EAQvF;;;EAIA,WAAW;;;EAIX,OAAO,YAAY,WAAW;;;EAI9B,iBAAiB;;EAGjB,SAAS;;;;;;;;;;;;EAaT,sBAAsB,gCAAgC,WAAW;;;;;EAMjE,WAAW,gBAAgB;;;;;;EAO3B,SAAS,mBAAmB,WAAW;;;EAIvC,qBAAqB;;;EAIrB,OAAO,KAAK,WAAW;;;;;;;;EASvB,cAAc,eAAe,gBAAgB,iBAAiB,mBAAmB;;;;EAKjF,UAAU;;;;EAKV;;;EAIA,gBAAgB,QAAQ;;;;;EAMxB,iBAAiB;IACf,UAAU;IACV;IACA;;;;EAKF;;;EAIA,cAAc,OAAO;;;;EAKrB;EACA;EACA;;;;;;;;;;;;;;EAeA,eAAe;;;EAIf,eAAe;;;;EAKf,eAAe;;EAGf;;;;;;;;EASA;;;;;;;;;EAUA,oBAAoB,uBAAuB,WAAW;;;EAItD,WAAW;;;;;;;EAQX,mBAAmB,uBAAuB,WAAW;;UAGtC,kBAAkB,kBAAkB,UAAU;;;;EAI7D;IACE;IACA,aAAa;;;;;EAKf;IACE;IACA,aAAa;IACb,SAAS;;;IAGT;;;;IAIA;;;;;;EAMF;;;EAGA;;;;EAIA,YAAY;;EAEZ;;;EAGA;;EAEA;;EAEA;;EAEA,MAAM;;;EAGN,UAAU;;EAEV;IACE;IACA,MAAM;IACN;IACA,aAAa;;;;;;;;EAQf,SAAS;;;;;EAKT,QAAQ;;;;;;EAMR,KAAK,yBAAyB,WAAW;;;cAI9B,4BAA4B;WAC9B,MAAM;WACN,UAAU;EAEnB,YAAY,gBAAgB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+LhB,YAAY,kBAAkB,UAAU,WAC5D,MAAM,mBAAmB,WAAW,aACnC,QAAQ,kBAAkB,WAAW;;;KCviB5B,eAAe,kBAAkB,UAAU,cACrD,SAAS,gBACT,UAAU,WACV,KAAK,oBACF,QAAQ;KAED,uBAAuB,kBAAkB,UAAU,aAAa,mBAC1E,WACA;UAGe,yBAAyB,kBAAkB,UAAU,mBAC5D,KACN,eAAe,WAAW;;EAI5B,YAAY;;EAEZ,UAAU;;EAEV,QAAQ,eAAe,WAAW;;EAElC,QAAQ,YAAY,WAAW;;EAE/B,SAAS,YAAY,WAAW;;EAEhC;;KAGU,wBAAwB,kBAAkB,UAAU,aAAa,KAC3E,QAAQ,mBAAmB,WAAW;EAGtC,SAAS,QAAQ;EACjB,eAAe,QAAQ;;UAGR,iBAAiB,kBAAkB,UAAU;;WAEnD,oBAAoB;;WAEpB,iBAAiB;;;;;EAK1B,SACE,OAAO,yBAAyB,WAAW,aAC1C,QAAQ,eAAe,WAAW;;;;;;;EAOrC,QACE,OAAO,wBAAwB,WAAW,aACzC,QAAQ,kBAAkB,WAAW;;;;;;;;;iBAU1B,gBAAgB,kBAAkB,UAAU,WAC1D,UAAU,uBAAuB,WAAW,aAC3C,iBAAiB,WAAW"}
@@ -0,0 +1,144 @@
1
+ import { i as makeRng } from "./internal-BDHPCnjk.js";
2
+ //#region src/statistics/descriptive.ts
3
+ /**
4
+ * Descriptive statistics: means, bootstrap spread, correlation, and the
5
+ * weighted judge-dimension composite. Nothing here is a significance test.
6
+ */
7
+ /** Weighted mean — falls back to uniform weights when omitted */
8
+ function weightedMean(scores) {
9
+ if (scores.length === 0) return 0;
10
+ let totalWeight = 0;
11
+ let weightedSum = 0;
12
+ for (const { score, weight } of scores) {
13
+ const w = weight ?? 1;
14
+ weightedSum += score * w;
15
+ totalWeight += w;
16
+ }
17
+ return totalWeight > 0 ? weightedSum / totalWeight : 0;
18
+ }
19
+ /**
20
+ * Percentile bootstrap confidence interval on the mean of `scores`.
21
+ *
22
+ * Descriptive spread. It is not a significance test, and at small n its bounds
23
+ * are anti-conservative in the same way {@link pairedBootstrap}'s are — see
24
+ * {@link BOOTSTRAP_GATE_MIN_N}. With no `seed` the resampling is seeded from
25
+ * the scores themselves, so the interval is reproducible either way.
26
+ */
27
+ function confidenceInterval(scores, confidence = .95, opts = {}) {
28
+ if (scores.length === 0) return {
29
+ mean: 0,
30
+ lower: 0,
31
+ upper: 0
32
+ };
33
+ if (scores.length === 1) return {
34
+ mean: scores[0],
35
+ lower: scores[0],
36
+ upper: scores[0]
37
+ };
38
+ const n = scores.length;
39
+ const mean = scores.reduce((a, b) => a + b, 0) / n;
40
+ const B = opts.resamples ?? 1e3;
41
+ const rng = makeRng(opts.seed, scores);
42
+ const bootstrapMeans = [];
43
+ for (let i = 0; i < B; i++) {
44
+ let sum = 0;
45
+ for (let j = 0; j < n; j++) sum += scores[Math.floor(rng() * n)];
46
+ bootstrapMeans.push(sum / n);
47
+ }
48
+ bootstrapMeans.sort((a, b) => a - b);
49
+ const alpha = 1 - confidence;
50
+ const lowerIdx = Math.floor(alpha / 2 * B);
51
+ const upperIdx = Math.floor((1 - alpha / 2) * B) - 1;
52
+ return {
53
+ mean,
54
+ lower: bootstrapMeans[lowerIdx],
55
+ upper: bootstrapMeans[Math.min(upperIdx, B - 1)]
56
+ };
57
+ }
58
+ /** Partial credit: returns 0-1 ratio of current toward target */
59
+ function partialCredit(current, target) {
60
+ if (target <= 0) return 1;
61
+ return Math.min(1, Math.max(0, current / target));
62
+ }
63
+ /**
64
+ * Average-rank-with-ties transform (1-indexed). Tied values receive the mean
65
+ * of the ranks they span, the standard correction for Spearman's ρ.
66
+ */
67
+ function ranks(xs) {
68
+ const indexed = xs.map((v, i) => ({
69
+ v,
70
+ i
71
+ })).sort((a, b) => a.v - b.v);
72
+ const r = new Array(xs.length);
73
+ let i = 0;
74
+ while (i < indexed.length) {
75
+ let j = i;
76
+ while (j + 1 < indexed.length && indexed[j + 1].v === indexed[i].v) j++;
77
+ const avg = (i + j) / 2 + 1;
78
+ for (let k = i; k <= j; k++) r[indexed[k].i] = avg;
79
+ i = j + 1;
80
+ }
81
+ return r;
82
+ }
83
+ /**
84
+ * Pearson product-moment correlation coefficient r ∈ [-1, 1] between two
85
+ * equal-length series. See the edge-case contract above: NaN for n < 2 or
86
+ * unequal lengths, 1 when both series are constant, 0 when exactly one is.
87
+ */
88
+ function pearsonR(a, b) {
89
+ if (a.length !== b.length || a.length < 2) return NaN;
90
+ const n = a.length;
91
+ const meanA = a.reduce((s, v) => s + v, 0) / n;
92
+ const meanB = b.reduce((s, v) => s + v, 0) / n;
93
+ let num = 0;
94
+ let varA = 0;
95
+ let varB = 0;
96
+ for (let i = 0; i < n; i++) {
97
+ const da = a[i] - meanA;
98
+ const db = b[i] - meanB;
99
+ num += da * db;
100
+ varA += da * da;
101
+ varB += db * db;
102
+ }
103
+ if (varA === 0 || varB === 0) return varA === 0 && varB === 0 ? 1 : 0;
104
+ return num / Math.sqrt(varA * varB);
105
+ }
106
+ /**
107
+ * Spearman's rank correlation ρ — Pearson over the average-rank-with-ties
108
+ * transform of each series. Same edge-case contract as {@link pearsonR}.
109
+ */
110
+ function spearmanR(a, b) {
111
+ if (a.length !== b.length || a.length < 2) return NaN;
112
+ return pearsonR(ranks(a), ranks(b));
113
+ }
114
+ /**
115
+ * Weighted composite over judge dimensions: `Σ(score_d · w_d) / Σ(w_d)` across
116
+ * the weighted dimensions. The canonical replacement for the per-consumer
117
+ * hand-rolled composite math (tax/legal/creative/gtm each ship a copy).
118
+ *
119
+ * Fail-loud: throws if a weighted dimension is missing from `dims`, if any
120
+ * weight is negative, or if the weights sum to 0 — none of which can produce
121
+ * a meaningful composite.
122
+ */
123
+ function weightedComposite(input) {
124
+ const entries = Object.entries(input.weights);
125
+ if (entries.length === 0) throw new Error("weightedComposite: `weights` is empty — nothing to combine");
126
+ let weightedSum = 0;
127
+ let weightTotal = 0;
128
+ for (const [dim, weight] of entries) {
129
+ if (weight < 0) throw new Error(`weightedComposite: weight for '${dim}' is negative (${weight})`);
130
+ if (!(dim in input.dims)) throw new Error(`weightedComposite: weighted dimension '${dim}' is absent from \`dims\` — refusing to renormalise onto a different denominator`);
131
+ weightedSum += input.dims[dim] * weight;
132
+ weightTotal += weight;
133
+ }
134
+ if (weightTotal === 0) throw new Error("weightedComposite: weights sum to 0 — composite is undefined");
135
+ const composite = weightedSum / weightTotal;
136
+ return input.threshold === void 0 ? { composite } : {
137
+ composite,
138
+ pass: composite >= input.threshold
139
+ };
140
+ }
141
+ //#endregion
142
+ export { spearmanR as a, ranks as i, partialCredit as n, weightedComposite as o, pearsonR as r, weightedMean as s, confidenceInterval as t };
143
+
144
+ //# sourceMappingURL=descriptive-B5MwKfbf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptive-B5MwKfbf.js","names":[],"sources":["../src/statistics/descriptive.ts"],"sourcesContent":["/**\n * Descriptive statistics: means, bootstrap spread, correlation, and the\n * weighted judge-dimension composite. Nothing here is a significance test.\n */\n\nimport { makeRng } from './internal'\n\n/** Weighted mean — falls back to uniform weights when omitted */\nexport function weightedMean(scores: { score: number; weight?: number }[]): number {\n if (scores.length === 0) return 0\n let totalWeight = 0\n let weightedSum = 0\n for (const { score, weight } of scores) {\n const w = weight ?? 1\n weightedSum += score * w\n totalWeight += w\n }\n return totalWeight > 0 ? weightedSum / totalWeight : 0\n}\n\n/**\n * Percentile bootstrap confidence interval on the mean of `scores`.\n *\n * Descriptive spread. It is not a significance test, and at small n its bounds\n * are anti-conservative in the same way {@link pairedBootstrap}'s are — see\n * {@link BOOTSTRAP_GATE_MIN_N}. With no `seed` the resampling is seeded from\n * the scores themselves, so the interval is reproducible either way.\n */\nexport function confidenceInterval(\n scores: number[],\n confidence = 0.95,\n opts: { seed?: number; resamples?: number } = {},\n): { mean: number; lower: number; upper: number } {\n if (scores.length === 0) return { mean: 0, lower: 0, upper: 0 }\n if (scores.length === 1) return { mean: scores[0]!, lower: scores[0]!, upper: scores[0]! }\n\n const n = scores.length\n const mean = scores.reduce((a, b) => a + b, 0) / n\n\n const B = opts.resamples ?? 1000\n const rng = makeRng(opts.seed, scores)\n const bootstrapMeans: number[] = []\n\n for (let i = 0; i < B; i++) {\n let sum = 0\n for (let j = 0; j < n; j++) {\n sum += scores[Math.floor(rng() * n)]!\n }\n bootstrapMeans.push(sum / n)\n }\n\n bootstrapMeans.sort((a, b) => a - b)\n\n const alpha = 1 - confidence\n const lowerIdx = Math.floor((alpha / 2) * B)\n const upperIdx = Math.floor((1 - alpha / 2) * B) - 1\n\n return {\n mean,\n lower: bootstrapMeans[lowerIdx]!,\n upper: bootstrapMeans[Math.min(upperIdx, B - 1)]!,\n }\n}\n\n/** Partial credit: returns 0-1 ratio of current toward target */\nexport function partialCredit(current: number, target: number): number {\n if (target <= 0) return 1\n return Math.min(1, Math.max(0, current / target))\n}\n\n// ── Correlation (Pearson / Spearman) ─────────────────────────────────\n//\n// The single source for linear (Pearson) and rank (Spearman) correlation.\n// Edge-case contract is explicit so every caller agrees on what a\n// degenerate input means:\n// - length mismatch or n < 2 → NaN (correlation is undefined; not 0)\n// - both series constant → 1 (degenerate perfect agreement)\n// - exactly one series constant → 0 (no covariation to detect)\n// Returning NaN for n < 2 (rather than 0) keeps \"not enough data\" distinct\n// from \"measured zero correlation\", which a 0 would silently conflate.\n\n/**\n * Average-rank-with-ties transform (1-indexed). Tied values receive the mean\n * of the ranks they span, the standard correction for Spearman's ρ.\n */\nexport function ranks(xs: number[]): number[] {\n const indexed = xs.map((v, i) => ({ v, i })).sort((a, b) => a.v - b.v)\n const r = new Array<number>(xs.length)\n let i = 0\n while (i < indexed.length) {\n let j = i\n while (j + 1 < indexed.length && indexed[j + 1]!.v === indexed[i]!.v) j++\n const avg = (i + j) / 2 + 1\n for (let k = i; k <= j; k++) r[indexed[k]!.i] = avg\n i = j + 1\n }\n return r\n}\n\n/**\n * Pearson product-moment correlation coefficient r ∈ [-1, 1] between two\n * equal-length series. See the edge-case contract above: NaN for n < 2 or\n * unequal lengths, 1 when both series are constant, 0 when exactly one is.\n */\nexport function pearsonR(a: number[], b: number[]): number {\n if (a.length !== b.length || a.length < 2) return Number.NaN\n const n = a.length\n const meanA = a.reduce((s, v) => s + v, 0) / n\n const meanB = b.reduce((s, v) => s + v, 0) / n\n let num = 0\n let varA = 0\n let varB = 0\n for (let i = 0; i < n; i++) {\n const da = a[i]! - meanA\n const db = b[i]! - meanB\n num += da * db\n varA += da * da\n varB += db * db\n }\n if (varA === 0 || varB === 0) return varA === 0 && varB === 0 ? 1 : 0\n return num / Math.sqrt(varA * varB)\n}\n\n/**\n * Spearman's rank correlation ρ — Pearson over the average-rank-with-ties\n * transform of each series. Same edge-case contract as {@link pearsonR}.\n */\nexport function spearmanR(a: number[], b: number[]): number {\n if (a.length !== b.length || a.length < 2) return Number.NaN\n return pearsonR(ranks(a), ranks(b))\n}\n\nexport interface WeightedCompositeInput {\n /** Per-dimension scores (typically 0..1). */\n dims: Record<string, number>\n /** Weight per dimension. Every weighted dimension MUST be present in\n * `dims` — a weight for an absent dimension is a config error and throws,\n * because silently dropping it would renormalise the composite onto a\n * different denominator than intended. */\n weights: Record<string, number>\n /** Optional pass threshold; when set, the result reports `pass`. */\n threshold?: number\n}\n\nexport interface WeightedCompositeResult {\n composite: number\n pass?: boolean\n}\n\n/**\n * Weighted composite over judge dimensions: `Σ(score_d · w_d) / Σ(w_d)` across\n * the weighted dimensions. The canonical replacement for the per-consumer\n * hand-rolled composite math (tax/legal/creative/gtm each ship a copy).\n *\n * Fail-loud: throws if a weighted dimension is missing from `dims`, if any\n * weight is negative, or if the weights sum to 0 — none of which can produce\n * a meaningful composite.\n */\nexport function weightedComposite(input: WeightedCompositeInput): WeightedCompositeResult {\n const entries = Object.entries(input.weights)\n if (entries.length === 0) {\n throw new Error('weightedComposite: `weights` is empty — nothing to combine')\n }\n let weightedSum = 0\n let weightTotal = 0\n for (const [dim, weight] of entries) {\n if (weight < 0) {\n throw new Error(`weightedComposite: weight for '${dim}' is negative (${weight})`)\n }\n if (!(dim in input.dims)) {\n throw new Error(\n `weightedComposite: weighted dimension '${dim}' is absent from \\`dims\\` — ` +\n 'refusing to renormalise onto a different denominator',\n )\n }\n weightedSum += input.dims[dim]! * weight\n weightTotal += weight\n }\n if (weightTotal === 0) {\n throw new Error('weightedComposite: weights sum to 0 — composite is undefined')\n }\n const composite = weightedSum / weightTotal\n return input.threshold === undefined\n ? { composite }\n : { composite, pass: composite >= input.threshold }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { s as resolveModelPricing } from "./metrics-C9YY1OcL.js";
2
- import { D as RawAnalystFindingSchema } from "./kind-factory-B8-r8-y8.js";
3
- import { D as resolveExternalOptimizerProcessLimits, E as resolveExternalOptimizerCallbackLimits, T as removeCredentialEnvironment, f as runWithCleanup, g as sendJson, h as listenLocal, m as closeServer, p as startExternalOptimizerModelProxy, u as runExternalOptimizerProcess, y as assertExternalOptimizerModelBudget } from "./single-run-lock-DFWHEB09.js";
1
+ import { a as resolveModelPricing } from "./metrics-Cl0L1KUy.js";
2
+ import { _ as resolveExternalOptimizerCallbackLimits, a as closeServer, g as removeCredentialEnvironment, i as startExternalOptimizerModelProxy, o as listenLocal, r as runWithCleanup, s as sendJson, t as runExternalOptimizerProcess, u as assertExternalOptimizerModelBudget, v as resolveExternalOptimizerProcessLimits } from "./external-optimizer-subprocess-DrJ9hR8u.js";
3
+ import { D as RawAnalystFindingSchema } from "./kind-factory-CPmSd58s.js";
4
4
  import { randomBytes } from "node:crypto";
5
5
  import { createServer } from "node:http";
6
6
  //#region src/analyst/trace-tool-callback.ts
@@ -390,4 +390,4 @@ function isRecord(value) {
390
390
  //#endregion
391
391
  export { createDspyRlmTraceEngine as t };
392
392
 
393
- //# sourceMappingURL=dspy-rlm-engine-DbTk4JdR.js.map
393
+ //# sourceMappingURL=dspy-rlm-engine-B_qhSc21.js.map