reeval 0.9.0 → 0.11.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 (336) hide show
  1. package/README.md +99 -64
  2. package/THIRD_PARTY_NOTICES.md +288 -112
  3. package/assets/package.json +1 -1
  4. package/assets/pnpm-lock.yaml +30 -30
  5. package/dist/adapter-Bwy3QxAK.js +279 -0
  6. package/dist/adapter-Bwy3QxAK.js.map +1 -0
  7. package/dist/{agent-6FefIhX7.js → agent-D483ru7D.js} +6 -6
  8. package/dist/{agent-6FefIhX7.js.map → agent-D483ru7D.js.map} +1 -1
  9. package/dist/{agent-WSmTaesf.js → agent-DpE80WPz.js} +46 -15
  10. package/dist/agent-DpE80WPz.js.map +1 -0
  11. package/dist/{analysis-DlGBDjTj.js → analysis-Bxub9LMT.js} +4 -4
  12. package/dist/{analysis-DlGBDjTj.js.map → analysis-Bxub9LMT.js.map} +1 -1
  13. package/dist/assemble-D5KGrwnJ.js +1 -0
  14. package/dist/{assemble-BCZzTyR7.js → assemble-D9GWr-HS.js} +69 -41
  15. package/dist/assemble-D9GWr-HS.js.map +1 -0
  16. package/dist/{client-Bbo9SPlK.js → assert-EUIoRdIt.js} +10 -113
  17. package/dist/assert-EUIoRdIt.js.map +1 -0
  18. package/dist/bridge/index.mjs +260 -60
  19. package/dist/{capture-Bp74Z6Fr.js → capture-BQlGHiMC.js} +146 -32
  20. package/dist/capture-BQlGHiMC.js.map +1 -0
  21. package/dist/capture-CYGLpWxR.js +1 -0
  22. package/dist/{cli-CVrMh_qz.js → cli-ClpPT8kn.js} +229 -537
  23. package/dist/cli-ClpPT8kn.js.map +1 -0
  24. package/dist/{cli-spec-CKEYa8V2.js → cli-spec-qmEnQ25_.js} +50 -22
  25. package/dist/cli-spec-qmEnQ25_.js.map +1 -0
  26. package/dist/cli.js +4 -2
  27. package/dist/cli.js.map +1 -1
  28. package/dist/client-fcwgwOAD.js +106 -0
  29. package/dist/client-fcwgwOAD.js.map +1 -0
  30. package/dist/{command-DUT5l13I.js → command-Bj39y-Wm.js} +329 -87
  31. package/dist/command-Bj39y-Wm.js.map +1 -0
  32. package/dist/{command-BFP0hKEb.js → command-BlM0y8jN.js} +14 -14
  33. package/dist/{command-BFP0hKEb.js.map → command-BlM0y8jN.js.map} +1 -1
  34. package/dist/command-C-cVjlny.js +1 -0
  35. package/dist/{command-CzIFp1JQ.js → command-DbAe1Rzb.js} +19 -19
  36. package/dist/command-DbAe1Rzb.js.map +1 -0
  37. package/dist/{command-C5xFPKHM.js → command-TgbzPizb.js} +378 -74
  38. package/dist/command-TgbzPizb.js.map +1 -0
  39. package/dist/commands-CthqwkAn.js +1 -0
  40. package/dist/{commands-CLmPBrTS.js → commands-YUwlyTbr.js} +14 -11
  41. package/dist/commands-YUwlyTbr.js.map +1 -0
  42. package/dist/config-DrVSEVN0.js +774 -0
  43. package/dist/config-DrVSEVN0.js.map +1 -0
  44. package/dist/{context-DbSMEVKs.js → context-C1mxXh80.js} +11 -3
  45. package/dist/context-C1mxXh80.js.map +1 -0
  46. package/dist/contrasts-5zsj32gk.js +101 -0
  47. package/dist/contrasts-5zsj32gk.js.map +1 -0
  48. package/dist/db-CKg5NtiW.js +2 -0
  49. package/dist/{db-CfQFwJtq.js → db-DfhipHEF.js} +467 -38
  50. package/dist/db-DfhipHEF.js.map +1 -0
  51. package/dist/debug-D7bEv_UV.js +1 -0
  52. package/dist/{dist-CTzThfu_.js → dist-CuY4ehEk.js} +95 -15
  53. package/dist/dist-CuY4ehEk.js.map +1 -0
  54. package/dist/{docker-CRQGQbIt.js → docker-D1HZDS6q.js} +22 -21
  55. package/dist/docker-D1HZDS6q.js.map +1 -0
  56. package/dist/docker-DNmMPOBb.js +1 -0
  57. package/dist/{docker-DV2GNgle.js → docker-DOvjji9I.js} +3 -3
  58. package/dist/docker-DOvjji9I.js.map +1 -0
  59. package/dist/{doctor-DlKycx5H.js → doctor-D2MbNO8L.js} +262 -84
  60. package/dist/doctor-D2MbNO8L.js.map +1 -0
  61. package/dist/{egress-BhzNh7Yi.js → egress-2-qzPvGi.js} +146 -15
  62. package/dist/egress-2-qzPvGi.js.map +1 -0
  63. package/dist/environment-Cca6a4wB.js +1132 -0
  64. package/dist/environment-Cca6a4wB.js.map +1 -0
  65. package/dist/{errors-yDAEwmZo.js → errors-B6BSMs03.js} +2 -2
  66. package/dist/errors-B6BSMs03.js.map +1 -0
  67. package/dist/{errors-C9w_ud7g.js → errors-r025B0Zb.js} +4 -4
  68. package/dist/errors-r025B0Zb.js.map +1 -0
  69. package/dist/evaluate-DKIl54Hb.js +2348 -0
  70. package/dist/evaluate-DKIl54Hb.js.map +1 -0
  71. package/dist/evaluate-DMyaGQEj.d.ts +92 -0
  72. package/dist/files-BAt0i00X.js +1 -0
  73. package/dist/{files-DJUFg-4e.js → files-BXHZFWmx.js} +5 -5
  74. package/dist/{files-DJUFg-4e.js.map → files-BXHZFWmx.js.map} +1 -1
  75. package/dist/files-Bk1mC3AN.js +43 -0
  76. package/dist/files-Bk1mC3AN.js.map +1 -0
  77. package/dist/{files-CSzVADHn.js → files-BpUYBwGu.js} +11 -10
  78. package/dist/{files-CSzVADHn.js.map → files-BpUYBwGu.js.map} +1 -1
  79. package/dist/files-Bw8lWEjg.js +1 -0
  80. package/dist/files-D6J0iSdx.js +1 -0
  81. package/dist/{git-DfG-YJ1u.js → git-Crl3b87o.js} +2 -2
  82. package/dist/{git-DfG-YJ1u.js.map → git-Crl3b87o.js.map} +1 -1
  83. package/dist/harness-CEuntrla.js +323 -0
  84. package/dist/harness-CEuntrla.js.map +1 -0
  85. package/dist/harness.d.ts +16 -30
  86. package/dist/harness.js +1 -2
  87. package/dist/{header-CALhmafp.js → header-DHQv_ZrF.js} +2 -2
  88. package/dist/{header-CALhmafp.js.map → header-DHQv_ZrF.js.map} +1 -1
  89. package/dist/{images-BMgdpMAX.js → images-Bi3aGxb9.js} +114 -45
  90. package/dist/images-Bi3aGxb9.js.map +1 -0
  91. package/dist/index.d.ts +9 -37
  92. package/dist/index.js +6 -2138
  93. package/dist/{init-BIdLF0F9.js → init-Cl3f3NBT.js} +26 -8
  94. package/dist/init-Cl3f3NBT.js.map +1 -0
  95. package/dist/init-fhOXED8F.js +1 -0
  96. package/dist/{invocations-CLaL8AuW.js → invocations-BYDPe3fV.js} +4 -4
  97. package/dist/{invocations-CLaL8AuW.js.map → invocations-BYDPe3fV.js.map} +1 -1
  98. package/dist/{judge-CeYPN8P_.js → judge-DW_GDOmB.js} +11 -19
  99. package/dist/{judge-CeYPN8P_.js.map → judge-DW_GDOmB.js.map} +1 -1
  100. package/dist/judge.d.ts +2 -2
  101. package/dist/judge.js +1 -1
  102. package/dist/{live-S0qODb6o.js → live-jlfszAbb.js} +9 -20
  103. package/dist/live-jlfszAbb.js.map +1 -0
  104. package/dist/matchers-Ddmc2z7H.js +118 -0
  105. package/dist/matchers-Ddmc2z7H.js.map +1 -0
  106. package/dist/model-CXhrziBe.js +1 -0
  107. package/dist/{model-B1BZoZ9b.js → model-D0IcOQao.js} +22 -20
  108. package/dist/model-D0IcOQao.js.map +1 -0
  109. package/dist/{model-DEQo3FkZ.js → model-DaVCY3rb.js} +2 -2
  110. package/dist/{model-DEQo3FkZ.js.map → model-DaVCY3rb.js.map} +1 -1
  111. package/dist/{model-BOnlAPzs.js → model-DaX4bNLZ.js} +123 -22
  112. package/dist/model-DaX4bNLZ.js.map +1 -0
  113. package/dist/model-_bxNrk2h.js +1 -0
  114. package/dist/{node-Co7EXge0.js → node-B3ydHo6t.js} +10 -47
  115. package/dist/node-B3ydHo6t.js.map +1 -0
  116. package/dist/object-CLf2-tNq.js +9 -0
  117. package/dist/object-CLf2-tNq.js.map +1 -0
  118. package/dist/{opencode-providers-ByD85Q0l.js → opencode-providers-J9colP0-.js} +96 -21
  119. package/dist/opencode-providers-J9colP0-.js.map +1 -0
  120. package/dist/options-C0d0AzeR.js +1118 -0
  121. package/dist/options-C0d0AzeR.js.map +1 -0
  122. package/dist/{pairs-DDsjgm5F.js → pairs-CnInRu-G.js} +76 -2
  123. package/dist/{pairs-DDsjgm5F.js.map → pairs-CnInRu-G.js.map} +1 -1
  124. package/dist/{patch-bDV8YFW0.js → patch-B1bnfhN-.js} +6 -6
  125. package/dist/{patch-bDV8YFW0.js.map → patch-B1bnfhN-.js.map} +1 -1
  126. package/dist/{plan-DUydFc_1.js → plan-DgQxp9yy.js} +34 -13
  127. package/dist/plan-DgQxp9yy.js.map +1 -0
  128. package/dist/{preflight-BkoSxf4C.js → preflight-BRzD30L5.js} +8 -7
  129. package/dist/preflight-BRzD30L5.js.map +1 -0
  130. package/dist/preflight-DlQvbySb.js +1 -0
  131. package/dist/{prepare-CUAWHebF.js → prepare-B_y-AFMv.js} +38 -30
  132. package/dist/prepare-B_y-AFMv.js.map +1 -0
  133. package/dist/prepare-DCKTLHN3.js +2 -0
  134. package/dist/{provenance-D7HK3vzt.js → provenance-DQ0AXn6c.js} +5 -5
  135. package/dist/{provenance-D7HK3vzt.js.map → provenance-DQ0AXn6c.js.map} +1 -1
  136. package/dist/provider-DehR4CMN.js +1 -0
  137. package/dist/providers-B9yTdIqF.js +1 -0
  138. package/dist/providers-DoTq1jHW.js +165 -0
  139. package/dist/providers-DoTq1jHW.js.map +1 -0
  140. package/dist/query-BO-ux7RB.js +139 -0
  141. package/dist/query-BO-ux7RB.js.map +1 -0
  142. package/dist/query-CRQfsw0e.js +1 -0
  143. package/dist/questions-C2dym2ce.js +524 -0
  144. package/dist/questions-C2dym2ce.js.map +1 -0
  145. package/dist/{record-BRP9vZrj.js → record-BKmMvZ6O.js} +9 -1
  146. package/dist/{record-BRP9vZrj.js.map → record-BKmMvZ6O.js.map} +1 -1
  147. package/dist/remote-CPPW86Q9.js +378 -0
  148. package/dist/remote-CPPW86Q9.js.map +1 -0
  149. package/dist/{results-Di7m8dQ3.js → results-BE2f-1XS.js} +6 -5
  150. package/dist/results-BE2f-1XS.js.map +1 -0
  151. package/dist/{resume-SUz1GskV.js → resume-Ca1c8vix.js} +10 -10
  152. package/dist/{resume-SUz1GskV.js.map → resume-Ca1c8vix.js.map} +1 -1
  153. package/dist/{root-CvdRlRZX.js → root-DICDHCtp.js} +4 -4
  154. package/dist/{root-CvdRlRZX.js.map → root-DICDHCtp.js.map} +1 -1
  155. package/dist/{runtime-DdsfnRz_.js → runtime-PX_oXiCS.js} +23 -71
  156. package/dist/runtime-PX_oXiCS.js.map +1 -0
  157. package/dist/sandbox-DLrsvu7U.js +70 -0
  158. package/dist/sandbox-DLrsvu7U.js.map +1 -0
  159. package/dist/sandbox.d.ts +19 -6
  160. package/dist/sandbox.js +1 -2
  161. package/dist/server-Dp8eOeK5.js +1 -0
  162. package/dist/{server-BNnXtmS8.js → server-TUY5xA_A.js} +11 -11
  163. package/dist/server-TUY5xA_A.js.map +1 -0
  164. package/dist/shared-CA61BuPJ.js +188 -0
  165. package/dist/shared-CA61BuPJ.js.map +1 -0
  166. package/dist/{source-Dof0NQBm.js → source-DJGS0a0u.js} +2 -2
  167. package/dist/{source-Dof0NQBm.js.map → source-DJGS0a0u.js.map} +1 -1
  168. package/dist/source-DdbLGR1M.js +1 -0
  169. package/dist/src-BxfCKA3_.js +2 -0
  170. package/dist/{src-C1E9HDWO.js → src-C7_1SqDP.js} +3 -3
  171. package/dist/{src-C1E9HDWO.js.map → src-C7_1SqDP.js.map} +1 -1
  172. package/dist/{src-DDNXsD9H.js → src-CF17Ug08.js} +5 -4
  173. package/dist/src-CF17Ug08.js.map +1 -0
  174. package/dist/{src-C_4Umgh2.js → src-CFp86GtV.js} +52 -51
  175. package/dist/src-CFp86GtV.js.map +1 -0
  176. package/dist/src-CLoOMVWI.js +3 -0
  177. package/dist/src-CcrQbpG8.js +2 -0
  178. package/dist/src-DCFtJRp0.js +2 -0
  179. package/dist/src-DIL0jST0.js +368 -0
  180. package/dist/src-DIL0jST0.js.map +1 -0
  181. package/dist/src-DSYYPEOj.js +2 -0
  182. package/dist/src-DYO3DdnQ.js +1 -0
  183. package/dist/src-DvCg0NBs.js +324 -0
  184. package/dist/src-DvCg0NBs.js.map +1 -0
  185. package/dist/{src-COgE7991.js → src-DvK0EIZx.js} +5 -5
  186. package/dist/{src-COgE7991.js.map → src-DvK0EIZx.js.map} +1 -1
  187. package/dist/{src-DVy58-zZ.js → src-FGXhkEkH.js} +5 -5
  188. package/dist/{src-DVy58-zZ.js.map → src-FGXhkEkH.js.map} +1 -1
  189. package/dist/src-WD-zgQYZ.js +2 -0
  190. package/dist/src-_oI9AePb.js +2 -0
  191. package/dist/{src-8rRXy4u9.js → src-ftu5wPSt.js} +1652 -182
  192. package/dist/src-ftu5wPSt.js.map +1 -0
  193. package/dist/src-qsKCqv7a.js +2 -0
  194. package/dist/{src-D95O-Smv.js → src-u8_ixn_F.js} +15 -11
  195. package/dist/src-u8_ixn_F.js.map +1 -0
  196. package/dist/state-CeR6oz0k.js +66 -0
  197. package/dist/state-CeR6oz0k.js.map +1 -0
  198. package/dist/{state-CiXyLqg0.js → state-DfpHox6b.js} +36 -24
  199. package/dist/state-DfpHox6b.js.map +1 -0
  200. package/dist/state-DpAxYyED.js +1 -0
  201. package/dist/studio-app/assets/index-CBkhNAv8.js +58 -0
  202. package/dist/studio-app/assets/index-CwQN3f_h.css +2 -0
  203. package/dist/studio-app/index.html +2 -2
  204. package/dist/suite-Cw_7G2RM.js +429 -0
  205. package/dist/suite-Cw_7G2RM.js.map +1 -0
  206. package/dist/suite-DamAEnNF.js +1 -0
  207. package/dist/summary-BUKfU-9l.js +611 -0
  208. package/dist/summary-BUKfU-9l.js.map +1 -0
  209. package/dist/{summary-2OAWF2N7.js → summary-Baa4rTHS.js} +7 -7
  210. package/dist/{summary-2OAWF2N7.js.map → summary-Baa4rTHS.js.map} +1 -1
  211. package/dist/testing.d.ts +3 -2
  212. package/dist/testing.js +3 -2
  213. package/dist/{tool-target-BU1JnSE9.js → tool-target-D2mcYlSQ.js} +14 -7
  214. package/dist/tool-target-D2mcYlSQ.js.map +1 -0
  215. package/dist/{tools-B10Uj7OI.js → tools-DLHgetpx.js} +6 -6
  216. package/dist/tools-DLHgetpx.js.map +1 -0
  217. package/dist/transcript-BNNANU8A.js +64 -0
  218. package/dist/transcript-BNNANU8A.js.map +1 -0
  219. package/dist/{types-D8RLfkFP.d.ts → types-BYdlwMwo.d.ts} +398 -46
  220. package/dist/{usage-DDF_6tkV.js → usage-CleNKkly.js} +4 -2
  221. package/dist/{usage-DDF_6tkV.js.map → usage-CleNKkly.js.map} +1 -1
  222. package/dist/view/index.d.ts +290 -8
  223. package/dist/view/index.js +7 -7
  224. package/dist/{views-Dqa5ojfZ.js → views-B8w2J-gD.js} +19 -24
  225. package/dist/views-B8w2J-gD.js.map +1 -0
  226. package/dist/views-DblnI3kA.js +2 -0
  227. package/dist/{worker-entry-BAikHl9F.js → worker-entry-DNnveLqx.js} +16 -229
  228. package/dist/worker-entry-DNnveLqx.js.map +1 -0
  229. package/dist/{workspace-C-TrNIUc.js → workspace-C4RA3srV.js} +7 -7
  230. package/dist/{workspace-C-TrNIUc.js.map → workspace-C4RA3srV.js.map} +1 -1
  231. package/dist/workspace-C_X0tdv6.js +1 -0
  232. package/package.json +12 -12
  233. package/dist/agent-WSmTaesf.js.map +0 -1
  234. package/dist/assemble-BCZzTyR7.js.map +0 -1
  235. package/dist/assemble-C5qq5yT2.js +0 -2
  236. package/dist/capture-Bp74Z6Fr.js.map +0 -1
  237. package/dist/capture-DS-cPyuE.js +0 -2
  238. package/dist/cli-CVrMh_qz.js.map +0 -1
  239. package/dist/cli-spec-CKEYa8V2.js.map +0 -1
  240. package/dist/client-Bbo9SPlK.js.map +0 -1
  241. package/dist/command-BrmXUC-W.js +0 -2
  242. package/dist/command-C5xFPKHM.js.map +0 -1
  243. package/dist/command-CzIFp1JQ.js.map +0 -1
  244. package/dist/command-DUT5l13I.js.map +0 -1
  245. package/dist/commands-CLmPBrTS.js.map +0 -1
  246. package/dist/commands-fI3G2Wnh.js +0 -2
  247. package/dist/config-CGvBeewH.js +0 -457
  248. package/dist/config-CGvBeewH.js.map +0 -1
  249. package/dist/context-DbSMEVKs.js.map +0 -1
  250. package/dist/db-CSSFtGcN.js +0 -3
  251. package/dist/db-CfQFwJtq.js.map +0 -1
  252. package/dist/debug-SEmW4w8f.js +0 -2
  253. package/dist/dist-CTzThfu_.js.map +0 -1
  254. package/dist/docker-CRQGQbIt.js.map +0 -1
  255. package/dist/docker-DV2GNgle.js.map +0 -1
  256. package/dist/docker-Df_YOxxB.js +0 -2
  257. package/dist/doctor-DlKycx5H.js.map +0 -1
  258. package/dist/duration-JsJrIWXq.js +0 -26
  259. package/dist/duration-JsJrIWXq.js.map +0 -1
  260. package/dist/egress-BhzNh7Yi.js.map +0 -1
  261. package/dist/env-BQqj93gu.js +0 -21
  262. package/dist/env-BQqj93gu.js.map +0 -1
  263. package/dist/environment-1jE-HhO-.js +0 -657
  264. package/dist/environment-1jE-HhO-.js.map +0 -1
  265. package/dist/errors-C9w_ud7g.js.map +0 -1
  266. package/dist/errors-yDAEwmZo.js.map +0 -1
  267. package/dist/fake-instructions-CUI33I_F.js +0 -32
  268. package/dist/fake-instructions-CUI33I_F.js.map +0 -1
  269. package/dist/family-D2b7WD10.js +0 -67
  270. package/dist/family-D2b7WD10.js.map +0 -1
  271. package/dist/files-AiEKuEZe.js +0 -2
  272. package/dist/files-BM78_nnF.js +0 -2
  273. package/dist/files-BMCvfB4X.js +0 -2
  274. package/dist/harness-CeCp2GSW.js +0 -171
  275. package/dist/harness-CeCp2GSW.js.map +0 -1
  276. package/dist/images-BMgdpMAX.js.map +0 -1
  277. package/dist/index.js.map +0 -1
  278. package/dist/init-B6vegaP_.js +0 -2
  279. package/dist/init-BIdLF0F9.js.map +0 -1
  280. package/dist/jiti-BcJHCtrb.js +0 -46
  281. package/dist/jiti-BcJHCtrb.js.map +0 -1
  282. package/dist/live-S0qODb6o.js.map +0 -1
  283. package/dist/model-B1BZoZ9b.js.map +0 -1
  284. package/dist/model-BOnlAPzs.js.map +0 -1
  285. package/dist/model-DWeg5J7z.js +0 -2
  286. package/dist/model-FXko2kl7.js +0 -2
  287. package/dist/node-Co7EXge0.js.map +0 -1
  288. package/dist/opencode-providers-ByD85Q0l.js.map +0 -1
  289. package/dist/options-CKqyPGxX.js +0 -739
  290. package/dist/options-CKqyPGxX.js.map +0 -1
  291. package/dist/plan-DUydFc_1.js.map +0 -1
  292. package/dist/preflight-BkoSxf4C.js.map +0 -1
  293. package/dist/preflight-D5LW7Oqi.js +0 -2
  294. package/dist/prepare-CUAWHebF.js.map +0 -1
  295. package/dist/prepare-oji2oO8W.js +0 -3
  296. package/dist/process-CSVO_jsc.js +0 -119
  297. package/dist/process-CSVO_jsc.js.map +0 -1
  298. package/dist/provider-BDbNOQhQ.js +0 -2
  299. package/dist/providers-B1DzMvmH.js +0 -107
  300. package/dist/providers-B1DzMvmH.js.map +0 -1
  301. package/dist/providers-CpEfNU1F.js +0 -2
  302. package/dist/query-BjBMLa-C.js +0 -91
  303. package/dist/query-BjBMLa-C.js.map +0 -1
  304. package/dist/query-oPO_XrTy.js +0 -2
  305. package/dist/questions-B8by4Bbt.js +0 -234
  306. package/dist/questions-B8by4Bbt.js.map +0 -1
  307. package/dist/results-Di7m8dQ3.js.map +0 -1
  308. package/dist/runtime-DdsfnRz_.js.map +0 -1
  309. package/dist/sandbox-D5v-of6d.js +0 -139
  310. package/dist/sandbox-D5v-of6d.js.map +0 -1
  311. package/dist/server-BNnXtmS8.js.map +0 -1
  312. package/dist/server-BNwoKzlm.js +0 -2
  313. package/dist/source-Bk_0ZaEY.js +0 -2
  314. package/dist/src-8rRXy4u9.js.map +0 -1
  315. package/dist/src-BGWuWp6I.js +0 -3
  316. package/dist/src-BRt0O02i.js +0 -3
  317. package/dist/src-Bx2x1ekD.js +0 -3
  318. package/dist/src-C_4Umgh2.js.map +0 -1
  319. package/dist/src-D95O-Smv.js.map +0 -1
  320. package/dist/src-DDNXsD9H.js.map +0 -1
  321. package/dist/src-DLa-ESW0.js +0 -4
  322. package/dist/src-cN0aB-WR.js +0 -3
  323. package/dist/src-cdIVjC5b.js +0 -2
  324. package/dist/src-sIsDHWYq.js +0 -3
  325. package/dist/state-Bo5zg4da.js +0 -2
  326. package/dist/state-CiXyLqg0.js.map +0 -1
  327. package/dist/studio-app/assets/index-B9MCTfuu.css +0 -2
  328. package/dist/studio-app/assets/index-CROH2NB3.js +0 -58
  329. package/dist/summary-BTksrIxn.js +0 -254
  330. package/dist/summary-BTksrIxn.js.map +0 -1
  331. package/dist/tool-target-BU1JnSE9.js.map +0 -1
  332. package/dist/tools-B10Uj7OI.js.map +0 -1
  333. package/dist/views-Cs2Oqayd.js +0 -3
  334. package/dist/views-Dqa5ojfZ.js.map +0 -1
  335. package/dist/worker-entry-BAikHl9F.js.map +0 -1
  336. package/dist/workspace-Do_SiWBs.js +0 -2
@@ -0,0 +1,611 @@
1
+ import { n as clip, r as formatDuration } from "./text-gEcKjAyp.js";
2
+ import { n as formatTokens } from "./usage-CleNKkly.js";
3
+ import { D as runtimeLabel, F as checkLabels, R as commandLine, S as languageLabel, V as labelledJudgements, _ as harnessLabel, l as evalMarkOutcome, lt as formatSeconds, st as formatCount, x as isUngatedMiss } from "./model-DaX4bNLZ.js";
4
+ import { s as suiteResult } from "./suite-Cw_7G2RM.js";
5
+ import { o as warnings } from "./state-DfpHox6b.js";
6
+ import { t as colors } from "./colors-QV9dFVhN.js";
7
+ //#region src/ui/layout.ts
8
+ /** The block for an eval: a pure function of its job and its shape. */
9
+ function layout(_job, across, isFamily, isCompare) {
10
+ if (isCompare) return {
11
+ kind: "regressions",
12
+ family: false
13
+ };
14
+ return {
15
+ kind: across === "change" ? "measure" : across === "harness" ? "harnesses" : across === "both" ? "both" : "results",
16
+ family: isFamily
17
+ };
18
+ }
19
+ /** The last line of a run's output while no analysis model writes its answers. */
20
+ const NO_MODEL_HINT = "Set analysis.model in reeval.config.ts for answers to what each eval asks.";
21
+ /** Where a block's name starts, after its verdict word. */
22
+ const HEAD = 17;
23
+ /** The narrowest a row's label column is, so short labels line up under the name. */
24
+ const LABEL = 17;
25
+ const ASSERTION_MAX = 160;
26
+ const CHECK_LABEL_MAX = 48;
27
+ /** A check's label on one line: an expected value can carry line breaks. */
28
+ const checkLabel = (label) => clip(label.replace(/\s*\n\s*/g, " "), CHECK_LABEL_MAX);
29
+ const VERDICT = {
30
+ pass: "pass",
31
+ fail: "fail",
32
+ infra_error: "infra error",
33
+ skipped: "skipped"
34
+ };
35
+ const EFFECT = {
36
+ better: "helped",
37
+ worse: "made it worse",
38
+ unclear: "can't tell yet",
39
+ same: ""
40
+ };
41
+ const t = (text, paint) => ({
42
+ text,
43
+ paint
44
+ });
45
+ const textOf = (cell) => typeof cell === "string" ? cell : cell.text;
46
+ const show = (cell) => typeof cell === "string" ? cell : cell.paint ? cell.paint(cell.text) : cell.text;
47
+ /**
48
+ * Aligned rows: the first column is as wide as the widest label with its indent (at least
49
+ * `LABEL`), the others as their widest cell, two spaces apart. Free lines print as they are.
50
+ */
51
+ function table(items, width = LABEL) {
52
+ const rows = items.filter((i) => "cells" in i);
53
+ const first = Math.max(width, ...rows.filter((r) => r.cells.length > 1).map((r) => r.indent + textOf(r.cells[0] ?? "").length));
54
+ const widths = [];
55
+ for (const r of rows) r.cells.forEach((cell, i) => {
56
+ if (i > 0) widths[i] = Math.max(widths[i] ?? 0, textOf(cell).length);
57
+ });
58
+ return items.map((item) => {
59
+ const pad = " ".repeat(item.indent);
60
+ if ("free" in item) return `${pad}${show(item.free)}`;
61
+ return `${pad}${item.cells.map((cell, i) => {
62
+ const width = i === 0 ? first - item.indent : widths[i] ?? 0;
63
+ const fill = " ".repeat(Math.max(0, width - textOf(cell).length));
64
+ return i === item.cells.length - 1 ? show(cell) : `${show(cell)}${fill}`;
65
+ }).join(" ")}`.trimEnd();
66
+ });
67
+ }
68
+ const paintOutcome = (c, o) => o === "pass" ? c.green : o === "fail" ? c.red : o === "infra_error" ? c.yellow : c.dim;
69
+ /** A study (every cell `gate: 'none'`) passes whatever it saw, so it never reads `pass`. */
70
+ function verdict(c, e) {
71
+ if (e.todo) return t("todo", c.dim);
72
+ const cells = e.cells ?? [];
73
+ if (e.outcome === "pass" && cells.length && cells.every((x) => !x.gated)) return t("not gated", c.dim);
74
+ return t(VERDICT[e.outcome], paintOutcome(c, e.outcome));
75
+ }
76
+ const plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
77
+ /**
78
+ * `3 of 4`, with the attempts that didn't count named: `2 of 3 · 1 infra error · 1 skipped`. A
79
+ * cancelled attempt is recorded as a fail, but the agent didn't fail it, so it's named apart.
80
+ */
81
+ function cellCount(cell) {
82
+ const cancelled = cell.errors.filter((err) => err.kind === "aborted").reduce((n, err) => n + err.attempts, 0);
83
+ const counted = Math.max(0, cell.passed + cell.failed - cancelled);
84
+ const parts = [
85
+ counted > 0 ? `${cell.passed} of ${counted}` : "",
86
+ cell.infraError ? plural(cell.infraError, "infra error") : "",
87
+ cancelled ? `${cancelled} cancelled` : "",
88
+ cell.skipped ? `${cell.skipped} skipped` : ""
89
+ ].filter(Boolean);
90
+ if (!parts.length) return "not run";
91
+ return parts.join(" · ");
92
+ }
93
+ const failing = (k) => k.outcome.status === "not run" || k.outcome.failed + k.outcome.errored > 0;
94
+ /** A check's result in a cell: `not run`, `failed` for one try, else `1 of 4 · 2 not run`. */
95
+ function checkCount(k, single) {
96
+ const o = k.outcome;
97
+ if (o.status === "not run") return "not run";
98
+ const answered = o.passed + o.failed + o.errored;
99
+ return [single && answered === 1 ? o.failed ? "failed" : o.errored ? "couldn't check" : "passed" : `${o.passed} of ${answered}`, ...[!single && o.errored ? `${o.errored} couldn't check` : "", o.notRun ? `${o.notRun} not run` : ""].filter(Boolean)].join(" · ");
100
+ }
101
+ /** The check's first failure, less the `label: ` its row already shows. */
102
+ function assertionOf(k) {
103
+ if (k.outcome.status !== "ran" || !k.outcome.assertion) return "";
104
+ const line = k.outcome.assertion.trim().split("\n")[0]?.trim() ?? "";
105
+ return clip(line.startsWith(`${k.label}: `) ? line.slice(k.label.length + 2) : line, ASSERTION_MAX);
106
+ }
107
+ /** A cell passed outright: every counted attempt, every check, nothing errored. */
108
+ const clean = (cell) => cell.outcome === "pass" && cell.failed === 0 && cell.infraError === 0 && cell.errors.length === 0 && !cell.checks.some(failing);
109
+ /** An error no check explains, by kind: a throw in the eval's body reads `error`. */
110
+ const ERROR_KIND = {
111
+ assertion: "error",
112
+ judge: "judge",
113
+ timeout: "timeout",
114
+ aborted: "cancelled",
115
+ infra: "infra error",
116
+ turn: "turn error"
117
+ };
118
+ const errorKind = (err) => ERROR_KIND[err.kind];
119
+ const errorText = (err) => `${clip(err.message, ASSERTION_MAX)}${err.attempts > 1 ? ` (${plural(err.attempts, "try", "tries")})` : ""}`;
120
+ /** The evidence under a failing cell: its failed and not-run checks, its errors, `+N more passed`. */
121
+ function evidence(c, cell, indent) {
122
+ const single = cell.passed + cell.failed + cell.infraError <= 1;
123
+ const items = [];
124
+ for (const k of cell.checks.filter(failing)) {
125
+ const count = checkCount(k, single);
126
+ items.push({
127
+ indent,
128
+ cells: [checkLabel(k.label), count === "not run" ? t(count, c.dim) : t(count, c.red)]
129
+ });
130
+ const assertion = assertionOf(k);
131
+ if (assertion) items.push({
132
+ indent: indent + 2,
133
+ free: t(assertion, c.dim)
134
+ });
135
+ }
136
+ for (const err of cell.errors) items.push({
137
+ indent,
138
+ cells: [errorKind(err), t(errorText(err), c.dim)]
139
+ });
140
+ const passed = cell.checks.filter((k) => !failing(k)).length;
141
+ if (passed && items.length) items.push({
142
+ indent,
143
+ free: t(`+${passed} more passed`, c.dim)
144
+ });
145
+ return items;
146
+ }
147
+ /** A control with no environment of its own is the baseline the variants change. */
148
+ const armOf = (cell) => cell.variant ?? (cell.environment === "-" ? "baseline" : cell.environment);
149
+ /** Each cell's label: the parts that vary between them (harness, arm, sandbox). */
150
+ function labeller(cells, parts) {
151
+ const vary = parts.filter((p) => {
152
+ const of = (cell) => p === "harness" ? cell.harness : p === "arm" ? armOf(cell) : cell.sandbox;
153
+ return new Set(cells.map(of)).size > 1;
154
+ });
155
+ const used = vary.length ? vary : parts.slice(0, 1);
156
+ return (cell) => used.map((p) => p === "harness" ? cell.harness : p === "arm" ? armOf(cell) : cell.sandbox).join(" · ");
157
+ }
158
+ const effectText = (c, effect) => {
159
+ if (!effect) return t("");
160
+ const paint = effect === "better" ? c.green : effect === "worse" ? c.red : c.yellow;
161
+ return t(EFFECT[effect], paint);
162
+ };
163
+ const signedPoints = (x) => `${x >= 0 ? "+" : "−"}${Math.round(Math.abs(x) * 100)}`;
164
+ /** `-v`: a variant's difference from its baseline and the interval its effect comes from. */
165
+ function statsLine(cell, cells) {
166
+ const base = cells.find((x) => x.key === cell.vs);
167
+ if (!base || !cell.interval) return null;
168
+ const rate = (x) => x.passed + x.failed ? x.passed / (x.passed + x.failed) : 0;
169
+ return `difference ${signedPoints(rate(cell) - rate(base))} points, 95% interval ${signedPoints(cell.interval.low)}…${signedPoints(cell.interval.high)}`;
170
+ }
171
+ /** The checks that failed or didn't run in some cell, a column per cell; the rest pass everywhere. */
172
+ function checkMatrix(c, cells, label, indent, width) {
173
+ const labels = [...new Set(cells.flatMap((x) => x.checks.map((k) => k.label)))];
174
+ const shown = labels.filter((l) => cells.some((x) => x.checks.some((k) => k.label === l && failing(k))));
175
+ if (!shown.length) return [];
176
+ const items = [{
177
+ indent,
178
+ cells: ["check", ...cells.map((x) => t(label(x), c.dim))]
179
+ }];
180
+ for (const l of shown) {
181
+ const row = cells.map((x) => {
182
+ const k = x.checks.find((y) => y.label === l);
183
+ if (!k) return t("–", c.dim);
184
+ const count = checkCount(k, false);
185
+ if (!failing(k)) return t(count);
186
+ return t(count, k.outcome.status === "not run" || !x.gated ? c.dim : c.red);
187
+ });
188
+ items.push({
189
+ indent,
190
+ cells: [checkLabel(l), ...row]
191
+ });
192
+ const assertion = cells.map((x) => x.checks.find((y) => y.label === l)).map((k) => k ? assertionOf(k) : "").find(Boolean);
193
+ if (assertion) items.push({
194
+ indent: indent + 2,
195
+ free: t(assertion, c.dim)
196
+ });
197
+ }
198
+ const passed = labels.length - shown.length;
199
+ if (passed) items.push({
200
+ indent,
201
+ free: t(`+${passed} more passed`, c.dim)
202
+ });
203
+ return table(items, width);
204
+ }
205
+ /** Tools, agent time and tokens per cell, when each has enough tries and it matters. */
206
+ function effortTable(c, cells, label, indent, failed, width) {
207
+ if (cells.length < 2 || cells.some((x) => !x.effort)) return [];
208
+ if (!failed && !cells.some((x) => x.effortDiffers)) return [];
209
+ const tokens = cells.some((x) => x.effort?.tokens !== null);
210
+ const n = (v, f) => v == null ? "–" : f(v);
211
+ return table([{
212
+ indent,
213
+ cells: [
214
+ "effort",
215
+ t("tools", c.dim),
216
+ t("time", c.dim),
217
+ ...tokens ? [t("tokens", c.dim)] : []
218
+ ]
219
+ }, ...cells.map((x) => ({
220
+ indent,
221
+ cells: [
222
+ label(x),
223
+ n(x.effort?.tools, formatCount),
224
+ n(x.effort?.agentMs, formatSeconds),
225
+ ...tokens ? [n(x.effort?.tokens, formatTokens)] : []
226
+ ]
227
+ }))], width);
228
+ }
229
+ /** Measure a change: a row per arm with its effect, the check matrix and the effort table. */
230
+ function measureBody(c, cells, indent, o) {
231
+ const label = labeller(cells, ["arm", "sandbox"]);
232
+ const arms = [{
233
+ indent,
234
+ cells: ["arm", t("pass", c.dim)]
235
+ }];
236
+ for (const cell of cells) {
237
+ const effect = o.effects ? gatedEffect(c, cell) : t("");
238
+ arms.push({
239
+ indent,
240
+ cells: [
241
+ label(cell),
242
+ cellCount(cell),
243
+ ...effect.text ? [effect] : []
244
+ ]
245
+ });
246
+ const stats = o.verbose && o.effects ? statsLine(cell, cells) : null;
247
+ if (stats) arms.push({
248
+ indent: indent + 2,
249
+ free: t(stats, c.dim)
250
+ });
251
+ for (const err of cell.errors) arms.push({
252
+ indent: indent + 2,
253
+ free: t(`${errorKind(err)} ${errorText(err)}`, c.dim)
254
+ });
255
+ }
256
+ const matrix = o.failed || o.effects;
257
+ const labels = [...cells.map(label), ...matrix ? cells.flatMap((x) => x.checks.filter(failing).map((k) => checkLabel(k.label))) : []];
258
+ const width = Math.max(LABEL, ...labels.map((l) => indent + l.length));
259
+ return [
260
+ ...table(arms, width),
261
+ ...matrix ? checkMatrix(c, cells, label, indent, width) : [],
262
+ ...effortTable(c, cells, label, indent, o.failed, width)
263
+ ];
264
+ }
265
+ /** A row per cell (harness, or sandbox), the ones that didn't pass outright with their evidence. */
266
+ function cellRows(c, cells, heading, indent) {
267
+ const label = labeller(cells, heading === "harness" ? ["harness", "sandbox"] : ["sandbox"]);
268
+ const items = [{
269
+ indent,
270
+ cells: [heading, t("pass", c.dim)]
271
+ }];
272
+ for (const cell of cells) {
273
+ items.push({
274
+ indent,
275
+ cells: [label(cell), cellCount(cell)]
276
+ });
277
+ if (!clean(cell)) items.push(...evidence(c, cell, indent + 2));
278
+ }
279
+ return table(items);
280
+ }
281
+ /** Compare harnesses with arms: a heading per harness, its arms as Measure a change under it. */
282
+ function bothBody(c, cells, indent, o) {
283
+ const harnessOf = labeller(cells, ["harness", "sandbox"]);
284
+ const groups = /* @__PURE__ */ new Map();
285
+ for (const cell of cells) groups.set(harnessOf(cell), [...groups.get(harnessOf(cell)) ?? [], cell]);
286
+ return [...groups].flatMap(([harness, group]) => [`${" ".repeat(indent)}${harness}`, ...measureBody(c, group, indent + 2, o)]);
287
+ }
288
+ /** The rows under an eval's head (or a family case's), by what its cells compare. */
289
+ function cellsBody(c, kind, cells, indent, o) {
290
+ if (kind === "measure") return measureBody(c, cells, indent, o);
291
+ if (kind === "harnesses") return cellRows(c, cells, "harness", indent);
292
+ if (kind === "both") return bothBody(c, cells, indent, o);
293
+ if (cells.length > 1) return cellRows(c, cells, "sandbox", indent);
294
+ return resultsBody(c, cells[0], indent);
295
+ }
296
+ /** A single eval with one cell: its tries, and on anything but a clean pass, the evidence. */
297
+ function resultsBody(c, cell, indent) {
298
+ if (clean(cell)) return [];
299
+ const items = [];
300
+ if (cell.attempts > 1) items.push({
301
+ indent,
302
+ cells: [plural(cell.attempts, "try", "tries"), cellCount(cell)]
303
+ });
304
+ return table([...items, ...evidence(c, cell, indent)]);
305
+ }
306
+ function questionLines(c, questions, indent) {
307
+ return questions.flatMap((q) => {
308
+ const pad = " ".repeat(indent);
309
+ const head = `${pad}${c.dim("question")} ${clip(q.question, 100)}`;
310
+ if (q.votes === 0 && q.error === null) return [head, `${pad} ${c.dim("no pairs to judge: tries that failed their checks are left out")}`];
311
+ if (q.rates.length === 0 && q.error === null) return [head, `${pad} ${c.dim(`${q.votes} ${q.votes === 1 ? "vote" : "votes"}, every one a tie`)}`];
312
+ const cuts = new Set(q.rates.map((r) => r.cut)).size > 1;
313
+ const rows = table(q.rates.map((r) => ({
314
+ indent: indent + 2,
315
+ cells: [cuts ? `${r.name} (${r.cut})` : r.name, `won ${r.wins} of ${r.n}`]
316
+ })));
317
+ const failed = q.error === null ? [] : [`${pad} ${c.yellow(`the model call failed: ${clip(q.error, 200)}`)}`];
318
+ return [
319
+ head,
320
+ ...rows,
321
+ ...failed
322
+ ];
323
+ });
324
+ }
325
+ /** A cell's counts summed over a family's cases. */
326
+ function pooledCount(cases, key) {
327
+ let passed = 0;
328
+ let counted = 0;
329
+ for (const k of cases) {
330
+ const cell = k.cells.find((x) => x.key === key);
331
+ if (!cell) continue;
332
+ passed += cell.passed;
333
+ counted += cell.passed + cell.failed;
334
+ }
335
+ return counted ? `${passed} of ${counted}` : "not run";
336
+ }
337
+ /** A variant's effect, with the `minLift` its interval's low end fell short of, which fails it. */
338
+ function gatedEffect(c, arm) {
339
+ const effect = effectText(c, arm.effect);
340
+ if (arm.minLift === null || !arm.interval || arm.interval.low >= arm.minLift) return effect;
341
+ const short = `not by minLift ${Math.round(arm.minLift * 100)}`;
342
+ return t(effect.text ? `${effect.text}, ${short}` : short, c.red);
343
+ }
344
+ function pooledStats(p, label) {
345
+ return `${label}: ${p.pairs} paired cases, 95% interval ${signedPoints(p.interval.low)}…${signedPoints(p.interval.high)}`;
346
+ }
347
+ /**
348
+ * A family: its template, then a row per case. With one cell a case is a row with its count;
349
+ * with more, the case is outer and its cells inner, laid out as a single eval's are, and a
350
+ * pooled `all cases` row sums each cell's counts with its variant's pooled effect.
351
+ */
352
+ function familyBlock(c, e, kind, verbose) {
353
+ const cases = e.cases ?? [];
354
+ const columns = cases[0]?.cells ?? [];
355
+ const pooled = e.pooled ?? [];
356
+ const pooledOutcome = pooled.some((p) => p.outcome === "fail") ? "fail" : "pass";
357
+ const caseWord = (k) => verdict(c, {
358
+ outcome: k.outcome,
359
+ todo: false,
360
+ cells: k.cells
361
+ });
362
+ const pooledWord = t(VERDICT[pooledOutcome], paintOutcome(c, pooledOutcome));
363
+ const words = [...cases.map(caseWord), ...pooled.length ? [pooledWord] : []];
364
+ const wordWidth = Math.max(...words.map((w) => w.text.length));
365
+ const lead = (word, name) => ({
366
+ text: `${word.text.padEnd(wordWidth)} ${name}`,
367
+ paint: (s) => `${show(word)}${s.slice(word.text.length)}`
368
+ });
369
+ const head = `${" ".repeat(HEAD)}${e.template ?? e.name}`;
370
+ const questions = questionLines(c, e.questions, 2);
371
+ if (columns.length <= 1) {
372
+ const items = [];
373
+ for (const k of cases) {
374
+ const cell = k.cells[0];
375
+ items.push({
376
+ indent: 2,
377
+ cells: [lead(caseWord(k), k.label), cell ? cellCount(cell) : ""]
378
+ });
379
+ if (cell && !clean(cell)) items.push(...evidence(c, cell, 4));
380
+ }
381
+ return [
382
+ head,
383
+ ...table(items),
384
+ ...questions
385
+ ];
386
+ }
387
+ const out = [head];
388
+ for (const k of cases) {
389
+ out.push(` ${show(lead(caseWord(k), k.label))}`);
390
+ const failed = k.outcome !== "pass";
391
+ out.push(...cellsBody(c, kind, k.cells, 4, {
392
+ failed,
393
+ verbose,
394
+ effects: false
395
+ }));
396
+ }
397
+ if (pooled.length) {
398
+ const label = labeller(columns, [
399
+ "harness",
400
+ "arm",
401
+ "sandbox"
402
+ ]);
403
+ const byKey = new Map(pooled.map((p) => [p.key, p]));
404
+ const items = [{
405
+ indent: 4,
406
+ cells: [kind === "harnesses" ? "harness" : "arm", t("pass", c.dim)]
407
+ }];
408
+ for (const col of columns) {
409
+ const p = byKey.get(col.key);
410
+ const effect = p ? gatedEffect(c, p) : t("");
411
+ items.push({
412
+ indent: 4,
413
+ cells: [
414
+ label(col),
415
+ pooledCount(cases, col.key),
416
+ ...effect.text ? [effect] : []
417
+ ]
418
+ });
419
+ if (p && verbose) items.push({
420
+ indent: 6,
421
+ free: t(pooledStats(p, label(col)), c.dim)
422
+ });
423
+ }
424
+ out.push(` ${show(lead(pooledWord, "all cases"))}`, ...table(items));
425
+ }
426
+ return [...out, ...questions];
427
+ }
428
+ /** One eval's block, laid out as `layout()` says. */
429
+ function evalBlock(c, e, verbose = false) {
430
+ const shape = layout("other", e.across, e.family, false);
431
+ if (shape.family) return familyBlock(c, e, shape.kind, verbose);
432
+ const v = verdict(c, e);
433
+ const name = `${e.group.length ? `${e.group.join(" › ")} › ` : ""}${e.name}`;
434
+ const head = `${show(v)}${" ".repeat(Math.max(2, HEAD - v.text.length))}${name}`;
435
+ const cells = e.cells ?? [];
436
+ if (e.todo || e.outcome === "skipped" || !cells.length) return [head];
437
+ const failed = e.outcome !== "pass";
438
+ return [
439
+ head,
440
+ ...cellsBody(c, shape.kind, cells, 2, {
441
+ failed,
442
+ verbose,
443
+ effects: true
444
+ }),
445
+ ...questionLines(c, e.questions, 2)
446
+ ];
447
+ }
448
+ /** `5 fail · 2 pass`: fail first, every case counting one, zeros left out. */
449
+ function tallyLine(c, tally) {
450
+ const parts = [
451
+ tally.fail ? c.red(`${tally.fail} fail`) : "",
452
+ tally.pass ? c.green(`${tally.pass} pass`) : "",
453
+ tally.infraError ? c.yellow(plural(tally.infraError, "infra error")) : "",
454
+ tally.skipped ? c.dim(`${tally.skipped} skipped`) : ""
455
+ ].filter(Boolean);
456
+ return parts.length ? parts.join(c.dim(" · ")) : "no evals ran";
457
+ }
458
+ /** Every eval's block in file-path order, then source order; a blank line around each longer one. */
459
+ function renderBlocks(suite, opts) {
460
+ const c = colors(opts.color);
461
+ const blocks = suite.files.flatMap((f) => [...f.evals].sort((a, b) => a.order - b.order).map((e) => evalBlock(c, e, opts.verbose)));
462
+ const out = [];
463
+ blocks.forEach((block, i) => {
464
+ const prev = blocks[i - 1];
465
+ if (prev && (prev.length > 1 || block.length > 1)) out.push("");
466
+ out.push(...block);
467
+ });
468
+ return out;
469
+ }
470
+ /** A run's result: its blocks, then the tally and, with no analysis model, the hint. `insights` arrives with a model. */
471
+ function render(suite, _insights, opts) {
472
+ const blocks = renderBlocks(suite, opts);
473
+ return [
474
+ ...blocks,
475
+ ...blocks.length ? [""] : [],
476
+ ...opts.notes ?? [],
477
+ tallyLine(colors(opts.color), suite.tally),
478
+ ...opts.hint ? [NO_MODEL_HINT] : []
479
+ ];
480
+ }
481
+ //#endregion
482
+ //#region src/history/summary.ts
483
+ const OUTCOME_MARK = {
484
+ pass: "✓",
485
+ fail: "✗",
486
+ infra_error: "!",
487
+ skipped: "↓"
488
+ };
489
+ /** Enough to read the agent's conclusion; the record and transcript have it whole. */
490
+ const LAST_MESSAGE_LIMIT = 4e3;
491
+ const cell = (s) => s.replace(/\|/g, "\\|").replace(/\n/g, " ");
492
+ /** `5 fail · 2 pass`, with the run's status when it didn't complete. */
493
+ const runTally = (run) => `${tallyLine(colors(false), suiteResult(run).tally)}${run.status === "complete" ? "" : ` · ${run.status === "budget" ? "budget reached" : run.status}`}`;
494
+ const short = (hash) => hash.replace(/^sha256:/, "").slice(0, 12);
495
+ /**
496
+ * The state a run executed in, as label/value pairs, shared by summary.md and `reeval show`. The
497
+ * commit is where the run executed; the commit that adds its history file comes later.
498
+ */
499
+ function stateRows(run) {
500
+ const { git, stack: env } = run;
501
+ const rows = [];
502
+ rows.push(["Executed at", git ? `${git.sha.slice(0, 12)}${git.branch ? ` on ${git.branch}` : ""}${git.dirty ? ", dirty" : ", clean"} (the commit that adds this record is later)` : "not a git repository"]);
503
+ if (git?.dirty) rows.push(["Uncommitted", git.worktreePatch ? `worktree.patch, ${git.worktreePatch.bytes} bytes, sha256 ${short(git.worktreePatch.sha256)}` : `not saved: ${git.worktreePatchNote ?? "unknown"}${git.diffHash ? `; sha256 ${short(git.diffHash)}` : ""}`]);
504
+ rows.push(["Lockfiles", run.dependencies.lockfiles.map((l) => `${l.path} ${short(l.sha256)}`).join(", ") || "none found"]);
505
+ rows.push(["Images", env.images.length ? env.images.map((i) => `${i.ref} · id ${short(i.id)} · ${i.repoDigests[0] ?? "no registry digest (built locally)"} · CLI ${i.agentCli ?? "n/a"}${i.dockerfile ? ` · dockerfile ${i.dockerfile.path} ${short(i.dockerfile.sha256)}` : ""}${i.install?.length ? ` · install ${i.install.length} on ${i.base}` : ""}`).join("; ") : "none (fake sandbox)"]);
506
+ rows.push(["Harnesses", env.harnesses.map(harnessLabel).join(", ") || "none"]);
507
+ rows.push(["Environments", run.environments.map((e) => `${e.name} ${short(e.digest)}${e.skills.length ? ` · skills ${e.skills.map((s) => `${s.name}${s.commit ? `@${s.commit.slice(0, 7)}` : ""}`).join(", ")}` : ""}${e.mcp.length ? ` · mcp ${e.mcp.join(", ")}` : ""}${e.secrets.length ? ` · secrets ${e.secrets.join(", ")}` : ""}`).join("; ") || "none"]);
508
+ rows.push(["Judge", `${env.judge.model ?? "none by default"}${env.judge.resolvedModels.length ? ` (served ${env.judge.resolvedModels.join(", ")})` : ""} · threshold ${env.judge.threshold} · version ${env.judge.version}`]);
509
+ rows.push(["Context", env.context.length ? `${env.context.length} file${env.context.length === 1 ? "" : "s"}: ${env.context.map((c) => `${c.path} ${short(c.sha256)}`).join(", ")}` : "no skills, rules or MCP config found in the sandbox"]);
510
+ rows.push(["Packages", Object.entries(env.packages).map(([name, v]) => `${name} ${v}`).join(" · ")]);
511
+ const language = languageLabel(env);
512
+ rows.push(["reeval", `${env.reeval} · ${runtimeLabel(env)}${language ? ` · ${language}` : ""} · ${env.os}/${env.arch}`]);
513
+ rows.push(["Runner", run.runner.kind === "ci" ? `CI (${run.runner.provider})${run.runner.runUrl ? ` ${run.runner.runUrl}` : ""}` : `local · ${run.author}`]);
514
+ return rows;
515
+ }
516
+ /** Markdown for people and agents landing on a run cold. Links are relative to the artifact dir. */
517
+ function renderSummary(run, opts) {
518
+ const lines = [
519
+ `# reeval run ${run.runId}`,
520
+ "",
521
+ `${runTally(run)} · started ${run.startedAt} (${formatDuration(run.durationMs)})`,
522
+ "",
523
+ `Plan: ${run.profile ? `profile ${run.profile.name} (${run.profile.reason}) · ` : ""}${run.plan.evals} evals · ${run.plan.cells} cells · ${run.plan.attempts} attempts${run.budget ? ` · budget ${[run.budget.attempts !== void 0 ? `${run.budget.attempts} attempts` : "", run.budget.duration ?? ""].filter(Boolean).join(", ")}` : ""}`,
524
+ "",
525
+ ...run.plan.sandboxWarnings.map((w) => `> **Warning:** ${w.message}\n`),
526
+ "## Results",
527
+ "",
528
+ "```text",
529
+ ...render(suiteResult(run), null, {
530
+ color: false,
531
+ verbose: false,
532
+ hint: opts.hint
533
+ }),
534
+ "```",
535
+ "",
536
+ "## State",
537
+ "",
538
+ "| | |",
539
+ "|---|---|",
540
+ ...stateRows(run).map(([k, v]) => `| ${k} | ${cell(v)} |`),
541
+ "",
542
+ ...warnings(run).map((w) => `> **Warning:** ${w}\n`),
543
+ `Record: [${run.runId}.json](../${run.runId}.json) · artifacts: ${run.artifacts}`,
544
+ "",
545
+ "## Attempts"
546
+ ];
547
+ const rank = (o) => o === "fail" || o === "infra_error" ? 0 : o === "pass" ? 1 : 2;
548
+ for (const e of [...run.evals].sort((x, y) => rank(x.outcome) - rank(y.outcome))) {
549
+ if (e.outcome === "skipped") continue;
550
+ lines.push("", `### ${OUTCOME_MARK[evalMarkOutcome(e)]} ${e.id}`, "");
551
+ const multi = e.attempts.length > 1;
552
+ const inputs = (e.answers ?? []).filter((a) => a.input);
553
+ for (const a of inputs) lines.push(`- Question: ${cell(`"${clip(a.question, 80)}"`)} · [what the model saw](${a.input?.path})`);
554
+ if (inputs.length) lines.push("");
555
+ const attemptRank = (a) => isUngatedMiss(e, a) ? 3 : rank(a.outcome);
556
+ for (const a of [...e.attempts].sort((x, y) => attemptRank(x) - attemptRank(y))) {
557
+ if (a.outcome === "skipped") continue;
558
+ if (isUngatedMiss(e, a)) {
559
+ if (multi) lines.push(`#### ○ ${a.id} · missed, not gated`, "");
560
+ lines.push("<details><summary>Why it missed</summary>", "");
561
+ attemptDetail(lines, a);
562
+ lines.push("", "</details>");
563
+ continue;
564
+ }
565
+ if (multi) lines.push(`#### ${OUTCOME_MARK[a.outcome]} ${a.id}`, "");
566
+ attemptDetail(lines, a);
567
+ }
568
+ }
569
+ lines.push("");
570
+ return lines.join("\n");
571
+ }
572
+ /** A failed verdict already says why a judge error failed the attempt; its message repeats it. */
573
+ const repeatsVerdict = (a) => a.error?.kind === "judge" && a.judgements.some((j) => j.verdict === "fail");
574
+ function attemptDetail(lines, a) {
575
+ if (a.error && !repeatsVerdict(a)) lines.push(`**${a.error.kind}**`, "", "```", a.error.message.split("\n").slice(0, 20).join("\n"), "```", "");
576
+ for (const turn of a.turns) {
577
+ lines.push(`- Prompt (${turn.status}, ${formatDuration(turn.durationMs)}): ${clip(cell(turn.prompt), 200)}`);
578
+ if (turn.error) lines.push(` - Error: ${clip(cell(turn.error), 500)}`);
579
+ }
580
+ const t = a.timings;
581
+ lines.push(`- Time: setup ${formatDuration(t.setupMs)} · agent ${formatDuration(t.agentMs)} · checks ${formatDuration(t.checksMs)} · judge ${formatDuration(t.judgeMs)}`);
582
+ const act = a.activity;
583
+ const web = (n, what) => n === null ? `${what} not reported` : `${n} ${what}`;
584
+ lines.push(`- Agent: ${act.fileEdits} file edits · ${act.tools} other tool calls · ${web(act.webSearches, "web searches")} · ${web(act.webFetches, "fetches")} · ${formatDuration(act.reasoningMs)} reasoning${act.stalledTools ? ` · ${act.stalledTools} stalled tool${act.stalledTools === 1 ? "" : "s"} (≥2m)${act.maxToolMs ? `, longest ${formatDuration(act.maxToolMs)}` : ""}` : ""}`);
585
+ for (const { judgement: j, label, labelled } of labelledJudgements(a)) {
586
+ const retried = j.retries?.length ? `, after ${j.retries.length} ${j.retries.length === 1 ? "retry" : "retries"}` : "";
587
+ lines.push(`- Judge${labelled ? ` ${cell(label)}` : ""} **${j.verdict}** ${j.score.toFixed(2)} (threshold ${j.threshold}, ${j.model}${retried}): ${j.question}`);
588
+ }
589
+ const labels = checkLabels(a);
590
+ a.checks.forEach((c, i) => {
591
+ const label = labels[i];
592
+ lines.push(`- Check${label ? ` ${cell(label)}` : ""} exit ${c.exitCode}: \`${cell(commandLine(c.command))}\`${c.log ? ` ([log](${c.log.path}))` : ""}`);
593
+ });
594
+ if (a.changedFiles.length) lines.push(`- Changed: ${a.changedFiles.map((f) => f.count ? `\`${f.path}\` (${f.count} files)` : `${f.status} \`${f.path}\``).join(", ")}`);
595
+ const last = a.turns.at(-1)?.text;
596
+ if (last) {
597
+ const shown = last.length > LAST_MESSAGE_LIMIT ? `${last.slice(0, LAST_MESSAGE_LIMIT)}…` : last;
598
+ lines.push("", "Last message:", "", ...shown.trimEnd().split("\n").map((l) => `> ${l}`), "");
599
+ }
600
+ const links = [
601
+ a.files.setupLog && `[setup log](${a.files.setupLog.path})`,
602
+ a.files.transcript && `[transcript](${a.files.transcript.path})`,
603
+ a.files.diff && `[diff](${a.files.diff.path})`,
604
+ a.files.judgeInput && `[judge input](${a.files.judgeInput.path})`
605
+ ].filter(Boolean);
606
+ if (links.length) lines.push(`- Files: ${links.join(" · ")}`);
607
+ }
608
+ //#endregion
609
+ export { render as a, stateRows as i, renderSummary as n, runTally as r, OUTCOME_MARK as t };
610
+
611
+ //# sourceMappingURL=summary-BUKfU-9l.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-BUKfU-9l.js","names":[],"sources":["../src/ui/layout.ts","../src/history/summary.ts"],"mappings":"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"}