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,17 +1,19 @@
1
- import { n as loadEnvFiles } from "./env-BQqj93gu.js";
1
+ import { n as UsageError } from "./errors-B6BSMs03.js";
2
+ import { f as sandboxId, s as harnessId } from "./options-C0d0AzeR.js";
3
+ import { p as environmentSandbox } from "./environment-Cca6a4wB.js";
4
+ import { a as fromCwd, c as relativeFile, o as newRunId } from "./ids-Bp6ut7ZD.js";
5
+ import { o as judgeCredentials, r as RECOMMENDED_JUDGE_MODEL } from "./judge-DW_GDOmB.js";
6
+ import { _ as selectProfile, a as configLabel, f as loadConfig, i as configFilesPhrase, o as configPathFor, r as badCharacterAt, s as defaultConcurrency, y as loadEnvFiles } from "./config-DrVSEVN0.js";
2
7
  import { n as SECRET_NAME, o as redactSecrets } from "./redact-DJ9JCShu.js";
3
- import { i as PACKAGE_DIR } from "./root-CvdRlRZX.js";
4
- import { u as environmentSandbox } from "./environment-1jE-HhO-.js";
5
- import { a as unenforceable, m as credentialOf } from "./egress-BhzNh7Yi.js";
6
- import { a as fromCwd } from "./ids-Bp6ut7ZD.js";
7
- import { s as judgeCredentials } from "./judge-CeYPN8P_.js";
8
- import { d as sandboxId, s as harnessId } from "./options-CKqyPGxX.js";
9
- import { a as configPathFor, i as configLabel, n as badCharacterAt, o as defaultConcurrency, r as configFilesPhrase, u as loadConfig } from "./config-CGvBeewH.js";
10
- import { i as runtimeInfo } from "./provenance-D7HK3vzt.js";
8
+ import { i as PACKAGE_DIR } from "./root-DICDHCtp.js";
9
+ import { a as unenforceable, m as credentialOf } from "./egress-2-qzPvGi.js";
11
10
  import { t as colors } from "./colors-QV9dFVhN.js";
12
- import { o as missingGitignoreEntries } from "./init-BIdLF0F9.js";
11
+ import { i as runtimeInfo } from "./provenance-DQ0AXn6c.js";
12
+ import { r as findEvalFiles, t as DEFAULT_EXCLUDE } from "./files-Bk1mC3AN.js";
13
+ import { o as missingGitignoreEntries } from "./init-Cl3f3NBT.js";
13
14
  import { existsSync, readFileSync } from "node:fs";
14
- import { join } from "node:path";
15
+ import { availableParallelism } from "node:os";
16
+ import { dirname, join, resolve } from "node:path";
15
17
  import { execFile } from "node:child_process";
16
18
  //#region src/doctor.ts
17
19
  const run = (command, args, cwd) => new Promise((resolve) => {
@@ -25,25 +27,31 @@ const run = (command, args, cwd) => new Promise((resolve) => {
25
27
  }));
26
28
  });
27
29
  function defaultDeps(env = process.env) {
28
- const sandbox = () => import("./src-cdIVjC5b.js");
30
+ const sandbox = () => import("./src-DYO3DdnQ.js");
29
31
  return {
30
32
  env,
31
33
  runtime: runtimeInfo(),
32
34
  nodeVersion: process.versions.node,
33
35
  platform: process.platform,
34
- dockerState: async () => (await sandbox()).dockerState(),
35
- dockerCapacity: async () => (await sandbox()).dockerCapacity(),
36
- imageExists: async (ref) => !!await (await sandbox()).imageInfo(ref),
37
- imageTags: async (repository) => {
38
- const r = await run("docker", [
39
- "image",
40
- "ls",
41
- "--format",
42
- "{{.Repository}}:{{.Tag}}",
43
- repository
44
- ]);
45
- return r.code === 0 ? r.stdout.split("\n").filter(Boolean) : [];
36
+ dockerState: async (engine) => (await sandbox()).dockerState(engine),
37
+ dockerCapacity: async (engine) => (await sandbox()).dockerCapacity(engine),
38
+ podmanConfinement: async () => (await import("./providers-B9yTdIqF.js")).podmanConfinementProblem(),
39
+ imageExists: async (ref, engine) => !!await (await sandbox()).imageInfo(ref, engine),
40
+ plannedUses: async (config) => {
41
+ const { plannedImageUses } = await import("./images-Bi3aGxb9.js");
42
+ const { stagingDir } = await import("./results-BE2f-1XS.js");
43
+ const profile = selectProfile(config, void 0, env);
44
+ const runId = newRunId(/* @__PURE__ */ new Date(), null, "doctor");
45
+ return plannedImageUses({
46
+ runId,
47
+ stagingDir: stagingDir(config.root, runId),
48
+ config,
49
+ tags: profile?.tags ?? [],
50
+ concurrency: config.concurrency ?? availableParallelism(),
51
+ profile
52
+ });
46
53
  },
54
+ imageTags: async (repository, engine) => (await sandbox()).imageTags(repository, engine),
47
55
  gitIgnored: async (root, paths) => {
48
56
  if ((await run("git", ["rev-parse", "--git-dir"], root)).code !== 0) return null;
49
57
  return Promise.all(paths.map(async (p) => (await run("git", [
@@ -112,10 +120,17 @@ function configuredUses(config) {
112
120
  }
113
121
  return uses;
114
122
  }
123
+ const planUses = (config, deps) => deps.plannedUses(config).then((uses) => ({ uses }), (error) => ({ error: redactSecrets(error.message.split("\n")[0] ?? "") }));
124
+ /** The planned uses, or the config's own harnesses on its sandbox when the evals didn't load. */
125
+ const usesOf = (config, planned) => "uses" in planned ? planned.uses : configuredUses(config).filter((u) => !u.profile).map((u) => ({
126
+ id: "",
127
+ harness: u.harness,
128
+ sandbox: u.sandbox
129
+ }));
115
130
  function describeConfig(config) {
116
131
  const profiles = Object.keys(config.profiles);
117
132
  return [
118
- `harness ${config.harness.map(harnessId).join(", ")}`,
133
+ `harness ${config.harness.map(harnessId).join(", ")}${config.optionKeys?.includes("harness") ? "" : " (reeval's default)"}`,
119
134
  `sandbox ${sandboxId(environmentSandbox(config.environment, config.sandbox))}`,
120
135
  profiles.length ? `profiles ${profiles.join(", ")}` : "no profiles"
121
136
  ].join(", ");
@@ -125,8 +140,78 @@ const DOCKER_FIX = {
125
140
  darwin: "start Docker Desktop (or another Docker engine, such as OrbStack or Colima)",
126
141
  win32: "install or start Docker Desktop with the WSL 2 backend and Linux containers (https://docs.docker.com/desktop/setup/install/windows-install/)"
127
142
  };
143
+ const PODMAN_FIX = {
144
+ linux: "install Podman 4 or later (your distribution's podman package), then check podman info works as you",
145
+ darwin: "start its machine: podman machine init, then podman machine start",
146
+ win32: "start its machine: podman machine init, then podman machine start"
147
+ };
148
+ /** The engines the config's container sandboxes run on, Docker first. */
149
+ const enginesOf = (config) => {
150
+ const used = new Set(configuredUses(config).flatMap((u) => u.sandbox.kind === "docker" ? [u.sandbox.engine ?? "docker"] : []));
151
+ return ["docker", "podman"].filter((e) => used.has(e));
152
+ };
153
+ /** Podman answers, is new enough, and can apply every limit; with the machine's size. */
154
+ async function checkPodman(deps) {
155
+ if (await deps.dockerState("podman") !== "running") return {
156
+ check: {
157
+ id: "podman",
158
+ status: "fail",
159
+ summary: "isn't answering (podman info failed), and the config's podman() sandboxes need it",
160
+ fix: PODMAN_FIX[deps.platform] ?? PODMAN_FIX.linux
161
+ },
162
+ running: false
163
+ };
164
+ const problem = await deps.podmanConfinement();
165
+ if (problem) return {
166
+ check: {
167
+ id: "podman",
168
+ status: "fail",
169
+ summary: problem.problem,
170
+ fix: problem.fix
171
+ },
172
+ running: true
173
+ };
174
+ const capacity = await deps.dockerCapacity("podman");
175
+ if (!capacity) return {
176
+ check: {
177
+ id: "podman",
178
+ status: "ok",
179
+ summary: "running"
180
+ },
181
+ running: true
182
+ };
183
+ const gb = capacity.memoryBytes / 1024 ** 3;
184
+ const summary = `running · ${capacity.cpus} CPUs, ${gb.toFixed(1)} GB memory (default concurrency ${defaultConcurrency(capacity)})`;
185
+ return {
186
+ check: gb < 4 ? {
187
+ id: "podman",
188
+ status: "warn",
189
+ summary: `${summary}; an attempt may use up to 4 GB`,
190
+ fix: "give the Podman machine more memory (podman machine set --memory), or lower podman({ memory })"
191
+ } : {
192
+ id: "podman",
193
+ status: "ok",
194
+ summary
195
+ },
196
+ running: true
197
+ };
198
+ }
128
199
  async function checkDocker(config, deps) {
129
- if (!configuredUses(config).filter((u) => u.sandbox.kind === "docker").length) return {
200
+ const engines = enginesOf(config);
201
+ if (engines.includes("podman")) {
202
+ const podman = await checkPodman(deps);
203
+ if (!engines.includes("docker")) return {
204
+ checks: [podman.check],
205
+ running: podman.running
206
+ };
207
+ const docker = await checkDockerEngine(deps);
208
+ return {
209
+ ...docker,
210
+ checks: [...docker.checks, podman.check],
211
+ running: docker.running && podman.running
212
+ };
213
+ }
214
+ if (!engines.length) return {
130
215
  checks: [{
131
216
  id: "docker",
132
217
  status: "skip",
@@ -134,6 +219,9 @@ async function checkDocker(config, deps) {
134
219
  }],
135
220
  running: false
136
221
  };
222
+ return checkDockerEngine(deps);
223
+ }
224
+ async function checkDockerEngine(deps) {
137
225
  const state = await deps.dockerState();
138
226
  if (state === "windows-containers") return {
139
227
  checks: [{
@@ -179,50 +267,68 @@ async function checkDocker(config, deps) {
179
267
  running: true
180
268
  };
181
269
  }
182
- /** reeval's sandbox image for each Docker harness in the config: present, missing or left from an older reeval. */
183
- async function checkImages(config, deps) {
184
- const { imageFor } = await import("./src-cdIVjC5b.js");
185
- const { imageTargets, esImages } = await import("./images-BMgdpMAX.js");
186
- const targets = imageTargets(configuredUses(config).map((u) => ({
187
- id: "",
188
- harness: u.harness,
189
- sandbox: u.sandbox
190
- })));
270
+ /**
271
+ * reeval's sandbox image for each Docker harness the evals plan, as `reeval image build` resolves
272
+ * them: present, missing, unanswered by Docker, or left from an older reeval.
273
+ */
274
+ async function checkImages(config, deps, planned) {
275
+ const { imageFor } = await import("./src-DYO3DdnQ.js");
276
+ const { imageTargets, reevalImages } = await import("./images-Bi3aGxb9.js");
191
277
  const checks = [];
278
+ const targets = imageTargets(usesOf(config, planned ?? await planUses(config, deps)));
192
279
  const missing = [];
193
- for (const harness of esImages(targets)) {
194
- const ref = imageFor(harness);
195
- if (await deps.imageExists(ref)) checks.push({
196
- id: "image",
197
- status: "ok",
198
- summary: `${ref} (${harness})`
199
- });
200
- else {
201
- missing.push(ref);
280
+ const exists = async (ref, engine, what) => {
281
+ try {
282
+ return await deps.imageExists(ref, engine);
283
+ } catch (error) {
202
284
  checks.push({
203
285
  id: "image",
204
286
  status: "fail",
205
- summary: `${ref} (${harness}) isn't built`,
206
- fix: "reeval image build"
287
+ summary: `${ref} (${what}) couldn't be checked: ${error.message}`,
288
+ fix: `check that ${engine === "podman" ? "Podman" : "Docker"} answers (${engine} info), then run reeval doctor again`
289
+ });
290
+ return null;
291
+ }
292
+ };
293
+ for (const engine of ["docker", "podman"]) {
294
+ const own = targets.filter((t) => (t.sandbox.engine ?? "docker") === engine);
295
+ const on = engine === "podman" ? ", in Podman" : "";
296
+ for (const harness of reevalImages(own)) {
297
+ const ref = imageFor(harness);
298
+ const found = await exists(ref, engine, `${harness}${on}`);
299
+ if (found) checks.push({
300
+ id: "image",
301
+ status: "ok",
302
+ summary: `${ref} (${harness}${on})`
303
+ });
304
+ else if (found === false) {
305
+ missing.push(ref);
306
+ checks.push({
307
+ id: "image",
308
+ status: "fail",
309
+ summary: `${ref} (${harness}${on}) isn't built`,
310
+ fix: "reeval image build"
311
+ });
312
+ }
313
+ const [repository] = ref.split(":");
314
+ const prefix = `${repository}:${harness}-`;
315
+ const stale = (await deps.imageTags(repository, engine)).filter((tag) => tag.startsWith(prefix) && tag !== ref && !tag.startsWith(`${ref}-`));
316
+ if (stale.length) checks.push({
317
+ id: "image",
318
+ status: "warn",
319
+ summary: `${stale.join(", ")}: built by another reeval version, unused by this one`,
320
+ fix: `${engine} image rm ${stale.join(" ")}`
207
321
  });
208
322
  }
209
- const [repository] = ref.split(":");
210
- const prefix = `${repository}:${harness}-`;
211
- const stale = (await deps.imageTags(repository)).filter((tag) => tag.startsWith(prefix) && tag !== ref && !tag.startsWith(`${ref}-`));
212
- if (stale.length) checks.push({
213
- id: "image",
214
- status: "warn",
215
- summary: `${stale.join(", ")}: built by another reeval version, unused by this one`,
216
- fix: `docker image rm ${stale.join(" ")}`
217
- });
218
323
  }
219
324
  for (const t of targets.filter((t) => t.sandbox.image)) {
220
325
  const ref = t.sandbox.image;
221
- if (!await deps.imageExists(ref)) checks.push({
326
+ const engine = t.sandbox.engine ?? "docker";
327
+ if (await exists(ref, engine, `${engine}({ image })`) === false) checks.push({
222
328
  id: "image",
223
329
  status: "fail",
224
- summary: `${ref} (docker({ image })) isn't in Docker`,
225
- fix: `docker pull ${ref}, or build it`
330
+ summary: `${ref} (${engine}({ image })) isn't in ${engine === "podman" ? "Podman" : "Docker"}`,
331
+ fix: `${engine} pull ${ref}, or build it`
226
332
  });
227
333
  }
228
334
  if (!checks.length) checks.push({
@@ -232,7 +338,8 @@ async function checkImages(config, deps) {
232
338
  });
233
339
  return {
234
340
  checks,
235
- missing
341
+ missing,
342
+ targets
236
343
  };
237
344
  }
238
345
  /** A tiny authenticated request per key, answering only whether the key works. */
@@ -325,12 +432,20 @@ async function keyCheck(id, names, who, required, deps, online, envFile) {
325
432
  ...probed.status === "fail" ? { fix: `set a valid ${name} in ${envFile}` } : {}
326
433
  };
327
434
  }
328
- /** Each agent harness's key, from the environment and `.env.local` / `.env`. */
329
- async function checkKeys(config, deps, online, envFile) {
435
+ /**
436
+ * Each agent harness's key, from the environment and `.env.local` / `.env`: required for the
437
+ * harnesses the evals plan, a warning for a key only another profile's harness needs.
438
+ */
439
+ async function checkKeys(config, deps, online, envFile, planned) {
330
440
  const byKey = /* @__PURE__ */ new Map();
331
- for (const use of configuredUses(config)) {
441
+ const uses = [...usesOf(config, planned ?? await planUses(config, deps)).map((u) => ({
442
+ harness: u.harness,
443
+ profile: void 0
444
+ })), ...configuredUses(config).filter((u) => u.profile)];
445
+ const needed = new Set(uses.flatMap((u) => u.profile ? [] : [credentialOf(u.harness)]));
446
+ for (const use of uses) {
332
447
  const key = credentialOf(use.harness);
333
- if (!key) continue;
448
+ if (!key || use.profile && needed.has(key)) continue;
334
449
  const entry = byKey.get(key) ?? {
335
450
  who: [],
336
451
  required: false
@@ -358,11 +473,16 @@ async function checkJudge(config, deps, online, envFile) {
358
473
  profile: name
359
474
  }] : [];
360
475
  })];
361
- if (!models.length) return [{
362
- id: "judge",
363
- status: "skip",
364
- summary: "no judge model (c.judge needs one)"
365
- }];
476
+ if (!models.length) {
477
+ const callers = await judgeCallers(config);
478
+ if (!callers.length) return [];
479
+ return [{
480
+ id: "judge",
481
+ status: "warn",
482
+ summary: `no judge model, and ${callers.length > 2 ? `${callers.slice(0, 2).join(", ")}, …` : callers.join(", ")} ${callers.length === 1 ? "calls" : "call"} c.judge`,
483
+ fix: `set judge: { model: '${RECOMMENDED_JUDGE_MODEL}' } in the config, or fakeJudge()`
484
+ }];
485
+ }
366
486
  return Promise.all(models.map(({ model, profile }) => {
367
487
  const label = typeof model === "string" ? model : "fakeJudge()";
368
488
  const who = profile ? `${label} in profile ${profile}` : label;
@@ -375,6 +495,44 @@ async function checkJudge(config, deps, online, envFile) {
375
495
  return keyCheck("judge", keys, who, !profile, deps, online, envFile);
376
496
  }));
377
497
  }
498
+ const JUDGE_CALL = /\.judge\s*\(/;
499
+ const RELATIVE_IMPORT = /\bfrom\s+['"](\.{1,2}\/[^'"]+)['"]/g;
500
+ /**
501
+ * The eval files that call `.judge(`, in their own source or a module they import by a relative
502
+ * path, relative to the root. Read as text, not run: a call further away isn't seen.
503
+ */
504
+ async function judgeCallers(config) {
505
+ const root = config.root;
506
+ const files = await findEvalFiles(root, config.include, [
507
+ ...DEFAULT_EXCLUDE,
508
+ "**/.reeval/**",
509
+ `${relativeFile(root, config.history.dir)}/**`
510
+ ]);
511
+ const text = (path) => existsSync(path) ? readFileSync(path, "utf8") : "";
512
+ return files.filter((file) => {
513
+ const source = text(file);
514
+ if (JUDGE_CALL.test(source)) return true;
515
+ return [...source.matchAll(RELATIVE_IMPORT)].some(([, spec]) => JUDGE_CALL.test(text(resolve(dirname(file), spec))));
516
+ }).map((file) => relativeFile(root, file));
517
+ }
518
+ /** `analysis.model`'s key: a problem when `analysis.agent` makes every run need it. */
519
+ async function checkAnalysis(config, deps, online, envFile) {
520
+ const model = config.analysis.model;
521
+ if (model === void 0) return [];
522
+ if (typeof model !== "string") return [{
523
+ id: "analysis",
524
+ status: "ok",
525
+ summary: "fakeAnalysis() needs no key"
526
+ }];
527
+ const keys = judgeCredentials(model);
528
+ const who = `${model} (analysis.model)`;
529
+ if (!keys.length) return [{
530
+ id: "analysis",
531
+ status: "ok",
532
+ summary: `${who} needs no key`
533
+ }];
534
+ return [await keyCheck("analysis", keys, who, !!config.analysis.agent, deps, online, envFile)];
535
+ }
378
536
  const policyText = (policy) => policy === "allow-all" ? "allow-all: the agents reach any host" : policy === "deny-all" ? "deny-all: only each harness's own hosts" : `allow ${policy.allow.join(", ") || "none"}, plus each harness's own hosts`;
379
537
  function checkEgress(config) {
380
538
  const checks = [];
@@ -484,10 +642,24 @@ async function checkEnvFiles(root, deps) {
484
642
  /** Every check, in order; the config's checks only when it loads. */
485
643
  async function doctor(flags, deps) {
486
644
  const checks = [checkRuntime(deps.runtime, deps.nodeVersion)];
487
- const configPath = configPathFor(flags.config);
645
+ let configPath;
488
646
  let config;
489
647
  let missingImages = [];
490
- if (!configPath) checks.push({
648
+ let imageTargets = [];
649
+ let ambiguous;
650
+ try {
651
+ configPath = configPathFor(flags.config);
652
+ } catch (error) {
653
+ if (!(error instanceof UsageError)) throw error;
654
+ ambiguous = error.message;
655
+ }
656
+ if (ambiguous) checks.push({
657
+ id: "config",
658
+ status: "fail",
659
+ summary: ambiguous,
660
+ fix: "delete one of them"
661
+ });
662
+ else if (!configPath) checks.push({
491
663
  id: "config",
492
664
  status: "fail",
493
665
  summary: `no ${configFilesPhrase()} here or above`,
@@ -505,20 +677,28 @@ async function doctor(flags, deps) {
505
677
  id: "config",
506
678
  status: "fail",
507
679
  summary: redactSecrets(error.message),
508
- fix: `fix ${configLabel(configPath)}, then reeval run --dry-run`
680
+ fix: `edit ${configLabel(configPath)}, then reeval run --dry-run`
509
681
  });
510
682
  }
511
683
  if (config) {
512
684
  loadEnvFiles(configPath);
513
685
  const envFile = fromCwd(join(config.root, ".env.local")) || ".env.local";
686
+ const planned = await planUses(config, deps);
687
+ if ("error" in planned) checks.push({
688
+ id: "evals",
689
+ status: "warn",
690
+ summary: `didn't load, so the images and keys checked are the config's: ${planned.error}`,
691
+ fix: "reeval run --dry-run shows why"
692
+ });
514
693
  const docker = await checkDocker(config, deps);
515
694
  checks.push(...docker.checks);
516
695
  if (docker.running) {
517
- const images = await checkImages(config, deps);
696
+ const images = await checkImages(config, deps, planned);
518
697
  checks.push(...images.checks);
519
698
  missingImages = images.missing;
699
+ imageTargets = images.targets;
520
700
  } else if (docker.checks[0]?.status === "fail") {
521
- const why = docker.windowsContainers ? "Docker runs Windows containers" : "Docker isn't running";
701
+ const why = docker.windowsContainers ? "Docker runs Windows containers" : `${docker.checks[0]?.id === "podman" ? "Podman" : "Docker"} isn't running`;
522
702
  checks.push({
523
703
  id: "image",
524
704
  status: "skip",
@@ -526,8 +706,9 @@ async function doctor(flags, deps) {
526
706
  });
527
707
  }
528
708
  const online = !!flags.online;
529
- checks.push(...await checkKeys(config, deps, online, envFile));
709
+ checks.push(...await checkKeys(config, deps, online, envFile, planned));
530
710
  checks.push(...await checkJudge(config, deps, online, envFile));
711
+ checks.push(...await checkAnalysis(config, deps, online, envFile));
531
712
  checks.push(...checkEgress(config));
532
713
  checks.push(await checkGitignore(config.root, deps));
533
714
  const envFiles = await checkEnvFiles(config.root, deps);
@@ -544,7 +725,8 @@ async function doctor(flags, deps) {
544
725
  checks
545
726
  },
546
727
  config,
547
- missingImages
728
+ missingImages,
729
+ imageTargets
548
730
  };
549
731
  }
550
732
  function renderReport(report, color) {
@@ -563,12 +745,12 @@ function renderReport(report, color) {
563
745
  if (c.fix) lines.push(` ${" ".repeat(width)} ${dim(`fix: ${c.fix}`)}`);
564
746
  }
565
747
  const count = (n, word) => `${n} ${word}${n === 1 ? "" : "s"}`;
566
- lines.push("", report.problems ? red(`${count(report.problems, "problem")}, ${count(report.warnings, "warning")}. Fix them and run reeval doctor again.`) : report.warnings ? yellow(`No problems, ${count(report.warnings, "warning")}.`) : green("No problems."));
748
+ lines.push("", report.problems ? red(`${count(report.problems, "problem")}, ${count(report.warnings, "warning")}. Fix ${report.problems === 1 ? "it" : "them"} and run reeval doctor again.`) : report.warnings ? yellow(`No problems, ${count(report.warnings, "warning")}.`) : green("No problems."));
567
749
  return lines;
568
750
  }
569
751
  /** `reeval doctor`: exit 0 when nothing failed, 1 otherwise. */
570
752
  async function doctorCommand(flags, io, deps = defaultDeps()) {
571
- const { report, config, missingImages } = await doctor(flags, deps);
753
+ const { report, config, missingImages, imageTargets } = await doctor(flags, deps);
572
754
  if (flags.json) {
573
755
  io.out(JSON.stringify(report, null, 2));
574
756
  return report.healthy ? 0 : 1;
@@ -576,12 +758,8 @@ async function doctorCommand(flags, io, deps = defaultDeps()) {
576
758
  for (const line of renderReport(report, io.color)) io.out(line);
577
759
  if (config && missingImages.length && io.confirm) {
578
760
  if (await io.confirm(`Build ${missingImages.join(", ")} now with reeval image build? [y/N] `)) {
579
- const { buildImages, imageTargets } = await import("./images-BMgdpMAX.js");
580
- const built = await buildImages(imageTargets(configuredUses(config).map((u) => ({
581
- id: "",
582
- harness: u.harness,
583
- sandbox: u.sandbox
584
- }))), config.root, { log: (line) => io.out(line) });
761
+ const { buildImages } = await import("./images-Bi3aGxb9.js");
762
+ const built = await buildImages(imageTargets, config.root, { log: (line) => io.out(line) });
585
763
  for (const b of built) if (!b.ok) io.out(`✗ ${b.id}: ${b.failure.message.split("\n")[0]}`);
586
764
  io.out(built.every((b) => b.ok) ? "Built. Run reeval doctor again to check." : "Some images failed to build; reeval image build shows why.");
587
765
  }
@@ -591,4 +769,4 @@ async function doctorCommand(flags, io, deps = defaultDeps()) {
591
769
  //#endregion
592
770
  export { defaultDeps, doctor, doctorCommand };
593
771
 
594
- //# sourceMappingURL=doctor-DlKycx5H.js.map
772
+ //# sourceMappingURL=doctor-D2MbNO8L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-D2MbNO8L.js","names":[],"sources":["../src/doctor.ts"],"mappings":"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"}