@tangle-network/agent-eval 0.208.2 → 0.210.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/dist/adapters/http.d.ts +2 -2
  4. package/dist/{agent-profile-CEhxR_I3.d.ts → agent-profile-BGyt2z8U.d.ts} +3 -3
  5. package/dist/{agent-profile-CEhxR_I3.d.ts.map → agent-profile-BGyt2z8U.d.ts.map} +1 -1
  6. package/dist/{agent-profile-cell-BHcB-mZX.d.ts → agent-profile-cell-BNp-Js9F.d.ts} +2 -3
  7. package/dist/agent-profile-cell-BNp-Js9F.d.ts.map +1 -0
  8. package/dist/{agent-profile-cell-DcFW4vOc.js → agent-profile-cell-BYc0bxsL.js} +2 -2
  9. package/dist/agent-profile-cell-BYc0bxsL.js.map +1 -0
  10. package/dist/analyst/index.d.ts +12 -12
  11. package/dist/analyst/index.js +5 -5
  12. package/dist/{analyze-runs-GZ0VSwui.js → analyze-runs-3xpby3p2.js} +6 -6
  13. package/dist/analyze-runs-3xpby3p2.js.map +1 -0
  14. package/dist/{analyze-runs-CTJyUplR.d.ts → analyze-runs-BlslTkOJ.d.ts} +4 -4
  15. package/dist/{analyze-runs-CTJyUplR.d.ts.map → analyze-runs-BlslTkOJ.d.ts.map} +1 -1
  16. package/dist/{benchmark-command-BC265T1r.js → benchmark-command-S8tCtkxh.js} +6 -6
  17. package/dist/{benchmark-command-BC265T1r.js.map → benchmark-command-S8tCtkxh.js.map} +1 -1
  18. package/dist/benchmarks/index.d.ts +5 -7
  19. package/dist/benchmarks/index.d.ts.map +1 -1
  20. package/dist/benchmarks/index.js +3 -3
  21. package/dist/builder-eval/index.js +1 -1
  22. package/dist/campaign/index.d.ts +6 -6
  23. package/dist/campaign/index.js +10 -10
  24. package/dist/{campaign-evidence-DW3Krxov.js → campaign-evidence-OcUciD-N.js} +4 -4
  25. package/dist/campaign-evidence-OcUciD-N.js.map +1 -0
  26. package/dist/{campaign-C5pjR-Qn.js → campaign-wvvJA1ps.js} +14 -14
  27. package/dist/{campaign-C5pjR-Qn.js.map → campaign-wvvJA1ps.js.map} +1 -1
  28. package/dist/claude-jsonl-dZir12m6.js +86 -0
  29. package/dist/claude-jsonl-dZir12m6.js.map +1 -0
  30. package/dist/cli.js +7 -7
  31. package/dist/contract/index.d.ts +10 -10
  32. package/dist/contract/index.js +92 -16
  33. package/dist/contract/index.js.map +1 -1
  34. package/dist/counterfactual-DtMWvn7D.js.map +1 -1
  35. package/dist/{default-registry-DZFWY2_E.d.ts → default-registry-Crk3QEy1.d.ts} +6 -6
  36. package/dist/{default-registry-DZFWY2_E.d.ts.map → default-registry-Crk3QEy1.d.ts.map} +1 -1
  37. package/dist/{default-registry-DX5R7_n9.js → default-registry-DF4Yp7HQ.js} +2 -2
  38. package/dist/{default-registry-DX5R7_n9.js.map → default-registry-DF4Yp7HQ.js.map} +1 -1
  39. package/dist/{define-agent-eval-C8zBSbsc.d.ts → define-agent-eval-B_zZY2AZ.d.ts} +7 -7
  40. package/dist/{define-agent-eval-C8zBSbsc.d.ts.map → define-agent-eval-B_zZY2AZ.d.ts.map} +1 -1
  41. package/dist/{define-agent-eval-BjKXcDQp.js → define-agent-eval-CoXXDCMu.js} +7 -7
  42. package/dist/{define-agent-eval-BjKXcDQp.js.map → define-agent-eval-CoXXDCMu.js.map} +1 -1
  43. package/dist/diagnosis/index.d.ts +2 -5
  44. package/dist/diagnosis/index.d.ts.map +1 -1
  45. package/dist/diagnosis/index.js +2 -26
  46. package/dist/diagnosis/index.js.map +1 -1
  47. package/dist/{dspy-rlm-engine-sHwdSxK3.js → dspy-rlm-engine-BpaKVKJA.js} +2 -2
  48. package/dist/{dspy-rlm-engine-sHwdSxK3.js.map → dspy-rlm-engine-BpaKVKJA.js.map} +1 -1
  49. package/dist/{engine-DProXJ7A.d.ts → engine-D-YZ32ZJ.d.ts} +5 -12
  50. package/dist/engine-D-YZ32ZJ.d.ts.map +1 -0
  51. package/dist/{eval-campaign-DU_p8qVt.js → eval-campaign-4byTtqrf.js} +4 -4
  52. package/dist/{eval-campaign-DU_p8qVt.js.map → eval-campaign-4byTtqrf.js.map} +1 -1
  53. package/dist/evaluation.d.ts +2 -2
  54. package/dist/{exact-types-Cq6xXNVR.d.ts → exact-types-DjhfZglz.d.ts} +2 -2
  55. package/dist/{exact-types-Cq6xXNVR.d.ts.map → exact-types-DjhfZglz.d.ts.map} +1 -1
  56. package/dist/experiment/index.d.ts +2 -2
  57. package/dist/experiment/index.js +8 -8
  58. package/dist/{feedback-trajectory-C6Z8PRoF.d.ts → feedback-trajectory-CX01700m.d.ts} +3 -3
  59. package/dist/{feedback-trajectory-C6Z8PRoF.d.ts.map → feedback-trajectory-CX01700m.d.ts.map} +1 -1
  60. package/dist/hosted/index.js +1 -1
  61. package/dist/{index-CbBfavbT.d.ts → index-D0_l25We.d.ts} +21 -42
  62. package/dist/{index-CbBfavbT.d.ts.map → index-D0_l25We.d.ts.map} +1 -1
  63. package/dist/{index-nwNoS582.d.ts → index-DnZdBxCL.d.ts} +14 -11
  64. package/dist/{index-nwNoS582.d.ts.map → index-DnZdBxCL.d.ts.map} +1 -1
  65. package/dist/{index-DkucR0KJ.d.ts → index-UxNTvn-w.d.ts} +6 -6
  66. package/dist/{index-DkucR0KJ.d.ts.map → index-UxNTvn-w.d.ts.map} +1 -1
  67. package/dist/{index-Bzto04CY.d.ts → index-xnhRdqik.d.ts} +9 -20
  68. package/dist/{index-Bzto04CY.d.ts.map → index-xnhRdqik.d.ts.map} +1 -1
  69. package/dist/index.d.ts +28 -37
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +28 -90
  72. package/dist/index.js.map +1 -1
  73. package/dist/judge-gate-C59znGmR.js +638 -0
  74. package/dist/judge-gate-C59znGmR.js.map +1 -0
  75. package/dist/judge-gate-D2hCppem.d.ts +439 -0
  76. package/dist/judge-gate-D2hCppem.d.ts.map +1 -0
  77. package/dist/{kind-factory-Cn1lbsAd.js → kind-factory-ivTx6koH.js} +2 -11
  78. package/dist/{kind-factory-Cn1lbsAd.js.map → kind-factory-ivTx6koH.js.map} +1 -1
  79. package/dist/{llm-judge-HLWASwUJ.js → llm-judge-Tr7MBUnf.js} +9 -9
  80. package/dist/llm-judge-Tr7MBUnf.js.map +1 -0
  81. package/dist/{matrix-Cqkk7eYI.d.ts → matrix-jHTsHEkR.d.ts} +2 -2
  82. package/dist/{matrix-Cqkk7eYI.d.ts.map → matrix-jHTsHEkR.d.ts.map} +1 -1
  83. package/dist/meta-eval/index.d.ts +3 -133
  84. package/dist/meta-eval/index.d.ts.map +1 -1
  85. package/dist/meta-eval/index.js +3 -276
  86. package/dist/meta-eval/index.js.map +1 -1
  87. package/dist/{mint-C1W8w5wo.d.ts → mint-CDy-brUR.d.ts} +2 -2
  88. package/dist/{mint-C1W8w5wo.d.ts.map → mint-CDy-brUR.d.ts.map} +1 -1
  89. package/dist/{mint-CWG-s2mI.js → mint-Csor1BLJ.js} +2 -2
  90. package/dist/{mint-CWG-s2mI.js.map → mint-Csor1BLJ.js.map} +1 -1
  91. package/dist/multishot/golden/index.d.ts +1 -1
  92. package/dist/multishot/index.d.ts +2 -2
  93. package/dist/openapi.json +1 -1
  94. package/dist/{paired-arms-CgWT7sHy.js → paired-arms-DzKn0TfY.js} +3 -5
  95. package/dist/{paired-arms-CgWT7sHy.js.map → paired-arms-DzKn0TfY.js.map} +1 -1
  96. package/dist/{paired-binary-b2L3WKqr.js → paired-binary-Q36bhn2R.js} +13 -9
  97. package/dist/paired-binary-Q36bhn2R.js.map +1 -0
  98. package/dist/{paired-promotion-decision-2deJ7sDX.js → paired-promotion-decision-BN6IQTiu.js} +2 -2
  99. package/dist/{paired-promotion-decision-2deJ7sDX.js.map → paired-promotion-decision-BN6IQTiu.js.map} +1 -1
  100. package/dist/pipelines/index.d.ts +1 -1
  101. package/dist/pipelines/index.js +2 -2
  102. package/dist/{prime-protocol-Csr9kcOM.d.ts → prime-protocol-B7et3tI7.d.ts} +2 -2
  103. package/dist/{prime-protocol-Csr9kcOM.d.ts.map → prime-protocol-B7et3tI7.d.ts.map} +1 -1
  104. package/dist/{produced-state-Bzlh09oj.js → produced-state-CKybuR9F.js} +3 -3
  105. package/dist/produced-state-CKybuR9F.js.map +1 -0
  106. package/dist/profile-cell.d.ts +2 -2
  107. package/dist/profile-cell.js +2 -2
  108. package/dist/{promotion-policy-CCmyEH_c.js → promotion-policy-CWW35UWq.js} +3 -3
  109. package/dist/{promotion-policy-CCmyEH_c.js.map → promotion-policy-CWW35UWq.js.map} +1 -1
  110. package/dist/{query-DlV0pdx4.js → query-B1D1qp2Z.js} +2 -2
  111. package/dist/{query-DlV0pdx4.js.map → query-B1D1qp2Z.js.map} +1 -1
  112. package/dist/{query-DBUQhehH.d.ts → query-DK1nWcmp.d.ts} +2 -3
  113. package/dist/{query-DBUQhehH.d.ts.map → query-DK1nWcmp.d.ts.map} +1 -1
  114. package/dist/{registry-DMkmhBQ5.d.ts → registry-BL7H33tj.d.ts} +3 -3
  115. package/dist/{registry-DMkmhBQ5.d.ts.map → registry-BL7H33tj.d.ts.map} +1 -1
  116. package/dist/{release-confidence-CkoXFx9I.d.ts → release-confidence-C4kI7lQi.d.ts} +4 -12
  117. package/dist/release-confidence-C4kI7lQi.d.ts.map +1 -0
  118. package/dist/{release-confidence-CiFg1EPq.js → release-confidence-Dbe9AS_X.js} +2 -2
  119. package/dist/{release-confidence-CiFg1EPq.js.map → release-confidence-Dbe9AS_X.js.map} +1 -1
  120. package/dist/{report-command-pXtxg5YK.js → report-command-CtIIsQKP.js} +3 -28
  121. package/dist/{report-command-pXtxg5YK.js.map → report-command-CtIIsQKP.js.map} +1 -1
  122. package/dist/reporting.d.ts +3 -3
  123. package/dist/reporting.js +3 -3
  124. package/dist/{researcher-CZFZjj-u.d.ts → researcher-DuIJ9IaA.d.ts} +4 -4
  125. package/dist/{researcher-CZFZjj-u.d.ts.map → researcher-DuIJ9IaA.d.ts.map} +1 -1
  126. package/dist/{reward-hacking-Cyk-QHk9.d.ts → reward-hacking-C6Kp54Av.d.ts} +2 -2
  127. package/dist/{reward-hacking-Cyk-QHk9.d.ts.map → reward-hacking-C6Kp54Av.d.ts.map} +1 -1
  128. package/dist/reward-nw2xZGZG.js.map +1 -1
  129. package/dist/rl.d.ts +10 -29
  130. package/dist/rl.d.ts.map +1 -1
  131. package/dist/rl.js +7 -7
  132. package/dist/rl.js.map +1 -1
  133. package/dist/rollout/index.d.ts +3 -3
  134. package/dist/rollout/index.js +4 -4
  135. package/dist/{rollout-l9w3Gdvh.js → rollout-D9bKKBnZ.js} +30 -165
  136. package/dist/rollout-D9bKKBnZ.js.map +1 -0
  137. package/dist/{rubric-predictive-validity-DIUwJJ9Y.d.ts → rubric-predictive-validity-BiNNEjpG.d.ts} +2 -2
  138. package/dist/{rubric-predictive-validity-DIUwJJ9Y.d.ts.map → rubric-predictive-validity-BiNNEjpG.d.ts.map} +1 -1
  139. package/dist/{run-record-BRlM99rX.js → run-record-DlTZ_lqe.js} +3 -13
  140. package/dist/run-record-DlTZ_lqe.js.map +1 -0
  141. package/dist/{run-record-BB290Y9A.js → run-record-ES07wfz9.js} +2 -2
  142. package/dist/{run-record-BB290Y9A.js.map → run-record-ES07wfz9.js.map} +1 -1
  143. package/dist/{run-record-DF-fuu31.d.ts → run-record-p2AYTrCn.d.ts} +3 -7
  144. package/dist/run-record-p2AYTrCn.d.ts.map +1 -0
  145. package/dist/search/index.d.ts +2 -24
  146. package/dist/search/index.d.ts.map +1 -1
  147. package/dist/search/index.js +3 -3
  148. package/dist/{search-kernel-CIie6xig.js → search-kernel-BIXWM7YV.js} +4 -4
  149. package/dist/search-kernel-BIXWM7YV.js.map +1 -0
  150. package/dist/{search-kernel-uKdPVRAe.d.ts → search-kernel-ah2GESe3.d.ts} +3 -3
  151. package/dist/{search-kernel-uKdPVRAe.d.ts.map → search-kernel-ah2GESe3.d.ts.map} +1 -1
  152. package/dist/{search-ledger-CXQPwdWz.js → search-ledger-aMTNQn_m.js} +2 -2
  153. package/dist/{search-ledger-CXQPwdWz.js.map → search-ledger-aMTNQn_m.js.map} +1 -1
  154. package/dist/{search-shipper-DhhofkDX.js → search-shipper-DKXWuLnp.js} +2 -2
  155. package/dist/{search-shipper-DhhofkDX.js.map → search-shipper-DKXWuLnp.js.map} +1 -1
  156. package/dist/{search-summary-BV5uehLd.js → search-summary-nwrtXxC_.js} +3 -3
  157. package/dist/{search-summary-BV5uehLd.js.map → search-summary-nwrtXxC_.js.map} +1 -1
  158. package/dist/{semantic-concept-judge-D1wH-YKc.js → semantic-concept-judge-BQxZyXdN.js} +3 -3
  159. package/dist/{semantic-concept-judge-D1wH-YKc.js.map → semantic-concept-judge-BQxZyXdN.js.map} +1 -1
  160. package/dist/{sequential-DMqr3sni.js → sequential-D-1PPCmM.js} +3 -3
  161. package/dist/{sequential-DMqr3sni.js.map → sequential-D-1PPCmM.js.map} +1 -1
  162. package/dist/{skillopt-optimization-method-Dcnh5Pvr.js → skillopt-optimization-method-DujPOiwD.js} +5 -5
  163. package/dist/{skillopt-optimization-method-Dcnh5Pvr.js.map → skillopt-optimization-method-DujPOiwD.js.map} +1 -1
  164. package/dist/{statistical-heldout-BP6iEJvR.js → statistical-heldout-1Gbmex7v.js} +2 -2
  165. package/dist/{statistical-heldout-BP6iEJvR.js.map → statistical-heldout-1Gbmex7v.js.map} +1 -1
  166. package/dist/{statistical-heldout-DFKtp-Qm.d.ts → statistical-heldout-8RGPIeyo.d.ts} +17 -14
  167. package/dist/statistical-heldout-8RGPIeyo.d.ts.map +1 -0
  168. package/dist/{store-otlp-BA7G1Du-.js → store-otlp-__ebQ6Hn.js} +2 -2
  169. package/dist/{store-otlp-BA7G1Du-.js.map → store-otlp-__ebQ6Hn.js.map} +1 -1
  170. package/dist/{store-tool-spans-DKoVbE-w.js → store-tool-spans-TbRBuIM7.js} +3 -3
  171. package/dist/{store-tool-spans-DKoVbE-w.js.map → store-tool-spans-TbRBuIM7.js.map} +1 -1
  172. package/dist/{store-tool-spans-9YJNMP-z.d.ts → store-tool-spans-wQ9idsnn.d.ts} +5 -5
  173. package/dist/{store-tool-spans-9YJNMP-z.d.ts.map → store-tool-spans-wQ9idsnn.d.ts.map} +1 -1
  174. package/dist/{summary-report-DvvesgR_.d.ts → summary-report-CK0ueoJd.d.ts} +2 -2
  175. package/dist/{summary-report-DvvesgR_.d.ts.map → summary-report-CK0ueoJd.d.ts.map} +1 -1
  176. package/dist/{summary-report-fXurE2TR.js → summary-report-DtdRucM0.js} +3 -3
  177. package/dist/{summary-report-fXurE2TR.js.map → summary-report-DtdRucM0.js.map} +1 -1
  178. package/dist/supervisor-run/index.d.ts +0 -8
  179. package/dist/supervisor-run/index.d.ts.map +1 -1
  180. package/dist/supervisor-run/index.js +36 -71
  181. package/dist/supervisor-run/index.js.map +1 -1
  182. package/dist/{systemone-review-Bt4JcxMc.d.ts → systemone-review-BReh3mvm.d.ts} +2 -2
  183. package/dist/{systemone-review-Bt4JcxMc.d.ts.map → systemone-review-BReh3mvm.d.ts.map} +1 -1
  184. package/dist/systemone.d.ts +3 -3
  185. package/dist/{tool-groups-j19pmOfP.d.ts → tool-groups-v28A-ZAF.d.ts} +3 -3
  186. package/dist/tool-groups-v28A-ZAF.d.ts.map +1 -0
  187. package/dist/{tool-waste-x_E8h9Ih.js → tool-waste-BYt5rdt8.js} +2 -2
  188. package/dist/{tool-waste-x_E8h9Ih.js.map → tool-waste-BYt5rdt8.js.map} +1 -1
  189. package/dist/{tool-waste-DxlebQkx.d.ts → tool-waste-Wi4g6Ekb.d.ts} +2 -2
  190. package/dist/{tool-waste-DxlebQkx.d.ts.map → tool-waste-Wi4g6Ekb.d.ts.map} +1 -1
  191. package/dist/{trace-questions-dRvmsbTk.d.ts → trace-questions-C26UvI3D.d.ts} +3 -3
  192. package/dist/{trace-questions-dRvmsbTk.d.ts.map → trace-questions-C26UvI3D.d.ts.map} +1 -1
  193. package/dist/trace-repair/index.d.ts +2 -9
  194. package/dist/trace-repair/index.d.ts.map +1 -1
  195. package/dist/trace-repair/index.js +1 -1
  196. package/dist/traces.d.ts +6 -8
  197. package/dist/traces.d.ts.map +1 -1
  198. package/dist/traces.js +6 -6
  199. package/dist/trajectory-replay/index.d.ts +0 -2
  200. package/dist/trajectory-replay/index.d.ts.map +1 -1
  201. package/dist/trajectory-replay/index.js +1 -1
  202. package/dist/{tree-CJOXbVcv.js → tree-kc1d80yF.js} +5 -25
  203. package/dist/tree-kc1d80yF.js.map +1 -0
  204. package/dist/{types-CFCUZk0B.d.ts → types-Dv9sYwBB.d.ts} +4 -4
  205. package/dist/{types-CFCUZk0B.d.ts.map → types-Dv9sYwBB.d.ts.map} +1 -1
  206. package/dist/{types-DAPpAkd4.d.ts → types-KEkKkETv.d.ts} +2 -2
  207. package/dist/{types-DAPpAkd4.d.ts.map → types-KEkKkETv.d.ts.map} +1 -1
  208. package/dist/{types-BlSBUNRd.d.ts → types-tWFY6bON.d.ts} +3 -3
  209. package/dist/{types-BlSBUNRd.d.ts.map → types-tWFY6bON.d.ts.map} +1 -1
  210. package/dist/wire/index.d.ts +1 -1
  211. package/docs/concepts.md +13 -0
  212. package/docs/experiment.md +10 -0
  213. package/docs/public-api.md +399 -424
  214. package/docs/trace-analysis.md +3 -0
  215. package/package.json +6 -5
  216. package/dist/agent-profile-cell-BHcB-mZX.d.ts.map +0 -1
  217. package/dist/agent-profile-cell-DcFW4vOc.js.map +0 -1
  218. package/dist/analyze-runs-GZ0VSwui.js.map +0 -1
  219. package/dist/campaign-evidence-DW3Krxov.js.map +0 -1
  220. package/dist/claude-jsonl-CG3JUbTJ.js +0 -211
  221. package/dist/claude-jsonl-CG3JUbTJ.js.map +0 -1
  222. package/dist/engine-DProXJ7A.d.ts.map +0 -1
  223. package/dist/llm-judge-HLWASwUJ.js.map +0 -1
  224. package/dist/paired-binary-b2L3WKqr.js.map +0 -1
  225. package/dist/produced-state-Bzlh09oj.js.map +0 -1
  226. package/dist/release-confidence-CkoXFx9I.d.ts.map +0 -1
  227. package/dist/rollout-l9w3Gdvh.js.map +0 -1
  228. package/dist/run-record-BRlM99rX.js.map +0 -1
  229. package/dist/run-record-DF-fuu31.d.ts.map +0 -1
  230. package/dist/search-kernel-CIie6xig.js.map +0 -1
  231. package/dist/series-convergence-CjO2QdRW.js +0 -43
  232. package/dist/series-convergence-CjO2QdRW.js.map +0 -1
  233. package/dist/series-convergence-hEfKdoi-.d.ts +0 -126
  234. package/dist/series-convergence-hEfKdoi-.d.ts.map +0 -1
  235. package/dist/statistical-heldout-DFKtp-Qm.d.ts.map +0 -1
  236. package/dist/tool-groups-j19pmOfP.d.ts.map +0 -1
  237. package/dist/tree-CJOXbVcv.js.map +0 -1
@@ -0,0 +1,86 @@
1
+ import { join } from "node:path";
2
+ import { homedir } from "node:os";
3
+ import { readdir } from "node:fs/promises";
4
+ import { claudeCodeReader, claudeCodeRefForFile, readSessionInput, toChatMessages } from "@tangle-network/harness-sessions";
5
+ //#region src/rollout/readers/claude-jsonl.ts
6
+ /**
7
+ * Claude Code project transcripts (~/.claude/projects/<cwd-slug>/<sessionId>.jsonl) as canonical
8
+ * chat-with-tools messages plus per-session token usage.
9
+ *
10
+ * The transcript is read by @tangle-network/harness-sessions, the one reader of harness sessions
11
+ * shared with Discovery, agent-record, traces and the blog: one model call per API response
12
+ * (`message.id`, its usage counted once), the served model from the response, tool calls with
13
+ * their results. This module only projects that session. Sidechain lines (subagent threads in the
14
+ * main file) are separate invocations and are excluded unless `includeSidechain` asks for a
15
+ * subagent's own transcript.
16
+ */
17
+ const DEFAULT_CLAUDE_PROJECTS_DIR = join(homedir(), ".claude", "projects");
18
+ /** Claude Code's project-directory slug for a working directory. */
19
+ function claudeProjectSlug(cwd) {
20
+ return cwd.replace(/[^a-zA-Z0-9-]/g, "-");
21
+ }
22
+ /** Transcript files recorded for sessions launched from `cwd`. */
23
+ async function findClaudeTranscripts(cwd, projectsDir = DEFAULT_CLAUDE_PROJECTS_DIR) {
24
+ const dir = join(projectsDir, claudeProjectSlug(cwd));
25
+ return (await readdir(dir).catch(() => [])).filter((n) => n.endsWith(".jsonl")).sort().map((n) => ({
26
+ sessionId: n.replace(/\.jsonl$/, ""),
27
+ path: join(dir, n)
28
+ }));
29
+ }
30
+ const USAGE_FIELDS = [
31
+ ["tokensIn", "input"],
32
+ ["tokensOut", "output"],
33
+ ["cacheRead", "cacheRead"],
34
+ ["cacheWrite", "cacheWrite"]
35
+ ];
36
+ /**
37
+ * The messages+usage projection of a normalized session. A usage field is null when any answered
38
+ * model call did not report it, so a partial sum is never mistaken for the session's usage.
39
+ */
40
+ function transcriptFromSession(session) {
41
+ const gaps = session.integrity.gaps.filter((gap) => /is not a JSON record|still being written/u.test(gap));
42
+ const answered = session.modelCalls.filter((call) => call.error === null);
43
+ const usage = {
44
+ tokensIn: null,
45
+ tokensOut: null,
46
+ cacheRead: null,
47
+ cacheWrite: null
48
+ };
49
+ if (answered.length > 0) for (const [target, field] of USAGE_FIELDS) {
50
+ let total = 0;
51
+ for (const call of answered) {
52
+ const value = call.usage?.[field] ?? null;
53
+ if (value === null) {
54
+ total = null;
55
+ gaps.push(`model call ${call.id}: ${field} usage unavailable`);
56
+ break;
57
+ }
58
+ total += value;
59
+ }
60
+ usage[target] = total;
61
+ }
62
+ const model = [...answered].reverse().find((call) => call.servedModel !== null)?.servedModel ?? null;
63
+ return {
64
+ messages: toChatMessages(session),
65
+ usage,
66
+ startedAt: session.startedAt,
67
+ endedAt: session.endedAt,
68
+ model,
69
+ gaps
70
+ };
71
+ }
72
+ /** Read one transcript file. */
73
+ async function readClaudeTranscript(path, options = {}) {
74
+ return transcriptFromSession(await claudeCodeReader.read(claudeCodeRefForFile(path, options.includeSidechain === true ? "parent" : null)));
75
+ }
76
+ /** Parse retained JSONL text without another file or store; source gaps remain explicit. */
77
+ function parseClaudeTranscript(raw, options = {}) {
78
+ return transcriptFromSession(readSessionInput("claude-code", { text: raw }, {
79
+ parentNativeSessionId: options.includeSidechain === true ? "parent" : null,
80
+ label: "retained transcript"
81
+ }));
82
+ }
83
+ //#endregion
84
+ export { readClaudeTranscript as a, parseClaudeTranscript as i, claudeProjectSlug as n, transcriptFromSession as o, findClaudeTranscripts as r, DEFAULT_CLAUDE_PROJECTS_DIR as t };
85
+
86
+ //# sourceMappingURL=claude-jsonl-dZir12m6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-jsonl-dZir12m6.js","names":[],"sources":["../src/rollout/readers/claude-jsonl.ts"],"sourcesContent":["/**\n * Claude Code project transcripts (~/.claude/projects/<cwd-slug>/<sessionId>.jsonl) as canonical\n * chat-with-tools messages plus per-session token usage.\n *\n * The transcript is read by @tangle-network/harness-sessions, the one reader of harness sessions\n * shared with Discovery, agent-record, traces and the blog: one model call per API response\n * (`message.id`, its usage counted once), the served model from the response, tool calls with\n * their results. This module only projects that session. Sidechain lines (subagent threads in the\n * main file) are separate invocations and are excluded unless `includeSidechain` asks for a\n * subagent's own transcript.\n */\n\nimport { readdir } from 'node:fs/promises'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\nimport {\n claudeCodeReader,\n claudeCodeRefForFile,\n type HarnessSession,\n readSessionInput,\n toChatMessages,\n} from '@tangle-network/harness-sessions'\nimport type { ChatMessage } from '../schema'\n\nexport const DEFAULT_CLAUDE_PROJECTS_DIR = join(homedir(), '.claude', 'projects')\n\n/** Claude Code's project-directory slug for a working directory. */\nexport function claudeProjectSlug(cwd: string): string {\n return cwd.replace(/[^a-zA-Z0-9-]/g, '-')\n}\n\nexport interface ClaudeTranscriptRef {\n sessionId: string\n path: string\n}\n\n/** Transcript files recorded for sessions launched from `cwd`. */\nexport async function findClaudeTranscripts(\n cwd: string,\n projectsDir: string = DEFAULT_CLAUDE_PROJECTS_DIR,\n): Promise<ClaudeTranscriptRef[]> {\n const dir = join(projectsDir, claudeProjectSlug(cwd))\n const names = await readdir(dir).catch(() => [])\n return names\n .filter((n) => n.endsWith('.jsonl'))\n .sort()\n .map((n) => ({ sessionId: n.replace(/\\.jsonl$/, ''), path: join(dir, n) }))\n}\n\nexport interface ClaudeUsageTotals {\n tokensIn: number | null\n tokensOut: number | null\n cacheRead: number | null\n cacheWrite: number | null\n}\n\nexport interface ClaudeTranscript {\n messages: ChatMessage[]\n usage: ClaudeUsageTotals\n /** Timestamp of the first conversation record; null = empty transcript. */\n startedAt: string | null\n endedAt: string | null\n /** The model that answered the last response (never Claude Code's `<synthetic>` error turn). */\n model: string | null\n /** Every parse or usage gap retained beside this semantic projection. */\n gaps: string[]\n}\n\nexport interface ReadClaudeTranscriptOptions {\n /**\n * Read a subagent's own transcript (`<session>/subagents/agent-<id>.jsonl`), whose records are\n * sidechain end to end, instead of skipping sidechain records.\n */\n readonly includeSidechain?: boolean\n}\n\nconst USAGE_FIELDS = [\n ['tokensIn', 'input'],\n ['tokensOut', 'output'],\n ['cacheRead', 'cacheRead'],\n ['cacheWrite', 'cacheWrite'],\n] as const\n\n/**\n * The messages+usage projection of a normalized session. A usage field is null when any answered\n * model call did not report it, so a partial sum is never mistaken for the session's usage.\n */\nexport function transcriptFromSession(session: HarnessSession): ClaudeTranscript {\n const gaps = session.integrity.gaps.filter((gap) =>\n /is not a JSON record|still being written/u.test(gap),\n )\n const answered = session.modelCalls.filter((call) => call.error === null)\n const usage: ClaudeUsageTotals = {\n tokensIn: null,\n tokensOut: null,\n cacheRead: null,\n cacheWrite: null,\n }\n if (answered.length > 0) {\n for (const [target, field] of USAGE_FIELDS) {\n let total: number | null = 0\n for (const call of answered) {\n const value = call.usage?.[field] ?? null\n if (value === null) {\n total = null\n gaps.push(`model call ${call.id}: ${field} usage unavailable`)\n break\n }\n total += value\n }\n usage[target] = total\n }\n }\n const model =\n [...answered].reverse().find((call) => call.servedModel !== null)?.servedModel ?? null\n return {\n messages: toChatMessages(session),\n usage,\n startedAt: session.startedAt,\n endedAt: session.endedAt,\n model,\n gaps,\n }\n}\n\n/** Read one transcript file. */\nexport async function readClaudeTranscript(\n path: string,\n options: ReadClaudeTranscriptOptions = {},\n): Promise<ClaudeTranscript> {\n const session = await claudeCodeReader.read(\n claudeCodeRefForFile(path, options.includeSidechain === true ? 'parent' : null),\n )\n return transcriptFromSession(session)\n}\n\n/** Parse retained JSONL text without another file or store; source gaps remain explicit. */\nexport function parseClaudeTranscript(\n raw: string,\n options: ReadClaudeTranscriptOptions = {},\n): ClaudeTranscript {\n const session = readSessionInput(\n 'claude-code',\n { text: raw },\n {\n parentNativeSessionId: options.includeSidechain === true ? 'parent' : null,\n label: 'retained transcript',\n },\n )\n return transcriptFromSession(session)\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,MAAa,8BAA8B,KAAK,QAAQ,GAAG,WAAW,UAAU;;AAGhF,SAAgB,kBAAkB,KAAqB;CACrD,OAAO,IAAI,QAAQ,kBAAkB,GAAG;AAC1C;;AAQA,eAAsB,sBACpB,KACA,cAAsB,6BACU;CAChC,MAAM,MAAM,KAAK,aAAa,kBAAkB,GAAG,CAAC;CAEpD,QAAO,MADa,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,EAAA,CAE5C,QAAQ,MAAM,EAAE,SAAS,QAAQ,CAAC,CAAC,CACnC,KAAK,CAAC,CACN,KAAK,OAAO;EAAE,WAAW,EAAE,QAAQ,YAAY,EAAE;EAAG,MAAM,KAAK,KAAK,CAAC;CAAE,EAAE;AAC9E;AA6BA,MAAM,eAAe;CACnB,CAAC,YAAY,OAAO;CACpB,CAAC,aAAa,QAAQ;CACtB,CAAC,aAAa,WAAW;CACzB,CAAC,cAAc,YAAY;AAC7B;;;;;AAMA,SAAgB,sBAAsB,SAA2C;CAC/E,MAAM,OAAO,QAAQ,UAAU,KAAK,QAAQ,QAC1C,4CAA4C,KAAK,GAAG,CACtD;CACA,MAAM,WAAW,QAAQ,WAAW,QAAQ,SAAS,KAAK,UAAU,IAAI;CACxE,MAAM,QAA2B;EAC/B,UAAU;EACV,WAAW;EACX,WAAW;EACX,YAAY;CACd;CACA,IAAI,SAAS,SAAS,GACpB,KAAK,MAAM,CAAC,QAAQ,UAAU,cAAc;EAC1C,IAAI,QAAuB;EAC3B,KAAK,MAAM,QAAQ,UAAU;GAC3B,MAAM,QAAQ,KAAK,QAAQ,UAAU;GACrC,IAAI,UAAU,MAAM;IAClB,QAAQ;IACR,KAAK,KAAK,cAAc,KAAK,GAAG,IAAI,MAAM,mBAAmB;IAC7D;GACF;GACA,SAAS;EACX;EACA,MAAM,UAAU;CAClB;CAEF,MAAM,QACJ,CAAC,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,SAAS,KAAK,gBAAgB,IAAI,CAAC,EAAE,eAAe;CACpF,OAAO;EACL,UAAU,eAAe,OAAO;EAChC;EACA,WAAW,QAAQ;EACnB,SAAS,QAAQ;EACjB;EACA;CACF;AACF;;AAGA,eAAsB,qBACpB,MACA,UAAuC,CAAC,GACb;CAI3B,OAAO,sBAAsB,MAHP,iBAAiB,KACrC,qBAAqB,MAAM,QAAQ,qBAAqB,OAAO,WAAW,IAAI,CAChF,CACoC;AACtC;;AAGA,SAAgB,sBACd,KACA,UAAuC,CAAC,GACtB;CASlB,OAAO,sBARS,iBACd,eACA,EAAE,MAAM,IAAI,GACZ;EACE,uBAAuB,QAAQ,qBAAqB,OAAO,WAAW;EACtE,OAAO;CACT,CAEiC,CAAC;AACtC"}
package/dist/cli.js CHANGED
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
- import { _ as INSUFFICIENT_FROM, g as operatorYield } from "./search-kernel-CIie6xig.js";
3
- import { i as replaySearchLedgerText } from "./search-ledger-CXQPwdWz.js";
4
- import { t as renderSearchSummary } from "./search-summary-BV5uehLd.js";
5
- import { c as hostedTenantFromEnv, g as SearchRunKindSchema, r as shipSearchLedger, t as SearchShipConflictError, u as SEARCH_LEDGER_BATCH_MAX_BYTES } from "./search-shipper-DhhofkDX.js";
2
+ import { _ as INSUFFICIENT_FROM, g as operatorYield } from "./search-kernel-BIXWM7YV.js";
3
+ import { i as replaySearchLedgerText } from "./search-ledger-aMTNQn_m.js";
4
+ import { t as renderSearchSummary } from "./search-summary-nwrtXxC_.js";
5
+ import { c as hostedTenantFromEnv, g as SearchRunKindSchema, r as shipSearchLedger, t as SearchShipConflictError, u as SEARCH_LEDGER_BATCH_MAX_BYTES } from "./search-shipper-DKXWuLnp.js";
6
6
  import { i as runRolloutReleaseCli } from "./hf-dataset-BR2yhuNn.js";
7
7
  import { t as createChatClient } from "./chat-client-CydfmLdO.js";
8
- import { t as runAnalystBenchmarkCommand } from "./benchmark-command-BC265T1r.js";
8
+ import { t as runAnalystBenchmarkCommand } from "./benchmark-command-S8tCtkxh.js";
9
9
  import { a as runRpcBatch, o as runRpcOnce, p as handleVersion, r as startServerAsync, s as buildOpenApi } from "./server-BZOt7eNC.js";
10
- import { A as editCreditText, E as front, f as renderMetaSearchText, h as landscape, k as editCredit, l as metaSearch, m as formatLandscape, n as taskMatrix, o as skillManifold, r as formatSkillManifold, t as tree, x as surfaceTextEdits } from "./tree-CJOXbVcv.js";
11
- import { t as runSupervisorRunCommand } from "./report-command-pXtxg5YK.js";
10
+ import { C as editCredit, S as front, _ as surfaceTextEdits, c as metaSearch, d as renderMetaSearchText, m as landscape, n as taskMatrix, o as skillManifold, p as formatLandscape, r as formatSkillManifold, t as tree, w as editCreditText } from "./tree-kc1d80yF.js";
11
+ import { t as runSupervisorRunCommand } from "./report-command-CtIIsQKP.js";
12
12
  import { createHash } from "node:crypto";
13
13
  import { existsSync, readFileSync, writeFileSync } from "node:fs";
14
14
  import { dirname, join } from "node:path";
@@ -1,14 +1,14 @@
1
1
  import { c as CostLedgerHandle } from "../cost-ledger-DbQdN3nO.js";
2
- import { _ as ProposalFinding, i as AnalystFinding, v as ProposalFindingOrigin, x as makeProposalFinding } from "../types-DAPpAkd4.js";
2
+ import { _ as ProposalFinding, i as AnalystFinding, v as ProposalFindingOrigin, x as makeProposalFinding } from "../types-KEkKkETv.js";
3
3
  import { A as createChatClient, T as CreateChatClientOpts, x as ChatClient } from "../types-Lub7o6bN.js";
4
- import { $ as paretoSignificanceGate, G as BuildEvidenceVectorOptions, J as ParetoSignificanceGateOptions, K as EvidenceVector, Q as paretoPolicy, U as AxisEvidence, W as AxisVerdict, X as PromotionPolicy, Y as PromotionObjective, Z as buildEvidenceVector, q as ObjectiveSource } from "../statistical-heldout-DFKtp-Qm.js";
5
- import { C as JudgeDimension, H as SurfaceProposer, M as OptimizerConfig, R as Scenario, S as JudgeConfig, V as SessionScript, _ as GateDecision, a as CampaignResult, b as GenerationRecord, c as CampaignTraceWriter, d as DispatchContext, f as DispatchFn, g as GateContribution, h as GateContext, i as CampaignCostMeter, j as MutableSurface, l as CodeSurface, m as GateCheckStatus, n as CampaignArtifactWriter, p as Gate, r as CampaignCellResult, t as CampaignAggregates, v as GateResult, w as JudgeScore, y as GenerationCandidate } from "../types-CFCUZk0B.js";
6
- import { $i as RunImprovementLoopOptions, $r as GepaOptimizationRecipe, Bi as ReferenceEquivalenceJudgeInput, Ci as compareOptimizationMethods, Dr as DefaultProductionGateOptions, Er as DefaultProductionGateCheck, Fa as campaignSplitDigest, Gi as runReferenceEquivalenceJudge, Gr as SkillOptOptimizationMethodConfig, Hi as ReferenceEquivalenceJudgeResult, Ji as llmJudge, Jr as skillOptOptimizationMethod, Ki as LlmJudgeDimension, Kr as SkillOptRunnerCommand, Oa as FinalEvidencePolicy, Or as DefaultProductionRewardHackingOptions, Qi as transientDispatchFailure, Qr as GepaOptimizationMethodConfig, Ri as REFERENCE_EQUIVALENCE_INPUT_LIMITS, Si as OptimizationTokenUsage, Ti as ComparisonCost, Tr as heldOutGate, Ui as ReferenceEquivalenceScenario, Vi as ReferenceEquivalenceJudgeOptions, Wi as createReferenceEquivalenceJudge, Wr as composeGate, Xr as GepaEngineOptions, Yr as GepaAdaptiveEngineRun, Zr as GepaEngineRun, _a as runCampaign, _i as OptimizationMethodProvenance, ai as ExternalTextOptimizationMethodConfig, ci as ExternalOptimizationExample, di as CompareOptimizationMethodsOptions, ea as RunImprovementLoopResult, ei as GepaRunnerCommand, fa as RunEvalOptions, fi as OptimizationMethod, ga as RunCampaignOptions, ha as CampaignCellRetryPolicy, hi as OptimizationMethodInput, ii as externalTextOptimizationMethod, ka as FinalEvidenceUse, kr as defaultProductionGate, li as ExternalTextEvaluationResponse, ma as CampaignCellFailureReceipt, ni as OpenAICompatibleOptimizerModel, oi as ExternalTextOptimizerContext, pa as runEval, pi as OptimizationMethodComparison, qi as LlmJudgeOptions, qr as SkillOptTrainerConfig, ri as OptimizerModelBudget, si as ExternalTextOptimizerResult, ta as runImprovementLoop, ti as gepaOptimizationMethod, vi as OptimizationMethodResult, wr as HeldOutGateOptions, xi as OptimizationPackageSource, zi as REFERENCE_EQUIVALENCE_JUDGE_VERSION } from "../index-Bzto04CY.js";
7
- import { $t as fsCampaignStorage, Zt as CampaignStorage, en as inMemoryCampaignStorage } from "../search-kernel-uKdPVRAe.js";
4
+ import { $ as paretoSignificanceGate, G as BuildEvidenceVectorOptions, J as ParetoSignificanceGateOptions, K as EvidenceVector, Q as paretoPolicy, U as AxisEvidence, W as AxisVerdict, X as PromotionPolicy, Y as PromotionObjective, Z as buildEvidenceVector, q as ObjectiveSource } from "../statistical-heldout-8RGPIeyo.js";
5
+ import { C as JudgeDimension, H as SurfaceProposer, M as OptimizerConfig, R as Scenario, S as JudgeConfig, V as SessionScript, _ as GateDecision, a as CampaignResult, b as GenerationRecord, c as CampaignTraceWriter, d as DispatchContext, f as DispatchFn, g as GateContribution, h as GateContext, i as CampaignCostMeter, j as MutableSurface, l as CodeSurface, m as GateCheckStatus, n as CampaignArtifactWriter, p as Gate, r as CampaignCellResult, t as CampaignAggregates, v as GateResult, w as JudgeScore, y as GenerationCandidate } from "../types-Dv9sYwBB.js";
6
+ import { $i as RunImprovementLoopOptions, $r as GepaOptimizationRecipe, Bi as ReferenceEquivalenceJudgeInput, Ci as compareOptimizationMethods, Dr as DefaultProductionGateOptions, Er as DefaultProductionGateCheck, Fa as campaignSplitDigest, Gi as runReferenceEquivalenceJudge, Gr as SkillOptOptimizationMethodConfig, Hi as ReferenceEquivalenceJudgeResult, Ji as llmJudge, Jr as skillOptOptimizationMethod, Ki as LlmJudgeDimension, Kr as SkillOptRunnerCommand, Oa as FinalEvidencePolicy, Or as DefaultProductionRewardHackingOptions, Qi as transientDispatchFailure, Qr as GepaOptimizationMethodConfig, Ri as REFERENCE_EQUIVALENCE_INPUT_LIMITS, Si as OptimizationTokenUsage, Ti as ComparisonCost, Tr as heldOutGate, Ui as ReferenceEquivalenceScenario, Vi as ReferenceEquivalenceJudgeOptions, Wi as createReferenceEquivalenceJudge, Wr as composeGate, Xr as GepaEngineOptions, Yr as GepaAdaptiveEngineRun, Zr as GepaEngineRun, _a as runCampaign, _i as OptimizationMethodProvenance, ai as ExternalTextOptimizationMethodConfig, ci as ExternalOptimizationExample, di as CompareOptimizationMethodsOptions, ea as RunImprovementLoopResult, ei as GepaRunnerCommand, fa as RunEvalOptions, fi as OptimizationMethod, ga as RunCampaignOptions, ha as CampaignCellRetryPolicy, hi as OptimizationMethodInput, ii as externalTextOptimizationMethod, ka as FinalEvidenceUse, kr as defaultProductionGate, li as ExternalTextEvaluationResponse, ma as CampaignCellFailureReceipt, ni as OpenAICompatibleOptimizerModel, oi as ExternalTextOptimizerContext, pa as runEval, pi as OptimizationMethodComparison, qi as LlmJudgeOptions, qr as SkillOptTrainerConfig, ri as OptimizerModelBudget, si as ExternalTextOptimizerResult, ta as runImprovementLoop, ti as gepaOptimizationMethod, vi as OptimizationMethodResult, wr as HeldOutGateOptions, xi as OptimizationPackageSource, zi as REFERENCE_EQUIVALENCE_JUDGE_VERSION } from "../index-xnhRdqik.js";
7
+ import { $t as fsCampaignStorage, Zt as CampaignStorage, en as inMemoryCampaignStorage } from "../search-kernel-ah2GESe3.js";
8
8
  import { i as InMemoryOutcomeStore, n as FileSystemOutcomeStore, o as OutcomeStore, r as FileSystemOutcomeStoreOptions, t as DeploymentOutcome } from "../outcome-store-CNt4iZ67.js";
9
9
  import { r as HostedTenant } from "../client-BzL9niqi.js";
10
- import { _ as ReleaseSummary, a as summarizeExecution, c as ExecutionInsight, d as InsightReport, f as InterRaterInsight, g as Recommendation, h as OutcomeCorrelationInsight, i as analyzeRuns, l as FailureClassTally, m as LiftInsight, n as ExecutionReport, o as CostProvenanceSummary, p as JudgeInsight, r as SummarizeExecutionOptions, s as ExecutionErrorOutcomeCell, t as AnalyzeRunsOptions, u as FailureClusterInsight, v as ScalarDistribution, y as TokenUsageInsight } from "../analyze-runs-CTJyUplR.js";
11
- import { _ as SelfImproveMethodResult, a as DefinedAgentEval, c as SelfImproveMethodOptions, d as SelfImproveProposerOptions, f as SelfImproveProposerResult, g as SelfImproveMethodProvenance, h as selfImprove, i as DefineAgentEvalOptions, l as SelfImproveOptions, m as SelfImproveRunError, n as AgentEvalEvaluateOptions, o as defineAgentEval, p as SelfImproveResult, r as AgentEvalImproveOptions, s as SelfImproveBudget, t as AgentEvalAgent, u as SelfImproveProgressEvent } from "../define-agent-eval-C8zBSbsc.js";
12
- import { $ as FromRunRecordDirResult, A as CodeAgentSessionActionStatus, B as AgentTraceFile, C as fromOpenCodeSession, Ct as measuredComparisonFromCandidateExperiment, D as streamCodeAgentJsonlFile, Dt as sealCandidateExperiment, E as parseCodeAgentJsonlFile, Et as sealCandidateBenchmarkTask, F as CodeAgentSessionTerminalStatus, G as PartitionByAuthoringModelResult, H as AgentTraceRange, I as observeCodeAgentSession, J as EvalReportingSuiteInput, K as parseAgentTrace, L as AgentTraceContributor, M as CodeAgentSessionExecutionReceipt, N as CodeAgentSessionObservation, O as CodeAgentSessionAction, Ot as verifyCandidateExperiment, P as CodeAgentSessionSource, Q as FromRunRecordDirOptions, R as AgentTraceContributorType, S as fromKimiCodeSession, St as evaluatePairedMeasurements, T as parseCodeAgentJsonl, Tt as sealCandidateBenchmarkSuite, U as AgentTraceRecord, V as AgentTraceIndex, W as AuthoringProvenance, X as EvalReportingSuiteResult, Y as EvalReportingSuiteOptions, Z as evalReportingSuite, _ as CodeAgentSessionIntakeResult, _t as PairedMeasurement, a as FromFeedbackTableOptions, at as RunAgentProfileImprovementExperimentOptions, b as fromClaudeCodeSession, bt as RunCandidateExperimentOptions, c as CodeAgentStoreObservation, ct as runAgentProfileImprovementExperiment, d as CodeAgentStoreScope, dt as sealAgentProfileImprovementTask, et as RunRecordRejection, f as CodeAgentStoreSession, ft as verifyAgentProfileImprovementExperimentComparison, g as CodeAgentSessionIntakeOptions, gt as EvaluatePairedMeasurementsOptions, h as CodeAgentSessionDiagnostic, ht as CompareCandidateExperimentOptions, i as FeedbackTableRow, it as CompareAgentProfileImprovementExperimentOptions, j as CodeAgentSessionActionSurface, k as CodeAgentSessionActionKind, kt as verifyCandidateExperimentComparison, l as CodeAgentStoreRejection, lt as sealAgentProfileImprovementExperiment, m as CodeAgentJsonlLine, mt as CandidateExperimentRun, n as fromOtelSpans, nt as AgentProfileImprovementExperimentExecutionInput, o as FromFeedbackTableResult, ot as SealAgentProfileImprovementSuiteOptions, p as observeCodeAgentStore, pt as CandidateExperimentExecutionInput, q as partitionRunsByAuthoringModel, r as FeedbackTableMeta, rt as AgentProfileImprovementExperimentRun, s as fromFeedbackTable, st as measuredComparisonFromAgentProfileImprovementExperiment, t as FromOtelSpansOptions, tt as fromRunRecordDir, u as CodeAgentStoreRejections, ut as sealAgentProfileImprovementSuite, v as CodeAgentSessionMetrics, vt as PairedMeasurementAdapter, w as fromPiSession, wt as runCandidateExperiment, x as fromCodexSession, xt as SealCandidateBenchmarkSuiteOptions, y as ParsedCodeAgentJsonl, yt as PairedMeasurementEvaluation, z as AgentTraceConversation } from "../index-nwNoS582.js";
13
- import { n as buildDefaultAnalystRegistry, t as DefaultAnalystRegistryOptions } from "../default-registry-DZFWY2_E.js";
14
- export { type AgentEvalAgent, type AgentEvalEvaluateOptions, type AgentEvalImproveOptions, type AgentProfileImprovementExperimentExecutionInput, type AgentProfileImprovementExperimentRun, type AgentTraceContributor, type AgentTraceContributorType, type AgentTraceConversation, type AgentTraceFile, type AgentTraceIndex, type AgentTraceRange, type AgentTraceRecord, type AnalystFinding, type AnalyzeRunsOptions, type AuthoringProvenance, type AxisEvidence, type AxisVerdict, type BuildEvidenceVectorOptions, type CampaignAggregates, type CampaignArtifactWriter, type CampaignCellFailureReceipt, type CampaignCellResult, type CampaignCellRetryPolicy, type CampaignCostMeter, type CampaignResult, type CampaignStorage, type CampaignTraceWriter, type CandidateExperimentExecutionInput, type CandidateExperimentRun, type ChatClient, type CodeAgentJsonlLine, type CodeAgentSessionAction, type CodeAgentSessionActionKind, type CodeAgentSessionActionStatus, type CodeAgentSessionActionSurface, type CodeAgentSessionDiagnostic, type CodeAgentSessionExecutionReceipt, type CodeAgentSessionIntakeOptions, type CodeAgentSessionIntakeResult, type CodeAgentSessionMetrics, type CodeAgentSessionObservation, type CodeAgentSessionSource, type CodeAgentSessionTerminalStatus, type CodeAgentStoreObservation, type CodeAgentStoreRejection, type CodeAgentStoreRejections, type CodeAgentStoreScope, type CodeAgentStoreSession, type CodeSurface, type CompareAgentProfileImprovementExperimentOptions, type CompareCandidateExperimentOptions, type CompareOptimizationMethodsOptions, type ComparisonCost, type CostLedgerHandle, type CostProvenanceSummary, type CreateChatClientOpts, type DefaultAnalystRegistryOptions, type DefaultProductionGateCheck, type DefaultProductionGateOptions, type DefaultProductionRewardHackingOptions, type DefineAgentEvalOptions, type DefinedAgentEval, type DeploymentOutcome, type DispatchFn as Dispatch, type DispatchContext, type EvalReportingSuiteInput, type EvalReportingSuiteOptions, type EvalReportingSuiteResult, type EvaluatePairedMeasurementsOptions, type EvidenceVector, type ExecutionErrorOutcomeCell, type ExecutionInsight, type ExecutionReport, type ExternalOptimizationExample, type ExternalTextEvaluationResponse, type ExternalTextOptimizationMethodConfig, type ExternalTextOptimizerContext, type ExternalTextOptimizerResult, type FailureClassTally, type FailureClusterInsight, type FeedbackTableMeta, type FeedbackTableRow, FileSystemOutcomeStore, type FileSystemOutcomeStoreOptions, type FinalEvidencePolicy, type FinalEvidenceUse, type FromFeedbackTableOptions, type FromFeedbackTableResult, type FromOtelSpansOptions, type FromRunRecordDirOptions, type FromRunRecordDirResult, type Gate, type GateCheckStatus, type GateContext, type GateContribution, type GateDecision, type GateResult, type GenerationCandidate, type GenerationRecord, type GepaAdaptiveEngineRun, type GepaEngineOptions, type GepaEngineRun, type GepaOptimizationMethodConfig, type GepaOptimizationRecipe, type GepaRunnerCommand, type HeldOutGateOptions, type HostedTenant, InMemoryOutcomeStore, type InsightReport, type InterRaterInsight, type JudgeConfig, type JudgeDimension, type JudgeInsight, type JudgeScore, type LiftInsight, type LlmJudgeDimension, type LlmJudgeOptions, type MutableSurface, type ObjectiveSource, type OpenAICompatibleOptimizerModel, type OptimizationMethod, type OptimizationMethodComparison, type OptimizationMethodInput, type OptimizationMethodProvenance, type OptimizationMethodResult, type OptimizationPackageSource, type OptimizationTokenUsage, type OptimizerConfig, type OptimizerModelBudget, type OutcomeCorrelationInsight, type OutcomeStore, type PairedMeasurement, type PairedMeasurementAdapter, type PairedMeasurementEvaluation, type ParetoSignificanceGateOptions, type ParsedCodeAgentJsonl, type PartitionByAuthoringModelResult, type PromotionObjective, type PromotionPolicy, type ProposalFinding, type ProposalFindingOrigin, REFERENCE_EQUIVALENCE_INPUT_LIMITS, REFERENCE_EQUIVALENCE_JUDGE_VERSION, type Recommendation, type ReferenceEquivalenceJudgeInput, type ReferenceEquivalenceJudgeOptions, type ReferenceEquivalenceJudgeResult, type ReferenceEquivalenceScenario, type ReleaseSummary, type RunAgentProfileImprovementExperimentOptions, type RunCampaignOptions, type RunCandidateExperimentOptions, type RunEvalOptions, type RunImprovementLoopOptions, type RunImprovementLoopResult, type RunRecordRejection, type ScalarDistribution, type Scenario, type SealAgentProfileImprovementSuiteOptions, type SealCandidateBenchmarkSuiteOptions, type SelfImproveBudget, type SelfImproveMethodOptions, type SelfImproveMethodProvenance, type SelfImproveMethodResult, type SelfImproveOptions, type SelfImproveProgressEvent, type SelfImproveProposerOptions, type SelfImproveProposerResult, type SelfImproveResult, SelfImproveRunError, type SessionScript, type SkillOptOptimizationMethodConfig, type SkillOptRunnerCommand, type SkillOptTrainerConfig, type SummarizeExecutionOptions, type SurfaceProposer, type TokenUsageInsight, analyzeRuns, buildDefaultAnalystRegistry, buildEvidenceVector, campaignSplitDigest, compareOptimizationMethods, composeGate, createChatClient, createReferenceEquivalenceJudge, defaultProductionGate, defineAgentEval, evalReportingSuite, evaluatePairedMeasurements, externalTextOptimizationMethod, fromClaudeCodeSession, fromCodexSession, fromFeedbackTable, fromKimiCodeSession, fromOpenCodeSession, fromOtelSpans, fromPiSession, fromRunRecordDir, fsCampaignStorage, gepaOptimizationMethod, heldOutGate, inMemoryCampaignStorage, llmJudge, makeProposalFinding, measuredComparisonFromAgentProfileImprovementExperiment, measuredComparisonFromCandidateExperiment, observeCodeAgentSession, observeCodeAgentStore, paretoPolicy, paretoSignificanceGate, parseAgentTrace, parseCodeAgentJsonl, parseCodeAgentJsonlFile, partitionRunsByAuthoringModel, runAgentProfileImprovementExperiment, runCampaign, runCandidateExperiment, runEval, runImprovementLoop, runReferenceEquivalenceJudge, sealAgentProfileImprovementExperiment, sealAgentProfileImprovementSuite, sealAgentProfileImprovementTask, sealCandidateBenchmarkSuite, sealCandidateBenchmarkTask, sealCandidateExperiment, selfImprove, skillOptOptimizationMethod, streamCodeAgentJsonlFile, summarizeExecution, transientDispatchFailure, verifyAgentProfileImprovementExperimentComparison, verifyCandidateExperiment, verifyCandidateExperimentComparison };
10
+ import { _ as ReleaseSummary, a as summarizeExecution, c as ExecutionInsight, d as InsightReport, f as InterRaterInsight, g as Recommendation, h as OutcomeCorrelationInsight, i as analyzeRuns, l as FailureClassTally, m as LiftInsight, n as ExecutionReport, o as CostProvenanceSummary, p as JudgeInsight, r as SummarizeExecutionOptions, s as ExecutionErrorOutcomeCell, t as AnalyzeRunsOptions, u as FailureClusterInsight, v as ScalarDistribution, y as TokenUsageInsight } from "../analyze-runs-BlslTkOJ.js";
11
+ import { _ as SelfImproveMethodResult, a as DefinedAgentEval, c as SelfImproveMethodOptions, d as SelfImproveProposerOptions, f as SelfImproveProposerResult, g as SelfImproveMethodProvenance, h as selfImprove, i as DefineAgentEvalOptions, l as SelfImproveOptions, m as SelfImproveRunError, n as AgentEvalEvaluateOptions, o as defineAgentEval, p as SelfImproveResult, r as AgentEvalImproveOptions, s as SelfImproveBudget, t as AgentEvalAgent, u as SelfImproveProgressEvent } from "../define-agent-eval-B_zZY2AZ.js";
12
+ import { $ as FromRunRecordDirOptions, A as CodeAgentSessionActionKind, At as verifyCandidateExperimentComparison, B as AgentTraceConversation, C as fromOpenCodeSession, Ct as evaluatePairedMeasurements, D as parseCodeAgentJsonlFile, Dt as sealCandidateBenchmarkTask, E as parseCodeAgentJsonl, Et as sealCandidateBenchmarkSuite, F as CodeAgentSessionSource, G as AuthoringProvenance, H as AgentTraceIndex, I as CodeAgentSessionTerminalStatus, J as partitionRunsByAuthoringModel, K as PartitionByAuthoringModelResult, L as observeCodeAgentSession, M as CodeAgentSessionActionSurface, N as CodeAgentSessionExecutionReceipt, O as streamCodeAgentJsonlFile, Ot as sealCandidateExperiment, P as CodeAgentSessionObservation, Q as evalReportingSuite, R as AgentTraceContributor, S as fromKimiCodeSession, St as SealCandidateBenchmarkSuiteOptions, T as fromPiSession, Tt as runCandidateExperiment, U as AgentTraceRange, V as AgentTraceFile, W as AgentTraceRecord, X as EvalReportingSuiteOptions, Y as EvalReportingSuiteInput, Z as EvalReportingSuiteResult, _ as CodeAgentSessionIntakeResult, _t as EvaluatePairedMeasurementsOptions, a as FromFeedbackTableOptions, at as CompareAgentProfileImprovementExperimentOptions, b as fromClaudeCodeSession, bt as PairedMeasurementEvaluation, c as CodeAgentStoreObservation, ct as measuredComparisonFromAgentProfileImprovementExperiment, d as CodeAgentStoreScope, dt as sealAgentProfileImprovementSuite, et as FromRunRecordDirResult, f as CodeAgentStoreSession, ft as sealAgentProfileImprovementTask, g as CodeAgentSessionIntakeOptions, gt as CompareCandidateExperimentOptions, h as CodeAgentSessionDiagnostic, ht as CandidateExperimentRun, i as FeedbackTableRow, it as AgentProfileImprovementExperimentRun, j as CodeAgentSessionActionStatus, k as CodeAgentSessionAction, kt as verifyCandidateExperiment, l as CodeAgentStoreRejection, lt as runAgentProfileImprovementExperiment, m as CodeAgentJsonlLine, mt as CandidateExperimentExecutionInput, n as fromOtelSpans, nt as fromRunRecordDir, o as FromFeedbackTableResult, ot as RunAgentProfileImprovementExperimentOptions, p as observeCodeAgentStore, pt as verifyAgentProfileImprovementExperimentComparison, q as parseAgentTrace, r as FeedbackTableMeta, rt as AgentProfileImprovementExperimentExecutionInput, s as fromFeedbackTable, st as SealAgentProfileImprovementSuiteOptions, t as FromOtelSpansOptions, tt as RunRecordRejection, u as CodeAgentStoreRejections, ut as sealAgentProfileImprovementExperiment, v as CodeAgentSessionMetrics, vt as PairedMeasurement, w as fromPiGraphSession, wt as measuredComparisonFromCandidateExperiment, x as fromCodexSession, xt as RunCandidateExperimentOptions, y as ParsedCodeAgentJsonl, yt as PairedMeasurementAdapter, z as AgentTraceContributorType } from "../index-DnZdBxCL.js";
13
+ import { n as buildDefaultAnalystRegistry, t as DefaultAnalystRegistryOptions } from "../default-registry-Crk3QEy1.js";
14
+ export { type AgentEvalAgent, type AgentEvalEvaluateOptions, type AgentEvalImproveOptions, type AgentProfileImprovementExperimentExecutionInput, type AgentProfileImprovementExperimentRun, type AgentTraceContributor, type AgentTraceContributorType, type AgentTraceConversation, type AgentTraceFile, type AgentTraceIndex, type AgentTraceRange, type AgentTraceRecord, type AnalystFinding, type AnalyzeRunsOptions, type AuthoringProvenance, type AxisEvidence, type AxisVerdict, type BuildEvidenceVectorOptions, type CampaignAggregates, type CampaignArtifactWriter, type CampaignCellFailureReceipt, type CampaignCellResult, type CampaignCellRetryPolicy, type CampaignCostMeter, type CampaignResult, type CampaignStorage, type CampaignTraceWriter, type CandidateExperimentExecutionInput, type CandidateExperimentRun, type ChatClient, type CodeAgentJsonlLine, type CodeAgentSessionAction, type CodeAgentSessionActionKind, type CodeAgentSessionActionStatus, type CodeAgentSessionActionSurface, type CodeAgentSessionDiagnostic, type CodeAgentSessionExecutionReceipt, type CodeAgentSessionIntakeOptions, type CodeAgentSessionIntakeResult, type CodeAgentSessionMetrics, type CodeAgentSessionObservation, type CodeAgentSessionSource, type CodeAgentSessionTerminalStatus, type CodeAgentStoreObservation, type CodeAgentStoreRejection, type CodeAgentStoreRejections, type CodeAgentStoreScope, type CodeAgentStoreSession, type CodeSurface, type CompareAgentProfileImprovementExperimentOptions, type CompareCandidateExperimentOptions, type CompareOptimizationMethodsOptions, type ComparisonCost, type CostLedgerHandle, type CostProvenanceSummary, type CreateChatClientOpts, type DefaultAnalystRegistryOptions, type DefaultProductionGateCheck, type DefaultProductionGateOptions, type DefaultProductionRewardHackingOptions, type DefineAgentEvalOptions, type DefinedAgentEval, type DeploymentOutcome, type DispatchFn as Dispatch, type DispatchContext, type EvalReportingSuiteInput, type EvalReportingSuiteOptions, type EvalReportingSuiteResult, type EvaluatePairedMeasurementsOptions, type EvidenceVector, type ExecutionErrorOutcomeCell, type ExecutionInsight, type ExecutionReport, type ExternalOptimizationExample, type ExternalTextEvaluationResponse, type ExternalTextOptimizationMethodConfig, type ExternalTextOptimizerContext, type ExternalTextOptimizerResult, type FailureClassTally, type FailureClusterInsight, type FeedbackTableMeta, type FeedbackTableRow, FileSystemOutcomeStore, type FileSystemOutcomeStoreOptions, type FinalEvidencePolicy, type FinalEvidenceUse, type FromFeedbackTableOptions, type FromFeedbackTableResult, type FromOtelSpansOptions, type FromRunRecordDirOptions, type FromRunRecordDirResult, type Gate, type GateCheckStatus, type GateContext, type GateContribution, type GateDecision, type GateResult, type GenerationCandidate, type GenerationRecord, type GepaAdaptiveEngineRun, type GepaEngineOptions, type GepaEngineRun, type GepaOptimizationMethodConfig, type GepaOptimizationRecipe, type GepaRunnerCommand, type HeldOutGateOptions, type HostedTenant, InMemoryOutcomeStore, type InsightReport, type InterRaterInsight, type JudgeConfig, type JudgeDimension, type JudgeInsight, type JudgeScore, type LiftInsight, type LlmJudgeDimension, type LlmJudgeOptions, type MutableSurface, type ObjectiveSource, type OpenAICompatibleOptimizerModel, type OptimizationMethod, type OptimizationMethodComparison, type OptimizationMethodInput, type OptimizationMethodProvenance, type OptimizationMethodResult, type OptimizationPackageSource, type OptimizationTokenUsage, type OptimizerConfig, type OptimizerModelBudget, type OutcomeCorrelationInsight, type OutcomeStore, type PairedMeasurement, type PairedMeasurementAdapter, type PairedMeasurementEvaluation, type ParetoSignificanceGateOptions, type ParsedCodeAgentJsonl, type PartitionByAuthoringModelResult, type PromotionObjective, type PromotionPolicy, type ProposalFinding, type ProposalFindingOrigin, REFERENCE_EQUIVALENCE_INPUT_LIMITS, REFERENCE_EQUIVALENCE_JUDGE_VERSION, type Recommendation, type ReferenceEquivalenceJudgeInput, type ReferenceEquivalenceJudgeOptions, type ReferenceEquivalenceJudgeResult, type ReferenceEquivalenceScenario, type ReleaseSummary, type RunAgentProfileImprovementExperimentOptions, type RunCampaignOptions, type RunCandidateExperimentOptions, type RunEvalOptions, type RunImprovementLoopOptions, type RunImprovementLoopResult, type RunRecordRejection, type ScalarDistribution, type Scenario, type SealAgentProfileImprovementSuiteOptions, type SealCandidateBenchmarkSuiteOptions, type SelfImproveBudget, type SelfImproveMethodOptions, type SelfImproveMethodProvenance, type SelfImproveMethodResult, type SelfImproveOptions, type SelfImproveProgressEvent, type SelfImproveProposerOptions, type SelfImproveProposerResult, type SelfImproveResult, SelfImproveRunError, type SessionScript, type SkillOptOptimizationMethodConfig, type SkillOptRunnerCommand, type SkillOptTrainerConfig, type SummarizeExecutionOptions, type SurfaceProposer, type TokenUsageInsight, analyzeRuns, buildDefaultAnalystRegistry, buildEvidenceVector, campaignSplitDigest, compareOptimizationMethods, composeGate, createChatClient, createReferenceEquivalenceJudge, defaultProductionGate, defineAgentEval, evalReportingSuite, evaluatePairedMeasurements, externalTextOptimizationMethod, fromClaudeCodeSession, fromCodexSession, fromFeedbackTable, fromKimiCodeSession, fromOpenCodeSession, fromOtelSpans, fromPiGraphSession, fromPiSession, fromRunRecordDir, fsCampaignStorage, gepaOptimizationMethod, heldOutGate, inMemoryCampaignStorage, llmJudge, makeProposalFinding, measuredComparisonFromAgentProfileImprovementExperiment, measuredComparisonFromCandidateExperiment, observeCodeAgentSession, observeCodeAgentStore, paretoPolicy, paretoSignificanceGate, parseAgentTrace, parseCodeAgentJsonl, parseCodeAgentJsonlFile, partitionRunsByAuthoringModel, runAgentProfileImprovementExperiment, runCampaign, runCandidateExperiment, runEval, runImprovementLoop, runReferenceEquivalenceJudge, sealAgentProfileImprovementExperiment, sealAgentProfileImprovementSuite, sealAgentProfileImprovementTask, sealCandidateBenchmarkSuite, sealCandidateBenchmarkTask, sealCandidateExperiment, selfImprove, skillOptOptimizationMethod, streamCodeAgentJsonlFile, summarizeExecution, transientDispatchFailure, verifyAgentProfileImprovementExperimentComparison, verifyCandidateExperiment, verifyCandidateExperimentComparison };
@@ -1,29 +1,30 @@
1
1
  import { a as hashCanonical } from "../canonical-BsZVgBhW.js";
2
2
  import { r as pairedBootstrap } from "../paired-tests-jbwPdSz5.js";
3
- import { t as decidePairedPromotion } from "../paired-promotion-decision-2deJ7sDX.js";
4
- import { a as heldoutSignificance } from "../statistical-heldout-BP6iEJvR.js";
5
- import { n as summarizeExecution, t as analyzeRuns } from "../analyze-runs-GZ0VSwui.js";
6
- import { a as parseRunRecordSafe } from "../run-record-BRlM99rX.js";
7
- import { K as defaultProductionGate, a as transientDispatchFailure, c as compareOptimizationMethods, h as runImprovementLoop, nt as runEval, rt as runCampaign, t as llmJudge } from "../llm-judge-HLWASwUJ.js";
3
+ import { t as decidePairedPromotion } from "../paired-promotion-decision-BN6IQTiu.js";
4
+ import { a as heldoutSignificance } from "../statistical-heldout-1Gbmex7v.js";
5
+ import { n as summarizeExecution, t as analyzeRuns } from "../analyze-runs-3xpby3p2.js";
6
+ import { a as parseRunRecordSafe } from "../run-record-DlTZ_lqe.js";
7
+ import { K as defaultProductionGate, a as transientDispatchFailure, c as compareOptimizationMethods, h as runImprovementLoop, nt as runEval, rt as runCampaign, t as llmJudge } from "../llm-judge-Tr7MBUnf.js";
8
8
  import { i as isModelPriced, n as estimateCost } from "../metrics-DOMpkoeb.js";
9
9
  import { i as CostLedger } from "../cost-ledger-_IbkejCF.js";
10
- import { q as campaignSplitDigest } from "../campaign-evidence-DW3Krxov.js";
10
+ import { G as campaignSplitDigest } from "../campaign-evidence-OcUciD-N.js";
11
11
  import { h as mapConcurrentRange } from "../journal-DvKCvjty.js";
12
12
  import { C as inMemoryCampaignStorage, S as fsCampaignStorage } from "../external-optimizer-subprocess-C0EsxEbI.js";
13
- import { n as SelfImproveRunError, r as selfImprove, t as defineAgentEval } from "../define-agent-eval-BjKXcDQp.js";
14
- import { t as buildDefaultAnalystRegistry } from "../default-registry-DX5R7_n9.js";
13
+ import { n as SelfImproveRunError, r as selfImprove, t as defineAgentEval } from "../define-agent-eval-CoXXDCMu.js";
14
+ import { t as buildDefaultAnalystRegistry } from "../default-registry-DF4Yp7HQ.js";
15
15
  import { t as extractUsage } from "../extract-usage-BrnzRJ6H.js";
16
16
  import { i as makeProposalFinding } from "../types-CW5b90JH.js";
17
17
  import { t as createChatClient } from "../chat-client-CydfmLdO.js";
18
18
  import { n as InMemoryOutcomeStore, t as FileSystemOutcomeStore } from "../outcome-store-DUcMj-3D.js";
19
- import { c as heldOutGate, g as runReferenceEquivalenceJudge, h as createReferenceEquivalenceJudge, l as composeGate, m as REFERENCE_EQUIVALENCE_JUDGE_VERSION, n as gepaOptimizationMethod, p as REFERENCE_EQUIVALENCE_INPUT_LIMITS, t as skillOptOptimizationMethod, u as externalTextOptimizationMethod } from "../skillopt-optimization-method-Dcnh5Pvr.js";
20
- import { n as paretoPolicy, r as paretoSignificanceGate, t as buildEvidenceVector } from "../promotion-policy-CCmyEH_c.js";
19
+ import { c as heldOutGate, g as runReferenceEquivalenceJudge, h as createReferenceEquivalenceJudge, l as composeGate, m as REFERENCE_EQUIVALENCE_JUDGE_VERSION, n as gepaOptimizationMethod, p as REFERENCE_EQUIVALENCE_INPUT_LIMITS, t as skillOptOptimizationMethod, u as externalTextOptimizationMethod } from "../skillopt-optimization-method-DujPOiwD.js";
20
+ import { n as paretoPolicy, r as paretoSignificanceGate, t as buildEvidenceVector } from "../promotion-policy-CWW35UWq.js";
21
21
  import { t as fromOtelSpans } from "../otel-spans-C8YIJWy1.js";
22
22
  import { createHash } from "node:crypto";
23
23
  import { agentCandidateBenchmarkSuiteSchema, agentCandidateBenchmarkTaskSchema, agentCandidateBundleSchema, agentCandidateEvaluationPolicySchema, agentCandidateExperimentSchema, agentImprovementMeasuredComparisonSchema, agentProfileImprovementExperimentSchema, agentProfileImprovementMeasuredComparisonSchema, agentProfileImprovementRunCellSchema, agentProfileImprovementRunReceiptSchema, agentProfileImprovementSuiteInputsSchema, agentProfileImprovementSuiteSchema, agentProfileImprovementTaskSchema, candidateExecutionEvidenceSchema, canonicalCandidateDigest, canonicalCandidateJson, numbersApproximatelyEqual, omitTopLevelDigest } from "@tangle-network/agent-interface";
24
24
  import { createReadStream } from "node:fs";
25
25
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
26
26
  import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
27
+ import { readSessionInput, summarizeSessionInput } from "@tangle-network/harness-sessions";
27
28
  //#region src/contract/fixed-spend.ts
28
29
  function addFixedSpend(left, right) {
29
30
  return {
@@ -1403,6 +1404,11 @@ function partitionRunsByAuthoringModel(runs, index) {
1403
1404
  //#endregion
1404
1405
  //#region src/contract/intake/code-agent-observation.ts
1405
1406
  /**
1407
+ * Where a session came from. `pi` is a native Pi session (`~/.pi/agent/sessions/*.jsonl`), read
1408
+ * through @tangle-network/harness-sessions; `pi-graph` is the graph IR a Pi graph run exports
1409
+ * (`nodes[].ir.kind`), which is not a Pi session.
1410
+ */
1411
+ /**
1406
1412
  * Project one provider session into the exact user-visible answer and a
1407
1413
  * provider-neutral action stream. Raw prompts, tool inputs, and tool outputs
1408
1414
  * stay out of this projection; callers retain the source JSONL as evidence.
@@ -1425,7 +1431,8 @@ function projectionFor(source, entries) {
1425
1431
  case "claude-code": return claudeProjection(entries);
1426
1432
  case "opencode": return openCodeProjection(entries);
1427
1433
  case "kimi-code": return kimiProjection(entries);
1428
- case "pi": return piProjection(entries);
1434
+ case "pi": return piSessionProjection(entries);
1435
+ case "pi-graph": return piGraphProjection(entries);
1429
1436
  }
1430
1437
  }
1431
1438
  function codexProjection(entries) {
@@ -1799,7 +1806,30 @@ function kimiProjection(entries) {
1799
1806
  actions
1800
1807
  };
1801
1808
  }
1802
- function piProjection(entries) {
1809
+ /** A native Pi session, folded by the shared reader: one action per tool call, the last answer, the ending. */
1810
+ function piSessionProjection(entries) {
1811
+ const session = readSessionInput("pi", { records: entries });
1812
+ const actions = session.toolCalls.map((call, index) => actionFor({
1813
+ id: call.id,
1814
+ stepIndex: index,
1815
+ kind: "tool",
1816
+ surface: surfaceForTool(call.name),
1817
+ name: call.name,
1818
+ status: call.status === "completed" ? "completed" : call.status === "error" ? "failed" : call.status === "pending" ? "started" : "unknown",
1819
+ timestampMs: timestamp(call.startedAt),
1820
+ metadata: { sourceEventType: "pi-tool-call" }
1821
+ }));
1822
+ const answer = [...session.messages].reverse().find((m) => m.role === "assistant" && m.actor === "agent" && m.parts.some((p) => p.type === "text"));
1823
+ const finalText = answer ? answer.parts.flatMap((p) => p.type === "text" ? [p.text] : []).join("\n") : null;
1824
+ const status = session.ending.status;
1825
+ return {
1826
+ finalText,
1827
+ terminal: status === "completed" ? "completed" : status === "error" || status === "aborted" ? "failed" : "unknown",
1828
+ explicitTerminal: status !== "open",
1829
+ actions
1830
+ };
1831
+ }
1832
+ function piGraphProjection(entries) {
1803
1833
  const actions = [];
1804
1834
  let terminal = "unknown";
1805
1835
  let explicitTerminal = false;
@@ -2037,6 +2067,10 @@ function compactMetadata(input) {
2037
2067
  }
2038
2068
  function sessionIdFromEntries$1(source, entries) {
2039
2069
  for (const entry of entries) {
2070
+ if (source === "pi" && entry.type === "session") {
2071
+ const id = stringField$1(entry, "id");
2072
+ if (id) return id;
2073
+ }
2040
2074
  if (source === "codex") {
2041
2075
  const threadId = stringField$1(entry, "thread_id");
2042
2076
  if (threadId) return threadId;
@@ -2178,9 +2212,14 @@ function fromOpenCodeSession(options) {
2178
2212
  function fromKimiCodeSession(options) {
2179
2213
  return fromCodeAgentSession("kimi-code", options);
2180
2214
  }
2215
+ /** A native Pi session (`~/.pi/agent/sessions/<cwd>/<ts>_<id>.jsonl`), parsed entries in order. */
2181
2216
  function fromPiSession(options) {
2182
2217
  return fromCodeAgentSession("pi", options);
2183
2218
  }
2219
+ /** The graph IR a Pi graph run exports (`nodes[].ir`), which is not a Pi session. */
2220
+ function fromPiGraphSession(options) {
2221
+ return fromCodeAgentSession("pi-graph", options);
2222
+ }
2184
2223
  function fromCodeAgentSession(source, options) {
2185
2224
  const entries = options.entries.filter(isRecord);
2186
2225
  if (entries.length === 0) return {
@@ -2347,7 +2386,8 @@ function metricsFor(source, entries) {
2347
2386
  case "claude-code": return claudeCodeMetrics(entries);
2348
2387
  case "opencode": return openCodeMetrics(entries);
2349
2388
  case "kimi-code": return kimiCodeMetrics(entries);
2350
- case "pi": return piMetrics(entries);
2389
+ case "pi": return piSessionMetrics(entries);
2390
+ case "pi-graph": return piGraphMetrics(entries);
2351
2391
  }
2352
2392
  }
2353
2393
  function codexMetrics(entries) {
@@ -2488,7 +2528,6 @@ function claudeCodeMetrics(entries) {
2488
2528
  if (type === "pr-link") metrics.prLinks += 1;
2489
2529
  if (type === "file-history-snapshot") metrics.fileSnapshots += 1;
2490
2530
  const message = record(entry.message);
2491
- if (message) addUsage(metrics, record(message.usage));
2492
2531
  const content = Array.isArray(message?.content) ? message.content : [];
2493
2532
  for (const item of content) {
2494
2533
  const part = record(item);
@@ -2502,6 +2541,12 @@ function claudeCodeMetrics(entries) {
2502
2541
  }
2503
2542
  }
2504
2543
  }
2544
+ const usage = summarizeSessionInput("claude-code", { records: entries }).usage;
2545
+ metrics.inputTokens = usage?.input ?? 0;
2546
+ metrics.outputTokens = usage?.output ?? 0;
2547
+ metrics.reasoningTokens = usage?.reasoning ?? 0;
2548
+ metrics.cachedTokens = usage?.cacheRead ?? 0;
2549
+ metrics.cacheWriteTokens = usage?.cacheWrite ?? 0;
2505
2550
  if (startedAt !== void 0 && completedAt !== void 0) metrics.wallMs = Math.max(0, completedAt - startedAt);
2506
2551
  metrics.processScore = claudeProcessScore(metrics);
2507
2552
  return metrics;
@@ -2617,7 +2662,33 @@ function kimiCodeMetrics(entries) {
2617
2662
  metrics.processScore = terminalProcessScore(metrics);
2618
2663
  return metrics;
2619
2664
  }
2620
- function piMetrics(entries) {
2665
+ /** A native Pi session's metrics, from the shared reader's fold. */
2666
+ function piSessionMetrics(entries) {
2667
+ const metrics = emptyMetrics(entries.length);
2668
+ const session = readSessionInput("pi", { records: entries });
2669
+ metrics.userMessages = session.messages.filter((m) => m.role === "user" && m.actor === "human").length;
2670
+ metrics.assistantMessages = session.messages.filter((m) => m.role === "assistant" && m.actor === "agent").length;
2671
+ metrics.reasoningItems = session.messages.reduce((n, m) => n + m.parts.filter((p) => p.type === "reasoning").length, 0);
2672
+ metrics.toolCalls = session.toolCalls.length;
2673
+ metrics.toolOutputs = session.toolCalls.filter((c) => c.result !== null).length;
2674
+ metrics.toolErrors = session.toolCalls.filter((c) => c.result?.isError === true).length;
2675
+ metrics.unclassifiedErrors = session.modelCalls.filter((c) => c.error !== null).length;
2676
+ metrics.turnsStarted = metrics.userMessages;
2677
+ if (session.ending.status === "completed") metrics.turnsCompleted = 1;
2678
+ if (session.ending.status === "aborted" || session.ending.status === "error") metrics.turnsAborted = 1;
2679
+ metrics.inputTokens = session.usage?.input ?? 0;
2680
+ metrics.outputTokens = session.usage?.output ?? 0;
2681
+ metrics.reasoningTokens = session.usage?.reasoning ?? 0;
2682
+ metrics.cachedTokens = session.usage?.cacheRead ?? 0;
2683
+ metrics.cacheWriteTokens = session.usage?.cacheWrite ?? 0;
2684
+ const costs = session.modelCalls.flatMap((c) => c.costUsd === null ? [] : [c.costUsd]);
2685
+ metrics.observedCostUsd = costs.reduce((a, b) => a + b, 0);
2686
+ metrics.observedCostCaptured = costs.length > 0;
2687
+ if (session.startedAt !== null && session.endedAt !== null) metrics.wallMs = Math.max(0, Date.parse(session.endedAt) - Date.parse(session.startedAt));
2688
+ metrics.processScore = terminalProcessScore(metrics);
2689
+ return metrics;
2690
+ }
2691
+ function piGraphMetrics(entries) {
2621
2692
  const metrics = emptyMetrics(entries.length);
2622
2693
  let bestReliabilityScore;
2623
2694
  for (const entry of entries) {
@@ -2826,6 +2897,10 @@ function applyObservedSurfaceMetrics(metrics, observation) {
2826
2897
  }
2827
2898
  function sessionIdFromEntries(source, entries) {
2828
2899
  for (const entry of entries) {
2900
+ if (source === "pi" && entry.type === "session") {
2901
+ const id = stringField(entry, "id");
2902
+ if (id) return id;
2903
+ }
2829
2904
  if (source === "codex") {
2830
2905
  const threadId = stringField(entry, "thread_id");
2831
2906
  if (threadId) return threadId;
@@ -2839,6 +2914,7 @@ function sessionIdFromEntries(source, entries) {
2839
2914
  }
2840
2915
  }
2841
2916
  function modelFromEntries(source, entries) {
2917
+ if (source === "pi") return summarizeSessionInput("pi", { records: entries }).lastServedModel ?? void 0;
2842
2918
  let providerModel;
2843
2919
  for (const entry of entries) {
2844
2920
  if (source === "codex") {
@@ -3224,6 +3300,6 @@ function fromFeedbackTable(opts) {
3224
3300
  };
3225
3301
  }
3226
3302
  //#endregion
3227
- export { FileSystemOutcomeStore, InMemoryOutcomeStore, REFERENCE_EQUIVALENCE_INPUT_LIMITS, REFERENCE_EQUIVALENCE_JUDGE_VERSION, SelfImproveRunError, analyzeRuns, buildDefaultAnalystRegistry, buildEvidenceVector, campaignSplitDigest, compareOptimizationMethods, composeGate, createChatClient, createReferenceEquivalenceJudge, defaultProductionGate, defineAgentEval, evalReportingSuite, evaluatePairedMeasurements, externalTextOptimizationMethod, fromClaudeCodeSession, fromCodexSession, fromFeedbackTable, fromKimiCodeSession, fromOpenCodeSession, fromOtelSpans, fromPiSession, fromRunRecordDir, fsCampaignStorage, gepaOptimizationMethod, heldOutGate, inMemoryCampaignStorage, llmJudge, makeProposalFinding, measuredComparisonFromAgentProfileImprovementExperiment, measuredComparisonFromCandidateExperiment, observeCodeAgentSession, observeCodeAgentStore, paretoPolicy, paretoSignificanceGate, parseAgentTrace, parseCodeAgentJsonl, parseCodeAgentJsonlFile, partitionRunsByAuthoringModel, runAgentProfileImprovementExperiment, runCampaign, runCandidateExperiment, runEval, runImprovementLoop, runReferenceEquivalenceJudge, sealAgentProfileImprovementExperiment, sealAgentProfileImprovementSuite, sealAgentProfileImprovementTask, sealCandidateBenchmarkSuite, sealCandidateBenchmarkTask, sealCandidateExperiment, selfImprove, skillOptOptimizationMethod, streamCodeAgentJsonlFile, summarizeExecution, transientDispatchFailure, verifyAgentProfileImprovementExperimentComparison, verifyCandidateExperiment, verifyCandidateExperimentComparison };
3303
+ export { FileSystemOutcomeStore, InMemoryOutcomeStore, REFERENCE_EQUIVALENCE_INPUT_LIMITS, REFERENCE_EQUIVALENCE_JUDGE_VERSION, SelfImproveRunError, analyzeRuns, buildDefaultAnalystRegistry, buildEvidenceVector, campaignSplitDigest, compareOptimizationMethods, composeGate, createChatClient, createReferenceEquivalenceJudge, defaultProductionGate, defineAgentEval, evalReportingSuite, evaluatePairedMeasurements, externalTextOptimizationMethod, fromClaudeCodeSession, fromCodexSession, fromFeedbackTable, fromKimiCodeSession, fromOpenCodeSession, fromOtelSpans, fromPiGraphSession, fromPiSession, fromRunRecordDir, fsCampaignStorage, gepaOptimizationMethod, heldOutGate, inMemoryCampaignStorage, llmJudge, makeProposalFinding, measuredComparisonFromAgentProfileImprovementExperiment, measuredComparisonFromCandidateExperiment, observeCodeAgentSession, observeCodeAgentStore, paretoPolicy, paretoSignificanceGate, parseAgentTrace, parseCodeAgentJsonl, parseCodeAgentJsonlFile, partitionRunsByAuthoringModel, runAgentProfileImprovementExperiment, runCampaign, runCandidateExperiment, runEval, runImprovementLoop, runReferenceEquivalenceJudge, sealAgentProfileImprovementExperiment, sealAgentProfileImprovementSuite, sealAgentProfileImprovementTask, sealCandidateBenchmarkSuite, sealCandidateBenchmarkTask, sealCandidateExperiment, selfImprove, skillOptOptimizationMethod, streamCodeAgentJsonlFile, summarizeExecution, transientDispatchFailure, verifyAgentProfileImprovementExperimentComparison, verifyCandidateExperiment, verifyCandidateExperimentComparison };
3228
3304
 
3229
3305
  //# sourceMappingURL=index.js.map