reeval 0.11.0 → 0.13.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 +115 -257
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +41 -30
- package/bin/mcp-timer.cjs +224 -0
- package/dist/{adapter-Bwy3QxAK.js → adapter-IKKo4sZj.js} +4 -4
- package/dist/{adapter-Bwy3QxAK.js.map → adapter-IKKo4sZj.js.map} +1 -1
- package/dist/{agent-DpE80WPz.js → agent-ClE-g9VL.js} +22 -7
- package/dist/{agent-DpE80WPz.js.map → agent-ClE-g9VL.js.map} +1 -1
- package/dist/{analysis-Bxub9LMT.js → analysis-B0nOfAzA.js} +3 -3
- package/dist/{analysis-Bxub9LMT.js.map → analysis-B0nOfAzA.js.map} +1 -1
- package/dist/{assemble-D9GWr-HS.js → assemble-BO93VAk1.js} +22 -20
- package/dist/assemble-BO93VAk1.js.map +1 -0
- package/dist/assemble-VQxyoDxK.js +1 -0
- package/dist/{attempt-CGPV3BZY.js → attempt-jI0OWxlz.js} +2 -2
- package/dist/{attempt-CGPV3BZY.js.map → attempt-jI0OWxlz.js.map} +1 -1
- package/dist/bridge/index.mjs +2 -1
- package/dist/{capture-BQlGHiMC.js → capture-dn2hjSLj.js} +29 -21
- package/dist/{capture-BQlGHiMC.js.map → capture-dn2hjSLj.js.map} +1 -1
- package/dist/capture-nIJ-7kUE.js +1 -0
- package/dist/{cli-ClpPT8kn.js → cli-BCE1xlm4.js} +176 -120
- package/dist/cli-BCE1xlm4.js.map +1 -0
- package/dist/{cli-spec-qmEnQ25_.js → cli-spec-BXIBUlaK.js} +34 -15
- package/dist/cli-spec-BXIBUlaK.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{command-BlM0y8jN.js → command-Bh3yhN_b.js} +8 -8
- package/dist/{command-BlM0y8jN.js.map → command-Bh3yhN_b.js.map} +1 -1
- package/dist/command-C6vwmjS7.js +91 -0
- package/dist/command-C6vwmjS7.js.map +1 -0
- package/dist/{command-DbAe1Rzb.js → command-CANun0m0.js} +16 -19
- package/dist/command-CANun0m0.js.map +1 -0
- package/dist/command-CBaHukyl.js +335 -0
- package/dist/command-CBaHukyl.js.map +1 -0
- package/dist/{command-TgbzPizb.js → command-D_kEnYcX.js} +17 -16
- package/dist/command-D_kEnYcX.js.map +1 -0
- package/dist/commands-7tH3EsVu.js +666 -0
- package/dist/commands-7tH3EsVu.js.map +1 -0
- package/dist/{commands-CthqwkAn.js → commands-BKGzBMgb.js} +1 -1
- package/dist/{config-DrVSEVN0.js → config-D7TFvUpL.js} +40 -55
- package/dist/config-D7TFvUpL.js.map +1 -0
- package/dist/{context-C1mxXh80.js → context-Dgn48BqT.js} +13 -2
- package/dist/context-Dgn48BqT.js.map +1 -0
- package/dist/{contrasts-5zsj32gk.js → contrasts-B4nOhn0Z.js} +3 -3
- package/dist/{contrasts-5zsj32gk.js.map → contrasts-B4nOhn0Z.js.map} +1 -1
- package/dist/db-DJUuFoWQ.js +602 -0
- package/dist/db-DJUuFoWQ.js.map +1 -0
- package/dist/db-W9EFlXnn.js +2 -0
- package/dist/{dist-CuY4ehEk.js → dist-Dp_AJgYN.js} +3 -3
- package/dist/{dist-CuY4ehEk.js.map → dist-Dp_AJgYN.js.map} +1 -1
- package/dist/{docker-D1HZDS6q.js → docker-CQxucRPe.js} +16 -15
- package/dist/docker-CQxucRPe.js.map +1 -0
- package/dist/{docker-DNmMPOBb.js → docker-Dac6Zalz.js} +1 -1
- package/dist/{docker-DOvjji9I.js → docker-DuHcQidD.js} +3 -3
- package/dist/{docker-DOvjji9I.js.map → docker-DuHcQidD.js.map} +1 -1
- package/dist/{doctor-D2MbNO8L.js → doctor-De_QlOTM.js} +72 -38
- package/dist/doctor-De_QlOTM.js.map +1 -0
- package/dist/{egress-2-qzPvGi.js → egress-DEAvq8Fl.js} +453 -31
- package/dist/egress-DEAvq8Fl.js.map +1 -0
- package/dist/env-BQqj93gu.js +21 -0
- package/dist/env-BQqj93gu.js.map +1 -0
- package/dist/{environment-Cca6a4wB.js → environment-B4IuURK1.js} +247 -14
- package/dist/environment-B4IuURK1.js.map +1 -0
- package/dist/{evaluate-DMyaGQEj.d.ts → evaluate-C9-ritA5.d.ts} +2 -2
- package/dist/{evaluate-DKIl54Hb.js → evaluate-Djk1YPFL.js} +540 -560
- package/dist/evaluate-Djk1YPFL.js.map +1 -0
- package/dist/facts-Cfx1H70y.js +898 -0
- package/dist/facts-Cfx1H70y.js.map +1 -0
- package/dist/files-Bs6H3HiG.js +65 -0
- package/dist/files-Bs6H3HiG.js.map +1 -0
- package/dist/{files-BpUYBwGu.js → files-CN1QfenC.js} +31 -8
- package/dist/files-CN1QfenC.js.map +1 -0
- package/dist/files-CtjEXWXm.js +1 -0
- package/dist/{files-BXHZFWmx.js → files-D27nUk0K.js} +6 -17
- package/dist/files-D27nUk0K.js.map +1 -0
- package/dist/files-D3gJa91B.js +1 -0
- package/dist/generate-BnrvBAzF.js +1646 -0
- package/dist/generate-BnrvBAzF.js.map +1 -0
- package/dist/{git-Crl3b87o.js → git-rPfl7AD1.js} +3 -3
- package/dist/{git-Crl3b87o.js.map → git-rPfl7AD1.js.map} +1 -1
- package/dist/{harness-CEuntrla.js → harness-1OkumOAm.js} +3 -3
- package/dist/{harness-CEuntrla.js.map → harness-1OkumOAm.js.map} +1 -1
- package/dist/harness.d.ts +1 -1
- package/dist/harness.js +1 -1
- package/dist/{header-DHQv_ZrF.js → header-BVzbRnNv.js} +10 -3
- package/dist/{header-DHQv_ZrF.js.map → header-BVzbRnNv.js.map} +1 -1
- package/dist/{images-Bi3aGxb9.js → images-m784ueGK.js} +61 -13
- package/dist/images-m784ueGK.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -4
- package/dist/init-hiTkiM4L.js +543 -0
- package/dist/init-hiTkiM4L.js.map +1 -0
- package/dist/init-kMkTgTZc.js +1 -0
- package/dist/insights-B2Xmhz9o.js +64 -0
- package/dist/insights-B2Xmhz9o.js.map +1 -0
- package/dist/{invocations-BYDPe3fV.js → invocations-D_ePcwyL.js} +4 -4
- package/dist/{invocations-BYDPe3fV.js.map → invocations-D_ePcwyL.js.map} +1 -1
- package/dist/{judge-DW_GDOmB.js → judge-CEDIfRiU.js} +50 -15
- package/dist/judge-CEDIfRiU.js.map +1 -0
- package/dist/judge.d.ts +7 -6
- package/dist/judge.js +8 -7
- package/dist/judge.js.map +1 -1
- package/dist/{live-jlfszAbb.js → live-DYd2QEyR.js} +2 -2
- package/dist/{live-jlfszAbb.js.map → live-DYd2QEyR.js.map} +1 -1
- package/dist/model-B8H3gL69.js +1 -0
- package/dist/{model-DaVCY3rb.js → model-CTiuzkWw.js} +9 -7
- package/dist/model-CTiuzkWw.js.map +1 -0
- package/dist/model-DcIbmggK.js +1 -0
- package/dist/{model-D0IcOQao.js → model-DpkclE4r.js} +60 -25
- package/dist/model-DpkclE4r.js.map +1 -0
- package/dist/{model-DaX4bNLZ.js → model-UgHDMhI1.js} +144 -46
- package/dist/model-UgHDMhI1.js.map +1 -0
- package/dist/{node-B3ydHo6t.js → node-CGZYh4Fj.js} +4 -4
- package/dist/{node-B3ydHo6t.js.map → node-CGZYh4Fj.js.map} +1 -1
- package/dist/{opencode-providers-J9colP0-.js → opencode-providers-snfeWd6Z.js} +86 -47
- package/dist/opencode-providers-snfeWd6Z.js.map +1 -0
- package/dist/{options-C0d0AzeR.js → options-CyAyLjgJ.js} +22 -11
- package/dist/options-CyAyLjgJ.js.map +1 -0
- package/dist/{pairs-CnInRu-G.js → pairs-DP6XOJby.js} +2 -2
- package/dist/{pairs-CnInRu-G.js.map → pairs-DP6XOJby.js.map} +1 -1
- package/dist/{patch-B1bnfhN-.js → patch-uMq9rCl_.js} +2 -2
- package/dist/{patch-B1bnfhN-.js.map → patch-uMq9rCl_.js.map} +1 -1
- package/dist/{plan-DgQxp9yy.js → plan-CZYgXnZh.js} +21 -8
- package/dist/plan-CZYgXnZh.js.map +1 -0
- package/dist/plugins-P-uh54VF.js +654 -0
- package/dist/plugins-P-uh54VF.js.map +1 -0
- package/dist/{preflight-DlQvbySb.js → preflight-BQlPTHVu.js} +1 -1
- package/dist/{preflight-BRzD30L5.js → preflight-D3HvKeAx.js} +14 -10
- package/dist/preflight-D3HvKeAx.js.map +1 -0
- package/dist/prepare-DCwM2KKD.js +2 -0
- package/dist/{prepare-B_y-AFMv.js → prepare-Dx7dOnJB.js} +70 -23
- package/dist/prepare-Dx7dOnJB.js.map +1 -0
- package/dist/{provenance-DQ0AXn6c.js → provenance-C_-8y-x3.js} +4 -4
- package/dist/{provenance-DQ0AXn6c.js.map → provenance-C_-8y-x3.js.map} +1 -1
- package/dist/{providers-DoTq1jHW.js → providers-CF5UEaP8.js} +24 -10
- package/dist/providers-CF5UEaP8.js.map +1 -0
- package/dist/providers-CTBYvMxu.js +1 -0
- package/dist/{query-BO-ux7RB.js → query-DXthKmq0.js} +3 -3
- package/dist/{query-BO-ux7RB.js.map → query-DXthKmq0.js.map} +1 -1
- package/dist/query-D_1ARx5q.js +1 -0
- package/dist/{questions-C2dym2ce.js → questions-KENpWnfV.js} +8 -9
- package/dist/questions-KENpWnfV.js.map +1 -0
- package/dist/{record-BKmMvZ6O.js → record-kk9M1hj-.js} +8 -4
- package/dist/record-kk9M1hj-.js.map +1 -0
- package/dist/{redact-DJ9JCShu.js → redact-CRGdfV2s.js} +4 -2
- package/dist/redact-CRGdfV2s.js.map +1 -0
- package/dist/remarks-1521zwfW.js +38 -0
- package/dist/remarks-1521zwfW.js.map +1 -0
- package/dist/remarks-BhAV1H4V.js +1 -0
- package/dist/remarks-Ml6bcSdV.js +278 -0
- package/dist/remarks-Ml6bcSdV.js.map +1 -0
- package/dist/{remote-CPPW86Q9.js → remote-Dkeghk8k.js} +3 -3
- package/dist/{remote-CPPW86Q9.js.map → remote-Dkeghk8k.js.map} +1 -1
- package/dist/resolve-CMmhACr6.js +1 -0
- package/dist/resolve-DzdWcIL6.js +724 -0
- package/dist/resolve-DzdWcIL6.js.map +1 -0
- package/dist/{results-BE2f-1XS.js → results-D-naai_Q.js} +33 -8
- package/dist/results-D-naai_Q.js.map +1 -0
- package/dist/{resume-Ca1c8vix.js → resume-8-nnW8iO.js} +4 -4
- package/dist/{resume-Ca1c8vix.js.map → resume-8-nnW8iO.js.map} +1 -1
- package/dist/{root-DICDHCtp.js → root-DNuLhaA5.js} +2 -2
- package/dist/root-DNuLhaA5.js.map +1 -0
- package/dist/rules-CcV3zLDR.js +318 -0
- package/dist/rules-CcV3zLDR.js.map +1 -0
- package/dist/run-Bel7Vde4.js +88 -0
- package/dist/run-Bel7Vde4.js.map +1 -0
- package/dist/{sandbox-DLrsvu7U.js → sandbox-YLbk9mO7.js} +2 -2
- package/dist/{sandbox-DLrsvu7U.js.map → sandbox-YLbk9mO7.js.map} +1 -1
- package/dist/sandbox.d.ts +1 -1
- package/dist/sandbox.js +1 -1
- package/dist/server-C-ysqkLv.js +1 -0
- package/dist/{server-TUY5xA_A.js → server-De8oH3bt.js} +10 -10
- package/dist/{server-TUY5xA_A.js.map → server-De8oH3bt.js.map} +1 -1
- package/dist/{source-DJGS0a0u.js → source-C686eZpY.js} +2 -2
- package/dist/{source-DJGS0a0u.js.map → source-C686eZpY.js.map} +1 -1
- package/dist/source-DjgypUHW.js +1 -0
- package/dist/src-3mP821Pt.js +2 -0
- package/dist/src-B3KCLZVk.js +3 -0
- package/dist/src-BAyg6CtQ.js +2 -0
- package/dist/{src-CF17Ug08.js → src-BYLM3hEz.js} +22 -6
- package/dist/src-BYLM3hEz.js.map +1 -0
- package/dist/src-BezgGX4X.js +2 -0
- package/dist/{src-DvCg0NBs.js → src-C7W6kg81.js} +40 -10
- package/dist/{src-DvCg0NBs.js.map → src-C7W6kg81.js.map} +1 -1
- package/dist/{src-ftu5wPSt.js → src-CIpKL45U.js} +782 -169
- package/dist/src-CIpKL45U.js.map +1 -0
- package/dist/src-ChBhk06Q.js +2 -0
- package/dist/{src-BxfCKA3_.js → src-CoqZYspK.js} +1 -1
- package/dist/{src-CFp86GtV.js → src-CzQrAcF8.js} +49 -49
- package/dist/src-CzQrAcF8.js.map +1 -0
- package/dist/src-D9fSTxlc.js +1 -0
- package/dist/{src-FGXhkEkH.js → src-DeY52Gyf.js} +182 -23
- package/dist/src-DeY52Gyf.js.map +1 -0
- package/dist/src-DrJSnoMR.js +2 -0
- package/dist/{src-DvK0EIZx.js → src-Xj_BZKbq.js} +112 -13
- package/dist/src-Xj_BZKbq.js.map +1 -0
- package/dist/{src-u8_ixn_F.js → src-cbCb-MPy.js} +20 -4
- package/dist/src-cbCb-MPy.js.map +1 -0
- package/dist/src-dhSTRN50.js +2 -0
- package/dist/{src-C7_1SqDP.js → src-djNNYIdP.js} +2 -2
- package/dist/{src-C7_1SqDP.js.map → src-djNNYIdP.js.map} +1 -1
- package/dist/state-BGWGAwdo.js +1 -0
- package/dist/{state-DfpHox6b.js → state-C0i_ujQZ.js} +19 -17
- package/dist/{state-DfpHox6b.js.map → state-C0i_ujQZ.js.map} +1 -1
- package/dist/studio-app/assets/{index-CBkhNAv8.js → index-Bb_cid9k.js} +9 -9
- package/dist/studio-app/index.html +1 -1
- package/dist/{suite-Cw_7G2RM.js → suite-DmuF_ApO.js} +80 -30
- package/dist/suite-DmuF_ApO.js.map +1 -0
- package/dist/suite-mn9g4veR.js +2 -0
- package/dist/{summary-BUKfU-9l.js → summary-BFMHMTz2.js} +273 -47
- package/dist/summary-BFMHMTz2.js.map +1 -0
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +2 -2
- package/dist/{text-gEcKjAyp.js → text-CrVy5ioL.js} +18 -2
- package/dist/text-CrVy5ioL.js.map +1 -0
- package/dist/{transcript-BNNANU8A.js → transcript-BTxJpW4R.js} +2 -2
- package/dist/{transcript-BNNANU8A.js.map → transcript-BTxJpW4R.js.map} +1 -1
- package/dist/{types-BYdlwMwo.d.ts → types-B-9b1MDV.d.ts} +850 -34
- package/dist/types-C5vI3g1C.js.map +1 -1
- package/dist/usage-BDo2q_yu.js +1 -0
- package/dist/{command-Bj39y-Wm.js → validate-DWjkshl1.js} +20 -377
- package/dist/validate-DWjkshl1.js.map +1 -0
- package/dist/view/index.d.ts +31 -263
- package/dist/view/index.js +8 -7
- package/dist/views-DE2A1jEX.js +2 -0
- package/dist/{views-B8w2J-gD.js → views-Dk8MCQKr.js} +8 -98
- package/dist/views-Dk8MCQKr.js.map +1 -0
- package/dist/{worker-entry-DNnveLqx.js → worker-entry-CqrzGPF4.js} +2 -2
- package/dist/{worker-entry-DNnveLqx.js.map → worker-entry-CqrzGPF4.js.map} +1 -1
- package/dist/workspace-B1eGO46M.js +1 -0
- package/dist/{workspace-C4RA3srV.js → workspace-CLeOybkr.js} +45 -11
- package/dist/workspace-CLeOybkr.js.map +1 -0
- package/package.json +5 -1
- package/skills/eval-rubric/SKILL.md +130 -0
- package/dist/agent-D483ru7D.js +0 -334
- package/dist/agent-D483ru7D.js.map +0 -1
- package/dist/assemble-D5KGrwnJ.js +0 -1
- package/dist/assemble-D9GWr-HS.js.map +0 -1
- package/dist/capture-CYGLpWxR.js +0 -1
- package/dist/cli-ClpPT8kn.js.map +0 -1
- package/dist/cli-spec-qmEnQ25_.js.map +0 -1
- package/dist/command-Bj39y-Wm.js.map +0 -1
- package/dist/command-C-cVjlny.js +0 -1
- package/dist/command-DbAe1Rzb.js.map +0 -1
- package/dist/command-TgbzPizb.js.map +0 -1
- package/dist/commands-YUwlyTbr.js +0 -228
- package/dist/commands-YUwlyTbr.js.map +0 -1
- package/dist/config-DrVSEVN0.js.map +0 -1
- package/dist/context-C1mxXh80.js.map +0 -1
- package/dist/db-CKg5NtiW.js +0 -2
- package/dist/db-DfhipHEF.js +0 -1416
- package/dist/db-DfhipHEF.js.map +0 -1
- package/dist/docker-D1HZDS6q.js.map +0 -1
- package/dist/doctor-D2MbNO8L.js.map +0 -1
- package/dist/egress-2-qzPvGi.js.map +0 -1
- package/dist/environment-Cca6a4wB.js.map +0 -1
- package/dist/evaluate-DKIl54Hb.js.map +0 -1
- package/dist/files-BXHZFWmx.js.map +0 -1
- package/dist/files-BpUYBwGu.js.map +0 -1
- package/dist/files-Bw8lWEjg.js +0 -1
- package/dist/files-D6J0iSdx.js +0 -1
- package/dist/images-Bi3aGxb9.js.map +0 -1
- package/dist/init-Cl3f3NBT.js +0 -360
- package/dist/init-Cl3f3NBT.js.map +0 -1
- package/dist/init-fhOXED8F.js +0 -1
- package/dist/judge-DW_GDOmB.js.map +0 -1
- package/dist/model-CXhrziBe.js +0 -1
- package/dist/model-D0IcOQao.js.map +0 -1
- package/dist/model-DaVCY3rb.js.map +0 -1
- package/dist/model-DaX4bNLZ.js.map +0 -1
- package/dist/model-_bxNrk2h.js +0 -1
- package/dist/opencode-providers-J9colP0-.js.map +0 -1
- package/dist/options-C0d0AzeR.js.map +0 -1
- package/dist/plan-DgQxp9yy.js.map +0 -1
- package/dist/preflight-BRzD30L5.js.map +0 -1
- package/dist/prepare-B_y-AFMv.js.map +0 -1
- package/dist/prepare-DCKTLHN3.js +0 -2
- package/dist/providers-B9yTdIqF.js +0 -1
- package/dist/providers-DoTq1jHW.js.map +0 -1
- package/dist/query-CRQfsw0e.js +0 -1
- package/dist/questions-C2dym2ce.js.map +0 -1
- package/dist/record-BKmMvZ6O.js.map +0 -1
- package/dist/redact-DJ9JCShu.js.map +0 -1
- package/dist/results-BE2f-1XS.js.map +0 -1
- package/dist/root-DICDHCtp.js.map +0 -1
- package/dist/server-Dp8eOeK5.js +0 -1
- package/dist/source-DdbLGR1M.js +0 -1
- package/dist/src-CF17Ug08.js.map +0 -1
- package/dist/src-CFp86GtV.js.map +0 -1
- package/dist/src-CLoOMVWI.js +0 -3
- package/dist/src-CcrQbpG8.js +0 -2
- package/dist/src-DCFtJRp0.js +0 -2
- package/dist/src-DSYYPEOj.js +0 -2
- package/dist/src-DYO3DdnQ.js +0 -1
- package/dist/src-DvK0EIZx.js.map +0 -1
- package/dist/src-FGXhkEkH.js.map +0 -1
- package/dist/src-WD-zgQYZ.js +0 -2
- package/dist/src-_oI9AePb.js +0 -2
- package/dist/src-ftu5wPSt.js.map +0 -1
- package/dist/src-qsKCqv7a.js +0 -2
- package/dist/src-u8_ixn_F.js.map +0 -1
- package/dist/state-DpAxYyED.js +0 -1
- package/dist/suite-Cw_7G2RM.js.map +0 -1
- package/dist/suite-DamAEnNF.js +0 -1
- package/dist/summary-BUKfU-9l.js.map +0 -1
- package/dist/summary-Baa4rTHS.js +0 -192
- package/dist/summary-Baa4rTHS.js.map +0 -1
- package/dist/text-gEcKjAyp.js.map +0 -1
- package/dist/tools-DLHgetpx.js +0 -249
- package/dist/tools-DLHgetpx.js.map +0 -1
- package/dist/views-B8w2J-gD.js.map +0 -1
- package/dist/views-DblnI3kA.js +0 -2
- package/dist/workspace-C4RA3srV.js.map +0 -1
- package/dist/workspace-C_X0tdv6.js +0 -1
|
@@ -1,25 +1,67 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as sha256 } from "./ids-Bp6ut7ZD.js";
|
|
2
|
+
import { a as oneLine, i as formatDuration, n as clip, r as fenced } from "./text-CrVy5ioL.js";
|
|
2
3
|
import { n as formatTokens } from "./usage-CleNKkly.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { B as labelledJudgements, D as runtimeLabel, L as commandLine, P as checkLabels, S as languageLabel, _ as harnessLabel, ct as formatSeconds, l as evalMarkOutcome, ot as formatCount, x as isUngatedMiss } from "./model-UgHDMhI1.js";
|
|
5
|
+
import { c as suiteResult, r as countedOf, t as cancelledOf } from "./suite-DmuF_ApO.js";
|
|
6
|
+
import { a as fromModel } from "./insights-B2Xmhz9o.js";
|
|
7
|
+
import { o as warnings } from "./state-C0i_ujQZ.js";
|
|
6
8
|
import { t as colors } from "./colors-QV9dFVhN.js";
|
|
9
|
+
import { r as remarkLines } from "./remarks-1521zwfW.js";
|
|
10
|
+
//#region src/insights/hash.ts
|
|
11
|
+
/** JSON with every object's keys sorted. */
|
|
12
|
+
function canonicalJson(value) {
|
|
13
|
+
return JSON.stringify(value, (_key, v) => v && typeof v === "object" && !Array.isArray(v) ? Object.fromEntries(Object.entries(v).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0)) : v);
|
|
14
|
+
}
|
|
15
|
+
const factsHash = (suite) => `sha256:${sha256(canonicalJson(suite))}`;
|
|
16
|
+
//#endregion
|
|
7
17
|
//#region src/ui/layout.ts
|
|
8
18
|
/** The block for an eval: a pure function of its job and its shape. */
|
|
9
|
-
function layout(
|
|
19
|
+
function layout(job, across, isFamily, isCompare) {
|
|
10
20
|
if (isCompare) return {
|
|
11
21
|
kind: "regressions",
|
|
12
22
|
family: false
|
|
13
23
|
};
|
|
14
24
|
return {
|
|
15
|
-
kind: across === "change" ? "measure" : across === "harness" ? "harnesses" : across === "both" ? "both" : "results",
|
|
25
|
+
kind: job === "choose" && across === "none" ? "choose" : across === "change" ? "measure" : across === "harness" ? "harnesses" : across === "both" ? "both" : "results",
|
|
16
26
|
family: isFamily
|
|
17
27
|
};
|
|
18
28
|
}
|
|
29
|
+
const moved = (c) => c.effect === "better" || c.effect === "worse";
|
|
30
|
+
/** A cell the agent failed, or that errored; not one whose only fails the interrupt cancelled. */
|
|
31
|
+
const failedCell = (c) => c.outcome === "fail" && c.failed > cancelledOf(c) || c.outcome === "infra_error";
|
|
32
|
+
/**
|
|
33
|
+
* The insight slots an eval's layout opens: which rows take a sentence (a failing case; an arm
|
|
34
|
+
* that failed or moved; a failing harness), whether it has findings (a choose or finish eval that
|
|
35
|
+
* measures a change), and whether it has named tools (a choose eval). An `other` eval takes only
|
|
36
|
+
* its answer, unless it compares harnesses, which takes a sentence on any job. What the run's
|
|
37
|
+
* interrupt cancelled opens nothing: the agent didn't fail it, and its effects aren't measured.
|
|
38
|
+
*/
|
|
39
|
+
function slotsOf(job, e) {
|
|
40
|
+
const known = job !== "other";
|
|
41
|
+
const measured = e.outcome !== "cancelled";
|
|
42
|
+
const harnesses = e.across === "harness" || e.across === "both";
|
|
43
|
+
const rows = [];
|
|
44
|
+
if (known || harnesses) {
|
|
45
|
+
if (e.cases) {
|
|
46
|
+
for (const k of e.cases) if (k.outcome !== "pass" && k.outcome !== "cancelled") rows.push(k.path);
|
|
47
|
+
for (const p of e.pooled ?? []) {
|
|
48
|
+
const pooledMoved = measured && (p.effect === "better" || p.effect === "worse");
|
|
49
|
+
if (p.outcome === "fail" || pooledMoved) rows.push(p.path);
|
|
50
|
+
}
|
|
51
|
+
} else if (e.across === "harness") {
|
|
52
|
+
for (const c of e.cells ?? []) if (failedCell(c)) rows.push(c.path);
|
|
53
|
+
} else if (e.across === "change" || e.across === "both") {
|
|
54
|
+
for (const c of e.cells ?? []) if (failedCell(c) || measured && moved(c)) rows.push(c.path);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
rows,
|
|
59
|
+
findings: known && e.across === "change" && measured,
|
|
60
|
+
namedTools: job === "choose"
|
|
61
|
+
};
|
|
62
|
+
}
|
|
19
63
|
/** The last line of a run's output while no analysis model writes its answers. */
|
|
20
64
|
const NO_MODEL_HINT = "Set analysis.model in reeval.config.ts for answers to what each eval asks.";
|
|
21
|
-
/** Where a block's name starts, after its verdict word. */
|
|
22
|
-
const HEAD = 17;
|
|
23
65
|
/** The narrowest a row's label column is, so short labels line up under the name. */
|
|
24
66
|
const LABEL = 17;
|
|
25
67
|
const ASSERTION_MAX = 160;
|
|
@@ -30,6 +72,7 @@ const VERDICT = {
|
|
|
30
72
|
pass: "pass",
|
|
31
73
|
fail: "fail",
|
|
32
74
|
infra_error: "infra error",
|
|
75
|
+
cancelled: "cancelled",
|
|
33
76
|
skipped: "skipped"
|
|
34
77
|
};
|
|
35
78
|
const EFFECT = {
|
|
@@ -65,7 +108,7 @@ function table(items, width = LABEL) {
|
|
|
65
108
|
}).join(" ")}`.trimEnd();
|
|
66
109
|
});
|
|
67
110
|
}
|
|
68
|
-
const paintOutcome = (c, o) => o === "pass" ? c.green : o === "fail" ? c.red : o === "infra_error" ? c.yellow : c.dim;
|
|
111
|
+
const paintOutcome = (c, o) => o === "pass" ? c.green : o === "fail" ? c.red : o === "infra_error" || o === "cancelled" ? c.yellow : c.dim;
|
|
69
112
|
/** A study (every cell `gate: 'none'`) passes whatever it saw, so it never reads `pass`. */
|
|
70
113
|
function verdict(c, e) {
|
|
71
114
|
if (e.todo) return t("todo", c.dim);
|
|
@@ -79,8 +122,8 @@ const plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
|
79
122
|
* cancelled attempt is recorded as a fail, but the agent didn't fail it, so it's named apart.
|
|
80
123
|
*/
|
|
81
124
|
function cellCount(cell) {
|
|
82
|
-
const cancelled = cell
|
|
83
|
-
const counted =
|
|
125
|
+
const cancelled = cancelledOf(cell);
|
|
126
|
+
const counted = countedOf(cell);
|
|
84
127
|
const parts = [
|
|
85
128
|
counted > 0 ? `${cell.passed} of ${counted}` : "",
|
|
86
129
|
cell.infraError ? plural(cell.infraError, "infra error") : "",
|
|
@@ -118,7 +161,7 @@ const ERROR_KIND = {
|
|
|
118
161
|
const errorKind = (err) => ERROR_KIND[err.kind];
|
|
119
162
|
const errorText = (err) => `${clip(err.message, ASSERTION_MAX)}${err.attempts > 1 ? ` (${plural(err.attempts, "try", "tries")})` : ""}`;
|
|
120
163
|
/** The evidence under a failing cell: its failed and not-run checks, its errors, `+N more passed`. */
|
|
121
|
-
function evidence(c, cell, indent) {
|
|
164
|
+
function evidence(c, cell, indent, more = true) {
|
|
122
165
|
const single = cell.passed + cell.failed + cell.infraError <= 1;
|
|
123
166
|
const items = [];
|
|
124
167
|
for (const k of cell.checks.filter(failing)) {
|
|
@@ -138,7 +181,7 @@ function evidence(c, cell, indent) {
|
|
|
138
181
|
cells: [errorKind(err), t(errorText(err), c.dim)]
|
|
139
182
|
});
|
|
140
183
|
const passed = cell.checks.filter((k) => !failing(k)).length;
|
|
141
|
-
if (passed && items.length) items.push({
|
|
184
|
+
if (more && passed && items.length) items.push({
|
|
142
185
|
indent,
|
|
143
186
|
free: t(`+${passed} more passed`, c.dim)
|
|
144
187
|
});
|
|
@@ -226,6 +269,70 @@ function effortTable(c, cells, label, indent, failed, width) {
|
|
|
226
269
|
]
|
|
227
270
|
}))], width);
|
|
228
271
|
}
|
|
272
|
+
const NO_SLOTS = {
|
|
273
|
+
row: () => null,
|
|
274
|
+
named: () => [],
|
|
275
|
+
subject: null
|
|
276
|
+
};
|
|
277
|
+
const triesOf = (cells) => cells.reduce((n, x) => n + countedOf(x), 0);
|
|
278
|
+
/** `named`, then a row per tool with the tries that named it. */
|
|
279
|
+
function namedItems(c, slots, cells, indent) {
|
|
280
|
+
const named = slots.named(cells);
|
|
281
|
+
if (!named.length) return [];
|
|
282
|
+
const of = triesOf(cells);
|
|
283
|
+
return [{
|
|
284
|
+
indent,
|
|
285
|
+
free: t("named", c.dim)
|
|
286
|
+
}, ...named.map((n) => ({
|
|
287
|
+
indent: indent + 2,
|
|
288
|
+
cells: [n.tool, `${n.tries} of ${of}`]
|
|
289
|
+
}))];
|
|
290
|
+
}
|
|
291
|
+
/** The tries that named the subject, over the cells' tries: `0 of 4`; empty with no subject. */
|
|
292
|
+
function subjectTries(slots, cells) {
|
|
293
|
+
if (!slots.subject) return "";
|
|
294
|
+
const subject = slots.subject.toLowerCase();
|
|
295
|
+
return `${slots.named(cells).find((x) => x.tool.toLowerCase() === subject)?.tries ?? 0} of ${triesOf(cells)}`;
|
|
296
|
+
}
|
|
297
|
+
/** Web searches or fetches over the tries, when every try reported a number. */
|
|
298
|
+
function webItems(cells, indent) {
|
|
299
|
+
const row = (name, counts) => counts.length && counts.every((x) => x !== null) ? [{
|
|
300
|
+
indent,
|
|
301
|
+
cells: [name, String(counts.reduce((a, b) => (a ?? 0) + (b ?? 0), 0))]
|
|
302
|
+
}] : [];
|
|
303
|
+
return [...row("searches", cells.flatMap((x) => x.searches)), ...row("fetches", cells.flatMap((x) => x.fetches))];
|
|
304
|
+
}
|
|
305
|
+
/** A choose case that missed: its failed checks, the tools named, its searches, then `+N more passed`. */
|
|
306
|
+
function chooseDetail(c, cells, indent, slots) {
|
|
307
|
+
const checks = cells.flatMap((cell) => evidence(c, cell, indent, false));
|
|
308
|
+
const passed = cells.flatMap((x) => x.checks.filter((k) => !failing(k))).length;
|
|
309
|
+
return [
|
|
310
|
+
...checks,
|
|
311
|
+
...namedItems(c, slots, cells, indent),
|
|
312
|
+
...webItems(cells, indent),
|
|
313
|
+
...passed ? [{
|
|
314
|
+
indent,
|
|
315
|
+
free: t(`+${passed} more passed`, c.dim)
|
|
316
|
+
}] : []
|
|
317
|
+
];
|
|
318
|
+
}
|
|
319
|
+
/** Choose a tool, on a single eval: the subject's count, and on a miss the detail. */
|
|
320
|
+
function chooseBody(c, cells, indent, slots) {
|
|
321
|
+
const items = slots.subject ? [{
|
|
322
|
+
indent,
|
|
323
|
+
cells: [slots.subject, subjectTries(slots, cells)]
|
|
324
|
+
}] : [];
|
|
325
|
+
if (!cells.every(clean)) items.push(...chooseDetail(c, cells, indent, slots));
|
|
326
|
+
return table(items);
|
|
327
|
+
}
|
|
328
|
+
/** A row's sentence, as a line under it. */
|
|
329
|
+
const rowLine = (slots, path, indent) => {
|
|
330
|
+
const text = slots.row(path);
|
|
331
|
+
return text ? [{
|
|
332
|
+
indent,
|
|
333
|
+
free: text
|
|
334
|
+
}] : [];
|
|
335
|
+
};
|
|
229
336
|
/** Measure a change: a row per arm with its effect, the check matrix and the effort table. */
|
|
230
337
|
function measureBody(c, cells, indent, o) {
|
|
231
338
|
const label = labeller(cells, ["arm", "sandbox"]);
|
|
@@ -243,6 +350,7 @@ function measureBody(c, cells, indent, o) {
|
|
|
243
350
|
...effect.text ? [effect] : []
|
|
244
351
|
]
|
|
245
352
|
});
|
|
353
|
+
arms.push(...rowLine(o.slots, cell.path, indent + 2), ...namedItems(c, o.slots, [cell], indent + 2));
|
|
246
354
|
const stats = o.verbose && o.effects ? statsLine(cell, cells) : null;
|
|
247
355
|
if (stats) arms.push({
|
|
248
356
|
indent: indent + 2,
|
|
@@ -263,7 +371,7 @@ function measureBody(c, cells, indent, o) {
|
|
|
263
371
|
];
|
|
264
372
|
}
|
|
265
373
|
/** A row per cell (harness, or sandbox), the ones that didn't pass outright with their evidence. */
|
|
266
|
-
function cellRows(c, cells, heading, indent) {
|
|
374
|
+
function cellRows(c, cells, heading, indent, slots) {
|
|
267
375
|
const label = labeller(cells, heading === "harness" ? ["harness", "sandbox"] : ["sandbox"]);
|
|
268
376
|
const items = [{
|
|
269
377
|
indent,
|
|
@@ -274,7 +382,8 @@ function cellRows(c, cells, heading, indent) {
|
|
|
274
382
|
indent,
|
|
275
383
|
cells: [label(cell), cellCount(cell)]
|
|
276
384
|
});
|
|
277
|
-
|
|
385
|
+
items.push(...rowLine(slots, cell.path, indent + 2));
|
|
386
|
+
if (!clean(cell)) items.push(...namedItems(c, slots, [cell], indent + 2), ...evidence(c, cell, indent + 2));
|
|
278
387
|
}
|
|
279
388
|
return table(items);
|
|
280
389
|
}
|
|
@@ -288,9 +397,10 @@ function bothBody(c, cells, indent, o) {
|
|
|
288
397
|
/** The rows under an eval's head (or a family case's), by what its cells compare. */
|
|
289
398
|
function cellsBody(c, kind, cells, indent, o) {
|
|
290
399
|
if (kind === "measure") return measureBody(c, cells, indent, o);
|
|
291
|
-
if (kind === "harnesses") return cellRows(c, cells, "harness", indent);
|
|
400
|
+
if (kind === "harnesses") return cellRows(c, cells, "harness", indent, o.slots);
|
|
292
401
|
if (kind === "both") return bothBody(c, cells, indent, o);
|
|
293
|
-
if (
|
|
402
|
+
if (kind === "choose") return chooseBody(c, cells, indent, o.slots);
|
|
403
|
+
if (cells.length > 1) return cellRows(c, cells, "sandbox", indent, o.slots);
|
|
294
404
|
return resultsBody(c, cells[0], indent);
|
|
295
405
|
}
|
|
296
406
|
/** A single eval with one cell: its tries, and on anything but a clean pass, the evidence. */
|
|
@@ -347,11 +457,12 @@ function pooledStats(p, label) {
|
|
|
347
457
|
/**
|
|
348
458
|
* A family: its template, then a row per case. With one cell a case is a row with its count;
|
|
349
459
|
* with more, the case is outer and its cells inner, laid out as a single eval's are, and a
|
|
350
|
-
* pooled `all cases` row sums each cell's counts with its variant's pooled effect.
|
|
460
|
+
* pooled `all cases` row sums each cell's counts with its variant's pooled effect. A choose
|
|
461
|
+
* family's case row carries the subject's count instead, and a missed case the tools named.
|
|
351
462
|
*/
|
|
352
|
-
function familyBlock(c, e, kind, verbose) {
|
|
463
|
+
function familyBlock(c, e, kind, verbose, slots) {
|
|
353
464
|
const cases = e.cases ?? [];
|
|
354
|
-
const columns = cases
|
|
465
|
+
const columns = [...new Map(cases.flatMap((k) => k.cells).map((cell) => [cell.key, cell])).values()];
|
|
355
466
|
const pooled = e.pooled ?? [];
|
|
356
467
|
const pooledOutcome = pooled.some((p) => p.outcome === "fail") ? "fail" : "pass";
|
|
357
468
|
const caseWord = (k) => verdict(c, {
|
|
@@ -366,8 +477,40 @@ function familyBlock(c, e, kind, verbose) {
|
|
|
366
477
|
text: `${word.text.padEnd(wordWidth)} ${name}`,
|
|
367
478
|
paint: (s) => `${show(word)}${s.slice(word.text.length)}`
|
|
368
479
|
});
|
|
369
|
-
const head = `${" ".repeat(
|
|
480
|
+
const head = `${" ".repeat(17)}${e.template ?? e.name}`;
|
|
370
481
|
const questions = questionLines(c, e.questions, 2);
|
|
482
|
+
if (kind === "choose") {
|
|
483
|
+
const subject = slots.subject ? [t(slots.subject, c.dim)] : [];
|
|
484
|
+
const items = [{
|
|
485
|
+
indent: 2,
|
|
486
|
+
cells: [
|
|
487
|
+
"case",
|
|
488
|
+
t("pass", c.dim),
|
|
489
|
+
...subject
|
|
490
|
+
]
|
|
491
|
+
}];
|
|
492
|
+
for (const k of cases) {
|
|
493
|
+
const passed = k.cells.reduce((n, x) => n + x.passed, 0);
|
|
494
|
+
const tries = triesOf(k.cells);
|
|
495
|
+
const count = k.cells.length === 1 && k.cells[0] ? cellCount(k.cells[0]) : tries ? `${passed} of ${tries}` : "not run";
|
|
496
|
+
const named = slots.subject && tries ? [subjectTries(slots, k.cells)] : [];
|
|
497
|
+
items.push({
|
|
498
|
+
indent: 2,
|
|
499
|
+
cells: [
|
|
500
|
+
lead(caseWord(k), k.label),
|
|
501
|
+
count,
|
|
502
|
+
...named
|
|
503
|
+
]
|
|
504
|
+
});
|
|
505
|
+
items.push(...rowLine(slots, k.path, 4));
|
|
506
|
+
if (!k.cells.every(clean)) items.push(...chooseDetail(c, k.cells, 4, slots));
|
|
507
|
+
}
|
|
508
|
+
return [
|
|
509
|
+
head,
|
|
510
|
+
...table(items),
|
|
511
|
+
...questions
|
|
512
|
+
];
|
|
513
|
+
}
|
|
371
514
|
if (columns.length <= 1) {
|
|
372
515
|
const items = [];
|
|
373
516
|
for (const k of cases) {
|
|
@@ -376,6 +519,7 @@ function familyBlock(c, e, kind, verbose) {
|
|
|
376
519
|
indent: 2,
|
|
377
520
|
cells: [lead(caseWord(k), k.label), cell ? cellCount(cell) : ""]
|
|
378
521
|
});
|
|
522
|
+
items.push(...rowLine(slots, k.path, 4));
|
|
379
523
|
if (cell && !clean(cell)) items.push(...evidence(c, cell, 4));
|
|
380
524
|
}
|
|
381
525
|
return [
|
|
@@ -387,11 +531,14 @@ function familyBlock(c, e, kind, verbose) {
|
|
|
387
531
|
const out = [head];
|
|
388
532
|
for (const k of cases) {
|
|
389
533
|
out.push(` ${show(lead(caseWord(k), k.label))}`);
|
|
534
|
+
const sentence = slots.row(k.path);
|
|
535
|
+
if (sentence) out.push(` ${sentence}`);
|
|
390
536
|
const failed = k.outcome !== "pass";
|
|
391
537
|
out.push(...cellsBody(c, kind, k.cells, 4, {
|
|
392
538
|
failed,
|
|
393
539
|
verbose,
|
|
394
|
-
effects: false
|
|
540
|
+
effects: false,
|
|
541
|
+
slots
|
|
395
542
|
}));
|
|
396
543
|
}
|
|
397
544
|
if (pooled.length) {
|
|
@@ -416,6 +563,7 @@ function familyBlock(c, e, kind, verbose) {
|
|
|
416
563
|
...effect.text ? [effect] : []
|
|
417
564
|
]
|
|
418
565
|
});
|
|
566
|
+
if (p) items.push(...rowLine(slots, p.path, 6));
|
|
419
567
|
if (p && verbose) items.push({
|
|
420
568
|
indent: 6,
|
|
421
569
|
free: t(pooledStats(p, label(col)), c.dim)
|
|
@@ -425,40 +573,84 @@ function familyBlock(c, e, kind, verbose) {
|
|
|
425
573
|
}
|
|
426
574
|
return [...out, ...questions];
|
|
427
575
|
}
|
|
428
|
-
/**
|
|
429
|
-
function
|
|
430
|
-
|
|
431
|
-
|
|
576
|
+
/** The slots an eval's insight fills, or none without one. */
|
|
577
|
+
function slotsFor(insight) {
|
|
578
|
+
if (!insight) return NO_SLOTS;
|
|
579
|
+
const rows = new Map((insight.rows ?? []).map((r) => [r.row, oneLine(r.text)]));
|
|
580
|
+
const choose = insight.intent.job === "choose";
|
|
581
|
+
const named = (cells) => {
|
|
582
|
+
if (!choose) return [];
|
|
583
|
+
const counts = /* @__PURE__ */ new Map();
|
|
584
|
+
for (const n of insight.namedTools ?? []) {
|
|
585
|
+
if (!cells.some((cell) => n.attempt.startsWith(`${cell.path}#`))) continue;
|
|
586
|
+
for (const tool of new Set(n.tools.map(oneLine))) counts.set(tool, (counts.get(tool) ?? 0) + 1);
|
|
587
|
+
}
|
|
588
|
+
return [...counts].map(([tool, tries]) => ({
|
|
589
|
+
tool,
|
|
590
|
+
tries
|
|
591
|
+
})).sort((a, b) => b.tries - a.tries || (a.tool < b.tool ? -1 : 1));
|
|
592
|
+
};
|
|
593
|
+
return {
|
|
594
|
+
row: (path) => rows.get(path) ?? null,
|
|
595
|
+
named,
|
|
596
|
+
subject: choose && insight.intent.subject.tool ? oneLine(insight.intent.subject.tool) : null
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
/** One eval's block, laid out as `layout()` says for its job, with its insight's sentences. */
|
|
600
|
+
function evalBlock(c, e, verbose = false, insight = null) {
|
|
601
|
+
const shape = layout(insight?.intent.job ?? "other", e.across, e.family, false);
|
|
602
|
+
const slots = slotsFor(insight);
|
|
603
|
+
const answer = insight?.answer ? [` ${oneLine(insight.answer.text)}`] : [];
|
|
604
|
+
const findings = (insight?.findings ?? []).map((f) => ` ${oneLine(f.text)}`);
|
|
605
|
+
if (shape.family) {
|
|
606
|
+
const [head = "", ...rest] = familyBlock(c, e, shape.kind, verbose, slots);
|
|
607
|
+
return [
|
|
608
|
+
head,
|
|
609
|
+
...answer,
|
|
610
|
+
...rest,
|
|
611
|
+
...findings
|
|
612
|
+
];
|
|
613
|
+
}
|
|
432
614
|
const v = verdict(c, e);
|
|
433
615
|
const name = `${e.group.length ? `${e.group.join(" › ")} › ` : ""}${e.name}`;
|
|
434
|
-
const head = `${show(v)}${" ".repeat(Math.max(2,
|
|
616
|
+
const head = `${show(v)}${" ".repeat(Math.max(2, 17 - v.text.length))}${name}`;
|
|
435
617
|
const cells = e.cells ?? [];
|
|
436
618
|
if (e.todo || e.outcome === "skipped" || !cells.length) return [head];
|
|
437
619
|
const failed = e.outcome !== "pass";
|
|
620
|
+
const body = cellsBody(c, shape.kind, cells, 2, {
|
|
621
|
+
failed,
|
|
622
|
+
verbose,
|
|
623
|
+
effects: true,
|
|
624
|
+
slots
|
|
625
|
+
});
|
|
438
626
|
return [
|
|
439
627
|
head,
|
|
440
|
-
...
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
effects: true
|
|
444
|
-
}),
|
|
628
|
+
...answer,
|
|
629
|
+
...body,
|
|
630
|
+
...findings,
|
|
445
631
|
...questionLines(c, e.questions, 2)
|
|
446
632
|
];
|
|
447
633
|
}
|
|
448
|
-
/**
|
|
634
|
+
/**
|
|
635
|
+
* `5 fail · 2 pass · 1 cancelled`: errors outside any eval and fails first, every case counting
|
|
636
|
+
* one, zeros left out.
|
|
637
|
+
*/
|
|
449
638
|
function tallyLine(c, tally) {
|
|
450
639
|
const parts = [
|
|
640
|
+
tally.errors ? c.red(plural(tally.errors, "run error")) : "",
|
|
451
641
|
tally.fail ? c.red(`${tally.fail} fail`) : "",
|
|
452
642
|
tally.pass ? c.green(`${tally.pass} pass`) : "",
|
|
453
643
|
tally.infraError ? c.yellow(plural(tally.infraError, "infra error")) : "",
|
|
644
|
+
tally.cancelled ? c.yellow(`${tally.cancelled} cancelled`) : "",
|
|
454
645
|
tally.skipped ? c.dim(`${tally.skipped} skipped`) : ""
|
|
455
646
|
].filter(Boolean);
|
|
456
647
|
return parts.length ? parts.join(c.dim(" · ")) : "no evals ran";
|
|
457
648
|
}
|
|
458
649
|
/** Every eval's block in file-path order, then source order; a blank line around each longer one. */
|
|
459
|
-
function renderBlocks(suite, opts) {
|
|
650
|
+
function renderBlocks(suite, opts, insights = null) {
|
|
460
651
|
const c = colors(opts.color);
|
|
461
|
-
const
|
|
652
|
+
const byEval = new Map((insights?.evals ?? []).map((x) => [x.evalId, x]));
|
|
653
|
+
const blocks = suite.files.flatMap((f) => [...f.evals].sort((a, b) => a.order - b.order).map((e) => evalBlock(c, e, opts.verbose, byEval.get(e.path) ?? null)));
|
|
462
654
|
const out = [];
|
|
463
655
|
blocks.forEach((block, i) => {
|
|
464
656
|
const prev = blocks[i - 1];
|
|
@@ -467,15 +659,51 @@ function renderBlocks(suite, opts) {
|
|
|
467
659
|
});
|
|
468
660
|
return out;
|
|
469
661
|
}
|
|
470
|
-
/**
|
|
471
|
-
|
|
472
|
-
|
|
662
|
+
/** Insights for these facts: null when there are none, they failed, or they were written for other facts. */
|
|
663
|
+
const freshInsights = (suite, insights) => insights && !insights.error && insights.factsHash === factsHash(suite) ? insights : null;
|
|
664
|
+
/** Why a run's insights didn't print, or with `-v` what wrote them. */
|
|
665
|
+
function insightNotes(c, suite, insights, fresh, verbose) {
|
|
666
|
+
if (!insights || !fromModel(insights)) return [];
|
|
667
|
+
if (insights.error) return [c.yellow(`insights failed (${clip(insights.error, 200)})`)];
|
|
668
|
+
if (!fresh) return [c.dim(`insights left out: insights.json was written for other facts than this run's; delete it and run reeval analyze ${suite.runId} --insights`)];
|
|
669
|
+
const skipped = insights.budget?.skipped.length ?? 0;
|
|
670
|
+
const failed = insights.failed ?? [];
|
|
671
|
+
const stopped = insights.stopped;
|
|
672
|
+
const finish = `reeval analyze ${suite.runId} --insights to finish`;
|
|
673
|
+
const budget = [
|
|
674
|
+
...skipped ? [c.yellow(`insights skipped for ${plural(skipped, "eval")}: analysis.maxTokens (${formatTokens(insights.budget?.maxTokens ?? 0)}) reached — raise it in reeval.config.ts, or ${finish}`)] : [],
|
|
675
|
+
...failed[0] ? [c.yellow(`insights failed for ${plural(failed.length, "eval")} (${clip(failed[0].error, 160)}), so they print their facts: ${finish}`)] : [],
|
|
676
|
+
...stopped ? [c.yellow(`insights stopped: ${plural(stopped.skipped.length, "eval")} skipped (${stopped.signal === "SIGTERM" ? "SIGTERM" : "Ctrl-C"}): ${finish}`)] : []
|
|
677
|
+
];
|
|
678
|
+
if (!verbose) return budget;
|
|
679
|
+
const { dropped, regenerated } = insights.validation;
|
|
680
|
+
return [...budget, c.dim([
|
|
681
|
+
`insights by ${insights.model} (${insights.promptVersion})`,
|
|
682
|
+
`${plural(dropped, "sentence")} removed`,
|
|
683
|
+
...regenerated ? [`${regenerated} asked again`] : [],
|
|
684
|
+
`${formatTokens(insights.usage.inputTokens)} in, ${formatTokens(insights.usage.outputTokens)} out${insights.usage.reasoningTokens ? ` (${formatTokens(insights.usage.reasoningTokens)} reasoning)` : ""}`
|
|
685
|
+
].join(" · "))];
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* A run's result: its errors outside any eval, its blocks with their insights, the headline,
|
|
689
|
+
* then the tally and, with no analysis model, the hint, then the remarks. Insights written for
|
|
690
|
+
* other facts are left out with a note; remarks come from the record and history, not a model,
|
|
691
|
+
* so they print either way.
|
|
692
|
+
*/
|
|
693
|
+
function render(suite, insights, opts) {
|
|
694
|
+
const c = colors(opts.color);
|
|
695
|
+
const fresh = freshInsights(suite, insights);
|
|
696
|
+
const blocks = renderBlocks(suite, opts, fresh);
|
|
473
697
|
return [
|
|
698
|
+
...suite.errors.flatMap((error) => [c.red(`error: ${error}`), ""]),
|
|
474
699
|
...blocks,
|
|
475
700
|
...blocks.length ? [""] : [],
|
|
701
|
+
...fresh?.headline ? [oneLine(fresh.headline.text)] : [],
|
|
702
|
+
...insightNotes(c, suite, insights, fresh, opts.verbose),
|
|
476
703
|
...opts.notes ?? [],
|
|
477
|
-
tallyLine(
|
|
478
|
-
...opts.hint ? [NO_MODEL_HINT] : []
|
|
704
|
+
tallyLine(c, suite.tally),
|
|
705
|
+
...opts.hint ? [NO_MODEL_HINT] : [],
|
|
706
|
+
...remarkLines(c, suite, insights, opts.verbose)
|
|
479
707
|
];
|
|
480
708
|
}
|
|
481
709
|
//#endregion
|
|
@@ -525,13 +753,11 @@ function renderSummary(run, opts) {
|
|
|
525
753
|
...run.plan.sandboxWarnings.map((w) => `> **Warning:** ${w.message}\n`),
|
|
526
754
|
"## Results",
|
|
527
755
|
"",
|
|
528
|
-
|
|
529
|
-
...render(suiteResult(run), null, {
|
|
756
|
+
...fenced(render(suiteResult(run), opts.insights ?? null, {
|
|
530
757
|
color: false,
|
|
531
758
|
verbose: false,
|
|
532
759
|
hint: opts.hint
|
|
533
|
-
}),
|
|
534
|
-
"```",
|
|
760
|
+
}), "text"),
|
|
535
761
|
"",
|
|
536
762
|
"## State",
|
|
537
763
|
"",
|
|
@@ -572,7 +798,7 @@ function renderSummary(run, opts) {
|
|
|
572
798
|
/** A failed verdict already says why a judge error failed the attempt; its message repeats it. */
|
|
573
799
|
const repeatsVerdict = (a) => a.error?.kind === "judge" && a.judgements.some((j) => j.verdict === "fail");
|
|
574
800
|
function attemptDetail(lines, a) {
|
|
575
|
-
if (a.error && !repeatsVerdict(a)) lines.push(`**${a.error.kind}**`, "",
|
|
801
|
+
if (a.error && !repeatsVerdict(a)) lines.push(`**${a.error.kind}**`, "", ...fenced(a.error.message.split("\n").slice(0, 20)), "");
|
|
576
802
|
for (const turn of a.turns) {
|
|
577
803
|
lines.push(`- Prompt (${turn.status}, ${formatDuration(turn.durationMs)}): ${clip(cell(turn.prompt), 200)}`);
|
|
578
804
|
if (turn.error) lines.push(` - Error: ${clip(cell(turn.error), 500)}`);
|
|
@@ -606,6 +832,6 @@ function attemptDetail(lines, a) {
|
|
|
606
832
|
if (links.length) lines.push(`- Files: ${links.join(" · ")}`);
|
|
607
833
|
}
|
|
608
834
|
//#endregion
|
|
609
|
-
export {
|
|
835
|
+
export { t as _, assertionOf as a, errorKind as c, labeller as d, plural as f, slotsOf as g, show as h, stateRows as i, errorText as l, renderBlocks as m, renderSummary as n, checkCount as o, render as p, runTally as r, checkLabel as s, OUTCOME_MARK as t, evalBlock as u, table as v, factsHash as y };
|
|
610
836
|
|
|
611
|
-
//# sourceMappingURL=summary-
|
|
837
|
+
//# sourceMappingURL=summary-BFMHMTz2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-BFMHMTz2.js","names":[],"sources":["../src/insights/hash.ts","../src/ui/layout.ts","../src/history/summary.ts"],"mappings":"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"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as DeclarationTree, n as declareTree, o as DeclaredNode } from "./evaluate-
|
|
1
|
+
import { Ht as Wait, p as CaptureUseAction, u as CaptureInstruction } from "./types-B-9b1MDV.js";
|
|
2
|
+
import { a as DeclarationTree, n as declareTree, o as DeclaredNode } from "./evaluate-C9-ritA5.js";
|
|
3
3
|
//#region src/capture/fake-instructions.d.ts
|
|
4
4
|
declare const FAKE_INSTRUCTIONS: unique symbol;
|
|
5
5
|
type FakeInstructionStep = CaptureUseAction[] | {
|
package/dist/testing.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as declareTree } from "./evaluate-
|
|
2
|
-
import { f as fakeInstructions } from "./capture-
|
|
1
|
+
import { t as declareTree } from "./evaluate-Djk1YPFL.js";
|
|
2
|
+
import { f as fakeInstructions } from "./capture-dn2hjSLj.js";
|
|
3
3
|
export { declareTree, fakeInstructions };
|
|
@@ -12,6 +12,9 @@ function clip(text, max) {
|
|
|
12
12
|
const space = cut.search(/\s\S*$/);
|
|
13
13
|
return `${(space > max / 2 ? cut.slice(0, space) : cut).trimEnd()}…`;
|
|
14
14
|
}
|
|
15
|
+
const CONTROL = /[\u0000-\u001f\u007f-\u009f]/g;
|
|
16
|
+
/** Text as one printable line: control characters, escapes included, and whitespace runs become a space. */
|
|
17
|
+
const oneLine = (text) => text.replace(CONTROL, " ").replace(/\s+/g, " ").trim();
|
|
15
18
|
/** A failure's text keeps at most this much: its start (the reason) and its end (the output's tail). */
|
|
16
19
|
const FAILURE_CAP = 16384;
|
|
17
20
|
/** At most `max` characters: the start and the end, with how much was cut between them. */
|
|
@@ -21,9 +24,22 @@ function capMiddle(text, max = FAILURE_CAP) {
|
|
|
21
24
|
const tail = max - head;
|
|
22
25
|
return `${text.slice(0, head)}\n[… ${text.length - head - tail} characters cut …]\n${text.slice(-tail)}`;
|
|
23
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* A Markdown code block around `lines`. Its fence is one backtick longer than the longest run of
|
|
29
|
+
* backticks in them (at least three), so no line inside can close it.
|
|
30
|
+
*/
|
|
31
|
+
function fenced(lines, lang = "") {
|
|
32
|
+
const longest = Math.max(0, ...lines.flatMap((l) => (l.match(/`+/g) ?? []).map((m) => m.length)));
|
|
33
|
+
const fence = "`".repeat(Math.max(3, longest + 1));
|
|
34
|
+
return [
|
|
35
|
+
`${fence}${lang}`,
|
|
36
|
+
...lines,
|
|
37
|
+
fence
|
|
38
|
+
];
|
|
39
|
+
}
|
|
24
40
|
/** How a sandbox warning prints: root in capitals, added capabilities softer. */
|
|
25
41
|
const sandboxWarningLine = (w) => `${w.kind === "root" ? "WARNING" : "warning"}: ${w.message}`;
|
|
26
42
|
//#endregion
|
|
27
|
-
export {
|
|
43
|
+
export { oneLine as a, formatDuration as i, clip as n, sandboxWarningLine as o, fenced as r, capMiddle as t };
|
|
28
44
|
|
|
29
|
-
//# sourceMappingURL=text-
|
|
45
|
+
//# sourceMappingURL=text-CrVy5ioL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-CrVy5ioL.js","names":[],"sources":["../src/text.ts"],"mappings":";;AAGA,SAAgB,eAAe,IAAoB;CACjD,IAAI,KAAK,KAAM,OAAO,GAAG,KAAK,MAAM,EAAE,EAAE;CACxC,MAAM,IAAI,KAAK,MAAM,KAAK,GAAI;CAC9B,OAAO,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,KAAK,MAAM,IAAI,EAAE,EAAE,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE;AACtF;;AAGA,SAAgB,KAAK,MAAc,KAAqB;CACtD,IAAI,KAAK,UAAU,KAAK,OAAO;CAC/B,MAAM,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;CACjC,MAAM,QAAQ,IAAI,OAAO,QAAQ;CACjC,OAAO,IAAI,QAAQ,MAAM,IAAI,IAAI,MAAM,GAAG,KAAK,IAAI,IAAA,CAAK,QAAQ,EAAE;AACpE;AAGA,MAAM,UAAU;;AAGhB,MAAa,WAAW,SAAiB,KAAK,QAAQ,SAAS,GAAG,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK;;AAG9F,MAAa,cAAc;;AAG3B,SAAgB,UAAU,MAAc,MAAM,aAAqB;CACjE,IAAI,KAAK,UAAU,KAAK,OAAO;CAC/B,MAAM,OAAO,KAAK,MAAM,MAAM,GAAI;CAClC,MAAM,OAAO,MAAM;CACnB,OAAO,GAAG,KAAK,MAAM,GAAG,IAAI,EAAE,OAAO,KAAK,SAAS,OAAO,KAAK,sBAAsB,KAAK,MAAM,CAAC,IAAI;AACvG;;;;;AAMA,SAAgB,OAAO,OAAiB,OAAO,IAAc;CAC3D,MAAM,UAAU,KAAK,IAAI,GAAG,GAAG,MAAM,SAAS,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,EAAA,CAAG,KAAK,MAAM,EAAE,MAAM,CAAC,CAAC;CAChG,MAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,GAAG,UAAU,CAAC,CAAC;CACjD,OAAO;EAAC,GAAG,QAAQ;EAAQ,GAAG;EAAO;CAAK;AAC5C;;AAGA,MAAa,sBAAsB,MACjC,GAAG,EAAE,SAAS,SAAS,YAAY,UAAU,IAAI,EAAE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as isObjectLike } from "./object-CLf2-tNq.js";
|
|
2
|
-
import {
|
|
2
|
+
import { i as formatDuration, n as clip } from "./text-CrVy5ioL.js";
|
|
3
3
|
const text = (value) => typeof value === "string" ? value : JSON.stringify(value) ?? String(value);
|
|
4
4
|
function toolInput(input) {
|
|
5
5
|
if (isObjectLike(input)) for (const key of [
|
|
@@ -61,4 +61,4 @@ function transcriptForJudge(events, mode) {
|
|
|
61
61
|
//#endregion
|
|
62
62
|
export { transcriptForJudge as t };
|
|
63
63
|
|
|
64
|
-
//# sourceMappingURL=transcript-
|
|
64
|
+
//# sourceMappingURL=transcript-BTxJpW4R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-
|
|
1
|
+
{"version":3,"file":"transcript-BTxJpW4R.js","names":[],"sources":["../src/judge/transcript.ts"],"mappings":";;AASA,MAAM,QAAQ,UACZ,OAAO,UAAU,WAAW,QAAS,KAAK,UAAU,KAAK,KAAK,OAAO,KAAK;AAE5E,SAAS,UAAU,OAAwB;CACzC,IAAI,aAAa,KAAK,GACpB,KAAK,MAAM,OAAO;EAAC;EAAW;EAAO;EAAQ;EAAa;EAAO;EAAS;CAAS,GAAG;EACpF,MAAM,QAAQ,MAAM;EACpB,IAAI,OAAO,UAAU,UAAU,OAAO;CACxC;CAEF,OAAO,KAAK,KAAK;AACnB;AAEA,MAAM,UAAU,UACd,MACG,MAAM,IAAI,CAAC,CACX,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,KAAK,IAAI;;;;;;AAOd,SAAgB,mBAAmB,QAAoC,MAAsB;CAC3F,MAAM,OAAO,SAAS;CACtB,MAAM,OAAO,MAAe,OAAO,IAAI,KAAK,GAAA,GAAoB;CAChE,MAAM,QAAQ,OAAuB,OAAO,OAAO,KAAK,MAAM,eAAe,EAAE;CAC/E,MAAM,MAAgB,CAAC;CACvB,KAAK,MAAM,KAAK,QACd,QAAQ,EAAE,MAAV;EACE,KAAK;GACH,IAAI,SAAS,SAAS,IAAI,KAAK,YAAY,EAAE,MAAM;GACnD;EACF,KAAK;GACH,IAAI,MAAM,IAAI,KAAK,cAAc,EAAE,MAAM;GACzC;EACF,KAAK,aAAa;GAChB,MAAM,QAAQ,EAAE,UAAU,OAAO,KAAK,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW;GACrE,IAAI,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,OAAO,MAAM,GAAG,KAAK,EAAE,UAAU,GAAG;GAClE;EACF;EACA,KAAK;GACH,IAAI,KACF,UAAU,KAAK,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,QAAQ,WAAW,OAAO,KAAK,EAAE,UAAU,GAC7F;GACA;EACF,KAAK;GACH,IAAI,KAAK,SAAS,EAAE,IAAI,KAAK,EAAE,KAAK,OAAO,WAAW,KAAK,EAAE,UAAU,GAAG;GAC1E;EACF,KAAK,QAAQ;GACX,MAAM,OAAO,QAAQ,EAAE,KAAK,IAAI,IAAI,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,OAAO,WAAW,KAAK,EAAE,UAAU;GACvG,MAAM,SAAS,EAAE,WAAW,KAAA,KAAa,EAAE,WAAW,OAAO,KAAK,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;GAC3F,IAAI,KAAK,SAAS,GAAG,KAAK,IAAI,OAAO,MAAM,MAAM,IAAI;GACrD;EACF;EACA,KAAK;GACH,IAAI,KAAK,UAAU,EAAE,SAAS;GAC9B;EACF,KAAK,SACH,IAAI,KAAK,UAAU,EAAE,SAAS;CAElC;CAEF,OAAO;AACT"}
|