@tangle-network/agent-eval 0.216.1 → 0.218.1

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 (532) hide show
  1. package/CHANGELOG.md +137 -57
  2. package/README.md +2 -2
  3. package/dist/adapters/http.d.ts +2 -2
  4. package/dist/{agent-profile-VFcQncbW.d.ts → agent-profile-DTt8uGP9.d.ts} +4 -17
  5. package/dist/agent-profile-DTt8uGP9.d.ts.map +1 -0
  6. package/dist/{agent-profile-cell-BK8mlqlq.js → agent-profile-cell-B1V1gUZs.js} +4 -53
  7. package/dist/agent-profile-cell-B1V1gUZs.js.map +1 -0
  8. package/dist/{agent-profile-cell-BNp-Js9F.d.ts → agent-profile-cell-BcpFbNd5.d.ts} +2 -22
  9. package/dist/agent-profile-cell-BcpFbNd5.d.ts.map +1 -0
  10. package/dist/{agreement-irr-BEWLIF3_.js → agreement-irr-BhAqjluA.js} +5 -5
  11. package/dist/agreement-irr-BhAqjluA.js.map +1 -0
  12. package/dist/analyst/index.d.ts +36 -169
  13. package/dist/analyst/index.d.ts.map +1 -1
  14. package/dist/analyst/index.js +17 -192
  15. package/dist/analyst/index.js.map +1 -1
  16. package/dist/{analyze-runs-D68fd-su.d.ts → analyze-runs-DjlZOVXx.d.ts} +5 -5
  17. package/dist/{analyze-runs-D68fd-su.d.ts.map → analyze-runs-DjlZOVXx.d.ts.map} +1 -1
  18. package/dist/{analyze-runs-C84irm4i.js → analyze-runs-DqPJaJ4X.js} +225 -21
  19. package/dist/analyze-runs-DqPJaJ4X.js.map +1 -0
  20. package/dist/authenticity/index.d.ts +0 -23
  21. package/dist/authenticity/index.d.ts.map +1 -1
  22. package/dist/authenticity/index.js +1 -34
  23. package/dist/authenticity/index.js.map +1 -1
  24. package/dist/{benchmark-command-By0vh8q7.js → benchmark-command-BupdHRyf.js} +1225 -661
  25. package/dist/benchmark-command-BupdHRyf.js.map +1 -0
  26. package/dist/benchmarks/index.d.ts +5 -6
  27. package/dist/benchmarks/index.d.ts.map +1 -1
  28. package/dist/benchmarks/index.js +4 -4
  29. package/dist/benchmarks/index.js.map +1 -1
  30. package/dist/builder-eval/index.d.ts +3 -3
  31. package/dist/builder-eval/index.js +2 -2
  32. package/dist/builder-eval/index.js.map +1 -1
  33. package/dist/campaign/index.d.ts +7 -7
  34. package/dist/campaign/index.js +15 -15
  35. package/dist/{campaign-BudZ70zo.js → campaign-CGvUTnmc.js} +324 -800
  36. package/dist/campaign-CGvUTnmc.js.map +1 -0
  37. package/dist/{campaign-evidence-Clrn4hBV.js → campaign-evidence-DunzcJGv.js} +10 -18
  38. package/dist/{campaign-evidence-Clrn4hBV.js.map → campaign-evidence-DunzcJGv.js.map} +1 -1
  39. package/dist/{canonical-B2RqLofv.js → canonical-Dq2hOQ8L.js} +2 -2
  40. package/dist/{canonical-B2RqLofv.js.map → canonical-Dq2hOQ8L.js.map} +1 -1
  41. package/dist/cell-spend-DEWR3nj-.js +90 -0
  42. package/dist/cell-spend-DEWR3nj-.js.map +1 -0
  43. package/dist/{chat-client-l-MVDlDk.js → chat-client-B2pXlPdx.js} +2 -2
  44. package/dist/{chat-client-l-MVDlDk.js.map → chat-client-B2pXlPdx.js.map} +1 -1
  45. package/dist/{chat-json-call-puMArmtW.js → chat-json-call-Dm9c-b41.js} +3 -2
  46. package/dist/chat-json-call-Dm9c-b41.js.map +1 -0
  47. package/dist/{claim-q4HQhK1G.js → claim-BPVuyHuy.js} +3 -3
  48. package/dist/{claim-q4HQhK1G.js.map → claim-BPVuyHuy.js.map} +1 -1
  49. package/dist/cli.js +113 -12
  50. package/dist/cli.js.map +1 -1
  51. package/dist/{client-BzL9niqi.d.ts → client-hwo3cJjR.d.ts} +3 -16
  52. package/dist/client-hwo3cJjR.d.ts.map +1 -0
  53. package/dist/{cluster-bootstrap-qcUWYFl-.js → cluster-bootstrap-DEwwhl0C.js} +3 -3
  54. package/dist/{cluster-bootstrap-qcUWYFl-.js.map → cluster-bootstrap-DEwwhl0C.js.map} +1 -1
  55. package/dist/{produced-state-BsDmnwxc.js → completion-verifier-DbLVf3i8.js} +9 -64
  56. package/dist/completion-verifier-DbLVf3i8.js.map +1 -0
  57. package/dist/contract/index.d.ts +12 -12
  58. package/dist/contract/index.js +107 -403
  59. package/dist/contract/index.js.map +1 -1
  60. package/dist/{cost-ledger-BP8V4kUQ.js → cost-ledger-D0352Z4d.js} +4 -8
  61. package/dist/cost-ledger-D0352Z4d.js.map +1 -0
  62. package/dist/dataset-DQqhOCPt.d.ts.map +1 -1
  63. package/dist/{default-registry-COhk9g36.js → default-registry-BJ-Pq6yL.js} +314 -285
  64. package/dist/default-registry-BJ-Pq6yL.js.map +1 -0
  65. package/dist/{default-registry-DzHiGruW.d.ts → default-registry-DXgLmoDI.d.ts} +7 -50
  66. package/dist/default-registry-DXgLmoDI.d.ts.map +1 -0
  67. package/dist/{define-agent-eval-CNTPzIkp.js → define-agent-eval-BGdFKlrc.js} +170 -110
  68. package/dist/define-agent-eval-BGdFKlrc.js.map +1 -0
  69. package/dist/{define-agent-eval-WSck0CZJ.d.ts → define-agent-eval-BlH10zEw.d.ts} +8 -8
  70. package/dist/define-agent-eval-BlH10zEw.d.ts.map +1 -0
  71. package/dist/{descriptive-DboxPZrG.js → descriptive-CVNy48rR.js} +2 -2
  72. package/dist/{descriptive-DboxPZrG.js.map → descriptive-CVNy48rR.js.map} +1 -1
  73. package/dist/diagnosis/index.d.ts +4 -14
  74. package/dist/diagnosis/index.d.ts.map +1 -1
  75. package/dist/diagnosis/index.js +67 -28
  76. package/dist/diagnosis/index.js.map +1 -1
  77. package/dist/{dspy-rlm-engine-LRCu61m5.js → dspy-rlm-engine-CSMwudLO.js} +5 -10
  78. package/dist/dspy-rlm-engine-CSMwudLO.js.map +1 -0
  79. package/dist/{emitter-HcCmFQl_.d.ts → emitter-DABYYTcH.d.ts} +5 -5
  80. package/dist/emitter-DABYYTcH.d.ts.map +1 -0
  81. package/dist/emitter-DbMXUIVP.js.map +1 -1
  82. package/dist/{engine-3A_4jOlI.d.ts → engine-BvZ0R-36.d.ts} +17 -21
  83. package/dist/engine-BvZ0R-36.d.ts.map +1 -0
  84. package/dist/{equal-terms-BtdXayCJ.js → equal-terms-DbPGcVtI.js} +2 -2
  85. package/dist/equal-terms-DbPGcVtI.js.map +1 -0
  86. package/dist/{errors-DVZiqS7K.js → errors-BcOs5MKW.js} +2 -8
  87. package/dist/{errors-DVZiqS7K.js.map → errors-BcOs5MKW.js.map} +1 -1
  88. package/dist/eval-campaign-BUMIxKTE.js +393 -0
  89. package/dist/eval-campaign-BUMIxKTE.js.map +1 -0
  90. package/dist/{evaluation-6Yoi74gM.d.ts → evaluation-BOZ38vOH.d.ts} +7 -7
  91. package/dist/evaluation-BOZ38vOH.d.ts.map +1 -0
  92. package/dist/evaluation.d.ts +2 -2
  93. package/dist/evaluation.js +1 -1
  94. package/dist/evaluation.js.map +1 -1
  95. package/dist/{exact-types-ClugMJfI.d.ts → exact-types-CflbJ9f3.d.ts} +2 -2
  96. package/dist/{exact-types-ClugMJfI.d.ts.map → exact-types-CflbJ9f3.d.ts.map} +1 -1
  97. package/dist/{exec-ChJ6d5if.js → exec-CpbtOXVt.js} +2 -24
  98. package/dist/{exec-ChJ6d5if.js.map → exec-CpbtOXVt.js.map} +1 -1
  99. package/dist/execution-tracks-CpgFPpS5.js.map +1 -1
  100. package/dist/experiment/index.d.ts +9 -112
  101. package/dist/experiment/index.d.ts.map +1 -1
  102. package/dist/experiment/index.js +258 -311
  103. package/dist/experiment/index.js.map +1 -1
  104. package/dist/{exporters-X4xwla8A.js → exporters-DWvM16LE.js} +3 -3
  105. package/dist/exporters-DWvM16LE.js.map +1 -0
  106. package/dist/{exporters-ChTnR90l.d.ts → exporters-Dk3oEbK_.d.ts} +2 -4
  107. package/dist/{exporters-ChTnR90l.d.ts.map → exporters-Dk3oEbK_.d.ts.map} +1 -1
  108. package/dist/{external-optimizer-process-BjMGUuds.js → external-optimizer-process-C3Wm7Vhn.js} +4 -3
  109. package/dist/external-optimizer-process-C3Wm7Vhn.js.map +1 -0
  110. package/dist/{external-optimizer-subprocess-BqW0hHcI.js → external-optimizer-subprocess-B5gdLRZv.js} +9 -11
  111. package/dist/external-optimizer-subprocess-B5gdLRZv.js.map +1 -0
  112. package/dist/{extract-usage-BrnzRJ6H.js → extract-usage-BZLU01kR.js} +2 -23
  113. package/dist/{extract-usage-BrnzRJ6H.js.map → extract-usage-BZLU01kR.js.map} +1 -1
  114. package/dist/{failure-cluster-CbgEDcFJ.d.ts → failure-cluster-DN0t63Z0.d.ts} +4 -43
  115. package/dist/failure-cluster-DN0t63Z0.d.ts.map +1 -0
  116. package/dist/{failure-taxonomy-CjabTATj.js → failure-taxonomy-Bx5oWqaW.js} +2 -19
  117. package/dist/{failure-taxonomy-CjabTATj.js.map → failure-taxonomy-Bx5oWqaW.js.map} +1 -1
  118. package/dist/{feedback-trajectory-C4EG0nNH.d.ts → feedback-trajectory-BWmhRBGu.d.ts} +7 -9
  119. package/dist/feedback-trajectory-BWmhRBGu.d.ts.map +1 -0
  120. package/dist/{semantic-concept-judge-BQF8te0T.js → findings-store-BtTzPL0d.js} +9 -249
  121. package/dist/findings-store-BtTzPL0d.js.map +1 -0
  122. package/dist/fuzz.d.ts +19 -62
  123. package/dist/fuzz.d.ts.map +1 -1
  124. package/dist/fuzz.js +62 -108
  125. package/dist/fuzz.js.map +1 -1
  126. package/dist/{hf-dataset-BR2yhuNn.js → hf-dataset-CKxIJQba.js} +4 -24
  127. package/dist/hf-dataset-CKxIJQba.js.map +1 -0
  128. package/dist/hosted/index.d.ts +2 -2
  129. package/dist/hosted/index.js +2 -2
  130. package/dist/{index-CyszSg4O.d.ts → index-B16FNdW5.d.ts} +145 -360
  131. package/dist/index-B16FNdW5.d.ts.map +1 -0
  132. package/dist/{index-DV-jSzxF.d.ts → index-BLGqZ81N.d.ts} +10 -15
  133. package/dist/{index-DV-jSzxF.d.ts.map → index-BLGqZ81N.d.ts.map} +1 -1
  134. package/dist/{index-BO41eGj5.d.ts → index-CX-GAUpw.d.ts} +3 -7
  135. package/dist/index-CX-GAUpw.d.ts.map +1 -0
  136. package/dist/{index-DHKEAv3s.d.ts → index-CalAsXMR.d.ts} +8 -68
  137. package/dist/index-CalAsXMR.d.ts.map +1 -0
  138. package/dist/{index-BFRO6chs.d.ts → index-CiRwLv2R.d.ts} +5 -69
  139. package/dist/index-CiRwLv2R.d.ts.map +1 -0
  140. package/dist/{index-DPcngtwt.d.ts → index-DbMOXYnP.d.ts} +11 -36
  141. package/dist/index-DbMOXYnP.d.ts.map +1 -0
  142. package/dist/index.d.ts +211 -218
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +999 -1714
  145. package/dist/index.js.map +1 -1
  146. package/dist/{integrity-dLiDe2kD.js → integrity-C8oUeB0g.js} +326 -203
  147. package/dist/integrity-C8oUeB0g.js.map +1 -0
  148. package/dist/{integrity-BXOsAb3i.js → integrity-W4CADcFc.js} +3 -7
  149. package/dist/{integrity-BXOsAb3i.js.map → integrity-W4CADcFc.js.map} +1 -1
  150. package/dist/{integrity-DAMEDFaC.d.ts → integrity-_qgZLA5p.d.ts} +4 -6
  151. package/dist/{integrity-DAMEDFaC.d.ts.map → integrity-_qgZLA5p.d.ts.map} +1 -1
  152. package/dist/{internal-Epl-YBZW.js → internal-BTK91Bqt.js} +3 -3
  153. package/dist/{internal-Epl-YBZW.js.map → internal-BTK91Bqt.js.map} +1 -1
  154. package/dist/{interval-CELpye1n.js → interval-Dq9gt7jx.js} +3 -3
  155. package/dist/{interval-CELpye1n.js.map → interval-Dq9gt7jx.js.map} +1 -1
  156. package/dist/{journal-DfRz9kps.js → journal-C7om8Gum.js} +157 -147
  157. package/dist/journal-C7om8Gum.js.map +1 -0
  158. package/dist/json-BhdsJaOQ.js +111 -0
  159. package/dist/json-BhdsJaOQ.js.map +1 -0
  160. package/dist/{judge-calibration-BpCy5XQl.js → judge-calibration-BkXMIWA4.js} +3 -3
  161. package/dist/{judge-calibration-BpCy5XQl.js.map → judge-calibration-BkXMIWA4.js.map} +1 -1
  162. package/dist/{judge-gate-iY9s4L44.js → judge-gate-Co5tuh57.js} +4 -27
  163. package/dist/{judge-gate-iY9s4L44.js.map → judge-gate-Co5tuh57.js.map} +1 -1
  164. package/dist/{judge-gate-CE7CQAgt.d.ts → judge-gate-DsL0yFcb.d.ts} +8 -9
  165. package/dist/judge-gate-DsL0yFcb.d.ts.map +1 -0
  166. package/dist/{kind-factory-BobI5Jy3.js → kind-factory-Gy4fXixd.js} +88 -17
  167. package/dist/kind-factory-Gy4fXixd.js.map +1 -0
  168. package/dist/ledger-core/index.d.ts +2 -2
  169. package/dist/ledger-core/index.js +4 -4
  170. package/dist/ledger-core/lock-holder.d.ts +2 -0
  171. package/dist/ledger-core/lock-holder.js +181 -0
  172. package/dist/ledger-core/lock-holder.js.map +1 -0
  173. package/dist/{ledger-core-Gq7yp8lP.js → ledger-core-CAxUdDk0.js} +5 -84
  174. package/dist/ledger-core-CAxUdDk0.js.map +1 -0
  175. package/dist/{llm-client-CyBAoYiX.js → llm-client-_Y6ic-tf.js} +243 -355
  176. package/dist/llm-client-_Y6ic-tf.js.map +1 -0
  177. package/dist/{llm-judge-CG12SQJq.js → llm-judge-Djxh-Uhs.js} +662 -482
  178. package/dist/llm-judge-Djxh-Uhs.js.map +1 -0
  179. package/dist/lock-holder-DaJbfpci.d.ts +86 -0
  180. package/dist/lock-holder-DaJbfpci.d.ts.map +1 -0
  181. package/dist/matrix/index.d.ts +3 -3
  182. package/dist/matrix/index.js +3 -2
  183. package/dist/{matrix-Dm0BQW7U.js → matrix-B8l-Nsxd.js} +3 -88
  184. package/dist/matrix-B8l-Nsxd.js.map +1 -0
  185. package/dist/{matrix-DSrSxjjy.d.ts → matrix-CCSBna4q.d.ts} +9 -18
  186. package/dist/matrix-CCSBna4q.d.ts.map +1 -0
  187. package/dist/{mean-DHoMiudD.js → mean-BbA_JCzW.js} +39 -5
  188. package/dist/mean-BbA_JCzW.js.map +1 -0
  189. package/dist/meta-eval/index.d.ts +5 -5
  190. package/dist/meta-eval/index.js +10 -10
  191. package/dist/metrics-BKaPBtIG.js.map +1 -1
  192. package/dist/{mint-DNU8QPG4.d.ts → mint-BRZXuwRi.d.ts} +4 -4
  193. package/dist/{mint-DNU8QPG4.d.ts.map → mint-BRZXuwRi.d.ts.map} +1 -1
  194. package/dist/{mint-QaD5cA0u.js → mint-CbdwjTPW.js} +4 -4
  195. package/dist/{mint-QaD5cA0u.js.map → mint-CbdwjTPW.js.map} +1 -1
  196. package/dist/{multi-layer-verifier-BUaQ4C17.d.ts → multi-layer-verifier-DEgMUk6v.d.ts} +2 -2
  197. package/dist/{multi-layer-verifier-BUaQ4C17.d.ts.map → multi-layer-verifier-DEgMUk6v.d.ts.map} +1 -1
  198. package/dist/{multiplicity-DQUFcbW4.js → multiplicity-Sg0U7h8j.js} +2 -2
  199. package/dist/{multiplicity-DQUFcbW4.js.map → multiplicity-Sg0U7h8j.js.map} +1 -1
  200. package/dist/multishot/golden/index.d.ts +1 -23
  201. package/dist/multishot/golden/index.d.ts.map +1 -1
  202. package/dist/multishot/golden/index.js +3 -3
  203. package/dist/multishot/golden/index.js.map +1 -1
  204. package/dist/multishot/index.d.ts +3 -12
  205. package/dist/multishot/index.d.ts.map +1 -1
  206. package/dist/multishot/index.js +4 -3
  207. package/dist/multishot/index.js.map +1 -1
  208. package/dist/openapi.json +114 -10
  209. package/dist/{otel-spans-B9tUXRHF.js → otel-spans-CdN909k1.js} +3 -3
  210. package/dist/{otel-spans-B9tUXRHF.js.map → otel-spans-CdN909k1.js.map} +1 -1
  211. package/dist/{paired-arms-CwMGJsrS.js → paired-arms-Ct4LTKc1.js} +32 -9
  212. package/dist/paired-arms-Ct4LTKc1.js.map +1 -0
  213. package/dist/{paired-binary-CvpFHfKZ.js → paired-binary-B_nejA44.js} +3 -36
  214. package/dist/paired-binary-B_nejA44.js.map +1 -0
  215. package/dist/{paired-promotion-decision-DPKz8ZnF.d.ts → paired-promotion-decision-CQMJ5xGN.d.ts} +2 -34
  216. package/dist/paired-promotion-decision-CQMJ5xGN.d.ts.map +1 -0
  217. package/dist/{paired-promotion-decision-DsAPYGCm.js → paired-promotion-decision-D0SHb-ZL.js} +3 -3
  218. package/dist/{paired-promotion-decision-DsAPYGCm.js.map → paired-promotion-decision-D0SHb-ZL.js.map} +1 -1
  219. package/dist/{pareto-Cm6ndrWN.js → pareto-CTv8vozZ.js} +11 -11
  220. package/dist/pareto-CTv8vozZ.js.map +1 -0
  221. package/dist/pipelines/index.d.ts +16 -19
  222. package/dist/pipelines/index.d.ts.map +1 -1
  223. package/dist/pipelines/index.js +4 -68
  224. package/dist/pipelines/index.js.map +1 -1
  225. package/dist/{power-and-mde-Hj2ubb4B.js → power-and-mde-N5nU4_Ly.js} +3 -3
  226. package/dist/{power-and-mde-Hj2ubb4B.js.map → power-and-mde-N5nU4_Ly.js.map} +1 -1
  227. package/dist/{prime-protocol-CHKgA3a6.js → prime-protocol-BFgGrEMP.js} +3 -3
  228. package/dist/prime-protocol-BFgGrEMP.js.map +1 -0
  229. package/dist/{prime-protocol-HiB9HX7E.d.ts → prime-protocol-BWG2DQIk.d.ts} +3 -21
  230. package/dist/prime-protocol-BWG2DQIk.d.ts.map +1 -0
  231. package/dist/profile-cell.d.ts +2 -2
  232. package/dist/profile-cell.js +2 -2
  233. package/dist/{promotion-gate-BawrdPYr.d.ts → promotion-gate-CxEHRsZW.d.ts} +7 -8
  234. package/dist/{promotion-gate-BawrdPYr.d.ts.map → promotion-gate-CxEHRsZW.d.ts.map} +1 -1
  235. package/dist/{promotion-policy-KO57gbyV.js → promotion-policy-6A8osGr_.js} +4 -4
  236. package/dist/{promotion-policy-KO57gbyV.js.map → promotion-policy-6A8osGr_.js.map} +1 -1
  237. package/dist/{proposal-findings-CY1xKn_a.js → proposal-findings-n-5WBbEx.js} +3 -3
  238. package/dist/proposal-findings-n-5WBbEx.js.map +1 -0
  239. package/dist/{query-BUCZCK7F.js → query-B_RZ36an.js} +5 -5
  240. package/dist/query-B_RZ36an.js.map +1 -0
  241. package/dist/{query-DK1nWcmp.d.ts → query-Cmv_U8vf.d.ts} +4 -24
  242. package/dist/{query-DK1nWcmp.d.ts.map → query-Cmv_U8vf.d.ts.map} +1 -1
  243. package/dist/{random-ByUSnV9w.js → random-DDDcC7YU.js} +2 -2
  244. package/dist/{random-ByUSnV9w.js.map → random-DDDcC7YU.js.map} +1 -1
  245. package/dist/{raw-provider-sink-DoHz4JNG.js → raw-provider-sink-75w4FWBj.js} +2 -2
  246. package/dist/{raw-provider-sink-DoHz4JNG.js.map → raw-provider-sink-75w4FWBj.js.map} +1 -1
  247. package/dist/{redact-mtCCcT8z.d.ts → redact-DXdlFb_U.d.ts} +2 -3
  248. package/dist/redact-DXdlFb_U.d.ts.map +1 -0
  249. package/dist/{redact-B5xXKqQ3.js → redact-mtkTiJVk.js} +2 -7
  250. package/dist/{redact-B5xXKqQ3.js.map → redact-mtkTiJVk.js.map} +1 -1
  251. package/dist/{registry-D7_hm2fK.d.ts → registry-ssNoHzwD.d.ts} +4 -4
  252. package/dist/{registry-D7_hm2fK.d.ts.map → registry-ssNoHzwD.d.ts.map} +1 -1
  253. package/dist/{release-confidence-CpuP65S5.js → release-confidence-CYIFH-fp.js} +6 -11
  254. package/dist/release-confidence-CYIFH-fp.js.map +1 -0
  255. package/dist/{report-command-SC9nqb4M.js → render-Cs34y0iX.js} +625 -587
  256. package/dist/render-Cs34y0iX.js.map +1 -0
  257. package/dist/reporting.d.ts +6 -6
  258. package/dist/reporting.js +8 -8
  259. package/dist/{researcher-CEcfku-T.d.ts → researcher-GU1tV4dn.d.ts} +9 -9
  260. package/dist/{researcher-CEcfku-T.d.ts.map → researcher-GU1tV4dn.d.ts.map} +1 -1
  261. package/dist/{reward-CpCmAM8L.d.ts → reward-DrZ71vnf.d.ts} +3 -26
  262. package/dist/reward-DrZ71vnf.d.ts.map +1 -0
  263. package/dist/{reward-hacking-E0d-WVcP.js → reward-hacking-ByuETaIb.js} +3 -3
  264. package/dist/{reward-hacking-E0d-WVcP.js.map → reward-hacking-ByuETaIb.js.map} +1 -1
  265. package/dist/{reward-hacking-RVdZ6Kkt.d.ts → reward-hacking-E52wq86n.d.ts} +5 -18
  266. package/dist/reward-hacking-E52wq86n.d.ts.map +1 -0
  267. package/dist/reward-nw2xZGZG.js.map +1 -1
  268. package/dist/rl.d.ts +117 -295
  269. package/dist/rl.d.ts.map +1 -1
  270. package/dist/rl.js +27 -747
  271. package/dist/rl.js.map +1 -1
  272. package/dist/rollout/index.d.ts +5 -5
  273. package/dist/rollout/index.js +7 -8
  274. package/dist/{rollout-DZV1t2Wg.js → rollout-Dd1ucT_M.js} +88 -13
  275. package/dist/rollout-Dd1ucT_M.js.map +1 -0
  276. package/dist/{rubric-predictive-validity-DaFW70y9.js → rubric-predictive-validity-D3_oI72N.js} +3 -3
  277. package/dist/{rubric-predictive-validity-DaFW70y9.js.map → rubric-predictive-validity-D3_oI72N.js.map} +1 -1
  278. package/dist/{rubric-predictive-validity-C03EC7ZE.d.ts → rubric-predictive-validity-DiwT8PbL.d.ts} +2 -2
  279. package/dist/{rubric-predictive-validity-C03EC7ZE.d.ts.map → rubric-predictive-validity-DiwT8PbL.d.ts.map} +1 -1
  280. package/dist/{run-record-C1E24G2A.d.ts → run-record-CaxbLq6Y.d.ts} +4 -10
  281. package/dist/run-record-CaxbLq6Y.d.ts.map +1 -0
  282. package/dist/{run-record-C5e7FjhJ.js → run-record-CysKLB93.js} +3 -3
  283. package/dist/run-record-CysKLB93.js.map +1 -0
  284. package/dist/{run-record-Boc5IUTp.js → run-record-DhEJgoPz.js} +4 -4
  285. package/dist/{run-record-Boc5IUTp.js.map → run-record-DhEJgoPz.js.map} +1 -1
  286. package/dist/sandbox-harness-BlSOu4LX.d.ts.map +1 -1
  287. package/dist/{schema-CSf6qWgZ.js → schema-Bt2vLFm3.js} +2 -14
  288. package/dist/schema-Bt2vLFm3.js.map +1 -0
  289. package/dist/schema-C-ziyJD7.d.ts.map +1 -1
  290. package/dist/{schema-BuiujZ-g.js → schema-CvhfLjtZ.js} +78 -48
  291. package/dist/schema-CvhfLjtZ.js.map +1 -0
  292. package/dist/{schema-2g7trUwH.d.ts → schema-D6EVKzTB.d.ts} +4 -5
  293. package/dist/schema-D6EVKzTB.d.ts.map +1 -0
  294. package/dist/search/index.d.ts +3 -31
  295. package/dist/search/index.d.ts.map +1 -1
  296. package/dist/search/index.js +4 -4
  297. package/dist/{search-kernel-DyNEa6IU.d.ts → search-kernel-p9JB3SmL.d.ts} +10 -27
  298. package/dist/search-kernel-p9JB3SmL.d.ts.map +1 -0
  299. package/dist/{search-ledger-CVUGLDZp.js → search-ledger-ClpN4I3e.js} +7 -7
  300. package/dist/{search-ledger-CVUGLDZp.js.map → search-ledger-ClpN4I3e.js.map} +1 -1
  301. package/dist/{search-ledger-file-DDQUgvCg.js → search-ledger-file-Bd5Tioq6.js} +4 -4
  302. package/dist/search-ledger-file-Bd5Tioq6.js.map +1 -0
  303. package/dist/{search-shipper-BOSD46qv.js → search-shipper-Bg2HW3Uv.js} +4 -4
  304. package/dist/search-shipper-Bg2HW3Uv.js.map +1 -0
  305. package/dist/{search-summary-BQCSWf1g.js → search-summary-CrBuvVnf.js} +5 -5
  306. package/dist/{search-summary-BQCSWf1g.js.map → search-summary-CrBuvVnf.js.map} +1 -1
  307. package/dist/{sequential-CzK5DarL.js → sequential-BVv1sjsw.js} +2 -32
  308. package/dist/{sequential-CzK5DarL.js.map → sequential-BVv1sjsw.js.map} +1 -1
  309. package/dist/{sequential-Bf_pbE50.js → sequential-CimQrbjv.js} +5 -5
  310. package/dist/sequential-CimQrbjv.js.map +1 -0
  311. package/dist/{sequential-BhsrMupG.d.ts → sequential-KwGspfeR.d.ts} +2 -9
  312. package/dist/{sequential-BhsrMupG.d.ts.map → sequential-KwGspfeR.d.ts.map} +1 -1
  313. package/dist/{sequential-eprocess-DM_qENCl.js → sequential-eprocess-DodI6RoF.js} +2 -2
  314. package/dist/{sequential-eprocess-DM_qENCl.js.map → sequential-eprocess-DodI6RoF.js.map} +1 -1
  315. package/dist/{server-e9oWO_bN.js → server-C6M0qR8h.js} +101 -101
  316. package/dist/server-C6M0qR8h.js.map +1 -0
  317. package/dist/{single-run-lock-CV9Eyd_q.js → single-run-lock-Dekd8_Wv.js} +7 -7
  318. package/dist/single-run-lock-Dekd8_Wv.js.map +1 -0
  319. package/dist/{skillopt-optimization-method-BiwA8nfX.js → skillopt-optimization-method-5dlex7MJ.js} +1386 -1184
  320. package/dist/skillopt-optimization-method-5dlex7MJ.js.map +1 -0
  321. package/dist/{spans-BHAUXMGN.d.ts → spans-CVngGij3.d.ts} +2 -2
  322. package/dist/{spans-BHAUXMGN.d.ts.map → spans-CVngGij3.d.ts.map} +1 -1
  323. package/dist/{statistical-heldout-CYpGaoDH.d.ts → statistical-heldout-BHfLZHrm.d.ts} +8 -67
  324. package/dist/statistical-heldout-BHfLZHrm.d.ts.map +1 -0
  325. package/dist/{statistical-heldout-42NlCNDe.js → statistical-heldout-Bksv92Th.js} +3 -3
  326. package/dist/statistical-heldout-Bksv92Th.js.map +1 -0
  327. package/dist/{steps-Bg5-KVx1.d.ts → steps-DlepJPwD.d.ts} +2 -56
  328. package/dist/steps-DlepJPwD.d.ts.map +1 -0
  329. package/dist/{store-C4avFjIi.d.ts → store-B3nWRy3B.d.ts} +2 -2
  330. package/dist/{store-C4avFjIi.d.ts.map → store-B3nWRy3B.d.ts.map} +1 -1
  331. package/dist/{store-otlp-DJ9dtA5x.js → store-otlp-BteDAbHK.js} +3 -3
  332. package/dist/{store-otlp-DJ9dtA5x.js.map → store-otlp-BteDAbHK.js.map} +1 -1
  333. package/dist/{store-tool-spans-CIX5arAG.js → store-tool-spans-D5l_OfTJ.js} +8 -8
  334. package/dist/store-tool-spans-D5l_OfTJ.js.map +1 -0
  335. package/dist/{store-tool-spans-DdCSPa7C.d.ts → store-tool-spans-DZS0HWVf.d.ts} +9 -18
  336. package/dist/store-tool-spans-DZS0HWVf.d.ts.map +1 -0
  337. package/dist/storyboard/index.d.ts +4 -11
  338. package/dist/storyboard/index.d.ts.map +1 -1
  339. package/dist/storyboard/index.js +1 -16
  340. package/dist/storyboard/index.js.map +1 -1
  341. package/dist/{summary-report-V_JACR4Y.js → summary-report-BsXJoYX5.js} +88 -10
  342. package/dist/summary-report-BsXJoYX5.js.map +1 -0
  343. package/dist/{summary-report-bdFDXq0b.d.ts → summary-report-CkbRcSuu.d.ts} +25 -19
  344. package/dist/summary-report-CkbRcSuu.d.ts.map +1 -0
  345. package/dist/supervisor-run/index.d.ts +60 -28
  346. package/dist/supervisor-run/index.d.ts.map +1 -1
  347. package/dist/supervisor-run/index.js +4 -458
  348. package/dist/supervisor-run/index.js.map +1 -1
  349. package/dist/{systemone-BomhHr2c.d.ts → systemone-BMzDJb1i.d.ts} +5 -5
  350. package/dist/{systemone-BomhHr2c.d.ts.map → systemone-BMzDJb1i.d.ts.map} +1 -1
  351. package/dist/systemone-protocol.js +1 -1
  352. package/dist/{systemone-review-CUVcQJu6.d.ts → systemone-review-CwE6JGIp.d.ts} +2 -2
  353. package/dist/{systemone-review-CUVcQJu6.d.ts.map → systemone-review-CwE6JGIp.d.ts.map} +1 -1
  354. package/dist/{systemone-review-D7sXwsqq.js → systemone-review-DzdOJ8I6.js} +3 -3
  355. package/dist/{systemone-review-D7sXwsqq.js.map → systemone-review-DzdOJ8I6.js.map} +1 -1
  356. package/dist/systemone.d.ts +5 -5
  357. package/dist/systemone.js +5 -5
  358. package/dist/systemone.js.map +1 -1
  359. package/dist/{task-failure-attributes-hEmASjix.js → task-failure-attributes-BMsblaDh.js} +3 -3
  360. package/dist/task-failure-attributes-BMsblaDh.js.map +1 -0
  361. package/dist/{terminal-record-DZyQZ3pz.js → terminal-record-D4Rv-j1W.js} +244 -196
  362. package/dist/terminal-record-D4Rv-j1W.js.map +1 -0
  363. package/dist/{tool-groups-C3NEcdCM.d.ts → tool-groups-DyNz2JZ_.d.ts} +3 -3
  364. package/dist/tool-groups-DyNz2JZ_.d.ts.map +1 -0
  365. package/dist/{tool-waste-BKgvd-TP.d.ts → tool-waste-CkjzWmeY.d.ts} +25 -28
  366. package/dist/tool-waste-CkjzWmeY.d.ts.map +1 -0
  367. package/dist/{tool-waste-BlesqTqW.js → tool-waste-DLsjS_p-.js} +5 -5
  368. package/dist/{tool-waste-BlesqTqW.js.map → tool-waste-DLsjS_p-.js.map} +1 -1
  369. package/dist/{trace-questions-CM2CAocU.d.ts → trace-questions-xxwgsuMi.d.ts} +4 -9
  370. package/dist/{trace-questions-CM2CAocU.d.ts.map → trace-questions-xxwgsuMi.d.ts.map} +1 -1
  371. package/dist/trace-repair/index.d.ts +14 -211
  372. package/dist/trace-repair/index.d.ts.map +1 -1
  373. package/dist/trace-repair/index.js +865 -981
  374. package/dist/trace-repair/index.js.map +1 -1
  375. package/dist/traces.d.ts +18 -46
  376. package/dist/traces.d.ts.map +1 -1
  377. package/dist/traces.js +13 -13
  378. package/dist/traces.js.map +1 -1
  379. package/dist/trajectory-replay/index.d.ts +7 -118
  380. package/dist/trajectory-replay/index.d.ts.map +1 -1
  381. package/dist/trajectory-replay/index.js +921 -869
  382. package/dist/trajectory-replay/index.js.map +1 -1
  383. package/dist/{tree-C1XYeXvy.js → tree-B5e1uAeL.js} +132 -21
  384. package/dist/tree-B5e1uAeL.js.map +1 -0
  385. package/dist/{types-Cbe2fWBa.d.ts → types-BKCzzmit.d.ts} +3 -3
  386. package/dist/{types-Cbe2fWBa.d.ts.map → types-BKCzzmit.d.ts.map} +1 -1
  387. package/dist/{types-B3jzCp0p.js → types-BXgASBCL.js} +2 -2
  388. package/dist/{types-B3jzCp0p.js.map → types-BXgASBCL.js.map} +1 -1
  389. package/dist/{types-C1tnkEgM.d.ts → types-CW8ewATZ.d.ts} +4 -113
  390. package/dist/types-CW8ewATZ.d.ts.map +1 -0
  391. package/dist/{types-BqkVmHfv.d.ts → types-CmXY0PQf.d.ts} +2 -4
  392. package/dist/types-CmXY0PQf.d.ts.map +1 -0
  393. package/dist/{types-C02qtnG8.d.ts → types-D-mgRzlh.d.ts} +7 -28
  394. package/dist/types-D-mgRzlh.d.ts.map +1 -0
  395. package/dist/{types-IXD2HJzu.js → types-DqFMNTgK.js} +2 -4
  396. package/dist/types-DqFMNTgK.js.map +1 -0
  397. package/dist/{types-Cq8mSbq8.d.ts → types-DtkO1G9L.d.ts} +7 -9
  398. package/dist/{types-Cq8mSbq8.d.ts.map → types-DtkO1G9L.d.ts.map} +1 -1
  399. package/dist/{verdict-Dl0tiT1X.js → verdict-BGQmxQ8A.js} +3 -3
  400. package/dist/verdict-BGQmxQ8A.js.map +1 -0
  401. package/dist/{verdict-E4eRNf7-.d.ts → verdict-C24NELtN.d.ts} +2 -15
  402. package/dist/{verdict-E4eRNf7-.d.ts.map → verdict-C24NELtN.d.ts.map} +1 -1
  403. package/dist/{verdict-cache-Bm8EKL2s.js → verdict-cache-CL_7tePD.js} +2 -2
  404. package/dist/verdict-cache-CL_7tePD.js.map +1 -0
  405. package/dist/wire/index.d.ts +31 -410
  406. package/dist/wire/index.d.ts.map +1 -1
  407. package/dist/wire/index.js +2 -2
  408. package/docs/changes/jev-evidence-review.md +1 -1
  409. package/docs/changes/jev-product-adoption.md +1 -1
  410. package/docs/changes/jev-recorded-evidence.md +1 -1
  411. package/docs/design/statistics-decisions.md +18 -18
  412. package/docs/design.md +1 -1
  413. package/docs/eval-surface-map.md +1 -0
  414. package/docs/evaluation-integrity.md +1 -1
  415. package/docs/profile-json-identity.md +1 -2
  416. package/docs/proofs/campaign-attempt-retention-20261001/README.md +2 -2
  417. package/docs/public-api.md +158 -538
  418. package/docs/rollout.md +1 -1
  419. package/docs/trace-repair-admission.md +1 -1
  420. package/docs/wire-protocol.md +1 -1
  421. package/package.json +7 -2
  422. package/dist/active-curriculum-B_Lc9kfO.js +0 -61
  423. package/dist/active-curriculum-B_Lc9kfO.js.map +0 -1
  424. package/dist/agent-profile-VFcQncbW.d.ts.map +0 -1
  425. package/dist/agent-profile-cell-BK8mlqlq.js.map +0 -1
  426. package/dist/agent-profile-cell-BNp-Js9F.d.ts.map +0 -1
  427. package/dist/agreement-irr-BEWLIF3_.js.map +0 -1
  428. package/dist/analyze-runs-C84irm4i.js.map +0 -1
  429. package/dist/baseline-Udi_PLuT.js +0 -259
  430. package/dist/baseline-Udi_PLuT.js.map +0 -1
  431. package/dist/benchmark-CXmVVHH2.js +0 -562
  432. package/dist/benchmark-CXmVVHH2.js.map +0 -1
  433. package/dist/benchmark-command-By0vh8q7.js.map +0 -1
  434. package/dist/campaign-BudZ70zo.js.map +0 -1
  435. package/dist/chat-json-call-puMArmtW.js.map +0 -1
  436. package/dist/claude-jsonl-dZir12m6.js +0 -86
  437. package/dist/claude-jsonl-dZir12m6.js.map +0 -1
  438. package/dist/client-BzL9niqi.d.ts.map +0 -1
  439. package/dist/cost-ledger-BP8V4kUQ.js.map +0 -1
  440. package/dist/counterfactual-CPaWN99-.d.ts +0 -60
  441. package/dist/counterfactual-CPaWN99-.d.ts.map +0 -1
  442. package/dist/counterfactual-Dn3veueY.js +0 -98
  443. package/dist/counterfactual-Dn3veueY.js.map +0 -1
  444. package/dist/default-registry-COhk9g36.js.map +0 -1
  445. package/dist/default-registry-DzHiGruW.d.ts.map +0 -1
  446. package/dist/define-agent-eval-CNTPzIkp.js.map +0 -1
  447. package/dist/define-agent-eval-WSck0CZJ.d.ts.map +0 -1
  448. package/dist/dspy-rlm-engine-LRCu61m5.js.map +0 -1
  449. package/dist/effect-sizes-BhzEpXMc.js +0 -82
  450. package/dist/effect-sizes-BhzEpXMc.js.map +0 -1
  451. package/dist/emitter-HcCmFQl_.d.ts.map +0 -1
  452. package/dist/engine-3A_4jOlI.d.ts.map +0 -1
  453. package/dist/equal-terms-BtdXayCJ.js.map +0 -1
  454. package/dist/eval-campaign-90jeaCAI.js +0 -343
  455. package/dist/eval-campaign-90jeaCAI.js.map +0 -1
  456. package/dist/evaluation-6Yoi74gM.d.ts.map +0 -1
  457. package/dist/exporters-X4xwla8A.js.map +0 -1
  458. package/dist/external-optimizer-process-BjMGUuds.js.map +0 -1
  459. package/dist/external-optimizer-subprocess-BqW0hHcI.js.map +0 -1
  460. package/dist/failure-cluster-CbgEDcFJ.d.ts.map +0 -1
  461. package/dist/feedback-trajectory-C4EG0nNH.d.ts.map +0 -1
  462. package/dist/hf-dataset-BR2yhuNn.js.map +0 -1
  463. package/dist/index-BFRO6chs.d.ts.map +0 -1
  464. package/dist/index-BO41eGj5.d.ts.map +0 -1
  465. package/dist/index-CyszSg4O.d.ts.map +0 -1
  466. package/dist/index-DHKEAv3s.d.ts.map +0 -1
  467. package/dist/index-DPcngtwt.d.ts.map +0 -1
  468. package/dist/integrity-dLiDe2kD.js.map +0 -1
  469. package/dist/journal-DfRz9kps.js.map +0 -1
  470. package/dist/judge-gate-CE7CQAgt.d.ts.map +0 -1
  471. package/dist/kind-factory-BobI5Jy3.js.map +0 -1
  472. package/dist/ledger-core-Gq7yp8lP.js.map +0 -1
  473. package/dist/llm-client-CyBAoYiX.js.map +0 -1
  474. package/dist/llm-judge-CG12SQJq.js.map +0 -1
  475. package/dist/matrix-DSrSxjjy.d.ts.map +0 -1
  476. package/dist/matrix-Dm0BQW7U.js.map +0 -1
  477. package/dist/mean-DHoMiudD.js.map +0 -1
  478. package/dist/normal-DsJZtrJc.js +0 -25
  479. package/dist/normal-DsJZtrJc.js.map +0 -1
  480. package/dist/paired-arms-CwMGJsrS.js.map +0 -1
  481. package/dist/paired-binary-CvpFHfKZ.js.map +0 -1
  482. package/dist/paired-promotion-decision-DPKz8ZnF.d.ts.map +0 -1
  483. package/dist/pareto-Cm6ndrWN.js.map +0 -1
  484. package/dist/prime-protocol-CHKgA3a6.js.map +0 -1
  485. package/dist/prime-protocol-HiB9HX7E.d.ts.map +0 -1
  486. package/dist/produced-state-BsDmnwxc.js.map +0 -1
  487. package/dist/proposal-findings-CY1xKn_a.js.map +0 -1
  488. package/dist/query-BUCZCK7F.js.map +0 -1
  489. package/dist/redact-mtCCcT8z.d.ts.map +0 -1
  490. package/dist/release-confidence-CpuP65S5.js.map +0 -1
  491. package/dist/report-command-SC9nqb4M.js.map +0 -1
  492. package/dist/reward-CpCmAM8L.d.ts.map +0 -1
  493. package/dist/reward-hacking-RVdZ6Kkt.d.ts.map +0 -1
  494. package/dist/rollout-DZV1t2Wg.js.map +0 -1
  495. package/dist/run-record-C1E24G2A.d.ts.map +0 -1
  496. package/dist/run-record-C5e7FjhJ.js.map +0 -1
  497. package/dist/schema-2g7trUwH.d.ts.map +0 -1
  498. package/dist/schema-BuiujZ-g.js.map +0 -1
  499. package/dist/schema-CSf6qWgZ.js.map +0 -1
  500. package/dist/search-kernel-DyNEa6IU.d.ts.map +0 -1
  501. package/dist/search-ledger-file-DDQUgvCg.js.map +0 -1
  502. package/dist/search-shipper-BOSD46qv.js.map +0 -1
  503. package/dist/semantic-concept-judge-BQF8te0T.js.map +0 -1
  504. package/dist/sequential-Bf_pbE50.js.map +0 -1
  505. package/dist/server-e9oWO_bN.js.map +0 -1
  506. package/dist/single-run-lock-CV9Eyd_q.js.map +0 -1
  507. package/dist/skillopt-optimization-method-BiwA8nfX.js.map +0 -1
  508. package/dist/statistical-heldout-42NlCNDe.js.map +0 -1
  509. package/dist/statistical-heldout-CYpGaoDH.d.ts.map +0 -1
  510. package/dist/steps-Bg5-KVx1.d.ts.map +0 -1
  511. package/dist/store-tool-spans-CIX5arAG.js.map +0 -1
  512. package/dist/store-tool-spans-DdCSPa7C.d.ts.map +0 -1
  513. package/dist/student-t-DVPW7CdL.js +0 -39
  514. package/dist/student-t-DVPW7CdL.js.map +0 -1
  515. package/dist/summary-report-V_JACR4Y.js.map +0 -1
  516. package/dist/summary-report-bdFDXq0b.d.ts.map +0 -1
  517. package/dist/task-failure-attributes-hEmASjix.js.map +0 -1
  518. package/dist/terminal-record-DZyQZ3pz.js.map +0 -1
  519. package/dist/tool-groups-C3NEcdCM.d.ts.map +0 -1
  520. package/dist/tool-waste-BKgvd-TP.d.ts.map +0 -1
  521. package/dist/trajectory-Y1fmdlw7.d.ts +0 -24
  522. package/dist/trajectory-Y1fmdlw7.d.ts.map +0 -1
  523. package/dist/tree-C1XYeXvy.js.map +0 -1
  524. package/dist/types-BqkVmHfv.d.ts.map +0 -1
  525. package/dist/types-C02qtnG8.d.ts.map +0 -1
  526. package/dist/types-C1tnkEgM.d.ts.map +0 -1
  527. package/dist/types-IXD2HJzu.js.map +0 -1
  528. package/dist/usage-receipt-Cx3xNeyB.js +0 -76
  529. package/dist/usage-receipt-Cx3xNeyB.js.map +0 -1
  530. package/dist/verdict-Dl0tiT1X.js.map +0 -1
  531. package/dist/verdict-cache-Bm8EKL2s.js.map +0 -1
  532. package/docs/design/self-improvement-evidence-audit.md +0 -263
@@ -1,6 +1,7 @@
1
1
  import { c as unscreenedRewardFields } from "./reward-nw2xZGZG.js";
2
- import { f as validateRolloutLine, r as ROLLOUT_SCHEMA, u as isRolloutLine } from "./schema-BuiujZ-g.js";
3
- import { a as nonEmptyString, c as parseSupervisorTree, i as asRecord, m as isUnavailable, o as parseJson, r as readTerminalRecord } from "./terminal-record-DZyQZ3pz.js";
2
+ import { n as isRecord } from "./json-BhdsJaOQ.js";
3
+ import { f as validateRolloutLine, r as ROLLOUT_SCHEMA, u as isRolloutLine } from "./schema-CvhfLjtZ.js";
4
+ import { a as nonEmptyString, c as parseSupervisorTree, i as asRecord, m as isUnavailable, o as parseJsonRecord, r as readTerminalRecord } from "./terminal-record-D4Rv-j1W.js";
4
5
  //#region src/supervisor-run/integrity-issues.ts
5
6
  function evidence(path, value) {
6
7
  return {
@@ -179,7 +180,7 @@ function steerIssues(joined, rootCompleted) {
179
180
  * workers with a terminal event, because a live worker's current turn and session are still
180
181
  * being written. A worker whose store records neither fact is not counted either way.
181
182
  */
182
- function transcriptIssues(source, facts) {
183
+ function transcriptIssues$1(source, facts) {
183
184
  if (source.workers === null) return [];
184
185
  const closed = new Set(facts.closes.map((close) => close.id).filter((id) => id.length > 0));
185
186
  const closedWorkers = source.workers.filter((worker) => worker.workerId !== void 0 && closed.has(worker.workerId));
@@ -438,7 +439,7 @@ function sourceIssues(source, facts, tree) {
438
439
  }));
439
440
  return out;
440
441
  }
441
- out.push(...transcriptIssues(source, facts));
442
+ out.push(...transcriptIssues$1(source, facts));
442
443
  const joined = joinWorkerControls(facts);
443
444
  if (joined.issue !== null) out.push(joined.issue);
444
445
  const rootCompleted = tree.rootId !== null && tree.nodes.filter((node) => node.rollout_id === tree.rootId).length === 1 && tree.nodes.find((node) => node.rollout_id === tree.rootId)?.outcome.is_completed === true;
@@ -447,9 +448,6 @@ function sourceIssues(source, facts, tree) {
447
448
  }
448
449
  //#endregion
449
450
  //#region src/supervisor-run/integrity-tree.ts
450
- function isRecord(value) {
451
- return typeof value === "object" && value !== null && !Array.isArray(value);
452
- }
453
451
  function parentValue(raw) {
454
452
  if (raw.parent_rollout_id === null) return null;
455
453
  return nonEmptyString(raw.parent_rollout_id) ?? void 0;
@@ -506,10 +504,30 @@ function unavailableNodeChecks(record) {
506
504
  if (!isRecord(record.raw.outcome)) checks.push("timing", "terminal-state");
507
505
  return [...new Set(checks)];
508
506
  }
509
- function treeIssues(tree, uncertainty = {}) {
510
- const out = [];
507
+ function buildTreeView(tree, uncertainty) {
511
508
  const records = tree.nodes.map(nodeRecord);
512
509
  const malformedSourceRows = tree.gaps.filter((gap) => gap.code === "source-row-malformed").reduce((count, gap) => count + (gap.count ?? 1), 0);
510
+ const byId = /* @__PURE__ */ new Map();
511
+ for (const record of records) {
512
+ if (record.id === null) continue;
513
+ const matches = byId.get(record.id) ?? [];
514
+ matches.push(record);
515
+ byId.set(record.id, matches);
516
+ }
517
+ const unknownIdentityRows = records.filter((record) => record.id === null).length + Math.max(malformedSourceRows, uncertainty.unknownIdentityRows ?? 0);
518
+ return {
519
+ tree,
520
+ uncertainty,
521
+ records,
522
+ byId,
523
+ unique: records.filter((record) => record.id !== null && byId.get(record.id)?.length === 1),
524
+ unknownIdentityRows
525
+ };
526
+ }
527
+ /** Nodes that fail canonical rollout validation, and the checks that cannot run for them. */
528
+ function schemaIssues(view) {
529
+ const { records } = view;
530
+ const out = [];
513
531
  for (const record of records) {
514
532
  if (record.errors.length === 0) continue;
515
533
  out.push(issue({
@@ -540,13 +558,12 @@ function treeIssues(tree, uncertainty = {}) {
540
558
  }
541
559
  }));
542
560
  }
543
- const byId = /* @__PURE__ */ new Map();
544
- for (const record of records) {
545
- if (record.id === null) continue;
546
- const matches = byId.get(record.id) ?? [];
547
- matches.push(record);
548
- byId.set(record.id, matches);
549
- }
561
+ return out;
562
+ }
563
+ /** Rollout ids claimed by more than one node. */
564
+ function duplicateIdIssues(view) {
565
+ const { byId } = view;
566
+ const out = [];
550
567
  for (const [rolloutId, matches] of byId) {
551
568
  if (matches.length < 2) continue;
552
569
  out.push(issue({
@@ -564,8 +581,12 @@ function treeIssues(tree, uncertainty = {}) {
564
581
  recommendedAction: "Give every invocation one stable rollout id and regenerate the tree."
565
582
  }));
566
583
  }
567
- const unknownIdentityRows = records.filter((record) => record.id === null).length + Math.max(malformedSourceRows, uncertainty.unknownIdentityRows ?? 0);
568
- const unique = records.filter((record) => record.id !== null && byId.get(record.id)?.length === 1);
584
+ return out;
585
+ }
586
+ /** Whether the declared root exists and is unambiguous; returns the root row when it does. */
587
+ function rootIssues(view) {
588
+ const { tree, records, byId, unknownIdentityRows } = view;
589
+ const out = [];
569
590
  let root;
570
591
  if (tree.rootId === null) out.push(issue({
571
592
  code: "root-unavailable",
@@ -609,6 +630,15 @@ function treeIssues(tree, uncertainty = {}) {
609
630
  recommendedAction: "Restore the root rollout row or correct rootId."
610
631
  }));
611
632
  }
633
+ return {
634
+ issues: out,
635
+ root
636
+ };
637
+ }
638
+ /** The root must be parentless and labeled a supervisor. */
639
+ function rootShapeIssues(view, root) {
640
+ const { tree } = view;
641
+ const out = [];
612
642
  if (root !== void 0) {
613
643
  if (root.parent !== void 0 && root.parent !== null) out.push(issue({
614
644
  code: "root-has-parent",
@@ -631,6 +661,12 @@ function treeIssues(tree, uncertainty = {}) {
631
661
  recommendedAction: "Preserve the root invocation role as supervisor when minting rollout rows."
632
662
  }));
633
663
  }
664
+ return out;
665
+ }
666
+ /** Parent-child edges: detached nodes, missing parents, cross-run edges and impossible orderings. */
667
+ function edgeIssues(view) {
668
+ const { tree, uncertainty, byId, unique, unknownIdentityRows } = view;
669
+ const out = [];
634
670
  for (const record of unique) {
635
671
  if (record.parent === void 0) continue;
636
672
  if (record.parent === null) {
@@ -714,6 +750,12 @@ function treeIssues(tree, uncertainty = {}) {
714
750
  recommendedAction: "Correct the causal timestamps or attach the child to its actual spawner."
715
751
  }));
716
752
  }
753
+ return out;
754
+ }
755
+ /** Invocations timestamped as closing before they started. */
756
+ function closeBeforeStartIssues(view) {
757
+ const { unique } = view;
758
+ const out = [];
717
759
  for (const record of unique) {
718
760
  const start = metric(record, ["spawned_at", "started_at"]);
719
761
  const close = metric(record, [
@@ -733,6 +775,12 @@ function treeIssues(tree, uncertainty = {}) {
733
775
  recommendedAction: "Correct the event ordering or retain clock-domain metadata."
734
776
  }));
735
777
  }
778
+ return out;
779
+ }
780
+ /** Parent cycles, each reported once. */
781
+ function parentCycleIssues(view) {
782
+ const { byId, unique } = view;
783
+ const out = [];
736
784
  const emittedCycles = /* @__PURE__ */ new Set();
737
785
  const resolved = /* @__PURE__ */ new Set();
738
786
  for (const start of unique) {
@@ -775,6 +823,12 @@ function treeIssues(tree, uncertainty = {}) {
775
823
  }
776
824
  for (const id of path) resolved.add(id);
777
825
  }
826
+ return out;
827
+ }
828
+ /** A completed run whose children never recorded a terminal outcome. */
829
+ function childTerminalIssues(view, root) {
830
+ const { unique } = view;
831
+ const out = [];
778
832
  if (root?.completed === true) {
779
833
  const missingTerminal = unique.filter((record) => record.id !== root?.id && record.terminal === false);
780
834
  if (missingTerminal.length > 0) out.push(issue({
@@ -792,6 +846,12 @@ function treeIssues(tree, uncertainty = {}) {
792
846
  }
793
847
  }));
794
848
  }
849
+ return out;
850
+ }
851
+ /** Rows with neither inlined messages nor a retained transcript. */
852
+ function transcriptIssues(view) {
853
+ const { records } = view;
854
+ const out = [];
795
855
  const uninlined = records.filter((record) => record.messages?.length === 0);
796
856
  const missingTranscripts = uninlined.filter((record) => record.transcriptRef === null);
797
857
  if (missingTranscripts.length > 0) out.push(issue({
@@ -809,6 +869,12 @@ function treeIssues(tree, uncertainty = {}) {
809
869
  retained_by_reference_count: uninlined.length - missingTranscripts.length
810
870
  }
811
871
  }));
872
+ return out;
873
+ }
874
+ /** Rows without the canonical agent-profile identity. */
875
+ function profileIssues(view) {
876
+ const { records } = view;
877
+ const out = [];
812
878
  const missingProfiles = records.filter((record) => record.profileId === null);
813
879
  if (missingProfiles.length > 0) out.push(issue({
814
880
  code: "profile-id-unavailable",
@@ -826,6 +892,22 @@ function treeIssues(tree, uncertainty = {}) {
826
892
  }));
827
893
  return out;
828
894
  }
895
+ function treeIssues(tree, uncertainty = {}) {
896
+ const view = buildTreeView(tree, uncertainty);
897
+ const { issues: rootProblems, root } = rootIssues(view);
898
+ return [
899
+ ...schemaIssues(view),
900
+ ...duplicateIdIssues(view),
901
+ ...rootProblems,
902
+ ...rootShapeIssues(view, root),
903
+ ...edgeIssues(view),
904
+ ...closeBeforeStartIssues(view),
905
+ ...parentCycleIssues(view),
906
+ ...childTerminalIssues(view, root),
907
+ ...transcriptIssues(view),
908
+ ...profileIssues(view)
909
+ ];
910
+ }
829
911
  //#endregion
830
912
  //#region src/supervisor-run/integrity-types.ts
831
913
  const SUPERVISOR_RUN_INTEGRITY_SCHEMA = "tangle.supervisor-run-integrity@1";
@@ -875,34 +957,16 @@ function hasWorkerId(worker) {
875
957
  function supervisorRunRolloutLines(src, opts = {}) {
876
958
  return supervisorRunRolloutLinesFromFacts(src, parseSupervisorTree(src), opts);
877
959
  }
878
- /** Mint rollout rows from an already parsed source without reading its JSONL again. */
879
- function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
880
- const gaps = [];
881
- if (src.journal === null) {
882
- gaps.push({
883
- code: "journal-unavailable",
884
- message: `${src.supRunDir === null ? "no supervisor run dir" : "journal absent"}; no nodes recoverable`
885
- });
886
- return {
887
- rootId: null,
888
- nodes: [],
889
- gaps
890
- };
891
- }
892
- const malformedSourceRows = tree.journalInvalidRows + tree.spawns.filter((spawn) => !spawn.valid).length;
893
- if (malformedSourceRows > 0) gaps.push({
894
- code: "source-row-malformed",
895
- message: `${malformedSourceRows} of ${tree.journalRows} journal row(s) were unusable and excluded from the tree`,
896
- count: malformedSourceRows
897
- });
960
+ /** What the root and worker rows share: the parsed run record, the row template and the gap collector. */
961
+ function rolloutContext(src, tree, opts, gaps) {
898
962
  const state = tree.state;
899
- const result = parseJson(src.result);
900
- const judge = parseJson(src.judge);
963
+ const result = parseJsonRecord(src.result);
964
+ const judge = parseJsonRecord(src.judge);
901
965
  const stateResult = asRecord(state?.result);
902
966
  const terminal = readTerminalRecord({
903
967
  state,
904
968
  result,
905
- failure: src.failure === void 0 ? void 0 : parseJson(src.failure)
969
+ failure: src.failure === void 0 ? void 0 : parseJsonRecord(src.failure)
906
970
  });
907
971
  const rootId = tree.rootId;
908
972
  const runId = opts.runId ?? rootId ?? src.runRef;
@@ -927,7 +991,6 @@ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
927
991
  messages: [],
928
992
  tool_defs: []
929
993
  };
930
- const nodes = [];
931
994
  const noteCaptureGaps = (owner, nodeId, captures) => {
932
995
  if (captures === null || captures?.length === 0) {
933
996
  gaps.push({
@@ -951,173 +1014,233 @@ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
951
1014
  }
952
1015
  return incomplete ? "workspace capture evidence incomplete" : null;
953
1016
  };
954
- if (rootId !== null) {
955
- const rootSpawn = tree.spawns.find((spawn) => spawn.valid && spawn.id === rootId);
956
- const judgeResolved = typeof judge?.resolved === "boolean" ? judge.resolved : null;
957
- const reward = (typeof judge?.score === "number" ? judge.score : null) ?? (judgeResolved === null ? null : judgeResolved ? 1 : 0);
958
- if (reward === null) gaps.push({
959
- code: "root-reward-unavailable",
960
- message: "no judge verdict for this run",
961
- nodeId: rootId
962
- });
963
- const wallMs = tree.startedAt !== null && tree.completedAt !== null && tree.completedAt >= tree.startedAt ? tree.completedAt - tree.startedAt : null;
964
- const captures = src.rootWorkspaceCaptures;
965
- const captureGap = noteCaptureGaps(`root ${JSON.stringify(rootId)}`, rootId, captures);
966
- nodes.push({
967
- ...base,
968
- rollout_id: rootId,
969
- parent_rollout_id: null,
970
- role: rootSpawn?.role ?? "supervisor",
971
- policy: {
972
- harness: opts.supervisorHarness ?? null,
973
- harness_version: null,
974
- model: opts.supervisorModel ?? null,
975
- provider: null,
976
- profile_commit: null,
977
- agent_profile_cell_id: rootSpawn?.profileDigest ?? null,
978
- sampling: null
979
- },
980
- outcome: {
981
- ...unscreenedRewardFields(reward),
982
- reward_source: src.judgeSource,
983
- verdict: judge ?? null,
984
- metrics: {
985
- arm: src.arm,
986
- sup_status: isUnavailable(terminal.supStatus) ? null : terminal.supStatus,
987
- sup_verdict: typeof state?.verdict === "string" ? state.verdict : null,
988
- delivered: typeof stateResult.delivered === "boolean" ? stateResult.delivered : null,
989
- verify_pass: typeof result?.verify_pass === "boolean" ? result.verify_pass : null,
990
- started_at: tree.startedAt,
991
- completed_at: tree.completedAt,
992
- workers_spawned: tree.workerSpawns.length,
993
- brain_metered_events: tree.brain.meteredCount,
994
- runtime: rootSpawn?.runtime ?? null,
995
- profile_digest: rootSpawn?.profileDigest ?? null
996
- },
997
- is_completed: terminal.completed === true,
998
- is_truncated: false,
999
- error: terminal.completed !== false ? null : !isUnavailable(terminal.supReason) && terminal.supReason !== null ? terminal.supReason : !isUnavailable(terminal.failure) && terminal.failure !== null ? terminal.failure.message ?? terminal.failure.name : null,
1000
- realness_gated: false
1001
- },
1002
- cost: {
1003
- ...EMPTY_COST,
1004
- usd: src.limits.spendUsd !== null ? null : typeof stateResult.spentUsd === "number" ? stateResult.spentUsd : tree.brain.usd,
1005
- tokens_in: src.limits.managerTokens === null ? tree.brain.tokensIn : null,
1006
- tokens_out: src.limits.managerTokens === null ? tree.brain.tokensOut : null,
1007
- cache_read: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheRead : null,
1008
- cache_write: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheWrite : null,
1009
- wall_s: wallMs === null ? null : wallMs / 1e3
1010
- },
1011
- artifacts: {
1012
- patch_path: typeof result?.patchPath === "string" ? result.patchPath : null,
1013
- run_dir: src.supRunDir,
1014
- transcript_ref: src.rootTranscriptRef ?? null
1015
- },
1016
- provenance: {
1017
- captured_at: capturedAt,
1018
- capture: "backfill",
1019
- lossy_projection: true,
1020
- ...captures === void 0 ? {} : { workspace_captures: captures },
1021
- gap: [src.rootTranscriptRef == null ? "supervision journal carries structure and spend, not the brain transcript" : "brain transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
1022
- }
1017
+ return {
1018
+ src,
1019
+ tree,
1020
+ opts,
1021
+ gaps,
1022
+ state,
1023
+ result,
1024
+ judge,
1025
+ stateResult,
1026
+ terminal,
1027
+ rootId,
1028
+ capturedAt,
1029
+ base,
1030
+ noteCaptureGaps
1031
+ };
1032
+ }
1033
+ /** The supervisor invocation row, or nothing when the journal never named a root. */
1034
+ function rootRolloutNode(ctx) {
1035
+ const { src, tree, opts, gaps, state, result, judge, stateResult, terminal, rootId, capturedAt, noteCaptureGaps, base } = ctx;
1036
+ if (rootId === null) {
1037
+ gaps.push({
1038
+ code: "root-spawn-unavailable",
1039
+ message: "no parentless spawned event in the journal"
1023
1040
  });
1024
- } else gaps.push({
1025
- code: "root-spawn-unavailable",
1026
- message: "no parentless spawned event in the journal"
1041
+ return null;
1042
+ }
1043
+ const rootSpawn = tree.spawns.find((spawn) => spawn.valid && spawn.id === rootId);
1044
+ const judgeResolved = typeof judge?.resolved === "boolean" ? judge.resolved : null;
1045
+ const reward = (typeof judge?.score === "number" ? judge.score : null) ?? (judgeResolved === null ? null : judgeResolved ? 1 : 0);
1046
+ if (reward === null) gaps.push({
1047
+ code: "root-reward-unavailable",
1048
+ message: "no judge verdict for this run",
1049
+ nodeId: rootId
1027
1050
  });
1028
- const closeById = new Map(tree.closes.map((c) => [c.id, c]));
1029
- const sourceById = new Map((src.workers ?? []).filter(hasWorkerId).map((worker) => [worker.workerId, worker]));
1030
- const fallbackSourceByLabel = new Map((src.workers ?? []).filter((worker) => worker.workerId === void 0).map((worker) => [worker.label, worker]));
1031
- for (const spawn of tree.workerSpawns) {
1032
- if (spawn.role === null) {
1033
- gaps.push({
1034
- code: "node-role-unavailable",
1035
- message: `child ${JSON.stringify(spawn.label)} has no explicit invocation role`,
1036
- nodeId: spawn.id
1037
- });
1038
- continue;
1051
+ const wallMs = tree.startedAt !== null && tree.completedAt !== null && tree.completedAt >= tree.startedAt ? tree.completedAt - tree.startedAt : null;
1052
+ const captures = src.rootWorkspaceCaptures;
1053
+ const captureGap = noteCaptureGaps(`root ${JSON.stringify(rootId)}`, rootId, captures);
1054
+ return {
1055
+ ...base,
1056
+ rollout_id: rootId,
1057
+ parent_rollout_id: null,
1058
+ role: rootSpawn?.role ?? "supervisor",
1059
+ policy: {
1060
+ harness: opts.supervisorHarness ?? null,
1061
+ harness_version: null,
1062
+ model: opts.supervisorModel ?? null,
1063
+ provider: null,
1064
+ profile_commit: null,
1065
+ agent_profile_cell_id: rootSpawn?.profileDigest ?? null,
1066
+ sampling: null
1067
+ },
1068
+ outcome: {
1069
+ ...unscreenedRewardFields(reward),
1070
+ reward_source: src.judgeSource,
1071
+ verdict: judge ?? null,
1072
+ metrics: {
1073
+ arm: src.arm,
1074
+ sup_status: isUnavailable(terminal.supStatus) ? null : terminal.supStatus,
1075
+ sup_verdict: typeof state?.verdict === "string" ? state.verdict : null,
1076
+ delivered: typeof stateResult.delivered === "boolean" ? stateResult.delivered : null,
1077
+ verify_pass: typeof result?.verify_pass === "boolean" ? result.verify_pass : null,
1078
+ started_at: tree.startedAt,
1079
+ completed_at: tree.completedAt,
1080
+ workers_spawned: tree.workerSpawns.length,
1081
+ brain_metered_events: tree.brain.meteredCount,
1082
+ runtime: rootSpawn?.runtime ?? null,
1083
+ profile_digest: rootSpawn?.profileDigest ?? null
1084
+ },
1085
+ is_completed: terminal.completed === true,
1086
+ is_truncated: false,
1087
+ error: terminal.completed !== false ? null : !isUnavailable(terminal.supReason) && terminal.supReason !== null ? terminal.supReason : !isUnavailable(terminal.failure) && terminal.failure !== null ? terminal.failure.message ?? terminal.failure.name : null,
1088
+ realness_gated: false
1089
+ },
1090
+ cost: {
1091
+ ...EMPTY_COST,
1092
+ usd: src.limits.spendUsd !== null ? null : typeof stateResult.spentUsd === "number" ? stateResult.spentUsd : tree.brain.usd,
1093
+ tokens_in: src.limits.managerTokens === null ? tree.brain.tokensIn : null,
1094
+ tokens_out: src.limits.managerTokens === null ? tree.brain.tokensOut : null,
1095
+ cache_read: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheRead : null,
1096
+ cache_write: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheWrite : null,
1097
+ wall_s: wallMs === null ? null : wallMs / 1e3
1098
+ },
1099
+ artifacts: {
1100
+ patch_path: typeof result?.patchPath === "string" ? result.patchPath : null,
1101
+ run_dir: src.supRunDir,
1102
+ transcript_ref: src.rootTranscriptRef ?? null
1103
+ },
1104
+ provenance: {
1105
+ captured_at: capturedAt,
1106
+ capture: "backfill",
1107
+ lossy_projection: true,
1108
+ ...captures === void 0 ? {} : { workspace_captures: captures },
1109
+ gap: [src.rootTranscriptRef == null ? "supervision journal carries structure and spend, not the brain transcript" : "brain transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
1039
1110
  }
1040
- const close = closeById.get(spawn.id) ?? null;
1041
- const workerSource = sourceById.get(spawn.id) ?? fallbackSourceByLabel.get(spawn.label) ?? null;
1042
- const facts = tree.workerLogs.get(workerSource?.workerId ?? workerSource?.label ?? spawn.label) ?? null;
1043
- const wallMs = facts?.started != null && facts.finishedAt != null ? facts.finishedAt - facts.started : null;
1044
- const score = close?.score ?? facts?.score ?? null;
1045
- const passed = close?.valid ?? facts?.passed ?? null;
1046
- const reward = score ?? (passed === null ? null : passed ? 1 : 0);
1047
- if (reward === null) gaps.push({
1048
- code: "child-reward-unavailable",
1049
- message: `child ${JSON.stringify(spawn.label)} has no verify verdict`,
1111
+ };
1112
+ }
1113
+ /** The journal closes and the reader's worker sources, joined to spawns by stable id first and by label only as a fallback. */
1114
+ function workerLookups(ctx) {
1115
+ const { src, tree } = ctx;
1116
+ return {
1117
+ closeById: new Map(tree.closes.map((c) => [c.id, c])),
1118
+ sourceById: new Map((src.workers ?? []).filter(hasWorkerId).map((worker) => [worker.workerId, worker])),
1119
+ fallbackSourceByLabel: new Map((src.workers ?? []).filter((worker) => worker.workerId === void 0).map((worker) => [worker.label, worker]))
1120
+ };
1121
+ }
1122
+ /** One worker row, or nothing when its spawn has no explicit role. */
1123
+ function workerRolloutNode(ctx, lookups, spawn) {
1124
+ const { src, tree, opts, gaps, capturedAt, noteCaptureGaps, base } = ctx;
1125
+ const { closeById, sourceById, fallbackSourceByLabel } = lookups;
1126
+ if (spawn.role === null) {
1127
+ gaps.push({
1128
+ code: "node-role-unavailable",
1129
+ message: `child ${JSON.stringify(spawn.label)} has no explicit invocation role`,
1050
1130
  nodeId: spawn.id
1051
1131
  });
1052
- const isSupervisor = spawn.role === "supervisor";
1053
- const captures = workerSource?.workspaceCaptures;
1054
- const captureGap = noteCaptureGaps(`child ${JSON.stringify(spawn.label)}`, spawn.id, captures);
1055
- nodes.push({
1056
- ...base,
1057
- rollout_id: spawn.id,
1058
- parent_rollout_id: spawn.parent,
1059
- role: spawn.role,
1060
- policy: {
1061
- harness: isSupervisor ? opts.supervisorHarness ?? null : opts.workerHarness ?? null,
1062
- harness_version: null,
1063
- model: isSupervisor ? opts.supervisorModel ?? null : opts.workerModel ?? null,
1064
- provider: null,
1065
- profile_commit: null,
1066
- agent_profile_cell_id: spawn.profileDigest,
1067
- sampling: null
1068
- },
1069
- outcome: {
1070
- ...unscreenedRewardFields(reward),
1071
- reward_source: reward === null ? null : score === null ? "worker-self-verify" : "worker-verdict-score",
1072
- verdict: close === null ? null : {
1073
- kind: close.kind,
1074
- status: close.status,
1075
- verdict: close.rawVerdict,
1076
- valid: close.valid,
1077
- score: close.score
1078
- },
1079
- metrics: {
1080
- label: spawn.label,
1081
- spawned_at: spawn.at,
1082
- settled_at: close?.at ?? null,
1083
- started_at: facts?.started ?? null,
1084
- finished_at: facts?.finishedAt ?? null,
1085
- wall_ms: wallMs,
1086
- patch_bytes: workerSource?.patchBytes ?? facts?.finishedPatchBytes ?? null,
1087
- evidence_bytes: facts?.evidenceBytes ?? null,
1088
- steers_queued: facts?.steersQueued ?? null,
1089
- steers_delivered: facts?.steersDelivered ?? null,
1090
- questions: facts?.questions ?? null,
1091
- runtime: spawn.runtime,
1092
- profile_digest: spawn.profileDigest
1093
- },
1094
- is_completed: close?.kind === "settled" && close.status === "done",
1095
- is_truncated: close?.kind === "cancelled",
1096
- error: close?.kind === "cancelled" ? close.reason ?? "cancelled" : close?.status === "down" ? close.reason ?? "child down" : null,
1097
- realness_gated: false
1098
- },
1099
- cost: {
1100
- ...EMPTY_COST,
1101
- usd: src.limits.spendUsd !== null || !close?.hasSpend ? null : close.spend.usd,
1102
- tokens_in: workerSource?.tokensIn ?? (close?.hasSpend ? close.spend.tokens.input : null),
1103
- tokens_out: workerSource?.tokensOut ?? (close?.hasSpend ? close.spend.tokens.output : null),
1104
- cache_read: workerSource?.cacheRead ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheRead : null),
1105
- cache_write: workerSource?.cacheWrite ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheWrite : null),
1106
- wall_s: wallMs === null ? null : wallMs / 1e3
1132
+ return null;
1133
+ }
1134
+ const close = closeById.get(spawn.id) ?? null;
1135
+ const workerSource = sourceById.get(spawn.id) ?? fallbackSourceByLabel.get(spawn.label) ?? null;
1136
+ const facts = tree.workerLogs.get(workerSource?.workerId ?? workerSource?.label ?? spawn.label) ?? null;
1137
+ const wallMs = facts?.started != null && facts.finishedAt != null ? facts.finishedAt - facts.started : null;
1138
+ const score = close?.score ?? facts?.score ?? null;
1139
+ const passed = close?.valid ?? facts?.passed ?? null;
1140
+ const reward = score ?? (passed === null ? null : passed ? 1 : 0);
1141
+ if (reward === null) gaps.push({
1142
+ code: "child-reward-unavailable",
1143
+ message: `child ${JSON.stringify(spawn.label)} has no verify verdict`,
1144
+ nodeId: spawn.id
1145
+ });
1146
+ const isSupervisor = spawn.role === "supervisor";
1147
+ const captures = workerSource?.workspaceCaptures;
1148
+ const captureGap = noteCaptureGaps(`child ${JSON.stringify(spawn.label)}`, spawn.id, captures);
1149
+ return {
1150
+ ...base,
1151
+ rollout_id: spawn.id,
1152
+ parent_rollout_id: spawn.parent,
1153
+ role: spawn.role,
1154
+ policy: {
1155
+ harness: isSupervisor ? opts.supervisorHarness ?? null : opts.workerHarness ?? null,
1156
+ harness_version: null,
1157
+ model: isSupervisor ? opts.supervisorModel ?? null : opts.workerModel ?? null,
1158
+ provider: null,
1159
+ profile_commit: null,
1160
+ agent_profile_cell_id: spawn.profileDigest,
1161
+ sampling: null
1162
+ },
1163
+ outcome: {
1164
+ ...unscreenedRewardFields(reward),
1165
+ reward_source: reward === null ? null : score === null ? "worker-self-verify" : "worker-verdict-score",
1166
+ verdict: close === null ? null : {
1167
+ kind: close.kind,
1168
+ status: close.status,
1169
+ verdict: close.rawVerdict,
1170
+ valid: close.valid,
1171
+ score: close.score
1107
1172
  },
1108
- artifacts: {
1109
- patch_path: workerSource?.patchPath ?? null,
1110
- run_dir: src.supRunDir,
1111
- transcript_ref: workerSource?.transcriptRef ?? null
1173
+ metrics: {
1174
+ label: spawn.label,
1175
+ spawned_at: spawn.at,
1176
+ settled_at: close?.at ?? null,
1177
+ started_at: facts?.started ?? null,
1178
+ finished_at: facts?.finishedAt ?? null,
1179
+ wall_ms: wallMs,
1180
+ patch_bytes: workerSource?.patchBytes ?? facts?.finishedPatchBytes ?? null,
1181
+ evidence_bytes: facts?.evidenceBytes ?? null,
1182
+ steers_queued: facts?.steersQueued ?? null,
1183
+ steers_delivered: facts?.steersDelivered ?? null,
1184
+ questions: facts?.questions ?? null,
1185
+ runtime: spawn.runtime,
1186
+ profile_digest: spawn.profileDigest
1112
1187
  },
1113
- provenance: {
1114
- captured_at: capturedAt,
1115
- capture: "backfill",
1116
- lossy_projection: true,
1117
- ...captures === void 0 ? {} : { workspace_captures: captures },
1118
- gap: [workerSource?.transcriptRef == null ? "no worker transcript was retained; messages unavailable" : "worker transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
1119
- }
1188
+ is_completed: close?.kind === "settled" && close.status === "done",
1189
+ is_truncated: close?.kind === "cancelled",
1190
+ error: close?.kind === "cancelled" ? close.reason ?? "cancelled" : close?.status === "down" ? close.reason ?? "child down" : null,
1191
+ realness_gated: false
1192
+ },
1193
+ cost: {
1194
+ ...EMPTY_COST,
1195
+ usd: src.limits.spendUsd !== null || !close?.hasSpend ? null : close.spend.usd,
1196
+ tokens_in: workerSource?.tokensIn ?? (close?.hasSpend ? close.spend.tokens.input : null),
1197
+ tokens_out: workerSource?.tokensOut ?? (close?.hasSpend ? close.spend.tokens.output : null),
1198
+ cache_read: workerSource?.cacheRead ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheRead : null),
1199
+ cache_write: workerSource?.cacheWrite ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheWrite : null),
1200
+ wall_s: wallMs === null ? null : wallMs / 1e3
1201
+ },
1202
+ artifacts: {
1203
+ patch_path: workerSource?.patchPath ?? null,
1204
+ run_dir: src.supRunDir,
1205
+ transcript_ref: workerSource?.transcriptRef ?? null
1206
+ },
1207
+ provenance: {
1208
+ captured_at: capturedAt,
1209
+ capture: "backfill",
1210
+ lossy_projection: true,
1211
+ ...captures === void 0 ? {} : { workspace_captures: captures },
1212
+ gap: [workerSource?.transcriptRef == null ? "no worker transcript was retained; messages unavailable" : "worker transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
1213
+ }
1214
+ };
1215
+ }
1216
+ /** Mint rollout rows from an already parsed source without reading its JSONL again. */
1217
+ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
1218
+ const gaps = [];
1219
+ if (src.journal === null) {
1220
+ gaps.push({
1221
+ code: "journal-unavailable",
1222
+ message: `${src.supRunDir === null ? "no supervisor run dir" : "journal absent"}; no nodes recoverable`
1120
1223
  });
1224
+ return {
1225
+ rootId: null,
1226
+ nodes: [],
1227
+ gaps
1228
+ };
1229
+ }
1230
+ const malformedSourceRows = tree.journalInvalidRows + tree.spawns.filter((spawn) => !spawn.valid).length;
1231
+ if (malformedSourceRows > 0) gaps.push({
1232
+ code: "source-row-malformed",
1233
+ message: `${malformedSourceRows} of ${tree.journalRows} journal row(s) were unusable and excluded from the tree`,
1234
+ count: malformedSourceRows
1235
+ });
1236
+ const ctx = rolloutContext(src, tree, opts, gaps);
1237
+ const nodes = [];
1238
+ const root = rootRolloutNode(ctx);
1239
+ if (root) nodes.push(root);
1240
+ const lookups = workerLookups(ctx);
1241
+ for (const spawn of tree.workerSpawns) {
1242
+ const node = workerRolloutNode(ctx, lookups, spawn);
1243
+ if (node) nodes.push(node);
1121
1244
  }
1122
1245
  const invalid = nodes.filter((n) => !isRolloutLine(n));
1123
1246
  if (invalid.length > 0) gaps.push({
@@ -1126,7 +1249,7 @@ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
1126
1249
  count: invalid.length
1127
1250
  });
1128
1251
  return {
1129
- rootId,
1252
+ rootId: tree.rootId,
1130
1253
  nodes,
1131
1254
  gaps
1132
1255
  };
@@ -1190,4 +1313,4 @@ function analyzeSupervisorRunIntegrity(input, options = {}) {
1190
1313
  //#endregion
1191
1314
  export { supervisorRunRolloutLines as n, SUPERVISOR_RUN_INTEGRITY_SCHEMA as r, analyzeSupervisorRunIntegrity as t };
1192
1315
 
1193
- //# sourceMappingURL=integrity-dLiDe2kD.js.map
1316
+ //# sourceMappingURL=integrity-C8oUeB0g.js.map