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
|
@@ -20,7 +20,9 @@ const sumUsage = (usages) => {
|
|
|
20
20
|
const promptTokens = (u) => u.input + u.cacheRead + u.cacheWrite;
|
|
21
21
|
/** Prompt side, output, and reasoning when the harness reported it. No USD. */
|
|
22
22
|
const totalTokens = (u) => promptTokens(u) + u.output + (u.reasoning ?? 0);
|
|
23
|
+
/** A token count as people read it: `9,512`, `430k`, `1,094k`. */
|
|
24
|
+
const formatTokens = (n) => n >= 1e4 ? `${Math.round(n / 1e3).toLocaleString("en-US")}k` : Math.round(n).toLocaleString("en-US");
|
|
23
25
|
//#endregion
|
|
24
|
-
export { totalTokens as i,
|
|
26
|
+
export { totalTokens as a, sumUsage as i, formatTokens as n, promptTokens as r, addUsage as t };
|
|
25
27
|
|
|
26
|
-
//# sourceMappingURL=usage-
|
|
28
|
+
//# sourceMappingURL=usage-CleNKkly.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-
|
|
1
|
+
{"version":3,"file":"usage-CleNKkly.js","names":[],"sources":["../src/usage.ts"],"mappings":";;AAGA,SAAgB,SAAS,GAAsB,GAAyC;CACtF,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK;CAC1B,OAAO;EACL,OAAO,EAAE,QAAQ,EAAE;EACnB,QAAQ,EAAE,SAAS,EAAE;EACrB,WAAW,EAAE,YAAY,EAAE;EAC3B,YAAY,EAAE,aAAa,EAAE;EAC7B,WACE,EAAE,cAAc,QAAQ,EAAE,cAAc,OAAO,QAAQ,EAAE,aAAa,MAAM,EAAE,aAAa;CAC/F;AACF;;AAGA,MAAa,YAAY,WAAuE;CAC9F,IAAI,QAA2B;CAC/B,KAAK,MAAM,KAAK,QAAQ,QAAQ,SAAS,OAAO,KAAK,IAAI;CACzD,OAAO;AACT;;AAGA,MAAa,gBAAgB,MAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE;;AAGzE,MAAa,eAAe,MAAkB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa;;AAG3F,MAAa,gBAAgB,MAC3B,KAAK,MACD,GAAG,KAAK,MAAM,IAAI,GAAI,CAAC,CAAC,eAAe,OAAO,EAAE,KAChD,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,OAAO"}
|
package/dist/view/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $t as
|
|
1
|
+
import { $t as JudgementRecord, B as ErrorKind, Cn as effortSample, Dn as formatRatio, Dt as SandboxWarning, En as formatCount, Gt as CheckTally, Ht as ArtifactRef, Jt as FamilyRate, Kt as EvalEntry, Lt as TurnStatus, Nt as TokenUsage, On as formatSeconds, Pt as TranscriptEvent, Qt as HistoryEntry, Sn as effortOf, Tn as effortVerdict, Ut as AttemptRecord, Wt as CellRecord, Xt as FileRef, Yt as FamilyRecord, Zt as HistoryCell, _n as cellSamples, _t as Outcome, an as EFFORT_ALPHA, bn as effortChangeLabel, cn as EffortMetric, dn as Spread, en as Lift, fn as TOKENS_UNREPORTED, gn as cellEffort, hn as cellContrast, in as DIRECTIONAL_MIN, kn as tokenValues, ln as EffortSample, mn as bothUnderATenth, nn as StackSummary, on as EFFORT_MIN_RUNS, pn as VERDICT_TEXT, qt as FamilyLift, rn as CellEffort, sn as EffortContrast, tn as RunRecord, un as EffortVerdict, vn as contrastEffort, wn as effortSummary, xn as effortLabel, yn as directional } from "../types-BYdlwMwo.js";
|
|
2
2
|
//#region src/view/analysis.d.ts
|
|
3
3
|
/** Bumped when the system prompt or output schema changes: an older analysis is superseded. */
|
|
4
|
-
export declare const ANALYSIS_PROMPT_VERSION = "analysis-
|
|
4
|
+
export declare const ANALYSIS_PROMPT_VERSION = "analysis-v10";
|
|
5
5
|
/** Bumped when the digest's shape or selection rules change. */
|
|
6
|
-
export declare const DIGEST_VERSION =
|
|
6
|
+
export declare const DIGEST_VERSION = 10;
|
|
7
7
|
export type Confidence = 'high' | 'medium' | 'low';
|
|
8
8
|
export type AnalysisClaim = {
|
|
9
9
|
text: string;
|
|
@@ -15,7 +15,7 @@ export type AnalysisClaim = {
|
|
|
15
15
|
/** Numbers in the text that no cited fact or evidence contains. */
|
|
16
16
|
unverifiedNumbers?: string[];
|
|
17
17
|
};
|
|
18
|
-
export type AnomalyKind = '
|
|
18
|
+
export type AnomalyKind = 'reeval-bug' | 'eval-design' | 'judge' | 'noise' | 'other';
|
|
19
19
|
export type AnalysisAnomaly = {
|
|
20
20
|
text: string;
|
|
21
21
|
kind: AnomalyKind;
|
|
@@ -23,7 +23,7 @@ export type AnalysisAnomaly = {
|
|
|
23
23
|
/** Numbers in the text that no cited fact or evidence contains. */
|
|
24
24
|
unverifiedNumbers?: string[];
|
|
25
25
|
};
|
|
26
|
-
export type ActionKind = 'skill' | 'docs' | 'eval' | 'judge' | '
|
|
26
|
+
export type ActionKind = 'skill' | 'docs' | 'eval' | 'judge' | 'reeval' | 'harness';
|
|
27
27
|
export type Level = 'high' | 'medium' | 'low';
|
|
28
28
|
export type AnalysisAction = {
|
|
29
29
|
title: string;
|
|
@@ -70,7 +70,7 @@ export type AnalysisScope = {
|
|
|
70
70
|
evals: string | null;
|
|
71
71
|
};
|
|
72
72
|
export type AnalysisDoc = {
|
|
73
|
-
kind: '
|
|
73
|
+
kind: 'reeval-analysis';
|
|
74
74
|
schemaVersion: 1;
|
|
75
75
|
scope: AnalysisScope;
|
|
76
76
|
/** The run the analysis belongs to: the scope's head. */
|
|
@@ -344,7 +344,10 @@ export declare function uniqueJudgeLabels(items: readonly {
|
|
|
344
344
|
}[]): Map<string, string>;
|
|
345
345
|
export type JudgeKeyRate = {
|
|
346
346
|
key: string;
|
|
347
|
+
/** The `expect` label when the judge had one, else a short name from its question. */
|
|
347
348
|
label: string;
|
|
349
|
+
/** Named by an `expect` label, so the cell's checks carry it too. */
|
|
350
|
+
labelled: boolean;
|
|
348
351
|
question: string;
|
|
349
352
|
pass: number;
|
|
350
353
|
counted: number;
|
|
@@ -353,6 +356,11 @@ export type JudgeKeyRate = {
|
|
|
353
356
|
};
|
|
354
357
|
/** Per-key pass/counted for one cell's counted attempts, with lift on a variant when both sides qualify. */
|
|
355
358
|
export declare function cellJudgeRates(e: Pick<EvalEntry, 'attempts' | 'cells'>, cellKey: string): JudgeKeyRate[];
|
|
359
|
+
/**
|
|
360
|
+
* The judge rates a cell's summary line adds to its checks: a labelled judge whose label is one
|
|
361
|
+
* of the cell's checks against its control is already there.
|
|
362
|
+
*/
|
|
363
|
+
export declare function summaryJudgeRates(e: Pick<EvalEntry, 'attempts' | 'cells'>, cell: Pick<CellRecord, 'key' | 'checks'>): JudgeKeyRate[];
|
|
356
364
|
/** `login 4/5 · checkout 0/5`, with `(+80 pts)` on a key that has lift. */
|
|
357
365
|
export declare function judgeRatesLabel(rates: readonly JudgeKeyRate[]): string;
|
|
358
366
|
export type CollapsedJudge = {
|
|
@@ -369,8 +377,27 @@ export declare function collapsedJudges(judgements: readonly JudgementRecord[]):
|
|
|
369
377
|
};
|
|
370
378
|
/** `fail 0.78/0.80`, or `fail 0.33/0.80 · 3 judges` when there are many. */
|
|
371
379
|
export declare function collapsedJudgeLabel(judgements: readonly JudgementRecord[]): string | null;
|
|
380
|
+
/**
|
|
381
|
+
* Each judgement's `expect` label, by position: the attempt's `toPass` assertions (less those on a
|
|
382
|
+
* failed judge call, which recorded no judgement) in call order, when they are exactly as many as
|
|
383
|
+
* its judgements. `check` is that assertion's label, the key of its check; a judgement no label
|
|
384
|
+
* reaches is named by its question.
|
|
385
|
+
*/
|
|
386
|
+
export declare function labelledJudgements(a: Pick<AttemptRecord, 'judgements' | 'assertions'>): Array<{
|
|
387
|
+
judgement: JudgementRecord;
|
|
388
|
+
label: string;
|
|
389
|
+
labelled: boolean;
|
|
390
|
+
check?: string;
|
|
391
|
+
}>;
|
|
372
392
|
/** Sum of counted attempts' usage; null when none of them reported any. */
|
|
373
393
|
export declare function cellUsage(e: Pick<EvalEntry, 'attempts'>, cellKey: string): TokenUsage | null;
|
|
394
|
+
/**
|
|
395
|
+
* Each `c.exec` check's `expect` label, by position: the attempt's `toSucceed` assertions in call
|
|
396
|
+
* order, when they are exactly as many as its checks; undefined where no label reaches.
|
|
397
|
+
*/
|
|
398
|
+
export declare function checkLabels(a: Pick<AttemptRecord, 'checks' | 'assertions'>): Array<string | undefined>;
|
|
399
|
+
/** A check's command on one line: the first non-empty line, clipped; its log has the rest. */
|
|
400
|
+
export declare function commandLine(command: string, max?: number): string;
|
|
374
401
|
//#endregion
|
|
375
402
|
//#region src/view/live.d.ts
|
|
376
403
|
/** The progress file's name inside the run's staging directory. */
|
|
@@ -459,7 +486,7 @@ export type IndexManifest = {
|
|
|
459
486
|
};
|
|
460
487
|
export type StudioInfo = {
|
|
461
488
|
mode: 'live' | 'static';
|
|
462
|
-
|
|
489
|
+
reeval: string;
|
|
463
490
|
project: string;
|
|
464
491
|
generatedAt: string;
|
|
465
492
|
/** `debug`: local debug data (`.reeval/debug`) can be read; never in a static build. */
|
|
@@ -629,6 +656,8 @@ export type AnswerRow = {
|
|
|
629
656
|
noPairs: boolean;
|
|
630
657
|
/** Distinct vote reasons, in vote order, at most three. */
|
|
631
658
|
reasons: string[];
|
|
659
|
+
/** `questions/<n>.json` under the run's directory: what the model was sent; null when not kept. */
|
|
660
|
+
input: string | null;
|
|
632
661
|
};
|
|
633
662
|
/** One row per compare question, with each cut's win rates in the record's order. */
|
|
634
663
|
export declare function answerRows(e: Pick<EvalEntry, 'answers'>): AnswerRow[];
|
|
@@ -676,6 +705,11 @@ export declare const hasUngatedCells: (cells: readonly Pick<HistoryCell, 'gate'>
|
|
|
676
705
|
export declare const isUngatedMiss: (e: {
|
|
677
706
|
cells: readonly Pick<HistoryCell, 'key' | 'gate'>[];
|
|
678
707
|
}, a: Pick<AttemptRecord, 'cell' | 'outcome' | 'error'>) => boolean;
|
|
708
|
+
/**
|
|
709
|
+
* The outcome an eval's mark shows. A pass needs a counted (passed or failed) attempt and no infra
|
|
710
|
+
* error: a gate that lets those through, such as `gate: 'none'`, still shows `!`, not `✓`.
|
|
711
|
+
*/
|
|
712
|
+
export declare function evalMarkOutcome(e: Pick<EvalEntry, 'outcome' | 'attempts'>): Outcome;
|
|
679
713
|
/** `reeval compare`'s classification, plus pass@1 and judge-score deltas from the records. */
|
|
680
714
|
export declare function compareView(base: HistoryEntry, head: HistoryEntry, records?: {
|
|
681
715
|
base?: RunRecord;
|
|
@@ -799,5 +833,253 @@ export declare const readableTranscriptLine: (line: TranscriptLine) => Transcrip
|
|
|
799
833
|
/** An analysis document as every reader sees it; one from a newer reeval throws. */
|
|
800
834
|
export declare const readableAnalysis: (doc: AnalysisDoc, what?: string) => AnalysisDoc;
|
|
801
835
|
//#endregion
|
|
802
|
-
|
|
836
|
+
//#region src/view/suite.d.ts
|
|
837
|
+
/**
|
|
838
|
+
* A variant against its baseline: `better` or `worse` when the stored 95% interval on the
|
|
839
|
+
* difference excludes 0, `same` when both pass at the same rate, and `unclear` otherwise,
|
|
840
|
+
* including whenever either side has fewer than `EFFECT_MIN_COUNTED` counted attempts.
|
|
841
|
+
*/
|
|
842
|
+
export type Effect = 'better' | 'worse' | 'same' | 'unclear';
|
|
843
|
+
/**
|
|
844
|
+
* What an eval's cells compare: `change` when it has variants (or several environments),
|
|
845
|
+
* `harness` when it has several harnesses, `both`, or `none`.
|
|
846
|
+
*/
|
|
847
|
+
export type Across = 'none' | 'change' | 'harness' | 'both';
|
|
848
|
+
/** The fewest counted attempts a side for an effect to be anything but `unclear`. */
|
|
849
|
+
export declare const EFFECT_MIN_COUNTED = 4;
|
|
850
|
+
/**
|
|
851
|
+
* One finished run's facts. Every node has a `path`, a stable id to cite it by, and `paths`
|
|
852
|
+
* lists them all in the order the nodes appear.
|
|
853
|
+
*
|
|
854
|
+
* A path is `/`-separated segments, each with `%`, `/` and `+` percent-encoded:
|
|
855
|
+
*
|
|
856
|
+
* - `<eval>`: the eval's id (`evals/a.eval.ts › group › name`) or a family's
|
|
857
|
+
* (`evals/a.eval.ts › fixes $id`);
|
|
858
|
+
* - `<eval>/<case>`: a family case, by its label (`GH-101` for `fixes GH-101`);
|
|
859
|
+
* - `<eval>[/<case>]/<harness>+<environment>+<sandbox>`: a cell;
|
|
860
|
+
* - `<cell>/checks/<label>`: a check, by its assertion label;
|
|
861
|
+
* - `<cell>/effort`: the cell's effort, only when it was tested;
|
|
862
|
+
* - `<eval>/<harness>+<environment>+<sandbox>`: on a family, a variant's pooled effect.
|
|
863
|
+
*
|
|
864
|
+
* A case segment never has a raw `+` and a cell segment always has two, so the two can't be
|
|
865
|
+
* confused. Ids, labels and cell keys are what runs are matched on, so a path names the same
|
|
866
|
+
* fact in every run that has it.
|
|
867
|
+
*/
|
|
868
|
+
export type SuiteResult = {
|
|
869
|
+
runId: string;
|
|
870
|
+
status: RunRecord['status'];
|
|
871
|
+
/**
|
|
872
|
+
* The run's outcome, as `reeval run`'s exit code has it. An error thrown outside any attempt
|
|
873
|
+
* isn't in the record, so `reeval run` exits 1 on one whatever this says.
|
|
874
|
+
*/
|
|
875
|
+
outcome: Outcome;
|
|
876
|
+
/**
|
|
877
|
+
* Outcomes counted per block: each family case is one, each eval with no cases is one, and a
|
|
878
|
+
* family whose pooled gate failed is one more fail.
|
|
879
|
+
*/
|
|
880
|
+
tally: {
|
|
881
|
+
pass: number;
|
|
882
|
+
fail: number;
|
|
883
|
+
infraError: number;
|
|
884
|
+
skipped: number;
|
|
885
|
+
};
|
|
886
|
+
/** Sorted by path. */
|
|
887
|
+
files: ResultFile[];
|
|
888
|
+
/** Every node's `path`, in the order they appear. */
|
|
889
|
+
paths: string[];
|
|
890
|
+
};
|
|
891
|
+
export type ResultFile = {
|
|
892
|
+
path: string;
|
|
893
|
+
evals: EvalResult[];
|
|
894
|
+
};
|
|
895
|
+
export type EvalResult = {
|
|
896
|
+
path: string;
|
|
897
|
+
/** The eval's id, or the family's. */
|
|
898
|
+
id: string;
|
|
899
|
+
group: string[];
|
|
900
|
+
/** The eval's name; on a family, its template. */
|
|
901
|
+
name: string;
|
|
902
|
+
/** A family's name template (`fixes $id`); null on a single eval. */
|
|
903
|
+
template: string | null;
|
|
904
|
+
/** Source order in the file. */
|
|
905
|
+
order: number;
|
|
906
|
+
across: Across;
|
|
907
|
+
/**
|
|
908
|
+
* A pooled `evaluate.each` with two or more cases: `cases` is set and `cells` is null. An
|
|
909
|
+
* unpooled one (`{ pool: false }`) is recorded as separate evals, each a single eval.
|
|
910
|
+
*/
|
|
911
|
+
family: boolean;
|
|
912
|
+
/** A placeholder (`evaluate.todo`) that never ran. */
|
|
913
|
+
todo: boolean;
|
|
914
|
+
/** On a family: `fail` when a case failed or its pooled gate did. */
|
|
915
|
+
outcome: Outcome;
|
|
916
|
+
cells: CellResult[] | null;
|
|
917
|
+
cases: CaseResult[] | null;
|
|
918
|
+
/** A family's variants against their baseline, pooled over the cases; null on a single eval. */
|
|
919
|
+
pooled: PooledArm[] | null;
|
|
920
|
+
/** Its compare questions' answers; on a family, the first case's. */
|
|
921
|
+
questions: QuestionResult[];
|
|
922
|
+
};
|
|
923
|
+
/** A compare question: each side's wins over the pairs the model decided. Never gates. */
|
|
924
|
+
export type QuestionResult = {
|
|
925
|
+
question: string;
|
|
926
|
+
/** Pairs voted, each counted once per order it was asked in. */
|
|
927
|
+
votes: number;
|
|
928
|
+
rates: Array<{
|
|
929
|
+
cut: 'within' | 'across';
|
|
930
|
+
name: string;
|
|
931
|
+
wins: number;
|
|
932
|
+
n: number;
|
|
933
|
+
}>;
|
|
934
|
+
/** Why some or all of its votes are missing: the model call failed. */
|
|
935
|
+
error: string | null;
|
|
936
|
+
};
|
|
937
|
+
export type CaseResult = {
|
|
938
|
+
path: string;
|
|
939
|
+
/** The case's own eval id. */
|
|
940
|
+
id: string;
|
|
941
|
+
/** Its name less the template's literal text: `GH-101` for `fixes GH-101`. */
|
|
942
|
+
label: string;
|
|
943
|
+
name: string;
|
|
944
|
+
/** Its place in the case list. */
|
|
945
|
+
order: number;
|
|
946
|
+
outcome: Outcome;
|
|
947
|
+
cells: CellResult[];
|
|
948
|
+
};
|
|
949
|
+
export type CellResult = {
|
|
950
|
+
path: string;
|
|
951
|
+
key: string;
|
|
952
|
+
harness: string;
|
|
953
|
+
/** `-` when no environment is set. */
|
|
954
|
+
environment: string;
|
|
955
|
+
sandbox: string;
|
|
956
|
+
/** The variant's name; null on a control. */
|
|
957
|
+
variant: string | null;
|
|
958
|
+
/** The control of an eval that has variants: the arm the variants are measured against. */
|
|
959
|
+
baseline: boolean;
|
|
960
|
+
/** On a variant, its baseline cell's key; else null. */
|
|
961
|
+
vs: string | null;
|
|
962
|
+
/** The cell's place in the eval's cells. */
|
|
963
|
+
order: number;
|
|
964
|
+
/** Its failures fail the eval (its gate isn't `'none'`). */
|
|
965
|
+
gated: boolean;
|
|
966
|
+
outcome: Outcome;
|
|
967
|
+
/** Every attempt: `passed + failed + infraError + skipped`. */
|
|
968
|
+
attempts: number;
|
|
969
|
+
passed: number;
|
|
970
|
+
failed: number;
|
|
971
|
+
/** Infrastructure errors, which are neither passes nor fails. */
|
|
972
|
+
infraError: number;
|
|
973
|
+
skipped: number;
|
|
974
|
+
fingerprint: string;
|
|
975
|
+
/** The skill sources and files the cell's environment placed, as written. */
|
|
976
|
+
context: string[];
|
|
977
|
+
checks: CheckResult[];
|
|
978
|
+
/** On a variant, against its baseline; null on a control. */
|
|
979
|
+
effect: Effect | null;
|
|
980
|
+
/** The stored 95% interval on the variant's difference from its baseline. Not for display. */
|
|
981
|
+
interval: Interval | null;
|
|
982
|
+
/** On a variant, the compare's `minLift`, a fraction like the interval; null without one. */
|
|
983
|
+
minLift: number | null;
|
|
984
|
+
/** Medians over the counted attempts; null below `EFFECT_MIN_COUNTED` of them. */
|
|
985
|
+
effort: EffortCounters | null;
|
|
986
|
+
/** On a variant, its tool calls, agent time or tokens differ from its baseline's by the rank test. */
|
|
987
|
+
effortDiffers: boolean;
|
|
988
|
+
/** Why attempts failed or errored where no check says: a timeout, an infra error, a throw. */
|
|
989
|
+
errors: CellError[];
|
|
990
|
+
/** Web searches and fetches per counted attempt; null where the harness can't report them. */
|
|
991
|
+
searches: Array<number | null>;
|
|
992
|
+
fetches: Array<number | null>;
|
|
993
|
+
};
|
|
994
|
+
export type CheckResult = {
|
|
995
|
+
path: string;
|
|
996
|
+
label: string;
|
|
997
|
+
/** First-seen order across the eval's attempts. */
|
|
998
|
+
order: number;
|
|
999
|
+
outcome: CheckOutcome;
|
|
1000
|
+
/**
|
|
1001
|
+
* On a variant, this check against the baseline's (`unclear` when the baseline never ran it);
|
|
1002
|
+
* null on a control or without one.
|
|
1003
|
+
*/
|
|
1004
|
+
effect: Effect | null;
|
|
1005
|
+
/** Set when the check is a judge verdict. */
|
|
1006
|
+
judge: JudgeResult | null;
|
|
1007
|
+
};
|
|
1008
|
+
/**
|
|
1009
|
+
* `not run`: no counted attempt reached the check, because a hard `expect` before it failed.
|
|
1010
|
+
* That is not a failure, and is never `0 of N`. `ran`: counts over the counted attempts that
|
|
1011
|
+
* reached it (`errored` ones couldn't answer), with `notRun` for those that didn't, and the
|
|
1012
|
+
* first failure's message.
|
|
1013
|
+
*/
|
|
1014
|
+
export type CheckOutcome = {
|
|
1015
|
+
status: 'not run';
|
|
1016
|
+
} | {
|
|
1017
|
+
status: 'ran';
|
|
1018
|
+
passed: number;
|
|
1019
|
+
failed: number;
|
|
1020
|
+
errored: number;
|
|
1021
|
+
notRun: number;
|
|
1022
|
+
assertion: string | null;
|
|
1023
|
+
};
|
|
1024
|
+
/**
|
|
1025
|
+
* One distinct error over a cell's attempts: its kind (`turn` for a turn the harness ended with
|
|
1026
|
+
* an error), its message's first line, and how often.
|
|
1027
|
+
*/
|
|
1028
|
+
export type CellError = {
|
|
1029
|
+
kind: ErrorKind | 'turn';
|
|
1030
|
+
message: string;
|
|
1031
|
+
attempts: number;
|
|
1032
|
+
};
|
|
1033
|
+
export type JudgeResult = {
|
|
1034
|
+
question: string;
|
|
1035
|
+
threshold: number;
|
|
1036
|
+
/** One per counted attempt that judged it. */
|
|
1037
|
+
scores: number[];
|
|
1038
|
+
};
|
|
1039
|
+
export type Interval = {
|
|
1040
|
+
low: number;
|
|
1041
|
+
high: number;
|
|
1042
|
+
};
|
|
1043
|
+
/** A null counter is one the harness didn't record; a recorded zero stays zero. */
|
|
1044
|
+
export type EffortCounters = {
|
|
1045
|
+
tools: number | null;
|
|
1046
|
+
agentMs: number | null;
|
|
1047
|
+
tokens: number | null;
|
|
1048
|
+
};
|
|
1049
|
+
export type PooledArm = {
|
|
1050
|
+
path: string;
|
|
1051
|
+
/** The variant cell's key, the same in every case. */
|
|
1052
|
+
key: string;
|
|
1053
|
+
vs: string;
|
|
1054
|
+
effect: Effect;
|
|
1055
|
+
/** Cases with counted attempts on both sides. */
|
|
1056
|
+
pairs: number;
|
|
1057
|
+
interval: Interval;
|
|
1058
|
+
/** The compare's `minLift`, a fraction like the interval, which gates its low end; null without one. */
|
|
1059
|
+
minLift: number | null;
|
|
1060
|
+
outcome: 'pass' | 'fail';
|
|
1061
|
+
};
|
|
1062
|
+
type Side = {
|
|
1063
|
+
pass: number;
|
|
1064
|
+
counted: number;
|
|
1065
|
+
};
|
|
1066
|
+
/**
|
|
1067
|
+
* The effect of `variant` against `control`, from the interval on their difference. A side
|
|
1068
|
+
* with fewer than `EFFECT_MIN_COUNTED` counted attempts is `unclear`, whatever the interval.
|
|
1069
|
+
*/
|
|
1070
|
+
export declare function effectOf(variant: Side, control: Side, interval: Interval | null): Effect;
|
|
1071
|
+
/** The check's effect, on the same Newcombe interval the record stores for a cell's lift. */
|
|
1072
|
+
export declare function checkEffect(variant: CheckTally, control: CheckTally): Effect;
|
|
1073
|
+
/** One path segment: `%`, `/` and `+` percent-encoded, so segments split back unambiguously. */
|
|
1074
|
+
export declare const factSegment: (s: string) => string;
|
|
1075
|
+
export declare function evalAcross(cells: readonly Pick<CellRecord, 'harness' | 'environment' | 'role'>[]): Across;
|
|
1076
|
+
/**
|
|
1077
|
+
* An error's one line: its first line with any letter or digit in it, joined with the next one
|
|
1078
|
+
* when it ends with `:`, since `Docker failed:` alone says nothing. A log line's `| ` is dropped.
|
|
1079
|
+
*/
|
|
1080
|
+
export declare function messageLine(text: string): string;
|
|
1081
|
+
/** The facts of a run, from its record. Pure: the same record always gives the same result. */
|
|
1082
|
+
export declare function suiteResult(record: RunRecord): SuiteResult;
|
|
1083
|
+
//#endregion
|
|
1084
|
+
export { type ArtifactRef, type AttemptRecord, CellEffort, type CellRecord, DIRECTIONAL_MIN, EFFORT_ALPHA, EFFORT_MIN_RUNS, EffortContrast, EffortMetric, EffortSample, EffortVerdict, type EvalEntry, type FamilyLift, type FamilyRate, type FamilyRecord, type FileRef, type HistoryCell, type HistoryEntry, type JudgementRecord, type Outcome, type RunRecord, type SandboxWarning, Spread, type StackSummary, TOKENS_UNREPORTED, type TranscriptEvent, VERDICT_TEXT, bothUnderATenth, cellContrast, cellEffort, cellSamples, contrastEffort, directional, effortChangeLabel, effortLabel, effortOf, effortSample, effortSummary, effortVerdict, formatCount, formatRatio, formatSeconds, tokenValues };
|
|
803
1085
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/view/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { a as parseDataPath, c as shardPath, i as manifestPath, l as studioPath, n as artifactPath, o as recordPath, r as artifactType, s as shardOf, t as RUN_ID } from "../paths-BmR-7tx3.js";
|
|
2
2
|
import { a as debugApiPath, c as formatBytes, d as requestLine, f as traceApiPath, i as TRACE_FILE, l as parseDebugLog, n as DEBUG_PHASES, o as debugLogLine, r as REQUESTS_FILE, s as debugTime, t as DEBUG_LOG, u as parseNdjson } from "../debug-D24NOQH1.js";
|
|
3
|
-
import { a as pinnedAnalysis, i as isSuperseded, n as DIGEST_VERSION, o as sortAnalyses, r as analysisDataPath, t as ANALYSIS_PROMPT_VERSION } from "../analysis-
|
|
4
|
-
import { $ as
|
|
5
|
-
import { a as familyLiftLabel, i as
|
|
6
|
-
import { t as runHeader } from "../header-
|
|
7
|
-
import { c as readableTranscriptLine, r as readableAnalysis, s as readableRecord, t as NewerSchemaError } from "../record-
|
|
8
|
-
import { a as liveApiPath, c as readableLiveProgress, i as isFinished, n as LIVE_FILE, o as liveCounts, r as LIVE_SCHEMA_VERSION, s as liveTranscriptPath, t as FINISHED } from "../live-
|
|
9
|
-
export { ANALYSIS_PROMPT_VERSION, COMPARE_ORDER, DEBUG_LOG, DEBUG_PHASES, DIGEST_VERSION, EFFORT_ALPHA, FINISHED, LIFT_MIN_COUNTED, LIVE_FILE, LIVE_SCHEMA_VERSION, NewerSchemaError, REQUESTS_FILE, RUN_ID, TOKENS_UNREPORTED, TRACE_FILE, VERDICT_TEXT, activityLabel, analysisDataPath, answerRows, artifactPath, artifactType, buildIndex, caseLabel, cellContrast, cellEffort, cellJudgeRates, cellRows, cellSamples, cellUsage, cellsChanged, collapsedJudgeLabel, collapsedJudges, compare, compareView, contrastEffort, debugApiPath, debugLogLine, debugTime, defaultAttempt, effortChangeLabel, effortLabel, effortOf, effortSample, effortSummary, effortVerdict, evalHistory, evalTree, failedJudgeLabels, familyCases, familyEffortLabel, familyHeadLabel, familyLiftLabel, familyRateLabel, findAttempt, findEval, formatBytes, formatCount, formatDuration, formatPercent, formatRatio, formatSeconds, formatUsage, harnessLabel, hasUngatedCells, indexFiles, isFinished, isMatrix, isSuperseded, isUngatedMiss, judgeLabel, judgeRatesLabel, languageLabel, liveApiPath, liveCounts, liveTranscriptPath, manifestPath, parseDataPath, parseDebugLog, parseNdjson, parseTranscript, pinnedAnalysis, readableAnalysis, readableLiveProgress, readableRecord, readableTranscriptLine, recordPath, requestLine, runHeader, runLead, runOutcome, runRows, runtimeLabel, shardOf, shardPath, shortSha, sortAnalyses, sourceChanges, splitEvalId, splitPatch, stackChanges, studioPath, tokenValues, traceApiPath, transcriptItems, uniqueJudgeLabels, whyChanged };
|
|
3
|
+
import { a as pinnedAnalysis, i as isSuperseded, n as DIGEST_VERSION, o as sortAnalyses, r as analysisDataPath, t as ANALYSIS_PROMPT_VERSION } from "../analysis-Bxub9LMT.js";
|
|
4
|
+
import { $ as contrastEffort, A as splitPatch, B as judgeRatesLabel, C as parseTranscript, Ct as whyChanged, D as runtimeLabel, E as runRows, F as checkLabels, G as EFFORT_ALPHA, H as summaryJudgeRates, I as collapsedJudgeLabel, J as VERDICT_TEXT, K as EFFORT_MIN_RUNS, L as collapsedJudges, M as LIFT_MIN_COUNTED, N as cellJudgeRates, O as shortSha, P as cellUsage, Q as cellSamples, R as commandLine, S as languageLabel, St as stackChanges, T as runOutcome, U as uniqueJudgeLabels, V as labelledJudgements, W as DIRECTIONAL_MIN, X as cellContrast, Y as bothUnderATenth, Z as cellEffort, _ as harnessLabel, a as cellRows, at as effortSummary, b as isMatrix, bt as compare, c as evalHistory, ct as formatRatio, d as failedJudgeLabels, et as directional, f as findAttempt, g as formatUsage, h as formatPercent, i as buildIndex, it as effortSample, j as transcriptItems, k as splitEvalId, l as evalMarkOutcome, lt as formatSeconds, m as formatDuration, n as activityLabel, nt as effortLabel, o as compareView, ot as effortVerdict, p as findEval, q as TOKENS_UNREPORTED, r as answerRows, rt as effortOf, s as defaultAttempt, st as formatCount, t as COMPARE_ORDER, tt as effortChangeLabel, u as evalTree, ut as tokenValues, v as hasUngatedCells, w as runLead, x as isUngatedMiss, xt as sourceChanges, y as indexFiles, yt as cellsChanged, z as judgeLabel } from "../model-DaX4bNLZ.js";
|
|
5
|
+
import { a as factSegment, c as caseLabel, d as familyHeadLabel, f as familyLiftLabel, i as evalAcross, l as familyCases, n as checkEffect, o as messageLine, p as familyRateLabel, r as effectOf, s as suiteResult, t as EFFECT_MIN_COUNTED, u as familyEffortLabel } from "../suite-Cw_7G2RM.js";
|
|
6
|
+
import { t as runHeader } from "../header-DHQv_ZrF.js";
|
|
7
|
+
import { c as readableTranscriptLine, r as readableAnalysis, s as readableRecord, t as NewerSchemaError } from "../record-BKmMvZ6O.js";
|
|
8
|
+
import { a as liveApiPath, c as readableLiveProgress, i as isFinished, n as LIVE_FILE, o as liveCounts, r as LIVE_SCHEMA_VERSION, s as liveTranscriptPath, t as FINISHED } from "../live-jlfszAbb.js";
|
|
9
|
+
export { ANALYSIS_PROMPT_VERSION, COMPARE_ORDER, DEBUG_LOG, DEBUG_PHASES, DIGEST_VERSION, DIRECTIONAL_MIN, EFFECT_MIN_COUNTED, EFFORT_ALPHA, EFFORT_MIN_RUNS, FINISHED, LIFT_MIN_COUNTED, LIVE_FILE, LIVE_SCHEMA_VERSION, NewerSchemaError, REQUESTS_FILE, RUN_ID, TOKENS_UNREPORTED, TRACE_FILE, VERDICT_TEXT, activityLabel, analysisDataPath, answerRows, artifactPath, artifactType, bothUnderATenth, buildIndex, caseLabel, cellContrast, cellEffort, cellJudgeRates, cellRows, cellSamples, cellUsage, cellsChanged, checkEffect, checkLabels, collapsedJudgeLabel, collapsedJudges, commandLine, compare, compareView, contrastEffort, debugApiPath, debugLogLine, debugTime, defaultAttempt, directional, effectOf, effortChangeLabel, effortLabel, effortOf, effortSample, effortSummary, effortVerdict, evalAcross, evalHistory, evalMarkOutcome, evalTree, factSegment, failedJudgeLabels, familyCases, familyEffortLabel, familyHeadLabel, familyLiftLabel, familyRateLabel, findAttempt, findEval, formatBytes, formatCount, formatDuration, formatPercent, formatRatio, formatSeconds, formatUsage, harnessLabel, hasUngatedCells, indexFiles, isFinished, isMatrix, isSuperseded, isUngatedMiss, judgeLabel, judgeRatesLabel, labelledJudgements, languageLabel, liveApiPath, liveCounts, liveTranscriptPath, manifestPath, messageLine, parseDataPath, parseDebugLog, parseNdjson, parseTranscript, pinnedAnalysis, readableAnalysis, readableLiveProgress, readableRecord, readableTranscriptLine, recordPath, requestLine, runHeader, runLead, runOutcome, runRows, runtimeLabel, shardOf, shardPath, shortSha, sortAnalyses, sourceChanges, splitEvalId, splitPatch, stackChanges, studioPath, suiteResult, summaryJudgeRates, tokenValues, traceApiPath, transcriptItems, uniqueJudgeLabels, whyChanged };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { r as formatDuration } from "./text-gEcKjAyp.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { St as stackChanges, tt as effortChangeLabel, yt as cellsChanged } from "./model-DaX4bNLZ.js";
|
|
3
|
+
import { s as suiteResult } from "./suite-Cw_7G2RM.js";
|
|
4
|
+
import { o as warnings } from "./state-DfpHox6b.js";
|
|
5
|
+
import { a as render, i as stateRows, r as runTally, t as OUTCOME_MARK } from "./summary-BUKfU-9l.js";
|
|
5
6
|
//#region src/history/views.ts
|
|
6
7
|
var RefError = class extends Error {
|
|
7
8
|
name = "RefError";
|
|
@@ -15,20 +16,20 @@ function resolveRun(entries, ref = "latest") {
|
|
|
15
16
|
const back = /^latest(?:~(\d+))?$/.exec(ref);
|
|
16
17
|
if (back) {
|
|
17
18
|
const entry = entries[entries.length - 1 - Number(back[1] ?? 0)];
|
|
18
|
-
if (!entry) throw new RefError(`There are only ${entries.length} runs`);
|
|
19
|
+
if (!entry) throw new RefError(`There ${entries.length === 1 ? "is only 1 run" : `are only ${entries.length} runs`}, so ${ref} names none. reeval history lists them.`);
|
|
19
20
|
return entry;
|
|
20
21
|
}
|
|
21
22
|
const exact = entries.find((e) => e.runId === ref);
|
|
22
23
|
if (exact) return exact;
|
|
23
24
|
const byId = entries.filter((e) => e.runId.startsWith(ref));
|
|
24
25
|
if (byId.length === 1 && byId[0]) return byId[0];
|
|
25
|
-
if (byId.length > 1) throw new RefError(`"${ref}" matches ${byId.length} runs
|
|
26
|
+
if (byId.length > 1) throw new RefError(`"${ref}" matches ${byId.length} runs: use more of the id`);
|
|
26
27
|
if (/^[0-9a-f]{4,40}$/i.test(ref)) {
|
|
27
28
|
const atSha = entries.filter((e) => e.git?.sha.startsWith(ref.toLowerCase()));
|
|
28
29
|
const newest = atSha[atSha.length - 1];
|
|
29
30
|
if (newest) return newest;
|
|
30
31
|
}
|
|
31
|
-
throw new RefError(`No run matches "${ref}"
|
|
32
|
+
throw new RefError(`No run matches "${ref}". Pass latest, latest~N, a run id or a git SHA; reeval history lists them.`);
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
34
35
|
* The run to compare `head` against: a complete, earlier run on the first commit of `ancestry` that
|
|
@@ -190,31 +191,25 @@ const liftShort = (l) => l ? `${signed(l.points)} (${signed(l.lo)}…${signed(l.
|
|
|
190
191
|
const signed = (x) => `${x >= 0 ? "+" : "−"}${Math.round(Math.abs(x) * 100)}`;
|
|
191
192
|
const liftChange = (c) => `${liftShort(c.base.lift)} → ${liftShort(c.head.lift)}`;
|
|
192
193
|
const effortChange = (c) => c.base.effort && c.head.effort ? effortChangeLabel(c.base.effort, c.head.effort) : "effort –";
|
|
193
|
-
|
|
194
|
+
/** `reeval show`: the run's header and state, then the result blocks `reeval run` ended with. */
|
|
195
|
+
function formatShow(run, opts) {
|
|
194
196
|
const rows = stateRows(run);
|
|
195
197
|
const width = Math.max(...rows.map(([k]) => k.length));
|
|
196
|
-
|
|
197
|
-
`run ${run.runId} ${
|
|
198
|
+
return [
|
|
199
|
+
`run ${run.runId} ${runTally(run)}`,
|
|
198
200
|
` started ${run.startedAt} (${formatDuration(run.durationMs)}) · artifacts ${run.artifacts}`,
|
|
199
201
|
"",
|
|
200
202
|
...rows.map(([k, v]) => ` ${k.padEnd(width)} ${v}`),
|
|
201
203
|
...warnings(run).map((w) => ` ! ${w}`),
|
|
202
|
-
""
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const indent = single ? " " : " ";
|
|
210
|
-
if (!single) lines.push(` ${OUTCOME_MARK[t.outcome]} ${t.id} ${formatDuration(t.durationMs)}`);
|
|
211
|
-
for (const j of t.judgements) lines.push(`${indent}judge ${j.verdict} ${j.score.toFixed(2)} (≥ ${j.threshold}) ${j.question}`);
|
|
212
|
-
if (t.error && !repeatsVerdict(t)) lines.push(`${indent}${t.error.kind}: ${t.error.message.split("\n")[0]}`);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return lines.join("\n");
|
|
204
|
+
"",
|
|
205
|
+
...render(suiteResult(run), null, {
|
|
206
|
+
color: false,
|
|
207
|
+
verbose: false,
|
|
208
|
+
hint: opts.hint
|
|
209
|
+
})
|
|
210
|
+
].join("\n");
|
|
216
211
|
}
|
|
217
212
|
//#endregion
|
|
218
213
|
export { formatShow as a, resolveRun as c, formatNoBaseline as i, unreachable as l, formatCompare as n, history as o, formatHistory as r, pickBaseline as s, RefError as t };
|
|
219
214
|
|
|
220
|
-
//# sourceMappingURL=views-
|
|
215
|
+
//# sourceMappingURL=views-B8w2J-gD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"views-B8w2J-gD.js","names":[],"sources":["../src/history/views.ts"],"mappings":"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"}
|