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
@@ -1,25 +1,314 @@
1
- import { n as UsageError } from "./errors-yDAEwmZo.js";
2
- import { o as redactSecrets, s as registerSecret } from "./redact-DJ9JCShu.js";
1
+ import { n as toolTarget } from "./tool-target-D2mcYlSQ.js";
2
+ import { n as UsageError } from "./errors-B6BSMs03.js";
3
3
  import { t as RUN_ID } from "./paths-BmR-7tx3.js";
4
4
  import { a as fromCwd } from "./ids-Bp6ut7ZD.js";
5
- import { o as sortAnalyses } from "./analysis-DlGBDjTj.js";
6
- import { c as readableTranscriptLine } from "./record-BRP9vZrj.js";
7
- import { s as readRecord } from "./files-CSzVADHn.js";
8
- import { s as renderSummary } from "./summary-BTksrIxn.js";
9
- import { c as resolveRun } from "./views-Dqa5ojfZ.js";
10
- import { a as compareView, h as showRecord, n as allRuns, s as historyView } from "./commands-CLmPBrTS.js";
11
- import { r as VIEW_NAMES, s as openHistoryDb } from "./db-CfQFwJtq.js";
12
- import { r as statementCount } from "./query-BjBMLa-C.js";
13
- import { n as resolveFile } from "./source-Dof0NQBm.js";
14
- import { basename } from "node:path";
5
+ import { u as hasAnalysisModel } from "./config-DrVSEVN0.js";
6
+ import { o as redactSecrets, s as registerSecret } from "./redact-DJ9JCShu.js";
7
+ import { o as sortAnalyses } from "./analysis-Bxub9LMT.js";
8
+ import { c as readableTranscriptLine } from "./record-BKmMvZ6O.js";
9
+ import { p as scratchDir, s as readRecord } from "./files-BpUYBwGu.js";
10
+ import { n as renderSummary } from "./summary-BUKfU-9l.js";
11
+ import { c as resolveRun } from "./views-B8w2J-gD.js";
12
+ import { a as compareView, h as showRecord, n as allRuns, s as historyView } from "./commands-YUwlyTbr.js";
13
+ import { r as VIEW_NAMES, s as openHistoryDb } from "./db-DfhipHEF.js";
14
+ import { r as statementCount } from "./query-BO-ux7RB.js";
15
+ import { n as resolveFile } from "./source-DJGS0a0u.js";
16
+ import { basename, join } from "node:path";
17
+ import { z } from "zod";
15
18
  import { timingSafeEqual } from "node:crypto";
16
19
  import { readFile } from "node:fs/promises";
17
- import { z } from "zod";
18
20
  import { McpServer, ResourceTemplate } from "@modelcontextprotocol/server";
21
+ //#region src/mcp/files.ts
22
+ const source = (config) => ({
23
+ root: config.root,
24
+ historyDir: config.history.dir,
25
+ scratch: true
26
+ });
27
+ /** The attempt `ref` names in `run`: its key, or an attempt id (`<cell>#<n>`) unique in the run. */
28
+ function findAttempt(run, ref) {
29
+ const attempts = run.evals.flatMap((e) => e.attempts);
30
+ const exact = attempts.find((a) => a.key === ref);
31
+ if (exact) return exact;
32
+ const byId = attempts.filter((a) => a.id === ref);
33
+ if (byId.length === 1 && byId[0]) return byId[0];
34
+ const keys = attempts.map((a) => a.key);
35
+ const listed = `${keys.slice(0, 20).join("; ")}${keys.length > 20 ? `; … ${keys.length - 20} more` : ""}`;
36
+ throw new Error(byId.length > 1 ? `"${ref}" is an attempt of ${byId.length} evals in ${run.runId}; use its key: ${byId.map((a) => a.key).join("; ")}` : `No attempt "${ref}" in ${run.runId}. Attempts: ${listed}`);
37
+ }
38
+ /** The path of a file the run kept, or null when it wasn't kept. */
39
+ async function runFile(config, run, path) {
40
+ if (!path) return null;
41
+ return resolveFile(source(config), {
42
+ kind: "artifact",
43
+ runId: run.runId,
44
+ segments: path.split("/")
45
+ });
46
+ }
47
+ /** The attempt's transcript lines, or null when the run kept no transcript for it. */
48
+ async function transcriptLines(config, run, attempt) {
49
+ const file = await runFile(config, run, attempt.files.transcript?.path);
50
+ if (!file) return null;
51
+ const lines = [];
52
+ for (const line of (await readFile(file, "utf8")).split("\n")) {
53
+ if (!line.trim()) continue;
54
+ try {
55
+ lines.push(readableTranscriptLine(JSON.parse(line)));
56
+ } catch {}
57
+ }
58
+ return lines;
59
+ }
60
+ async function readTranscript(config, run, ref) {
61
+ const attempt = findAttempt(run, ref);
62
+ const lines = await transcriptLines(config, run, attempt);
63
+ if (!lines) throw new Error(`${run.runId} kept no transcript for ${attempt.key} (recorded with --artifacts failures or none?)`);
64
+ return {
65
+ attempt,
66
+ lines
67
+ };
68
+ }
69
+ /** The last `chars` characters of a kept file, from a line start; null when it wasn't kept. */
70
+ async function fileTail(config, run, path, chars) {
71
+ const file = await runFile(config, run, path);
72
+ if (!file) return null;
73
+ const text = (await readFile(file, "utf8")).trimEnd();
74
+ if (text.length <= chars) return text;
75
+ const cut = text.slice(-chars);
76
+ const nl = cut.indexOf("\n");
77
+ return `…${nl >= 0 && nl < cut.length - 1 ? cut.slice(nl + 1) : cut}`;
78
+ }
79
+ const clip = (text, max) => text.length <= max ? text : `${text.slice(0, max)}… (${text.length - max} more characters)`;
80
+ const asText = (value) => typeof value === "string" ? value : value == null ? "" : JSON.stringify(value);
81
+ /** One transcript line, cut down to what says what happened. Line numbers count from 1. */
82
+ function compactLine(line, n) {
83
+ switch (line.type) {
84
+ case "prompt": return {
85
+ line: n,
86
+ turn: line.turn,
87
+ prompt: clip(line.text, 300)
88
+ };
89
+ case "text": return {
90
+ line: n,
91
+ turn: line.turn,
92
+ text: clip(line.text, 600)
93
+ };
94
+ case "tool": return {
95
+ line: n,
96
+ turn: line.turn,
97
+ tool: line.tool,
98
+ target: toolTarget(line.input, line.tool),
99
+ ok: line.ok,
100
+ output: clip(asText(line.output), 400)
101
+ };
102
+ case "file-edit": return {
103
+ line: n,
104
+ turn: line.turn,
105
+ edit: line.path,
106
+ kind: line.kind
107
+ };
108
+ case "web-search": return {
109
+ line: n,
110
+ turn: line.turn,
111
+ tool: "web-search",
112
+ target: line.query,
113
+ ok: line.ok ?? true
114
+ };
115
+ case "web-fetch": return {
116
+ line: n,
117
+ turn: line.turn,
118
+ tool: "web-fetch",
119
+ target: line.url,
120
+ ok: line.ok
121
+ };
122
+ case "error":
123
+ case "retry": return {
124
+ line: n,
125
+ turn: line.turn,
126
+ [line.type]: clip(line.message, 600)
127
+ };
128
+ case "turn-end": return {
129
+ line: n,
130
+ turn: line.turn,
131
+ turnEnd: line.status
132
+ };
133
+ default: return null;
134
+ }
135
+ }
136
+ function transcriptTail(lines, tail) {
137
+ const compact = lines.flatMap((line, i) => {
138
+ const c = compactLine(line, i + 1);
139
+ return c ? [c] : [];
140
+ });
141
+ return {
142
+ lines: lines.length,
143
+ tail: compact.slice(-tail)
144
+ };
145
+ }
146
+ const failedHere = (c) => c.fail > 0 || c.infraError > 0;
147
+ const changedParts = (a, b) => Object.keys(a).filter((k) => a[k] !== b[k]);
148
+ function changedSources(now, before) {
149
+ const old = new Map(before.map((s) => [s.path, s.sha256]));
150
+ const paths = now.filter((s) => old.get(s.path) !== s.sha256).map((s) => s.path);
151
+ const kept = new Set(now.map((s) => s.path));
152
+ return [...paths, ...before.filter((s) => !kept.has(s.path)).map((s) => `${s.path} (removed)`)];
153
+ }
154
+ /**
155
+ * The cell's earlier runs, newest first: whether this failure is new, the last run where the cell
156
+ * passed cleanly, the run its failing streak started in, and what changed since that clean run.
157
+ */
158
+ function cellHistory(entries, run, e, cell) {
159
+ const earlier = [];
160
+ for (const entry of entries) {
161
+ if (entry.runId >= run.runId) continue;
162
+ const ev = entry.evals.find((x) => x.key === e.key);
163
+ const c = ev?.cells.find((x) => x.key === cell.key);
164
+ if (ev && c) earlier.push({
165
+ entry,
166
+ eval: ev,
167
+ cell: c
168
+ });
169
+ }
170
+ earlier.reverse();
171
+ const runRef = (entry) => ({
172
+ runId: entry.runId,
173
+ sha: entry.git?.sha.slice(0, 12) ?? null,
174
+ recorded: entry.recorded
175
+ });
176
+ let since = run.runId;
177
+ for (const x of earlier) {
178
+ if (!failedHere(x.cell)) break;
179
+ since = x.entry.runId;
180
+ }
181
+ const clean = earlier.find((x) => !failedHere(x.cell) && x.cell.pass > 0);
182
+ const previous = earlier[0];
183
+ return {
184
+ new: !previous || !failedHere(previous.cell),
185
+ failingSince: since,
186
+ lastPass: clean ? {
187
+ ...runRef(clean.entry),
188
+ changed: changedParts(cell.fingerprintParts, clean.cell.fingerprintParts),
189
+ changedSources: changedSources(e.sources, clean.eval.sources)
190
+ } : null,
191
+ earlier: earlier.slice(0, 8).map((x) => ({
192
+ ...runRef(x.entry),
193
+ pass: x.cell.pass,
194
+ fail: x.cell.fail,
195
+ infraError: x.cell.infraError,
196
+ sameFingerprint: x.cell.fingerprint === cell.fingerprint
197
+ })),
198
+ earlierRuns: earlier.length
199
+ };
200
+ }
201
+ async function describeAttempt(config, run, e, a, tail) {
202
+ const cell = e.cells.find((c) => c.key === a.cell);
203
+ const lines = await transcriptLines(config, run, a);
204
+ const failedChecks = await Promise.all(a.checks.filter((c) => c.exitCode !== 0).map(async (c) => ({
205
+ command: c.command,
206
+ exitCode: c.exitCode,
207
+ log: c.log?.path ?? null,
208
+ logTail: await fileTail(config, run, c.log?.path, 1500)
209
+ })));
210
+ const finalText = a.turns.findLast((t) => t.text)?.text ?? "";
211
+ const failedAssertions = (a.assertions ?? []).filter((x) => x.status !== "pass").map((x) => ({
212
+ label: x.label,
213
+ matcher: x.matcher,
214
+ status: x.status,
215
+ soft: x.soft,
216
+ message: x.message ? clip(x.message, 800) : null
217
+ }));
218
+ const repeated = a.error?.kind === "assertion" && a.assertions?.some((x) => x.message === a.error?.message);
219
+ return {
220
+ eval: e.id,
221
+ attempt: a.key,
222
+ cell: a.cell,
223
+ harness: cell?.harness ?? null,
224
+ environment: cell?.environment ?? null,
225
+ outcome: a.outcome,
226
+ gated: cell ? cell.gate !== "none" : true,
227
+ error: a.error ? {
228
+ kind: a.error.kind,
229
+ message: repeated ? null : clip(a.error.message, 1500)
230
+ } : null,
231
+ failedAssertions,
232
+ failedJudgements: a.judgements.filter((j) => j.verdict === "fail").map((j) => ({
233
+ question: j.question,
234
+ score: j.score,
235
+ threshold: j.threshold
236
+ })),
237
+ failedChecks,
238
+ turnErrors: a.turns.flatMap((t, i) => t.error ? [{
239
+ turn: i + 1,
240
+ error: t.error
241
+ }] : []),
242
+ setupLogTail: a.outcome === "infra_error" ? await fileTail(config, run, a.files.setupLog?.path, 1500) : null,
243
+ changedFiles: a.changedFiles.slice(0, 30).map((f) => `${f.status} ${f.path}`),
244
+ finalMessage: finalText ? clip(finalText, 800) : null,
245
+ transcript: lines ? transcriptTail(lines, tail) : null,
246
+ files: {
247
+ transcript: a.files.transcript?.path ?? null,
248
+ diff: a.files.diff?.path ?? null,
249
+ setupLog: a.files.setupLog?.path ?? null
250
+ }
251
+ };
252
+ }
253
+ const rank = (e, a) => {
254
+ const gated = e.cells.find((c) => c.key === a.cell)?.gate !== "none";
255
+ return (a.outcome === "fail" ? 0 : 1) + (gated ? 0 : 2);
256
+ };
257
+ async function failuresView(config, options = {}) {
258
+ const entries = await allRuns(config);
259
+ const entry = resolveRun(entries, options.run);
260
+ const dir = entry.recorded ? config.history.dir : scratchDir(config.root);
261
+ const run = await readRecord(join(dir, `${entry.runId}.json`));
262
+ const needle = options.filter?.toLowerCase();
263
+ const failing = run.evals.filter((e) => !needle || e.id.toLowerCase().includes(needle)).flatMap((e) => e.attempts.filter((a) => a.outcome === "fail" || a.outcome === "infra_error").map((a) => ({
264
+ e,
265
+ a
266
+ }))).sort((x, y) => rank(x.e, x.a) - rank(y.e, y.a));
267
+ const limit = options.limit ?? 10;
268
+ const shown = failing.slice(0, limit);
269
+ const histories = /* @__PURE__ */ new Map();
270
+ const cells = shown.flatMap(({ e, a }) => {
271
+ const id = `${e.key}\0${a.cell}`;
272
+ const cell = e.cells.find((c) => c.key === a.cell);
273
+ if (histories.has(id) || !cell) return [];
274
+ histories.set(id, cellHistory(entries, run, e, cell));
275
+ return [{
276
+ eval: e.id,
277
+ cell: a.cell,
278
+ ...histories.get(id)
279
+ }];
280
+ });
281
+ const attempts = await Promise.all(shown.map(({ e, a }) => describeAttempt(config, run, e, a, options.tail ?? 12)));
282
+ const header = {
283
+ runId: run.runId,
284
+ recorded: entry.recorded,
285
+ sha: run.git?.sha.slice(0, 12) ?? null,
286
+ summary: run.summary
287
+ };
288
+ if (failing.length === 0) {
289
+ const latest = [...entries].reverse().find((x) => x.summary.fail + x.summary.infraError > 0 && x.runId !== run.runId);
290
+ return {
291
+ ...header,
292
+ failing: 0,
293
+ attempts: [],
294
+ cells: [],
295
+ note: `Nothing failed in ${run.runId}${needle ? ` matching "${options.filter}"` : ""}.${latest ? ` The latest run with a failure is ${latest.runId}: pass it as run.` : ""}`
296
+ };
297
+ }
298
+ return {
299
+ ...header,
300
+ failing: failing.length,
301
+ shown: shown.length,
302
+ attempts,
303
+ cells,
304
+ next: `For the whole story of one attempt, transcript { run: "${run.runId}", attempt }. compare { head: "${run.runId}" } diffs this run against its baseline; query_flaky_cells says whether a cell fails intermittently across runs.`
305
+ };
306
+ }
19
307
  const MAX_ROWS = 1e3;
20
308
  /** What each view has one row per, for its tool's description. */
21
309
  const VIEW_ROWS = {
22
310
  lift: "variant cell per run: its control, both sides’ pass counts and pass@1, lift points and the 95% interval (lo, hi), within_noise",
311
+ family_lift: "variant cell per pooled evaluate.each per run: its control, paired cases, both sides’ mean pass@1 over them, lift points and the 95% interval (lo, hi), verdict and effort ratios",
23
312
  effort: "cell per run: attempts, median tool calls, agent seconds and tokens; for a variant, the ratios to its control, p-values and verdicts (tokens omitted when either side has no usage sample)",
24
313
  factor_effects: "factor contrast (environment, harness, model) by evidence tier, with pass@1 and effort verdicts",
25
314
  skill_reads: "attempt and skill its environment placed: the transcript line of its first read (a path under skills/<name>/, or a skill / load_skill call), and how many",
@@ -28,7 +317,8 @@ const VIEW_ROWS = {
28
317
  failing_attempts: "failed or infra-error attempt, with its harness, model, environment skill, error, OOM kills and first failed check",
29
318
  eval_trend: "eval per run: outcome, pass@1, branch, PR and fingerprint",
30
319
  verdict_flips: "judge question per cell whose pass rate changed from its previous run",
31
- check_discrimination: "check (expect label) per variant cell per run: its passes, failures and not-run on both sides, and whether it discriminates (both-pass and both-fail checks measure nothing)"
320
+ check_discrimination: "check (expect label) per variant cell per run: its passes, failures and not-run on both sides, and whether it discriminates (both-pass and both-fail checks measure nothing)",
321
+ check_rates: "check (expect label) per cell per run, control and variant alike: harness, environment, role, passes, failures, errors, not-run and rate = pass / (pass + fail), null when none"
32
322
  };
33
323
  const READ_ONLY = {
34
324
  readOnlyHint: true,
@@ -111,44 +401,7 @@ const cell = z.union([
111
401
  z.null()
112
402
  ]);
113
403
  const limitField = (max, fallback, what) => z.number().int().min(1).max(max).optional().describe(`At most this many ${what} (default ${fallback}, at most ${max})`);
114
- const source = (config) => ({
115
- root: config.root,
116
- historyDir: config.history.dir,
117
- scratch: true
118
- });
119
404
  const transcriptUri = (runId, attemptKey) => `reeval://runs/${runId}/transcripts/${encodeURIComponent(attemptKey)}`;
120
- /** The attempt `ref` names in `run`: its key, or an attempt id (`<cell>#<n>`) unique in the run. */
121
- function findAttempt(run, ref) {
122
- const attempts = run.evals.flatMap((e) => e.attempts);
123
- const exact = attempts.find((a) => a.key === ref);
124
- if (exact) return exact;
125
- const byId = attempts.filter((a) => a.id === ref);
126
- if (byId.length === 1 && byId[0]) return byId[0];
127
- const keys = attempts.map((a) => a.key);
128
- const listed = `${keys.slice(0, 20).join("; ")}${keys.length > 20 ? `; … ${keys.length - 20} more` : ""}`;
129
- throw new Error(byId.length > 1 ? `"${ref}" is an attempt of ${byId.length} evals in ${run.runId}; use its key: ${byId.map((a) => a.key).join("; ")}` : `No attempt "${ref}" in ${run.runId}. Attempts: ${listed}`);
130
- }
131
- async function readTranscript(config, run, ref) {
132
- const attempt = findAttempt(run, ref);
133
- const path = attempt.files.transcript?.path;
134
- const file = path && await resolveFile(source(config), {
135
- kind: "artifact",
136
- runId: run.runId,
137
- segments: path.split("/")
138
- });
139
- if (!file) throw new Error(`${run.runId} kept no transcript for ${attempt.key} (recorded with --artifacts failures or none?)`);
140
- const lines = [];
141
- for (const line of (await readFile(file, "utf8")).split("\n")) {
142
- if (!line.trim()) continue;
143
- try {
144
- lines.push(readableTranscriptLine(JSON.parse(line)));
145
- } catch {}
146
- }
147
- return {
148
- attempt,
149
- lines
150
- };
151
- }
152
405
  /** Reads the record of a run named by id, recorded or scratch; null if there's none. */
153
406
  async function recordById(config, runId) {
154
407
  if (!RUN_ID.test(runId)) return null;
@@ -158,8 +411,9 @@ async function recordById(config, runId) {
158
411
  });
159
412
  return file ? readRecord(file) : null;
160
413
  }
161
- const INSTRUCTIONS = `Read-only access to this project's reeval run history: runs of evals for coding agents, recorded in git and scratch runs in .reeval/runs.
162
- Start with history (pass/fail per eval over recent runs) or show (one run). compare diffs two runs (regressions, fixes, stack changes). The query_* tools answer common questions across runs (lift, flaky cells, drift, failures); query runs any read-only SQL (query_schema lists tables and columns). transcript reads what an agent did in one attempt. analysis returns saved reeval analyze results. Runs are named latest, latest~N, a run id prefix or a git SHA prefix. Nothing here runs evals: that's reeval run in a terminal.`;
414
+ const INSTRUCTIONS = `Read-only access to this project's reeval run history: runs of evals for coding agents, recorded in git and scratch runs in .reeval/runs. Use it to debug a failed, flaky or regressed eval run.
415
+ Why did a run fail? Call failures first: each failed attempt's failing checks and judge scores, error, check logs and the end of its transcript, and whether its cell failed in earlier runs (new or not, since which run, what changed since it last passed). It's far smaller than show or summary.md.
416
+ Then: transcript reads one attempt in full; compare diffs two runs (regressions, fixes, stack changes); history is pass/fail per eval over recent runs; show is one run's whole record. The query_* tools answer questions across runs (flaky_cells, drift, failing_attempts, eval_trend, lift, effort); query runs read-only SQL (query_schema lists tables). analysis returns saved reeval analyze results. Runs are named latest, latest~N, a run id prefix or a git SHA prefix. Nothing here runs evals: reeval run does, in a terminal.`;
163
417
  /** Builds the factory `reeval mcp` serves: one McpServer per connection (stdio) or request (HTTP). */
164
418
  async function serverFactory(config, version) {
165
419
  const columns = await viewColumns(config);
@@ -169,23 +423,55 @@ async function serverFactory(config, version) {
169
423
  title: "reeval run history",
170
424
  version
171
425
  }, { instructions: INSTRUCTIONS });
426
+ server.registerTool("failures", {
427
+ title: "Why a run failed",
428
+ description: "Debug a failed reeval eval run: why each failed or infra-error attempt failed. Per attempt: the failing expect checks with their messages, failed judge scores against thresholds, the error, nonzero check commands with their log tails, the setup log tail for infra errors, changed files, the final message and the last transcript lines (tool calls with targets and output). Per cell: whether the failure is new, the run its failing streak started in, the last run it passed and what changed since (fingerprint parts, eval source files). Start here, before show or transcript.",
429
+ inputSchema: z.object({
430
+ run: z.string().optional().describe(RUN_REF),
431
+ filter: z.string().optional().describe("Only evals whose id contains this"),
432
+ limit: limitField(100, 10, "failed attempts"),
433
+ tail: z.number().int().min(0).max(100).optional().describe(`Transcript lines from the end of each attempt (default 12)`)
434
+ }),
435
+ annotations: READ_ONLY
436
+ }, guard(async ({ run, filter, limit, tail }) => failuresView(config, {
437
+ run,
438
+ filter,
439
+ limit,
440
+ tail
441
+ })));
172
442
  server.registerTool("history", {
173
443
  title: "Run history",
174
- description: "Pass/fail of each eval over recent runs, oldest first (reeval history --json): runs[] with their ids, commits and summaries, and rows[] with one outcome per run (null when not run) and drift, the runs where the eval or its stack changed.",
444
+ description: "Pass/fail of each reeval eval over recent runs, oldest first (reeval history --json, without each run's evals[], which show has): runs[] with their ids, commits and summaries, and rows[] with one outcome per run (null when not run) and drift, the runs where the eval or its stack changed. With no recorded runs it lists the scratch runs, with a note.",
175
445
  inputSchema: z.object({
176
446
  filter: z.string().optional().describe("Only evals whose id contains this"),
177
447
  limit: limitField(500, 20, "runs"),
178
448
  all: z.boolean().optional().describe("Include scratch runs that were never recorded")
179
449
  }),
180
450
  annotations: READ_ONLY
181
- }, guard(async ({ filter, limit, all }) => historyView(config, {
182
- filter,
183
- limit,
184
- all
185
- })));
451
+ }, guard(async ({ filter, limit, all }) => {
452
+ const view = briefHistory(await historyView(config, {
453
+ filter,
454
+ limit,
455
+ all
456
+ }));
457
+ if (all || view.runs.length) return view;
458
+ const scratch = briefHistory(await historyView(config, {
459
+ filter,
460
+ limit,
461
+ all: true
462
+ }));
463
+ if (!scratch.runs.length) return {
464
+ ...view,
465
+ note: "No runs yet. reeval run, in a terminal, makes one."
466
+ };
467
+ return {
468
+ ...scratch,
469
+ note: "No recorded runs yet, so these are the scratch runs in .reeval/runs (reeval run without --record). reeval run --record, or reeval record latest, records one."
470
+ };
471
+ }));
186
472
  server.registerTool("show", {
187
473
  title: "Show a run",
188
- description: "One run: its full record (reeval show --json: stack, plan, evals, cells with lift and effort, attempts with verdicts, errors, token usage and file references) or, with format md, its summary.md.",
474
+ description: "One reeval run: its full record (reeval show --json: stack, plan, evals, cells with lift and effort, attempts with verdicts, errors, token usage and file references) or, with format md, its summary.md. Large on big runs: to see why a run failed, failures is smaller.",
189
475
  inputSchema: z.object({
190
476
  run: z.string().optional().describe(RUN_REF),
191
477
  format: z.enum(["json", "md"]).optional().describe("json (default) or md")
@@ -195,19 +481,27 @@ async function serverFactory(config, version) {
195
481
  const record = await showRecord(config, run);
196
482
  return format === "md" ? {
197
483
  runId: record.runId,
198
- markdown: renderSummary(record).trimEnd()
484
+ markdown: renderSummary(record, { hint: !hasAnalysisModel(config) }).trimEnd()
199
485
  } : record;
200
486
  }));
201
487
  server.registerTool("compare", {
202
488
  title: "Compare two runs",
203
- description: "Diffs two runs eval by eval (reeval compare --json): each row's base and head outcome and status (regressed, fixed, same, drift = not comparable, added, removed, infra), per-cell lift and effort, and what changed in the stack. With only head, the base is head's nearest recorded ancestor.",
489
+ description: "Diffs two reeval runs eval by eval to find a regression (reeval compare --json): each changed row's base and head outcome and status (regressed, fixed, drift = not comparable, added, removed, infra), per-cell lift and effort, and what changed in the stack; same counts the unchanged evals, which all: true lists too. With only head, the base is head's nearest recorded ancestor.",
204
490
  inputSchema: z.object({
205
491
  base: z.string().optional().describe(`${RUN_REF}; needs head too`),
206
- head: z.string().optional().describe(RUN_REF)
492
+ head: z.string().optional().describe(RUN_REF),
493
+ all: z.boolean().optional().describe("Also list the evals whose outcome is the same")
207
494
  }),
208
495
  annotations: READ_ONLY
209
- }, guard(async ({ base, head }) => {
210
- return (await compareView(config, base ? [base, head ?? "latest"] : head ? [head] : [])).json;
496
+ }, guard(async ({ base, head, all }) => {
497
+ const { json } = await compareView(config, base ? [base, head ?? "latest"] : head ? [head] : []);
498
+ if (all) return json;
499
+ const rows = json.rows.filter((r) => r.status !== "same");
500
+ return {
501
+ ...json,
502
+ rows,
503
+ same: json.rows.length - rows.length
504
+ };
211
505
  }));
212
506
  server.registerTool("analysis", {
213
507
  title: "Saved analyses of a run",
@@ -216,7 +510,7 @@ async function serverFactory(config, version) {
216
510
  annotations: READ_ONLY
217
511
  }, guard(async ({ run }) => {
218
512
  const entry = resolveRun(await allRuns(config), run);
219
- const { listAnalyses } = await import("./files-AiEKuEZe.js");
513
+ const { listAnalyses } = await import("./files-D6J0iSdx.js");
220
514
  const entries = await listAnalyses(config.root, [config.history.dir], entry.runId, true);
221
515
  return {
222
516
  runId: entry.runId,
@@ -225,7 +519,7 @@ async function serverFactory(config, version) {
225
519
  }));
226
520
  server.registerTool("transcript", {
227
521
  title: "Attempt transcript",
228
- description: "What the agent did in one attempt: its transcript.jsonl lines (prompts, messages, tool calls with inputs and outputs), a page at a time. Attempt keys are in show's evals[].attempts[].key.",
522
+ description: "What the coding agent did in one reeval attempt, to debug it: its transcript.jsonl lines (prompts, messages, tool calls with inputs and outputs), a page at a time. Attempt keys are in show's evals[].attempts[].key.",
229
523
  inputSchema: z.object({
230
524
  run: z.string().optional().describe(RUN_REF),
231
525
  attempt: z.string().describe("The attempt key, or its id (<cell>#<n>) when only one eval has it"),
@@ -250,7 +544,7 @@ async function serverFactory(config, version) {
250
544
  const where = z.strictObject(Object.fromEntries(cols.map((c) => [c, cell.optional()]))).optional().describe("Only rows where each named column equals its value (null matches NULL)");
251
545
  server.registerTool(`query_${view}`, {
252
546
  title: `Query ${view}`,
253
- description: `The ${view} view of reeval query: one row per ${VIEW_ROWS[view] ?? "row"}. Columns: ${cols.join(", ")}.`,
547
+ description: `The ${view} view of reeval query, over the eval run history: one row per ${VIEW_ROWS[view] ?? "row"}. Columns: ${cols.join(", ")}.`,
254
548
  inputSchema: z.object({
255
549
  where,
256
550
  limit: limitField(MAX_ROWS, 100, "rows")
@@ -288,7 +582,7 @@ async function serverFactory(config, version) {
288
582
  annotations: READ_ONLY
289
583
  }, guard(async () => withDb(config, (db) => ({ objects: db.schema() }))));
290
584
  server.registerResource("run", new ResourceTemplate("reeval://runs/{runId}", { list: async () => {
291
- const { listHeaders } = await import("./source-Bk_0ZaEY.js");
585
+ const { listHeaders } = await import("./source-DdbLGR1M.js");
292
586
  return { resources: [...await listHeaders(source(config))].reverse().map((r) => ({
293
587
  uri: `reeval://runs/${r.runId}`,
294
588
  name: r.runId,
@@ -340,6 +634,16 @@ const decode = (s) => {
340
634
  return s;
341
635
  }
342
636
  };
637
+ /**
638
+ * History without each run's evals[], which repeat rows[] with every cell's fingerprint and sources:
639
+ * kilobytes a run, and some MCP clients show a long tool result as empty.
640
+ */
641
+ function briefHistory(view) {
642
+ return {
643
+ ...view,
644
+ runs: view.runs.map(({ evals: _, ...run }) => run)
645
+ };
646
+ }
343
647
  function rowsOf(result, limit) {
344
648
  return {
345
649
  columns: result.columns,
@@ -361,7 +665,7 @@ async function mcpCommand({ config, flags, version }) {
361
665
  "port",
362
666
  "host",
363
667
  "token"
364
- ]) if (flags[name] !== void 0) throw new UsageError(`--${name} needs --http`);
668
+ ]) if (flags[name] !== void 0) throw new UsageError(`--${name} needs --http: reeval mcp serves over stdio without it`);
365
669
  }
366
670
  const factory = await serverFactory(config, version);
367
671
  if (!flags.http) {
@@ -387,12 +691,12 @@ async function serveHttp(factory, config, flags) {
387
691
  const host = flags.host ?? "127.0.0.1";
388
692
  if (host !== "127.0.0.1" && host !== "localhost" && host !== "::1") console.error(`warning: reeval mcp is listening on ${host}, reachable beyond this machine`);
389
693
  const token = flags.token ?? (process.env.REEVAL_MCP_TOKEN || void 0);
390
- if (token !== void 0 && !token.trim()) throw new UsageError("--token needs a value");
694
+ if (token !== void 0 && !token.trim()) throw new UsageError("--token needs a value: --token <secret>, or REEVAL_MCP_TOKEN");
391
695
  registerSecret(token);
392
696
  const { createMcpHandler } = await import("@modelcontextprotocol/server");
393
697
  const { Hono } = await import("hono");
394
698
  const { serve } = await import("@hono/node-server");
395
- const { allowedHosts } = await import("./server-BNwoKzlm.js");
699
+ const { allowedHosts } = await import("./server-Dp8eOeK5.js");
396
700
  const hosts = allowedHosts(host, port);
397
701
  const handler = createMcpHandler(factory, { onerror: report });
398
702
  const app = new Hono();
@@ -414,7 +718,7 @@ async function serveHttp(factory, config, flags) {
414
718
  hostname: host,
415
719
  port
416
720
  });
417
- s.once("error", (error) => reject(error.code === "EADDRINUSE" ? new UsageError(`Port ${port} is in use; pass --port`) : error));
721
+ s.once("error", (error) => reject(error.code === "EADDRINUSE" ? new UsageError(`Port ${port} is in use: pass another with --port`) : error));
418
722
  s.once("listening", () => resolve(s));
419
723
  });
420
724
  const url = `http://${host.includes(":") ? `[${host}]` : host}:${port}/mcp`;
@@ -430,4 +734,4 @@ async function serveHttp(factory, config, flags) {
430
734
  //#endregion
431
735
  export { mcpCommand };
432
736
 
433
- //# sourceMappingURL=command-C5xFPKHM.js.map
737
+ //# sourceMappingURL=command-TgbzPizb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-TgbzPizb.js","names":[],"sources":["../src/mcp/files.ts","../src/mcp/failures.ts","../src/mcp/server.ts","../src/mcp/command.ts"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { n as allRuns, r as checkoutCommand, i as compareCommand, o as historyCommand, d as record, f as recordCommand, m as showCommand } from "./commands-YUwlyTbr.js";