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
package/README.md CHANGED
@@ -64,8 +64,8 @@ evaluate(
64
64
  )
65
65
  ```
66
66
 
67
- - **Real agents in sandboxes.** Cursor, Claude Code, Codex, Antigravity, OpenCode, Goose and pi
68
- each work in a fresh local Docker container. Their API keys stay on the host: the sandbox gets
67
+ - **Real agents in sandboxes.** Cursor, Claude Code, Codex, Antigravity, OpenCode, Goose, pi, fx
68
+ and Grok Build each work in a fresh local Docker container. Their API keys stay on the host: the sandbox gets
69
69
  a placeholder, and reeval's egress gateway swaps in the key only on requests to that provider.
70
70
  - **Any environment.** Start from a git repository at a pinned ref, then add files, setup steps,
71
71
  rules, skills, MCP servers and secrets, on reeval's image or your own `from` or Dockerfile.
@@ -74,9 +74,9 @@ evaluate(
74
74
  nightly.
75
75
  - **Checks and judges.** Deterministic checks on files, commands and the transcript decide pass
76
76
  or fail; an LLM judge answers what they can't.
77
- - **Compare, questions and analysis.** `compare` reports each variant's lift over the control,
78
- with a 95% interval and its effort; `questions` asks a model which attempt did better, pair by
79
- pair and blind; `reeval analyze` writes a checked reading of a run.
77
+ - **Compare, questions and analysis.** `compare` says whether each variant helped over the
78
+ control, made it worse or can't tell yet (`-v` adds the 95% interval), and its effort;
79
+ `questions` asks a model which attempt did better, pair by pair and blind; `reeval analyze` writes a checked reading of a run.
80
80
  - **Results in your repo.** Every run is a JSON record you can commit, diff with `reeval compare`,
81
81
  query with SQL (`reeval query`) and browse in `reeval studio`.
82
82
 
@@ -86,14 +86,32 @@ all three agents passed every check.
86
86
  ```text
87
87
  $ reeval run evals/api.eval.ts --runs 1
88
88
  …
89
- ✓ how well the api-conventions skill influences the output 3/6 · pass@1 100% gated 6 attempts
90
- cursor:composer-2.5/nextjs-api/docker control 0/1 pass@1 0% not gated
91
- cursor:composer-2.5/with-api-conventions/docker variant 1/1 pass@1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
92
- claude-code:claude-sonnet-5/nextjs-api/docker control 0/1 pass@1 0% not gated
93
- claude-code:claude-sonnet-5/with-api-conventions/docker variant 1/1 pass@1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
94
- codex:gpt-5.6-luna/nextjs-api/docker control 0/1 pass@1 0% not gated
95
- codex:gpt-5.6-luna/with-api-conventions/docker variant 1/1 pass@1 100% lift +100 pts (95% −12…+100, 1/1 vs 0/1), within noise
96
- question "Which endpoint follows our API conventions?" across: claude-code:claude-sonnet-5 2/4 (50%), codex:gpt-5.6-luna 0/4 (0%), cursor:composer-2.5 4/4 (100%) · 6 votes, 0 ties · gemini-3.8-flash
89
+ pass how well the api-conventions skill influences the output
90
+ cursor:composer-2.5
91
+ arm pass
92
+ nextjs-api 0 of 1
93
+ with-api-conventions 1 of 1 can't tell yet
94
+ check nextjs-api with-api-conventions
95
+ toHaveFile app/api/users/route.ts 0 of 1 1 of 1
96
+ expected app/api/users/route.ts to match /cursor/i
97
+ toSucceed npm run build not run 1 of 1
98
+ toSucceed npm test not run 1 of 1
99
+ toSucceed cat > /tmp/probe-users.mjs <<'EOF'… not run 1 of 1
100
+ toPass Do the tests follow nextCursor to the… not run 1 of 1
101
+ claude-code:claude-sonnet-5
102
+ arm pass
103
+ nextjs-api 0 of 1
104
+ with-api-conventions 1 of 1 can't tell yet
105
+ …
106
+ codex:gpt-5.6-luna
107
+ arm pass
108
+ nextjs-api 0 of 1
109
+ with-api-conventions 1 of 1 can't tell yet
110
+ …
111
+ question Which endpoint follows our API conventions?
112
+ claude-code:claude-sonnet-5 won 2 of 2
113
+ cursor:composer-2.5 won 1 of 4
114
+ codex:gpt-5.6-luna won 1 of 2
97
115
  …
98
116
  ```
99
117
 
@@ -127,7 +145,8 @@ group('greet module', () => {
127
145
 
128
146
  await expect(turn).toHaveFile('greet.js')
129
147
  await expect(c.exec('node --test')).toSucceed()
130
- expect(await c.judge("Does the agent's final message accurately describe what it changed?")).toPass()
148
+ const honest = "Does the agent's final message describe what it changed?"
149
+ expect(await c.judge(honest)).toPass()
131
150
  })
132
151
  })
133
152
  ```
@@ -139,8 +158,11 @@ import { cursor } from 'reeval/harness'
139
158
 
140
159
  export default defineConfig({
141
160
  include: ['evals/**/*.eval.ts'],
142
- harness: cursor({ model: 'composer-2.5' }), // or claudeCode({ model }), antigravity({ model }), opencode({ model }), goose({ model }), pi({ model }), codex({ model }), or a list: each is its own cell
143
- judge: { model: 'typesafe-ai/jev-1.13.0', threshold: 0.8 }, // optional; pin the version
161
+ // or claudeCode, codex, antigravity, opencode, goose, pi, fx, grokBuild, or a
162
+ // list of harnesses: each is its own cell
163
+ harness: cursor({ model: 'composer-2.5' }),
164
+ // optional; pin the version
165
+ judge: { model: 'typesafe-ai/jev-1.14.0', threshold: 0.8 },
144
166
  timeout: '15m',
145
167
  profiles: {
146
168
  pr: { limit: { runs: 1, compare: false }, budget: { attempts: 20 } },
@@ -185,75 +207,88 @@ group(
185
207
 
186
208
  ```text
187
209
  $ reeval run skill --runs 2
188
- plan 1 eval · 2 cells · 4 attempts · ~50s serial (~13s at concurrency 4)
210
+ plan run 20261020T213308Z_… · 1 eval · 2 cells · 4 attempts · ~52s serial (~13s at concurrency 4)
211
+ …
212
+ pass house greeting › greets in the house style
213
+ arm pass
214
+ plain 0 of 2
215
+ with-house-greeting 2 of 2 can't tell yet
216
+ check plain with-house-greeting
217
+ house greeting 0 of 2 2 of 2
218
+ expected command to succeed, exit code 1
219
+ +2 more passed
189
220
  …
190
- ✓ greets in the house style 2/4 · pass@1 100% gated 4 attempts
191
- cursor:composer-2.5/plain/docker control 0/2 pass@1 0% not gated
192
- cursor:composer-2.5/with-house-greeting/docker variant 2/2 pass@1 100% lift +100 pts (95% +7…+100, 2/2 vs 0/2)
193
- effort: tools 3 vs 8 (×0.38), agent 9s vs 18s (×0.50): too few attempts to test
194
221
  ```
195
222
 
196
223
  ## Run it
197
224
 
198
225
  ```text
199
- $ CI=1 reeval run greet
200
- plan profile pr (auto: CI is set) · 2 evals · 2 cells · 2 attempts · ~40s serial (~20s at concurrency 4) · budget 20 attempts ✓
201
- reeval 0.0.1 · 3 eval files · harness cursor:composer-2.5 · sandbox docker · concurrency 4 · grouped logs
226
+ $ CI=1 reeval run hello --output-logs full
227
+ plan run 20261020T220141Z_… · profile pr (auto: CI is set) · 2 evals · 2 cells · 2 attempts · ~25s serial (~13s at concurrency 4) · budget 20 attempts ✓
228
+ reeval 0.10.0 · run 20261020T220141Z_… · 1 eval file · harness cursor:composer-2.5 · sandbox docker · concurrency 4 · grouped logs
202
229
  [creates#1 cursor] ▶ evals/hello.eval.ts › greet module › creates a tested greet module
203
- [creates#1 cursor] ✓ evals/hello.eval.ts › greet module › creates a tested greet module 17s
204
- [creates#1 cursor] +0:00 sandbox ready 1s
205
- [creates#1 cursor] +0:01 turn 1 done 12s · 1 tool call, 2 file edits
206
- [creates#1 cursor] +0:13 $ node --test exit 0 129ms
207
- [creates#1 cursor] +0:13 judge pass 1.00 (≥ 0.8) Does the agent's final message accurately describe what it changed?
230
+ [creates#1 cursor] +0:00 sandbox ready 2s
231
+ [creates#1 cursor] +0:01 turn 1 done 6s · 2 tool calls, 2 file edits
232
+ [creates#1 cursor] +0:08 $ node --test exit 0 210ms
233
+ [creates#1 cursor] +0:08 judge pass 1.00 (≥ 0.8) Does the agent's final message accurately describe what it changed?
208
234
  [adds#1 cursor] ▶ evals/hello.eval.ts › greet module › adds a default name in a follow-up turn
209
- [adds#1 cursor] ✓ evals/hello.eval.ts › greet module › adds a default name in a follow-up turn 23s
210
- …
235
+ [adds#1 cursor] +0:00 sandbox ready 2s
236
+ [adds#1 cursor] +0:01 turn 1 done 7s · 1 tool call, 1 file edit
237
+ [adds#1 cursor] +0:09 turn 2 done 4s · 1 tool call, 1 file edit
238
+ [adds#1 cursor] +0:12 $ node -e "import('./greet.js').then((m) => {… exit 0 105ms
239
+ [adds#1 cursor] +0:13 judge pass 1.00 (≥ 0.8) Did the agent add the default without breaking greet(name)?
240
+
241
+ pass greet module › creates a tested greet module
242
+ pass greet module › adds a default name in a follow-up turn
243
+
244
+ 16s · 144k in (64k cached) · 863 out · results .reeval/runs/20261020T220141Z_…/summary.md
245
+ 2 pass
246
+ Set analysis.model in reeval.config.ts for answers to what each eval asks.
247
+ recorded evals/.history/20261020T220141Z_….json + 10 artifact files in evals/.history/20261020T220141Z_…/ (41.8 KB). Commit it with git.
248
+ ```
211
249
 
212
- Summary
213
- evals/hello.eval.ts
214
- greet module
215
- ✓ creates a tested greet module 17s judge 1.00 1 turn
216
- ✓ adds a default name in a follow-up turn 23s judge 1.00 2 turns
250
+ Under a coding agent, reeval switches to compact output: the plan, the same result blocks and
251
+ the tally, with no per-attempt lines. To see what an attempt did step by step, add `-v`; `-vv`
252
+ adds the raw payloads and every `docker` command. Either way each attempt's trace stays local in `.reeval/debug`, never in
253
+ the committed history.
217
254
 
218
- Evals 2 passed (2)
219
- Duration 40s
220
- Results .reeval/runs/20260924T213759Z_1ba71aa_ci_4vb0/summary.md
255
+ ```bash
256
+ reeval record # copy the latest run into evals/.history/
257
+ reeval history # pass/fail per eval over recent runs
258
+ reeval compare # latest vs its nearest recorded ancestor
259
+ reeval query lift # each variant against its control
260
+ reeval query effort # tool calls, agent time and tokens
261
+ reeval query "SELECT * FROM failing_attempts WHERE skill = 'house-greeting'"
262
+ reeval analyze # a checked reading of a run
221
263
  ```
222
264
 
223
- Under a coding agent, reeval switches to compact output: one block per failure and the path to its
224
- record. To see what an attempt did step by step, add `-v`: a timestamped line per phase (image,
225
- container, setup, brokering, each tool call, checks, judge calls, every gateway request).
226
- `-vv` adds the raw payloads and every `docker` command. Either way each attempt's trace is
227
- kept locally in `.reeval/debug`, never in the committed history. Commit runs into `evals/.history/` with `reeval record`, then track them with `reeval history`
228
- and `reeval compare`, or ask across runs with SQL: `reeval query lift`, `reeval query effort` (tool calls,
229
- agent time and tokens, variant against control), `reeval query factor_effects`, or
230
- `reeval query "SELECT * FROM failing_attempts WHERE skill = 'house-greeting'"`. Where the harness
231
- reports them (Cursor, Claude Code, Antigravity, pi and Codex do), the record keeps each turn's tokens and the model that
232
- served it, and totals them per attempt and per run.
233
-
234
- `reeval analyze` explains a run: one LLM call over a digest of those facts, with every claim's
235
- citations and every suggested command checked against reeval's own CLI. It's cached in `.reeval/`;
236
- `--save` commits it next to the run, and `reeval analyze --context` hands the same digest to your own
237
- coding agent instead, with no key.
265
+ Where the harness reports them (every harness but Goose does), the record
266
+ keeps each turn's tokens and the model that served it, and totals them per attempt and per run.
267
+
268
+ `reeval analyze` makes one LLM call over a digest of those facts, and checks every claim's
269
+ citations and every suggested command against reeval's own CLI. `--save` commits it next to the
270
+ run, and `reeval analyze --context` hands the same digest to your own coding agent, with no key.
238
271
 
239
272
  ## Studio
240
273
 
241
274
  ```bash
242
- reeval studio # browse runs, evals and transcripts at http://127.0.0.1:4984
243
- reeval studio build --out site # the same thing as a static site for GitHub Pages or any host
275
+ reeval studio # runs, evals and transcripts on :4984
276
+ reeval studio build --out site # the same as a static site, for any host
244
277
  ```
245
278
 
246
- The studio shows each run's commit, pass counts and drift. For compares it shows per-cell pass
247
- rates, lift and effort, and a run's saved analyses in its Analysis tab, and for each attempt the transcript, diff, checks and judge input. `reeval studio`
248
- adds a Debug tab for attempts with local debug data.
279
+ The studio shows each run's commit, pass counts and drift, and its saved analyses. For compares
280
+ it shows per-cell pass rates, lift and effort, and for each attempt the transcript, diff, checks
281
+ and judge input. `reeval studio` adds a Debug tab for attempts with local debug data.
249
282
 
250
283
  ## Learn more
251
284
 
252
- The user docs in [`docs/`](./docs) are a [docs.page](https://use.docs.page) site: a Guide from a
253
- first eval to CI, Concepts, Recipes, and a Reference tab with every option, command, flag, exit
254
- code and file format. Preview them with `npx @docs.page/cli preview`. Coding agents writing evals
255
- can load the reeval skill in [`.agents/skills/reeval/SKILL.md`](./.agents/skills/reeval/SKILL.md).
256
- [AGENTS.md](./AGENTS.md) covers developing this repo.
285
+ | For | Read |
286
+ |---|---|
287
+ | Learning reeval, from a first eval to CI | The Guide in [`docs/`](./docs), a [docs.page](https://use.docs.page) site (`npx @docs.page/cli preview`) |
288
+ | How it works, and complete solutions | The docs' Concepts and Recipes |
289
+ | Every option, command, flag, exit code and file format | The docs' Reference |
290
+ | Coding agents writing evals | The reeval skill, [`skills/reeval/SKILL.md`](./skills/reeval/SKILL.md) |
291
+ | Developing this repo | [AGENTS.md](./AGENTS.md) |
257
292
 
258
293
  ## License
259
294