reeval 0.9.0 → 0.10.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 +42 -30
- package/THIRD_PARTY_NOTICES.md +218 -11
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +30 -30
- package/dist/adapter-DWlpOtRn.js +279 -0
- package/dist/adapter-DWlpOtRn.js.map +1 -0
- package/dist/{agent-6FefIhX7.js → agent-CURAwx_q.js} +6 -6
- package/dist/{agent-6FefIhX7.js.map → agent-CURAwx_q.js.map} +1 -1
- package/dist/{agent-WSmTaesf.js → agent-CaS_2Sce.js} +46 -15
- package/dist/agent-CaS_2Sce.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-BCZzTyR7.js → assemble-B9Alds-z.js} +69 -41
- package/dist/assemble-B9Alds-z.js.map +1 -0
- package/dist/assemble-J5MukZFY.js +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 +248 -55
- package/dist/{capture-Bp74Z6Fr.js → capture-CNb9SuU5.js} +145 -31
- package/dist/capture-CNb9SuU5.js.map +1 -0
- package/dist/capture-jquXZBKK.js +1 -0
- package/dist/{cli-CVrMh_qz.js → cli-D303Vj5N.js} +133 -115
- package/dist/cli-D303Vj5N.js.map +1 -0
- package/dist/{cli-spec-CKEYa8V2.js → cli-spec-BPZbQG2p.js} +36 -17
- package/dist/cli-spec-BPZbQG2p.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-CzIFp1JQ.js → command-BLfT7vnQ.js} +18 -17
- package/dist/command-BLfT7vnQ.js.map +1 -0
- package/dist/{command-C5xFPKHM.js → command-BT9a37ZR.js} +374 -72
- package/dist/command-BT9a37ZR.js.map +1 -0
- package/dist/{command-DUT5l13I.js → command-Bge8F7Ko.js} +316 -83
- package/dist/command-Bge8F7Ko.js.map +1 -0
- package/dist/command-BkFjijN2.js +1 -0
- package/dist/{command-BFP0hKEb.js → command-CMJtHKRa.js} +14 -14
- package/dist/{command-BFP0hKEb.js.map → command-CMJtHKRa.js.map} +1 -1
- package/dist/commands-1p-bIWhN.js +1 -0
- package/dist/{commands-CLmPBrTS.js → commands-BFx16WB8.js} +7 -7
- package/dist/commands-BFx16WB8.js.map +1 -0
- package/dist/config-DEgnUiU-.js +756 -0
- package/dist/config-DEgnUiU-.js.map +1 -0
- package/dist/{context-DbSMEVKs.js → context-C1mxXh80.js} +11 -3
- package/dist/context-C1mxXh80.js.map +1 -0
- package/dist/{db-CfQFwJtq.js → db-CdHizc4_.js} +455 -36
- package/dist/db-CdHizc4_.js.map +1 -0
- package/dist/db-Dm1cRJJP.js +2 -0
- package/dist/debug-D7bEv_UV.js +1 -0
- package/dist/{dist-CTzThfu_.js → dist-B8hJImYt.js} +17 -4
- package/dist/dist-B8hJImYt.js.map +1 -0
- package/dist/{docker-CRQGQbIt.js → docker-7b_2SaH7.js} +22 -21
- package/dist/docker-7b_2SaH7.js.map +1 -0
- package/dist/{docker-DV2GNgle.js → docker-sZrNrr82.js} +3 -3
- package/dist/docker-sZrNrr82.js.map +1 -0
- package/dist/docker-yauK-9X8.js +1 -0
- package/dist/{doctor-DlKycx5H.js → doctor-BYNok4UO.js} +262 -83
- package/dist/doctor-BYNok4UO.js.map +1 -0
- package/dist/{duration-JsJrIWXq.js → duration-CEOQww97.js} +2 -2
- package/dist/{duration-JsJrIWXq.js.map → duration-CEOQww97.js.map} +1 -1
- package/dist/{egress-BhzNh7Yi.js → egress-C4PZTSSe.js} +146 -14
- package/dist/egress-C4PZTSSe.js.map +1 -0
- package/dist/environment-DNjRk0nU.js +1133 -0
- package/dist/environment-DNjRk0nU.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-C1UVL21l.d.ts +92 -0
- package/dist/evaluate-D4zeRGBF.js +2351 -0
- package/dist/evaluate-D4zeRGBF.js.map +1 -0
- package/dist/files-BAt0i00X.js +1 -0
- package/dist/{files-CSzVADHn.js → files-BXUdY8tr.js} +9 -8
- package/dist/{files-CSzVADHn.js.map → files-BXUdY8tr.js.map} +1 -1
- package/dist/files-BhyltlDB.js +1 -0
- package/dist/files-Bk1mC3AN.js +43 -0
- package/dist/files-Bk1mC3AN.js.map +1 -0
- package/dist/{files-DJUFg-4e.js → files-DQmHE7pb.js} +5 -5
- package/dist/{files-DJUFg-4e.js.map → files-DQmHE7pb.js.map} +1 -1
- package/dist/files-ZZPqfAo6.js +1 -0
- package/dist/harness-B8QC9u0O.js +323 -0
- package/dist/harness-B8QC9u0O.js.map +1 -0
- package/dist/harness.d.ts +16 -30
- package/dist/harness.js +1 -2
- package/dist/{header-CALhmafp.js → header-hK-Z_Po9.js} +2 -2
- package/dist/{header-CALhmafp.js.map → header-hK-Z_Po9.js.map} +1 -1
- package/dist/{images-BMgdpMAX.js → images-0On0cztu.js} +114 -45
- package/dist/images-0On0cztu.js.map +1 -0
- package/dist/index.d.ts +9 -37
- package/dist/index.js +6 -2138
- package/dist/{init-BIdLF0F9.js → init-B77Rpcqc.js} +26 -8
- package/dist/init-B77Rpcqc.js.map +1 -0
- package/dist/init-BrOWin3W.js +1 -0
- package/dist/{invocations-CLaL8AuW.js → invocations-DbGfBAA_.js} +4 -4
- package/dist/{invocations-CLaL8AuW.js.map → invocations-DbGfBAA_.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-DEQo3FkZ.js → model-DaVCY3rb.js} +2 -2
- package/dist/{model-DEQo3FkZ.js.map → model-DaVCY3rb.js.map} +1 -1
- package/dist/model-NM3ID0uR.js +1 -0
- package/dist/{model-B1BZoZ9b.js → model-h_cDtcRr.js} +18 -17
- package/dist/model-h_cDtcRr.js.map +1 -0
- package/dist/model-nwWJvaUR.js +1 -0
- package/dist/{model-BOnlAPzs.js → model-oqcDplJG.js} +111 -19
- package/dist/model-oqcDplJG.js.map +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-Bh2W63dK.js +1119 -0
- package/dist/options-Bh2W63dK.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-Zac5aIRM.js} +6 -6
- package/dist/{patch-bDV8YFW0.js.map → patch-Zac5aIRM.js.map} +1 -1
- package/dist/{plan-DUydFc_1.js → plan-C9Cy27Ay.js} +24 -9
- package/dist/plan-C9Cy27Ay.js.map +1 -0
- package/dist/preflight-CPWpQeBI.js +1 -0
- package/dist/{preflight-BkoSxf4C.js → preflight-D7iFPKeK.js} +8 -7
- package/dist/preflight-D7iFPKeK.js.map +1 -0
- package/dist/prepare-BGjePFQl.js +2 -0
- package/dist/{prepare-CUAWHebF.js → prepare-doGxaAGR.js} +38 -30
- package/dist/prepare-doGxaAGR.js.map +1 -0
- package/dist/{provenance-D7HK3vzt.js → provenance-DmE9uPVt.js} +3 -3
- package/dist/{provenance-D7HK3vzt.js.map → provenance-DmE9uPVt.js.map} +1 -1
- package/dist/provider-DehR4CMN.js +1 -0
- package/dist/providers-gDMko8fl.js +1 -0
- package/dist/providers-tAOD1NQN.js +165 -0
- package/dist/providers-tAOD1NQN.js.map +1 -0
- package/dist/{query-BjBMLa-C.js → query-Bes9Kh6Y.js} +3 -3
- package/dist/{query-BjBMLa-C.js.map → query-Bes9Kh6Y.js.map} +1 -1
- package/dist/query-C_G_svLU.js +1 -0
- package/dist/questions-DjAwMxZ3.js +524 -0
- package/dist/questions-DjAwMxZ3.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-HDRt16ew.js +378 -0
- package/dist/remote-HDRt16ew.js.map +1 -0
- package/dist/{results-Di7m8dQ3.js → results-DuauQI3Z.js} +4 -4
- package/dist/{results-Di7m8dQ3.js.map → results-DuauQI3Z.js.map} +1 -1
- package/dist/{resume-SUz1GskV.js → resume-BRfa8E_s.js} +10 -10
- package/dist/{resume-SUz1GskV.js.map → resume-BRfa8E_s.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-D3A8oUb7.js +70 -0
- package/dist/sandbox-D3A8oUb7.js.map +1 -0
- package/dist/sandbox.d.ts +19 -6
- package/dist/sandbox.js +1 -2
- package/dist/server-C7sg1ndo.js +1 -0
- package/dist/{server-BNnXtmS8.js → server-XDleKaF_.js} +11 -11
- package/dist/server-XDleKaF_.js.map +1 -0
- package/dist/shared-DYpIb1BI.js +166 -0
- package/dist/shared-DYpIb1BI.js.map +1 -0
- package/dist/{source-Dof0NQBm.js → source-C8xumIWj.js} +2 -2
- package/dist/{source-Dof0NQBm.js.map → source-C8xumIWj.js.map} +1 -1
- package/dist/source-fGd0SaKP.js +1 -0
- package/dist/{src-8rRXy4u9.js → src-B7treWa8.js} +1538 -180
- package/dist/src-B7treWa8.js.map +1 -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-C_lPtowT.js +2 -0
- package/dist/src-DIL0jST0.js +368 -0
- package/dist/src-DIL0jST0.js.map +1 -0
- package/dist/src-DNnG4e4R.js +2 -0
- package/dist/src-DTbrY1hi.js +2 -0
- package/dist/src-DdyJEh2v.js +2 -0
- package/dist/src-Dj9PAroc.js +2 -0
- package/dist/src-Du8H85Qq.js +2 -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-jzagbuqH.js +2 -0
- package/dist/src-ofUaYbuY.js +3 -0
- package/dist/src-pJZOrYR9.js +1 -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-CiXyLqg0.js → state-C__9swoG.js} +35 -23
- package/dist/state-C__9swoG.js.map +1 -0
- package/dist/state-CeR6oz0k.js +66 -0
- package/dist/state-CeR6oz0k.js.map +1 -0
- package/dist/state-CgjQo29K.js +1 -0
- package/dist/studio-app/assets/index-CwQN3f_h.css +2 -0
- package/dist/studio-app/assets/{index-CROH2NB3.js → index-DrQc2Yxd.js} +11 -11
- package/dist/studio-app/index.html +2 -2
- package/dist/{summary-BTksrIxn.js → summary-BLAVLySU.js} +150 -19
- package/dist/summary-BLAVLySU.js.map +1 -0
- package/dist/{summary-2OAWF2N7.js → summary-DgyjUh_l.js} +7 -7
- package/dist/{summary-2OAWF2N7.js.map → summary-DgyjUh_l.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-GCyNYSc1.js} +6 -6
- package/dist/tools-GCyNYSc1.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-g17bRAzt.d.ts} +389 -42
- 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 +42 -8
- package/dist/view/index.js +6 -6
- package/dist/views-BW6oCDUQ.js +2 -0
- package/dist/{views-Dqa5ojfZ.js → views-BmQF4UCI.js} +13 -8
- package/dist/views-BmQF4UCI.js.map +1 -0
- package/dist/{worker-entry-BAikHl9F.js → worker-entry-yOchGYYv.js} +16 -229
- package/dist/worker-entry-yOchGYYv.js.map +1 -0
- package/dist/{workspace-C-TrNIUc.js → workspace-CgyHEM0l.js} +6 -6
- package/dist/{workspace-C-TrNIUc.js.map → workspace-CgyHEM0l.js.map} +1 -1
- package/dist/workspace-D8sSgpiy.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/egress-BhzNh7Yi.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/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/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-oPO_XrTy.js +0 -2
- package/dist/questions-B8by4Bbt.js +0 -234
- package/dist/questions-B8by4Bbt.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/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
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
import { s as recordFileName } from "./ids-Bp6ut7ZD.js";
|
|
2
|
+
import { c as judgeRoute } from "./judge-DW_GDOmB.js";
|
|
3
|
+
import { o as redactSecrets } from "./redact-DJ9JCShu.js";
|
|
4
|
+
import { i as resolveQuestionState, t as DEFAULT_QUESTION_STATE } from "./state-CeR6oz0k.js";
|
|
5
|
+
import { a as providerModel, i as isFake, r as cannedModel } from "./model-h_cDtcRr.js";
|
|
6
|
+
import { n as judgeDiff } from "./patch-Zac5aIRM.js";
|
|
7
|
+
import { t as transcriptForJudge } from "./transcript-BNNANU8A.js";
|
|
8
|
+
import { c as sideName, d as voteOf, f as voteReason, i as pairsOf, l as slots, o as ratesOf, t as acrossOf } from "./pairs-CnInRu-G.js";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { readFile } from "node:fs/promises";
|
|
12
|
+
import { Output, generateText } from "ai";
|
|
13
|
+
//#region src/compare/questions.ts
|
|
14
|
+
const DEFAULT_SHOWS = { state: DEFAULT_QUESTION_STATE };
|
|
15
|
+
const isOn = (value) => value !== false && !(Array.isArray(value) && !value.length);
|
|
16
|
+
/** `a`, `a and b`, `a, b and c`. */
|
|
17
|
+
const listed = (parts) => parts.length < 2 ? parts[0] ?? "" : `${parts.slice(0, -1).join(", ")} and ${parts.at(-1)}`;
|
|
18
|
+
/** The system prompt, naming the parts each attempt is shown as. */
|
|
19
|
+
function questionSystem(shows = DEFAULT_SHOWS, taskEach = false) {
|
|
20
|
+
const { state } = shows;
|
|
21
|
+
const parts = [
|
|
22
|
+
...taskEach && state.task ? ["the prompts it was sent"] : [],
|
|
23
|
+
...state.output ? ["its final message"] : [],
|
|
24
|
+
...isOn(state.transcript) ? ["its transcript"] : [],
|
|
25
|
+
...state.files ? ["the files it changed"] : [],
|
|
26
|
+
...isOn(state.diff) ? ["the changes it made to the project, as a unified diff"] : [],
|
|
27
|
+
...isOn(state.checks) ? ["the commands run on its work, with their exit codes and output"] : [],
|
|
28
|
+
...shows.artifacts !== void 0 ? ["screenshots of its work"] : []
|
|
29
|
+
];
|
|
30
|
+
return `You compare two attempts by coding agents at the same task and answer one question about them.
|
|
31
|
+
Each attempt is shown as ${listed(parts)}, labelled A or B. The labels are assigned at random: which attempt comes first says nothing about it.
|
|
32
|
+
Judge only by the question, from what is shown. Answer A or B for the attempt the question favours, or tie when what is shown doesn't separate them on it. Give a short reason for the pick.`;
|
|
33
|
+
}
|
|
34
|
+
const voteSchema = z.object({
|
|
35
|
+
winner: z.enum([
|
|
36
|
+
"A",
|
|
37
|
+
"B",
|
|
38
|
+
"tie"
|
|
39
|
+
]),
|
|
40
|
+
reason: z.string().optional()
|
|
41
|
+
});
|
|
42
|
+
/** Roughly four characters a token: each side gets half of `maxInputTokens`. */
|
|
43
|
+
const CHARS_PER_TOKEN = 4;
|
|
44
|
+
/** The turns a side shows: the last, or every one. */
|
|
45
|
+
const shownTurns = (side, state) => {
|
|
46
|
+
const turns = side.turns ?? [];
|
|
47
|
+
return state.turns === "all" ? turns : turns.slice(-1);
|
|
48
|
+
};
|
|
49
|
+
/** The task both sides were given, when they were given the same prompts. */
|
|
50
|
+
function sharedTask(first, second, state) {
|
|
51
|
+
if (!state.task) return null;
|
|
52
|
+
const a = shownTurns(first, state).map((t) => t.prompt);
|
|
53
|
+
const b = shownTurns(second, state).map((t) => t.prompt);
|
|
54
|
+
if (!a.length || a.length !== b.length || a.some((p, i) => p !== b[i])) return null;
|
|
55
|
+
return a.join("\n\n");
|
|
56
|
+
}
|
|
57
|
+
function buildSide(attempt, label, shows, taskShared) {
|
|
58
|
+
const { state } = shows;
|
|
59
|
+
const turns = shownTurns(attempt, state).map((t) => ({
|
|
60
|
+
...state.task && !taskShared ? { task: redactSecrets(t.prompt) } : {},
|
|
61
|
+
...state.output ? { output: redactSecrets(t.text ?? "") } : {},
|
|
62
|
+
...state.transcript ? { transcript: redactSecrets(transcriptForJudge(t.transcript ?? [], state.transcript).join("\n")) } : {}
|
|
63
|
+
}));
|
|
64
|
+
const shown = judgeDiff({
|
|
65
|
+
patch: attempt.diff,
|
|
66
|
+
files: attempt.files ?? []
|
|
67
|
+
}, Array.isArray(state.diff) ? { patterns: state.diff } : {});
|
|
68
|
+
const patch = redactSecrets(shown.patch);
|
|
69
|
+
const side = {
|
|
70
|
+
...state.turns === "all" ? turns.some((t) => Object.keys(t).length) ? { turns } : {} : turns[0] ?? {},
|
|
71
|
+
...state.files ? { files: shown.files } : {},
|
|
72
|
+
...state.diff !== false ? { diff: patch.trim() ? patch : "(no changes)" } : {}
|
|
73
|
+
};
|
|
74
|
+
const checks = checksOf(attempt, state.checks);
|
|
75
|
+
if (checks) side.checks = checks;
|
|
76
|
+
const images = [];
|
|
77
|
+
const sent = [];
|
|
78
|
+
if (shows.artifacts !== void 0) {
|
|
79
|
+
const captures = attempt.captures ?? [];
|
|
80
|
+
const names = shows.artifacts === true ? captures.map((c) => c.name) : shows.artifacts;
|
|
81
|
+
side.artifacts = names.map((name, i) => {
|
|
82
|
+
const at = `Attempt ${label}, screenshot ${i + 1} of ${names.length}`;
|
|
83
|
+
const capture = captures.find((c) => c.name === name);
|
|
84
|
+
if (!capture) {
|
|
85
|
+
images.push({
|
|
86
|
+
label: `${at}: not captured`,
|
|
87
|
+
data: null,
|
|
88
|
+
side: label,
|
|
89
|
+
name
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
label: at,
|
|
93
|
+
missing: true
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
sent.push(name);
|
|
97
|
+
images.push({
|
|
98
|
+
label: at,
|
|
99
|
+
data: capture.data,
|
|
100
|
+
side: label,
|
|
101
|
+
name
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
label: at,
|
|
105
|
+
mediaType: "image/png",
|
|
106
|
+
bytes: capture.data.byteLength
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
side,
|
|
112
|
+
images,
|
|
113
|
+
sent
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function checksOf(attempt, which) {
|
|
117
|
+
if (which === false) return void 0;
|
|
118
|
+
const ran = attempt.checks ?? [];
|
|
119
|
+
const shown = ({ command, exitCode, stdout, stderr }) => ({
|
|
120
|
+
command,
|
|
121
|
+
exitCode,
|
|
122
|
+
stdout: redactSecrets(stdout),
|
|
123
|
+
stderr: redactSecrets(stderr)
|
|
124
|
+
});
|
|
125
|
+
if (which === true) return ran.map(shown);
|
|
126
|
+
return which.flatMap((command) => {
|
|
127
|
+
const runs = ran.filter((r) => r.command === command);
|
|
128
|
+
return runs.length ? runs.map(shown) : [{
|
|
129
|
+
command,
|
|
130
|
+
notRun: true
|
|
131
|
+
}];
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const tag = (name, body) => [
|
|
135
|
+
`<${name}>`,
|
|
136
|
+
body,
|
|
137
|
+
`</${name}>`
|
|
138
|
+
];
|
|
139
|
+
/** A side's text in the prompt: each part it shows, in its own tag. */
|
|
140
|
+
function sideText(side) {
|
|
141
|
+
const turnLines = (t) => [
|
|
142
|
+
...t.task !== void 0 ? tag("task", t.task) : [],
|
|
143
|
+
...t.output !== void 0 ? tag("output", t.output) : [],
|
|
144
|
+
...t.transcript !== void 0 ? tag("transcript", t.transcript) : []
|
|
145
|
+
];
|
|
146
|
+
return [
|
|
147
|
+
...side.turns ? side.turns.flatMap((t, i) => [
|
|
148
|
+
`<turn n="${i + 1}">`,
|
|
149
|
+
...turnLines(t),
|
|
150
|
+
"</turn>"
|
|
151
|
+
]) : turnLines(side),
|
|
152
|
+
...side.files ? tag("files", side.files.join("\n") || "(none)") : [],
|
|
153
|
+
...side.diff !== void 0 ? tag("diff", side.diff) : [],
|
|
154
|
+
...side.checks ? tag("checks", side.checks.map((c) => "notRun" in c ? `$ ${c.command} → not run` : [
|
|
155
|
+
`$ ${c.command} → exit ${c.exitCode}`,
|
|
156
|
+
...c.stdout ? [c.stdout.trimEnd()] : [],
|
|
157
|
+
...c.stderr ? [`stderr: ${c.stderr.trimEnd()}`] : []
|
|
158
|
+
].join("\n")).join("\n")) : [],
|
|
159
|
+
...side.artifacts ? tag("screenshots", side.artifacts.map((a) => "missing" in a ? `${a.label}: not captured` : a.label).join("\n")) : []
|
|
160
|
+
].join("\n");
|
|
161
|
+
}
|
|
162
|
+
/** A side's text, cut to `chars` when it's longer. */
|
|
163
|
+
function cut(text, chars) {
|
|
164
|
+
if (text.length <= chars) return text;
|
|
165
|
+
return `${text.slice(0, chars)}\n[reeval: attempt cut at ${chars} of ${text.length} characters]`;
|
|
166
|
+
}
|
|
167
|
+
/** What the model is shown for one order of a pair: no harness, arm, run, attempt id or capture name. */
|
|
168
|
+
function blindInput(question, pair, swapped, maxInputTokens, shows = DEFAULT_SHOWS) {
|
|
169
|
+
const [first, second] = slots(pair, swapped);
|
|
170
|
+
const chars = Math.floor(maxInputTokens * CHARS_PER_TOKEN / 2);
|
|
171
|
+
const task = sharedTask(first, second, shows.state);
|
|
172
|
+
const a = buildSide(first, "A", shows, task !== null);
|
|
173
|
+
const b = buildSide(second, "B", shows, task !== null);
|
|
174
|
+
const prompt = [
|
|
175
|
+
`Question: ${question}`,
|
|
176
|
+
...task ? [
|
|
177
|
+
"",
|
|
178
|
+
"The task both attempts were given:",
|
|
179
|
+
"<task>",
|
|
180
|
+
task,
|
|
181
|
+
"</task>"
|
|
182
|
+
] : [],
|
|
183
|
+
"",
|
|
184
|
+
"<attempt label=\"A\">",
|
|
185
|
+
cut(sideText(a.side), chars),
|
|
186
|
+
"</attempt>",
|
|
187
|
+
"",
|
|
188
|
+
"<attempt label=\"B\">",
|
|
189
|
+
cut(sideText(b.side), chars),
|
|
190
|
+
"</attempt>"
|
|
191
|
+
].join("\n");
|
|
192
|
+
const [sentFirst, sentSecond] = swapped ? [b.sent, a.sent] : [a.sent, b.sent];
|
|
193
|
+
return {
|
|
194
|
+
blind: {
|
|
195
|
+
question,
|
|
196
|
+
prompt: redactSecrets(prompt),
|
|
197
|
+
a: a.side,
|
|
198
|
+
b: b.side
|
|
199
|
+
},
|
|
200
|
+
system: questionSystem(shows, task === null),
|
|
201
|
+
images: [...a.images, ...b.images],
|
|
202
|
+
sent: {
|
|
203
|
+
a: sentFirst,
|
|
204
|
+
b: sentSecond
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
function fakeAnswer(fake, pair) {
|
|
209
|
+
const vote = fake.vote ?? "tie";
|
|
210
|
+
if (typeof vote === "object" && "error" in vote) return cannedModel({ error: vote.error });
|
|
211
|
+
const pick = typeof vote === "function" ? vote(pair) : vote;
|
|
212
|
+
const winner = typeof pick === "string" ? pick : pick.winner;
|
|
213
|
+
const reason = typeof pick === "string" ? void 0 : pick.reason;
|
|
214
|
+
return cannedModel({ text: JSON.stringify({
|
|
215
|
+
winner,
|
|
216
|
+
...reason !== void 0 ? { reason } : {}
|
|
217
|
+
}) });
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* The model call's system prompt and input: the prompt as text, or, with screenshots, one user
|
|
221
|
+
* message of the prompt then each screenshot's label and image part.
|
|
222
|
+
*/
|
|
223
|
+
function questionRequest(input) {
|
|
224
|
+
const { blind, images } = input;
|
|
225
|
+
if (!images.length) return {
|
|
226
|
+
system: input.system,
|
|
227
|
+
prompt: blind.prompt
|
|
228
|
+
};
|
|
229
|
+
return {
|
|
230
|
+
system: input.system,
|
|
231
|
+
messages: [{
|
|
232
|
+
role: "user",
|
|
233
|
+
content: [{
|
|
234
|
+
type: "text",
|
|
235
|
+
text: blind.prompt
|
|
236
|
+
}, ...images.flatMap((image) => [{
|
|
237
|
+
type: "text",
|
|
238
|
+
text: image.label
|
|
239
|
+
}, ...image.data ? [{
|
|
240
|
+
type: "file",
|
|
241
|
+
mediaType: "image/png",
|
|
242
|
+
data: image.data
|
|
243
|
+
}] : []])]
|
|
244
|
+
}]
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
async function ask(model, input, maxOutputTokens, signal) {
|
|
248
|
+
const result = await generateText({
|
|
249
|
+
model: isFake(model) ? fakeAnswer(model, input.blind) : await providerModel({
|
|
250
|
+
name: model,
|
|
251
|
+
route: judgeRoute(model).kind
|
|
252
|
+
}),
|
|
253
|
+
...questionRequest(input),
|
|
254
|
+
output: Output.object({
|
|
255
|
+
schema: voteSchema,
|
|
256
|
+
name: "vote"
|
|
257
|
+
}),
|
|
258
|
+
temperature: 0,
|
|
259
|
+
maxOutputTokens,
|
|
260
|
+
maxRetries: 3,
|
|
261
|
+
...signal ? { abortSignal: signal } : {}
|
|
262
|
+
});
|
|
263
|
+
const { winner, reason } = result.output;
|
|
264
|
+
return {
|
|
265
|
+
pick: winner,
|
|
266
|
+
reason: voteReason(reason),
|
|
267
|
+
resolvedModel: isFake(model) ? null : result.response?.modelId ?? null
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/** Runs `work` over `items`, at most `limit` at once, keeping their order. */
|
|
271
|
+
async function pooled(items, limit, work) {
|
|
272
|
+
const out = new Array(items.length);
|
|
273
|
+
let next = 0;
|
|
274
|
+
const lanes = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
275
|
+
while (next < items.length) {
|
|
276
|
+
const i = next++;
|
|
277
|
+
out[i] = await work(items[i]);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
await Promise.all(lanes);
|
|
281
|
+
return out;
|
|
282
|
+
}
|
|
283
|
+
function askedCall(pair, swapped, input, error) {
|
|
284
|
+
const [first, second] = slots(pair, swapped);
|
|
285
|
+
const shown = {
|
|
286
|
+
A: first,
|
|
287
|
+
B: second
|
|
288
|
+
};
|
|
289
|
+
return {
|
|
290
|
+
cut: pair.cut,
|
|
291
|
+
...pair.cut === "within" ? { harness: pair.harness } : { arm: pair.arm },
|
|
292
|
+
run: pair.run,
|
|
293
|
+
a: sideName(pair.cut, pair.a),
|
|
294
|
+
b: sideName(pair.cut, pair.b),
|
|
295
|
+
swapped,
|
|
296
|
+
labels: {
|
|
297
|
+
A: sideName(pair.cut, first),
|
|
298
|
+
B: sideName(pair.cut, second)
|
|
299
|
+
},
|
|
300
|
+
system: input.system,
|
|
301
|
+
prompt: input.blind.prompt,
|
|
302
|
+
...input.images.length ? { screenshots: input.images.map((image) => {
|
|
303
|
+
const label = image.label.replace(/: not captured$/, "");
|
|
304
|
+
return image.data ? {
|
|
305
|
+
label,
|
|
306
|
+
side: sideName(pair.cut, shown[image.side]),
|
|
307
|
+
name: image.name,
|
|
308
|
+
attempt: shown[image.side].id ?? ""
|
|
309
|
+
} : {
|
|
310
|
+
label,
|
|
311
|
+
missing: true
|
|
312
|
+
};
|
|
313
|
+
}) } : {},
|
|
314
|
+
...error !== void 0 ? { error } : {}
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
const errorText = (error) => redactSecrets((error instanceof Error ? error.message : String(error)).split("\n")[0] ?? "");
|
|
318
|
+
/**
|
|
319
|
+
* Why the question can't be asked: a command or capture it names that no paired attempt has, so
|
|
320
|
+
* every side would show it missing. Undefined when each one is on some side.
|
|
321
|
+
*/
|
|
322
|
+
function missingEverywhere(question, shows, pairs) {
|
|
323
|
+
const sides = [...new Set(pairs.flatMap((p) => [p.a, p.b]))];
|
|
324
|
+
const { checks } = shows.state;
|
|
325
|
+
if (Array.isArray(checks)) {
|
|
326
|
+
const command = checks.find((c) => !sides.some((s) => s.checks?.some((r) => r.command === c)));
|
|
327
|
+
if (command !== void 0) return `question "${question}" state.checks names a command no paired attempt ran: ${JSON.stringify(command)}`;
|
|
328
|
+
}
|
|
329
|
+
if (Array.isArray(shows.artifacts)) {
|
|
330
|
+
const name = shows.artifacts.find((n) => !sides.some((s) => s.captures?.some((c) => c.name === n)));
|
|
331
|
+
if (name !== void 0) return `question "${question}" artifacts names a capture no paired attempt has: ${JSON.stringify(name)}`;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Asks one question of every pair, each twice with the order swapped. Votes that came back are
|
|
336
|
+
* kept when a call fails, and the first failure is the answer's `error`.
|
|
337
|
+
*/
|
|
338
|
+
async function answerQuestion(options) {
|
|
339
|
+
const { question, model, pairs } = options;
|
|
340
|
+
const shows = {
|
|
341
|
+
state: resolveQuestionState(options.state),
|
|
342
|
+
...options.artifacts !== void 0 ? { artifacts: options.artifacts } : {}
|
|
343
|
+
};
|
|
344
|
+
const head = {
|
|
345
|
+
question,
|
|
346
|
+
model: isFake(model) ? "fake" : model
|
|
347
|
+
};
|
|
348
|
+
const asked = {
|
|
349
|
+
stateOptions: shows.state,
|
|
350
|
+
...shows.artifacts !== void 0 ? { artifacts: shows.artifacts } : {}
|
|
351
|
+
};
|
|
352
|
+
const missing = missingEverywhere(question, shows, pairs);
|
|
353
|
+
if (missing) return {
|
|
354
|
+
...head,
|
|
355
|
+
...asked,
|
|
356
|
+
votes: [],
|
|
357
|
+
rates: [],
|
|
358
|
+
error: missing
|
|
359
|
+
};
|
|
360
|
+
const calls = pairs.flatMap((pair) => [false, true].map((swapped) => ({
|
|
361
|
+
pair,
|
|
362
|
+
swapped
|
|
363
|
+
}))).map((call, at) => ({
|
|
364
|
+
...call,
|
|
365
|
+
at
|
|
366
|
+
}));
|
|
367
|
+
const served = /* @__PURE__ */ new Set();
|
|
368
|
+
let error;
|
|
369
|
+
const made = new Array(calls.length).fill(null);
|
|
370
|
+
const votes = await pooled(calls, options.concurrency ?? 4, async ({ pair, swapped, at }) => {
|
|
371
|
+
if (error !== void 0) return null;
|
|
372
|
+
const input = blindInput(question, pair, swapped, options.maxInputTokens, shows);
|
|
373
|
+
try {
|
|
374
|
+
const { pick, reason, resolvedModel } = await ask(model, input, options.maxOutputTokens, options.signal);
|
|
375
|
+
made[at] = askedCall(pair, swapped, input);
|
|
376
|
+
if (resolvedModel) served.add(resolvedModel);
|
|
377
|
+
const vote = voteOf(question, pair, swapped, pick, reason);
|
|
378
|
+
return shows.artifacts !== void 0 ? {
|
|
379
|
+
...vote,
|
|
380
|
+
artifacts: input.sent
|
|
381
|
+
} : vote;
|
|
382
|
+
} catch (e) {
|
|
383
|
+
const why = errorText(e);
|
|
384
|
+
made[at] = askedCall(pair, swapped, input, why);
|
|
385
|
+
error ??= why;
|
|
386
|
+
return null;
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
options.calls?.push(...made.filter((c) => c !== null));
|
|
390
|
+
const kept = votes.filter((v) => v !== null);
|
|
391
|
+
return {
|
|
392
|
+
...head,
|
|
393
|
+
...served.size ? { resolvedModel: [...served].sort().join(", ") } : {},
|
|
394
|
+
...asked,
|
|
395
|
+
votes: kept,
|
|
396
|
+
rates: ratesOf(kept),
|
|
397
|
+
...error !== void 0 ? { error } : {}
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
/** A staged attempt as a pair side: its record's turns, diff and checks, and whether its checks held. */
|
|
401
|
+
function stagedAttempt(e, record) {
|
|
402
|
+
const cell = e.attempt?.cell;
|
|
403
|
+
if (!cell) return null;
|
|
404
|
+
const checksPassed = record !== null && (e.state === "passed" || e.state === "failed" && record.error?.kind === "judge");
|
|
405
|
+
return {
|
|
406
|
+
harness: cell.harness,
|
|
407
|
+
arm: cell.environment,
|
|
408
|
+
run: e.attempt?.n ?? 1,
|
|
409
|
+
diff: record?.diff?.patch ?? "",
|
|
410
|
+
files: record?.diff?.files ?? [],
|
|
411
|
+
checksPassed,
|
|
412
|
+
control: cell.role === "control",
|
|
413
|
+
turns: record?.turns.map((t) => ({
|
|
414
|
+
prompt: t.prompt,
|
|
415
|
+
text: t.text,
|
|
416
|
+
transcript: t.transcript
|
|
417
|
+
})) ?? [],
|
|
418
|
+
checks: record?.checks.map(({ command, exitCode, stdout, stderr }) => ({
|
|
419
|
+
command,
|
|
420
|
+
exitCode,
|
|
421
|
+
stdout,
|
|
422
|
+
stderr
|
|
423
|
+
})) ?? [],
|
|
424
|
+
id: `${cell.key}#${e.attempt?.n ?? 1}`
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
const readStaged = async (stagingDir, key) => JSON.parse(await readFile(join(stagingDir, "evals", recordFileName(key)), "utf8").catch(() => "null"));
|
|
428
|
+
/** A staged attempt's captures, read from the PNGs beside its record; a missing file is left out. */
|
|
429
|
+
async function stagedCaptures(stagingDir, key, record) {
|
|
430
|
+
const dir = join(stagingDir, "evals", recordFileName(key).replace(/\.json$/, ".artifacts"));
|
|
431
|
+
return (await Promise.all((record?.artifacts ?? []).map(async ({ name }) => {
|
|
432
|
+
const data = await readFile(join(dir, `${name}.png`)).catch(() => null);
|
|
433
|
+
return data ? [{
|
|
434
|
+
name,
|
|
435
|
+
data: new Uint8Array(data)
|
|
436
|
+
}] : [];
|
|
437
|
+
}))).flat();
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Starts an eval's questions as soon as its last planned attempt ends, while the rest of the run
|
|
441
|
+
* goes on; `settle` starts any left (an eval a filter or budget cut short) and waits for all.
|
|
442
|
+
*/
|
|
443
|
+
function questionRunner(options) {
|
|
444
|
+
const byId = new Map(options.evals.map((e) => [e.row.id, e]));
|
|
445
|
+
const ended = /* @__PURE__ */ new Map();
|
|
446
|
+
const started = /* @__PURE__ */ new Map();
|
|
447
|
+
const controller = new AbortController();
|
|
448
|
+
const start = (id) => {
|
|
449
|
+
const e = byId.get(id);
|
|
450
|
+
if (!e || started.has(id)) return;
|
|
451
|
+
const attempts = ended.get(id) ?? [];
|
|
452
|
+
const wantsCaptures = e.questions.some((q) => q.artifacts !== void 0);
|
|
453
|
+
const answers = (async () => {
|
|
454
|
+
const staged = (await Promise.all(attempts.map(async (a) => {
|
|
455
|
+
const record = await readStaged(options.stagingDir, a.key);
|
|
456
|
+
const side = stagedAttempt(a, record);
|
|
457
|
+
if (!side || !wantsCaptures) return side;
|
|
458
|
+
return {
|
|
459
|
+
...side,
|
|
460
|
+
captures: await stagedCaptures(options.stagingDir, a.key, record)
|
|
461
|
+
};
|
|
462
|
+
}))).filter((s) => s !== null).sort((x, y) => (x.id ?? "") < (y.id ?? "") ? -1 : 1);
|
|
463
|
+
return Promise.all(e.questions.map(async (q) => {
|
|
464
|
+
const calls = [];
|
|
465
|
+
const answer = await answerQuestion({
|
|
466
|
+
question: q.question,
|
|
467
|
+
model: q.model,
|
|
468
|
+
pairs: pairsOf(staged, acrossOf(q.across)),
|
|
469
|
+
maxInputTokens: options.maxInputTokens,
|
|
470
|
+
maxOutputTokens: options.maxOutputTokens,
|
|
471
|
+
...q.state ? { state: q.state } : {},
|
|
472
|
+
...q.artifacts !== void 0 ? { artifacts: q.artifacts } : {},
|
|
473
|
+
signal: controller.signal,
|
|
474
|
+
calls
|
|
475
|
+
});
|
|
476
|
+
options.onAnswer?.(id, answer);
|
|
477
|
+
return {
|
|
478
|
+
answer,
|
|
479
|
+
calls
|
|
480
|
+
};
|
|
481
|
+
}));
|
|
482
|
+
})().catch((error) => e.questions.map((q) => {
|
|
483
|
+
const answer = {
|
|
484
|
+
question: q.question,
|
|
485
|
+
model: isFake(q.model) ? "fake" : q.model,
|
|
486
|
+
stateOptions: resolveQuestionState(q.state),
|
|
487
|
+
...q.artifacts !== void 0 ? { artifacts: q.artifacts } : {},
|
|
488
|
+
votes: [],
|
|
489
|
+
rates: [],
|
|
490
|
+
error: errorText(error)
|
|
491
|
+
};
|
|
492
|
+
options.onAnswer?.(id, answer);
|
|
493
|
+
return {
|
|
494
|
+
answer,
|
|
495
|
+
calls: []
|
|
496
|
+
};
|
|
497
|
+
}));
|
|
498
|
+
started.set(id, answers);
|
|
499
|
+
};
|
|
500
|
+
return {
|
|
501
|
+
onEvalEnd(result) {
|
|
502
|
+
const e = byId.get(result.id);
|
|
503
|
+
if (!e) return;
|
|
504
|
+
const list = ended.get(result.id) ?? [];
|
|
505
|
+
list.push(result);
|
|
506
|
+
ended.set(result.id, list);
|
|
507
|
+
if (list.length >= e.row.plan.attempts) start(result.id);
|
|
508
|
+
},
|
|
509
|
+
/** Stops calls in flight: the run was cancelled, so nothing is answered. */
|
|
510
|
+
cancel() {
|
|
511
|
+
controller.abort();
|
|
512
|
+
},
|
|
513
|
+
async settle() {
|
|
514
|
+
for (const id of byId.keys()) if (ended.has(id)) start(id);
|
|
515
|
+
const out = /* @__PURE__ */ new Map();
|
|
516
|
+
for (const [id, answers] of started) out.set(id, await answers);
|
|
517
|
+
return out;
|
|
518
|
+
}
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
//#endregion
|
|
522
|
+
export { questionRunner };
|
|
523
|
+
|
|
524
|
+
//# sourceMappingURL=questions-DjAwMxZ3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions-DjAwMxZ3.js","names":[],"sources":["../src/compare/questions.ts"],"mappings":"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"}
|
|
@@ -32,6 +32,14 @@ const READ_DEFAULTS = {
|
|
|
32
32
|
{
|
|
33
33
|
path: "evals[].attempts[].servedEffort",
|
|
34
34
|
empty: () => null
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
path: "evals[].attempts[].activity.stalledTools",
|
|
38
|
+
empty: () => 0
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
path: "evals[].attempts[].activity.maxToolMs",
|
|
42
|
+
empty: () => null
|
|
35
43
|
}
|
|
36
44
|
],
|
|
37
45
|
"transcript-line": [],
|
|
@@ -120,4 +128,4 @@ const readableCliInvocation = (entry) => fillDefaults("cli-invocation", entry);
|
|
|
120
128
|
//#endregion
|
|
121
129
|
export { readableCliInvocation as a, readableTranscriptLine as c, readableAnalysisNote as i, fillDefaults as n, readableDebugRequest as o, readableAnalysis as r, readableRecord as s, NewerSchemaError as t };
|
|
122
130
|
|
|
123
|
-
//# sourceMappingURL=record-
|
|
131
|
+
//# sourceMappingURL=record-BKmMvZ6O.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-
|
|
1
|
+
{"version":3,"file":"record-BKmMvZ6O.js","names":[],"sources":["../src/view/record.ts"],"mappings":"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"}
|