@visorcraft/idlehands 4.3.0 → 4.4.1
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/dist/{acp-cli-B3uwVAGD.js → acp-cli-CVrBJF6U.js} +2 -2
- package/dist/{acp-cli-BEpWQbqb.js → acp-cli-Do_gQG1E.js} +2 -2
- package/dist/{agent-via-gateway-Ih08lAge.js → agent-via-gateway-6jGL9ZRb.js} +3 -3
- package/dist/{agent-via-gateway-DuSua_3v.js → agent-via-gateway-B7VYaDwI.js} +3 -3
- package/dist/{agent-via-gateway-DK7QU0ZB.js → agent-via-gateway-D6SBbSiq.js} +21 -21
- package/dist/{agent-via-gateway-5HMmToLM.js → agent-via-gateway-hbF-h9TM.js} +21 -21
- package/dist/{agents-8uPgUCg3.js → agents-BVYgk2uc.js} +7 -7
- package/dist/{agents.config-BY5PHIXx.js → agents.config-CKj37-g5.js} +1 -1
- package/dist/{agents.config-Cu9n1FMm.js → agents.config-CcZ8kSaj.js} +1 -1
- package/dist/{anton-C_wi0iYv.js → anton-B4KXAf54.js} +184 -6
- package/dist/{anton-Bjc-IcaK.js → anton-BNzNY6Vh.js} +184 -6
- package/dist/{anton-BaqnItPF.js → anton-C8M2UhOH.js} +184 -6
- package/dist/{anton-Bt6ydJCr.js → anton-DnEx8ryb.js} +184 -6
- package/dist/{api-key-rotation-B-FTJm5p.js → api-key-rotation-YdGMPTz0.js} +1 -1
- package/dist/{audio-preflight-jTgcbu-I.js → audio-preflight-CQPmCwiT.js} +12 -12
- package/dist/{audio-preflight-Dl1TO10w.js → audio-preflight-CcY9w5EV.js} +12 -12
- package/dist/{audio-preflight-CSSlgO89.js → audio-preflight-CdQj55ox.js} +9 -9
- package/dist/{audio-preflight-BSlR2jEq.js → audio-preflight-DdYPJah_.js} +9 -9
- package/dist/{audit-C9PrbHng.js → audit-CdwW3NUX.js} +7 -7
- package/dist/{audit-CKeZnjft.js → audit-k9xjNToB.js} +7 -7
- package/dist/{auth-choice-BoUnFAMl.js → auth-choice-BAioGgge.js} +9 -9
- package/dist/{auth-choice-D42CcQbk.js → auth-choice-CWa45O0-.js} +9 -9
- package/dist/{auth-choice-Di-agX2j.js → auth-choice-Dv5Gualg.js} +9 -9
- package/dist/{auth-choice-D12Wsf7w.js → auth-choice-uVYQA-Gd.js} +9 -9
- package/dist/{auth-choice.apply-helpers-CGcniL1T.js → auth-choice.apply-helpers-CTCJdL4X.js} +1 -1
- package/dist/{auth-choice.apply-helpers-Bj-Y-Sar.js → auth-choice.apply-helpers-CdAketGR.js} +1 -1
- package/dist/{auth-profiles-Baj5ImDJ.js → auth-profiles-02PVCKaE.js} +17 -0
- package/dist/{auth-token-BJq87X3o.js → auth-token-Bry7XspO.js} +1 -1
- package/dist/{auth-token-BQ_ECwH7.js → auth-token-Dg9vclI_.js} +1 -1
- package/dist/{banner-CAJFhe0V.js → banner-BxyoIRj1.js} +1 -1
- package/dist/{browser-cli-Ci6DpTnS.js → browser-cli-1ud7ySUv.js} +3 -3
- package/dist/{browser-cli-Brb82I5e.js → browser-cli-CkVBAsAn.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +21 -21
- package/dist/bundled/session-memory/handler.js +21 -21
- package/dist/{call-C82rD2Wn.js → call-B9uIa0hd.js} +1 -1
- package/dist/{call-BpWhjuOg.js → call-C8V5ivtz.js} +1 -1
- package/dist/{channel-options-RDfj2qi-.js → channel-options-Bo-oY1lo.js} +2 -2
- package/dist/{channel-options-QLsqu186.js → channel-options-D4Abu9ss.js} +2 -2
- package/dist/{channel-web-BvrfLtDO.js → channel-web-CUcTJTDU.js} +10 -10
- package/dist/{channel-web-DvYjLJh2.js → channel-web-aUJWpYzV.js} +10 -10
- package/dist/{channels-cli-CYqk8Loa.js → channels-cli-B3mz1uK6.js} +46 -46
- package/dist/{channels-cli-DVn5Wbfs.js → channels-cli-CxSH3i2W.js} +47 -47
- package/dist/{chrome-Do5potHV.js → chrome-CfoCzQ7O.js} +1 -1
- package/dist/{chrome-RxW7_mFf.js → chrome-DuNAHpiu.js} +1 -1
- package/dist/{chrome-_2tzVjVl.js → chrome-RZ6-DZcL.js} +10 -10
- package/dist/{chrome-VBsQfIrt.js → chrome-rWfyHiLu.js} +1 -1
- package/dist/{clawbot-cli-Qy95Qdb2.js → clawbot-cli-CYibHquq.js} +2 -2
- package/dist/{clawbot-cli-uFgYrysW.js → clawbot-cli-DisIVsMj.js} +2 -2
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-B4pRZl5k.js → cli-Bv7W1rAQ.js} +37 -37
- package/dist/{cli-DR1Zb2OI.js → cli-Lk-tSEzq.js} +38 -38
- package/dist/{command-registry-Dqwv1YG5.js → command-registry-Ct2rGje_.js} +12 -12
- package/dist/{commands-registry-CAIz7Mb4.js → commands-registry-BCKEmgO-.js} +1 -1
- package/dist/{commands-registry-CURlRZQJ.js → commands-registry-CWCNmH14.js} +1 -1
- package/dist/{commands-registry-j4vAzcF2.js → commands-registry-C_zNi-Ou.js} +1 -1
- package/dist/{commands-registry-1-Rv2-IS.js → commands-registry-DBT-IMwk.js} +1 -1
- package/dist/{completion-cli-CQ0-FJEw.js → completion-cli-BVkper4z.js} +2 -2
- package/dist/{completion-cli-CAyvr4IW.js → completion-cli-D1Y9BqD8.js} +1 -1
- package/dist/{config-cli-De18kDZ_.js → config-cli-Cunf6ZG_.js} +3 -3
- package/dist/{config-cli-D8dwxw4Z.js → config-cli-DhIGl8u2.js} +3 -3
- package/dist/{config-guard-BdsOumqh.js → config-guard-Bgh7thxy.js} +7 -7
- package/dist/{config-guard-7CCnD0lc.js → config-guard-CWaCycDU.js} +2 -2
- package/dist/{config-validation-BvKX6fPw.js → config-validation-Bvnac3cR.js} +1 -1
- package/dist/{config-validation-BgKexeQb.js → config-validation-Cs3OgfGw.js} +1 -1
- package/dist/{configure-Dsvr7YAc.js → configure-BMuZGX8O.js} +9 -9
- package/dist/{configure-D1TVK9Qv.js → configure-CjZDdguE.js} +9 -9
- package/dist/{cron-cli-DQsnGQKs.js → cron-cli-Bax20v2h.js} +3 -3
- package/dist/{cron-cli-DXZzPHDQ.js → cron-cli-DJM56JHM.js} +3 -3
- package/dist/{daemon-cli-DUg-s4LG.js → daemon-cli-Bcl3Y7NQ.js} +4 -4
- package/dist/{daemon-cli-DOG5Mivy.js → daemon-cli-D-vzzB6U.js} +4 -4
- package/dist/daemon-cli.js +17 -0
- package/dist/{deliver-CVTXl0Cv.js → deliver-BQeDhZSa.js} +3 -3
- package/dist/{deliver--kttnrER.js → deliver-C8qc5JkL.js} +3 -3
- package/dist/{deliver-UdfAQA1U.js → deliver-CaD3Q14j.js} +3 -3
- package/dist/{deliver-whAbSPLk.js → deliver-Dsgo26ZO.js} +3 -3
- package/dist/{deps-Bskg_V0q.js → deps-B7PzlVAo.js} +6 -6
- package/dist/{deps-aEUIKhtw.js → deps-Bq61L28a.js} +6 -6
- package/dist/{deps-CtU2Pokt.js → deps-BrSKLsz0.js} +6 -6
- package/dist/{plugin-sdk/deps-BBg-c9uJ.js → deps-DvFgwh2J.js} +6 -6
- package/dist/{devices-cli-aiEJxYcN.js → devices-cli-CsQqv6sS.js} +2 -2
- package/dist/{devices-cli-DKK65S9Z.js → devices-cli-rPhob90f.js} +2 -2
- package/dist/{directory-cli-CIxpmqpa.js → directory-cli-DiwMaika.js} +1 -1
- package/dist/{directory-cli-Dz9iXeut.js → directory-cli-xx6Syvau.js} +1 -1
- package/dist/{dns-cli-zksPYxgB.js → dns-cli-BQHewbRE.js} +1 -1
- package/dist/{dns-cli-DD6hWsdc.js → dns-cli-BdO35Dqj.js} +1 -1
- package/dist/{doctor-completion-C80MEGkY.js → doctor-completion-CYeuHpzs.js} +1 -1
- package/dist/{doctor-completion-BPRo3jvp.js → doctor-completion-_mAeHEgR.js} +1 -1
- package/dist/{doctor-config-flow-Ck4oCjfl.js → doctor-config-flow-DTOp7CF2.js} +5 -5
- package/dist/{doctor-config-flow-BvGvt5rT.js → doctor-config-flow-PE4yVE_b.js} +5 -5
- package/dist/{emergency-stop-C6ouCWSC.js → emergency-stop-CksdLPai.js} +21 -21
- package/dist/{emergency-stop-DFDofFHA.js → emergency-stop-Cl_1fWgA.js} +38 -38
- package/dist/{emergency-stop-taOrr160.js → emergency-stop-DkALIxNO.js} +37 -37
- package/dist/{emergency-stop-BZerYBmV.js → emergency-stop-Sq-9tUol.js} +21 -21
- package/dist/{enable-o_s6PBsC.js → enable-BTAmDMjv.js} +1 -1
- package/dist/{enable-CMXupNXl.js → enable-VKkQFfeD.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-allowlist-Co2tJSEo.js → exec-approvals-allowlist-8sJfUTLW.js} +1 -1
- package/dist/{exec-approvals-allowlist-B5d4ftdY.js → exec-approvals-allowlist-BZ4flSrM.js} +1 -1
- package/dist/{exec-approvals-cli-D6XUzs4j.js → exec-approvals-cli-DM3bIMTH.js} +5 -5
- package/dist/{exec-approvals-cli-DRoaRYPn.js → exec-approvals-cli-DQeALLeZ.js} +5 -5
- package/dist/{exec-safe-bin-runtime-policy-Ozk71zDl.js → exec-safe-bin-runtime-policy-BcZ1Ocjd.js} +2 -2
- package/dist/{exec-safe-bin-runtime-policy-DaoU9-ni.js → exec-safe-bin-runtime-policy-BrbwOxsh.js} +2 -2
- package/dist/extensionAPI.js +21 -21
- package/dist/{gateway-cli-BaZbmOxF.js → gateway-cli-BACWzti6.js} +53 -53
- package/dist/{gateway-cli-CQmvl7sG.js → gateway-cli-C-tj9UP3.js} +52 -52
- package/dist/{gateway-rpc-5PTvwEfj.js → gateway-rpc-CTDQY6yE.js} +1 -1
- package/dist/{gateway-rpc-BBFG1T-M.js → gateway-rpc-Cu66JjIW.js} +1 -1
- package/dist/{gemini-auth-D8Wg8hYo.js → gemini-auth-BsD1tapx.js} +1 -1
- package/dist/{gemini-auth-CIyaa44H.js → gemini-auth-DwwgHLvI.js} +1 -1
- package/dist/{gemini-auth-m2hi6OmF.js → gemini-auth-G-whJIrc.js} +1 -1
- package/dist/{health-j-IZ4-9x.js → health-BV8l2AT8.js} +5 -5
- package/dist/{health-DydHrawb.js → health-CErhWLEK.js} +5 -5
- package/dist/{hooks-cli-BY3Ws0Y6.js → hooks-cli-BHve1IFH.js} +38 -38
- package/dist/{hooks-cli-uldIB0Gg.js → hooks-cli-CdUSadGW.js} +39 -39
- package/dist/{image-COw__ACq.js → image-4HTajysw.js} +3 -3
- package/dist/{image-DSDEbSiO.js → image-B-32uaKt.js} +4 -4
- package/dist/{image-Wzw26f_Y.js → image-BhFGtZNf.js} +4 -4
- package/dist/{image-BAsQlUqT.js → image-JsjsSvBI.js} +3 -3
- package/dist/index.js +45 -45
- package/dist/{lifecycle-core-DxExA9d3.js → lifecycle-core-WMoTalaq.js} +1 -1
- package/dist/{lifecycle-core-B6UoqYTJ.js → lifecycle-core-dd6-ntqw.js} +1 -1
- package/dist/llm-slug-generator.js +21 -21
- package/dist/{login-CFr5vJmR.js → login-B8EuUm6R.js} +2 -2
- package/dist/{login-BaXwiEpr.js → login-BjVdIGIS.js} +1 -1
- package/dist/{login-Cnp8mhAl.js → login-DOM8Tu1s.js} +2 -2
- package/dist/{login-CfUhrgWT.js → login-DR5g-xWe.js} +1 -1
- package/dist/{login-qr-DBMsUxgL.js → login-qr-BInnno1O.js} +1 -1
- package/dist/{login-qr-1DsqAd7J.js → login-qr-BQX3hP6m.js} +1 -1
- package/dist/{login-qr-CFFFOjOl.js → login-qr-DS_9MrMo.js} +2 -2
- package/dist/{login-qr-DgMNOMI6.js → login-qr-KexvdOYq.js} +2 -2
- package/dist/{logs-cli-u0WmYxx7.js → logs-cli-DAtuiQLS.js} +3 -3
- package/dist/{logs-cli-4VQ9Iwiw.js → logs-cli-NBTxZMvY.js} +3 -3
- package/dist/{manager-DYOflU5p.js → manager-B9Q7jxHQ.js} +2 -2
- package/dist/{manager-BE_76jWB.js → manager-CaFxh6F8.js} +2 -2
- package/dist/{manager-KsO7drKq.js → manager-Dt6uRdqZ.js} +2 -2
- package/dist/{manager-BMAFgXyU.js → manager-DvKWYP8R.js} +2 -2
- package/dist/{memory-cli-CUGwnVIY.js → memory-cli-CVzU_J-C.js} +3 -3
- package/dist/{memory-cli-C_qWFNVQ.js → memory-cli-CpcWRUgi.js} +3 -3
- package/dist/{model-CZMeWx-m.js → model-CJrOUPDY.js} +2 -2
- package/dist/{model-C-icShH2.js → model-CMWITe66.js} +2 -2
- package/dist/{model-catalog-DYWymzg_.js → model-catalog-DhBQWADs.js} +3 -3
- package/dist/{model-catalog-D9no0CH2.js → model-catalog-DqObBjh3.js} +3 -3
- package/dist/{model-picker-D_yngXMe.js → model-picker-6G4lLHXK.js} +3 -3
- package/dist/{model-picker-BkXoTOiA.js → model-picker-CDFxd1-T.js} +3 -3
- package/dist/{model-selection-D3Jhcvg-.js → model-selection-BCfCq125.js} +17 -0
- package/dist/{model-selection-0dGxYGp8.js → model-selection-BzMkl275.js} +17 -0
- package/dist/{model-selection-1MMYqY6M.js → model-selection-D5g8tXIY.js} +17 -0
- package/dist/{models-2nPE3Det.js → models-CbuRFugK.js} +13 -13
- package/dist/{models-cli-BuM5uWMi.js → models-cli-BXFbPL8U.js} +43 -43
- package/dist/{models-cli-BFU-p0aB.js → models-cli-DzuBGnWF.js} +42 -42
- package/dist/{models-config-fDNEH4C5.js → models-config-BXEhHPnv.js} +1 -1
- package/dist/{models-config-C5A1wDWh.js → models-config-CKIP_s6b.js} +1 -1
- package/dist/{node-cli-BYzjxmUY.js → node-cli-5iXUaDT9.js} +9 -9
- package/dist/{node-cli-CgeiQGbv.js → node-cli-DSUpeTtk.js} +9 -9
- package/dist/{nodes-cli-DaE0WsOH.js → nodes-cli-CL3fJ2QY.js} +6 -6
- package/dist/{nodes-cli-kNOtp0U0.js → nodes-cli-mEb-ibX8.js} +6 -6
- package/dist/{npm-resolution-Dl636Mf7.js → npm-resolution-BJWOQq_k.js} +2 -2
- package/dist/{npm-resolution-CjsmlVY6.js → npm-resolution-BO02ImLM.js} +2 -2
- package/dist/{onboard-BgwjeUOg.js → onboard-BafFvA78.js} +5 -5
- package/dist/{onboard-BX33pzc1.js → onboard-DFxvWMZm.js} +5 -5
- package/dist/{onboard-channels-DtU2SSQ4.js → onboard-channels-52aYyjLX.js} +7 -7
- package/dist/{onboard-channels-Ber55DUK.js → onboard-channels-Dy6UoU78.js} +7 -7
- package/dist/{onboard-custom-BjUK6yP5.js → onboard-custom-Cm5FRAaS.js} +4 -4
- package/dist/{onboard-custom-DUbzMMu7.js → onboard-custom-wmVFQd-a.js} +4 -4
- package/dist/{onboard-helpers-mzy38DiC.js → onboard-helpers-Blxjx6R6.js} +2 -2
- package/dist/{onboard-helpers-DWivfzcc.js → onboard-helpers-_Uk9P3FF.js} +2 -2
- package/dist/{onboard-remote-LCBHijVE.js → onboard-remote-DJBcK1iW.js} +1 -1
- package/dist/{onboard-remote-BMo2C9Ae.js → onboard-remote-TrgT7-d-.js} +1 -1
- package/dist/{onboard-skills-jFY9gaOu.js → onboard-skills-0BoJ3j2d.js} +2 -2
- package/dist/{onboard-skills-BrqATIYg.js → onboard-skills-B4JdKnJU.js} +2 -2
- package/dist/{onboarding-DH5sux_u.js → onboarding-BK5EH5Rn.js} +11 -11
- package/dist/{onboarding-KoIrYKty.js → onboarding-CqPkGVMr.js} +11 -11
- package/dist/{onboarding.finalize-D3EFovPs.js → onboarding.finalize-B58yHwhW.js} +42 -42
- package/dist/{onboarding.finalize-KbhTSwlL.js → onboarding.finalize-BMRt8s2a.js} +44 -44
- package/dist/{onboarding.gateway-config-Btu2gzgr.js → onboarding.gateway-config-B4ylwYxq.js} +4 -4
- package/dist/{onboarding.gateway-config-w3C9Yj3B.js → onboarding.gateway-config-BLI76ix9.js} +4 -4
- package/dist/{openai-model-default-DTIibBxa.js → openai-model-default-BbYlCp0u.js} +2 -2
- package/dist/{openai-model-default-7J6cw1rA.js → openai-model-default-DE2XxWXP.js} +2 -2
- package/dist/{outbound-DsfWfy-l.js → outbound-DCyvX0Zh.js} +1 -1
- package/dist/{outbound-B8NhUGIW.js → outbound-DQ6Daf8g.js} +1 -1
- package/dist/{outbound-BNh6PpQb.js → outbound-Dq9yoBDJ.js} +1 -1
- package/dist/{outbound-DPTxwchq.js → outbound-ND4beS15.js} +1 -1
- package/dist/{pairing-cli-C3wlSGJS.js → pairing-cli-DIao23uO.js} +3 -3
- package/dist/{pairing-cli-jwx6hMsM.js → pairing-cli-xrJSpYpo.js} +3 -3
- package/dist/{pairing-labels-ChQJzbS9.js → pairing-labels-CLdV_RlM.js} +1 -1
- package/dist/{pairing-labels-D7xcHkxi.js → pairing-labels-DWdqhnXA.js} +1 -1
- package/dist/{pairing-store-CPpEEQJO.js → pairing-store-5ej7ieCd.js} +1 -1
- package/dist/{pairing-store-DvJNQFGP.js → pairing-store-tS6wAx5_.js} +1 -1
- package/dist/{pi-embedded-CK-jSu4T.js → pi-embedded-DQpyqnA8.js} +69 -54
- package/dist/{pi-embedded-PsA_MErm.js → pi-embedded-Dn4hfyZ7.js} +74 -59
- package/dist/{pi-embedded-helpers-BcqMIiDW.js → pi-embedded-helpers-CuaLvLFa.js} +1 -1
- package/dist/{pi-embedded-helpers-CyTpDKo5.js → pi-embedded-helpers-DBkYJKhY.js} +7 -7
- package/dist/{pi-embedded-helpers-BCsfqpDt.js → pi-embedded-helpers-DYnSUWtr.js} +1 -1
- package/dist/{pi-embedded-helpers-Ct2rwp-P.js → pi-embedded-helpers-i5nHSWCq.js} +7 -7
- package/dist/{pi-model-discovery-Bb__OY-j.js → pi-model-discovery-BMRRgVlz.js} +1 -1
- package/dist/{pi-model-discovery-Dic-M5qw.js → pi-model-discovery-BwF_em5R.js} +1 -1
- package/dist/{pi-model-discovery-BIP3RjXl.js → pi-model-discovery-CjpIIOVJ.js} +1 -1
- package/dist/{pi-model-discovery-DM-7bLbH.js → pi-model-discovery-DSGYVXZ_.js} +1 -1
- package/dist/{pi-tools.policy-DfITIKZj.js → pi-tools.policy-BYXViqHJ.js} +3 -3
- package/dist/{pi-tools.policy-J6sS49Ac.js → pi-tools.policy-DfRwnwaU.js} +3 -3
- package/dist/{plugin-auto-enable-dpNitoNd.js → plugin-auto-enable-Bqk5Vib2.js} +1 -1
- package/dist/{plugin-auto-enable-7DUxMy6A.js → plugin-auto-enable-DyNeRjEL.js} +1 -1
- package/dist/{plugin-registry-BVOVWX9b.js → plugin-registry-BIerZvsa.js} +2 -2
- package/dist/{plugin-registry-CgGd-8sR.js → plugin-registry-C_B5M53b.js} +2 -2
- package/dist/plugin-sdk/{agent-via-gateway-xY1dCxZI.js → agent-via-gateway-VUne26H_.js} +21 -21
- package/dist/plugin-sdk/{anton-H8HwVBdI.js → anton-Dc7P4F4R.js} +184 -6
- package/dist/plugin-sdk/{api-key-rotation-D6nK54XH.js → api-key-rotation-BUIqfXnG.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-CKqqN8ty.js → audio-preflight-URcQAxhH.js} +9 -9
- package/dist/plugin-sdk/{channel-web-BQhRtgZf.js → channel-web-ineTToqd.js} +9 -9
- package/dist/plugin-sdk/{chrome-Cb9FgiCI.js → chrome-CPVAOm0b.js} +1 -1
- package/dist/plugin-sdk/commands/anton.d.ts +30 -0
- package/dist/plugin-sdk/{commands-registry-B5m2EsHz.js → commands-registry-DQCQbF8W.js} +1 -1
- package/dist/plugin-sdk/config/types.anton.d.ts +15 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +8 -0
- package/dist/plugin-sdk/{config-CEgzwk0J.js → config-04otsq-i.js} +17 -0
- package/dist/plugin-sdk/{deliver-BNfMF0Nb.js → deliver-DfopPK17.js} +3 -3
- package/dist/{deps-DZro-zkP.js → plugin-sdk/deps-D39VXTRX.js} +6 -6
- package/dist/plugin-sdk/{emergency-stop-DbWWdmqc.js → emergency-stop-CY_hnUVd.js} +21 -21
- package/dist/plugin-sdk/{image-C_1tftC8.js → image-B-gM6mxU.js} +3 -3
- package/dist/plugin-sdk/index.js +25 -25
- package/dist/plugin-sdk/{login-DIwO5D5Y.js → login-Bpe2s20d.js} +2 -2
- package/dist/plugin-sdk/{login-qr-CpCAJuvT.js → login-qr-C9ndp3tg.js} +2 -2
- package/dist/plugin-sdk/{manager-Dox9r7og.js → manager-CBBlTnh3.js} +2 -2
- package/dist/plugin-sdk/{outbound-Dx_q6JAI.js → outbound-D6g6crrp.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-B68z4sHq.js → pi-embedded-helpers-D48bhP-9.js} +7 -7
- package/dist/plugin-sdk/{pi-model-discovery-Dt6899be.js → pi-model-discovery-DCBTaRzI.js} +1 -1
- package/dist/plugin-sdk/{pw-ai-Dk2PTZzq.js → pw-ai-YGZXROMl.js} +2 -2
- package/dist/plugin-sdk/{replies-ZovJp-3F.js → replies-DXdzWcMN.js} +1 -1
- package/dist/plugin-sdk/{reply-DrJONWCw.js → reply-RRDB8Hr7.js} +69 -54
- package/dist/plugin-sdk/{runner-CZz1tOIR.js → runner-C2xaoYAR.js} +4 -4
- package/dist/plugin-sdk/{send-0EVlThEG.js → send-BgTqMJLI.js} +1 -1
- package/dist/plugin-sdk/{send-Cb5NIN8s.js → send-CFkuTXvq.js} +1 -1
- package/dist/plugin-sdk/{send-B26cNPqY.js → send-CKQ89Lq9.js} +1 -1
- package/dist/plugin-sdk/{send-BCjVQhp3.js → send-CRhcec-_.js} +1 -1
- package/dist/plugin-sdk/{send-CHUGIZs9.js → send-dmYAtUT5.js} +1 -1
- package/dist/plugin-sdk/{session-DdJj6_DW.js → session-OpE6SSAs.js} +1 -1
- package/dist/plugin-sdk/{sessions-DNx9c2O2.js → sessions-CG-k8Acv.js} +1 -1
- package/dist/plugin-sdk/{skill-commands-DorIK8kn.js → skill-commands-BHBpmuX9.js} +2 -2
- package/dist/plugin-sdk/{skills-Dh_Cf2PA.js → skills-33Wy6_4b.js} +1 -1
- package/dist/plugin-sdk/{web-BknW_M58.js → web-Bxlapohg.js} +25 -25
- package/dist/plugin-sdk/{whatsapp-actions-B5g-Rywy.js → whatsapp-actions-Cp6vXAA8.js} +2 -2
- package/dist/{plugins-cli-3FP5PzJN.js → plugins-cli-BM3apx3Z.js} +40 -40
- package/dist/{plugins-cli-yBP6Z5vo.js → plugins-cli-CD34Zewk.js} +39 -39
- package/dist/{program-context-DNGnEncX.js → program-context-Bl64JzxU.js} +41 -41
- package/dist/{program-Dx-tntwb.js → program-hlrBo5Ce.js} +45 -45
- package/dist/{prompt-select-styled-BEfacfzJ.js → prompt-select-styled-BAYe1OqG.js} +14 -14
- package/dist/{prompt-select-styled-CZ5tVK0d.js → prompt-select-styled-f40iKGOp.js} +14 -14
- package/dist/{provider-auth-helpers-9KbSl6wC.js → provider-auth-helpers-51CT-Q-Q.js} +4 -4
- package/dist/{provider-auth-helpers-BjhDlZPy.js → provider-auth-helpers-BIbY8IHT.js} +4 -4
- package/dist/{push-apns-DKEkqP3i.js → push-apns-DGYpjf9d.js} +1 -1
- package/dist/{push-apns-DQ2zaRjy.js → push-apns-fdjNrWTc.js} +1 -1
- package/dist/{pw-ai-CowTfhOG.js → pw-ai-5GRjEp4v.js} +2 -2
- package/dist/{pw-ai--4qz5XUT.js → pw-ai-7Rl1yyuE.js} +2 -2
- package/dist/{pw-ai-7i9eGnLh.js → pw-ai-BWOU9Pu8.js} +2 -2
- package/dist/{pw-ai-yrIWfcWX.js → pw-ai-CX1qce0j.js} +2 -2
- package/dist/{qr-cli-BfDlL102.js → qr-cli-4S9V14XL.js} +1 -1
- package/dist/{qr-cli-CSt5ihwG.js → qr-cli-DW6okXOt.js} +1 -1
- package/dist/{redact-snapshot-K5EFkIbD.js → redact-snapshot-BE1mpVLb.js} +1 -1
- package/dist/{redact-snapshot-BbEVKv0k.js → redact-snapshot-Dz__XA1n.js} +1 -1
- package/dist/{register.agent-CHq9Q2Z8.js → register.agent-DM9zMka2.js} +52 -52
- package/dist/{register.agent-DwAHrjFg.js → register.agent-QXLalAr7.js} +54 -54
- package/dist/{register.configure-CN1cT56c.js → register.configure-C6yu81ji.js} +54 -54
- package/dist/{register.configure-1UTeGz1q.js → register.configure-DYbl1myH.js} +55 -55
- package/dist/{register.maintenance-D9bJRVwH.js → register.maintenance-B5s6APwg.js} +46 -46
- package/dist/{register.maintenance-DZedYvuG.js → register.maintenance-BmKpPkIS.js} +44 -44
- package/dist/{register.message-D1Ik7PHN.js → register.message-DVc5XVAt.js} +38 -38
- package/dist/{register.message-D6xDTLi2.js → register.message-DonrN0cy.js} +39 -39
- package/dist/{register.onboard-CvfydQEo.js → register.onboard-BE31mSHh.js} +6 -6
- package/dist/{register.onboard-CrxqSKpx.js → register.onboard-lHuw_CER.js} +6 -6
- package/dist/{register.orchestrator-anton-NJ6Ar5xd.js → register.orchestrator-anton-CVNuKUWS.js} +5 -3
- package/dist/{register.orchestrator-anton-CT6MrNmP.js → register.orchestrator-anton-Dgbr0yM1.js} +5 -3
- package/dist/{register.setup-DlCW2QXX.js → register.setup-BudIJsJc.js} +6 -6
- package/dist/{register.setup-TO__GMMH.js → register.setup-DNlkNa0X.js} +6 -6
- package/dist/{register.status-health-sessions-B3DKk0EE.js → register.status-health-sessions-DuMxtV8K.js} +40 -40
- package/dist/{register.status-health-sessions-7SBSa4mh.js → register.status-health-sessions-nhSLVQw7.js} +42 -42
- package/dist/{register.subclis-BW98Fvgs.js → register.subclis-Bnq9Bi9p.js} +30 -30
- package/dist/{replies-CqYEEgmA.js → replies-B7WhS1HA.js} +1 -1
- package/dist/{replies-hSFVxL4h.js → replies-Bt95GAew.js} +1 -1
- package/dist/{replies-DSfpze17.js → replies-CmTF3tWU.js} +1 -1
- package/dist/{replies-6_GxvQYe.js → replies-uBXwI7WM.js} +1 -1
- package/dist/{reply-FU1dcyha.js → reply-DUE8raq5.js} +82 -67
- package/dist/{rpc-DVTovtI3.js → rpc-CMNAfygK.js} +1 -1
- package/dist/{rpc-Cf9OK5Yk.js → rpc-CMsWQyaU.js} +1 -1
- package/dist/{run-main-CdkhxjJp.js → run-main-D7FJSKGA.js} +56 -56
- package/dist/{runner-DzszLzI4.js → runner-B4uTxrBK.js} +4 -4
- package/dist/{runner-BzNdfqDz.js → runner-Cy6GWdoL.js} +4 -4
- package/dist/{runner-Bv_BA3vd.js → runner-DG_xf5vi.js} +4 -4
- package/dist/{runner-D5gs_QqR.js → runner-SFVMFRne.js} +4 -4
- package/dist/{runtime-XmXLaHNk.js → runtime-DkR7DBA9.js} +1 -1
- package/dist/{runtime-BsH_IMcC.js → runtime-jH9YW2Qo.js} +1 -1
- package/dist/{sandbox-DcUw5h3p.js → sandbox-DK406zbE.js} +4 -4
- package/dist/{sandbox-BQ8eMycK.js → sandbox-R6BNCb8U.js} +4 -4
- package/dist/{sandbox-cli-DGvJ7Eeq.js → sandbox-cli-B10NHfQH.js} +5 -5
- package/dist/{sandbox-cli-wADF8Onf.js → sandbox-cli-CSgvIBt_.js} +5 -5
- package/dist/{secrets-cli-CR3h2TBy.js → secrets-cli-Cokf0tpp.js} +4 -4
- package/dist/{secrets-cli-C4UBK_LV.js → secrets-cli-D5Bfk0F1.js} +4 -4
- package/dist/{security-cli-an5u-5Jb.js → security-cli-Cv8B8hpq.js} +11 -11
- package/dist/{security-cli-B9_LV2po.js → security-cli-DUiv53se.js} +11 -11
- package/dist/{send-JuOIPWeK.js → send-B2Zs7YK0.js} +1 -1
- package/dist/{send-DQiw_nGD.js → send-Bn6Z3ngH.js} +1 -1
- package/dist/{send-BeIZJuy4.js → send-BskvGZej.js} +1 -1
- package/dist/{send-DmLC7aEF.js → send-C4z2HAbE.js} +1 -1
- package/dist/{send-D8lazhp4.js → send-C6jLYg5Y.js} +1 -1
- package/dist/{send-Cn2wvd3W.js → send-CIr3q6Nq.js} +1 -1
- package/dist/{send-C4v0Leny.js → send-CcZKZfWf.js} +1 -1
- package/dist/{send-D4bMycQu.js → send-Ce_lAnef.js} +1 -1
- package/dist/{send-DwdHiC7_.js → send-CkbYe0pP.js} +1 -1
- package/dist/{send-DLZt92Da.js → send-Cro3WBC4.js} +1 -1
- package/dist/{send-Dd4xdAHf.js → send-CtNJPR6u.js} +1 -1
- package/dist/{send-m4lQkQcY.js → send-CuXAB8LA.js} +1 -1
- package/dist/{send-PtDa6Pf-.js → send-D2eoLkFV.js} +2 -2
- package/dist/{send-YcXS-UZJ.js → send-Df8cWzZN.js} +1 -1
- package/dist/{send-C1hvd3bt.js → send-DvjrOg1z.js} +1 -1
- package/dist/{send-DuwdEkLw.js → send-WkuVWNS6.js} +1 -1
- package/dist/{send--lzpNy4f.js → send-gOQxsu3X.js} +2 -2
- package/dist/{send-CCiDIuX4.js → send-lf9ld4To.js} +1 -1
- package/dist/{send-J10cQN4A.js → send-p_pDuU90.js} +1 -1
- package/dist/{send-Dfa3sn6r.js → send-rp8dzIy4.js} +1 -1
- package/dist/{server-D6MltJIF.js → server-CTZVIJFZ.js} +5 -5
- package/dist/{server-Bur-9ZhI.js → server-DbXkrhq1.js} +5 -5
- package/dist/{server-context-DI0W_H7R.js → server-context-CSswoHXT.js} +5 -5
- package/dist/{server-context-ti-OcXbo.js → server-context-DhxP9N-Q.js} +5 -5
- package/dist/{server-lifecycle-B5PlrlbG.js → server-lifecycle-D0GRRDF1.js} +2 -2
- package/dist/{server-lifecycle-YVb_AavG.js → server-lifecycle-DMOhxIYC.js} +2 -2
- package/dist/{server-node-events-D67Czp49.js → server-node-events-CLq5E5Db.js} +38 -38
- package/dist/{server-node-events-Ds9lI_7v.js → server-node-events-DhFplzWZ.js} +39 -39
- package/dist/{session-F_YDS_1V.js → session-BbwP0jac.js} +1 -1
- package/dist/{session-DRN3VnUX.js → session-BsR-Pdqr.js} +1 -1
- package/dist/{session-utils-D-GIguA5.js → session-utils-CXqvJ-FS.js} +4 -4
- package/dist/{sessions-CMPLp2Qo.js → sessions-BX54QvHf.js} +3 -3
- package/dist/{sessions-BoqJKVEs.js → sessions-C1PbgPkg.js} +1 -1
- package/dist/{sessions-3ioSeOA1.js → sessions-DA2oWrdb.js} +1 -1
- package/dist/{sessions-BtPXimXQ.js → sessions-DUD0izIj.js} +1 -1
- package/dist/{sessions-B7gFq6Ia.js → sessions-DantNdwl.js} +1 -1
- package/dist/{shared-j17RyGsM.js → shared-DuAKpPuv.js} +1 -1
- package/dist/{shared-CpDPo3hJ.js → shared-MZ5J3-zw.js} +1 -1
- package/dist/{skill-commands-BFzmZAfo.js → skill-commands-23SP2OFQ.js} +1 -1
- package/dist/{skill-commands-Ck3flWX7.js → skill-commands-AySApC-2.js} +2 -2
- package/dist/{skill-commands-BUc0PzZG.js → skill-commands-DVNT_9nw.js} +1 -1
- package/dist/{skill-commands-CHpRgsOw.js → skill-commands-rG2AXHaN.js} +2 -2
- package/dist/{skills-CnAPWfca.js → skills-B3wf7ZnA.js} +1 -1
- package/dist/{skills-nQcWk6Z6.js → skills-BRqZp2IE.js} +1 -1
- package/dist/{skills-cli-BhKGhjbO.js → skills-cli-CMAkGI9B.js} +1 -1
- package/dist/{skills-cli-CTNGo2bb.js → skills-cli-DwBtXdc8.js} +1 -1
- package/dist/{status-C80KAfkh.js → status-CsNXMHzO.js} +9 -9
- package/dist/{status-Dej3rSxN.js → status-CyzO0TGy.js} +10 -10
- package/dist/{subagent-registry-dBsIIN3w.js → subagent-registry-DW1LK5cG.js} +82 -67
- package/dist/{system-cli-Dd-gBN0t.js → system-cli-BVicV25o.js} +3 -3
- package/dist/{system-cli-DyVZ5udc.js → system-cli-zDsDLfs_.js} +3 -3
- package/dist/{system-run-approval-context-CISBXlNw.js → system-run-approval-context-C5Al8NNk.js} +1 -1
- package/dist/{system-run-approval-context-DkX3cprL.js → system-run-approval-context-Cyc2bPHL.js} +1 -1
- package/dist/{system-run-command-BdQDLhIq.js → system-run-command-DlUQw1Ts.js} +1 -1
- package/dist/{system-run-command-qJdgzxLp.js → system-run-command-P86Xjnl8.js} +1 -1
- package/dist/{tui-Bne3YNiw.js → tui-CgvwVqsn.js} +4 -4
- package/dist/{tui-cli-BWnIeq57.js → tui-cli-DhfifWta.js} +9 -9
- package/dist/{tui-cli-D0Z-rcUe.js → tui-cli-DvGkY-0r.js} +9 -9
- package/dist/{tui-2u2ZDhHV.js → tui-vyXW-Y-w.js} +4 -4
- package/dist/{update-cli-C56OuDKi.js → update-cli-CtsLbpQq.js} +48 -48
- package/dist/{update-cli-Da33HUfk.js → update-cli-DEMtHXm1.js} +46 -46
- package/dist/{update-runner-ba7IRoZC.js → update-runner-DpD5VBHi.js} +1 -1
- package/dist/{update-runner-BNnvswc6.js → update-runner-ybEXKv6M.js} +1 -1
- package/dist/{web-6k8rkBnj.js → web-C-13ua3w.js} +40 -40
- package/dist/{web-PGsByQEq.js → web-CI1Ye0j8.js} +41 -41
- package/dist/{web-CLdGEolQ.js → web-Da5eWC4p.js} +26 -26
- package/dist/{web--lehtsgF.js → web-SvfucU2_.js} +26 -26
- package/dist/{webhooks-cli-2N03q0iY.js → webhooks-cli-Dwaws-Cr.js} +1 -1
- package/dist/{webhooks-cli-B1Q17vgO.js → webhooks-cli-yxfejvro.js} +1 -1
- package/dist/{whatsapp-actions-B6ywlSWe.js → whatsapp-actions-BLJFRb_Y.js} +2 -2
- package/dist/{whatsapp-actions-SxRgcoE4.js → whatsapp-actions-CYf59nMi.js} +2 -2
- package/dist/{whatsapp-actions-DbPcN6JQ.js → whatsapp-actions-C_BWc4tJ.js} +2 -2
- package/dist/{whatsapp-actions-Cms8wQM1.js → whatsapp-actions-jkbTRdcs.js} +2 -2
- package/dist/{with-timeout-DEdycYxq.js → with-timeout-DCVS-tFj.js} +3 -3
- package/dist/{with-timeout-B-p7asBh.js → with-timeout-qsZTfZ5k.js} +3 -3
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "./paths-BYNVLNi_.js";
|
|
2
2
|
import { t as CONFIG_DIR } from "./utils-CTFLl_ji.js";
|
|
3
|
+
import { o as normalizeThinkLevel } from "./thinking-z4_linel.js";
|
|
3
4
|
import fs from "node:fs/promises";
|
|
4
5
|
import path from "node:path";
|
|
5
6
|
import { promisify } from "node:util";
|
|
@@ -321,9 +322,146 @@ function buildImplementationRetryPrompt(task, planFilePath, opts) {
|
|
|
321
322
|
"If you only provide analysis/diff text without edit/write tool calls, this attempt fails."
|
|
322
323
|
].join("\n");
|
|
323
324
|
}
|
|
325
|
+
const CODEBASE_CONTEXT_FILENAME = "CODEBASE_CONTEXT.md";
|
|
326
|
+
function buildCodebaseAnalysisPrompt(workspaceDir, outputFile) {
|
|
327
|
+
return `You are analyzing a codebase to create a context document for other agents.
|
|
328
|
+
|
|
329
|
+
## YOUR JOB
|
|
330
|
+
Create a comprehensive codebase context file that other agents can use to understand
|
|
331
|
+
the project without re-reading the same files repeatedly.
|
|
332
|
+
|
|
333
|
+
## OUTPUT
|
|
334
|
+
Write to: ${outputFile}
|
|
335
|
+
|
|
336
|
+
## WHAT TO INCLUDE
|
|
337
|
+
1. **Project Type & Framework** - Examine package.json, composer.json, Cargo.toml, etc.
|
|
338
|
+
2. **Directory Structure** - Key folders only (src/, app/, tests/, etc.)
|
|
339
|
+
3. **Testing Patterns** - Examine 2-3 existing test files to understand conventions:
|
|
340
|
+
- Test file naming and location
|
|
341
|
+
- Common imports and setup
|
|
342
|
+
- Assertion patterns
|
|
343
|
+
- How to run tests
|
|
344
|
+
4. **Code Patterns** - Common patterns used in the codebase
|
|
345
|
+
5. **Key Files Reference** - Map controllers/modules to their test files
|
|
346
|
+
6. **API Routes** (if applicable) - Summary of endpoints
|
|
347
|
+
|
|
348
|
+
## HOW TO DO IT
|
|
349
|
+
1. Use exec to explore: \`find . -type f -name "*.php" | head -30\` (adjust extension as needed)
|
|
350
|
+
2. Read 2-3 representative test files to understand patterns
|
|
351
|
+
3. Read the main routes/config file
|
|
352
|
+
4. Synthesize into a clean markdown document
|
|
353
|
+
|
|
354
|
+
## CONSTRAINTS
|
|
355
|
+
- Keep output under 1500 lines
|
|
356
|
+
- Focus on PATTERNS, not exhaustive file listings
|
|
357
|
+
- Include actual code snippets for test patterns (they help other agents write consistent tests)
|
|
358
|
+
- Do NOT include node_modules, vendor, or other dependency directories
|
|
359
|
+
|
|
360
|
+
After writing the file, return: {"status":"complete","filename":"${outputFile}"}`;
|
|
361
|
+
}
|
|
362
|
+
function buildDiscoveryPromptWithContext(task, taskFile, planFilePath, codebaseContext) {
|
|
363
|
+
return `You are a coding assistant running discovery for a task orchestrator.
|
|
364
|
+
|
|
365
|
+
${codebaseContext ? `## CODEBASE CONTEXT (pre-analyzed)
|
|
366
|
+
The following context was pre-computed to save you time. Use it instead of re-reading files.
|
|
367
|
+
|
|
368
|
+
${codebaseContext}
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
` : ""}## YOUR JOB
|
|
373
|
+
Analyze the codebase and write a detailed implementation plan to a file.
|
|
374
|
+
You will NOT implement anything yourself — a separate agent will do that using your plan.
|
|
375
|
+
|
|
376
|
+
## TASK
|
|
377
|
+
From task file: ${taskFile}
|
|
378
|
+
Task: ${task}
|
|
379
|
+
|
|
380
|
+
## WHAT YOU MUST DO
|
|
381
|
+
|
|
382
|
+
${codebaseContext ? "1. Use the context above — only read additional files if the context is missing specific information you need." : "1. Use the read tool to examine relevant source files, configs, tests, and docs."}
|
|
383
|
+
2. Understand what currently exists and what needs to change.
|
|
384
|
+
3. Use the write tool to create the plan file at: ${planFilePath}
|
|
385
|
+
|
|
386
|
+
The plan file MUST contain:
|
|
387
|
+
- The task description
|
|
388
|
+
- What currently exists (files you read, current behavior)
|
|
389
|
+
- What specifically needs to change and why
|
|
390
|
+
- Step-by-step implementation instructions (specific enough that another agent can follow them)
|
|
391
|
+
- Which files to modify or create, with the exact changes needed
|
|
392
|
+
- How to verify the changes work (test commands, expected output)
|
|
393
|
+
|
|
394
|
+
4. After writing the plan file, return ONLY this JSON:
|
|
395
|
+
{"status":"incomplete","filename":"${planFilePath}"}
|
|
396
|
+
|
|
397
|
+
If you are CERTAIN the task is already complete (you verified with tools), return:
|
|
398
|
+
{"status":"complete","filename":""}
|
|
399
|
+
|
|
400
|
+
## IMPORTANT
|
|
401
|
+
- You MUST use tools (read, exec, write). Do not skip straight to returning JSON.
|
|
402
|
+
- Do not modify any source files other than the plan file above.
|
|
403
|
+
- The quality of your plan directly determines whether the task succeeds.`;
|
|
404
|
+
}
|
|
405
|
+
async function runCodebaseAnalysis(args) {
|
|
406
|
+
const contextFile = path.join(args.planDir, CODEBASE_CONTEXT_FILENAME);
|
|
407
|
+
await ensurePlanDir(args.planDir);
|
|
408
|
+
const startTime = Date.now();
|
|
409
|
+
await args.notify({ phase: "codebase_analysis_start" });
|
|
410
|
+
const sessionId = `anton-codebase-analysis-${Date.now()}`;
|
|
411
|
+
try {
|
|
412
|
+
await runAgentTask({
|
|
413
|
+
message: buildCodebaseAnalysisPrompt(args.workspaceDir, contextFile),
|
|
414
|
+
sessionId,
|
|
415
|
+
timeout: args.timeout,
|
|
416
|
+
agent: args.agent,
|
|
417
|
+
to: args.to,
|
|
418
|
+
runtime: args.runtime,
|
|
419
|
+
deps: args.deps,
|
|
420
|
+
workspaceDir: args.workspaceDir
|
|
421
|
+
});
|
|
422
|
+
try {
|
|
423
|
+
const stat = await fs.stat(contextFile);
|
|
424
|
+
if (stat.isFile() && stat.size > 100) {
|
|
425
|
+
const context = await fs.readFile(contextFile, "utf8");
|
|
426
|
+
const durationMs = Date.now() - startTime;
|
|
427
|
+
await args.notify({
|
|
428
|
+
phase: "codebase_analysis_complete",
|
|
429
|
+
contextFile,
|
|
430
|
+
durationMs
|
|
431
|
+
});
|
|
432
|
+
return {
|
|
433
|
+
success: true,
|
|
434
|
+
contextFile,
|
|
435
|
+
context
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
} catch {}
|
|
439
|
+
const error = "Codebase analysis did not produce a valid context file";
|
|
440
|
+
await args.notify({
|
|
441
|
+
phase: "codebase_analysis_failed",
|
|
442
|
+
error
|
|
443
|
+
});
|
|
444
|
+
return {
|
|
445
|
+
success: false,
|
|
446
|
+
error
|
|
447
|
+
};
|
|
448
|
+
} catch (err) {
|
|
449
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
450
|
+
await args.notify({
|
|
451
|
+
phase: "codebase_analysis_failed",
|
|
452
|
+
error
|
|
453
|
+
});
|
|
454
|
+
return {
|
|
455
|
+
success: false,
|
|
456
|
+
error
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
}
|
|
324
460
|
function resolveAntonExecutionConfig(params) {
|
|
325
461
|
const antonCfg = params.config ?? {};
|
|
326
462
|
const preflightCfg = antonCfg.preflight ?? {};
|
|
463
|
+
const thinkingCfg = antonCfg.thinking ?? {};
|
|
464
|
+
const preflightThinkingCfg = thinkingCfg.preflight ?? {};
|
|
327
465
|
const requestedMode = params.modeOverride ?? antonCfg.mode ?? "direct";
|
|
328
466
|
const mode = requestedMode === "preflight" && preflightCfg.enabled === false ? "direct" : requestedMode;
|
|
329
467
|
const taskTimeoutSec = antonCfg.taskTimeoutSec ?? 1200;
|
|
@@ -333,7 +471,11 @@ function resolveAntonExecutionConfig(params) {
|
|
|
333
471
|
taskTimeoutSec,
|
|
334
472
|
discoveryTimeoutSec: antonCfg.discoveryTimeoutSec ?? preflightCfg.discoveryTimeoutSec ?? taskTimeoutSec,
|
|
335
473
|
reviewTimeoutSec: antonCfg.reviewTimeoutSec ?? preflightCfg.reviewTimeoutSec ?? taskTimeoutSec,
|
|
336
|
-
preflightMaxRetries: antonCfg.preflightMaxRetries ?? preflightCfg.maxRetries ?? 2
|
|
474
|
+
preflightMaxRetries: antonCfg.preflightMaxRetries ?? preflightCfg.maxRetries ?? 2,
|
|
475
|
+
directThinkLevel: thinkingCfg.direct,
|
|
476
|
+
preflightPhase1ThinkLevel: preflightThinkingCfg.phase1,
|
|
477
|
+
preflightPhase2ThinkLevel: preflightThinkingCfg.phase2,
|
|
478
|
+
codebaseSnapshot: preflightCfg.codebaseSnapshot ?? true
|
|
337
479
|
};
|
|
338
480
|
}
|
|
339
481
|
function formatDuration(ms) {
|
|
@@ -346,6 +488,9 @@ function formatDuration(ms) {
|
|
|
346
488
|
}
|
|
347
489
|
function formatProgressMessage(event) {
|
|
348
490
|
switch (event.phase) {
|
|
491
|
+
case "codebase_analysis_start": return "🔬 **Analyzing codebase** — building context for faster discovery...";
|
|
492
|
+
case "codebase_analysis_complete": return `📚 Codebase context ready (\`${path.basename(event.contextFile)}\`, ${formatDuration(event.durationMs)})`;
|
|
493
|
+
case "codebase_analysis_failed": return `⚠️ Codebase analysis failed: ${event.error}\n└ Falling back to per-task discovery`;
|
|
349
494
|
case "start": return `🤚 **Anton activated**\n📄 Task file: \`${path.basename(event.taskFile)}\`\n📋 ${event.totalTasks} task${event.totalTasks === 1 ? "" : "s"} pending`;
|
|
350
495
|
case "task_start": return `\n🔪 **Task ${event.index}/${event.total}**: ${event.task}`;
|
|
351
496
|
case "discovery_start": return `🔎 Discovery: analyzing codebase for task ${event.index}/${event.total}...`;
|
|
@@ -393,20 +538,21 @@ async function antonStop(runtime) {
|
|
|
393
538
|
/** Load Anton config from the IdleHands config file. */
|
|
394
539
|
async function loadAntonConfig() {
|
|
395
540
|
try {
|
|
396
|
-
const { loadConfig } = await import("./model-selection-
|
|
541
|
+
const { loadConfig } = await import("./model-selection-D5g8tXIY.js").then((n) => n.I);
|
|
397
542
|
return loadConfig().anton ?? {};
|
|
398
543
|
} catch {
|
|
399
544
|
return {};
|
|
400
545
|
}
|
|
401
546
|
}
|
|
402
547
|
async function runAgentTask(args) {
|
|
403
|
-
const { agentCliCommand } = await import("./agent-via-gateway-
|
|
548
|
+
const { agentCliCommand } = await import("./agent-via-gateway-hbF-h9TM.js");
|
|
404
549
|
const extraSystemPrompt = args.workspaceDir ? `Your working directory is: ${args.workspaceDir}\nAll file paths are relative to this directory. Use this as your cwd for all operations.` : void 0;
|
|
405
550
|
const result = await agentCliCommand({
|
|
406
551
|
message: args.message,
|
|
407
552
|
agent: args.agent,
|
|
408
553
|
to: args.to,
|
|
409
554
|
sessionId: args.sessionId,
|
|
555
|
+
thinking: args.thinking,
|
|
410
556
|
timeout: args.timeout,
|
|
411
557
|
json: true,
|
|
412
558
|
deliver: false,
|
|
@@ -571,9 +717,10 @@ async function runDiscoveryPhase(args) {
|
|
|
571
717
|
await hardCleanRepo(discoveryRepoCwd);
|
|
572
718
|
await ensureRepoCleanOrThrow(discoveryRepoCwd);
|
|
573
719
|
const firstPass = await runAgentTask({
|
|
574
|
-
message: buildDiscoveryPrompt(formatTaskForPrompt(args.task), args.taskFile, planFile),
|
|
720
|
+
message: args.codebaseContext ? buildDiscoveryPromptWithContext(formatTaskForPrompt(args.task), args.taskFile, planFile, args.codebaseContext) : buildDiscoveryPrompt(formatTaskForPrompt(args.task), args.taskFile, planFile),
|
|
575
721
|
sessionId,
|
|
576
722
|
timeout: args.timeout,
|
|
723
|
+
thinking: args.thinking,
|
|
577
724
|
agent: args.agent,
|
|
578
725
|
to: args.to,
|
|
579
726
|
runtime: args.runtime,
|
|
@@ -645,6 +792,7 @@ async function runDiscoveryPhase(args) {
|
|
|
645
792
|
message: buildDiscoveryRepairPrompt(formatTaskForPrompt(args.task), args.taskFile, declaredPlanFile),
|
|
646
793
|
sessionId: repairSessionId,
|
|
647
794
|
timeout: args.timeout,
|
|
795
|
+
thinking: args.thinking,
|
|
648
796
|
agent: args.agent,
|
|
649
797
|
to: args.to,
|
|
650
798
|
runtime: args.runtime,
|
|
@@ -747,6 +895,7 @@ async function runReviewPhase(args) {
|
|
|
747
895
|
message: buildReviewPrompt(args.planFile),
|
|
748
896
|
sessionId,
|
|
749
897
|
timeout: args.timeout,
|
|
898
|
+
thinking: args.thinking,
|
|
750
899
|
agent: args.agent,
|
|
751
900
|
to: args.to,
|
|
752
901
|
runtime: args.runtime,
|
|
@@ -812,14 +961,20 @@ async function runAnton(args) {
|
|
|
812
961
|
config: antonCfg,
|
|
813
962
|
modeOverride: args.mode
|
|
814
963
|
});
|
|
964
|
+
const cliThinkingOverride = normalizeThinkLevel(args.thinking);
|
|
965
|
+
if (args.thinking && !cliThinkingOverride) throw new Error("Invalid --thinking level. Use one of: off, minimal, low, medium, high, xhigh.");
|
|
815
966
|
const mode = execution.mode;
|
|
816
967
|
const requirementsReview = execution.requirementsReview;
|
|
817
968
|
const taskTimeout = execution.taskTimeoutSec;
|
|
818
969
|
const discoveryTimeout = execution.discoveryTimeoutSec;
|
|
819
970
|
const reviewTimeout = execution.reviewTimeoutSec;
|
|
820
971
|
const preflightMaxRetries = execution.preflightMaxRetries;
|
|
972
|
+
const directThinkLevel = cliThinkingOverride ?? execution.directThinkLevel;
|
|
973
|
+
const preflightPhase1ThinkLevel = cliThinkingOverride ?? execution.preflightPhase1ThinkLevel;
|
|
974
|
+
const preflightPhase2ThinkLevel = cliThinkingOverride ?? execution.preflightPhase2ThinkLevel;
|
|
975
|
+
const codebaseSnapshot = execution.codebaseSnapshot;
|
|
821
976
|
const planDir = antonCfg.planDir ? path.resolve(antonCfg.planDir) : path.resolve(path.dirname(filePath), ".agents", "tasks");
|
|
822
|
-
const { loadConfig } = await import("./model-selection-
|
|
977
|
+
const { loadConfig } = await import("./model-selection-D5g8tXIY.js").then((n) => n.I);
|
|
823
978
|
const cfg = loadConfig();
|
|
824
979
|
const defaultTimeout = String(Number.isFinite(args.timeoutSec) && (args.timeoutSec ?? 0) > 0 ? args.timeoutSec : cfg.agents?.defaults?.timeoutSeconds ?? taskTimeout);
|
|
825
980
|
const repoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
@@ -844,7 +999,24 @@ async function runAnton(args) {
|
|
|
844
999
|
args.runtime.log(`[Anton] Mode: ${mode}${mode === "preflight" ? requirementsReview ? " (with review)" : " (discovery → implementation)" : ""}`);
|
|
845
1000
|
let completed = 0;
|
|
846
1001
|
let skipped = 0;
|
|
1002
|
+
let codebaseContext;
|
|
847
1003
|
try {
|
|
1004
|
+
if (mode === "preflight" && codebaseSnapshot) {
|
|
1005
|
+
const analysisResult = await runCodebaseAnalysis({
|
|
1006
|
+
workspaceDir: repoCwd,
|
|
1007
|
+
planDir,
|
|
1008
|
+
timeout: String(discoveryTimeout),
|
|
1009
|
+
agent: args.agent,
|
|
1010
|
+
to: args.to,
|
|
1011
|
+
runtime: args.runtime,
|
|
1012
|
+
deps: args.deps,
|
|
1013
|
+
notify
|
|
1014
|
+
});
|
|
1015
|
+
if (analysisResult.success && analysisResult.context) {
|
|
1016
|
+
codebaseContext = analysisResult.context;
|
|
1017
|
+
args.runtime.log(`[Anton] Codebase context loaded (${analysisResult.context.length} chars)`);
|
|
1018
|
+
} else args.runtime.log("[Anton] Codebase analysis skipped or failed, continuing without context");
|
|
1019
|
+
}
|
|
848
1020
|
for (let i = 0; i < pending.length; i++) {
|
|
849
1021
|
if (await shouldStop()) {
|
|
850
1022
|
args.runtime.log("Anton stop acknowledged.");
|
|
@@ -895,13 +1067,15 @@ async function runAnton(args) {
|
|
|
895
1067
|
taskFile: filePath,
|
|
896
1068
|
planDir,
|
|
897
1069
|
timeout: String(discoveryTimeout),
|
|
1070
|
+
thinking: preflightPhase1ThinkLevel,
|
|
898
1071
|
maxRetries: preflightMaxRetries,
|
|
899
1072
|
agent: args.agent,
|
|
900
1073
|
to: args.to,
|
|
901
1074
|
runtime: args.runtime,
|
|
902
1075
|
deps: args.deps,
|
|
903
1076
|
notify,
|
|
904
|
-
workspaceDir: args.workspaceDir
|
|
1077
|
+
workspaceDir: args.workspaceDir,
|
|
1078
|
+
codebaseContext
|
|
905
1079
|
});
|
|
906
1080
|
if (discoveryResult.status === "complete") {
|
|
907
1081
|
await notify({
|
|
@@ -938,6 +1112,7 @@ async function runAnton(args) {
|
|
|
938
1112
|
total: pending.length,
|
|
939
1113
|
planFile,
|
|
940
1114
|
timeout: String(reviewTimeout),
|
|
1115
|
+
thinking: preflightPhase1ThinkLevel,
|
|
941
1116
|
agent: args.agent,
|
|
942
1117
|
to: args.to,
|
|
943
1118
|
runtime: args.runtime,
|
|
@@ -964,6 +1139,7 @@ async function runAnton(args) {
|
|
|
964
1139
|
sessionId: implSessionId
|
|
965
1140
|
});
|
|
966
1141
|
const implPrompt = planFile ? buildImplementationPrompt(taskPromptText, planFile, { skipTests }) : buildDirectTaskPrompt(taskPromptText, { skipTests });
|
|
1142
|
+
const implementationThinkLevel = mode === "preflight" ? preflightPhase2ThinkLevel : directThinkLevel;
|
|
967
1143
|
const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
968
1144
|
const taskFileRel = path.relative(gitCwd, filePath).replace(/\\/g, "/");
|
|
969
1145
|
const changeIgnores = taskFileRel.startsWith("..") ? [] : [taskFileRel];
|
|
@@ -973,6 +1149,7 @@ async function runAnton(args) {
|
|
|
973
1149
|
message: implPrompt,
|
|
974
1150
|
sessionId: implSessionId,
|
|
975
1151
|
timeout: defaultTimeout,
|
|
1152
|
+
thinking: implementationThinkLevel,
|
|
976
1153
|
agent: args.agent,
|
|
977
1154
|
to: args.to,
|
|
978
1155
|
runtime: args.runtime,
|
|
@@ -999,6 +1176,7 @@ async function runAnton(args) {
|
|
|
999
1176
|
message: buildImplementationRetryPrompt(taskPromptText, planFile ?? "", { skipTests }),
|
|
1000
1177
|
sessionId: retrySessionId,
|
|
1001
1178
|
timeout: defaultTimeout,
|
|
1179
|
+
thinking: implementationThinkLevel,
|
|
1002
1180
|
agent: args.agent,
|
|
1003
1181
|
to: args.to,
|
|
1004
1182
|
runtime: args.runtime,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { R as CONFIG_DIR } from "./entry.js";
|
|
3
|
+
import { s as normalizeThinkLevel } from "./thinking-CI7EnPCW.js";
|
|
3
4
|
import { execFile } from "node:child_process";
|
|
4
5
|
import path from "node:path";
|
|
5
6
|
import { promisify } from "node:util";
|
|
@@ -328,9 +329,146 @@ function buildImplementationRetryPrompt(task, planFilePath, opts) {
|
|
|
328
329
|
"If you only provide analysis/diff text without edit/write tool calls, this attempt fails."
|
|
329
330
|
].join("\n");
|
|
330
331
|
}
|
|
332
|
+
const CODEBASE_CONTEXT_FILENAME = "CODEBASE_CONTEXT.md";
|
|
333
|
+
function buildCodebaseAnalysisPrompt(workspaceDir, outputFile) {
|
|
334
|
+
return `You are analyzing a codebase to create a context document for other agents.
|
|
335
|
+
|
|
336
|
+
## YOUR JOB
|
|
337
|
+
Create a comprehensive codebase context file that other agents can use to understand
|
|
338
|
+
the project without re-reading the same files repeatedly.
|
|
339
|
+
|
|
340
|
+
## OUTPUT
|
|
341
|
+
Write to: ${outputFile}
|
|
342
|
+
|
|
343
|
+
## WHAT TO INCLUDE
|
|
344
|
+
1. **Project Type & Framework** - Examine package.json, composer.json, Cargo.toml, etc.
|
|
345
|
+
2. **Directory Structure** - Key folders only (src/, app/, tests/, etc.)
|
|
346
|
+
3. **Testing Patterns** - Examine 2-3 existing test files to understand conventions:
|
|
347
|
+
- Test file naming and location
|
|
348
|
+
- Common imports and setup
|
|
349
|
+
- Assertion patterns
|
|
350
|
+
- How to run tests
|
|
351
|
+
4. **Code Patterns** - Common patterns used in the codebase
|
|
352
|
+
5. **Key Files Reference** - Map controllers/modules to their test files
|
|
353
|
+
6. **API Routes** (if applicable) - Summary of endpoints
|
|
354
|
+
|
|
355
|
+
## HOW TO DO IT
|
|
356
|
+
1. Use exec to explore: \`find . -type f -name "*.php" | head -30\` (adjust extension as needed)
|
|
357
|
+
2. Read 2-3 representative test files to understand patterns
|
|
358
|
+
3. Read the main routes/config file
|
|
359
|
+
4. Synthesize into a clean markdown document
|
|
360
|
+
|
|
361
|
+
## CONSTRAINTS
|
|
362
|
+
- Keep output under 1500 lines
|
|
363
|
+
- Focus on PATTERNS, not exhaustive file listings
|
|
364
|
+
- Include actual code snippets for test patterns (they help other agents write consistent tests)
|
|
365
|
+
- Do NOT include node_modules, vendor, or other dependency directories
|
|
366
|
+
|
|
367
|
+
After writing the file, return: {"status":"complete","filename":"${outputFile}"}`;
|
|
368
|
+
}
|
|
369
|
+
function buildDiscoveryPromptWithContext(task, taskFile, planFilePath, codebaseContext) {
|
|
370
|
+
return `You are a coding assistant running discovery for a task orchestrator.
|
|
371
|
+
|
|
372
|
+
${codebaseContext ? `## CODEBASE CONTEXT (pre-analyzed)
|
|
373
|
+
The following context was pre-computed to save you time. Use it instead of re-reading files.
|
|
374
|
+
|
|
375
|
+
${codebaseContext}
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
` : ""}## YOUR JOB
|
|
380
|
+
Analyze the codebase and write a detailed implementation plan to a file.
|
|
381
|
+
You will NOT implement anything yourself — a separate agent will do that using your plan.
|
|
382
|
+
|
|
383
|
+
## TASK
|
|
384
|
+
From task file: ${taskFile}
|
|
385
|
+
Task: ${task}
|
|
386
|
+
|
|
387
|
+
## WHAT YOU MUST DO
|
|
388
|
+
|
|
389
|
+
${codebaseContext ? "1. Use the context above — only read additional files if the context is missing specific information you need." : "1. Use the read tool to examine relevant source files, configs, tests, and docs."}
|
|
390
|
+
2. Understand what currently exists and what needs to change.
|
|
391
|
+
3. Use the write tool to create the plan file at: ${planFilePath}
|
|
392
|
+
|
|
393
|
+
The plan file MUST contain:
|
|
394
|
+
- The task description
|
|
395
|
+
- What currently exists (files you read, current behavior)
|
|
396
|
+
- What specifically needs to change and why
|
|
397
|
+
- Step-by-step implementation instructions (specific enough that another agent can follow them)
|
|
398
|
+
- Which files to modify or create, with the exact changes needed
|
|
399
|
+
- How to verify the changes work (test commands, expected output)
|
|
400
|
+
|
|
401
|
+
4. After writing the plan file, return ONLY this JSON:
|
|
402
|
+
{"status":"incomplete","filename":"${planFilePath}"}
|
|
403
|
+
|
|
404
|
+
If you are CERTAIN the task is already complete (you verified with tools), return:
|
|
405
|
+
{"status":"complete","filename":""}
|
|
406
|
+
|
|
407
|
+
## IMPORTANT
|
|
408
|
+
- You MUST use tools (read, exec, write). Do not skip straight to returning JSON.
|
|
409
|
+
- Do not modify any source files other than the plan file above.
|
|
410
|
+
- The quality of your plan directly determines whether the task succeeds.`;
|
|
411
|
+
}
|
|
412
|
+
async function runCodebaseAnalysis(args) {
|
|
413
|
+
const contextFile = path.join(args.planDir, CODEBASE_CONTEXT_FILENAME);
|
|
414
|
+
await ensurePlanDir(args.planDir);
|
|
415
|
+
const startTime = Date.now();
|
|
416
|
+
await args.notify({ phase: "codebase_analysis_start" });
|
|
417
|
+
const sessionId = `anton-codebase-analysis-${Date.now()}`;
|
|
418
|
+
try {
|
|
419
|
+
await runAgentTask({
|
|
420
|
+
message: buildCodebaseAnalysisPrompt(args.workspaceDir, contextFile),
|
|
421
|
+
sessionId,
|
|
422
|
+
timeout: args.timeout,
|
|
423
|
+
agent: args.agent,
|
|
424
|
+
to: args.to,
|
|
425
|
+
runtime: args.runtime,
|
|
426
|
+
deps: args.deps,
|
|
427
|
+
workspaceDir: args.workspaceDir
|
|
428
|
+
});
|
|
429
|
+
try {
|
|
430
|
+
const stat = await fs.stat(contextFile);
|
|
431
|
+
if (stat.isFile() && stat.size > 100) {
|
|
432
|
+
const context = await fs.readFile(contextFile, "utf8");
|
|
433
|
+
const durationMs = Date.now() - startTime;
|
|
434
|
+
await args.notify({
|
|
435
|
+
phase: "codebase_analysis_complete",
|
|
436
|
+
contextFile,
|
|
437
|
+
durationMs
|
|
438
|
+
});
|
|
439
|
+
return {
|
|
440
|
+
success: true,
|
|
441
|
+
contextFile,
|
|
442
|
+
context
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
} catch {}
|
|
446
|
+
const error = "Codebase analysis did not produce a valid context file";
|
|
447
|
+
await args.notify({
|
|
448
|
+
phase: "codebase_analysis_failed",
|
|
449
|
+
error
|
|
450
|
+
});
|
|
451
|
+
return {
|
|
452
|
+
success: false,
|
|
453
|
+
error
|
|
454
|
+
};
|
|
455
|
+
} catch (err) {
|
|
456
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
457
|
+
await args.notify({
|
|
458
|
+
phase: "codebase_analysis_failed",
|
|
459
|
+
error
|
|
460
|
+
});
|
|
461
|
+
return {
|
|
462
|
+
success: false,
|
|
463
|
+
error
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
}
|
|
331
467
|
function resolveAntonExecutionConfig(params) {
|
|
332
468
|
const antonCfg = params.config ?? {};
|
|
333
469
|
const preflightCfg = antonCfg.preflight ?? {};
|
|
470
|
+
const thinkingCfg = antonCfg.thinking ?? {};
|
|
471
|
+
const preflightThinkingCfg = thinkingCfg.preflight ?? {};
|
|
334
472
|
const requestedMode = params.modeOverride ?? antonCfg.mode ?? "direct";
|
|
335
473
|
const mode = requestedMode === "preflight" && preflightCfg.enabled === false ? "direct" : requestedMode;
|
|
336
474
|
const taskTimeoutSec = antonCfg.taskTimeoutSec ?? 1200;
|
|
@@ -340,7 +478,11 @@ function resolveAntonExecutionConfig(params) {
|
|
|
340
478
|
taskTimeoutSec,
|
|
341
479
|
discoveryTimeoutSec: antonCfg.discoveryTimeoutSec ?? preflightCfg.discoveryTimeoutSec ?? taskTimeoutSec,
|
|
342
480
|
reviewTimeoutSec: antonCfg.reviewTimeoutSec ?? preflightCfg.reviewTimeoutSec ?? taskTimeoutSec,
|
|
343
|
-
preflightMaxRetries: antonCfg.preflightMaxRetries ?? preflightCfg.maxRetries ?? 2
|
|
481
|
+
preflightMaxRetries: antonCfg.preflightMaxRetries ?? preflightCfg.maxRetries ?? 2,
|
|
482
|
+
directThinkLevel: thinkingCfg.direct,
|
|
483
|
+
preflightPhase1ThinkLevel: preflightThinkingCfg.phase1,
|
|
484
|
+
preflightPhase2ThinkLevel: preflightThinkingCfg.phase2,
|
|
485
|
+
codebaseSnapshot: preflightCfg.codebaseSnapshot ?? true
|
|
344
486
|
};
|
|
345
487
|
}
|
|
346
488
|
function formatDuration(ms) {
|
|
@@ -353,6 +495,9 @@ function formatDuration(ms) {
|
|
|
353
495
|
}
|
|
354
496
|
function formatProgressMessage(event) {
|
|
355
497
|
switch (event.phase) {
|
|
498
|
+
case "codebase_analysis_start": return "🔬 **Analyzing codebase** — building context for faster discovery...";
|
|
499
|
+
case "codebase_analysis_complete": return `📚 Codebase context ready (\`${path.basename(event.contextFile)}\`, ${formatDuration(event.durationMs)})`;
|
|
500
|
+
case "codebase_analysis_failed": return `⚠️ Codebase analysis failed: ${event.error}\n└ Falling back to per-task discovery`;
|
|
356
501
|
case "start": return `🤚 **Anton activated**\n📄 Task file: \`${path.basename(event.taskFile)}\`\n📋 ${event.totalTasks} task${event.totalTasks === 1 ? "" : "s"} pending`;
|
|
357
502
|
case "task_start": return `\n🔪 **Task ${event.index}/${event.total}**: ${event.task}`;
|
|
358
503
|
case "discovery_start": return `🔎 Discovery: analyzing codebase for task ${event.index}/${event.total}...`;
|
|
@@ -400,20 +545,21 @@ async function antonStop(runtime) {
|
|
|
400
545
|
/** Load Anton config from the IdleHands config file. */
|
|
401
546
|
async function loadAntonConfig() {
|
|
402
547
|
try {
|
|
403
|
-
const { loadConfig } = await import("./auth-profiles-
|
|
548
|
+
const { loadConfig } = await import("./auth-profiles-02PVCKaE.js").then((n) => n.D);
|
|
404
549
|
return loadConfig().anton ?? {};
|
|
405
550
|
} catch {
|
|
406
551
|
return {};
|
|
407
552
|
}
|
|
408
553
|
}
|
|
409
554
|
async function runAgentTask(args) {
|
|
410
|
-
const { agentCliCommand } = await import("./agent-via-gateway-
|
|
555
|
+
const { agentCliCommand } = await import("./agent-via-gateway-6jGL9ZRb.js").then((n) => n.n);
|
|
411
556
|
const extraSystemPrompt = args.workspaceDir ? `Your working directory is: ${args.workspaceDir}\nAll file paths are relative to this directory. Use this as your cwd for all operations.` : void 0;
|
|
412
557
|
const result = await agentCliCommand({
|
|
413
558
|
message: args.message,
|
|
414
559
|
agent: args.agent,
|
|
415
560
|
to: args.to,
|
|
416
561
|
sessionId: args.sessionId,
|
|
562
|
+
thinking: args.thinking,
|
|
417
563
|
timeout: args.timeout,
|
|
418
564
|
json: true,
|
|
419
565
|
deliver: false,
|
|
@@ -578,9 +724,10 @@ async function runDiscoveryPhase(args) {
|
|
|
578
724
|
await hardCleanRepo(discoveryRepoCwd);
|
|
579
725
|
await ensureRepoCleanOrThrow(discoveryRepoCwd);
|
|
580
726
|
const firstPass = await runAgentTask({
|
|
581
|
-
message: buildDiscoveryPrompt(formatTaskForPrompt(args.task), args.taskFile, planFile),
|
|
727
|
+
message: args.codebaseContext ? buildDiscoveryPromptWithContext(formatTaskForPrompt(args.task), args.taskFile, planFile, args.codebaseContext) : buildDiscoveryPrompt(formatTaskForPrompt(args.task), args.taskFile, planFile),
|
|
582
728
|
sessionId,
|
|
583
729
|
timeout: args.timeout,
|
|
730
|
+
thinking: args.thinking,
|
|
584
731
|
agent: args.agent,
|
|
585
732
|
to: args.to,
|
|
586
733
|
runtime: args.runtime,
|
|
@@ -652,6 +799,7 @@ async function runDiscoveryPhase(args) {
|
|
|
652
799
|
message: buildDiscoveryRepairPrompt(formatTaskForPrompt(args.task), args.taskFile, declaredPlanFile),
|
|
653
800
|
sessionId: repairSessionId,
|
|
654
801
|
timeout: args.timeout,
|
|
802
|
+
thinking: args.thinking,
|
|
655
803
|
agent: args.agent,
|
|
656
804
|
to: args.to,
|
|
657
805
|
runtime: args.runtime,
|
|
@@ -754,6 +902,7 @@ async function runReviewPhase(args) {
|
|
|
754
902
|
message: buildReviewPrompt(args.planFile),
|
|
755
903
|
sessionId,
|
|
756
904
|
timeout: args.timeout,
|
|
905
|
+
thinking: args.thinking,
|
|
757
906
|
agent: args.agent,
|
|
758
907
|
to: args.to,
|
|
759
908
|
runtime: args.runtime,
|
|
@@ -819,14 +968,20 @@ async function runAnton(args) {
|
|
|
819
968
|
config: antonCfg,
|
|
820
969
|
modeOverride: args.mode
|
|
821
970
|
});
|
|
971
|
+
const cliThinkingOverride = normalizeThinkLevel(args.thinking);
|
|
972
|
+
if (args.thinking && !cliThinkingOverride) throw new Error("Invalid --thinking level. Use one of: off, minimal, low, medium, high, xhigh.");
|
|
822
973
|
const mode = execution.mode;
|
|
823
974
|
const requirementsReview = execution.requirementsReview;
|
|
824
975
|
const taskTimeout = execution.taskTimeoutSec;
|
|
825
976
|
const discoveryTimeout = execution.discoveryTimeoutSec;
|
|
826
977
|
const reviewTimeout = execution.reviewTimeoutSec;
|
|
827
978
|
const preflightMaxRetries = execution.preflightMaxRetries;
|
|
979
|
+
const directThinkLevel = cliThinkingOverride ?? execution.directThinkLevel;
|
|
980
|
+
const preflightPhase1ThinkLevel = cliThinkingOverride ?? execution.preflightPhase1ThinkLevel;
|
|
981
|
+
const preflightPhase2ThinkLevel = cliThinkingOverride ?? execution.preflightPhase2ThinkLevel;
|
|
982
|
+
const codebaseSnapshot = execution.codebaseSnapshot;
|
|
828
983
|
const planDir = antonCfg.planDir ? path.resolve(antonCfg.planDir) : path.resolve(path.dirname(filePath), ".agents", "tasks");
|
|
829
|
-
const { loadConfig } = await import("./auth-profiles-
|
|
984
|
+
const { loadConfig } = await import("./auth-profiles-02PVCKaE.js").then((n) => n.D);
|
|
830
985
|
const cfg = loadConfig();
|
|
831
986
|
const defaultTimeout = String(Number.isFinite(args.timeoutSec) && (args.timeoutSec ?? 0) > 0 ? args.timeoutSec : cfg.agents?.defaults?.timeoutSeconds ?? taskTimeout);
|
|
832
987
|
const repoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
@@ -851,7 +1006,24 @@ async function runAnton(args) {
|
|
|
851
1006
|
args.runtime.log(`[Anton] Mode: ${mode}${mode === "preflight" ? requirementsReview ? " (with review)" : " (discovery → implementation)" : ""}`);
|
|
852
1007
|
let completed = 0;
|
|
853
1008
|
let skipped = 0;
|
|
1009
|
+
let codebaseContext;
|
|
854
1010
|
try {
|
|
1011
|
+
if (mode === "preflight" && codebaseSnapshot) {
|
|
1012
|
+
const analysisResult = await runCodebaseAnalysis({
|
|
1013
|
+
workspaceDir: repoCwd,
|
|
1014
|
+
planDir,
|
|
1015
|
+
timeout: String(discoveryTimeout),
|
|
1016
|
+
agent: args.agent,
|
|
1017
|
+
to: args.to,
|
|
1018
|
+
runtime: args.runtime,
|
|
1019
|
+
deps: args.deps,
|
|
1020
|
+
notify
|
|
1021
|
+
});
|
|
1022
|
+
if (analysisResult.success && analysisResult.context) {
|
|
1023
|
+
codebaseContext = analysisResult.context;
|
|
1024
|
+
args.runtime.log(`[Anton] Codebase context loaded (${analysisResult.context.length} chars)`);
|
|
1025
|
+
} else args.runtime.log("[Anton] Codebase analysis skipped or failed, continuing without context");
|
|
1026
|
+
}
|
|
855
1027
|
for (let i = 0; i < pending.length; i++) {
|
|
856
1028
|
if (await shouldStop()) {
|
|
857
1029
|
args.runtime.log("Anton stop acknowledged.");
|
|
@@ -902,13 +1074,15 @@ async function runAnton(args) {
|
|
|
902
1074
|
taskFile: filePath,
|
|
903
1075
|
planDir,
|
|
904
1076
|
timeout: String(discoveryTimeout),
|
|
1077
|
+
thinking: preflightPhase1ThinkLevel,
|
|
905
1078
|
maxRetries: preflightMaxRetries,
|
|
906
1079
|
agent: args.agent,
|
|
907
1080
|
to: args.to,
|
|
908
1081
|
runtime: args.runtime,
|
|
909
1082
|
deps: args.deps,
|
|
910
1083
|
notify,
|
|
911
|
-
workspaceDir: args.workspaceDir
|
|
1084
|
+
workspaceDir: args.workspaceDir,
|
|
1085
|
+
codebaseContext
|
|
912
1086
|
});
|
|
913
1087
|
if (discoveryResult.status === "complete") {
|
|
914
1088
|
await notify({
|
|
@@ -945,6 +1119,7 @@ async function runAnton(args) {
|
|
|
945
1119
|
total: pending.length,
|
|
946
1120
|
planFile,
|
|
947
1121
|
timeout: String(reviewTimeout),
|
|
1122
|
+
thinking: preflightPhase1ThinkLevel,
|
|
948
1123
|
agent: args.agent,
|
|
949
1124
|
to: args.to,
|
|
950
1125
|
runtime: args.runtime,
|
|
@@ -971,6 +1146,7 @@ async function runAnton(args) {
|
|
|
971
1146
|
sessionId: implSessionId
|
|
972
1147
|
});
|
|
973
1148
|
const implPrompt = planFile ? buildImplementationPrompt(taskPromptText, planFile, { skipTests }) : buildDirectTaskPrompt(taskPromptText, { skipTests });
|
|
1149
|
+
const implementationThinkLevel = mode === "preflight" ? preflightPhase2ThinkLevel : directThinkLevel;
|
|
974
1150
|
const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
975
1151
|
const taskFileRel = path.relative(gitCwd, filePath).replace(/\\/g, "/");
|
|
976
1152
|
const changeIgnores = taskFileRel.startsWith("..") ? [] : [taskFileRel];
|
|
@@ -980,6 +1156,7 @@ async function runAnton(args) {
|
|
|
980
1156
|
message: implPrompt,
|
|
981
1157
|
sessionId: implSessionId,
|
|
982
1158
|
timeout: defaultTimeout,
|
|
1159
|
+
thinking: implementationThinkLevel,
|
|
983
1160
|
agent: args.agent,
|
|
984
1161
|
to: args.to,
|
|
985
1162
|
runtime: args.runtime,
|
|
@@ -1006,6 +1183,7 @@ async function runAnton(args) {
|
|
|
1006
1183
|
message: buildImplementationRetryPrompt(taskPromptText, planFile ?? "", { skipTests }),
|
|
1007
1184
|
sessionId: retrySessionId,
|
|
1008
1185
|
timeout: defaultTimeout,
|
|
1186
|
+
thinking: implementationThinkLevel,
|
|
1009
1187
|
agent: args.agent,
|
|
1010
1188
|
to: args.to,
|
|
1011
1189
|
runtime: args.runtime,
|