reeval 0.8.0 → 0.10.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 (326) hide show
  1. package/README.md +52 -40
  2. package/THIRD_PARTY_NOTICES.md +218 -11
  3. package/assets/package.json +1 -1
  4. package/assets/pnpm-lock.yaml +30 -30
  5. package/dist/adapter-DWlpOtRn.js +279 -0
  6. package/dist/adapter-DWlpOtRn.js.map +1 -0
  7. package/dist/{agent-B72lZ6w5.js → agent-CURAwx_q.js} +6 -6
  8. package/dist/{agent-B72lZ6w5.js.map → agent-CURAwx_q.js.map} +1 -1
  9. package/dist/{agent-Cfj1wD4D.js → agent-CaS_2Sce.js} +92 -26
  10. package/dist/agent-CaS_2Sce.js.map +1 -0
  11. package/dist/{analysis-BTNnKh1w.js → analysis-Bxub9LMT.js} +4 -4
  12. package/dist/{analysis-BTNnKh1w.js.map → analysis-Bxub9LMT.js.map} +1 -1
  13. package/dist/{assemble-BbFVjHeS.js → assemble-B9Alds-z.js} +290 -30
  14. package/dist/assemble-B9Alds-z.js.map +1 -0
  15. package/dist/assemble-J5MukZFY.js +1 -0
  16. package/dist/{client-CwzU9CiW.js → assert-EUIoRdIt.js} +38 -112
  17. package/dist/assert-EUIoRdIt.js.map +1 -0
  18. package/dist/bridge/index.mjs +248 -55
  19. package/dist/{capture-BXhBfmsM.js → capture-CNb9SuU5.js} +204 -39
  20. package/dist/capture-CNb9SuU5.js.map +1 -0
  21. package/dist/capture-jquXZBKK.js +1 -0
  22. package/dist/{cli-BMjTKY-D.js → cli-D303Vj5N.js} +257 -146
  23. package/dist/cli-D303Vj5N.js.map +1 -0
  24. package/dist/{cli-spec-DSvKsOK4.js → cli-spec-BPZbQG2p.js} +38 -19
  25. package/dist/cli-spec-BPZbQG2p.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-JPGNzFsA.js → command-BLfT7vnQ.js} +19 -18
  31. package/dist/command-BLfT7vnQ.js.map +1 -0
  32. package/dist/{command-BK4kOgkH.js → command-BT9a37ZR.js} +381 -78
  33. package/dist/command-BT9a37ZR.js.map +1 -0
  34. package/dist/{command-BqJtFiPy.js → command-Bge8F7Ko.js} +384 -101
  35. package/dist/command-Bge8F7Ko.js.map +1 -0
  36. package/dist/command-BkFjijN2.js +1 -0
  37. package/dist/{command-BdstSEHu.js → command-CMJtHKRa.js} +14 -14
  38. package/dist/{command-BdstSEHu.js.map → command-CMJtHKRa.js.map} +1 -1
  39. package/dist/commands-1p-bIWhN.js +1 -0
  40. package/dist/{commands-B618jg3C.js → commands-BFx16WB8.js} +8 -8
  41. package/dist/commands-BFx16WB8.js.map +1 -0
  42. package/dist/config-DEgnUiU-.js +756 -0
  43. package/dist/config-DEgnUiU-.js.map +1 -0
  44. package/dist/{context-CvUv7DUb.js → context-C1mxXh80.js} +11 -7
  45. package/dist/context-C1mxXh80.js.map +1 -0
  46. package/dist/{db-DFbtGIYy.js → db-CdHizc4_.js} +582 -53
  47. package/dist/db-CdHizc4_.js.map +1 -0
  48. package/dist/db-Dm1cRJJP.js +2 -0
  49. package/dist/debug-D7bEv_UV.js +1 -0
  50. package/dist/{dist-CTzThfu_.js → dist-B8hJImYt.js} +17 -4
  51. package/dist/dist-B8hJImYt.js.map +1 -0
  52. package/dist/{docker-2qns7hJ2.js → docker-7b_2SaH7.js} +35 -22
  53. package/dist/docker-7b_2SaH7.js.map +1 -0
  54. package/dist/{docker-IFRW8K5f.js → docker-sZrNrr82.js} +3 -3
  55. package/dist/docker-sZrNrr82.js.map +1 -0
  56. package/dist/docker-yauK-9X8.js +1 -0
  57. package/dist/{doctor-B6oYTPoR.js → doctor-BYNok4UO.js} +263 -84
  58. package/dist/doctor-BYNok4UO.js.map +1 -0
  59. package/dist/{duration-JsJrIWXq.js → duration-CEOQww97.js} +2 -2
  60. package/dist/{duration-JsJrIWXq.js.map → duration-CEOQww97.js.map} +1 -1
  61. package/dist/{egress-IUKdeayc.js → egress-C4PZTSSe.js} +147 -14
  62. package/dist/egress-C4PZTSSe.js.map +1 -0
  63. package/dist/environment-DNjRk0nU.js +1133 -0
  64. package/dist/environment-DNjRk0nU.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-C1UVL21l.d.ts +92 -0
  70. package/dist/evaluate-D4zeRGBF.js +2351 -0
  71. package/dist/evaluate-D4zeRGBF.js.map +1 -0
  72. package/dist/family-D2b7WD10.js +67 -0
  73. package/dist/family-D2b7WD10.js.map +1 -0
  74. package/dist/files-BAt0i00X.js +1 -0
  75. package/dist/{files-CMSUXAEg.js → files-BXUdY8tr.js} +10 -9
  76. package/dist/{files-CMSUXAEg.js.map → files-BXUdY8tr.js.map} +1 -1
  77. package/dist/files-BhyltlDB.js +1 -0
  78. package/dist/files-Bk1mC3AN.js +43 -0
  79. package/dist/files-Bk1mC3AN.js.map +1 -0
  80. package/dist/{files-B6aVVGrk.js → files-DQmHE7pb.js} +5 -5
  81. package/dist/{files-B6aVVGrk.js.map → files-DQmHE7pb.js.map} +1 -1
  82. package/dist/files-ZZPqfAo6.js +1 -0
  83. package/dist/{git-EmdFJ4DY.js → git-DfG-YJ1u.js} +2 -2
  84. package/dist/{git-EmdFJ4DY.js.map → git-DfG-YJ1u.js.map} +1 -1
  85. package/dist/harness-B8QC9u0O.js +323 -0
  86. package/dist/harness-B8QC9u0O.js.map +1 -0
  87. package/dist/harness.d.ts +19 -31
  88. package/dist/harness.js +1 -2
  89. package/dist/{header-_F0EWob3.js → header-hK-Z_Po9.js} +10 -3
  90. package/dist/{header-_F0EWob3.js.map → header-hK-Z_Po9.js.map} +1 -1
  91. package/dist/{images-CscddrJU.js → images-0On0cztu.js} +114 -45
  92. package/dist/images-0On0cztu.js.map +1 -0
  93. package/dist/index.d.ts +10 -26
  94. package/dist/index.js +6 -2108
  95. package/dist/{init-NQfIvi-0.js → init-B77Rpcqc.js} +26 -8
  96. package/dist/init-B77Rpcqc.js.map +1 -0
  97. package/dist/init-BrOWin3W.js +1 -0
  98. package/dist/{invocations-nPvrlZPj.js → invocations-DbGfBAA_.js} +4 -4
  99. package/dist/{invocations-nPvrlZPj.js.map → invocations-DbGfBAA_.js.map} +1 -1
  100. package/dist/{judge-CeYPN8P_.js → judge-DW_GDOmB.js} +11 -19
  101. package/dist/{judge-CeYPN8P_.js.map → judge-DW_GDOmB.js.map} +1 -1
  102. package/dist/judge.d.ts +2 -2
  103. package/dist/judge.js +1 -1
  104. package/dist/{live-S0qODb6o.js → live-jlfszAbb.js} +9 -20
  105. package/dist/live-jlfszAbb.js.map +1 -0
  106. package/dist/matchers-Ddmc2z7H.js +118 -0
  107. package/dist/matchers-Ddmc2z7H.js.map +1 -0
  108. package/dist/{model-DEQo3FkZ.js → model-DaVCY3rb.js} +2 -2
  109. package/dist/{model-DEQo3FkZ.js.map → model-DaVCY3rb.js.map} +1 -1
  110. package/dist/model-NM3ID0uR.js +1 -0
  111. package/dist/{model-Cl507trk.js → model-h_cDtcRr.js} +19 -18
  112. package/dist/model-h_cDtcRr.js.map +1 -0
  113. package/dist/model-nwWJvaUR.js +1 -0
  114. package/dist/{model-BndnmcLm.js → model-oqcDplJG.js} +271 -34
  115. package/dist/model-oqcDplJG.js.map +1 -0
  116. package/dist/{node-Co7EXge0.js → node-B3ydHo6t.js} +10 -47
  117. package/dist/node-B3ydHo6t.js.map +1 -0
  118. package/dist/object-CLf2-tNq.js +9 -0
  119. package/dist/object-CLf2-tNq.js.map +1 -0
  120. package/dist/{opencode-providers-ByD85Q0l.js → opencode-providers-J9colP0-.js} +96 -21
  121. package/dist/opencode-providers-J9colP0-.js.map +1 -0
  122. package/dist/options-Bh2W63dK.js +1119 -0
  123. package/dist/options-Bh2W63dK.js.map +1 -0
  124. package/dist/{pairs-DDsjgm5F.js → pairs-CnInRu-G.js} +76 -2
  125. package/dist/{pairs-DDsjgm5F.js.map → pairs-CnInRu-G.js.map} +1 -1
  126. package/dist/{patch-CGCVipPu.js → patch-Zac5aIRM.js} +6 -6
  127. package/dist/{patch-CGCVipPu.js.map → patch-Zac5aIRM.js.map} +1 -1
  128. package/dist/{plan-PPc4-6xd.js → plan-C9Cy27Ay.js} +75 -32
  129. package/dist/plan-C9Cy27Ay.js.map +1 -0
  130. package/dist/preflight-CPWpQeBI.js +1 -0
  131. package/dist/{preflight-CddycK92.js → preflight-D7iFPKeK.js} +8 -7
  132. package/dist/preflight-D7iFPKeK.js.map +1 -0
  133. package/dist/prepare-BGjePFQl.js +2 -0
  134. package/dist/{prepare-CsP-057p.js → prepare-doGxaAGR.js} +38 -30
  135. package/dist/prepare-doGxaAGR.js.map +1 -0
  136. package/dist/process-CSVO_jsc.js +119 -0
  137. package/dist/process-CSVO_jsc.js.map +1 -0
  138. package/dist/{provenance-CsX6PHDR.js → provenance-DmE9uPVt.js} +4 -4
  139. package/dist/{provenance-CsX6PHDR.js.map → provenance-DmE9uPVt.js.map} +1 -1
  140. package/dist/provider-DehR4CMN.js +1 -0
  141. package/dist/providers-gDMko8fl.js +1 -0
  142. package/dist/providers-tAOD1NQN.js +165 -0
  143. package/dist/providers-tAOD1NQN.js.map +1 -0
  144. package/dist/{query-BUcwCYsI.js → query-Bes9Kh6Y.js} +3 -3
  145. package/dist/{query-BUcwCYsI.js.map → query-Bes9Kh6Y.js.map} +1 -1
  146. package/dist/query-C_G_svLU.js +1 -0
  147. package/dist/questions-DjAwMxZ3.js +524 -0
  148. package/dist/questions-DjAwMxZ3.js.map +1 -0
  149. package/dist/{record-BRP9vZrj.js → record-BKmMvZ6O.js} +9 -1
  150. package/dist/{record-BRP9vZrj.js.map → record-BKmMvZ6O.js.map} +1 -1
  151. package/dist/remote-HDRt16ew.js +378 -0
  152. package/dist/remote-HDRt16ew.js.map +1 -0
  153. package/dist/{results-BcSHWbgB.js → results-DuauQI3Z.js} +4 -4
  154. package/dist/{results-BcSHWbgB.js.map → results-DuauQI3Z.js.map} +1 -1
  155. package/dist/{resume-DZ9AmfPv.js → resume-BRfa8E_s.js} +10 -10
  156. package/dist/{resume-DZ9AmfPv.js.map → resume-BRfa8E_s.js.map} +1 -1
  157. package/dist/{root-CvdRlRZX.js → root-DICDHCtp.js} +4 -4
  158. package/dist/{root-CvdRlRZX.js.map → root-DICDHCtp.js.map} +1 -1
  159. package/dist/{runtime-Dfb2r-cS.js → runtime-PX_oXiCS.js} +105 -11
  160. package/dist/runtime-PX_oXiCS.js.map +1 -0
  161. package/dist/sandbox-D3A8oUb7.js +70 -0
  162. package/dist/sandbox-D3A8oUb7.js.map +1 -0
  163. package/dist/sandbox.d.ts +22 -8
  164. package/dist/sandbox.js +1 -2
  165. package/dist/server-C7sg1ndo.js +1 -0
  166. package/dist/{server-Da60oe4b.js → server-XDleKaF_.js} +11 -11
  167. package/dist/server-XDleKaF_.js.map +1 -0
  168. package/dist/shared-DYpIb1BI.js +166 -0
  169. package/dist/shared-DYpIb1BI.js.map +1 -0
  170. package/dist/{source-BVOnL3sn.js → source-C8xumIWj.js} +2 -2
  171. package/dist/{source-BVOnL3sn.js.map → source-C8xumIWj.js.map} +1 -1
  172. package/dist/source-fGd0SaKP.js +1 -0
  173. package/dist/{src-TdJuDYqB.js → src-B7treWa8.js} +1597 -292
  174. package/dist/src-B7treWa8.js.map +1 -0
  175. package/dist/{src-C1E9HDWO.js → src-C7_1SqDP.js} +3 -3
  176. package/dist/{src-C1E9HDWO.js.map → src-C7_1SqDP.js.map} +1 -1
  177. package/dist/{src-DDNXsD9H.js → src-CF17Ug08.js} +5 -4
  178. package/dist/src-CF17Ug08.js.map +1 -0
  179. package/dist/{src-D_cXqmnI.js → src-CFp86GtV.js} +60 -60
  180. package/dist/src-CFp86GtV.js.map +1 -0
  181. package/dist/src-C_lPtowT.js +2 -0
  182. package/dist/src-DIL0jST0.js +368 -0
  183. package/dist/src-DIL0jST0.js.map +1 -0
  184. package/dist/src-DNnG4e4R.js +2 -0
  185. package/dist/src-DTbrY1hi.js +2 -0
  186. package/dist/src-DdyJEh2v.js +2 -0
  187. package/dist/src-Dj9PAroc.js +2 -0
  188. package/dist/src-Du8H85Qq.js +2 -0
  189. package/dist/src-DvCg0NBs.js +324 -0
  190. package/dist/src-DvCg0NBs.js.map +1 -0
  191. package/dist/{src-CxTC5kNI.js → src-DvK0EIZx.js} +8 -10
  192. package/dist/{src-CxTC5kNI.js.map → src-DvK0EIZx.js.map} +1 -1
  193. package/dist/{src-DVy58-zZ.js → src-FGXhkEkH.js} +5 -5
  194. package/dist/{src-DVy58-zZ.js.map → src-FGXhkEkH.js.map} +1 -1
  195. package/dist/src-jzagbuqH.js +2 -0
  196. package/dist/src-ofUaYbuY.js +3 -0
  197. package/dist/src-pJZOrYR9.js +1 -0
  198. package/dist/{src-D95O-Smv.js → src-u8_ixn_F.js} +15 -11
  199. package/dist/src-u8_ixn_F.js.map +1 -0
  200. package/dist/{state-B72h_jEw.js → state-C__9swoG.js} +36 -24
  201. package/dist/state-C__9swoG.js.map +1 -0
  202. package/dist/state-CeR6oz0k.js +66 -0
  203. package/dist/state-CeR6oz0k.js.map +1 -0
  204. package/dist/state-CgjQo29K.js +1 -0
  205. package/dist/studio-app/assets/index-CwQN3f_h.css +2 -0
  206. package/dist/studio-app/assets/{index-Bgr-efZm.js → index-DrQc2Yxd.js} +12 -12
  207. package/dist/studio-app/index.html +2 -2
  208. package/dist/{summary-k3mhWWXv.js → summary-BLAVLySU.js} +202 -17
  209. package/dist/summary-BLAVLySU.js.map +1 -0
  210. package/dist/{summary-CJdxaRdM.js → summary-DgyjUh_l.js} +7 -7
  211. package/dist/{summary-CJdxaRdM.js.map → summary-DgyjUh_l.js.map} +1 -1
  212. package/dist/testing.d.ts +3 -2
  213. package/dist/testing.js +3 -2
  214. package/dist/{tool-target-BU1JnSE9.js → tool-target-D2mcYlSQ.js} +14 -7
  215. package/dist/tool-target-D2mcYlSQ.js.map +1 -0
  216. package/dist/{tools-D0gF2QoV.js → tools-GCyNYSc1.js} +7 -7
  217. package/dist/tools-GCyNYSc1.js.map +1 -0
  218. package/dist/transcript-BNNANU8A.js +64 -0
  219. package/dist/transcript-BNNANU8A.js.map +1 -0
  220. package/dist/types-C5vI3g1C.js.map +1 -1
  221. package/dist/{types-_LOFdPUf.d.ts → types-g17bRAzt.d.ts} +578 -49
  222. package/dist/{usage-DDF_6tkV.js → usage-CleNKkly.js} +4 -2
  223. package/dist/{usage-DDF_6tkV.js.map → usage-CleNKkly.js.map} +1 -1
  224. package/dist/view/index.d.ts +83 -17
  225. package/dist/view/index.js +7 -6
  226. package/dist/views-BW6oCDUQ.js +2 -0
  227. package/dist/{views-DZ1YDqey.js → views-BmQF4UCI.js} +13 -8
  228. package/dist/views-BmQF4UCI.js.map +1 -0
  229. package/dist/{worker-entry-DXeyWY-m.js → worker-entry-yOchGYYv.js} +16 -225
  230. package/dist/worker-entry-yOchGYYv.js.map +1 -0
  231. package/dist/{workspace-DpXdrslo.js → workspace-CgyHEM0l.js} +7 -7
  232. package/dist/{workspace-DpXdrslo.js.map → workspace-CgyHEM0l.js.map} +1 -1
  233. package/dist/workspace-D8sSgpiy.js +1 -0
  234. package/docker/Dockerfile +7 -5
  235. package/package.json +12 -12
  236. package/dist/agent-Cfj1wD4D.js.map +0 -1
  237. package/dist/assemble-BbFVjHeS.js.map +0 -1
  238. package/dist/assemble-CXiTVyHD.js +0 -2
  239. package/dist/capture-BXhBfmsM.js.map +0 -1
  240. package/dist/capture-N7r3yeak.js +0 -2
  241. package/dist/cli-BMjTKY-D.js.map +0 -1
  242. package/dist/cli-spec-DSvKsOK4.js.map +0 -1
  243. package/dist/client-CwzU9CiW.js.map +0 -1
  244. package/dist/command-BK4kOgkH.js.map +0 -1
  245. package/dist/command-BqJtFiPy.js.map +0 -1
  246. package/dist/command-CTVGuH8y.js +0 -2
  247. package/dist/command-JPGNzFsA.js.map +0 -1
  248. package/dist/commands-B618jg3C.js.map +0 -1
  249. package/dist/commands-Duo2ur3r.js +0 -2
  250. package/dist/config-B-E0xRkf.js +0 -447
  251. package/dist/config-B-E0xRkf.js.map +0 -1
  252. package/dist/context-CvUv7DUb.js.map +0 -1
  253. package/dist/db-CnoUy-FZ.js +0 -3
  254. package/dist/db-DFbtGIYy.js.map +0 -1
  255. package/dist/debug-SEmW4w8f.js +0 -2
  256. package/dist/dist-CTzThfu_.js.map +0 -1
  257. package/dist/docker-2qns7hJ2.js.map +0 -1
  258. package/dist/docker-D6t23fZl.js +0 -2
  259. package/dist/docker-IFRW8K5f.js.map +0 -1
  260. package/dist/doctor-B6oYTPoR.js.map +0 -1
  261. package/dist/egress-IUKdeayc.js.map +0 -1
  262. package/dist/environment-DiCljXMD.js +0 -657
  263. package/dist/environment-DiCljXMD.js.map +0 -1
  264. package/dist/errors-C9w_ud7g.js.map +0 -1
  265. package/dist/errors-yDAEwmZo.js.map +0 -1
  266. package/dist/fake-instructions-CUI33I_F.js +0 -32
  267. package/dist/fake-instructions-CUI33I_F.js.map +0 -1
  268. package/dist/files-BM78_nnF.js +0 -2
  269. package/dist/files-BpYgF2z0.js +0 -2
  270. package/dist/files-YCCVaTQC.js +0 -2
  271. package/dist/harness-iqWeJQMM.js +0 -154
  272. package/dist/harness-iqWeJQMM.js.map +0 -1
  273. package/dist/images-CscddrJU.js.map +0 -1
  274. package/dist/index.js.map +0 -1
  275. package/dist/init-DBHyi92L.js +0 -2
  276. package/dist/init-NQfIvi-0.js.map +0 -1
  277. package/dist/jiti-BcJHCtrb.js +0 -46
  278. package/dist/jiti-BcJHCtrb.js.map +0 -1
  279. package/dist/live-S0qODb6o.js.map +0 -1
  280. package/dist/model-BbLGRtOs.js +0 -2
  281. package/dist/model-BndnmcLm.js.map +0 -1
  282. package/dist/model-Cl507trk.js.map +0 -1
  283. package/dist/model-DMOraCcm.js +0 -2
  284. package/dist/node-Co7EXge0.js.map +0 -1
  285. package/dist/opencode-providers-ByD85Q0l.js.map +0 -1
  286. package/dist/options-DPUlm4FI.js +0 -735
  287. package/dist/options-DPUlm4FI.js.map +0 -1
  288. package/dist/plan-PPc4-6xd.js.map +0 -1
  289. package/dist/preflight-CddycK92.js.map +0 -1
  290. package/dist/preflight-Zumy0adT.js +0 -2
  291. package/dist/prepare-CKdMoC7e.js +0 -3
  292. package/dist/prepare-CsP-057p.js.map +0 -1
  293. package/dist/provider-BDbNOQhQ.js +0 -2
  294. package/dist/providers-DkwiLKDS.js +0 -107
  295. package/dist/providers-DkwiLKDS.js.map +0 -1
  296. package/dist/providers-yXZZcPfx.js +0 -2
  297. package/dist/query-noGbekGF.js +0 -2
  298. package/dist/questions-BEPj98fZ.js +0 -234
  299. package/dist/questions-BEPj98fZ.js.map +0 -1
  300. package/dist/runtime-Dfb2r-cS.js.map +0 -1
  301. package/dist/sandbox--ZXuscAZ.js +0 -134
  302. package/dist/sandbox--ZXuscAZ.js.map +0 -1
  303. package/dist/server-Da60oe4b.js.map +0 -1
  304. package/dist/server-DiGR4JxK.js +0 -2
  305. package/dist/source-Dqu0jKwx.js +0 -2
  306. package/dist/src-BHNiP-5A.js +0 -4
  307. package/dist/src-BT4dB5CO.js +0 -2
  308. package/dist/src-BT5pwco0.js +0 -3
  309. package/dist/src-BrMbt1B2.js +0 -3
  310. package/dist/src-D13vpMh0.js +0 -3
  311. package/dist/src-D95O-Smv.js.map +0 -1
  312. package/dist/src-DDNXsD9H.js.map +0 -1
  313. package/dist/src-D_cXqmnI.js.map +0 -1
  314. package/dist/src-DdRlaiRc.js +0 -3
  315. package/dist/src-TdJuDYqB.js.map +0 -1
  316. package/dist/src-xczuQbE6.js +0 -3
  317. package/dist/state-B72h_jEw.js.map +0 -1
  318. package/dist/state-Bf_Vq_pV.js +0 -2
  319. package/dist/studio-app/assets/index-CUx6GoL5.css +0 -2
  320. package/dist/summary-k3mhWWXv.js.map +0 -1
  321. package/dist/tool-target-BU1JnSE9.js.map +0 -1
  322. package/dist/tools-D0gF2QoV.js.map +0 -1
  323. package/dist/views-DZ1YDqey.js.map +0 -1
  324. package/dist/views-Ds0GXWtX.js +0 -3
  325. package/dist/worker-entry-DXeyWY-m.js.map +0 -1
  326. package/dist/workspace-DzNL-3iO.js +0 -2
@@ -1,33 +1,322 @@
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-BTNnKh1w.js";
6
- import { c as readableTranscriptLine } from "./record-BRP9vZrj.js";
7
- import { s as readRecord } from "./files-CMSUXAEg.js";
8
- import { o as renderSummary } from "./summary-k3mhWWXv.js";
9
- import { c as resolveRun } from "./views-DZ1YDqey.js";
10
- import { a as compareView, h as showRecord, n as allRuns, s as historyView } from "./commands-B618jg3C.js";
11
- import { r as VIEW_NAMES, s as openHistoryDb } from "./db-DFbtGIYy.js";
12
- import { r as statementCount } from "./query-BUcwCYsI.js";
13
- import { n as resolveFile } from "./source-BVOnL3sn.js";
14
- import { basename } from "node:path";
5
+ import { o as redactSecrets, s as registerSecret } from "./redact-DJ9JCShu.js";
6
+ import { o as sortAnalyses } from "./analysis-Bxub9LMT.js";
7
+ import { c as readableTranscriptLine } from "./record-BKmMvZ6O.js";
8
+ import { p as scratchDir, s as readRecord } from "./files-BXUdY8tr.js";
9
+ import { c as renderSummary } from "./summary-BLAVLySU.js";
10
+ import { c as resolveRun } from "./views-BmQF4UCI.js";
11
+ import { a as compareView, h as showRecord, n as allRuns, s as historyView } from "./commands-BFx16WB8.js";
12
+ import { r as VIEW_NAMES, s as openHistoryDb } from "./db-CdHizc4_.js";
13
+ import { r as statementCount } from "./query-Bes9Kh6Y.js";
14
+ import { n as resolveFile } from "./source-C8xumIWj.js";
15
+ import { basename, join } from "node:path";
16
+ import { z } from "zod";
15
17
  import { timingSafeEqual } from "node:crypto";
16
18
  import { readFile } from "node:fs/promises";
17
- import { z } from "zod";
18
19
  import { McpServer, ResourceTemplate } from "@modelcontextprotocol/server";
20
+ //#region src/mcp/files.ts
21
+ const source = (config) => ({
22
+ root: config.root,
23
+ historyDir: config.history.dir,
24
+ scratch: true
25
+ });
26
+ /** The attempt `ref` names in `run`: its key, or an attempt id (`<cell>#<n>`) unique in the run. */
27
+ function findAttempt(run, ref) {
28
+ const attempts = run.evals.flatMap((e) => e.attempts);
29
+ const exact = attempts.find((a) => a.key === ref);
30
+ if (exact) return exact;
31
+ const byId = attempts.filter((a) => a.id === ref);
32
+ if (byId.length === 1 && byId[0]) return byId[0];
33
+ const keys = attempts.map((a) => a.key);
34
+ const listed = `${keys.slice(0, 20).join("; ")}${keys.length > 20 ? `; … ${keys.length - 20} more` : ""}`;
35
+ 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}`);
36
+ }
37
+ /** The path of a file the run kept, or null when it wasn't kept. */
38
+ async function runFile(config, run, path) {
39
+ if (!path) return null;
40
+ return resolveFile(source(config), {
41
+ kind: "artifact",
42
+ runId: run.runId,
43
+ segments: path.split("/")
44
+ });
45
+ }
46
+ /** The attempt's transcript lines, or null when the run kept no transcript for it. */
47
+ async function transcriptLines(config, run, attempt) {
48
+ const file = await runFile(config, run, attempt.files.transcript?.path);
49
+ if (!file) return null;
50
+ const lines = [];
51
+ for (const line of (await readFile(file, "utf8")).split("\n")) {
52
+ if (!line.trim()) continue;
53
+ try {
54
+ lines.push(readableTranscriptLine(JSON.parse(line)));
55
+ } catch {}
56
+ }
57
+ return lines;
58
+ }
59
+ async function readTranscript(config, run, ref) {
60
+ const attempt = findAttempt(run, ref);
61
+ const lines = await transcriptLines(config, run, attempt);
62
+ if (!lines) throw new Error(`${run.runId} kept no transcript for ${attempt.key} (recorded with --artifacts failures or none?)`);
63
+ return {
64
+ attempt,
65
+ lines
66
+ };
67
+ }
68
+ /** The last `chars` characters of a kept file, from a line start; null when it wasn't kept. */
69
+ async function fileTail(config, run, path, chars) {
70
+ const file = await runFile(config, run, path);
71
+ if (!file) return null;
72
+ const text = (await readFile(file, "utf8")).trimEnd();
73
+ if (text.length <= chars) return text;
74
+ const cut = text.slice(-chars);
75
+ const nl = cut.indexOf("\n");
76
+ return `…${nl >= 0 && nl < cut.length - 1 ? cut.slice(nl + 1) : cut}`;
77
+ }
78
+ const clip = (text, max) => text.length <= max ? text : `${text.slice(0, max)}… (${text.length - max} more characters)`;
79
+ const asText = (value) => typeof value === "string" ? value : value == null ? "" : JSON.stringify(value);
80
+ /** One transcript line, cut down to what says what happened. Line numbers count from 1. */
81
+ function compactLine(line, n) {
82
+ switch (line.type) {
83
+ case "prompt": return {
84
+ line: n,
85
+ turn: line.turn,
86
+ prompt: clip(line.text, 300)
87
+ };
88
+ case "text": return {
89
+ line: n,
90
+ turn: line.turn,
91
+ text: clip(line.text, 600)
92
+ };
93
+ case "tool": return {
94
+ line: n,
95
+ turn: line.turn,
96
+ tool: line.tool,
97
+ target: toolTarget(line.input, line.tool),
98
+ ok: line.ok,
99
+ output: clip(asText(line.output), 400)
100
+ };
101
+ case "file-edit": return {
102
+ line: n,
103
+ turn: line.turn,
104
+ edit: line.path,
105
+ kind: line.kind
106
+ };
107
+ case "web-search": return {
108
+ line: n,
109
+ turn: line.turn,
110
+ tool: "web-search",
111
+ target: line.query,
112
+ ok: line.ok ?? true
113
+ };
114
+ case "web-fetch": return {
115
+ line: n,
116
+ turn: line.turn,
117
+ tool: "web-fetch",
118
+ target: line.url,
119
+ ok: line.ok
120
+ };
121
+ case "error":
122
+ case "retry": return {
123
+ line: n,
124
+ turn: line.turn,
125
+ [line.type]: clip(line.message, 600)
126
+ };
127
+ case "turn-end": return {
128
+ line: n,
129
+ turn: line.turn,
130
+ turnEnd: line.status
131
+ };
132
+ default: return null;
133
+ }
134
+ }
135
+ function transcriptTail(lines, tail) {
136
+ const compact = lines.flatMap((line, i) => {
137
+ const c = compactLine(line, i + 1);
138
+ return c ? [c] : [];
139
+ });
140
+ return {
141
+ lines: lines.length,
142
+ tail: compact.slice(-tail)
143
+ };
144
+ }
145
+ const failedHere = (c) => c.fail > 0 || c.infraError > 0;
146
+ const changedParts = (a, b) => Object.keys(a).filter((k) => a[k] !== b[k]);
147
+ function changedSources(now, before) {
148
+ const old = new Map(before.map((s) => [s.path, s.sha256]));
149
+ const paths = now.filter((s) => old.get(s.path) !== s.sha256).map((s) => s.path);
150
+ const kept = new Set(now.map((s) => s.path));
151
+ return [...paths, ...before.filter((s) => !kept.has(s.path)).map((s) => `${s.path} (removed)`)];
152
+ }
153
+ /**
154
+ * The cell's earlier runs, newest first: whether this failure is new, the last run where the cell
155
+ * passed cleanly, the run its failing streak started in, and what changed since that clean run.
156
+ */
157
+ function cellHistory(entries, run, e, cell) {
158
+ const earlier = [];
159
+ for (const entry of entries) {
160
+ if (entry.runId >= run.runId) continue;
161
+ const ev = entry.evals.find((x) => x.key === e.key);
162
+ const c = ev?.cells.find((x) => x.key === cell.key);
163
+ if (ev && c) earlier.push({
164
+ entry,
165
+ eval: ev,
166
+ cell: c
167
+ });
168
+ }
169
+ earlier.reverse();
170
+ const runRef = (entry) => ({
171
+ runId: entry.runId,
172
+ sha: entry.git?.sha.slice(0, 12) ?? null,
173
+ recorded: entry.recorded
174
+ });
175
+ let since = run.runId;
176
+ for (const x of earlier) {
177
+ if (!failedHere(x.cell)) break;
178
+ since = x.entry.runId;
179
+ }
180
+ const clean = earlier.find((x) => !failedHere(x.cell) && x.cell.pass > 0);
181
+ const previous = earlier[0];
182
+ return {
183
+ new: !previous || !failedHere(previous.cell),
184
+ failingSince: since,
185
+ lastPass: clean ? {
186
+ ...runRef(clean.entry),
187
+ changed: changedParts(cell.fingerprintParts, clean.cell.fingerprintParts),
188
+ changedSources: changedSources(e.sources, clean.eval.sources)
189
+ } : null,
190
+ earlier: earlier.slice(0, 8).map((x) => ({
191
+ ...runRef(x.entry),
192
+ pass: x.cell.pass,
193
+ fail: x.cell.fail,
194
+ infraError: x.cell.infraError,
195
+ sameFingerprint: x.cell.fingerprint === cell.fingerprint
196
+ })),
197
+ earlierRuns: earlier.length
198
+ };
199
+ }
200
+ async function describeAttempt(config, run, e, a, tail) {
201
+ const cell = e.cells.find((c) => c.key === a.cell);
202
+ const lines = await transcriptLines(config, run, a);
203
+ const failedChecks = await Promise.all(a.checks.filter((c) => c.exitCode !== 0).map(async (c) => ({
204
+ command: c.command,
205
+ exitCode: c.exitCode,
206
+ log: c.log?.path ?? null,
207
+ logTail: await fileTail(config, run, c.log?.path, 1500)
208
+ })));
209
+ const finalText = a.turns.findLast((t) => t.text)?.text ?? "";
210
+ const failedAssertions = (a.assertions ?? []).filter((x) => x.status !== "pass").map((x) => ({
211
+ label: x.label,
212
+ matcher: x.matcher,
213
+ status: x.status,
214
+ soft: x.soft,
215
+ message: x.message ? clip(x.message, 800) : null
216
+ }));
217
+ const repeated = a.error?.kind === "assertion" && a.assertions?.some((x) => x.message === a.error?.message);
218
+ return {
219
+ eval: e.id,
220
+ attempt: a.key,
221
+ cell: a.cell,
222
+ harness: cell?.harness ?? null,
223
+ environment: cell?.environment ?? null,
224
+ outcome: a.outcome,
225
+ gated: cell ? cell.gate !== "none" : true,
226
+ error: a.error ? {
227
+ kind: a.error.kind,
228
+ message: repeated ? null : clip(a.error.message, 1500)
229
+ } : null,
230
+ failedAssertions,
231
+ failedJudgements: a.judgements.filter((j) => j.verdict === "fail").map((j) => ({
232
+ question: j.question,
233
+ score: j.score,
234
+ threshold: j.threshold
235
+ })),
236
+ failedChecks,
237
+ turnErrors: a.turns.flatMap((t, i) => t.error ? [{
238
+ turn: i + 1,
239
+ error: t.error
240
+ }] : []),
241
+ setupLogTail: a.outcome === "infra_error" ? await fileTail(config, run, a.files.setupLog?.path, 1500) : null,
242
+ changedFiles: a.changedFiles.slice(0, 30).map((f) => `${f.status} ${f.path}`),
243
+ finalMessage: finalText ? clip(finalText, 800) : null,
244
+ transcript: lines ? transcriptTail(lines, tail) : null,
245
+ files: {
246
+ transcript: a.files.transcript?.path ?? null,
247
+ diff: a.files.diff?.path ?? null,
248
+ setupLog: a.files.setupLog?.path ?? null
249
+ }
250
+ };
251
+ }
252
+ const rank = (e, a) => {
253
+ const gated = e.cells.find((c) => c.key === a.cell)?.gate !== "none";
254
+ return (a.outcome === "fail" ? 0 : 1) + (gated ? 0 : 2);
255
+ };
256
+ async function failuresView(config, options = {}) {
257
+ const entries = await allRuns(config);
258
+ const entry = resolveRun(entries, options.run);
259
+ const dir = entry.recorded ? config.history.dir : scratchDir(config.root);
260
+ const run = await readRecord(join(dir, `${entry.runId}.json`));
261
+ const needle = options.filter?.toLowerCase();
262
+ 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) => ({
263
+ e,
264
+ a
265
+ }))).sort((x, y) => rank(x.e, x.a) - rank(y.e, y.a));
266
+ const limit = options.limit ?? 10;
267
+ const shown = failing.slice(0, limit);
268
+ const histories = /* @__PURE__ */ new Map();
269
+ const cells = shown.flatMap(({ e, a }) => {
270
+ const id = `${e.key}\0${a.cell}`;
271
+ const cell = e.cells.find((c) => c.key === a.cell);
272
+ if (histories.has(id) || !cell) return [];
273
+ histories.set(id, cellHistory(entries, run, e, cell));
274
+ return [{
275
+ eval: e.id,
276
+ cell: a.cell,
277
+ ...histories.get(id)
278
+ }];
279
+ });
280
+ const attempts = await Promise.all(shown.map(({ e, a }) => describeAttempt(config, run, e, a, options.tail ?? 12)));
281
+ const header = {
282
+ runId: run.runId,
283
+ recorded: entry.recorded,
284
+ sha: run.git?.sha.slice(0, 12) ?? null,
285
+ summary: run.summary
286
+ };
287
+ if (failing.length === 0) {
288
+ const latest = [...entries].reverse().find((x) => x.summary.fail + x.summary.infraError > 0 && x.runId !== run.runId);
289
+ return {
290
+ ...header,
291
+ failing: 0,
292
+ attempts: [],
293
+ cells: [],
294
+ note: `Nothing failed in ${run.runId}${needle ? ` matching "${options.filter}"` : ""}.${latest ? ` The latest run with a failure is ${latest.runId}: pass it as run.` : ""}`
295
+ };
296
+ }
297
+ return {
298
+ ...header,
299
+ failing: failing.length,
300
+ shown: shown.length,
301
+ attempts,
302
+ cells,
303
+ 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.`
304
+ };
305
+ }
19
306
  const MAX_ROWS = 1e3;
20
307
  /** What each view has one row per, for its tool's description. */
21
308
  const VIEW_ROWS = {
22
- lift: "variant cell per run: its control, both sides’ pass counts, lift points and the 95% interval (lo, hi), within_noise",
309
+ lift: "variant cell per run: its control, both sides’ pass counts and pass@1, lift points and the 95% interval (lo, hi), within_noise",
310
+ 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
311
  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
- factor_effects: "factor contrast (environment, harness, model) by evidence tier, with pass-rate and effort verdicts",
312
+ factor_effects: "factor contrast (environment, harness, model) by evidence tier, with pass@1 and effort verdicts",
25
313
  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",
26
314
  flaky_cells: "cell with mixed outcomes pooled over comparable runs: counts, a Wilson interval, a verdict and a likely cause",
27
315
  drift: "run where a cell’s fingerprint changed from its previous run, what changed, and noise = 1 when only agent runtime state did",
28
- failing_attempts: "failed attempt, with its harness, model, environment skill and error",
29
- eval_trend: "eval per run: outcome, pass rate, branch, PR and fingerprint",
30
- verdict_flips: "judge question per cell whose pass rate changed from its previous run"
316
+ failing_attempts: "failed or infra-error attempt, with its harness, model, environment skill, error, OOM kills and first failed check",
317
+ eval_trend: "eval per run: outcome, pass@1, branch, PR and fingerprint",
318
+ verdict_flips: "judge question per cell whose pass rate changed from its previous run",
319
+ 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)"
31
320
  };
32
321
  const READ_ONLY = {
33
322
  readOnlyHint: true,
@@ -110,44 +399,7 @@ const cell = z.union([
110
399
  z.null()
111
400
  ]);
112
401
  const limitField = (max, fallback, what) => z.number().int().min(1).max(max).optional().describe(`At most this many ${what} (default ${fallback}, at most ${max})`);
113
- const source = (config) => ({
114
- root: config.root,
115
- historyDir: config.history.dir,
116
- scratch: true
117
- });
118
402
  const transcriptUri = (runId, attemptKey) => `reeval://runs/${runId}/transcripts/${encodeURIComponent(attemptKey)}`;
119
- /** The attempt `ref` names in `run`: its key, or an attempt id (`<cell>#<n>`) unique in the run. */
120
- function findAttempt(run, ref) {
121
- const attempts = run.evals.flatMap((e) => e.attempts);
122
- const exact = attempts.find((a) => a.key === ref);
123
- if (exact) return exact;
124
- const byId = attempts.filter((a) => a.id === ref);
125
- if (byId.length === 1 && byId[0]) return byId[0];
126
- const keys = attempts.map((a) => a.key);
127
- const listed = `${keys.slice(0, 20).join("; ")}${keys.length > 20 ? `; … ${keys.length - 20} more` : ""}`;
128
- 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}`);
129
- }
130
- async function readTranscript(config, run, ref) {
131
- const attempt = findAttempt(run, ref);
132
- const path = attempt.files.transcript?.path;
133
- const file = path && await resolveFile(source(config), {
134
- kind: "artifact",
135
- runId: run.runId,
136
- segments: path.split("/")
137
- });
138
- if (!file) throw new Error(`${run.runId} kept no transcript for ${attempt.key} (recorded with --artifacts failures or none?)`);
139
- const lines = [];
140
- for (const line of (await readFile(file, "utf8")).split("\n")) {
141
- if (!line.trim()) continue;
142
- try {
143
- lines.push(readableTranscriptLine(JSON.parse(line)));
144
- } catch {}
145
- }
146
- return {
147
- attempt,
148
- lines
149
- };
150
- }
151
403
  /** Reads the record of a run named by id, recorded or scratch; null if there's none. */
152
404
  async function recordById(config, runId) {
153
405
  if (!RUN_ID.test(runId)) return null;
@@ -157,8 +409,9 @@ async function recordById(config, runId) {
157
409
  });
158
410
  return file ? readRecord(file) : null;
159
411
  }
160
- 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.
161
- 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.`;
412
+ 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.
413
+ 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.
414
+ 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.`;
162
415
  /** Builds the factory `reeval mcp` serves: one McpServer per connection (stdio) or request (HTTP). */
163
416
  async function serverFactory(config, version) {
164
417
  const columns = await viewColumns(config);
@@ -168,23 +421,55 @@ async function serverFactory(config, version) {
168
421
  title: "reeval run history",
169
422
  version
170
423
  }, { instructions: INSTRUCTIONS });
424
+ server.registerTool("failures", {
425
+ title: "Why a run failed",
426
+ 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.",
427
+ inputSchema: z.object({
428
+ run: z.string().optional().describe(RUN_REF),
429
+ filter: z.string().optional().describe("Only evals whose id contains this"),
430
+ limit: limitField(100, 10, "failed attempts"),
431
+ tail: z.number().int().min(0).max(100).optional().describe(`Transcript lines from the end of each attempt (default 12)`)
432
+ }),
433
+ annotations: READ_ONLY
434
+ }, guard(async ({ run, filter, limit, tail }) => failuresView(config, {
435
+ run,
436
+ filter,
437
+ limit,
438
+ tail
439
+ })));
171
440
  server.registerTool("history", {
172
441
  title: "Run history",
173
- 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.",
442
+ 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.",
174
443
  inputSchema: z.object({
175
444
  filter: z.string().optional().describe("Only evals whose id contains this"),
176
445
  limit: limitField(500, 20, "runs"),
177
446
  all: z.boolean().optional().describe("Include scratch runs that were never recorded")
178
447
  }),
179
448
  annotations: READ_ONLY
180
- }, guard(async ({ filter, limit, all }) => historyView(config, {
181
- filter,
182
- limit,
183
- all
184
- })));
449
+ }, guard(async ({ filter, limit, all }) => {
450
+ const view = briefHistory(await historyView(config, {
451
+ filter,
452
+ limit,
453
+ all
454
+ }));
455
+ if (all || view.runs.length) return view;
456
+ const scratch = briefHistory(await historyView(config, {
457
+ filter,
458
+ limit,
459
+ all: true
460
+ }));
461
+ if (!scratch.runs.length) return {
462
+ ...view,
463
+ note: "No runs yet. reeval run, in a terminal, makes one."
464
+ };
465
+ return {
466
+ ...scratch,
467
+ 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."
468
+ };
469
+ }));
185
470
  server.registerTool("show", {
186
471
  title: "Show a run",
187
- 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.",
472
+ 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.",
188
473
  inputSchema: z.object({
189
474
  run: z.string().optional().describe(RUN_REF),
190
475
  format: z.enum(["json", "md"]).optional().describe("json (default) or md")
@@ -199,14 +484,22 @@ async function serverFactory(config, version) {
199
484
  }));
200
485
  server.registerTool("compare", {
201
486
  title: "Compare two runs",
202
- 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.",
487
+ 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.",
203
488
  inputSchema: z.object({
204
489
  base: z.string().optional().describe(`${RUN_REF}; needs head too`),
205
- head: z.string().optional().describe(RUN_REF)
490
+ head: z.string().optional().describe(RUN_REF),
491
+ all: z.boolean().optional().describe("Also list the evals whose outcome is the same")
206
492
  }),
207
493
  annotations: READ_ONLY
208
- }, guard(async ({ base, head }) => {
209
- return (await compareView(config, base ? [base, head ?? "latest"] : head ? [head] : [])).json;
494
+ }, guard(async ({ base, head, all }) => {
495
+ const { json } = await compareView(config, base ? [base, head ?? "latest"] : head ? [head] : []);
496
+ if (all) return json;
497
+ const rows = json.rows.filter((r) => r.status !== "same");
498
+ return {
499
+ ...json,
500
+ rows,
501
+ same: json.rows.length - rows.length
502
+ };
210
503
  }));
211
504
  server.registerTool("analysis", {
212
505
  title: "Saved analyses of a run",
@@ -215,7 +508,7 @@ async function serverFactory(config, version) {
215
508
  annotations: READ_ONLY
216
509
  }, guard(async ({ run }) => {
217
510
  const entry = resolveRun(await allRuns(config), run);
218
- const { listAnalyses } = await import("./files-YCCVaTQC.js");
511
+ const { listAnalyses } = await import("./files-BhyltlDB.js");
219
512
  const entries = await listAnalyses(config.root, [config.history.dir], entry.runId, true);
220
513
  return {
221
514
  runId: entry.runId,
@@ -224,7 +517,7 @@ async function serverFactory(config, version) {
224
517
  }));
225
518
  server.registerTool("transcript", {
226
519
  title: "Attempt transcript",
227
- 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.",
520
+ 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.",
228
521
  inputSchema: z.object({
229
522
  run: z.string().optional().describe(RUN_REF),
230
523
  attempt: z.string().describe("The attempt key, or its id (<cell>#<n>) when only one eval has it"),
@@ -249,7 +542,7 @@ async function serverFactory(config, version) {
249
542
  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)");
250
543
  server.registerTool(`query_${view}`, {
251
544
  title: `Query ${view}`,
252
- description: `The ${view} view of reeval query: one row per ${VIEW_ROWS[view] ?? "row"}. Columns: ${cols.join(", ")}.`,
545
+ description: `The ${view} view of reeval query, over the eval run history: one row per ${VIEW_ROWS[view] ?? "row"}. Columns: ${cols.join(", ")}.`,
253
546
  inputSchema: z.object({
254
547
  where,
255
548
  limit: limitField(MAX_ROWS, 100, "rows")
@@ -270,7 +563,7 @@ async function serverFactory(config, version) {
270
563
  }
271
564
  server.registerTool("query", {
272
565
  title: "Query run history with SQL",
273
- description: "One read-only SQLite SELECT or WITH statement over .reeval/history.db, the projection of every recorded and scratch run (reeval query). Tables include runs, evals, cells, attempts, judgements, tool_calls; the views are the query_* tools. query_schema lists every table's columns.",
566
+ description: "One read-only SQLite SELECT or WITH statement over .reeval/history.db, the projection of every recorded and scratch run (reeval query). Tables include runs, evals, cells, attempts, judgements, tool_calls, assertions; the views are the query_* tools. query_schema lists every table's columns.",
274
567
  inputSchema: z.object({
275
568
  sql: z.string().describe("One SELECT or WITH statement"),
276
569
  limit: limitField(MAX_ROWS, 100, "rows")
@@ -287,7 +580,7 @@ async function serverFactory(config, version) {
287
580
  annotations: READ_ONLY
288
581
  }, guard(async () => withDb(config, (db) => ({ objects: db.schema() }))));
289
582
  server.registerResource("run", new ResourceTemplate("reeval://runs/{runId}", { list: async () => {
290
- const { listHeaders } = await import("./source-Dqu0jKwx.js");
583
+ const { listHeaders } = await import("./source-fGd0SaKP.js");
291
584
  return { resources: [...await listHeaders(source(config))].reverse().map((r) => ({
292
585
  uri: `reeval://runs/${r.runId}`,
293
586
  name: r.runId,
@@ -339,6 +632,16 @@ const decode = (s) => {
339
632
  return s;
340
633
  }
341
634
  };
635
+ /**
636
+ * History without each run's evals[], which repeat rows[] with every cell's fingerprint and sources:
637
+ * kilobytes a run, and some MCP clients show a long tool result as empty.
638
+ */
639
+ function briefHistory(view) {
640
+ return {
641
+ ...view,
642
+ runs: view.runs.map(({ evals: _, ...run }) => run)
643
+ };
644
+ }
342
645
  function rowsOf(result, limit) {
343
646
  return {
344
647
  columns: result.columns,
@@ -360,7 +663,7 @@ async function mcpCommand({ config, flags, version }) {
360
663
  "port",
361
664
  "host",
362
665
  "token"
363
- ]) if (flags[name] !== void 0) throw new UsageError(`--${name} needs --http`);
666
+ ]) if (flags[name] !== void 0) throw new UsageError(`--${name} needs --http: reeval mcp serves over stdio without it`);
364
667
  }
365
668
  const factory = await serverFactory(config, version);
366
669
  if (!flags.http) {
@@ -386,12 +689,12 @@ async function serveHttp(factory, config, flags) {
386
689
  const host = flags.host ?? "127.0.0.1";
387
690
  if (host !== "127.0.0.1" && host !== "localhost" && host !== "::1") console.error(`warning: reeval mcp is listening on ${host}, reachable beyond this machine`);
388
691
  const token = flags.token ?? (process.env.REEVAL_MCP_TOKEN || void 0);
389
- if (token !== void 0 && !token.trim()) throw new UsageError("--token needs a value");
692
+ if (token !== void 0 && !token.trim()) throw new UsageError("--token needs a value: --token <secret>, or REEVAL_MCP_TOKEN");
390
693
  registerSecret(token);
391
694
  const { createMcpHandler } = await import("@modelcontextprotocol/server");
392
695
  const { Hono } = await import("hono");
393
696
  const { serve } = await import("@hono/node-server");
394
- const { allowedHosts } = await import("./server-DiGR4JxK.js");
697
+ const { allowedHosts } = await import("./server-C7sg1ndo.js");
395
698
  const hosts = allowedHosts(host, port);
396
699
  const handler = createMcpHandler(factory, { onerror: report });
397
700
  const app = new Hono();
@@ -413,7 +716,7 @@ async function serveHttp(factory, config, flags) {
413
716
  hostname: host,
414
717
  port
415
718
  });
416
- s.once("error", (error) => reject(error.code === "EADDRINUSE" ? new UsageError(`Port ${port} is in use; pass --port`) : error));
719
+ s.once("error", (error) => reject(error.code === "EADDRINUSE" ? new UsageError(`Port ${port} is in use: pass another with --port`) : error));
417
720
  s.once("listening", () => resolve(s));
418
721
  });
419
722
  const url = `http://${host.includes(":") ? `[${host}]` : host}:${port}/mcp`;
@@ -429,4 +732,4 @@ async function serveHttp(factory, config, flags) {
429
732
  //#endregion
430
733
  export { mcpCommand };
431
734
 
432
- //# sourceMappingURL=command-BK4kOgkH.js.map
735
+ //# sourceMappingURL=command-BT9a37ZR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-BT9a37ZR.js","names":[],"sources":["../src/mcp/files.ts","../src/mcp/failures.ts","../src/mcp/server.ts","../src/mcp/command.ts"],"mappings":"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"}