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