reeval 0.7.0 → 0.9.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 (233) hide show
  1. package/README.md +12 -12
  2. package/dist/{agent-Dhd5FJCZ.js → agent-6FefIhX7.js} +6 -6
  3. package/dist/{agent-Dhd5FJCZ.js.map → agent-6FefIhX7.js.map} +1 -1
  4. package/dist/{agent-gjBiZis8.js → agent-WSmTaesf.js} +52 -17
  5. package/dist/agent-WSmTaesf.js.map +1 -0
  6. package/dist/{analysis-BV3TCznv.js → analysis-DlGBDjTj.js} +4 -4
  7. package/dist/{analysis-BV3TCznv.js.map → analysis-DlGBDjTj.js.map} +1 -1
  8. package/dist/{assemble-Dd_mZYnu.js → assemble-BCZzTyR7.js} +259 -18
  9. package/dist/assemble-BCZzTyR7.js.map +1 -0
  10. package/dist/assemble-C5qq5yT2.js +2 -0
  11. package/dist/capture-Bp74Z6Fr.js +1257 -0
  12. package/dist/capture-Bp74Z6Fr.js.map +1 -0
  13. package/dist/capture-DS-cPyuE.js +2 -0
  14. package/dist/{cli-r9CDqoFL.js → cli-CVrMh_qz.js} +210 -112
  15. package/dist/cli-CVrMh_qz.js.map +1 -0
  16. package/dist/{cli-spec-DOyxAMc2.js → cli-spec-CKEYa8V2.js} +6 -5
  17. package/dist/cli-spec-CKEYa8V2.js.map +1 -0
  18. package/dist/cli.js +2 -2
  19. package/dist/{client-LsfDiD-X.js → client-Bbo9SPlK.js} +31 -201
  20. package/dist/client-Bbo9SPlK.js.map +1 -0
  21. package/dist/{command-l4ZFCeMh.js → command-BFP0hKEb.js} +7 -7
  22. package/dist/{command-l4ZFCeMh.js.map → command-BFP0hKEb.js.map} +1 -1
  23. package/dist/command-BrmXUC-W.js +2 -0
  24. package/dist/{command-DMR69l5G.js → command-C5xFPKHM.js} +21 -20
  25. package/dist/command-C5xFPKHM.js.map +1 -0
  26. package/dist/{command-Cej2t3y-.js → command-CzIFp1JQ.js} +10 -10
  27. package/dist/{command-Cej2t3y-.js.map → command-CzIFp1JQ.js.map} +1 -1
  28. package/dist/{command-D6r2pwO5.js → command-DUT5l13I.js} +221 -54
  29. package/dist/command-DUT5l13I.js.map +1 -0
  30. package/dist/{commands-BA_NCh2h.js → commands-CLmPBrTS.js} +6 -6
  31. package/dist/{commands-BA_NCh2h.js.map → commands-CLmPBrTS.js.map} +1 -1
  32. package/dist/{commands-DgOUkcSO.js → commands-fI3G2Wnh.js} +1 -1
  33. package/dist/{config-DuQDCx0B.js → config-CGvBeewH.js} +18 -8
  34. package/dist/config-CGvBeewH.js.map +1 -0
  35. package/dist/{context-CvUv7DUb.js → context-DbSMEVKs.js} +1 -5
  36. package/dist/{context-CvUv7DUb.js.map → context-DbSMEVKs.js.map} +1 -1
  37. package/dist/{db-o_osRkqr.js → db-CSSFtGcN.js} +1 -1
  38. package/dist/{db-CjX7JF4o.js → db-CfQFwJtq.js} +209 -40
  39. package/dist/db-CfQFwJtq.js.map +1 -0
  40. package/dist/{docker-DaUaG4XZ.js → docker-CRQGQbIt.js} +17 -5
  41. package/dist/docker-CRQGQbIt.js.map +1 -0
  42. package/dist/{docker-ZaYeKE2w.js → docker-DV2GNgle.js} +2 -2
  43. package/dist/{docker-ZaYeKE2w.js.map → docker-DV2GNgle.js.map} +1 -1
  44. package/dist/{docker-Dnya8eo9.js → docker-Df_YOxxB.js} +1 -1
  45. package/dist/{doctor-Bk6aJeec.js → doctor-DlKycx5H.js} +13 -13
  46. package/dist/{doctor-Bk6aJeec.js.map → doctor-DlKycx5H.js.map} +1 -1
  47. package/dist/{egress-BKbyriEa.js → egress-BhzNh7Yi.js} +18 -10
  48. package/dist/egress-BhzNh7Yi.js.map +1 -0
  49. package/dist/{environment-DiCljXMD.js → environment-1jE-HhO-.js} +2 -2
  50. package/dist/{environment-DiCljXMD.js.map → environment-1jE-HhO-.js.map} +1 -1
  51. package/dist/fake-instructions-CUI33I_F.js +32 -0
  52. package/dist/fake-instructions-CUI33I_F.js.map +1 -0
  53. package/dist/family-D2b7WD10.js +67 -0
  54. package/dist/family-D2b7WD10.js.map +1 -0
  55. package/dist/files-AiEKuEZe.js +2 -0
  56. package/dist/files-BMCvfB4X.js +2 -0
  57. package/dist/{files-TNrZJQ3Y.js → files-CSzVADHn.js} +5 -5
  58. package/dist/{files-TNrZJQ3Y.js.map → files-CSzVADHn.js.map} +1 -1
  59. package/dist/{files-BSMSnQMa.js → files-DJUFg-4e.js} +3 -3
  60. package/dist/{files-BSMSnQMa.js.map → files-DJUFg-4e.js.map} +1 -1
  61. package/dist/{git-DNGtrOg9.js → git-DfG-YJ1u.js} +2 -2
  62. package/dist/{git-DNGtrOg9.js.map → git-DfG-YJ1u.js.map} +1 -1
  63. package/dist/{harness-CDRaaGvR.js → harness-CeCp2GSW.js} +52 -12
  64. package/dist/harness-CeCp2GSW.js.map +1 -0
  65. package/dist/harness.d.ts +26 -13
  66. package/dist/harness.js +1 -1
  67. package/dist/{header-BZF8Xss1.js → header-CALhmafp.js} +10 -3
  68. package/dist/{header-BZF8Xss1.js.map → header-CALhmafp.js.map} +1 -1
  69. package/dist/{images-BpwFDT1E.js → images-BMgdpMAX.js} +6 -6
  70. package/dist/{images-BpwFDT1E.js.map → images-BMgdpMAX.js.map} +1 -1
  71. package/dist/index.d.ts +17 -5
  72. package/dist/index.js +165 -67
  73. package/dist/index.js.map +1 -1
  74. package/dist/init-B6vegaP_.js +2 -0
  75. package/dist/{init-CBWt1rZT.js → init-BIdLF0F9.js} +4 -4
  76. package/dist/{init-CBWt1rZT.js.map → init-BIdLF0F9.js.map} +1 -1
  77. package/dist/{invocations-DArYWyXN.js → invocations-CLaL8AuW.js} +3 -3
  78. package/dist/{invocations-DArYWyXN.js.map → invocations-CLaL8AuW.js.map} +1 -1
  79. package/dist/{judge-7WjNdU9z.js → judge-CeYPN8P_.js} +2 -2
  80. package/dist/{judge-7WjNdU9z.js.map → judge-CeYPN8P_.js.map} +1 -1
  81. package/dist/judge.d.ts +5 -4
  82. package/dist/judge.js +4 -3
  83. package/dist/judge.js.map +1 -1
  84. package/dist/{live-DZkCtmNP.js → live-S0qODb6o.js} +2 -2
  85. package/dist/{live-DZkCtmNP.js.map → live-S0qODb6o.js.map} +1 -1
  86. package/dist/{model-Cp6NoAT3.js → model-B1BZoZ9b.js} +9 -8
  87. package/dist/model-B1BZoZ9b.js.map +1 -0
  88. package/dist/{model-DyQbu7KF.js → model-BOnlAPzs.js} +288 -38
  89. package/dist/model-BOnlAPzs.js.map +1 -0
  90. package/dist/{model-Bv8uUZ07.js → model-DEQo3FkZ.js} +6 -6
  91. package/dist/model-DEQo3FkZ.js.map +1 -0
  92. package/dist/model-DWeg5J7z.js +2 -0
  93. package/dist/{model-BeoRxCcJ.js → model-FXko2kl7.js} +1 -1
  94. package/dist/{options-Ge_x32XE.js → options-CKqyPGxX.js} +161 -34
  95. package/dist/options-CKqyPGxX.js.map +1 -0
  96. package/dist/pairs-DDsjgm5F.js +149 -0
  97. package/dist/pairs-DDsjgm5F.js.map +1 -0
  98. package/dist/{patch-CGCVipPu.js → patch-bDV8YFW0.js} +2 -2
  99. package/dist/{patch-CGCVipPu.js.map → patch-bDV8YFW0.js.map} +1 -1
  100. package/dist/{plan-BqBadHYj.js → plan-DUydFc_1.js} +69 -31
  101. package/dist/plan-DUydFc_1.js.map +1 -0
  102. package/dist/{preflight-CyaAZE9r.js → preflight-BkoSxf4C.js} +3 -3
  103. package/dist/{preflight-CyaAZE9r.js.map → preflight-BkoSxf4C.js.map} +1 -1
  104. package/dist/{preflight-CFtZNTLt.js → preflight-D5LW7Oqi.js} +1 -1
  105. package/dist/{prepare-Zr1xOMUX.js → prepare-CUAWHebF.js} +5 -5
  106. package/dist/{prepare-Zr1xOMUX.js.map → prepare-CUAWHebF.js.map} +1 -1
  107. package/dist/{prepare-Dl7-t3fO.js → prepare-oji2oO8W.js} +2 -2
  108. package/dist/process-CSVO_jsc.js +119 -0
  109. package/dist/process-CSVO_jsc.js.map +1 -0
  110. package/dist/{provenance-Byl2T6LJ.js → provenance-D7HK3vzt.js} +2 -2
  111. package/dist/{provenance-Byl2T6LJ.js.map → provenance-D7HK3vzt.js.map} +1 -1
  112. package/dist/{providers-Cflw7Ks-.js → providers-B1DzMvmH.js} +3 -3
  113. package/dist/{providers-Cflw7Ks-.js.map → providers-B1DzMvmH.js.map} +1 -1
  114. package/dist/{providers-SBMExI53.js → providers-CpEfNU1F.js} +1 -1
  115. package/dist/{query-DUSLlic0.js → query-BjBMLa-C.js} +2 -2
  116. package/dist/{query-DUSLlic0.js.map → query-BjBMLa-C.js.map} +1 -1
  117. package/dist/query-oPO_XrTy.js +2 -0
  118. package/dist/{questions-ZdT3JDyQ.js → questions-B8by4Bbt.js} +28 -119
  119. package/dist/questions-B8by4Bbt.js.map +1 -0
  120. package/dist/{record-CbuQH4l1.js → record-BRP9vZrj.js} +21 -1
  121. package/dist/record-BRP9vZrj.js.map +1 -0
  122. package/dist/{results-owJR-NFm.js → results-Di7m8dQ3.js} +4 -4
  123. package/dist/{results-owJR-NFm.js.map → results-Di7m8dQ3.js.map} +1 -1
  124. package/dist/{resume-BL4Yw7Ld.js → resume-SUz1GskV.js} +4 -4
  125. package/dist/{resume-BL4Yw7Ld.js.map → resume-SUz1GskV.js.map} +1 -1
  126. package/dist/runtime-DdsfnRz_.js +344 -0
  127. package/dist/runtime-DdsfnRz_.js.map +1 -0
  128. package/dist/{sandbox--ZXuscAZ.js → sandbox-D5v-of6d.js} +10 -5
  129. package/dist/sandbox-D5v-of6d.js.map +1 -0
  130. package/dist/sandbox.d.ts +4 -3
  131. package/dist/sandbox.js +1 -1
  132. package/dist/{server-yFVUxAm0.js → server-BNnXtmS8.js} +9 -9
  133. package/dist/{server-yFVUxAm0.js.map → server-BNnXtmS8.js.map} +1 -1
  134. package/dist/server-BNwoKzlm.js +2 -0
  135. package/dist/source-Bk_0ZaEY.js +2 -0
  136. package/dist/{source-M3gS517R.js → source-Dof0NQBm.js} +2 -2
  137. package/dist/{source-M3gS517R.js.map → source-Dof0NQBm.js.map} +1 -1
  138. package/dist/{src-79JhW-zG.js → src-8rRXy4u9.js} +71 -124
  139. package/dist/src-8rRXy4u9.js.map +1 -0
  140. package/dist/src-BGWuWp6I.js +3 -0
  141. package/dist/src-BRt0O02i.js +3 -0
  142. package/dist/src-Bx2x1ekD.js +3 -0
  143. package/dist/{src-s-VffoYK.js → src-C1E9HDWO.js} +5 -3
  144. package/dist/{src-s-VffoYK.js.map → src-C1E9HDWO.js.map} +1 -1
  145. package/dist/{src-IOr1rhEg.js → src-COgE7991.js} +10 -8
  146. package/dist/{src-IOr1rhEg.js.map → src-COgE7991.js.map} +1 -1
  147. package/dist/{src-CokPbYCb.js → src-C_4Umgh2.js} +23 -14
  148. package/dist/{src-CokPbYCb.js.map → src-C_4Umgh2.js.map} +1 -1
  149. package/dist/{src-DxFJrMUA.js → src-D95O-Smv.js} +12 -7
  150. package/dist/{src-DxFJrMUA.js.map → src-D95O-Smv.js.map} +1 -1
  151. package/dist/{src-DTcalvuF.js → src-DDNXsD9H.js} +28 -4
  152. package/dist/{src-DTcalvuF.js.map → src-DDNXsD9H.js.map} +1 -1
  153. package/dist/src-DLa-ESW0.js +4 -0
  154. package/dist/{src-DSE0FWaU.js → src-DVy58-zZ.js} +2 -2
  155. package/dist/{src-DSE0FWaU.js.map → src-DVy58-zZ.js.map} +1 -1
  156. package/dist/src-cN0aB-WR.js +3 -0
  157. package/dist/{src-DH0jhpoi.js → src-cdIVjC5b.js} +1 -1
  158. package/dist/src-sIsDHWYq.js +3 -0
  159. package/dist/state-Bo5zg4da.js +2 -0
  160. package/dist/{state-DEj_utaE.js → state-CiXyLqg0.js} +10 -10
  161. package/dist/{state-DEj_utaE.js.map → state-CiXyLqg0.js.map} +1 -1
  162. package/dist/studio-app/assets/index-B9MCTfuu.css +2 -0
  163. package/dist/studio-app/assets/{index-Bbl0oTxu.js → index-CROH2NB3.js} +12 -12
  164. package/dist/studio-app/index.html +2 -2
  165. package/dist/{summary-D012KlUM.js → summary-2OAWF2N7.js} +7 -7
  166. package/dist/{summary-D012KlUM.js.map → summary-2OAWF2N7.js.map} +1 -1
  167. package/dist/{summary--FBuB_sr.js → summary-BTksrIxn.js} +63 -5
  168. package/dist/summary-BTksrIxn.js.map +1 -0
  169. package/dist/testing.d.ts +14 -0
  170. package/dist/testing.js +2 -0
  171. package/dist/{tools-CJHw-zCo.js → tools-B10Uj7OI.js} +4 -4
  172. package/dist/tools-B10Uj7OI.js.map +1 -0
  173. package/dist/types-C5vI3g1C.js.map +1 -1
  174. package/dist/{types-BsRSknLe.d.ts → types-D8RLfkFP.d.ts} +453 -42
  175. package/dist/{usage-DsYUqIUM.js → usage-DDF_6tkV.js} +4 -2
  176. package/dist/{usage-DsYUqIUM.js.map → usage-DDF_6tkV.js.map} +1 -1
  177. package/dist/view/index.d.ts +60 -15
  178. package/dist/view/index.js +7 -6
  179. package/dist/views-Cs2Oqayd.js +3 -0
  180. package/dist/{views-jhL9Jb8A.js → views-Dqa5ojfZ.js} +4 -4
  181. package/dist/{views-jhL9Jb8A.js.map → views-Dqa5ojfZ.js.map} +1 -1
  182. package/dist/{worker-entry-OwnsrUdr.js → worker-entry-BAikHl9F.js} +9 -4
  183. package/dist/worker-entry-BAikHl9F.js.map +1 -0
  184. package/dist/{workspace-C4_J0pqb.js → workspace-C-TrNIUc.js} +4 -4
  185. package/dist/{workspace-C4_J0pqb.js.map → workspace-C-TrNIUc.js.map} +1 -1
  186. package/dist/{workspace-wudSz_W-.js → workspace-Do_SiWBs.js} +1 -1
  187. package/docker/Dockerfile +7 -5
  188. package/package.json +9 -4
  189. package/dist/agent-gjBiZis8.js.map +0 -1
  190. package/dist/assemble-D8sZ4Jiv.js +0 -2
  191. package/dist/assemble-Dd_mZYnu.js.map +0 -1
  192. package/dist/capture-CisAmy-G.js +0 -587
  193. package/dist/capture-CisAmy-G.js.map +0 -1
  194. package/dist/capture-DquyqAHC.js +0 -2
  195. package/dist/cli-r9CDqoFL.js.map +0 -1
  196. package/dist/cli-spec-DOyxAMc2.js.map +0 -1
  197. package/dist/client-LsfDiD-X.js.map +0 -1
  198. package/dist/command-Cxfgghqo.js +0 -2
  199. package/dist/command-D6r2pwO5.js.map +0 -1
  200. package/dist/command-DMR69l5G.js.map +0 -1
  201. package/dist/config-DuQDCx0B.js.map +0 -1
  202. package/dist/db-CjX7JF4o.js.map +0 -1
  203. package/dist/docker-DaUaG4XZ.js.map +0 -1
  204. package/dist/egress-BKbyriEa.js.map +0 -1
  205. package/dist/files-DmZGPsWK.js +0 -2
  206. package/dist/files-Tb8wY0Ze.js +0 -2
  207. package/dist/harness-CDRaaGvR.js.map +0 -1
  208. package/dist/init-1THeGfut.js +0 -2
  209. package/dist/model-Bv8uUZ07.js.map +0 -1
  210. package/dist/model-Cp6NoAT3.js.map +0 -1
  211. package/dist/model-D_pF3Vcl.js +0 -2
  212. package/dist/model-DyQbu7KF.js.map +0 -1
  213. package/dist/options-Ge_x32XE.js.map +0 -1
  214. package/dist/plan-BqBadHYj.js.map +0 -1
  215. package/dist/query-CvutWHaL.js +0 -2
  216. package/dist/questions-ZdT3JDyQ.js.map +0 -1
  217. package/dist/record-CbuQH4l1.js.map +0 -1
  218. package/dist/sandbox--ZXuscAZ.js.map +0 -1
  219. package/dist/server-CNPsB0cT.js +0 -2
  220. package/dist/source-Cmc5SKFn.js +0 -2
  221. package/dist/src--L8B4WGa.js +0 -3
  222. package/dist/src-79JhW-zG.js.map +0 -1
  223. package/dist/src-BLN459er.js +0 -3
  224. package/dist/src-Bz66jDtE.js +0 -3
  225. package/dist/src-CfUwg9UY.js +0 -3
  226. package/dist/src-DV_3QDHA.js +0 -4
  227. package/dist/src-Ljh2vKXm.js +0 -3
  228. package/dist/state-DkqbCVVp.js +0 -2
  229. package/dist/studio-app/assets/index-CUx6GoL5.css +0 -2
  230. package/dist/summary--FBuB_sr.js.map +0 -1
  231. package/dist/tools-CJHw-zCo.js.map +0 -1
  232. package/dist/views-yPmmoo8f.js +0 -3
  233. package/dist/worker-entry-OwnsrUdr.js.map +0 -1
package/README.md CHANGED
@@ -86,13 +86,13 @@ all three agents passed every check.
86
86
  ```text
87
87
  $ reeval run evals/api.eval.ts --runs 1
88
88
  …
89
- ✓ how well the api-conventions skill influences the output 3/6 · 100% gated 6 attempts
90
- cursor:composer-2.5/nextjs-api/docker control 0/1 0% not gated
91
- cursor:composer-2.5/with-api-conventions/docker variant 1/1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
92
- claude-code:claude-sonnet-5/nextjs-api/docker control 0/1 0% not gated
93
- claude-code:claude-sonnet-5/with-api-conventions/docker variant 1/1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
94
- codex:gpt-5.6-luna/nextjs-api/docker control 0/1 0% not gated
95
- codex:gpt-5.6-luna/with-api-conventions/docker variant 1/1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
89
+ ✓ how well the api-conventions skill influences the output 3/6 · pass@1 100% gated 6 attempts
90
+ cursor:composer-2.5/nextjs-api/docker control 0/1 pass@1 0% not gated
91
+ cursor:composer-2.5/with-api-conventions/docker variant 1/1 pass@1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
92
+ claude-code:claude-sonnet-5/nextjs-api/docker control 0/1 pass@1 0% not gated
93
+ claude-code:claude-sonnet-5/with-api-conventions/docker variant 1/1 pass@1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
94
+ codex:gpt-5.6-luna/nextjs-api/docker control 0/1 pass@1 0% not gated
95
+ codex:gpt-5.6-luna/with-api-conventions/docker variant 1/1 pass@1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
96
96
  question "Which endpoint follows our API conventions?" across: claude-code:claude-sonnet-5 2/4 (50%), codex:gpt-5.6-luna 0/4 (0%), cursor:composer-2.5 4/4 (100%) · 6 votes, 0 ties · gemini-3.8-flash
97
97
  …
98
98
  ```
@@ -187,9 +187,9 @@ group(
187
187
  $ reeval run skill --runs 2
188
188
  plan 1 eval · 2 cells · 4 attempts · ~50s serial (~13s at concurrency 4)
189
189
  …
190
- ✓ greets in the house style 2/4 · 100% gated 4 attempts
191
- cursor:composer-2.5/plain/docker control 0/2 0% not gated
192
- cursor:composer-2.5/with-house-greeting/docker variant 2/2 100% lift +100 pts (95% +7…+100, 2/2 vs 0/2)
190
+ ✓ greets in the house style 2/4 · pass@1 100% gated 4 attempts
191
+ cursor:composer-2.5/plain/docker control 0/2 pass@1 0% not gated
192
+ cursor:composer-2.5/with-house-greeting/docker variant 2/2 pass@1 100% lift +100 pts (95% +7…+100, 2/2 vs 0/2)
193
193
  effort: tools 3 vs 8 (×0.38), agent 9s vs 18s (×0.50): too few attempts to test
194
194
  ```
195
195
 
@@ -225,8 +225,8 @@ record. To see what an attempt did step by step, add `-v`: a timestamped line pe
225
225
  container, setup, brokering, each tool call, checks, judge calls, every gateway request).
226
226
  `-vv` adds the raw payloads and every `docker` command. Either way each attempt's trace is
227
227
  kept locally in `.reeval/debug`, never in the committed history. Commit runs into `evals/.history/` with `reeval record`, then track them with `reeval history`
228
- and `reeval compare`, or ask across runs with SQL: `reeval query lift`, `reeval query effort` (tool calls and
229
- agent time, variant against control), `reeval query factor_effects`, or
228
+ and `reeval compare`, or ask across runs with SQL: `reeval query lift`, `reeval query effort` (tool calls,
229
+ agent time and tokens, variant against control), `reeval query factor_effects`, or
230
230
  `reeval query "SELECT * FROM failing_attempts WHERE skill = 'house-greeting'"`. Where the harness
231
231
  reports them (Cursor, Claude Code, Antigravity, pi and Codex do), the record keeps each turn's tokens and the model that
232
232
  served it, and totals them per attempt and per run.
@@ -1,9 +1,9 @@
1
1
  import { a as fromCwd } from "./ids-Bp6ut7ZD.js";
2
- import { a as notesDir, u as writeNote } from "./files-BSMSnQMa.js";
3
- import { a as providerModel } from "./model-Cp6NoAT3.js";
4
- import { a as stagedAttempts, i as listOutcomes, n as divergence, t as attemptSummary } from "./tools-CJHw-zCo.js";
5
- import { z } from "zod";
2
+ import { a as providerModel } from "./model-B1BZoZ9b.js";
3
+ import { a as notesDir, u as writeNote } from "./files-DJUFg-4e.js";
4
+ import { a as stagedAttempts, i as listOutcomes, n as divergence, t as attemptSummary } from "./tools-B10Uj7OI.js";
6
5
  import { generateText, stepCountIs, tool } from "ai";
6
+ import { z } from "zod";
7
7
  /** Pairs the fake compares, as a careful model would: a few, not all of them. */
8
8
  const FAKE_PAIRS = 3;
9
9
  const NOTE_PROMPT = `You write a short note on how one coding agent (the harness) did on one eval of a reeval run. You can't see transcripts; read the attempts with the tools.
@@ -301,7 +301,7 @@ function startNotes({ config, model, runId, stagingDir, planned, warn }) {
301
301
  */
302
302
  async function summarizeRun(config, runId, model) {
303
303
  try {
304
- const { writeRunSummary } = await import("./summary-D012KlUM.js");
304
+ const { writeRunSummary } = await import("./summary-2OAWF2N7.js");
305
305
  const { doc, path } = await writeRunSummary({
306
306
  config,
307
307
  runId,
@@ -331,4 +331,4 @@ const notesLine = (root, runId, notes) => {
331
331
  //#endregion
332
332
  export { notesLine, startNotes, summarizeRun };
333
333
 
334
- //# sourceMappingURL=agent-Dhd5FJCZ.js.map
334
+ //# sourceMappingURL=agent-6FefIhX7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-Dhd5FJCZ.js","names":[],"sources":["../src/analysis/agent/note.ts","../src/analysis/agent/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"agent-6FefIhX7.js","names":[],"sources":["../src/analysis/agent/note.ts","../src/analysis/agent/index.ts"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { t as InfraError } from "./types-C5vI3g1C.js";
2
- import { d as agentFor, f as authHint, u as agentAuth } from "./egress-BKbyriEa.js";
3
- import { B as WORKSPACE_DIR, R as SANDBOX_ROOT } from "./src-79JhW-zG.js";
2
+ import { d as agentFor, f as authHint, u as agentAuth } from "./egress-BhzNh7Yi.js";
3
+ import { B as WORKSPACE_DIR, R as SANDBOX_ROOT } from "./src-8rRXy4u9.js";
4
4
  import { i as debugTrace, r as debugLog } from "./attempt-CGPV3BZY.js";
5
- import { t as addUsage } from "./usage-DsYUqIUM.js";
6
- import { n as isDockerSandbox } from "./docker-DaUaG4XZ.js";
5
+ import { t as addUsage } from "./usage-DDF_6tkV.js";
6
+ import { n as isDockerSandbox } from "./docker-CRQGQbIt.js";
7
7
  import { HarnessAgent } from "@ai-sdk/harness/agent";
8
8
  //#region src/harness/transcript.ts
9
9
  const str = (value) => typeof value === "string" ? value : "";
@@ -236,7 +236,7 @@ function normaliseStream(parts, startedAt) {
236
236
  });
237
237
  return;
238
238
  }
239
- if (name === "webSearch" && !failed) {
239
+ if (name === "webSearch") {
240
240
  out.push({
241
241
  at: call.ms,
242
242
  event: {
@@ -244,7 +244,8 @@ function normaliseStream(parts, startedAt) {
244
244
  type: "web-search",
245
245
  toolCallId: id,
246
246
  query: str(input.searchTerm) || str(input.query),
247
- references: searchReferences(output)
247
+ references: failed ? null : searchReferences(output),
248
+ ok: !failed
248
249
  }
249
250
  });
250
251
  return;
@@ -348,19 +349,53 @@ function normaliseStream(parts, startedAt) {
348
349
  }
349
350
  }
350
351
  }
351
- for (const [id, call] of pending) out.push({
352
- at: call.ms,
353
- event: {
352
+ for (const [id, call] of pending) {
353
+ const name = toolName(call.part);
354
+ const input = record(call.part.input);
355
+ const base = {
354
356
  ...stamp(call.ms),
355
- type: "tool",
356
- toolCallId: id,
357
- tool: toolName(call.part),
358
- input: call.part.input,
359
- output: null,
360
- ok: false,
361
357
  durationMs: null
358
+ };
359
+ if (name === "webSearch") {
360
+ out.push({
361
+ at: call.ms,
362
+ event: {
363
+ ...base,
364
+ type: "web-search",
365
+ toolCallId: id,
366
+ query: str(input.searchTerm) || str(input.query),
367
+ references: null,
368
+ ok: false
369
+ }
370
+ });
371
+ continue;
362
372
  }
363
- });
373
+ if (name === "webFetch" || name === "WebFetch") {
374
+ out.push({
375
+ at: call.ms,
376
+ event: {
377
+ ...base,
378
+ type: "web-fetch",
379
+ toolCallId: id,
380
+ url: str(input.url),
381
+ ok: false
382
+ }
383
+ });
384
+ continue;
385
+ }
386
+ out.push({
387
+ at: call.ms,
388
+ event: {
389
+ ...base,
390
+ type: "tool",
391
+ toolCallId: id,
392
+ tool: name,
393
+ input: call.part.input,
394
+ output: null,
395
+ ok: false
396
+ }
397
+ });
398
+ }
364
399
  for (const [, block] of blocks) if (block.text.trim()) out.push({
365
400
  at: block.ms,
366
401
  event: {
@@ -529,4 +564,4 @@ function createAgentHarness(descriptor) {
529
564
  //#endregion
530
565
  export { createAgentHarness };
531
566
 
532
- //# sourceMappingURL=agent-gjBiZis8.js.map
567
+ //# sourceMappingURL=agent-WSmTaesf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-WSmTaesf.js","names":[],"sources":["../src/harness/transcript.ts","../src/harness/agent.ts"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  //#region src/view/analysis.ts
2
2
  /** Bumped when the system prompt or output schema changes: an older analysis is superseded. */
3
- const ANALYSIS_PROMPT_VERSION = "analysis-v5";
3
+ const ANALYSIS_PROMPT_VERSION = "analysis-v9";
4
4
  /** Bumped when the digest's shape or selection rules change. */
5
- const DIGEST_VERSION = 3;
5
+ const DIGEST_VERSION = 8;
6
6
  const analysisDataPath = (runId) => `data/analysis/${runId}.json`;
7
7
  /** The newest analysis that wrote a TL;DR, for the studio run header. */
8
8
  function pinnedAnalysis(entries) {
@@ -13,8 +13,8 @@ function sortAnalyses(entries) {
13
13
  return [...entries].sort((a, b) => a.doc.createdAt === b.doc.createdAt ? a.source === b.source ? 0 : a.source === "saved" ? -1 : 1 : a.doc.createdAt < b.doc.createdAt ? 1 : -1);
14
14
  }
15
15
  /** Superseded by a newer prompt or digest version: the studio says so. */
16
- const isSuperseded = (doc) => doc.promptVersion !== "analysis-v5" || doc.inputs.digestVersion !== 3;
16
+ const isSuperseded = (doc) => doc.promptVersion !== "analysis-v9" || doc.inputs.digestVersion !== 8;
17
17
  //#endregion
18
18
  export { pinnedAnalysis as a, isSuperseded as i, DIGEST_VERSION as n, sortAnalyses as o, analysisDataPath as r, ANALYSIS_PROMPT_VERSION as t };
19
19
 
20
- //# sourceMappingURL=analysis-BV3TCznv.js.map
20
+ //# sourceMappingURL=analysis-DlGBDjTj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis-BV3TCznv.js","names":[],"sources":["../src/view/analysis.ts"],"mappings":";;AAIA,MAAa,0BAA0B;;AAEvC,MAAa,iBAAiB;AAkI9B,MAAa,oBAAoB,UAAkB,iBAAiB,MAAM;;AAG1E,SAAgB,eAAe,SAA8D;CAC3F,OAAO,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAC/B,MAAM,EAAE,IAAI,UAAU,KAAA,KAAa,EAAE,IAAI,SAAS,KAAK,SAAS,CACnE;AACF;;AAGA,SAAgB,aAAa,SAA2C;CACtE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAC3B,EAAE,IAAI,cAAc,EAAE,IAAI,YACtB,EAAE,WAAW,EAAE,SACb,IACA,EAAE,WAAW,UACX,KACA,IACJ,EAAE,IAAI,YAAY,EAAE,IAAI,YACtB,IACA,EACR;AACF;;AAGA,MAAa,gBAAgB,QAC3B,IAAI,kBAAA,iBAA6C,IAAI,OAAO,kBAAA"}
1
+ {"version":3,"file":"analysis-DlGBDjTj.js","names":[],"sources":["../src/view/analysis.ts"],"mappings":";;AAIA,MAAa,0BAA0B;;AAEvC,MAAa,iBAAiB;AAwI9B,MAAa,oBAAoB,UAAkB,iBAAiB,MAAM;;AAG1E,SAAgB,eAAe,SAA8D;CAC3F,OAAO,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAC/B,MAAM,EAAE,IAAI,UAAU,KAAA,KAAa,EAAE,IAAI,SAAS,KAAK,SAAS,CACnE;AACF;;AAGA,SAAgB,aAAa,SAA2C;CACtE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAC3B,EAAE,IAAI,cAAc,EAAE,IAAI,YACtB,EAAE,WAAW,EAAE,SACb,IACA,EAAE,WAAW,UACX,KACA,IACJ,EAAE,IAAI,YAAY,EAAE,IAAI,YACtB,IACA,EACR;AACF;;AAGA,MAAa,gBAAgB,QAC3B,IAAI,kBAAA,iBAA6C,IAAI,OAAO,kBAAA"}
@@ -1,16 +1,185 @@
1
1
  import { r as isTimeout } from "./errors-yDAEwmZo.js";
2
2
  import { o as redactSecrets } from "./redact-DJ9JCShu.js";
3
- import { u as environmentSandbox } from "./environment-DiCljXMD.js";
3
+ import { u as environmentSandbox } from "./environment-1jE-HhO-.js";
4
4
  import { i as evalSlug, l as sha256, n as attemptKey, s as recordFileName, t as attemptId } from "./ids-Bp6ut7ZD.js";
5
- import { c as judgeModelName } from "./judge-7WjNdU9z.js";
6
- import { d as sandboxId, s as harnessId, u as profileJudge } from "./options-Ge_x32XE.js";
7
- import { r as patchForJudge, t as collapseDependencies } from "./patch-CGCVipPu.js";
8
- import { $ as liftInterval, et as round3 } from "./model-DyQbu7KF.js";
9
- import { n as promptTokens, r as sumUsage } from "./usage-DsYUqIUM.js";
10
- import { a as packageVersions, r as judgeVersion, t as FINGERPRINT_SCOPE } from "./state-DEj_utaE.js";
11
- import { a as previousAttempt, n as isCompletedAttempt } from "./resume-BL4Yw7Ld.js";
5
+ import { c as judgeModelName } from "./judge-CeYPN8P_.js";
6
+ import { _ as resolvedEffortOf, d as sandboxId, g as harnessEffort, s as harnessId, u as profileJudge, v as servedEffortOf } from "./options-CKqyPGxX.js";
7
+ import { n as promptTokens, r as sumUsage } from "./usage-DDF_6tkV.js";
8
+ import { r as patchForJudge, t as collapseDependencies } from "./patch-bDV8YFW0.js";
9
+ import { Y as effortSample, at as median, ct as signedRank, it as meanInterval, lt as wilson, nt as liftInterval, ot as pairedLiftInterval, rt as mcnemar, st as round3 } from "./model-BOnlAPzs.js";
10
+ import { a as packageVersions, r as judgeVersion, t as FINGERPRINT_SCOPE } from "./state-CiXyLqg0.js";
11
+ import { a as previousAttempt, n as isCompletedAttempt } from "./resume-SUz1GskV.js";
12
12
  import { dirname, join, relative, resolve, sep } from "node:path";
13
13
  import { readFile, stat } from "node:fs/promises";
14
+ //#region src/history/families.ts
15
+ const isCounted = (a) => a.outcome === "pass" || a.outcome === "fail";
16
+ function sideOf$1(entry, cell) {
17
+ const counted = entry.attempts.filter((a) => a.cell === cell && isCounted(a));
18
+ if (!counted.length) return null;
19
+ return {
20
+ pass: counted.filter((a) => a.outcome === "pass").length,
21
+ counted: counted.length,
22
+ samples: counted.map(effortSample)
23
+ };
24
+ }
25
+ const clamp = (x, lo, hi) => Math.min(hi, Math.max(lo, x));
26
+ const interval = (lo, hi, method, bound) => ({
27
+ lo: round3(clamp(lo, ...bound)),
28
+ hi: round3(clamp(hi, ...bound)),
29
+ level: .95,
30
+ method
31
+ });
32
+ function rateOf(cell, sides) {
33
+ const pass = sides.reduce((s, x) => s + x.pass, 0);
34
+ const counted = sides.reduce((s, x) => s + x.counted, 0);
35
+ const single = sides.every((x) => x.counted === 1);
36
+ const rates = sides.map((x) => x.pass / x.counted);
37
+ const t = meanInterval(rates);
38
+ const w = wilson(pass, counted);
39
+ return {
40
+ cell,
41
+ cases: sides.length,
42
+ pass,
43
+ counted,
44
+ rate: round3(t.mean),
45
+ interval: single ? interval(w.low, w.high, "wilson", [0, 1]) : interval(t.low, t.high, "t-cases", [0, 1])
46
+ };
47
+ }
48
+ function metric(pairs) {
49
+ const differences = pairs.map(([v, c]) => v - c);
50
+ const control = median(pairs.map(([, c]) => c)) ?? 0;
51
+ const variant = median(pairs.map(([v]) => v)) ?? 0;
52
+ const p = signedRank(differences);
53
+ const verdict = differences.filter((d) => d !== 0).length < 6 ? "insufficient" : p === null || p >= .05 ? "noise" : (median(differences) ?? 0) < 0 ? "fewer" : "more";
54
+ return {
55
+ pairs: pairs.length,
56
+ ratio: control === 0 ? null : round3(variant / control),
57
+ p: p === null ? null : round3(p),
58
+ verdict
59
+ };
60
+ }
61
+ function effortOf(pairs) {
62
+ const per = (pick) => pairs.flatMap(([v, c]) => {
63
+ const vs = v.samples.map(pick);
64
+ const cs = c.samples.map(pick);
65
+ if (vs.some((x) => x === void 0) || cs.some((x) => x === void 0)) return [];
66
+ return [[median(vs) ?? 0, median(cs) ?? 0]];
67
+ });
68
+ const tokens = per((s) => s.tokens);
69
+ return {
70
+ tools: metric(per((s) => s.tools)),
71
+ agentMs: metric(per((s) => s.agentMs)),
72
+ ...tokens.length ? { tokens: metric(tokens) } : {}
73
+ };
74
+ }
75
+ function liftOf$1(variant, control, cases, minLift) {
76
+ const pairs = cases.flatMap((e) => {
77
+ const v = sideOf$1(e, variant);
78
+ const c = sideOf$1(e, control);
79
+ return v && c ? [[v, c]] : [];
80
+ });
81
+ if (!pairs.length) return null;
82
+ const single = pairs.every(([v, c]) => v.counted === 1 && c.counted === 1);
83
+ const vRates = pairs.map(([v]) => v.pass / v.counted);
84
+ const cRates = pairs.map(([, c]) => c.pass / c.counted);
85
+ const mean = (xs) => xs.reduce((s, x) => s + x, 0) / xs.length;
86
+ let points;
87
+ let range;
88
+ let p;
89
+ let discordant;
90
+ let decided;
91
+ if (single) {
92
+ const counts = {
93
+ both: 0,
94
+ variantOnly: 0,
95
+ controlOnly: 0,
96
+ neither: 0
97
+ };
98
+ for (const [v, c] of pairs) if (v.pass && c.pass) counts.both++;
99
+ else if (v.pass) counts.variantOnly++;
100
+ else if (c.pass) counts.controlOnly++;
101
+ else counts.neither++;
102
+ const paired = pairedLiftInterval(counts);
103
+ points = paired.points;
104
+ range = interval(paired.low, paired.high, "newcombe-paired", [-1, 1]);
105
+ p = round3(mcnemar(counts.variantOnly, counts.controlOnly));
106
+ discordant = {
107
+ variantOnly: counts.variantOnly,
108
+ controlOnly: counts.controlOnly
109
+ };
110
+ decided = counts.variantOnly + counts.controlOnly >= 6;
111
+ } else {
112
+ const differences = vRates.map((r, i) => r - cRates[i]);
113
+ const t = meanInterval(differences);
114
+ points = t.mean;
115
+ range = interval(t.low, t.high, "t-cases", [-1, 1]);
116
+ const rank = signedRank(differences);
117
+ p = rank === null ? null : round3(rank);
118
+ decided = pairs.length >= 6;
119
+ }
120
+ const verdict = !decided ? "insufficient" : range.lo > 0 ? "lift" : range.hi < 0 ? "drop" : "noise";
121
+ return {
122
+ variant,
123
+ vs: control,
124
+ pairs: pairs.length,
125
+ variantRate: round3(mean(vRates)),
126
+ controlRate: round3(mean(cRates)),
127
+ ...discordant ? { discordant } : {},
128
+ points: round3(points),
129
+ interval: range,
130
+ p,
131
+ withinNoise: range.lo < 0 && range.hi > 0,
132
+ verdict,
133
+ ...minLift !== void 0 ? { minLift } : {},
134
+ outcome: minLift !== void 0 && range.lo < minLift ? "fail" : "pass",
135
+ effort: effortOf(pairs)
136
+ };
137
+ }
138
+ /**
139
+ * The run's pooled families, in the order their first case appears; `minLiftOf` gives a variant
140
+ * cell's `compare.minLift`.
141
+ */
142
+ function familiesOf(evals, minLiftOf) {
143
+ const byId = /* @__PURE__ */ new Map();
144
+ for (const e of evals) {
145
+ if (!e.family || e.todo) continue;
146
+ byId.set(e.family.id, [...byId.get(e.family.id) ?? [], e]);
147
+ }
148
+ return [...byId.values()].map((members) => {
149
+ const cases = [...members].sort((a, b) => (a.family?.case ?? 0) - (b.family?.case ?? 0));
150
+ const first = cases[0];
151
+ const family = first.family;
152
+ const cellKeys = [];
153
+ for (const e of cases) for (const c of e.cells) if (!cellKeys.includes(c.key)) cellKeys.push(c.key);
154
+ const rates = cellKeys.flatMap((key) => {
155
+ const sides = cases.flatMap((e) => sideOf$1(e, key) ?? []);
156
+ return sides.length ? [rateOf(key, sides)] : [];
157
+ });
158
+ const lifts = [];
159
+ for (const key of cellKeys) {
160
+ const holder = cases.find((e) => e.cells.some((c) => c.key === key && c.role === "variant"));
161
+ const variant = holder?.cells.find((c) => c.key === key);
162
+ if (!holder || !variant) continue;
163
+ const control = holder.cells.find((c) => c.role === "control" && c.harness === variant.harness && c.sandbox === variant.sandbox);
164
+ if (!control) continue;
165
+ const minLift = cases.flatMap((e) => e.cells.filter((c) => c.key === key)).map(minLiftOf).find((m) => m !== void 0);
166
+ const lift = liftOf$1(key, control.key, cases, minLift);
167
+ if (lift) lifts.push(lift);
168
+ }
169
+ return {
170
+ id: family.id,
171
+ file: first.file,
172
+ group: first.group,
173
+ name: family.name,
174
+ cases: family.cases,
175
+ ran: cases.length,
176
+ rates,
177
+ lifts,
178
+ outcome: lifts.some((l) => l.outcome === "fail") ? "fail" : "pass"
179
+ };
180
+ });
181
+ }
182
+ //#endregion
14
183
  //#region src/history/sources.ts
15
184
  /** `from '…'`, `import '…'`, `import('…')` and `export … from '…'`, with a literal specifier. */
16
185
  const SPECIFIER = /(?:\bfrom\s*|\bimport\s*\(\s*|\bimport\s+)(['"])((?:\.{1,2}\/|\/)[^'"]+)\1/g;
@@ -301,7 +470,8 @@ var Seen = class {
301
470
  this.harnesses.set(cell.harness, {
302
471
  id: cell.harness,
303
472
  kind: h.kind,
304
- model: harnessModel(h)
473
+ model: harnessModel(h),
474
+ effort: harnessEffort(h) ?? null
305
475
  });
306
476
  }
307
477
  const resolved = this.resolvedHarnesses.get(cell.harness) ?? /* @__PURE__ */ new Set();
@@ -321,6 +491,7 @@ var Seen = class {
321
491
  name: e.name,
322
492
  tags: e.attempt?.tags ?? [],
323
493
  ...e.attempt?.plan.compare ? { compare: e.attempt.plan.compare } : {},
494
+ ...e.attempt?.family ? { family: familyOf(e.attempt.family) } : {},
324
495
  fingerprint: "",
325
496
  sources,
326
497
  outcome: "skipped",
@@ -334,6 +505,12 @@ var Seen = class {
334
505
  return entry;
335
506
  }
336
507
  };
508
+ const familyOf = ({ id, name, case: index, cases }) => ({
509
+ id,
510
+ name,
511
+ case: index,
512
+ cases
513
+ });
337
514
  const UNKNOWN_CELL = {
338
515
  key: "unknown",
339
516
  harness: "unknown",
@@ -362,6 +539,7 @@ function cellOf(entry, cell, gate, harness) {
362
539
  environmentDigest: null,
363
540
  harnessKind: harness?.kind ?? "unknown",
364
541
  model: harness ? harnessModel(harness) : null,
542
+ effort: harness ? harnessEffort(harness) ?? null : null,
365
543
  gate,
366
544
  overrides: [],
367
545
  runs: 0,
@@ -503,6 +681,8 @@ async function addAttempt(e, ctx, seen, out, judge, previous, previousArtifacts)
503
681
  context,
504
682
  egress: record?.egress ?? null,
505
683
  servedModels: record?.servedModels ?? null,
684
+ effort: e.attempt ? harnessEffort(e.attempt.harness) ?? null : null,
685
+ servedEffort: servedEffortOf([...record?.servedModels ?? [], ...(record?.turns ?? []).map((t) => t.model)]) ?? null,
506
686
  outcome,
507
687
  error,
508
688
  durationMs: e.durationMs,
@@ -556,6 +736,7 @@ async function attemptEvidence(record, dir, out, stagingRecord) {
556
736
  text: t.text.length > TURN_TEXT_LIMIT ? `${t.text.slice(0, TURN_TEXT_LIMIT)}… [reeval: truncated ${t.text.length} characters; the whole message is the turn's last text event in transcript.jsonl]` : t.text
557
737
  })),
558
738
  usage: sumUsage((record?.turns ?? []).map((t) => t.usage)),
739
+ ...record?.captureUse ? { captureUse: record.captureUse } : {},
559
740
  timings: record?.timings ?? {
560
741
  setupMs: 0,
561
742
  agentMs: 0,
@@ -572,6 +753,7 @@ async function attemptEvidence(record, dir, out, stagingRecord) {
572
753
  },
573
754
  judgements,
574
755
  ...record?.startRetries?.length ? { startRetries: record.startRetries } : {},
756
+ ...record?.assertions?.length ? { assertions: record.assertions } : {},
575
757
  checks: (record?.checks ?? []).map((c, i) => ({
576
758
  command: c.command,
577
759
  exitCode: c.exitCode,
@@ -583,9 +765,9 @@ async function attemptEvidence(record, dir, out, stagingRecord) {
583
765
  };
584
766
  }
585
767
  /** Lift of a variant cell over the control on the same harness and sandbox, with its interval. */
586
- function liftOf(control, variant) {
768
+ function liftOf(control, variant, pooled) {
587
769
  if (control.passRate === null || variant.passRate === null) return void 0;
588
- const minLift = minLifts.get(variant);
770
+ const minLift = pooled ? void 0 : minLifts.get(variant);
589
771
  const c = {
590
772
  pass: control.pass,
591
773
  counted: control.pass + control.fail
@@ -617,6 +799,53 @@ function liftOf(control, variant) {
617
799
  };
618
800
  }
619
801
  /**
802
+ * Each cell's checks: every label any attempt of the eval recorded, tallied over the cell's
803
+ * counted attempts (pass or fail). An attempt that counted without reaching a label, because
804
+ * a hard `expect` before it failed, counts it `notRun`.
805
+ */
806
+ function checkTallies(entry) {
807
+ const labels = [...new Set(entry.attempts.flatMap((a) => (a.assertions ?? []).map((x) => x.label)))];
808
+ if (!labels.length) return;
809
+ for (const c of entry.cells) {
810
+ const counted = entry.attempts.filter((a) => a.cell === c.key && (a.outcome === "pass" || a.outcome === "fail"));
811
+ if (!counted.length) continue;
812
+ c.checks = labels.map((label) => {
813
+ const tally = {
814
+ label,
815
+ pass: 0,
816
+ fail: 0,
817
+ error: 0,
818
+ notRun: 0
819
+ };
820
+ for (const a of counted) {
821
+ const status = a.assertions?.find((x) => x.label === label)?.status;
822
+ if (status === void 0) tally.notRun++;
823
+ else tally[status]++;
824
+ }
825
+ return tally;
826
+ });
827
+ }
828
+ }
829
+ /** Where every counted attempt that answered a check passed it (`all`), none did, or some. */
830
+ const sideOf = (t) => {
831
+ const answered = t.pass + t.fail + t.notRun;
832
+ if (answered === 0) return void 0;
833
+ return t.pass === answered ? "all" : t.pass === 0 ? "none" : "some";
834
+ };
835
+ /** Puts the control's tally beside each of the variant's checks, with whether it discriminates. */
836
+ function discrimination(control, variant) {
837
+ for (const check of variant.checks ?? []) {
838
+ const k = control.checks?.find((x) => x.label === check.label);
839
+ if (!k) continue;
840
+ const { label: _label, ...tally } = k;
841
+ check.control = tally;
842
+ const v = sideOf(check);
843
+ const c = sideOf(k);
844
+ if (v === void 0 || c === void 0) continue;
845
+ check.verdict = v === "all" && c === "all" ? "both-pass" : v === "none" && c === "none" ? "both-fail" : v === "all" && c === "none" || v === "none" && c === "all" ? "discriminates" : "mixed";
846
+ }
847
+ }
848
+ /**
620
849
  * A cell's outcome by its gate. `'all'` matches `{ passRate: 1 }`: every counted attempt must
621
850
  * pass, and it is an infra error only when nothing counted. `'none'` takes the worst attempt.
622
851
  */
@@ -640,10 +869,12 @@ function rollUp(evals) {
640
869
  c.passRate = passRateOf(outcomes);
641
870
  c.outcome = cellOutcome(outcomes, c.gate);
642
871
  }
872
+ checkTallies(entry);
643
873
  for (const c of entry.cells) {
644
874
  if (c.role !== "variant") continue;
645
875
  const control = entry.cells.find((x) => x.role === "control" && x.harness === c.harness && x.sandbox === c.sandbox);
646
- const lift = control && liftOf(control, c);
876
+ if (control) discrimination(control, c);
877
+ const lift = control && liftOf(control, c, entry.family !== void 0);
647
878
  if (!lift) continue;
648
879
  c.lift = lift;
649
880
  if (lift.minLift !== void 0 && lift.interval.lo < lift.minLift && c.outcome === "pass") c.outcome = "fail";
@@ -693,10 +924,14 @@ function stackOf(input, seen, judgeModel, threshold) {
693
924
  arch: process.arch,
694
925
  images: [...seen.images.values()].sort(byName((i) => i.ref)),
695
926
  packages,
696
- harnesses: [...seen.harnesses.values()].map((h) => ({
697
- ...h,
698
- resolvedModels: [...seen.resolvedHarnesses.get(h.id) ?? []].sort()
699
- })).sort(byName((h) => h.id)),
927
+ harnesses: [...seen.harnesses.values()].map((h) => {
928
+ const resolvedModels = [...seen.resolvedHarnesses.get(h.id) ?? []].sort();
929
+ return {
930
+ ...h,
931
+ resolvedModels,
932
+ resolvedEffort: resolvedEffortOf(resolvedModels)
933
+ };
934
+ }).sort(byName((h) => h.id)),
700
935
  judge: {
701
936
  model: judgeModel,
702
937
  resolvedModels: [...seen.resolvedJudges].sort(),
@@ -753,7 +988,12 @@ async function assembleRun(input) {
753
988
  }
754
989
  }
755
990
  const evals = [...seen.byEval.values()];
991
+ for (const entry of evals) {
992
+ const before = input.previous?.evals.find((p) => p.id === entry.id)?.family;
993
+ if (!entry.family && before) entry.family = before;
994
+ }
756
995
  rollUp(evals);
996
+ const families = familiesOf(evals, (cell) => minLifts.get(cell));
757
997
  sequence(evals);
758
998
  for (const e of evals) {
759
999
  const answers = input.answers?.get(e.id);
@@ -821,7 +1061,8 @@ async function assembleRun(input) {
821
1061
  infraError: count("infra_error"),
822
1062
  skipped: count("skipped")
823
1063
  },
824
- evals
1064
+ evals,
1065
+ ...families.length ? { families } : {}
825
1066
  },
826
1067
  artifacts: out.files
827
1068
  };
@@ -829,4 +1070,4 @@ async function assembleRun(input) {
829
1070
  //#endregion
830
1071
  export { fingerprintOf as a, transcriptLines as c, cellOutcome as i, worstOutcome as l, assembleRun as n, judgementKey as o, capText as r, mergeOutcome as s, OUTPUT_CAP as t };
831
1072
 
832
- //# sourceMappingURL=assemble-Dd_mZYnu.js.map
1073
+ //# sourceMappingURL=assemble-BCZzTyR7.js.map