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
|
@@ -42,10 +42,10 @@ function createAntigravityRequestTransformations({ credentials, placeholder, hea
|
|
|
42
42
|
//#endregion
|
|
43
43
|
//#region ../harness-antigravity/src/antigravity-bootstrap.ts
|
|
44
44
|
/** The CLI build the bootstrap installs. Bump it with both checksums from the release. */
|
|
45
|
-
const ANTIGRAVITY_CLI_VERSION = "1.4.
|
|
45
|
+
const ANTIGRAVITY_CLI_VERSION = "1.4.5";
|
|
46
46
|
const ANTIGRAVITY_CLI_SHA256 = {
|
|
47
|
-
x64: "
|
|
48
|
-
arm64: "
|
|
47
|
+
x64: "90cc1894b6862510869ad4cf1a6f4c043b7ae7c095bad8d5c355788a0ca935c7",
|
|
48
|
+
arm64: "8826b80c4b013f087734f24c5eadcc38600e74a1af411272d42a840d52ed3ee7"
|
|
49
49
|
};
|
|
50
50
|
/** Relative to the harness state directory, `$HOME/.ai-sdk-harness`. */
|
|
51
51
|
const ANTIGRAVITY_BOOTSTRAP_DIR = ".harness-bootstrap/antigravity";
|
|
@@ -117,6 +117,82 @@ function buildAntigravityCommand(o) {
|
|
|
117
117
|
return `exec ${[o.cli, ...args].map(shellQuote).join(" ")} -p "$(cat ${shellQuote(o.promptFile)})"`;
|
|
118
118
|
}
|
|
119
119
|
//#endregion
|
|
120
|
+
//#region ../harness-antigravity/src/antigravity-plugins.ts
|
|
121
|
+
/** Where `agy plugin install` puts each plugin, under the CLI's home: `<dir>/<manifest name>`. */
|
|
122
|
+
const ANTIGRAVITY_PLUGINS_DIR = ".gemini/config/plugins";
|
|
123
|
+
/** A Claude Code plugin names its own directory with this in a hook command. */
|
|
124
|
+
const PLUGIN_ROOT = "${CLAUDE_PLUGIN_ROOT}";
|
|
125
|
+
/**
|
|
126
|
+
* The Claude Code hook events the CLI runs, by how it takes their handlers: `flat` events take a
|
|
127
|
+
* list of handlers, `grouped` ones a list of `{ matcher, hooks }` groups. Every other Claude Code
|
|
128
|
+
* event has no Antigravity equivalent.
|
|
129
|
+
*/
|
|
130
|
+
const ANTIGRAVITY_HOOK_EVENTS = {
|
|
131
|
+
SessionStart: "flat",
|
|
132
|
+
PreToolUse: "grouped",
|
|
133
|
+
PostToolUse: "grouped",
|
|
134
|
+
Stop: "flat"
|
|
135
|
+
};
|
|
136
|
+
const isRecord$1 = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
137
|
+
/**
|
|
138
|
+
* A Claude Code plugin's `hooks/hooks.json` as the CLI's plugin-root `hooks.json`: one named hook,
|
|
139
|
+
* the plugin's, with each event's handlers in the CLI's shape (a tool event's group without a
|
|
140
|
+
* matcher matches every tool) and `${CLAUDE_PLUGIN_ROOT}` in each command filled in with `root`,
|
|
141
|
+
* since the CLI doesn't set it. `agy plugin install` copies the Claude file there unchanged,
|
|
142
|
+
* where the CLI misreads a grouped `SessionStart` and never runs it.
|
|
143
|
+
*/
|
|
144
|
+
function antigravityHooks(name, claude, root) {
|
|
145
|
+
const events = isRecord$1(claude) && isRecord$1(claude.hooks) ? claude.hooks : void 0;
|
|
146
|
+
if (!events) throw new Error(`The ${name} plugin's hooks/hooks.json has no hooks object`);
|
|
147
|
+
const handler = (h) => {
|
|
148
|
+
if (!isRecord$1(h) || typeof h.command !== "string" || (h.type ?? "command") !== "command") throw new Error(`The ${name} plugin has a hook the Antigravity CLI can't run: it runs only command hooks`);
|
|
149
|
+
return {
|
|
150
|
+
type: "command",
|
|
151
|
+
command: h.command.replaceAll(PLUGIN_ROOT, root),
|
|
152
|
+
...typeof h.timeout === "number" ? { timeout: h.timeout } : {}
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
const out = {};
|
|
156
|
+
for (const [event, groups] of Object.entries(events)) {
|
|
157
|
+
const shape = ANTIGRAVITY_HOOK_EVENTS[event];
|
|
158
|
+
if (!shape) throw new Error(`The ${name} plugin has ${event} hooks, which the Antigravity CLI has no event for`);
|
|
159
|
+
const list = (Array.isArray(groups) ? groups : []).filter(isRecord$1);
|
|
160
|
+
out[event] = shape === "flat" ? list.flatMap((g) => (Array.isArray(g.hooks) ? g.hooks : []).map(handler)) : list.map((g) => ({
|
|
161
|
+
matcher: typeof g.matcher === "string" && g.matcher ? g.matcher : "*",
|
|
162
|
+
hooks: (Array.isArray(g.hooks) ? g.hooks : []).map(handler)
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
return { [name]: out };
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Installs a Claude Code plugin with `agy plugin install`, which copies and converts it into
|
|
169
|
+
* {@link ANTIGRAVITY_PLUGINS_DIR}. Then, in the installed copy:
|
|
170
|
+
* - each skill without a `name` is named after its directory (the CLI lists a command it
|
|
171
|
+
* converted to a skill as `SKILL` otherwise);
|
|
172
|
+
* - each rule without a `trigger` that has no frontmatter, or Cursor's `alwaysApply: true`, gets
|
|
173
|
+
* `trigger: always_on`, since the CLI leaves a rule without a trigger out.
|
|
174
|
+
*/
|
|
175
|
+
function antigravityPluginInstall(cli, dir, installed) {
|
|
176
|
+
const at = shellQuote(installed);
|
|
177
|
+
return `set -eu
|
|
178
|
+
${shellQuote(cli)} plugin install ${shellQuote(dir)}
|
|
179
|
+
front() { head -n 1 "$1" | grep -q '^---$'; }
|
|
180
|
+
for f in ${at}/skills/*/SKILL.md; do
|
|
181
|
+
[ -f "$f" ] || continue
|
|
182
|
+
grep -q '^name:' "$f" && continue
|
|
183
|
+
skill=$(basename "$(dirname "$f")")
|
|
184
|
+
if front "$f"; then sed -i "1a name: $skill" "$f"; else sed -i "1i ---\\nname: $skill\\n---" "$f"; fi
|
|
185
|
+
done
|
|
186
|
+
for f in ${at}/rules/*.md ${at}/rules/*.mdc; do
|
|
187
|
+
[ -f "$f" ] || continue
|
|
188
|
+
grep -q '^trigger:' "$f" && continue
|
|
189
|
+
if ! front "$f"; then sed -i '1i ---\\ntrigger: always_on\\n---\\n' "$f"
|
|
190
|
+
elif grep -q '^alwaysApply: *true' "$f"; then sed -i '1a trigger: always_on' "$f"; fi
|
|
191
|
+
done`;
|
|
192
|
+
}
|
|
193
|
+
/** Where `agy plugin install` puts the plugin of `name`. */
|
|
194
|
+
const installedPluginDir = (home, name) => posix.join(home, ANTIGRAVITY_PLUGINS_DIR, name);
|
|
195
|
+
//#endregion
|
|
120
196
|
//#region ../harness-antigravity/src/antigravity-tools.ts
|
|
121
197
|
const native = (nativeName, title, toolUseKind) => ({
|
|
122
198
|
...tool({
|
|
@@ -140,7 +216,7 @@ const ANTIGRAVITY_BUILTIN_TOOLS = {
|
|
|
140
216
|
},
|
|
141
217
|
read: {
|
|
142
218
|
...commonTool("read", {
|
|
143
|
-
nativeName: "
|
|
219
|
+
nativeName: "read_file",
|
|
144
220
|
toolUseKind: "readonly",
|
|
145
221
|
inputSchema: z.looseObject({ file_path: z.string() })
|
|
146
222
|
}),
|
|
@@ -148,7 +224,7 @@ const ANTIGRAVITY_BUILTIN_TOOLS = {
|
|
|
148
224
|
},
|
|
149
225
|
write: {
|
|
150
226
|
...commonTool("write", {
|
|
151
|
-
nativeName: "
|
|
227
|
+
nativeName: "write_file",
|
|
152
228
|
toolUseKind: "edit",
|
|
153
229
|
inputSchema: z.looseObject({
|
|
154
230
|
file_path: z.string(),
|
|
@@ -159,7 +235,7 @@ const ANTIGRAVITY_BUILTIN_TOOLS = {
|
|
|
159
235
|
},
|
|
160
236
|
edit: {
|
|
161
237
|
...commonTool("edit", {
|
|
162
|
-
nativeName: "
|
|
238
|
+
nativeName: "edit_file",
|
|
163
239
|
toolUseKind: "edit",
|
|
164
240
|
inputSchema: z.looseObject({
|
|
165
241
|
file_path: z.string(),
|
|
@@ -210,6 +286,10 @@ const ANTIGRAVITY_BUILTIN_TOOLS = {
|
|
|
210
286
|
call_mcp_tool: native("call_mcp_tool", "Call MCP Tool"),
|
|
211
287
|
generate_image: native("generate_image", "Generate Image"),
|
|
212
288
|
invoke_subagent: native("invoke_subagent", "Invoke Subagent"),
|
|
289
|
+
manage_subagents: native("manage_subagents", "Manage Subagents"),
|
|
290
|
+
schedule: native("schedule", "Schedule"),
|
|
291
|
+
wait: native("wait", "Wait"),
|
|
292
|
+
wait_5_seconds: native("wait_5_seconds", "Wait 5 Seconds"),
|
|
213
293
|
browser_subagent: native("browser_subagent", "Browser Subagent"),
|
|
214
294
|
notebook_edit: native("notebook_edit", "Edit Notebook", "edit"),
|
|
215
295
|
ask_question: native("ask_question", "Ask Question"),
|
|
@@ -219,10 +299,12 @@ const ANTIGRAVITY_BUILTIN_TOOLS = {
|
|
|
219
299
|
const str = (value) => typeof value === "string" ? value : void 0;
|
|
220
300
|
/** Native edit tools that all surface as `edit`, since the key must be unique. */
|
|
221
301
|
const EDIT_TOOLS = /* @__PURE__ */ new Set([
|
|
302
|
+
"edit_file",
|
|
222
303
|
"replace_file_content",
|
|
223
304
|
"multi_replace_file_content",
|
|
224
305
|
"sed_file"
|
|
225
306
|
]);
|
|
307
|
+
const filePath = (p) => str(p.Path) ?? str(p.TargetFile) ?? str(p.AbsolutePath) ?? "";
|
|
226
308
|
const BY_NATIVE_NAME = new Map(Object.entries(ANTIGRAVITY_BUILTIN_TOOLS).map(([key, t]) => [t.nativeName ?? key, key]));
|
|
227
309
|
/** Maps a native tool call to its catalog name, adding the common-schema fields it implies. */
|
|
228
310
|
function projectToolCall(nativeName, parameters = {}) {
|
|
@@ -236,7 +318,7 @@ function projectToolCall(nativeName, parameters = {}) {
|
|
|
236
318
|
},
|
|
237
319
|
dynamic: false
|
|
238
320
|
});
|
|
239
|
-
if (EDIT_TOOLS.has(nativeName)) return common("edit", { file_path:
|
|
321
|
+
if (EDIT_TOOLS.has(nativeName)) return common("edit", { file_path: filePath(p) });
|
|
240
322
|
const server = str(p.ServerName);
|
|
241
323
|
const mcpTool = str(p.ToolName);
|
|
242
324
|
if (nativeName === "call_mcp_tool" && server && mcpTool) return {
|
|
@@ -247,8 +329,10 @@ function projectToolCall(nativeName, parameters = {}) {
|
|
|
247
329
|
};
|
|
248
330
|
switch (nativeName) {
|
|
249
331
|
case "run_command": return common("bash", { command: str(p.CommandLine) ?? str(p.command) ?? "" });
|
|
250
|
-
case "
|
|
251
|
-
case "
|
|
332
|
+
case "read_file":
|
|
333
|
+
case "view_file": return common("read", { file_path: filePath(p) });
|
|
334
|
+
case "write_file":
|
|
335
|
+
case "write_to_file": return common("write", { file_path: filePath(p) });
|
|
252
336
|
case "grep_search": return common("grep", {
|
|
253
337
|
pattern: str(p.Query) ?? str(p.Pattern) ?? str(p.query) ?? "",
|
|
254
338
|
...str(p.SearchPath) ? { path: p.SearchPath } : {}
|
|
@@ -256,6 +340,23 @@ function projectToolCall(nativeName, parameters = {}) {
|
|
|
256
340
|
case "find_by_name": return common("glob", { pattern: str(p.Pattern) ?? str(p.pattern) ?? "" });
|
|
257
341
|
case "search_web": return common("webSearch", { query: str(p.query) ?? str(p.Query) ?? "" });
|
|
258
342
|
case "read_url_content": return common("webFetch", { url: str(p.Url) ?? str(p.url) ?? "" });
|
|
343
|
+
case "invoke_subagent": {
|
|
344
|
+
const subagents = Array.isArray(p.Subagents) ? p.Subagents : str(p.TypeName) ? [p] : void 0;
|
|
345
|
+
if (!subagents) break;
|
|
346
|
+
return {
|
|
347
|
+
toolName: "invoke_subagent",
|
|
348
|
+
nativeName,
|
|
349
|
+
input: {
|
|
350
|
+
...p,
|
|
351
|
+
subagents: subagents.map((a) => ({
|
|
352
|
+
agent: str(a?.TypeName),
|
|
353
|
+
role: str(a?.Role),
|
|
354
|
+
prompt: str(a?.Prompt)
|
|
355
|
+
}))
|
|
356
|
+
},
|
|
357
|
+
dynamic: false
|
|
358
|
+
};
|
|
359
|
+
}
|
|
259
360
|
}
|
|
260
361
|
const key = BY_NATIVE_NAME.get(nativeName);
|
|
261
362
|
return key ? {
|
|
@@ -272,6 +373,15 @@ function projectToolCall(nativeName, parameters = {}) {
|
|
|
272
373
|
}
|
|
273
374
|
//#endregion
|
|
274
375
|
//#region ../harness-antigravity/src/antigravity-stream.ts
|
|
376
|
+
/** A `subagent` step as the tool call it reports, each subagent by the agent it ran. */
|
|
377
|
+
const subagentInfo = (s) => ({
|
|
378
|
+
name: s.tool_name ?? "invoke_subagent",
|
|
379
|
+
parameters: { subagents: (s.subagent_info?.subagents ?? []).map((a) => ({
|
|
380
|
+
agent: a.type_name,
|
|
381
|
+
role: a.role,
|
|
382
|
+
prompt: a.initial_prompt
|
|
383
|
+
})) }
|
|
384
|
+
});
|
|
275
385
|
/** Maps the CLI's counts onto the AI SDK's usage shape, keeping the original under `raw`. */
|
|
276
386
|
function toUsage(usage) {
|
|
277
387
|
const noCache = usage?.input_tokens;
|
|
@@ -293,6 +403,18 @@ function toUsage(usage) {
|
|
|
293
403
|
...usage ? { raw: { ...usage } } : {}
|
|
294
404
|
};
|
|
295
405
|
}
|
|
406
|
+
const USAGE_KEYS = [
|
|
407
|
+
"input_tokens",
|
|
408
|
+
"output_tokens",
|
|
409
|
+
"thinking_tokens",
|
|
410
|
+
"cache_read_tokens",
|
|
411
|
+
"total_tokens"
|
|
412
|
+
];
|
|
413
|
+
const addUsage = (a, b) => {
|
|
414
|
+
const sum = { ...a };
|
|
415
|
+
for (const key of USAGE_KEYS) if (b[key] !== void 0) sum[key] = (sum[key] ?? 0) + b[key];
|
|
416
|
+
return sum;
|
|
417
|
+
};
|
|
296
418
|
const FINISH = {
|
|
297
419
|
SUCCESS: "stop",
|
|
298
420
|
ERROR: "error"
|
|
@@ -326,10 +448,15 @@ var AntigravityStreamTranslator = class {
|
|
|
326
448
|
openTools = /* @__PURE__ */ new Map();
|
|
327
449
|
pendingStep;
|
|
328
450
|
stepUsage = false;
|
|
451
|
+
/** The tokens of this turn's steps: the result's usage counts every earlier turn too. */
|
|
452
|
+
turnUsage;
|
|
329
453
|
turn;
|
|
454
|
+
/** A resumed conversation's result counts turns before this process. */
|
|
455
|
+
resumed;
|
|
330
456
|
constructor(options) {
|
|
331
457
|
this.turn = options.turn;
|
|
332
458
|
this.conversationId = options.conversationId;
|
|
459
|
+
this.resumed = options.conversationId !== void 0;
|
|
333
460
|
}
|
|
334
461
|
/** Parts for one stdout line. Lines that aren't JSON events are passed through as raw. */
|
|
335
462
|
push(line) {
|
|
@@ -417,6 +544,7 @@ var AntigravityStreamTranslator = class {
|
|
|
417
544
|
}
|
|
418
545
|
flushStep(parts, next) {
|
|
419
546
|
if (!this.pendingStep) return;
|
|
547
|
+
this.turnUsage = addUsage(this.turnUsage, this.pendingStep);
|
|
420
548
|
parts.push({
|
|
421
549
|
type: "finish-step",
|
|
422
550
|
finishReason: {
|
|
@@ -479,7 +607,10 @@ var AntigravityStreamTranslator = class {
|
|
|
479
607
|
this.flushStep(parts, "stop");
|
|
480
608
|
if (retried) this.retried = true;
|
|
481
609
|
if (!retried && !f.usage) return;
|
|
482
|
-
if (f.usage)
|
|
610
|
+
if (f.usage) {
|
|
611
|
+
this.stepUsage = true;
|
|
612
|
+
this.turnUsage = addUsage(this.turnUsage, f.usage);
|
|
613
|
+
}
|
|
483
614
|
parts.push({
|
|
484
615
|
type: "finish-step",
|
|
485
616
|
finishReason: {
|
|
@@ -509,9 +640,9 @@ var AntigravityStreamTranslator = class {
|
|
|
509
640
|
}
|
|
510
641
|
this.settleReply(parts);
|
|
511
642
|
if (s.step_type !== "user_input") this.settleFailure(parts, true);
|
|
512
|
-
if (s.step_type === "tool") {
|
|
643
|
+
if (s.step_type === "tool" || s.step_type === "subagent") {
|
|
513
644
|
this.flushStep(parts, "tool-calls");
|
|
514
|
-
const info = s.tool_info ?? {};
|
|
645
|
+
const info = s.step_type === "subagent" ? subagentInfo(s) : s.tool_info ?? {};
|
|
515
646
|
const nativeName = info.name ?? s.tool_name ?? "unknown";
|
|
516
647
|
let call = this.openTools.get(index);
|
|
517
648
|
if (!call) {
|
|
@@ -557,14 +688,17 @@ var AntigravityStreamTranslator = class {
|
|
|
557
688
|
});
|
|
558
689
|
}
|
|
559
690
|
this.closeBlocks(parts);
|
|
560
|
-
if (!this.stepUsage && r.usage)
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
691
|
+
if (!this.stepUsage && r.usage && !this.resumed) {
|
|
692
|
+
this.turnUsage = r.usage;
|
|
693
|
+
parts.push({
|
|
694
|
+
type: "finish-step",
|
|
695
|
+
finishReason: {
|
|
696
|
+
unified: "stop",
|
|
697
|
+
raw: "result"
|
|
698
|
+
},
|
|
699
|
+
usage: toUsage(r.usage)
|
|
700
|
+
});
|
|
701
|
+
}
|
|
568
702
|
const status = r.status ?? "UNKNOWN";
|
|
569
703
|
if (status !== "SUCCESS") parts.push({
|
|
570
704
|
type: "error",
|
|
@@ -577,7 +711,7 @@ var AntigravityStreamTranslator = class {
|
|
|
577
711
|
unified: FINISH[status] ?? "other",
|
|
578
712
|
raw: status
|
|
579
713
|
},
|
|
580
|
-
totalUsage: toUsage(
|
|
714
|
+
totalUsage: toUsage(this.turnUsage),
|
|
581
715
|
...r.structured_output !== void 0 ? { harnessMetadata: { antigravity: { structuredOutput: r.structured_output } } } : {}
|
|
582
716
|
});
|
|
583
717
|
}
|
|
@@ -619,6 +753,30 @@ async function tail(stream, max = 4e3) {
|
|
|
619
753
|
}
|
|
620
754
|
const canBroker = (sandbox) => "addRequestTransformations" in sandbox && typeof sandbox.addRequestTransformations === "function";
|
|
621
755
|
/**
|
|
756
|
+
* Installs one plugin, then writes its hooks where and as the CLI reads them, at the installed
|
|
757
|
+
* copy's root. Its MCP servers are the plugin's `.mcp.json` as it stands when installed.
|
|
758
|
+
*/
|
|
759
|
+
async function installPlugin(sandbox, cli, home, plugin, abortSignal) {
|
|
760
|
+
const installed = installedPluginDir(home, plugin.name);
|
|
761
|
+
const proc = await sandbox.spawn({
|
|
762
|
+
command: antigravityPluginInstall(cli, plugin.dir, installed),
|
|
763
|
+
...abortSignal ? { abortSignal } : {}
|
|
764
|
+
});
|
|
765
|
+
const [stdout, stderr] = await Promise.all([tail(proc.stdout), tail(proc.stderr)]);
|
|
766
|
+
const { exitCode } = await proc.wait();
|
|
767
|
+
if (exitCode !== 0) throw new Error(`agy plugin install ${plugin.dir} exited ${exitCode}: ${(stderr || stdout).trim()}`);
|
|
768
|
+
const hooks = await sandbox.readTextFile({
|
|
769
|
+
path: posix.join(plugin.dir, "hooks", "hooks.json"),
|
|
770
|
+
...abortSignal ? { abortSignal } : {}
|
|
771
|
+
});
|
|
772
|
+
if (hooks === null) return;
|
|
773
|
+
await sandbox.writeTextFile({
|
|
774
|
+
path: posix.join(installed, "hooks.json"),
|
|
775
|
+
content: `${JSON.stringify(antigravityHooks(plugin.name, JSON.parse(hooks), installed), null, 2)}\n`,
|
|
776
|
+
...abortSignal ? { abortSignal } : {}
|
|
777
|
+
});
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
622
780
|
* The Antigravity CLI (`agy`) as an AI SDK harness. It has no ACP mode, so each turn is one
|
|
623
781
|
* `agy -p … --output-format stream-json` process, resumed with `--conversation`, and its NDJSON
|
|
624
782
|
* is translated into harness stream parts. Only a Gemini API key authenticates it.
|
|
@@ -671,6 +829,7 @@ async function startSession(settings, options) {
|
|
|
671
829
|
modelProvider: "gemini"
|
|
672
830
|
}, null, 2)}\n`);
|
|
673
831
|
if (settings.mcpServers && Object.keys(settings.mcpServers).length > 0) await write(ANTIGRAVITY_MCP_CONFIG_FILE, `${JSON.stringify({ mcpServers: settings.mcpServers }, null, 2)}\n`);
|
|
832
|
+
for (const plugin of settings.plugins ?? []) await installPlugin(sandbox, cli, home, plugin, abortSignal);
|
|
674
833
|
const env = {
|
|
675
834
|
...settings.env,
|
|
676
835
|
[ANTIGRAVITY_CREDENTIAL_ENV]: sandboxKey,
|
|
@@ -795,6 +954,6 @@ async function startSession(settings, options) {
|
|
|
795
954
|
};
|
|
796
955
|
}
|
|
797
956
|
//#endregion
|
|
798
|
-
export {
|
|
957
|
+
export { ANTIGRAVITY_BASE_URL_ENV as C, createAntigravityRequestTransformations as D, GEMINI_API_URL as E, resolveAntigravityCredentials as O, getAntigravityBootstrap as S, GEMINI_API_KEY_HEADER as T, ANTIGRAVITY_BOOTSTRAP_DIR as _, ANTIGRAVITY_SETTINGS_FILE as a, ANTIGRAVITY_CLI_VERSION as b, toUsage as c, ANTIGRAVITY_HOOK_EVENTS as d, ANTIGRAVITY_PLUGINS_DIR as f, buildAntigravityCommand as g, installedPluginDir as h, ANTIGRAVITY_MCP_CONFIG_FILE as i, ANTIGRAVITY_BUILTIN_TOOLS as l, antigravityPluginInstall as m, ANTIGRAVITY_HOME_SKILLS_DIR as n, createAntigravity as o, antigravityHooks as p, ANTIGRAVITY_INSTRUCTIONS_FILE as r, AntigravityStreamTranslator as s, ANTIGRAVITY_HARNESS_ID as t, projectToolCall as u, ANTIGRAVITY_CLI_PATH as v, ANTIGRAVITY_CREDENTIAL_ENV as w, antigravityInstallScript as x, ANTIGRAVITY_CLI_SHA256 as y };
|
|
799
958
|
|
|
800
|
-
//# sourceMappingURL=src-
|
|
959
|
+
//# sourceMappingURL=src-DeY52Gyf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-DeY52Gyf.js","names":["isRecord"],"sources":["../../harness-antigravity/src/antigravity-auth.ts","../../harness-antigravity/src/antigravity-bootstrap.ts","../../harness-antigravity/src/antigravity-command.ts","../../harness-antigravity/src/antigravity-plugins.ts","../../harness-antigravity/src/antigravity-tools.ts","../../harness-antigravity/src/antigravity-stream.ts","../../harness-antigravity/src/antigravity-harness.ts","../../harness-antigravity/src/index.ts"],"mappings":"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"}
|
|
@@ -43,6 +43,27 @@ async function getCodexBootstrap() {
|
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
45
|
//#region ../harness-codex/src/codex-stream.ts
|
|
46
|
+
const USAGE_KEYS = [
|
|
47
|
+
"input_tokens",
|
|
48
|
+
"cached_input_tokens",
|
|
49
|
+
"cache_write_input_tokens",
|
|
50
|
+
"output_tokens",
|
|
51
|
+
"reasoning_output_tokens"
|
|
52
|
+
];
|
|
53
|
+
/**
|
|
54
|
+
* One turn's counts: the thread's running total less the one before the turn. A count that went
|
|
55
|
+
* down (a thread whose total restarted) is the turn's own.
|
|
56
|
+
*/
|
|
57
|
+
function turnUsage(total, before) {
|
|
58
|
+
const turn = {};
|
|
59
|
+
for (const key of USAGE_KEYS) {
|
|
60
|
+
const now = total[key];
|
|
61
|
+
if (now === void 0) continue;
|
|
62
|
+
const then = before?.[key] ?? 0;
|
|
63
|
+
turn[key] = now >= then ? now - then : now;
|
|
64
|
+
}
|
|
65
|
+
return turn;
|
|
66
|
+
}
|
|
46
67
|
/** Codex's counts in the AI SDK's shape. Its `output_tokens` includes the reasoning ones. */
|
|
47
68
|
function toUsage(usage) {
|
|
48
69
|
const total = usage?.input_tokens;
|
|
@@ -72,7 +93,8 @@ const CHANGE_TOOLS = {
|
|
|
72
93
|
};
|
|
73
94
|
/**
|
|
74
95
|
* Turns one `codex exec --json` process's NDJSON into harness stream parts. Codex reports a turn,
|
|
75
|
-
* not its model calls: `turn.completed` is one `finish-step` with the turn's tokens
|
|
96
|
+
* not its model calls: `turn.completed` is one `finish-step` with the turn's tokens (its running
|
|
97
|
+
* total less `threadUsage`, the total the previous turn ended on) and the
|
|
76
98
|
* `finish`. A top-level `error` before it is a call Codex retries ("Reconnecting... n/5"), so it's
|
|
77
99
|
* a failed step, not the turn's end, unless `turn.failed` follows it: Codex announces the failure
|
|
78
100
|
* that ends the turn with an `error` too, and that call wasn't retried.
|
|
@@ -88,8 +110,14 @@ var CodexStreamTranslator = class {
|
|
|
88
110
|
calls = /* @__PURE__ */ new Set();
|
|
89
111
|
/** The last top-level `error`, a retry unless the next event is `turn.failed`. */
|
|
90
112
|
pendingError;
|
|
113
|
+
/** The thread's running total before this turn, from the previous `turn.completed`. */
|
|
114
|
+
before;
|
|
115
|
+
/** The thread's running total once `turn.completed` reports it. */
|
|
116
|
+
threadUsage;
|
|
91
117
|
constructor(options) {
|
|
92
118
|
this.workDir = options.workDir;
|
|
119
|
+
this.before = options.threadUsage;
|
|
120
|
+
this.threadUsage = options.threadUsage;
|
|
93
121
|
}
|
|
94
122
|
/** Parts for one stdout line. Lines that aren't JSON events are passed through as raw. */
|
|
95
123
|
push(line) {
|
|
@@ -148,19 +176,22 @@ var CodexStreamTranslator = class {
|
|
|
148
176
|
this.start(parts);
|
|
149
177
|
this.pendingError = e.message ?? "error";
|
|
150
178
|
return;
|
|
151
|
-
case "turn.completed":
|
|
179
|
+
case "turn.completed": {
|
|
152
180
|
this.start(parts);
|
|
153
181
|
this.closeBlocks(parts);
|
|
182
|
+
const usage = e.usage ? turnUsage(e.usage, this.before) : void 0;
|
|
183
|
+
if (e.usage) this.threadUsage = e.usage;
|
|
154
184
|
parts.push({
|
|
155
185
|
type: "finish-step",
|
|
156
186
|
finishReason: {
|
|
157
187
|
unified: "stop",
|
|
158
188
|
raw: "stop"
|
|
159
189
|
},
|
|
160
|
-
usage: toUsage(
|
|
190
|
+
usage: toUsage(usage)
|
|
161
191
|
});
|
|
162
|
-
this.finish(parts, "stop",
|
|
192
|
+
this.finish(parts, "stop", usage);
|
|
163
193
|
return;
|
|
194
|
+
}
|
|
164
195
|
case "turn.failed":
|
|
165
196
|
this.start(parts);
|
|
166
197
|
this.closeBlocks(parts);
|
|
@@ -374,13 +405,32 @@ new URL(OPENAI_API_URL).hostname;
|
|
|
374
405
|
/**
|
|
375
406
|
* Codex's defaults but for what it sends besides model requests: its analytics (to
|
|
376
407
|
* `ab.chatgpt.com`), and the plugin sync (the curated list from
|
|
377
|
-
* `github.com`, the remote catalogue from `chatgpt.com`), which an eval doesn't use.
|
|
408
|
+
* `github.com`, the remote catalogue from `chatgpt.com`), which an eval doesn't use. A session
|
|
409
|
+
* given plugins turns plugins on, and with them the sync, which nothing else stops.
|
|
378
410
|
*/
|
|
379
411
|
const CODEX_QUIET_CONFIG = {
|
|
380
412
|
analytics: { enabled: false },
|
|
381
413
|
features: { plugins: false }
|
|
382
414
|
};
|
|
383
|
-
|
|
415
|
+
/**
|
|
416
|
+
* Codex's home marketplace, under the sandbox home, which lists the session's plugins. Each entry's
|
|
417
|
+
* path is relative to the home directory.
|
|
418
|
+
*/
|
|
419
|
+
const CODEX_MARKETPLACE_FILE = ".agents/plugins/marketplace.json";
|
|
420
|
+
/** The name of that marketplace, so a plugin is installed as `<plugin>@reeval`. */
|
|
421
|
+
const CODEX_PLUGIN_MARKETPLACE = "reeval";
|
|
422
|
+
const count = z.number().optional();
|
|
423
|
+
const lifecycleData = z.object({
|
|
424
|
+
threadId: z.string().optional(),
|
|
425
|
+
/** The thread's running total after its last completed turn, which the next turn's is less. */
|
|
426
|
+
usage: z.object({
|
|
427
|
+
input_tokens: count,
|
|
428
|
+
cached_input_tokens: count,
|
|
429
|
+
cache_write_input_tokens: count,
|
|
430
|
+
output_tokens: count,
|
|
431
|
+
reasoning_output_tokens: count
|
|
432
|
+
}).optional()
|
|
433
|
+
});
|
|
384
434
|
const unsupported = (what) => new HarnessCapabilityUnsupportedError({
|
|
385
435
|
message: `codex exec has no ${what}`,
|
|
386
436
|
harnessId: CODEX_HARNESS_ID
|
|
@@ -405,12 +455,17 @@ function toml(value) {
|
|
|
405
455
|
return `{ ${Object.entries(value).map(([k, v]) => `${JSON.stringify(k)} = ${toml(v)}`).join(", ")} }`;
|
|
406
456
|
}
|
|
407
457
|
/**
|
|
408
|
-
* Codex's `config.toml`: the quiet settings
|
|
409
|
-
* servers. Each top-level key is one line, tables
|
|
458
|
+
* Codex's `config.toml`: the quiet settings (plugins on when the session has some), reeval's
|
|
459
|
+
* provider as the model provider, and the MCP servers. Each top-level key is one line, tables
|
|
460
|
+
* inline, so nothing depends on section order and `codex plugin add` can append its tables.
|
|
410
461
|
*/
|
|
411
462
|
function buildCodexConfig(options) {
|
|
412
463
|
const config = {
|
|
413
464
|
...CODEX_QUIET_CONFIG,
|
|
465
|
+
...options.plugins ? { features: {
|
|
466
|
+
...CODEX_QUIET_CONFIG.features,
|
|
467
|
+
plugins: true
|
|
468
|
+
} } : {},
|
|
414
469
|
...options.effort ? { model_reasoning_effort: options.effort } : {},
|
|
415
470
|
model_provider: CODEX_PROVIDER_ID,
|
|
416
471
|
model_providers: { [CODEX_PROVIDER_ID]: {
|
|
@@ -424,6 +479,28 @@ function buildCodexConfig(options) {
|
|
|
424
479
|
};
|
|
425
480
|
return `${Object.entries(config).map(([k, v]) => `${JSON.stringify(k)} = ${toml(v)}`).join("\n")}\n`;
|
|
426
481
|
}
|
|
482
|
+
/** The home marketplace listing the plugins, each by its path relative to `home`. */
|
|
483
|
+
function buildCodexMarketplace(plugins, home) {
|
|
484
|
+
const entries = plugins.map((p) => {
|
|
485
|
+
const path = posix.relative(home, p.dir);
|
|
486
|
+
if (!path || path.startsWith("..") || posix.isAbsolute(path)) throw new Error(`Codex lists plugins in its home marketplace, so the ${p.name} plugin must be under ${home} (it's at ${p.dir})`);
|
|
487
|
+
return {
|
|
488
|
+
name: p.name,
|
|
489
|
+
source: {
|
|
490
|
+
source: "local",
|
|
491
|
+
path: `./${path}`
|
|
492
|
+
}
|
|
493
|
+
};
|
|
494
|
+
});
|
|
495
|
+
return `${JSON.stringify({
|
|
496
|
+
name: CODEX_PLUGIN_MARKETPLACE,
|
|
497
|
+
plugins: entries
|
|
498
|
+
}, null, 2)}\n`;
|
|
499
|
+
}
|
|
500
|
+
/** `codex plugin add <plugin>@reeval` for each plugin, offline from the home marketplace. */
|
|
501
|
+
function buildCodexPluginAdd(binDir, plugins) {
|
|
502
|
+
return plugins.map((p) => `PATH=${shellQuote(binDir)}:"$PATH" codex plugin add ${shellQuote(`${p.name}@${CODEX_PLUGIN_MARKETPLACE}`)} < /dev/null`).join(" && ");
|
|
503
|
+
}
|
|
427
504
|
const lines = (stream) => createInterface({
|
|
428
505
|
input: Readable.fromWeb(stream),
|
|
429
506
|
crlfDelay: Infinity
|
|
@@ -492,16 +569,31 @@ async function startSession(settings, key, options) {
|
|
|
492
569
|
stateDirectory: stateDir,
|
|
493
570
|
sessionId: options.sessionId
|
|
494
571
|
});
|
|
572
|
+
const plugins = settings.plugins ?? [];
|
|
495
573
|
await sandbox.writeTextFile({
|
|
496
574
|
path: posix.join(home, CODEX_HOME_DIR, "config.toml"),
|
|
497
575
|
content: buildCodexConfig({
|
|
498
576
|
...settings.mcpServers ? { mcpServers: settings.mcpServers } : {},
|
|
499
|
-
...settings.effort ? { effort: settings.effort } : {}
|
|
577
|
+
...settings.effort ? { effort: settings.effort } : {},
|
|
578
|
+
...plugins.length ? { plugins: true } : {}
|
|
500
579
|
}),
|
|
501
580
|
abortSignal
|
|
502
581
|
});
|
|
582
|
+
if (plugins.length) {
|
|
583
|
+
await sandbox.writeTextFile({
|
|
584
|
+
path: posix.join(home, CODEX_MARKETPLACE_FILE),
|
|
585
|
+
content: buildCodexMarketplace(plugins, home),
|
|
586
|
+
abortSignal
|
|
587
|
+
});
|
|
588
|
+
const added = await sandbox.run({
|
|
589
|
+
command: buildCodexPluginAdd(binDir, plugins),
|
|
590
|
+
abortSignal
|
|
591
|
+
});
|
|
592
|
+
if (added.exitCode !== 0) throw new Error(`codex plugin add failed (exit ${added.exitCode}): ${(added.stderr || added.stdout).trim().slice(-2e3)}`);
|
|
593
|
+
}
|
|
503
594
|
const resumed = lifecycleData.safeParse(options.resumeFrom?.data);
|
|
504
595
|
let threadId = resumed.success ? resumed.data.threadId : void 0;
|
|
596
|
+
let threadUsage = resumed.success ? resumed.data.usage : void 0;
|
|
505
597
|
const env = { [CODEX_CREDENTIAL_ENV]: sandboxKey };
|
|
506
598
|
let turns = 0;
|
|
507
599
|
let running;
|
|
@@ -510,7 +602,10 @@ async function startSession(settings, key, options) {
|
|
|
510
602
|
type: "resume-session",
|
|
511
603
|
harnessId: CODEX_HARNESS_ID,
|
|
512
604
|
specificationVersion: "harness-v1",
|
|
513
|
-
data:
|
|
605
|
+
data: {
|
|
606
|
+
...threadId ? { threadId } : {},
|
|
607
|
+
...threadId && threadUsage ? { usage: threadUsage } : {}
|
|
608
|
+
}
|
|
514
609
|
});
|
|
515
610
|
const stop = async () => {
|
|
516
611
|
ended = true;
|
|
@@ -551,7 +646,10 @@ async function startSession(settings, key, options) {
|
|
|
551
646
|
model: turn.model,
|
|
552
647
|
threadId
|
|
553
648
|
});
|
|
554
|
-
const translator = new CodexStreamTranslator({
|
|
649
|
+
const translator = new CodexStreamTranslator({
|
|
650
|
+
workDir: sessionWorkDir,
|
|
651
|
+
threadUsage
|
|
652
|
+
});
|
|
555
653
|
const emit = (parts) => {
|
|
556
654
|
for (const part of parts) turn.emit(part);
|
|
557
655
|
};
|
|
@@ -571,6 +669,7 @@ async function startSession(settings, key, options) {
|
|
|
571
669
|
try {
|
|
572
670
|
for await (const line of lines(proc.stdout)) emit(translator.push(line));
|
|
573
671
|
threadId = translator.threadId ?? threadId;
|
|
672
|
+
threadUsage = translator.threadUsage;
|
|
574
673
|
const { exitCode } = await proc.wait();
|
|
575
674
|
emit(translator.end({
|
|
576
675
|
exitCode,
|
|
@@ -599,6 +698,6 @@ async function startSession(settings, key, options) {
|
|
|
599
698
|
};
|
|
600
699
|
}
|
|
601
700
|
//#endregion
|
|
602
|
-
export {
|
|
701
|
+
export { getCodexBootstrap as C, CODEX_INSTALL_COMMAND as S, CodexStreamTranslator as _, CODEX_INSTRUCTIONS_FILE as a, CODEX_CLI_INTEGRITY as b, CODEX_PROVIDER_ID as c, buildCodexCommand as d, buildCodexConfig as f, CODEX_BUILTIN_TOOLS as g, createCodex as h, CODEX_HOME_SKILLS_DIR as i, CODEX_QUIET_CONFIG as l, buildCodexPluginAdd as m, CODEX_HARNESS_ID as n, CODEX_MARKETPLACE_FILE as o, buildCodexMarketplace as p, CODEX_HOME_DIR as r, CODEX_PLUGIN_MARKETPLACE as s, CODEX_CREDENTIAL_ENV as t, OPENAI_API_URL as u, toUsage as v, CODEX_CLI_VERSION as x, CODEX_BOOTSTRAP_DIR as y };
|
|
603
702
|
|
|
604
|
-
//# sourceMappingURL=src-
|
|
703
|
+
//# sourceMappingURL=src-Xj_BZKbq.js.map
|