@visorcraft/idlehands 4.2.4 → 4.2.5
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/{accounts-B4A5mL3Y.js → accounts-3HS_UAhJ.js} +1 -1
- package/dist/{accounts-CbaEMSlt.js → accounts-DLTODa_Z.js} +2 -2
- package/dist/{accounts-VbtNKne6.js → accounts-DgbTKQoW.js} +1 -1
- package/dist/{acp-cli-BF3FD1qw.js → acp-cli-BEpWQbqb.js} +12 -12
- package/dist/{agent-scope-DbNnv10G.js → agent-scope-RA0zXRpu.js} +3 -3
- package/dist/{agent-via-gateway-CugFJzVP.js → agent-via-gateway-Bhon8XVm.js} +7 -7
- package/dist/{agent-via-gateway-VdG-s4L4.js → agent-via-gateway-CS-8ChjV.js} +1 -1
- package/dist/{agent-via-gateway-DG8Axzn2.js → agent-via-gateway-DVTkXwmI.js} +2 -2
- package/dist/{agent-via-gateway-DwRsFLFS.js → agent-via-gateway-Drygi4ty.js} +6 -6
- package/dist/{agents-DDuWSZ0g.js → agents-dNuQ9qUa.js} +4 -4
- package/dist/{agents.config-8tuPdcTQ.js → agents.config-B_6rOTVW.js} +1 -1
- package/dist/{agents.config-A-WLFOiz.js → agents.config-DCNsF8yj.js} +2 -2
- package/dist/{anton-DqWaq0gv.js → anton-BmSsFmSP.js} +200 -35
- package/dist/{anton-sGTx_HDs.js → anton-Cw4-BgtA.js} +200 -35
- package/dist/{anton-CaPVBTOS.js → anton-D375-ufL.js} +200 -35
- package/dist/{anton-DCN6G6Up.js → anton-Di5VPZiI.js} +203 -38
- package/dist/{api-key-rotation-Bj8Q_8ST.js → api-key-rotation-B-FTJm5p.js} +2 -2
- package/dist/{audio-preflight-BEe3Go6e.js → audio-preflight-Dl1TO10w.js} +41 -41
- package/dist/{audio-preflight-CSSlgO89.js → audio-preflight-vD3mDc6w.js} +4 -4
- package/dist/{audit-DjUOBxVB.js → audit-CKeZnjft.js} +21 -21
- package/dist/{auth-choice-CnB-Ffeh.js → auth-choice-C8Tj46gd.js} +10 -10
- package/dist/{auth-choice-C0ADVtim.js → auth-choice-CYV4KLt7.js} +1 -1
- package/dist/{auth-choice-fHV4ZjtT.js → auth-choice-D12Wsf7w.js} +15 -15
- package/dist/{auth-choice.apply-helpers-fIm7h2DA.js → auth-choice.apply-helpers-CGcniL1T.js} +1 -1
- package/dist/{auth-DoNXQLDj.js → auth-heRVBxh2.js} +1 -1
- package/dist/{auth-store-Dqjgb5R1.js → auth-store-DDzIMy8_.js} +1 -1
- package/dist/{auth-token-ChjRQYCt.js → auth-token-BJq87X3o.js} +2 -2
- package/dist/{banner-C1dFMwdL.js → banner-B7_rwm3P.js} +1 -1
- package/dist/{bindings-DorAphZu.js → bindings-B59Q7nsk.js} +2 -2
- package/dist/{bonjour-discovery-Yzgl5gfZ.js → bonjour-discovery-DMslm8Hx.js} +2 -2
- package/dist/{browser-cli-B8GEKR0p.js → browser-cli-Ci6DpTnS.js} +19 -19
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/{call-SK4sGwpN.js → call-BpWhjuOg.js} +4 -4
- package/dist/{channel-account-context-CBQ0TdW0.js → channel-account-context-CDbY5AIr.js} +1 -1
- package/dist/{channel-activity-D3e45uuU.js → channel-activity-DaCsrdWK.js} +3 -3
- package/dist/{channel-options-dvj7gQ75.js → channel-options-DTqGMcYU.js} +5 -5
- package/dist/{channel-options-DPIZ2OfB.js → channel-options-Dxc1A5iC.js} +1 -1
- package/dist/{channel-selection-DLfBD-c0.js → channel-selection-ZxRkxpuF.js} +2 -2
- package/dist/{channel-web-C022IdsV.js → channel-web-BPlapQS3.js} +2 -2
- package/dist/{channel-web-DAeB1zPN.js → channel-web-CgvDCMru.js} +26 -26
- package/dist/{channels-cli-DzA8ku51.js → channels-cli-BfUIc52d.js} +7 -7
- package/dist/{channels-cli-BdUt4Lf-.js → channels-cli-k45uGu5k.js} +104 -104
- package/dist/{channels-status-issues-DMvYh1lV.js → channels-status-issues-CDpWjdI3.js} +1 -1
- package/dist/{chrome-Do5potHV.js → chrome-DEnkfZ9p.js} +9 -9
- package/dist/{chrome-DeAzXWRb.js → chrome-VBsQfIrt.js} +4 -4
- package/dist/{chunk-DJjn34fF.js → chunk-ClMFHJu-.js} +1 -1
- package/dist/{clack-prompter-EMS8sO4h.js → clack-prompter-CvbZsmjW.js} +5 -5
- package/dist/{clawbot-cli-B8qqplom.js → clawbot-cli-uFgYrysW.js} +9 -9
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-BapK2rdH.js +162 -0
- package/dist/{cli-BC9fLKsk.js → cli-C6GCCnET.js} +2 -2
- package/dist/{client-Cagiy1nE.js → client-DtnD-ee9.js} +2 -2
- package/dist/{clipboard-BqjWohVl.js → clipboard-LsW7H0Y8.js} +1 -1
- package/dist/{command-registry-Bo2L5BJz.js → command-registry-DJb9jSNL.js} +10 -10
- package/dist/{commands-5UqnjBKV.js → commands-Dj5LalLo.js} +2 -2
- package/dist/{commands-registry-C1lIoXkL.js → commands-registry-CURlRZQJ.js} +5 -5
- package/dist/{completion-cli-CevdZ8t2.js → completion-cli-BXA0UZAn.js} +2 -2
- package/dist/{completion-cli-w7SY12wl.js → completion-cli-DqJEZMJt.js} +4 -4
- package/dist/{config-cli-D2221rb8.js → config-cli-97SkUuuT.js} +13 -13
- package/dist/{config-cli-C8s4mZF3.js → config-cli-BfaVUsj-.js} +1 -1
- package/dist/{config-guard-DwTygT00.js → config-guard-BdsOumqh.js} +23 -23
- package/dist/{config-validation-wUpXePGY.js → config-validation-BvKX6fPw.js} +2 -2
- package/dist/{configure-6COQEc8d.js → configure-CmTKkn3M.js} +21 -21
- package/dist/{configure-BpeVYPCY.js → configure-DpswIHZC.js} +3 -3
- package/dist/{control-ui-assets-CSrZ1shI.js → control-ui-assets-C7ZpN9hN.js} +1 -1
- package/dist/{cron-cli-Den58QGF.js → cron-cli-DQsnGQKs.js} +17 -17
- package/dist/{daemon-cli-CpCtUgS2.js → daemon-cli-DUg-s4LG.js} +14 -14
- package/dist/{daemon-install-BPEEr5XM.js → daemon-install-CYPo4M1M.js} +8 -8
- package/dist/{deliver-BqJFyWu7.js → deliver--kttnrER.js} +10 -10
- package/dist/{deliver-whAbSPLk.js → deliver-5FLCa6tB.js} +1 -1
- package/dist/{deps-DOxHxBHl.js → deps-BV_-fxNb.js} +1 -1
- package/dist/{deps-BTDAxEQ6.js → deps-Bc5yBM-U.js} +1 -1
- package/dist/{deps-B3svY-p3.js → deps-CDLYb9a7.js} +1 -1
- package/dist/{deps-Coo8Thxy.js → deps-IpeS3x5O.js} +6 -6
- package/dist/{devices-cli-HTdRxjTf.js → devices-cli-DKK65S9Z.js} +12 -12
- package/dist/{diagnostic-ztHDqZ1m.js → diagnostic-BECJfEvH.js} +3 -3
- package/dist/{diagnostic-BUKW2Q0G.js → diagnostic-ByHpt6q8.js} +1 -1
- package/dist/{diagnostics-C2vxSb6v.js → diagnostics-DmZbQ8Nc.js} +1 -1
- package/dist/{directory-cli-BQDn6Qin.js → directory-cli-Dz9iXeut.js} +16 -16
- package/dist/{dns-cli-lwfJKGdv.js → dns-cli-DD6hWsdc.js} +10 -10
- package/dist/{dock-DpA6CUDJ.js → dock-Y96MzKuM.js} +6 -6
- package/dist/{docs-cli-Jnv5gp25.js → docs-cli-cHkrTB2e.js} +9 -9
- package/dist/{doctor-completion-CCuJkHb8.js → doctor-completion-BkS6Phs6.js} +2 -2
- package/dist/{doctor-completion-CkCkSkfC.js → doctor-completion-WFEPRjgs.js} +1 -1
- package/dist/{doctor-config-flow-DcxVJJvh.js → doctor-config-flow-Ck4oCjfl.js} +13 -13
- package/dist/{emergency-stop-DZFe7oYv.js → emergency-stop-DKLc7AmD.js} +7 -7
- package/dist/{emergency-stop-DO0wn668.js → emergency-stop-DMTHxdvC.js} +2 -2
- package/dist/{emergency-stop-JMddgwUX.js → emergency-stop-Dxp2e3a9.js} +2 -2
- package/dist/emergency-stop-zy54uJoE.js +162 -0
- package/dist/{enable-ztZSnOGv.js → enable-o_s6PBsC.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{env-dMo-pLSc.js → env-Bx-F45X5.js} +1 -1
- package/dist/{errors-BNr2qnai.js → errors-DZDuPc3M.js} +1 -1
- package/dist/{exec-B9xbr2pN.js → exec-CKHMT0tZ.js} +2 -2
- package/dist/{exec-approvals-allowlist-BzsyDGgt.js → exec-approvals-allowlist-Co2tJSEo.js} +1 -1
- package/dist/{exec-approvals-cli-2SjGVbIm.js → exec-approvals-cli-D6XUzs4j.js} +21 -21
- package/dist/{exec-safe-bin-runtime-policy-bEV0LvVh.js → exec-safe-bin-runtime-policy-DaoU9-ni.js} +2 -2
- package/dist/extensionAPI.js +7 -7
- package/dist/{fetch-guard-C-IWepjW.js → fetch-guard-yUZu1Vzc.js} +1 -1
- package/dist/{frontmatter-x0EBRtDF.js → frontmatter-D-sQ_Hqk.js} +2 -2
- package/dist/{gateway-cli-D6Sh2d9w.js → gateway-cli-E6DUzxEX.js} +9 -9
- package/dist/{gateway-cli-Cf7kqenc.js → gateway-cli-FNbwxOiN.js} +123 -123
- package/dist/{gateway-rpc-C_He5poS.js → gateway-rpc-BBFG1T-M.js} +3 -3
- package/dist/{gmail-setup-utils-D1VrLZhD.js → gmail-setup-utils-DRJTQOMM.js} +3 -3
- package/dist/{health-BavRGpi2.js → health-CGW71CVV.js} +15 -15
- package/dist/{health-j2mDzeUl.js → health-D60h_a2w.js} +1 -1
- package/dist/{health-format-CWIquyOr.js → health-format-Ba_hOaT2.js} +1 -1
- package/dist/{help-format-D7QsjOW4.js → help-format-CMAqOikG.js} +1 -1
- package/dist/{hooks-cli-DDAeDBcO.js → hooks-cli-BnVSeWIo.js} +3 -3
- package/dist/{hooks-cli-AnCnOcQY.js → hooks-cli-DaWPRdgZ.js} +93 -93
- package/dist/{hooks-status-BBvzI_rQ.js → hooks-status-DNGo2G8Q.js} +3 -3
- package/dist/{image-BAsQlUqT.js → image-C_aN5P6-.js} +1 -1
- package/dist/{image-BkrcRFPe.js → image-DSDEbSiO.js} +7 -7
- package/dist/{image-ops-CGnAhRRV.js → image-ops-BU-VdLZu.js} +1 -1
- package/dist/index.js +99 -99
- package/dist/{inspect-BOW-hTlT.js → inspect-ISQZuNM5.js} +1 -1
- package/dist/{installs-DGfrRYWX.js → installs-CNubze2L.js} +4 -4
- package/dist/{ir-DBqjL1SG.js → ir-VncGpwA1.js} +4 -4
- package/dist/{lifecycle-core-DOL5vqsF.js → lifecycle-core-B6UoqYTJ.js} +5 -5
- package/dist/{links-DIG3qrf5.js → links-15764jZB.js} +1 -1
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{local-roots-B-lmQdZs.js → local-roots-q0xbefkf.js} +4 -4
- package/dist/{logging-BK2fjjMe.js → logging-B0-9lotb.js} +1 -1
- package/dist/{login-BVf_DBja.js → login-CfUhrgWT.js} +6 -6
- package/dist/{login-qr-V1EwcFLt.js → login-qr-DBMsUxgL.js} +10 -10
- package/dist/{logs-cli-BgrYblUE.js → logs-cli-4VQ9Iwiw.js} +13 -13
- package/dist/{manager-DayGME0K.js → manager-BMAFgXyU.js} +10 -10
- package/dist/{manifest-registry-cOeAg4W6.js → manifest-registry-Bak1x76G.js} +2 -2
- package/dist/{markdown-tables-BQ8czvs_.js → markdown-tables-DZClqsNo.js} +1 -1
- package/dist/{memory-cli-D_bFq_Q1.js → memory-cli-CUGwnVIY.js} +12 -12
- package/dist/{message-channel-CRSTffWx.js → message-channel-DVauVtrg.js} +1 -1
- package/dist/{model-Di6JkHyx.js → model-C-icShH2.js} +2 -2
- package/dist/{model-catalog-D_KsCB5j.js → model-catalog-D9no0CH2.js} +4 -4
- package/dist/{model-picker-CM_QFlL4.js → model-picker-BkXoTOiA.js} +4 -4
- package/dist/{model-selection-Df4-bBn3.js → model-selection-0dGxYGp8.js} +12 -12
- package/dist/{models-RiKkYhfQ.js → models-C1ouQF8k.js} +2 -2
- package/dist/{models-cli-CSSZi7-P.js → models-cli-BhFUh61j.js} +4 -4
- package/dist/{models-cli-B4HXQG2Q.js → models-cli-CxEFLoMt.js} +98 -98
- package/dist/{models-config-zq6L0fug.js → models-config-C5A1wDWh.js} +2 -2
- package/dist/{node-cli-PVcj1bnA.js → node-cli-BYzjxmUY.js} +33 -33
- package/dist/{node-service-IG3YtMJq.js → node-service-C3vyxHLA.js} +1 -1
- package/dist/{nodes-cli-DKj4NkKf.js → nodes-cli-kNOtp0U0.js} +21 -21
- package/dist/{nodes-screen-CK0vmyQx.js → nodes-screen-CcpPaFxa.js} +1 -1
- package/dist/{note--5AAjfvH.js → note-69EfBEU-.js} +2 -2
- package/dist/{npm-registry-spec-B81IsQOs.js → npm-registry-spec-BCbbfIhX.js} +2 -2
- package/dist/{npm-resolution-D1b0Eoa4.js → npm-resolution-D30nzRfu.js} +4 -4
- package/dist/{npm-resolution-vCuR0Tv5.js → npm-resolution-Ds0qg1EX.js} +1 -1
- package/dist/{onboard-enaQTAES.js → onboard-Cv6q6Usf.js} +9 -9
- package/dist/{onboard-Dcj7w5Sb.js → onboard-NcA_odSQ.js} +2 -2
- package/dist/{onboard-channels-BT-vQKYZ.js → onboard-channels-C1E5DpTR.js} +17 -17
- package/dist/{onboard-channels-jrbhR8dl.js → onboard-channels-bfoS7x6P.js} +1 -1
- package/dist/{onboard-custom-C_4nk_e8.js → onboard-custom-DUbzMMu7.js} +4 -4
- package/dist/{onboard-helpers-CXjQtadC.js → onboard-helpers-mzy38DiC.js} +7 -7
- package/dist/{onboard-hooks-CuOJrgfu.js → onboard-hooks-D9teGxfH.js} +7 -7
- package/dist/{onboard-remote-B-bN7EmV.js → onboard-remote-LCBHijVE.js} +3 -3
- package/dist/{onboard-skills-BVmcgCzz.js → onboard-skills-jFY9gaOu.js} +4 -4
- package/dist/{onboarding-fRvJJ_jS.js → onboarding-CX8a934a.js} +16 -16
- package/dist/{onboarding-BpiNSUID.js → onboarding-CpGBbVTj.js} +3 -3
- package/dist/{onboarding.finalize-B557eJgx.js → onboarding.finalize-BnKQeFN8.js} +7 -7
- package/dist/{onboarding.finalize-6q8jh9r4.js → onboarding.finalize-CRgpFQIz.js} +99 -99
- package/dist/{onboarding.gateway-config-BinQe57V.js → onboarding.gateway-config-Btu2gzgr.js} +21 -21
- package/dist/{openai-model-default-CK1wUY3u.js → openai-model-default-7J6cw1rA.js} +2 -2
- package/dist/{outbound-DClHNQfl.js → outbound-DPTxwchq.js} +6 -6
- package/dist/{outbound-attachment-Cz80loTd.js → outbound-attachment-Bot3bRnK.js} +2 -2
- package/dist/{pairing-cli-By_hykOY.js → pairing-cli-jwx6hMsM.js} +15 -15
- package/dist/{pairing-labels-Dm-DUGGI.js → pairing-labels-ChQJzbS9.js} +1 -1
- package/dist/{pairing-store-CPUUuW7M.js → pairing-store-CPpEEQJO.js} +3 -3
- package/dist/{path-env-CWIJihhd.js → path-env-CKSLQUS1.js} +1 -1
- package/dist/{paths-CBF9EBzh.js → paths-B-CLQ5RT.js} +1 -1
- package/dist/{pi-embedded-D35RiR0f.js → pi-embedded-0YMQWOc5.js} +32 -28
- package/dist/{pi-embedded-CMll1riT.js → pi-embedded-BO8wzB4O.js} +17 -13
- package/dist/{pi-embedded-helpers-D675DgwP.js → pi-embedded-helpers-BCsfqpDt.js} +4 -4
- package/dist/{pi-embedded-helpers-Ct2rwp-P.js → pi-embedded-helpers-C2j0LfJC.js} +4 -4
- package/dist/{pi-model-discovery-BEKzIGSg.js → pi-model-discovery-BIP3RjXl.js} +1 -1
- package/dist/{pi-tools.policy-GzRj_NVc.js → pi-tools.policy-DfITIKZj.js} +6 -6
- package/dist/{plugin-auto-enable-CU8IfpBV.js → plugin-auto-enable-7DUxMy6A.js} +5 -5
- package/dist/{plugin-registry-DMdIUK_2.js → plugin-registry-Cp2q0pVP.js} +1 -1
- package/dist/{plugin-registry-DdywtXL5.js → plugin-registry-DceNUcJc.js} +4 -4
- package/dist/plugin-sdk/{agent-via-gateway-W4SFqR3m.js → agent-via-gateway-MuDsrNW6.js} +2 -2
- package/dist/plugin-sdk/{anton-DgXekgcy.js → anton-CkJKOeKT.js} +200 -35
- package/dist/plugin-sdk/{channel-web-DbwkbMKY.js → channel-web-B6pGyJpM.js} +2 -2
- package/dist/plugin-sdk/{deps-HLNhWkFy.js → deps-FuyQakmK.js} +1 -1
- package/dist/plugin-sdk/{emergency-stop-BXP-MZHW.js → emergency-stop-Ci4JC4dU.js} +2 -2
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{reply-BEnj9--x.js → reply-BTVimsoK.js} +17 -13
- package/dist/plugin-sdk/{web-TsEAe4Bs.js → web-HiiN5NkP.js} +3 -3
- package/dist/{plugins-Bj6rzE-9.js → plugins-D46VZh7u.js} +5 -5
- package/dist/{plugins-cli-CkqS4cmo.js → plugins-cli-2wK7R85Y.js} +3 -3
- package/dist/{plugins-cli-DHVkVGke.js → plugins-cli-BaQt7jqk.js} +95 -95
- package/dist/{ports-D3FuSfMU.js → ports-B2o0FSFD.js} +2 -2
- package/dist/{ports-BJ6Xu_G6.js → ports-SQy1d-RL.js} +3 -3
- package/dist/{program-BeB3v4zk.js → program-CbwFv75G.js} +8 -8
- package/dist/{program-context-w-tdgurY.js → program-context-Ck-chzM_.js} +43 -43
- package/dist/{progress-BN8aygvh.js → progress-BQLz1r3L.js} +1 -1
- package/dist/{prompt-select-styled-CE6lL16-.js → prompt-select-styled-DJ5ONfKl.js} +4 -4
- package/dist/{prompt-select-styled-CGdWABH5.js → prompt-select-styled-DigZiJWM.js} +35 -35
- package/dist/{prompt-style-BRwf6dfp.js → prompt-style-kmKiCZnm.js} +1 -1
- package/dist/{provider-auth-helpers-C72Fb__o.js → provider-auth-helpers-Ci_EGvif.js} +7 -7
- package/dist/{provider-auth-helpers-D0RhcC2q.js → provider-auth-helpers-DGTDTeE5.js} +1 -1
- package/dist/{push-apns-Nj66xHk1.js → push-apns-BSYjGCn9.js} +5 -5
- package/dist/{push-apns-CeEArjp5.js → push-apns-Dz4hOY07.js} +1 -1
- package/dist/{pw-ai-DRVoaq_u.js → pw-ai-7i9eGnLh.js} +13 -13
- package/dist/{pw-ai-yrIWfcWX.js → pw-ai-DjmrIQle.js} +1 -1
- package/dist/{qmd-manager-SkIM31ge.js → qmd-manager-B-qeywfQ.js} +6 -6
- package/dist/{qr-cli-BsFvbHQy.js → qr-cli-CSt5ihwG.js} +4 -4
- package/dist/{query-expansion-BIsWftgR.js → query-expansion-Clts_AGz.js} +2 -2
- package/dist/{redact-CIBM9Zli.js → redact-B_4KNlXs.js} +1 -1
- package/dist/{redact-snapshot-DQ_VN7gO.js → redact-snapshot-BbEVKv0k.js} +2 -2
- package/dist/{register.agent-BaiV-Kp5.js → register.agent-BZh3UWw3.js} +9 -9
- package/dist/{register.agent-CoADvHMz.js → register.agent-CTPc2Q9m.js} +110 -110
- package/dist/{register.configure-COg3mvRi.js → register.configure-BzTxX7SG.js} +8 -8
- package/dist/register.configure-vVDARCph.js +168 -0
- package/dist/{register.maintenance-MELPxVyx.js → register.maintenance-BNHEV-po.js} +9 -9
- package/dist/{register.maintenance-CjxM0oKc.js → register.maintenance-DTXn32on.js} +108 -108
- package/dist/{register.message-kzRNe_7l.js → register.message-BYWAEsKP.js} +3 -3
- package/dist/{register.message-CbssH6ek.js → register.message-CHf51taw.js} +90 -90
- package/dist/{register.onboard-CAbo-VF1.js → register.onboard-CxwDhXRS.js} +29 -29
- package/dist/{register.onboard-CJeQ64iC.js → register.onboard-vruDRZdG.js} +2 -2
- package/dist/{register.orchestrator-anton-CdVQ30at.js → register.orchestrator-anton-GSAFxzGa.js} +2 -2
- package/dist/{register.orchestrator-anton-CBnyqoHX.js → register.orchestrator-anton-qBr2ZYrk.js} +7 -7
- package/dist/{register.setup-XGT1lV6o.js → register.setup-B0zmlTXV.js} +2 -2
- package/dist/{register.setup-DEH8S3Y5.js → register.setup-DlFQIXoR.js} +31 -31
- package/dist/{register.status-health-sessions-0ppExIVs.js → register.status-health-sessions-16paRP9f.js} +101 -101
- package/dist/{register.status-health-sessions-jEhyhioj.js → register.status-health-sessions-CtXhn9Dq.js} +4 -4
- package/dist/{register.subclis-DQx75Ni7.js → register.subclis-lskGgus9.js} +9 -9
- package/dist/{replies-CWMglpIw.js → replies-hSFVxL4h.js} +3 -3
- package/dist/{reply-Du7Q5RJl.js → reply-DfRr_KdS.js} +120 -116
- package/dist/{reply-prefix-CXLm7TNq.js → reply-prefix-C3y4zpTl.js} +1 -1
- package/dist/{resolve-route-BrHTn_2g.js → resolve-route-D_AbcmD6.js} +4 -4
- package/dist/{retry-B7zUL1Mv.js → retry-Db05aSB8.js} +1 -1
- package/dist/{rpc-Dp_JZNAZ.js → rpc-Cf9OK5Yk.js} +3 -3
- package/dist/{run-main-D56C-iq4.js → run-main-Bj-8MZGb.js} +15 -15
- package/dist/{runner-Bv_BA3vd.js → runner-CZW_eyf2.js} +1 -1
- package/dist/{runner-p3KLBBEt.js → runner-DzszLzI4.js} +11 -11
- package/dist/{runtime-DELkrqga.js → runtime-XmXLaHNk.js} +3 -3
- package/dist/{sandbox-cEpEHVD-.js → sandbox-DcUw5h3p.js} +8 -8
- package/dist/{sandbox-cli-B7kOJiLh.js → sandbox-cli-DGvJ7Eeq.js} +32 -32
- package/dist/{secrets-cli-COGPFjdu.js → secrets-cli-CR3h2TBy.js} +14 -14
- package/dist/{security-cli-Db4ZYVER.js → security-cli-B9_LV2po.js} +42 -42
- package/dist/{send-DA-ryUJS.js → send--lzpNy4f.js} +14 -14
- package/dist/{send-D_ARyjSf.js → send-C4v0Leny.js} +6 -6
- package/dist/{send-D-UmmCCj.js → send-DQiw_nGD.js} +7 -7
- package/dist/{send-DnscWRVE.js → send-DuwdEkLw.js} +7 -7
- package/dist/{send-BhbOA8rP.js → send-DwdHiC7_.js} +10 -10
- package/dist/{server-DLOBjQtf.js → server-D6MltJIF.js} +21 -21
- package/dist/{server-context-CvZnSu9L.js → server-context-DI0W_H7R.js} +11 -11
- package/dist/{server-lifecycle-CfZbDiFe.js → server-lifecycle-B5PlrlbG.js} +2 -2
- package/dist/{server-node-events-C1uC6pPJ.js → server-node-events-B_LUFrA_.js} +89 -89
- package/dist/{server-node-events-h-U5Mfvv.js → server-node-events-Benu2lR2.js} +3 -3
- package/dist/{service-fKr0VnMd.js → service-C8NMS3m_.js} +1 -1
- package/dist/{session-BKdoiopW.js → session-CdnrRhb4.js} +2 -2
- package/dist/{sessions-uS8Ko6pU.js → sessions-BtPXimXQ.js} +6 -6
- package/dist/{shared-Cvf3nhuq.js → shared-CpDPo3hJ.js} +2 -2
- package/dist/{shared-pSfUCPxh.js → shared-DpLSpJIl.js} +1 -1
- package/dist/{skill-commands-BY4BNcfR.js → skill-commands-BFzmZAfo.js} +6 -6
- package/dist/{skill-scanner-BFXxq_hZ.js → skill-scanner-D7mzXRXd.js} +1 -1
- package/dist/{skills-DuPZzvnK.js → skills-DlvDyK8L.js} +4 -4
- package/dist/{skills-cli-wSg-syqz.js → skills-cli-BhKGhjbO.js} +10 -10
- package/dist/{skills-install-CQihNd2n.js → skills-install-tr6wRWZj.js} +6 -6
- package/dist/{skills-status-D7aU-6Ob.js → skills-status-qjQ8XP0h.js} +4 -4
- package/dist/{status-DmPnFNgt.js → status-DxcdgCyX.js} +2 -2
- package/dist/{status-CQ18Gd-d.js → status-DzCllHYZ.js} +24 -24
- package/dist/{status.update-Cri65g-V.js → status.update-CTi6vuWj.js} +1 -1
- package/dist/{store-CR1Ag5tw.js → store-kH9wHHbO.js} +2 -2
- package/dist/{subagent-registry-CPeVtSZk.js → subagent-registry-BcpHnckA.js} +17 -13
- package/dist/{subsystem-BTkYq-SM.js → subsystem-CGZX2PBV.js} +1 -1
- package/dist/{system-cli-DSF87U3I.js → system-cli-DyVZ5udc.js} +13 -13
- package/dist/{system-run-approval-context-DtT5msEN.js → system-run-approval-context-CISBXlNw.js} +1 -1
- package/dist/{system-run-command-CrHlKsQv.js → system-run-command-qJdgzxLp.js} +1 -1
- package/dist/{systemd-C9CCJ2y5.js → systemd-CaCR5CyM.js} +2 -2
- package/dist/{systemd-hints-D4_AmIA0.js → systemd-hints-DHu-HVFx.js} +2 -2
- package/dist/{systemd-linger-BRBtRm6O.js → systemd-linger-B7XlUHk_.js} +2 -2
- package/dist/{table-PG064F0C.js → table-B9AmL3M1.js} +2 -2
- package/dist/{tables-Ca5i1iM6.js → tables-g9xkflht.js} +1 -1
- package/dist/{tailscale-Dr3FvwTm.js → tailscale-B5Irc_Bi.js} +2 -2
- package/dist/{target-errors-BhRMVh6a.js → target-errors-bLIVFsbF.js} +2 -2
- package/dist/{tokens-DY5TC4xI.js → tokens-Dg-QZ_pN.js} +1 -1
- package/dist/{tool-display-1HTlk4mF.js → tool-display-Dac7lHGW.js} +2 -2
- package/dist/{tool-images-ByP8vQ_u.js → tool-images-CHqepyF_.js} +2 -2
- package/dist/{tool-loop-detection-BxLycal4.js → tool-loop-detection-C5VjmhPJ.js} +2 -2
- package/dist/{trash-CHnKIQrP.js → trash-CUFiyQN5.js} +1 -1
- package/dist/{tui-BmvrLAnW.js → tui-Bne3YNiw.js} +9 -9
- package/dist/{tui-cli-Dm28GC4T.js → tui-cli-D0Z-rcUe.js} +39 -39
- package/dist/{update-D96LyJ5s.js → update-D79ppbMQ.js} +3 -3
- package/dist/{update-cli-Di_N9xCB.js → update-cli-B53rJqAV.js} +115 -115
- package/dist/{update-cli-DraOIip8.js → update-cli-CTETjvrF.js} +9 -9
- package/dist/{update-runner-BQlZS5zz.js → update-runner-BGAdvd0c.js} +1 -1
- package/dist/{update-runner-BJRwxU_y.js → update-runner-BOGIWX18.js} +5 -5
- package/dist/{utils-BfmeFj7S.js → utils-CXzXXV2o.js} +2 -2
- package/dist/{web-DzfcaLnK.js → web-3nv8mK11.js} +3 -3
- package/dist/{web-CrYZNxAg.js → web-C7HXffph.js} +8 -8
- package/dist/web-CqOVupWI.js +123 -0
- package/dist/{web-Cp8ceOUo.js → web-Dwj9igbL.js} +3 -3
- package/dist/{webhooks-cli-DLVMYO3R.js → webhooks-cli-2N03q0iY.js} +11 -11
- package/dist/{whatsapp-actions-De803Fwb.js → whatsapp-actions-Cms8wQM1.js} +22 -22
- package/dist/{widearea-dns-DJVz6r4U.js → widearea-dns-FDdFH5E8.js} +1 -1
- package/dist/{with-timeout-Bz8F3xNq.js → with-timeout-DEdycYxq.js} +5 -5
- package/dist/{workspace-BHN1rb4L.js → workspace-D3pARwoB.js} +3 -3
- package/dist/{workspace-dirs-C34pt6Pa.js → workspace-dirs-SsExQ3Bz.js} +1 -1
- package/package.json +4 -1
- package/dist/cli-VNJdJ9_T.js +0 -162
- package/dist/emergency-stop-BNon2wpA.js +0 -162
- package/dist/register.configure-Dhfhctpj.js +0 -168
- package/dist/web-D77Xu1Fp.js +0 -123
|
@@ -84,13 +84,126 @@ function markTaskDone(markdown, lineNo) {
|
|
|
84
84
|
lines[idx] = (lines[idx] ?? "").replace(/^(\s*)- \[ \] /, "$1- [x] ");
|
|
85
85
|
return `${lines.join("\n")}\n`;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function isJsonTaskFile(taskFile) {
|
|
88
|
+
return taskFile.toLowerCase().endsWith(".json");
|
|
89
|
+
}
|
|
90
|
+
function parsePendingTasksFromJson(jsonText) {
|
|
91
|
+
const data = JSON.parse(jsonText);
|
|
92
|
+
const pending = [];
|
|
93
|
+
const joinDetails = (parentDetails, subtasks) => {
|
|
94
|
+
const details = [];
|
|
95
|
+
if (typeof parentDetails === "string" && parentDetails.trim()) details.push(parentDetails.trim());
|
|
96
|
+
const lines = [];
|
|
97
|
+
for (const sub of subtasks) {
|
|
98
|
+
if (!sub || typeof sub !== "object") continue;
|
|
99
|
+
const subObj = sub;
|
|
100
|
+
if (subObj.done === true) continue;
|
|
101
|
+
const name = typeof subObj.name === "string" ? subObj.name.trim() : "";
|
|
102
|
+
if (!name) continue;
|
|
103
|
+
const subDetails = typeof subObj.details === "string" ? subObj.details.trim() : "";
|
|
104
|
+
lines.push(subDetails ? `- ${name}: ${subDetails}` : `- ${name}`);
|
|
105
|
+
}
|
|
106
|
+
if (lines.length > 0) details.push(`Subtasks:\n${lines.join("\n")}`);
|
|
107
|
+
return details.length > 0 ? details.join("\n\n") : void 0;
|
|
108
|
+
};
|
|
109
|
+
const pushTask = (jsonPath, obj) => {
|
|
110
|
+
if (obj.done === true) return;
|
|
111
|
+
const text = typeof obj.name === "string" ? obj.name.trim() : "";
|
|
112
|
+
if (!text) return;
|
|
113
|
+
const subtasks = Array.isArray(obj.subtasks) ? obj.subtasks : [];
|
|
114
|
+
pending.push({
|
|
115
|
+
text,
|
|
116
|
+
details: joinDetails(obj.details, subtasks),
|
|
117
|
+
jsonPath
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
if (data && typeof data === "object") {
|
|
121
|
+
const root = data;
|
|
122
|
+
const tasks = root.tasks;
|
|
123
|
+
if (Array.isArray(tasks)) for (let i = 0; i < tasks.length; i++) {
|
|
124
|
+
const task = tasks[i];
|
|
125
|
+
if (!task || typeof task !== "object") continue;
|
|
126
|
+
pushTask(["tasks", i], task);
|
|
127
|
+
}
|
|
128
|
+
else if ("name" in root || "subtasks" in root) pushTask([], root);
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
pending,
|
|
132
|
+
data
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function markJsonTaskDone(data, jsonPath) {
|
|
136
|
+
if (!jsonPath) return;
|
|
137
|
+
let cur = data;
|
|
138
|
+
for (const key of jsonPath) {
|
|
139
|
+
if (typeof key === "number") {
|
|
140
|
+
if (!Array.isArray(cur)) return;
|
|
141
|
+
cur = cur[key];
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (!cur || typeof cur !== "object" || Array.isArray(cur)) return;
|
|
145
|
+
cur = cur[key];
|
|
146
|
+
}
|
|
147
|
+
if (!cur || typeof cur !== "object" || Array.isArray(cur)) return;
|
|
148
|
+
cur.done = true;
|
|
149
|
+
}
|
|
150
|
+
function formatTaskForPrompt(task) {
|
|
151
|
+
if (task.details) return `${task.text}
|
|
152
|
+
Details: ${task.details}`;
|
|
153
|
+
return task.text;
|
|
154
|
+
}
|
|
155
|
+
function looksLikeVersionBumpTask(taskText) {
|
|
156
|
+
return /bump\s+version/i.test(taskText) || /version\s+(to|\d+\.)/i.test(taskText);
|
|
157
|
+
}
|
|
158
|
+
function allowsNoRepoChanges(taskText) {
|
|
159
|
+
return /(review|verify|ensure|confirm|check)/i.test(taskText) && /(doc|docs|documentation|readme)/i.test(taskText);
|
|
160
|
+
}
|
|
161
|
+
async function ensureRepoCleanOrThrow(cwd) {
|
|
162
|
+
const { stdout } = await execFile$1("git", ["status", "--porcelain"], { cwd });
|
|
163
|
+
if (stdout.split(/\r?\n/).map((line) => line.trimEnd()).filter(Boolean).map((line) => line.slice(3).trim().replace(/\\/g, "/")).filter((file) => file && !file.startsWith(".agents/tasks/")).length > 0) throw new Error(`Anton requires a clean git working tree. Dirty repo at: ${cwd}`);
|
|
164
|
+
}
|
|
165
|
+
async function hardCleanRepo(cwd) {
|
|
166
|
+
await execFile$1("git", ["reset", "--hard"], { cwd });
|
|
167
|
+
await execFile$1("git", [
|
|
168
|
+
"clean",
|
|
169
|
+
"-fd",
|
|
170
|
+
"-e",
|
|
171
|
+
".agents/tasks",
|
|
172
|
+
"-e",
|
|
173
|
+
"node_modules"
|
|
174
|
+
], { cwd });
|
|
175
|
+
}
|
|
176
|
+
async function commitAllIfDirty(cwd, message) {
|
|
177
|
+
const { stdout } = await execFile$1("git", ["status", "--porcelain"], { cwd });
|
|
178
|
+
if (stdout.trim().length === 0) return;
|
|
179
|
+
await execFile$1("git", ["add", "-A"], { cwd });
|
|
180
|
+
try {
|
|
181
|
+
await execFile$1("git", [
|
|
182
|
+
"restore",
|
|
183
|
+
"--staged",
|
|
184
|
+
".agents/tasks"
|
|
185
|
+
], { cwd });
|
|
186
|
+
} catch {}
|
|
187
|
+
const { stdout: staged } = await execFile$1("git", [
|
|
188
|
+
"diff",
|
|
189
|
+
"--cached",
|
|
190
|
+
"--name-only"
|
|
191
|
+
], { cwd });
|
|
192
|
+
if (staged.trim().length === 0) return;
|
|
193
|
+
await execFile$1("git", [
|
|
194
|
+
"commit",
|
|
195
|
+
"-m",
|
|
196
|
+
message
|
|
197
|
+
], { cwd });
|
|
198
|
+
}
|
|
199
|
+
function buildDirectTaskPrompt(task, opts) {
|
|
200
|
+
const skipTests = Boolean(opts?.skipTests);
|
|
88
201
|
return [
|
|
89
202
|
"You are executing one item from a managed checklist.",
|
|
90
203
|
`Task: ${task}`,
|
|
91
204
|
"Rules:",
|
|
92
205
|
"1) Make the minimal code changes required for this task.",
|
|
93
|
-
"2) Run targeted tests for your change.",
|
|
206
|
+
skipTests ? "2) Skip tests for this task unless you changed executable code." : "2) Run targeted tests for your change.",
|
|
94
207
|
"3) Return a concise completion summary."
|
|
95
208
|
].join("\n");
|
|
96
209
|
}
|
|
@@ -144,7 +257,8 @@ function buildReviewPrompt(planFilePath) {
|
|
|
144
257
|
|
|
145
258
|
Do not skip reading the file. Do not return JSON without first reading and updating the plan.`;
|
|
146
259
|
}
|
|
147
|
-
function buildImplementationPrompt(task, planFilePath) {
|
|
260
|
+
function buildImplementationPrompt(task, planFilePath, opts) {
|
|
261
|
+
const skipTests = Boolean(opts?.skipTests);
|
|
148
262
|
return [
|
|
149
263
|
`Complete this task: ${task}`,
|
|
150
264
|
"",
|
|
@@ -155,11 +269,12 @@ function buildImplementationPrompt(task, planFilePath) {
|
|
|
155
269
|
"Describing changes in text or showing diffs without applying them does NOT count.",
|
|
156
270
|
"Do not ask for confirmation — apply the changes now.",
|
|
157
271
|
"",
|
|
158
|
-
"After making the edits, run any verification steps from the plan.",
|
|
272
|
+
skipTests ? "Skip tests for this task unless you changed executable code." : "After making the edits, run any verification steps from the plan.",
|
|
159
273
|
"Then return a brief summary of what you changed."
|
|
160
274
|
].join("\n");
|
|
161
275
|
}
|
|
162
|
-
function buildImplementationRetryPrompt(task, planFilePath) {
|
|
276
|
+
function buildImplementationRetryPrompt(task, planFilePath, opts) {
|
|
277
|
+
const skipTests = Boolean(opts?.skipTests);
|
|
163
278
|
return [
|
|
164
279
|
"Your previous implementation attempt made zero repository changes.",
|
|
165
280
|
`Task: ${task}`,
|
|
@@ -169,7 +284,7 @@ function buildImplementationRetryPrompt(task, planFilePath) {
|
|
|
169
284
|
"Required sequence:",
|
|
170
285
|
"1) Read the plan file.",
|
|
171
286
|
"2) Use edit/write to modify repository files.",
|
|
172
|
-
"3) Optionally run verification.",
|
|
287
|
+
skipTests ? "3) Skip tests for this task unless you changed executable code." : "3) Optionally run verification.",
|
|
173
288
|
"4) Return a short summary.",
|
|
174
289
|
"",
|
|
175
290
|
"If you only provide analysis/diff text without edit/write tool calls, this attempt fails."
|
|
@@ -254,7 +369,7 @@ async function loadAntonConfig() {
|
|
|
254
369
|
}
|
|
255
370
|
}
|
|
256
371
|
async function runAgentTask(args) {
|
|
257
|
-
const { agentCliCommand } = await import("./agent-via-gateway-
|
|
372
|
+
const { agentCliCommand } = await import("./agent-via-gateway-CS-8ChjV.js").then((n) => n.n);
|
|
258
373
|
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;
|
|
259
374
|
const result = await agentCliCommand({
|
|
260
375
|
message: args.message,
|
|
@@ -398,8 +513,11 @@ async function runDiscoveryPhase(args) {
|
|
|
398
513
|
task: `Discovery (attempt ${attempt + 1})`,
|
|
399
514
|
sessionId
|
|
400
515
|
});
|
|
516
|
+
const discoveryRepoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(args.taskFile);
|
|
517
|
+
await hardCleanRepo(discoveryRepoCwd);
|
|
518
|
+
await ensureRepoCleanOrThrow(discoveryRepoCwd);
|
|
401
519
|
const firstPass = await runAgentTask({
|
|
402
|
-
message: buildDiscoveryPrompt(args.task
|
|
520
|
+
message: buildDiscoveryPrompt(formatTaskForPrompt(args.task), args.taskFile, planFile),
|
|
403
521
|
sessionId,
|
|
404
522
|
timeout: args.timeout,
|
|
405
523
|
agent: args.agent,
|
|
@@ -467,8 +585,10 @@ async function runDiscoveryPhase(args) {
|
|
|
467
585
|
task: `Discovery repair (attempt ${attempt + 1})`,
|
|
468
586
|
sessionId: repairSessionId
|
|
469
587
|
});
|
|
588
|
+
await hardCleanRepo(discoveryRepoCwd);
|
|
589
|
+
await ensureRepoCleanOrThrow(discoveryRepoCwd);
|
|
470
590
|
const repairPass = await runAgentTask({
|
|
471
|
-
message: buildDiscoveryRepairPrompt(args.task
|
|
591
|
+
message: buildDiscoveryRepairPrompt(formatTaskForPrompt(args.task), args.taskFile, declaredPlanFile),
|
|
472
592
|
sessionId: repairSessionId,
|
|
473
593
|
timeout: args.timeout,
|
|
474
594
|
agent: args.agent,
|
|
@@ -566,6 +686,9 @@ async function runReviewPhase(args) {
|
|
|
566
686
|
task: "Requirements review",
|
|
567
687
|
sessionId
|
|
568
688
|
});
|
|
689
|
+
const reviewRepoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : process.cwd();
|
|
690
|
+
await hardCleanRepo(reviewRepoCwd);
|
|
691
|
+
await ensureRepoCleanOrThrow(reviewRepoCwd);
|
|
569
692
|
await runAgentTask({
|
|
570
693
|
message: buildReviewPrompt(args.planFile),
|
|
571
694
|
sessionId,
|
|
@@ -601,7 +724,14 @@ async function runReviewPhase(args) {
|
|
|
601
724
|
}
|
|
602
725
|
async function runAnton(args) {
|
|
603
726
|
const filePath = path.resolve(args.taskFile);
|
|
604
|
-
const
|
|
727
|
+
const raw = await fs.readFile(filePath, "utf8");
|
|
728
|
+
let pending = [];
|
|
729
|
+
let jsonData;
|
|
730
|
+
if (isJsonTaskFile(filePath)) {
|
|
731
|
+
const parsed = parsePendingTasksFromJson(raw);
|
|
732
|
+
pending = parsed.pending;
|
|
733
|
+
jsonData = parsed.data;
|
|
734
|
+
} else pending = parsePendingTasks(raw);
|
|
605
735
|
const notify = args.onProgress ?? (async () => {});
|
|
606
736
|
if (args.dryRun) {
|
|
607
737
|
args.runtime.log(`Dry run: ${pending.length} pending task(s)`);
|
|
@@ -634,6 +764,8 @@ async function runAnton(args) {
|
|
|
634
764
|
const { loadConfig } = await import("./auth-profiles-Baj5ImDJ.js").then((n) => n.D);
|
|
635
765
|
const cfg = loadConfig();
|
|
636
766
|
const defaultTimeout = String(Number.isFinite(args.timeoutSec) && (args.timeoutSec ?? 0) > 0 ? args.timeoutSec : cfg.agents?.defaults?.timeoutSeconds ?? taskTimeout);
|
|
767
|
+
const repoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
768
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
637
769
|
await acquireLock(Boolean(args.force));
|
|
638
770
|
const startedAt = Date.now();
|
|
639
771
|
await writeState({
|
|
@@ -668,6 +800,9 @@ async function runAnton(args) {
|
|
|
668
800
|
const task = pending[i];
|
|
669
801
|
if (!task) continue;
|
|
670
802
|
const taskNum = i + 1;
|
|
803
|
+
const taskPromptText = formatTaskForPrompt(task);
|
|
804
|
+
const skipTests = looksLikeVersionBumpTask(task.text) || allowsNoRepoChanges(task.text);
|
|
805
|
+
const allowNoChanges = allowsNoRepoChanges(task.text);
|
|
671
806
|
await writeState({
|
|
672
807
|
running: true,
|
|
673
808
|
taskFile: filePath,
|
|
@@ -691,6 +826,8 @@ async function runAnton(args) {
|
|
|
691
826
|
const taskFileRelForBaseline = path.relative(gitCwdForBaseline, filePath).replace(/\\/g, "/");
|
|
692
827
|
const changedBeforeTask = await getGitChangedFileCount(gitCwdForBaseline, taskFileRelForBaseline.startsWith("..") ? [] : [taskFileRelForBaseline]);
|
|
693
828
|
if (mode === "preflight") {
|
|
829
|
+
await hardCleanRepo(repoCwd);
|
|
830
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
694
831
|
const discoveryResult = await runDiscoveryPhase({
|
|
695
832
|
task,
|
|
696
833
|
taskNum,
|
|
@@ -713,8 +850,17 @@ async function runAnton(args) {
|
|
|
713
850
|
total: pending.length,
|
|
714
851
|
task: task.text
|
|
715
852
|
});
|
|
716
|
-
const
|
|
717
|
-
|
|
853
|
+
const latest = await fs.readFile(filePath, "utf8");
|
|
854
|
+
if (isJsonTaskFile(filePath)) {
|
|
855
|
+
if (jsonData && task.jsonPath) {
|
|
856
|
+
markJsonTaskDone(jsonData, task.jsonPath);
|
|
857
|
+
await fs.writeFile(filePath, JSON.stringify(jsonData, null, 2) + "\n", "utf8");
|
|
858
|
+
}
|
|
859
|
+
} else {
|
|
860
|
+
const updated = markTaskDone(latest, task.line ?? 0);
|
|
861
|
+
await fs.writeFile(filePath, updated, "utf8");
|
|
862
|
+
}
|
|
863
|
+
await commitAllIfDirty(repoCwd, `anton: ${task.text}`);
|
|
718
864
|
completed += 1;
|
|
719
865
|
await notify({
|
|
720
866
|
phase: "task_complete",
|
|
@@ -757,10 +903,12 @@ async function runAnton(args) {
|
|
|
757
903
|
task: task.text,
|
|
758
904
|
sessionId: implSessionId
|
|
759
905
|
});
|
|
760
|
-
const implPrompt = planFile ? buildImplementationPrompt(
|
|
906
|
+
const implPrompt = planFile ? buildImplementationPrompt(taskPromptText, planFile, { skipTests }) : buildDirectTaskPrompt(taskPromptText, { skipTests });
|
|
761
907
|
const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
762
908
|
const taskFileRel = path.relative(gitCwd, filePath).replace(/\\/g, "/");
|
|
763
909
|
const changeIgnores = taskFileRel.startsWith("..") ? [] : [taskFileRel];
|
|
910
|
+
await hardCleanRepo(repoCwd);
|
|
911
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
764
912
|
await runAgentTask({
|
|
765
913
|
message: implPrompt,
|
|
766
914
|
sessionId: implSessionId,
|
|
@@ -772,30 +920,44 @@ async function runAnton(args) {
|
|
|
772
920
|
workspaceDir: args.workspaceDir
|
|
773
921
|
});
|
|
774
922
|
let changedAfter = await getGitChangedFileCount(gitCwd, changeIgnores);
|
|
923
|
+
if (mode === "direct" && changedBeforeTask !== null && changedAfter !== null && changedAfter <= changedBeforeTask && !allowNoChanges) throw new Error("Implementation made no repository changes; refusing to mark task complete");
|
|
775
924
|
if (mode === "preflight" && changedBeforeTask !== null && changedAfter !== null && changedAfter <= changedBeforeTask) {
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
925
|
+
if (!allowNoChanges) {
|
|
926
|
+
const retrySessionId = `anton-impl-retry-${Date.now()}-${taskNum}`;
|
|
927
|
+
await notify({
|
|
928
|
+
phase: "task_agent_spawned",
|
|
929
|
+
index: taskNum,
|
|
930
|
+
total: pending.length,
|
|
931
|
+
task: `${task.text} (implementation retry)`,
|
|
932
|
+
sessionId: retrySessionId
|
|
933
|
+
});
|
|
934
|
+
await hardCleanRepo(repoCwd);
|
|
935
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
936
|
+
await runAgentTask({
|
|
937
|
+
message: buildImplementationRetryPrompt(taskPromptText, planFile ?? "", { skipTests }),
|
|
938
|
+
sessionId: retrySessionId,
|
|
939
|
+
timeout: defaultTimeout,
|
|
940
|
+
agent: args.agent,
|
|
941
|
+
to: args.to,
|
|
942
|
+
runtime: args.runtime,
|
|
943
|
+
deps: args.deps,
|
|
944
|
+
workspaceDir: args.workspaceDir
|
|
945
|
+
});
|
|
946
|
+
changedAfter = await getGitChangedFileCount(gitCwd, changeIgnores);
|
|
947
|
+
if (changedAfter !== null && changedAfter <= changedBeforeTask) throw new Error("Implementation made no repository changes after retry; refusing to mark task complete");
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
const latest = await fs.readFile(filePath, "utf8");
|
|
951
|
+
if (isJsonTaskFile(filePath)) {
|
|
952
|
+
if (jsonData && task.jsonPath) {
|
|
953
|
+
markJsonTaskDone(jsonData, task.jsonPath);
|
|
954
|
+
await fs.writeFile(filePath, JSON.stringify(jsonData, null, 2) + "\n", "utf8");
|
|
955
|
+
}
|
|
956
|
+
} else {
|
|
957
|
+
const updated = markTaskDone(latest, task.line ?? 0);
|
|
958
|
+
await fs.writeFile(filePath, updated, "utf8");
|
|
796
959
|
}
|
|
797
|
-
|
|
798
|
-
await fs.writeFile(filePath, updated, "utf8");
|
|
960
|
+
await commitAllIfDirty(repoCwd, `anton: ${task.text}`);
|
|
799
961
|
completed += 1;
|
|
800
962
|
await notify({
|
|
801
963
|
phase: "task_complete",
|
|
@@ -804,6 +966,9 @@ async function runAnton(args) {
|
|
|
804
966
|
task: task.text
|
|
805
967
|
});
|
|
806
968
|
} catch (err) {
|
|
969
|
+
try {
|
|
970
|
+
await hardCleanRepo(repoCwd);
|
|
971
|
+
} catch {}
|
|
807
972
|
skipped += 1;
|
|
808
973
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
809
974
|
args.runtime.error(`[Anton] Task failed and was skipped: ${task.text}`);
|