reeval 0.11.0 → 0.12.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 (283) hide show
  1. package/README.md +3 -1
  2. package/bin/mcp-timer.cjs +224 -0
  3. package/dist/{adapter-Bwy3QxAK.js → adapter-DigeVFWC.js} +3 -3
  4. package/dist/{adapter-Bwy3QxAK.js.map → adapter-DigeVFWC.js.map} +1 -1
  5. package/dist/{agent-DpE80WPz.js → agent-CatUEo5h.js} +21 -6
  6. package/dist/{agent-DpE80WPz.js.map → agent-CatUEo5h.js.map} +1 -1
  7. package/dist/{assemble-D9GWr-HS.js → assemble-CF063ms6.js} +19 -17
  8. package/dist/assemble-CF063ms6.js.map +1 -0
  9. package/dist/assemble-CJoD_Rzr.js +1 -0
  10. package/dist/bridge/index.mjs +2 -1
  11. package/dist/{capture-BQlGHiMC.js → capture-BiD7lVaM.js} +25 -17
  12. package/dist/{capture-BQlGHiMC.js.map → capture-BiD7lVaM.js.map} +1 -1
  13. package/dist/capture-Dp3q7K7Y.js +1 -0
  14. package/dist/{cli-ClpPT8kn.js → cli-B5zQCR2r.js} +161 -116
  15. package/dist/cli-B5zQCR2r.js.map +1 -0
  16. package/dist/{cli-spec-qmEnQ25_.js → cli-spec-BXIBUlaK.js} +34 -15
  17. package/dist/cli-spec-BXIBUlaK.js.map +1 -0
  18. package/dist/cli.js +2 -2
  19. package/dist/{command-TgbzPizb.js → command-BMHXHqMT.js} +15 -14
  20. package/dist/command-BMHXHqMT.js.map +1 -0
  21. package/dist/command-C94CQNh8.js +91 -0
  22. package/dist/command-C94CQNh8.js.map +1 -0
  23. package/dist/command-CVtgyqlM.js +335 -0
  24. package/dist/command-CVtgyqlM.js.map +1 -0
  25. package/dist/{command-DbAe1Rzb.js → command-CaZgCTIw.js} +14 -17
  26. package/dist/command-CaZgCTIw.js.map +1 -0
  27. package/dist/{command-BlM0y8jN.js → command-DTgBZR0k.js} +6 -6
  28. package/dist/{command-BlM0y8jN.js.map → command-DTgBZR0k.js.map} +1 -1
  29. package/dist/{commands-CthqwkAn.js → commands-BXzIDB3X.js} +1 -1
  30. package/dist/commands-CjpGBUWr.js +666 -0
  31. package/dist/commands-CjpGBUWr.js.map +1 -0
  32. package/dist/{config-DrVSEVN0.js → config-Dv5MG7Rp.js} +27 -48
  33. package/dist/config-Dv5MG7Rp.js.map +1 -0
  34. package/dist/{context-C1mxXh80.js → context-Dgn48BqT.js} +13 -2
  35. package/dist/context-Dgn48BqT.js.map +1 -0
  36. package/dist/{contrasts-5zsj32gk.js → contrasts-CcoMLC_y.js} +3 -3
  37. package/dist/{contrasts-5zsj32gk.js.map → contrasts-CcoMLC_y.js.map} +1 -1
  38. package/dist/db-BeqRiWLl.js +602 -0
  39. package/dist/db-BeqRiWLl.js.map +1 -0
  40. package/dist/db-CJDRVQal.js +2 -0
  41. package/dist/{dist-CuY4ehEk.js → dist-CMjp3qqF.js} +2 -2
  42. package/dist/{dist-CuY4ehEk.js.map → dist-CMjp3qqF.js.map} +1 -1
  43. package/dist/{docker-DOvjji9I.js → docker-BbTlMmYi.js} +2 -2
  44. package/dist/{docker-DOvjji9I.js.map → docker-BbTlMmYi.js.map} +1 -1
  45. package/dist/{docker-D1HZDS6q.js → docker-CCXdbREk.js} +20 -4
  46. package/dist/{docker-D1HZDS6q.js.map → docker-CCXdbREk.js.map} +1 -1
  47. package/dist/{docker-DNmMPOBb.js → docker-DC69dKxB.js} +1 -1
  48. package/dist/{doctor-D2MbNO8L.js → doctor-CqttrZcs.js} +57 -22
  49. package/dist/doctor-CqttrZcs.js.map +1 -0
  50. package/dist/{egress-2-qzPvGi.js → egress-BfK_O9ce.js} +435 -30
  51. package/dist/egress-BfK_O9ce.js.map +1 -0
  52. package/dist/env-BQqj93gu.js +21 -0
  53. package/dist/env-BQqj93gu.js.map +1 -0
  54. package/dist/{environment-Cca6a4wB.js → environment-BBz1Yes9.js} +224 -10
  55. package/dist/environment-BBz1Yes9.js.map +1 -0
  56. package/dist/{evaluate-DKIl54Hb.js → evaluate-CXQ1o-pd.js} +539 -559
  57. package/dist/evaluate-CXQ1o-pd.js.map +1 -0
  58. package/dist/{evaluate-DMyaGQEj.d.ts → evaluate-yjZKUexW.d.ts} +2 -2
  59. package/dist/facts-DtENlf9s.js +898 -0
  60. package/dist/facts-DtENlf9s.js.map +1 -0
  61. package/dist/{files-BpUYBwGu.js → files-B-eUpCZ1.js} +30 -7
  62. package/dist/files-B-eUpCZ1.js.map +1 -0
  63. package/dist/files-BsQbYz2i.js +65 -0
  64. package/dist/files-BsQbYz2i.js.map +1 -0
  65. package/dist/{files-BXHZFWmx.js → files-COHQLEHE.js} +6 -17
  66. package/dist/files-COHQLEHE.js.map +1 -0
  67. package/dist/files-DqCBW7i8.js +1 -0
  68. package/dist/files-Ha-jsQXf.js +1 -0
  69. package/dist/generate-Cs2TMH_k.js +1647 -0
  70. package/dist/generate-Cs2TMH_k.js.map +1 -0
  71. package/dist/{git-Crl3b87o.js → git-DhykwgKF.js} +2 -2
  72. package/dist/{git-Crl3b87o.js.map → git-DhykwgKF.js.map} +1 -1
  73. package/dist/{harness-CEuntrla.js → harness-BAjw1fcr.js} +2 -2
  74. package/dist/{harness-CEuntrla.js.map → harness-BAjw1fcr.js.map} +1 -1
  75. package/dist/harness.d.ts +1 -1
  76. package/dist/harness.js +1 -1
  77. package/dist/{header-DHQv_ZrF.js → header-kSmWatcO.js} +10 -3
  78. package/dist/{header-DHQv_ZrF.js.map → header-kSmWatcO.js.map} +1 -1
  79. package/dist/{images-Bi3aGxb9.js → images-BmJRuTpm.js} +61 -13
  80. package/dist/images-BmJRuTpm.js.map +1 -0
  81. package/dist/index.d.ts +3 -3
  82. package/dist/index.js +4 -4
  83. package/dist/init-Bwc9byQr.js +543 -0
  84. package/dist/init-Bwc9byQr.js.map +1 -0
  85. package/dist/init-D7Y1ny1z.js +1 -0
  86. package/dist/insights-B2Xmhz9o.js +64 -0
  87. package/dist/insights-B2Xmhz9o.js.map +1 -0
  88. package/dist/{invocations-BYDPe3fV.js → invocations-CQTbP092.js} +3 -3
  89. package/dist/{invocations-BYDPe3fV.js.map → invocations-CQTbP092.js.map} +1 -1
  90. package/dist/{judge-DW_GDOmB.js → judge-Dt6KW6_O.js} +5 -3
  91. package/dist/judge-Dt6KW6_O.js.map +1 -0
  92. package/dist/judge.d.ts +7 -6
  93. package/dist/judge.js +8 -7
  94. package/dist/judge.js.map +1 -1
  95. package/dist/{live-jlfszAbb.js → live-DYd2QEyR.js} +2 -2
  96. package/dist/{live-jlfszAbb.js.map → live-DYd2QEyR.js.map} +1 -1
  97. package/dist/{model-D0IcOQao.js → model-B-mel-Gv.js} +43 -18
  98. package/dist/model-B-mel-Gv.js.map +1 -0
  99. package/dist/model-BGKYVpoj.js +1 -0
  100. package/dist/{model-DaVCY3rb.js → model-C7tSwT7f.js} +2 -2
  101. package/dist/{model-DaVCY3rb.js.map → model-C7tSwT7f.js.map} +1 -1
  102. package/dist/{model-DaX4bNLZ.js → model-CWlAqmbU.js} +135 -40
  103. package/dist/model-CWlAqmbU.js.map +1 -0
  104. package/dist/model-DHY-dfoO.js +1 -0
  105. package/dist/{node-B3ydHo6t.js → node-D0mtjRAO.js} +3 -3
  106. package/dist/{node-B3ydHo6t.js.map → node-D0mtjRAO.js.map} +1 -1
  107. package/dist/{options-C0d0AzeR.js → options-CPUW97_7.js} +7 -9
  108. package/dist/options-CPUW97_7.js.map +1 -0
  109. package/dist/{pairs-CnInRu-G.js → pairs-DP6XOJby.js} +2 -2
  110. package/dist/{pairs-CnInRu-G.js.map → pairs-DP6XOJby.js.map} +1 -1
  111. package/dist/{patch-B1bnfhN-.js → patch-D4oluWzH.js} +2 -2
  112. package/dist/{patch-B1bnfhN-.js.map → patch-D4oluWzH.js.map} +1 -1
  113. package/dist/{plan-DgQxp9yy.js → plan-OkwUcJQ9.js} +21 -8
  114. package/dist/plan-OkwUcJQ9.js.map +1 -0
  115. package/dist/plugins-CUWMnSNb.js +654 -0
  116. package/dist/plugins-CUWMnSNb.js.map +1 -0
  117. package/dist/{preflight-DlQvbySb.js → preflight-B6pY89bF.js} +1 -1
  118. package/dist/{preflight-BRzD30L5.js → preflight-Bjm7_ylE.js} +14 -10
  119. package/dist/preflight-Bjm7_ylE.js.map +1 -0
  120. package/dist/{prepare-B_y-AFMv.js → prepare-CQmK3SBn.js} +70 -23
  121. package/dist/prepare-CQmK3SBn.js.map +1 -0
  122. package/dist/prepare-DbdgtZKe.js +2 -0
  123. package/dist/{provenance-DQ0AXn6c.js → provenance-B3Y17oCC.js} +3 -3
  124. package/dist/{provenance-DQ0AXn6c.js.map → provenance-B3Y17oCC.js.map} +1 -1
  125. package/dist/providers-CXN2RFz-.js +1 -0
  126. package/dist/{providers-DoTq1jHW.js → providers-eoniqK6w.js} +24 -10
  127. package/dist/providers-eoniqK6w.js.map +1 -0
  128. package/dist/{query-BO-ux7RB.js → query-CLRZmWBT.js} +3 -3
  129. package/dist/{query-BO-ux7RB.js.map → query-CLRZmWBT.js.map} +1 -1
  130. package/dist/query-CmBDYt0_.js +1 -0
  131. package/dist/{questions-C2dym2ce.js → questions-1XOulevV.js} +6 -6
  132. package/dist/{questions-C2dym2ce.js.map → questions-1XOulevV.js.map} +1 -1
  133. package/dist/{record-BKmMvZ6O.js → record-kk9M1hj-.js} +8 -4
  134. package/dist/record-kk9M1hj-.js.map +1 -0
  135. package/dist/remarks-1521zwfW.js +38 -0
  136. package/dist/remarks-1521zwfW.js.map +1 -0
  137. package/dist/remarks-BhAV1H4V.js +1 -0
  138. package/dist/remarks-DlJCqWRs.js +278 -0
  139. package/dist/remarks-DlJCqWRs.js.map +1 -0
  140. package/dist/{remote-CPPW86Q9.js → remote-cE2VWfkJ.js} +3 -3
  141. package/dist/{remote-CPPW86Q9.js.map → remote-cE2VWfkJ.js.map} +1 -1
  142. package/dist/resolve-C4zeccCH.js +724 -0
  143. package/dist/resolve-C4zeccCH.js.map +1 -0
  144. package/dist/resolve-D30yZYmB.js +1 -0
  145. package/dist/{results-BE2f-1XS.js → results-Drtt0uFl.js} +33 -8
  146. package/dist/results-Drtt0uFl.js.map +1 -0
  147. package/dist/{resume-Ca1c8vix.js → resume-BEFazUfy.js} +4 -4
  148. package/dist/{resume-Ca1c8vix.js.map → resume-BEFazUfy.js.map} +1 -1
  149. package/dist/rules-BFzQqPIm.js +317 -0
  150. package/dist/rules-BFzQqPIm.js.map +1 -0
  151. package/dist/run-BeMy92Us.js +88 -0
  152. package/dist/run-BeMy92Us.js.map +1 -0
  153. package/dist/{sandbox-DLrsvu7U.js → sandbox-CQaJj7n9.js} +2 -2
  154. package/dist/{sandbox-DLrsvu7U.js.map → sandbox-CQaJj7n9.js.map} +1 -1
  155. package/dist/sandbox.d.ts +1 -1
  156. package/dist/sandbox.js +1 -1
  157. package/dist/server-V4-2w0l8.js +1 -0
  158. package/dist/{server-TUY5xA_A.js → server-xK0les4f.js} +8 -8
  159. package/dist/{server-TUY5xA_A.js.map → server-xK0les4f.js.map} +1 -1
  160. package/dist/source-BDow_oW8.js +1 -0
  161. package/dist/{source-DJGS0a0u.js → source-Q1hEKbCs.js} +2 -2
  162. package/dist/{source-DJGS0a0u.js.map → source-Q1hEKbCs.js.map} +1 -1
  163. package/dist/src-B9L9yGKI.js +1 -0
  164. package/dist/{src-CLoOMVWI.js → src-Bcah6ZkT.js} +1 -1
  165. package/dist/{src-DvCg0NBs.js → src-BhmaorOU.js} +28 -6
  166. package/dist/{src-DvCg0NBs.js.map → src-BhmaorOU.js.map} +1 -1
  167. package/dist/{src-CF17Ug08.js → src-C0CeKiLU.js} +19 -4
  168. package/dist/{src-CF17Ug08.js.map → src-C0CeKiLU.js.map} +1 -1
  169. package/dist/src-C0xowZ3C.js +2 -0
  170. package/dist/src-CHIfIKUu.js +2 -0
  171. package/dist/src-DLtyz4w5.js +2 -0
  172. package/dist/src-DPIjmReZ.js +2 -0
  173. package/dist/{src-BxfCKA3_.js → src-DXNh5mTr.js} +1 -1
  174. package/dist/{src-FGXhkEkH.js → src-DiLMkIr9.js} +142 -13
  175. package/dist/src-DiLMkIr9.js.map +1 -0
  176. package/dist/{src-ftu5wPSt.js → src-LekQrr_S.js} +209 -29
  177. package/dist/src-LekQrr_S.js.map +1 -0
  178. package/dist/src-bCnsA6Vp.js +2 -0
  179. package/dist/{src-u8_ixn_F.js → src-cbCb-MPy.js} +20 -4
  180. package/dist/src-cbCb-MPy.js.map +1 -0
  181. package/dist/{src-DvK0EIZx.js → src-qGoFkuJF.js} +55 -6
  182. package/dist/{src-DvK0EIZx.js.map → src-qGoFkuJF.js.map} +1 -1
  183. package/dist/{src-DSYYPEOj.js → src-ynBVosfX.js} +1 -1
  184. package/dist/state-BQR_BCm4.js +1 -0
  185. package/dist/{state-DfpHox6b.js → state-BmZ8QVZ8.js} +12 -12
  186. package/dist/{state-DfpHox6b.js.map → state-BmZ8QVZ8.js.map} +1 -1
  187. package/dist/studio-app/assets/{index-CBkhNAv8.js → index-CnYJijyI.js} +9 -9
  188. package/dist/studio-app/index.html +1 -1
  189. package/dist/suite-BaHPmAGy.js +1 -0
  190. package/dist/{suite-Cw_7G2RM.js → suite-C8sw2pox.js} +80 -28
  191. package/dist/suite-C8sw2pox.js.map +1 -0
  192. package/dist/{summary-BUKfU-9l.js → summary-0oQNGskv.js} +273 -47
  193. package/dist/summary-0oQNGskv.js.map +1 -0
  194. package/dist/testing.d.ts +2 -2
  195. package/dist/testing.js +2 -2
  196. package/dist/{text-gEcKjAyp.js → text-CrVy5ioL.js} +18 -2
  197. package/dist/text-CrVy5ioL.js.map +1 -0
  198. package/dist/{transcript-BNNANU8A.js → transcript-BTxJpW4R.js} +2 -2
  199. package/dist/{transcript-BNNANU8A.js.map → transcript-BTxJpW4R.js.map} +1 -1
  200. package/dist/types-C5vI3g1C.js.map +1 -1
  201. package/dist/{types-BYdlwMwo.d.ts → types-GraZtfHN.d.ts} +848 -34
  202. package/dist/usage-BDo2q_yu.js +1 -0
  203. package/dist/{command-Bj39y-Wm.js → validate-BdoXUuL_.js} +15 -372
  204. package/dist/validate-BdoXUuL_.js.map +1 -0
  205. package/dist/view/index.d.ts +20 -257
  206. package/dist/view/index.js +7 -6
  207. package/dist/{views-B8w2J-gD.js → views-BoUoX4_A.js} +8 -98
  208. package/dist/views-BoUoX4_A.js.map +1 -0
  209. package/dist/views-noVQNCUP.js +2 -0
  210. package/dist/{worker-entry-DNnveLqx.js → worker-entry-D0-GErmU.js} +2 -2
  211. package/dist/{worker-entry-DNnveLqx.js.map → worker-entry-D0-GErmU.js.map} +1 -1
  212. package/dist/{workspace-C_X0tdv6.js → workspace-B90YDU_a.js} +1 -1
  213. package/dist/{workspace-C4RA3srV.js → workspace-tjZFkjxC.js} +4 -4
  214. package/dist/{workspace-C4RA3srV.js.map → workspace-tjZFkjxC.js.map} +1 -1
  215. package/package.json +3 -1
  216. package/skills/eval-rubric/SKILL.md +130 -0
  217. package/dist/agent-D483ru7D.js +0 -334
  218. package/dist/agent-D483ru7D.js.map +0 -1
  219. package/dist/assemble-D5KGrwnJ.js +0 -1
  220. package/dist/assemble-D9GWr-HS.js.map +0 -1
  221. package/dist/capture-CYGLpWxR.js +0 -1
  222. package/dist/cli-ClpPT8kn.js.map +0 -1
  223. package/dist/cli-spec-qmEnQ25_.js.map +0 -1
  224. package/dist/command-Bj39y-Wm.js.map +0 -1
  225. package/dist/command-C-cVjlny.js +0 -1
  226. package/dist/command-DbAe1Rzb.js.map +0 -1
  227. package/dist/command-TgbzPizb.js.map +0 -1
  228. package/dist/commands-YUwlyTbr.js +0 -228
  229. package/dist/commands-YUwlyTbr.js.map +0 -1
  230. package/dist/config-DrVSEVN0.js.map +0 -1
  231. package/dist/context-C1mxXh80.js.map +0 -1
  232. package/dist/db-CKg5NtiW.js +0 -2
  233. package/dist/db-DfhipHEF.js +0 -1416
  234. package/dist/db-DfhipHEF.js.map +0 -1
  235. package/dist/doctor-D2MbNO8L.js.map +0 -1
  236. package/dist/egress-2-qzPvGi.js.map +0 -1
  237. package/dist/environment-Cca6a4wB.js.map +0 -1
  238. package/dist/evaluate-DKIl54Hb.js.map +0 -1
  239. package/dist/files-BXHZFWmx.js.map +0 -1
  240. package/dist/files-BpUYBwGu.js.map +0 -1
  241. package/dist/files-Bw8lWEjg.js +0 -1
  242. package/dist/files-D6J0iSdx.js +0 -1
  243. package/dist/images-Bi3aGxb9.js.map +0 -1
  244. package/dist/init-Cl3f3NBT.js +0 -360
  245. package/dist/init-Cl3f3NBT.js.map +0 -1
  246. package/dist/init-fhOXED8F.js +0 -1
  247. package/dist/judge-DW_GDOmB.js.map +0 -1
  248. package/dist/model-CXhrziBe.js +0 -1
  249. package/dist/model-D0IcOQao.js.map +0 -1
  250. package/dist/model-DaX4bNLZ.js.map +0 -1
  251. package/dist/model-_bxNrk2h.js +0 -1
  252. package/dist/options-C0d0AzeR.js.map +0 -1
  253. package/dist/plan-DgQxp9yy.js.map +0 -1
  254. package/dist/preflight-BRzD30L5.js.map +0 -1
  255. package/dist/prepare-B_y-AFMv.js.map +0 -1
  256. package/dist/prepare-DCKTLHN3.js +0 -2
  257. package/dist/providers-B9yTdIqF.js +0 -1
  258. package/dist/providers-DoTq1jHW.js.map +0 -1
  259. package/dist/query-CRQfsw0e.js +0 -1
  260. package/dist/record-BKmMvZ6O.js.map +0 -1
  261. package/dist/results-BE2f-1XS.js.map +0 -1
  262. package/dist/server-Dp8eOeK5.js +0 -1
  263. package/dist/source-DdbLGR1M.js +0 -1
  264. package/dist/src-CcrQbpG8.js +0 -2
  265. package/dist/src-DCFtJRp0.js +0 -2
  266. package/dist/src-DYO3DdnQ.js +0 -1
  267. package/dist/src-FGXhkEkH.js.map +0 -1
  268. package/dist/src-WD-zgQYZ.js +0 -2
  269. package/dist/src-_oI9AePb.js +0 -2
  270. package/dist/src-ftu5wPSt.js.map +0 -1
  271. package/dist/src-qsKCqv7a.js +0 -2
  272. package/dist/src-u8_ixn_F.js.map +0 -1
  273. package/dist/state-DpAxYyED.js +0 -1
  274. package/dist/suite-Cw_7G2RM.js.map +0 -1
  275. package/dist/suite-DamAEnNF.js +0 -1
  276. package/dist/summary-BUKfU-9l.js.map +0 -1
  277. package/dist/summary-Baa4rTHS.js +0 -192
  278. package/dist/summary-Baa4rTHS.js.map +0 -1
  279. package/dist/text-gEcKjAyp.js.map +0 -1
  280. package/dist/tools-DLHgetpx.js +0 -249
  281. package/dist/tools-DLHgetpx.js.map +0 -1
  282. package/dist/views-B8w2J-gD.js.map +0 -1
  283. package/dist/views-DblnI3kA.js +0 -2
@@ -0,0 +1,543 @@
1
+ import { n as UsageError } from "./errors-B6BSMs03.js";
2
+ import { s as harnessId } from "./options-CPUW97_7.js";
3
+ import { r as RECOMMENDED_ANALYSIS_MODEL } from "./judge-Dt6KW6_O.js";
4
+ import { t as CONFIG_FILES } from "./config-Dv5MG7Rp.js";
5
+ import { i as PACKAGE_DIR } from "./root-DICDHCtp.js";
6
+ import { d as agentFor } from "./egress-BfK_O9ce.js";
7
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
+ import { dirname, join, relative, resolve, sep } from "node:path";
9
+ import { parseTsconfig } from "get-tsconfig";
10
+ import { createInterface } from "node:readline";
11
+ //#region src/init.ts
12
+ /** The agents `reeval init` offers, in the order it lists them, with the model it pins. */
13
+ const INIT_HARNESSES = [
14
+ {
15
+ kind: "cursor",
16
+ label: "Cursor",
17
+ factory: "cursor",
18
+ model: "composer-2.5"
19
+ },
20
+ {
21
+ kind: "claude-code",
22
+ label: "Claude Code",
23
+ factory: "claudeCode",
24
+ model: "claude-sonnet-5"
25
+ },
26
+ {
27
+ kind: "antigravity",
28
+ label: "Antigravity",
29
+ factory: "antigravity",
30
+ model: "gemini-3.8-flash-medium"
31
+ },
32
+ {
33
+ kind: "opencode",
34
+ label: "OpenCode",
35
+ factory: "opencode",
36
+ model: "google/gemini-3.8-flash"
37
+ },
38
+ {
39
+ kind: "goose",
40
+ label: "Goose",
41
+ factory: "goose",
42
+ model: "gemini-3.8-flash"
43
+ },
44
+ {
45
+ kind: "pi",
46
+ label: "pi",
47
+ factory: "pi",
48
+ model: "gemini-3.8-flash"
49
+ },
50
+ {
51
+ kind: "codex",
52
+ label: "Codex",
53
+ factory: "codex",
54
+ model: "gpt-5.6-luna"
55
+ },
56
+ {
57
+ kind: "fx",
58
+ label: "fx",
59
+ factory: "fx",
60
+ model: "anthropic/claude-sonnet-5"
61
+ },
62
+ {
63
+ kind: "grok-build",
64
+ label: "Grok Build",
65
+ factory: "grokBuild",
66
+ model: "grok-4.6"
67
+ }
68
+ ];
69
+ const descriptorOf = (h) => ({
70
+ kind: h.kind,
71
+ model: h.model
72
+ });
73
+ /** The key an offered agent's pinned model needs. */
74
+ const keyOf = (h) => agentFor(descriptorOf(h)).credential;
75
+ /** The cell id an offered agent runs as, e.g. `opencode:gemini-3.8-flash`. */
76
+ const cellOf = (h) => harnessId(descriptorOf(h));
77
+ /** The key that calls `analysis.model` directly. */
78
+ const ANALYSIS_KEY = "GOOGLE_GENERATIVE_AI_API_KEY";
79
+ const CHOICES = INIT_HARNESSES.map((h) => h.kind);
80
+ const DEFAULT_CHOICE = "cursor";
81
+ const GITIGNORE = [".reeval/", ".env*"];
82
+ const EVAL_FILE = "evals/greet.eval.ts";
83
+ const ENVIRONMENTS_FILE = "evals/environments.ts";
84
+ const SAME = "already as reeval init writes it";
85
+ const YOURS = "exists: left as it is";
86
+ /** How long init waits on `docker info`: a Docker Desktop still starting can hold it for minutes. */
87
+ const DOCKER_CHECK_MS = 1e4;
88
+ const posix$1 = (path) => path.split(sep).join("/");
89
+ function harnessOf(choice) {
90
+ const h = INIT_HARNESSES.find((h) => h.kind === choice);
91
+ if (!h) throw new UsageError(`--harness must be one of ${CHOICES.join(", ")} (got ${choice})`);
92
+ return h;
93
+ }
94
+ function configSource(pkg, choice) {
95
+ const h = harnessOf(choice);
96
+ return `import { defineConfig } from '${pkg}'
97
+ import { ${h.factory} } from '${pkg}/harness'
98
+
99
+ export default defineConfig({
100
+ include: ['evals/**/*.eval.ts'],
101
+ harness: ${h.factory}({ model: '${h.model}' }), // needs ${keyOf(h)}
102
+ timeout: '15m',
103
+ // For c.judge, add a judge, e.g. judge: { model: '${RECOMMENDED_ANALYSIS_MODEL}' }.
104
+ // Insights explain each eval after a run, with ${ANALYSIS_KEY};
105
+ // insights: false turns them off.
106
+ analysis: { model: '${RECOMMENDED_ANALYSIS_MODEL}' },
107
+ defaultProfile: { ci: 'pr' },
108
+ profiles: {
109
+ // PR runs in CI: one attempt per cell, no variants.
110
+ pr: { limit: { runs: 1, compare: false }, budget: { attempts: 20 } },
111
+ // Thorough: three attempts per cell, recorded every time.
112
+ nightly: {
113
+ defaults: { runs: 3 },
114
+ record: 'always',
115
+ budget: { attempts: 80, duration: '2h' },
116
+ },
117
+ },
118
+ })
119
+ `;
120
+ }
121
+ function environmentsSource(pkg) {
122
+ return `import { defineEnvironment } from '${pkg}'
123
+
124
+ /** What every attempt of greet.eval.ts starts in, before the agent's first turn. */
125
+ export const greeter = defineEnvironment('greeter', {
126
+ // Written into the workspace.
127
+ files: { 'package.json': '{ "type": "module" }\\n' },
128
+ // The project's rules: AGENTS.md, or CLAUDE.md for Claude Code.
129
+ rules: 'Write ES modules with named exports. Add no dependencies.\\n',
130
+ })
131
+ `;
132
+ }
133
+ function evalSource(pkg) {
134
+ return `import { evaluate, expect } from '${pkg}'
135
+ import { greeter } from './environments.ts'
136
+
137
+ const greetsAda = \`node -e "import('./greet.js').then((m) =>
138
+ process.exit(m.greet('Ada') === 'Hello, Ada!' ? 0 : 1))"\`
139
+
140
+ evaluate('creates greet.js', { environment: greeter }, async (c) => {
141
+ const turn = await c.send(
142
+ 'Create greet.js, an ES module exporting greet(name) that returns ' +
143
+ '"Hello, <name>!". No dependencies.',
144
+ )
145
+
146
+ await expect(turn).toHaveFile('greet.js', /greet/)
147
+ await expect(c.exec(greetsAda)).toSucceed()
148
+ })
149
+ `;
150
+ }
151
+ const TSCONFIG = `{
152
+ "compilerOptions": {
153
+ "target": "es2023",
154
+ "module": "nodenext",
155
+ "strict": true,
156
+ "allowImportingTsExtensions": true,
157
+ "noEmit": true,
158
+ "skipLibCheck": true
159
+ },
160
+ "include": ["*.ts", "evals"]
161
+ }
162
+ `;
163
+ const read = (path) => existsSync(path) ? readFileSync(path, "utf8") : void 0;
164
+ const eolOf = (text) => text.includes("\r\n") ? "\r\n" : "\n";
165
+ /** The config reeval writes: created when missing, skipped when the same, replaced only with `force`. */
166
+ function config(dir, content, note, force, conflicts) {
167
+ const path = "reeval.config.ts";
168
+ const existing = read(join(dir, path));
169
+ if (existing === void 0) return {
170
+ path,
171
+ action: "create",
172
+ note,
173
+ content
174
+ };
175
+ if (existing === content) return {
176
+ path,
177
+ action: "skip",
178
+ note: SAME
179
+ };
180
+ if (!force) conflicts.push(`${path} exists and isn't the one reeval init writes`);
181
+ return {
182
+ path,
183
+ action: "overwrite",
184
+ note,
185
+ content
186
+ };
187
+ }
188
+ /** A file init adds only when it's missing: one that exists is the project's own. */
189
+ function added(dir, path, content, note) {
190
+ const existing = read(join(dir, path));
191
+ if (existing === void 0) return {
192
+ path,
193
+ action: "create",
194
+ note,
195
+ content
196
+ };
197
+ return {
198
+ path,
199
+ action: "skip",
200
+ note: existing === content ? SAME : YOURS
201
+ };
202
+ }
203
+ /** The entries reeval needs (`.reeval/`, `.env*`) that a `.gitignore`'s text doesn't list. */
204
+ function missingGitignoreEntries(text) {
205
+ const lines = new Set(text.split(/\r?\n/).map((l) => l.trim().replace(/^\//, "")));
206
+ return GITIGNORE.filter((e) => !lines.has(e) && !lines.has(e.replace(/\/$/, "")));
207
+ }
208
+ function gitignore(dir) {
209
+ const existing = read(join(dir, ".gitignore"));
210
+ const missing = missingGitignoreEntries(existing ?? "");
211
+ if (!missing.length) return {
212
+ path: ".gitignore",
213
+ action: "skip",
214
+ note: `lists ${GITIGNORE.join(", ")}`
215
+ };
216
+ if (existing === void 0) return {
217
+ path: ".gitignore",
218
+ action: "create",
219
+ note: ["node_modules/", ...missing].join(", "),
220
+ content: `node_modules/\n\n# reeval: scratch runs and debug data; local keys\n${missing.join("\n")}\n`
221
+ };
222
+ const eol = eolOf(existing);
223
+ const lead = existing && !existing.endsWith("\n") ? eol : "";
224
+ const block = [
225
+ ...existing ? [`${lead}`] : [],
226
+ "# reeval: scratch runs and debug data; local keys",
227
+ ...missing,
228
+ ""
229
+ ].join(eol);
230
+ return {
231
+ path: ".gitignore",
232
+ action: "update",
233
+ note: missing.join(", "),
234
+ content: `${existing}${block}`
235
+ };
236
+ }
237
+ const skipString = (t, i) => {
238
+ for (i++; i < t.length && t[i] !== "\""; i++) if (t[i] === "\\") i++;
239
+ return i + 1;
240
+ };
241
+ const skipSpace = (t, i) => {
242
+ while (i < t.length && /\s/.test(t[i] ?? "")) i++;
243
+ return i;
244
+ };
245
+ function skipValue(t, i) {
246
+ if (t[i] === "\"") return skipString(t, i);
247
+ if (t[i] !== "{" && t[i] !== "[") {
248
+ while (i < t.length && !/[\s,}\]]/.test(t[i] ?? "")) i++;
249
+ return i;
250
+ }
251
+ for (let depth = 0; i < t.length; i++) if (t[i] === "\"") i = skipString(t, i) - 1;
252
+ else if (t[i] === "{" || t[i] === "[") depth++;
253
+ else if ((t[i] === "}" || t[i] === "]") && --depth === 0) return i + 1;
254
+ return i;
255
+ }
256
+ /** The members of the JSON object opening at `open` (valid JSON): each key, and where its value ends. */
257
+ function membersOf(t, open) {
258
+ const members = [];
259
+ let i = skipSpace(t, open + 1);
260
+ while (t[i] === "\"") {
261
+ const keyEnd = skipString(t, i);
262
+ const value = skipSpace(t, skipSpace(t, keyEnd) + 1);
263
+ const end = skipValue(t, value);
264
+ members.push({
265
+ key: JSON.parse(t.slice(i, keyEnd)),
266
+ start: i,
267
+ value,
268
+ end
269
+ });
270
+ i = skipSpace(t, end);
271
+ if (t[i] === ",") i = skipSpace(t, i + 1);
272
+ }
273
+ return members;
274
+ }
275
+ /**
276
+ * `text` with `"key": value` added as the last member of the object opening at `open`, laid out as
277
+ * that object's members are: the same line breaks and indentation, so the rest of the file is
278
+ * untouched. `value(lead)` gets the whitespace that starts a member, for nesting an object.
279
+ */
280
+ function addMember(t, open, key, value) {
281
+ const members = membersOf(t, open);
282
+ const last = members.at(-1);
283
+ if (!last) {
284
+ const close = skipSpace(t, open + 1);
285
+ return `${t.slice(0, open)}{ ${JSON.stringify(key)}: ${value(" ")} }${t.slice(close + 1)}`;
286
+ }
287
+ const before = members.at(-2);
288
+ const from = before ? t.indexOf(",", before.end) + 1 : open + 1;
289
+ const lead = t.slice(from, last.start);
290
+ return `${t.slice(0, last.end)},${lead}${JSON.stringify(key)}: ${value(lead)}${t.slice(last.end)}`;
291
+ }
292
+ /** `{ "name": "value" }` nested one level below members that start with `lead`. */
293
+ const nested = (name, v) => (lead) => {
294
+ const entry = `${JSON.stringify(name)}: ${JSON.stringify(v)}`;
295
+ if (!lead.includes("\n")) return `{ ${entry} }`;
296
+ return `{${lead}${lead.slice(lead.lastIndexOf("\n") + 1)}${entry}${lead}}`;
297
+ };
298
+ /** `package.json` with `section.name` set to `v`, every other byte as it was. */
299
+ function withEntry(text, section, name, v) {
300
+ const root = skipSpace(text, 0);
301
+ const top = membersOf(text, root).find((m) => m.key === section);
302
+ if (top && text[top.value] === "{") return addMember(text, top.value, name, () => JSON.stringify(v));
303
+ return addMember(text, root, section, nested(name, v));
304
+ }
305
+ function packageJson(dir, pkg, version) {
306
+ const path = join(dir, "package.json");
307
+ const existing = read(path);
308
+ const range = `^${version}`;
309
+ if (existing === void 0) {
310
+ const manifest = {
311
+ name: (posix$1(resolve(dir)).split("/").pop() ?? "evals").toLowerCase().replace(/[^a-z0-9._-]+/g, "-") || "evals",
312
+ private: true,
313
+ type: "module",
314
+ scripts: { eval: "reeval run" },
315
+ devDependencies: { [pkg]: range }
316
+ };
317
+ return {
318
+ path: "package.json",
319
+ action: "create",
320
+ note: `script eval, devDependency ${pkg}`,
321
+ content: `${JSON.stringify(manifest, null, 2)}\n`
322
+ };
323
+ }
324
+ let manifest;
325
+ try {
326
+ manifest = JSON.parse(existing);
327
+ } catch (error) {
328
+ throw new UsageError(`package.json isn't valid JSON: ${error.message}`);
329
+ }
330
+ if (!manifest || typeof manifest !== "object" || Array.isArray(manifest)) throw new UsageError("package.json isn't a JSON object");
331
+ const scripts = manifest.scripts;
332
+ const has = (section) => !!manifest[section]?.[pkg];
333
+ const hasPkg = has("dependencies") || has("devDependencies");
334
+ let content = existing;
335
+ const added = [];
336
+ const kept = [];
337
+ if (!scripts?.eval) {
338
+ content = withEntry(content, "scripts", "eval", "reeval run");
339
+ added.push("script eval");
340
+ } else if (scripts.eval !== "reeval run") kept.push(`its eval script (${scripts.eval})`);
341
+ if (!hasPkg) {
342
+ content = withEntry(content, "devDependencies", pkg, range);
343
+ added.push(`devDependency ${pkg}`);
344
+ }
345
+ const keptNote = kept.length ? `; kept ${kept.join(", ")}` : "";
346
+ if (!added.length) return {
347
+ path: "package.json",
348
+ action: "skip",
349
+ note: kept.length ? `has ${pkg}; kept ${kept.join(", ")}` : `has an eval script and ${pkg}`
350
+ };
351
+ return {
352
+ path: "package.json",
353
+ action: "update",
354
+ note: `${added.join(", ")}${keptNote}`,
355
+ content
356
+ };
357
+ }
358
+ /** A `tsconfig.json` editors and `tsc` read the evals' `.ts` imports with; an existing one is left. */
359
+ function tsconfig(dir) {
360
+ const path = join(dir, "tsconfig.json");
361
+ const existing = read(path);
362
+ if (existing === void 0) return {
363
+ path: "tsconfig.json",
364
+ action: "create",
365
+ note: "for editors and tsc: the evals' .ts imports, no emit",
366
+ content: TSCONFIG
367
+ };
368
+ if (existing === TSCONFIG) return {
369
+ path: "tsconfig.json",
370
+ action: "skip",
371
+ note: SAME
372
+ };
373
+ let options;
374
+ try {
375
+ options = parseTsconfig(path).compilerOptions;
376
+ } catch {
377
+ return {
378
+ path: "tsconfig.json",
379
+ action: "skip",
380
+ note: YOURS
381
+ };
382
+ }
383
+ return {
384
+ path: "tsconfig.json",
385
+ action: "skip",
386
+ note: options?.allowImportingTsExtensions || options?.rewriteRelativeImportExtensions ? YOURS : `${YOURS}; for the eval's .ts import, add "allowImportingTsExtensions": true (with noEmit)`
387
+ };
388
+ }
389
+ /** Why init stops in `dir` before asking anything: reeval is set up there already. */
390
+ function setUpAlready(dir, options) {
391
+ const other = CONFIG_FILES.filter((f) => f !== "reeval.config.ts" && existsSync(join(dir, f)));
392
+ if (other.length) return { refusal: `${other.join(" and ")} ${other.length > 1 ? "are" : "is"} its config. Nothing was written. To start again with reeval.config.ts, delete ${other.length > 1 ? "them" : "it"} first.` };
393
+ const existing = read(join(dir, "reeval.config.ts"));
394
+ if (existing === void 0) return {};
395
+ const same = CHOICES.find((c) => configSource(options.pkg, c) === existing);
396
+ if (same && (options.choice ?? same) === same) return { choice: same };
397
+ if (options.force) return {};
398
+ return { refusal: "reeval.config.ts exists and isn't the one reeval init writes. Nothing was written. Pass --force to replace it; init never overwrites another file." };
399
+ }
400
+ /** Everything `reeval init` would do in `dir`, without writing. */
401
+ function planInit(options) {
402
+ const { dir, choice, force, pkg, version, bare } = options;
403
+ const conflicts = [];
404
+ const other = CONFIG_FILES.filter((f) => f !== "reeval.config.ts" && existsSync(join(dir, f)));
405
+ if (other.length) conflicts.push(`${other.join(", ")} exists already`);
406
+ const h = harnessOf(choice);
407
+ const environments = added(dir, ENVIRONMENTS_FILE, environmentsSource(pkg), "environment greeter: a package.json and rules");
408
+ const ownEnvironments = environments.note === YOURS ? read(join(dir, ENVIRONMENTS_FILE)) ?? "" : void 0;
409
+ const evalAction = ownEnvironments !== void 0 && !/\bexport\s+(const|let|var)\s+greeter\b/.test(ownEnvironments) && !existsSync(join(dir, EVAL_FILE)) ? {
410
+ path: EVAL_FILE,
411
+ action: "skip",
412
+ note: `imports greeter, which your ${ENVIRONMENTS_FILE} doesn't export`
413
+ } : added(dir, EVAL_FILE, evalSource(pkg), "one eval, in greeter");
414
+ return {
415
+ dir,
416
+ actions: [
417
+ config(dir, configSource(pkg, choice), `harness ${cellOf(h)}; insights ${RECOMMENDED_ANALYSIS_MODEL}; profiles pr, nightly`, force, conflicts),
418
+ ...bare ? [] : [environments, evalAction],
419
+ gitignore(dir),
420
+ packageJson(dir, pkg, version),
421
+ ...bare ? [] : [tsconfig(dir)]
422
+ ],
423
+ conflicts
424
+ };
425
+ }
426
+ /** Asks which agent to configure, by number or name; the empty answer takes the default. */
427
+ async function askHarness(input, output) {
428
+ const lines = ["Which agent should reeval.config.ts run?", ...INIT_HARNESSES.map((h, i) => ` ${i + 1}) ${h.label.padEnd(12)} ${cellOf(h)}, ${keyOf(h)}`)];
429
+ output.write(`${lines.join("\n")}\n`);
430
+ const rl = createInterface({
431
+ input,
432
+ terminal: false
433
+ });
434
+ const answers = rl[Symbol.asyncIterator]();
435
+ try {
436
+ for (;;) {
437
+ output.write(`Agent [1]: `);
438
+ const next = await answers.next();
439
+ if (next.done) throw new UsageError("reeval init got no answer. Pass --harness <name> or --yes.");
440
+ const answer = String(next.value).trim().toLowerCase();
441
+ if (!answer) return DEFAULT_CHOICE;
442
+ const byNumber = CHOICES[Number(answer) - 1];
443
+ if (/^\d+$/.test(answer) && byNumber) return byNumber;
444
+ const byName = CHOICES.find((c) => c === answer || harnessOf(c).label.toLowerCase() === answer);
445
+ if (byName) return byName;
446
+ output.write(`Answer 1 to ${CHOICES.length}, or one of ${CHOICES.join(", ")}.\n`);
447
+ }
448
+ } finally {
449
+ rl.close();
450
+ }
451
+ }
452
+ function packageManager(dir) {
453
+ for (let d = resolve(dir);; d = dirname(d)) {
454
+ if (existsSync(join(d, "pnpm-lock.yaml"))) return {
455
+ install: "pnpm install",
456
+ exec: "pnpm reeval"
457
+ };
458
+ if (existsSync(join(d, "yarn.lock"))) return {
459
+ install: "yarn",
460
+ exec: "yarn reeval"
461
+ };
462
+ if (existsSync(join(d, "bun.lock"))) return {
463
+ install: "bun install",
464
+ exec: "bunx reeval"
465
+ };
466
+ if (existsSync(join(d, "package-lock.json")) || dirname(d) === d) break;
467
+ }
468
+ return {
469
+ install: "npm install",
470
+ exec: "npx reeval"
471
+ };
472
+ }
473
+ const dockerLine = async (next) => {
474
+ try {
475
+ const { defaultDeps, dockerReadiness } = await import("./doctor-CqttrZcs.js");
476
+ return await dockerReadiness(defaultDeps(), next, AbortSignal.timeout(DOCKER_CHECK_MS));
477
+ } catch (error) {
478
+ return error.name === "TimeoutError" ? `Docker didn't answer within ${DOCKER_CHECK_MS / 1e3}s: wait for it to start, or check it with reeval doctor, then run ${next}` : `Docker couldn't be checked (${error.message}): reeval doctor checks it again, then run ${next}`;
479
+ }
480
+ };
481
+ /** `reeval init [dir]`: plans the scaffold, stops where reeval is set up already, then writes it. */
482
+ async function initCommand(flags, args, io) {
483
+ const manifest = JSON.parse(readFileSync(join(PACKAGE_DIR, "package.json"), "utf8"));
484
+ const dir = resolve(io.cwd, args[0] ?? ".");
485
+ const where = posix$1(relative(io.cwd, dir)) || ".";
486
+ const force = !!flags.force;
487
+ let named;
488
+ if (flags.harness !== void 0) {
489
+ named = flags.harness.toLowerCase();
490
+ if (!CHOICES.includes(named)) throw new UsageError(`--harness must be one of ${CHOICES.join(", ")} (got ${flags.harness})`);
491
+ }
492
+ const setUp = setUpAlready(dir, {
493
+ pkg: manifest.name,
494
+ force,
495
+ choice: named
496
+ });
497
+ if (setUp.refusal) throw new UsageError(`reeval is already set up in ${where}: ${setUp.refusal}`);
498
+ let choice;
499
+ if (named) choice = named;
500
+ else if (setUp.choice) choice = setUp.choice;
501
+ else if (flags.yes) choice = DEFAULT_CHOICE;
502
+ else if (io.input.isTTY) choice = await askHarness(io.input, io.output);
503
+ else throw new UsageError("reeval init asks which agent to configure, and there is no terminal to ask in. Pass --harness <name> or --yes.");
504
+ const plan = planInit({
505
+ dir,
506
+ choice,
507
+ force,
508
+ pkg: manifest.name,
509
+ version: manifest.version,
510
+ bare: !!flags.bare
511
+ });
512
+ if (plan.conflicts.length) throw new UsageError(`reeval is already set up in ${where}: ${plan.conflicts.join("; ")}. Nothing was written.`);
513
+ const dry = !!flags["dry-run"];
514
+ io.out(`reeval init · ${where}${dry ? " (nothing written: --dry-run)" : ""}`);
515
+ const width = Math.max(...plan.actions.map((a) => a.path.length));
516
+ for (const a of plan.actions) io.out(` ${a.action.padEnd(9)} ${a.path.padEnd(width)} ${a.note}`);
517
+ if (!dry) for (const a of plan.actions) {
518
+ if (a.content === void 0) continue;
519
+ const path = join(dir, ...a.path.split("/"));
520
+ mkdirSync(dirname(path), { recursive: true });
521
+ writeFileSync(path, a.content);
522
+ }
523
+ io.out(`Insights: ${RECOMMENDED_ANALYSIS_MODEL} explains each eval after a run, with ${ANALYSIS_KEY}; analysis.insights: false or --no-insights turns them off`);
524
+ const pm = packageManager(dir);
525
+ const h = harnessOf(choice);
526
+ const build = `${pm.exec} image build`;
527
+ const example = plan.actions.find((a) => a.path === EVAL_FILE);
528
+ const evals = !example ? "the evals you write in evals/" : example.action === "create" || example.note === SAME ? "the eval" : "the evals in evals/";
529
+ const next = [
530
+ ...where === "." ? [] : [[`cd ${where}`, ""]],
531
+ [pm.install, ""],
532
+ [build, `bakes ${h.label} into its sandbox image (needs Docker)`],
533
+ [`${pm.exec} run`, `${evals} on ${h.label}, with ${keyOf(h)} in .env.local`]
534
+ ];
535
+ const pad = Math.max(...next.map(([c]) => c.length));
536
+ io.out(`Next:\n${next.map(([c, n]) => ` ${n ? `${c.padEnd(pad)} ${n}` : c}`).join("\n")}`);
537
+ io.out(await dockerLine(build));
538
+ return 0;
539
+ }
540
+ //#endregion
541
+ export { evalSource as a, planInit as c, environmentsSource as i, askHarness as n, initCommand as o, configSource as r, missingGitignoreEntries as s, INIT_HARNESSES as t };
542
+
543
+ //# sourceMappingURL=init-Bwc9byQr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-Bwc9byQr.js","names":["posix"],"sources":["../src/init.ts"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { o as initCommand } from "./init-Bwc9byQr.js";
@@ -0,0 +1,64 @@
1
+ //#region src/view/insights.ts
2
+ /** `<history>/<run>/insights.json`, beside the record. */
3
+ const INSIGHTS_FILE = "insights.json";
4
+ /** `RunInsights.model` when no analysis model wrote the file: it holds deterministic remarks only. */
5
+ const NO_MODEL = "none";
6
+ /** Whether an analysis model wrote these insights, rather than reeval alone for its remarks. */
7
+ const fromModel = (insights) => insights.model !== NO_MODEL;
8
+ /**
9
+ * Each remark kind's origin and severity: an analysis model raises the `model` kinds, through the
10
+ * gates (a known kind, a quote verbatim on the cited line); reeval's rules raise the others. The
11
+ * severity is the kind's, never the model's.
12
+ */
13
+ const REMARK_KINDS = {
14
+ "name-contradicts": {
15
+ origin: "model",
16
+ severity: "concern"
17
+ },
18
+ "name-no-intent": {
19
+ origin: "model",
20
+ severity: "suggestion"
21
+ },
22
+ "judge-too-loose": {
23
+ origin: "model",
24
+ severity: "concern"
25
+ },
26
+ "judge-leaks-answer": {
27
+ origin: "model",
28
+ severity: "concern"
29
+ },
30
+ "prompt-names-tool": {
31
+ origin: "model",
32
+ severity: "concern"
33
+ },
34
+ "compound-judge": {
35
+ origin: "model",
36
+ severity: "suggestion"
37
+ },
38
+ "too-few-tries": {
39
+ origin: "deterministic",
40
+ severity: "suggestion"
41
+ },
42
+ "check-never-fails": {
43
+ origin: "deterministic",
44
+ severity: "suggestion"
45
+ },
46
+ "flaky-check": {
47
+ origin: "deterministic",
48
+ severity: "concern"
49
+ },
50
+ "no-baseline": {
51
+ origin: "deterministic",
52
+ severity: "concern"
53
+ },
54
+ "slow-mcp-start": {
55
+ origin: "deterministic",
56
+ severity: "concern"
57
+ }
58
+ };
59
+ /** The kinds an analysis model may raise; a remark of any other kind from it is dropped. */
60
+ const MODEL_REMARK_KINDS = Object.entries(REMARK_KINDS).flatMap(([kind, k]) => k.origin === "model" ? [kind] : []);
61
+ //#endregion
62
+ export { fromModel as a, REMARK_KINDS as i, MODEL_REMARK_KINDS as n, NO_MODEL as r, INSIGHTS_FILE as t };
63
+
64
+ //# sourceMappingURL=insights-B2Xmhz9o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights-B2Xmhz9o.js","names":[],"sources":["../src/view/insights.ts"],"mappings":";;AAOA,MAAa,gBAAgB;;AAG7B,MAAa,WAAW;;AAGxB,MAAa,aAAa,aAA0B,SAAS,UAAU;;;;;;AAwHvE,MAAa,eAGT;CACF,oBAAoB;EAAE,QAAQ;EAAS,UAAU;CAAU;CAC3D,kBAAkB;EAAE,QAAQ;EAAS,UAAU;CAAa;CAC5D,mBAAmB;EAAE,QAAQ;EAAS,UAAU;CAAU;CAC1D,sBAAsB;EAAE,QAAQ;EAAS,UAAU;CAAU;CAC7D,qBAAqB;EAAE,QAAQ;EAAS,UAAU;CAAU;CAC5D,kBAAkB;EAAE,QAAQ;EAAS,UAAU;CAAa;CAC5D,iBAAiB;EAAE,QAAQ;EAAiB,UAAU;CAAa;CACnE,qBAAqB;EAAE,QAAQ;EAAiB,UAAU;CAAa;CACvE,eAAe;EAAE,QAAQ;EAAiB,UAAU;CAAU;CAC9D,eAAe;EAAE,QAAQ;EAAiB,UAAU;CAAU;CAC9D,kBAAkB;EAAE,QAAQ;EAAiB,UAAU;CAAU;AACnE;;AAGA,MAAa,qBAAqB,OAAO,QAAQ,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,OAC7E,EAAE,WAAW,UAAU,CAAC,IAAsB,IAAI,CAAC,CACrD"}
@@ -1,6 +1,6 @@
1
1
  import { o as redactSecrets, s as registerSecret, t as REDACTED } from "./redact-DJ9JCShu.js";
2
- import { a as readableCliInvocation } from "./record-BKmMvZ6O.js";
3
- import { c as isFlagName, n as FLAGS, t as COMMANDS } from "./cli-spec-qmEnQ25_.js";
2
+ import { a as readableCliInvocation } from "./record-kk9M1hj-.js";
3
+ import { c as isFlagName, n as FLAGS, t as COMMANDS } from "./cli-spec-BXIBUlaK.js";
4
4
  import { existsSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
5
5
  import { homedir } from "node:os";
6
6
  import { join } from "node:path";
@@ -154,4 +154,4 @@ function logInvocation(root, entry) {
154
154
  //#endregion
155
155
  export { redactArgv as a, masks as i, readInvocations as n, registerEnvFileValues as o, commandOf as r, scrubber as s, logInvocation as t };
156
156
 
157
- //# sourceMappingURL=invocations-BYDPe3fV.js.map
157
+ //# sourceMappingURL=invocations-CQTbP092.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invocations-BYDPe3fV.js","names":[],"sources":["../src/report/scrub.ts","../src/report/invocations.ts"],"mappings":"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"}
1
+ {"version":3,"file":"invocations-CQTbP092.js","names":[],"sources":["../src/report/scrub.ts","../src/report/invocations.ts"],"mappings":"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"}