@visorcraft/idlehands 4.2.3 → 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-B8cGzkjD.js → accounts-BDVs8LTu.js} +1 -1
- package/dist/{accounts-D5tB_lO0.js → accounts-CIvVRRHb.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/{accounts-BQC_GRUB.js → accounts-Dk8mJIrQ.js} +6 -6
- package/dist/{acp-cli-BF3FD1qw.js → acp-cli-BEpWQbqb.js} +12 -12
- package/dist/{agent-scope-Bxq1eWbA.js → agent-scope-DyP_tr7s.js} +4 -4
- package/dist/{agent-scope-DbNnv10G.js → agent-scope-RA0zXRpu.js} +3 -3
- package/dist/{agent-via-gateway-BtMWCqx4.js → agent-via-gateway-Bhon8XVm.js} +7 -7
- package/dist/{agent-via-gateway-BN0HMYd7.js → agent-via-gateway-CS-8ChjV.js} +1 -1
- package/dist/{agent-via-gateway-BsTP4WyI.js → agent-via-gateway-DVTkXwmI.js} +60 -60
- package/dist/{agent-via-gateway-9aP1U_YQ.js → agent-via-gateway-Drygi4ty.js} +6 -6
- package/dist/{agents-Bitc3LDE.js → agents-dNuQ9qUa.js} +4 -4
- package/dist/{agents.config-DmFqh5v8.js → agents.config-B_6rOTVW.js} +1 -1
- package/dist/{agents.config-DLjDlH4M.js → agents.config-DCNsF8yj.js} +2 -2
- package/dist/{anton-C3Y_hYo3.js → anton-BmSsFmSP.js} +225 -41
- package/dist/{anton-Dn_Pc4P0.js → anton-Cw4-BgtA.js} +229 -45
- package/dist/{anton-CmB9XtGt.js → anton-D375-ufL.js} +226 -41
- package/dist/{anton-DqSQ27RK.js → anton-Di5VPZiI.js} +229 -44
- package/dist/{api-key-rotation-Bj8Q_8ST.js → api-key-rotation-B-FTJm5p.js} +2 -2
- package/dist/{audio-preflight-qkU2lsDn.js → audio-preflight-CW8IH1lU.js} +35 -35
- 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-BKDISagq.js → auth-choice-C8Tj46gd.js} +10 -10
- package/dist/{auth-choice-nFObMeHm.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-store-Bb4aajHu.js → auth-store-DXT-l7fO.js} +12 -12
- package/dist/{auth-token-ChjRQYCt.js → auth-token-BJq87X3o.js} +2 -2
- package/dist/{banner-IB7Cylyq.js → banner-B7_rwm3P.js} +1 -1
- package/dist/{bindings-DorAphZu.js → bindings-B59Q7nsk.js} +2 -2
- package/dist/{bindings-CLZIJ0Eo.js → bindings-D3b5Fmc9.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 +60 -60
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +3 -3
- package/dist/bundled/session-memory/handler.js +60 -60
- 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-D_TMOGQ0.js} +3 -3
- package/dist/{channel-activity-DdL3RAv_.js → channel-activity-DaCsrdWK.js} +3 -3
- package/dist/{channel-options-DcxOFxzU.js → channel-options-DTqGMcYU.js} +5 -5
- package/dist/{channel-options-B2LlZj0S.js → channel-options-Dxc1A5iC.js} +1 -1
- package/dist/{channel-selection-DLfBD-c0.js → channel-selection-ZxRkxpuF.js} +2 -2
- package/dist/{channel-web-XLD22Zzs.js → channel-web-BPlapQS3.js} +2 -2
- package/dist/{channel-web-Cu_AcYVB.js → channel-web-CgvDCMru.js} +26 -26
- package/dist/{channels-cli-DZWOS5d6.js → channels-cli-BfUIc52d.js} +7 -7
- package/dist/{channels-cli-BWMjEguK.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-BcJB6PcM.js} +9 -9
- package/dist/{chrome-CT_a9OgI.js → chrome-DEnkfZ9p.js} +29 -29
- package/dist/{chrome-DeAzXWRb.js → chrome-VBsQfIrt.js} +4 -4
- package/dist/{chunk-Djk-9JeT.js → chunk-CMpX7Jaz.js} +1 -1
- 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-Bq5b8f58.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-CeIfSw9l.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/{commands-registry-_TBHHpvt.js → commands-registry-j4vAzcF2.js} +5 -5
- package/dist/{completion-cli-Dh0MVQJ6.js → completion-cli-BXA0UZAn.js} +2 -2
- package/dist/{completion-cli-ClOKco1N.js → completion-cli-DqJEZMJt.js} +4 -4
- package/dist/{config-cli-BaNTuQ52.js → config-cli-97SkUuuT.js} +13 -13
- package/dist/{config-cli-CpgR8c8d.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-C4n13-o1.js → configure-CmTKkn3M.js} +21 -21
- package/dist/{configure-BfzLtTQH.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/{deliver-Db2xqgLg.js → deliver-BUiQ-9fE.js} +20 -20
- package/dist/{deps-BH4bzzRD.js → deps-BV_-fxNb.js} +1 -1
- package/dist/{deps-CnUuBleG.js → deps-Bc5yBM-U.js} +6 -6
- package/dist/{deps-c-x2UBbd.js → deps-CDLYb9a7.js} +1 -1
- package/dist/{deps-CjvmCq-K.js → deps-IpeS3x5O.js} +6 -6
- package/dist/{devices-cli-HTdRxjTf.js → devices-cli-DKK65S9Z.js} +12 -12
- package/dist/{diagnostic-BvlZ0Sot.js → diagnostic-4owMk4vH.js} +1 -1
- 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-ejUetwTC.js → dock-BgOmHcbh.js} +6 -6
- 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-BUUL91Dy.js → doctor-completion-BkS6Phs6.js} +2 -2
- package/dist/{doctor-completion-IIzctUix.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-Bg9a1fXU.js → emergency-stop-DKLc7AmD.js} +7 -7
- package/dist/{emergency-stop-CjxNr2he.js → emergency-stop-DMTHxdvC.js} +2 -2
- package/dist/emergency-stop-Dxp2e3a9.js +113 -0
- 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-q-PhWbb_.js → env-B5G1qwGc.js} +1 -1
- package/dist/{env-dMo-pLSc.js → env-Bx-F45X5.js} +1 -1
- package/dist/{errors-C4SHjIZK.js → errors-C_0nm4TJ.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-CcfDZXe9.js → fetch-guard-iuQsIjqN.js} +1 -1
- package/dist/{fetch-guard-C-IWepjW.js → fetch-guard-yUZu1Vzc.js} +1 -1
- package/dist/{frontmatter-pTUG4Sx_.js → frontmatter-BOudmHMS.js} +2 -2
- package/dist/{frontmatter-x0EBRtDF.js → frontmatter-D-sQ_Hqk.js} +2 -2
- package/dist/{fs-safe-2l05hI1Y.js → fs-safe-CYUaAFO9.js} +2 -2
- package/dist/{gateway-cli-Bcamqq7Z.js → gateway-cli-E6DUzxEX.js} +9 -9
- package/dist/{gateway-cli-C2jOWbsN.js → gateway-cli-FNbwxOiN.js} +123 -123
- package/dist/{gateway-rpc-C_He5poS.js → gateway-rpc-BBFG1T-M.js} +3 -3
- package/dist/{gemini-auth-DLSGffQK.js → gemini-auth-CIyaa44H.js} +2 -2
- package/dist/{github-copilot-token-BjmEQcmi.js → github-copilot-token-Dgt6cnsM.js} +7 -7
- package/dist/{gmail-setup-utils-D1VrLZhD.js → gmail-setup-utils-DRJTQOMM.js} +3 -3
- package/dist/{health-3B8ANLz5.js → health-CGW71CVV.js} +15 -15
- package/dist/{health-BTU1dGHH.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-BOc85-37.js → hooks-cli-BnVSeWIo.js} +3 -3
- package/dist/{hooks-cli-CdEcbqPF.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-Dlu13Ebx.js → image-D8b_rlQC.js} +6 -6
- 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/{image-ops-J8P5zOFm.js → image-ops-D1KtygWz.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-BT5aAdU9.js → ir-B7IBoKLy.js} +5 -5
- 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 +60 -60
- package/dist/{local-roots-d4y0lvs2.js → local-roots-KN4Hp1yZ.js} +5 -5
- 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-C2X0In6m.js → login-CFr5vJmR.js} +6 -6
- package/dist/{login-BVf_DBja.js → login-CfUhrgWT.js} +6 -6
- package/dist/{login-qr-C17PY0rr.js → login-qr-CFFFOjOl.js} +11 -11
- 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-CgzA1hKo.js → manager-BE_76jWB.js} +15 -15
- 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-R8VTpfE9.js → markdown-tables-CzsockiZ.js} +1 -1
- 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-ZdI1-uUh.js → message-channel-C8QtrwEU.js} +1 -1
- 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/{model-selection-C5hI1dum.js → model-selection-1MMYqY6M.js} +41 -41
- package/dist/{models-CIS_OcjC.js → models-C1ouQF8k.js} +2 -2
- package/dist/{models-cli-6njz6jJl.js → models-cli-BhFUh61j.js} +4 -4
- package/dist/{models-cli-BS7pagh1.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-CkpVYF4z.js → npm-resolution-D30nzRfu.js} +4 -4
- package/dist/{npm-resolution-DWXTcpqo.js → npm-resolution-Ds0qg1EX.js} +1 -1
- package/dist/{onboard-BYOBc47n.js → onboard-Cv6q6Usf.js} +9 -9
- package/dist/{onboard-b_mYsSas.js → onboard-NcA_odSQ.js} +2 -2
- package/dist/{onboard-channels-sslbndju.js → onboard-channels-C1E5DpTR.js} +17 -17
- package/dist/{onboard-channels-CzB1oDsu.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-qxSl79A_.js → onboarding-CX8a934a.js} +16 -16
- package/dist/{onboarding-BfDz8n6H.js → onboarding-CpGBbVTj.js} +3 -3
- package/dist/{onboarding.finalize-DeEXxkOU.js → onboarding.finalize-BnKQeFN8.js} +7 -7
- package/dist/{onboarding.finalize-DGZkcjrv.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-CdY_AskB.js → outbound-BNh6PpQb.js} +6 -6
- package/dist/{outbound-DClHNQfl.js → outbound-DPTxwchq.js} +6 -6
- package/dist/{outbound-attachment-IfeZJAKk.js → outbound-attachment-3I6GzwDe.js} +2 -2
- 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-alias-guards-BZmt6hFb.js → path-alias-guards-Cu1nXNMM.js} +1 -1
- 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/{paths-DQpv9a3Q.js → paths-BYNVLNi_.js} +5 -5
- package/dist/{paths-D3p7ZvM6.js → paths-D_qUel1T.js} +3 -3
- package/dist/{pi-embedded-E9CG0AZO.js → pi-embedded-0YMQWOc5.js} +32 -28
- package/dist/{pi-embedded-xW12sr9Q.js → pi-embedded-BO8wzB4O.js} +185 -181
- 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-embedded-helpers-B3ceCcxm.js → pi-embedded-helpers-CghCLoPo.js} +24 -24
- package/dist/{pi-model-discovery-BEKzIGSg.js → pi-model-discovery-BIP3RjXl.js} +1 -1
- package/dist/{pi-model-discovery-Dlx4RLWo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
- 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-CY1u8bd9.js → plugin-registry-Cp2q0pVP.js} +1 -1
- package/dist/{plugin-registry-CJfl54B-.js → plugin-registry-DceNUcJc.js} +4 -4
- package/dist/plugin-sdk/{agent-via-gateway-NXyTgftN.js → agent-via-gateway-MuDsrNW6.js} +2 -2
- package/dist/plugin-sdk/{anton-8LTiJnvw.js → anton-CkJKOeKT.js} +225 -41
- package/dist/plugin-sdk/{channel-web-DEl6BZu6.js → channel-web-B6pGyJpM.js} +2 -2
- package/dist/plugin-sdk/commands/anton.d.ts +28 -4
- package/dist/plugin-sdk/{deps-CdRm6UCM.js → deps-FuyQakmK.js} +1 -1
- package/dist/plugin-sdk/{emergency-stop-vr_MLBH0.js → emergency-stop-Ci4JC4dU.js} +2 -2
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{reply-Cii_-apO.js → reply-BTVimsoK.js} +17 -13
- package/dist/plugin-sdk/{web-BrcYG4Cd.js → web-HiiN5NkP.js} +3 -3
- package/dist/{plugins-DYr-HHj0.js → plugins-CRB60mCJ.js} +10 -10
- package/dist/{plugins-Bj6rzE-9.js → plugins-D46VZh7u.js} +5 -5
- package/dist/{plugins-cli-BsCu9ZxX.js → plugins-cli-2wK7R85Y.js} +3 -3
- package/dist/{plugins-cli-rEURRyag.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-CtFnQFId.js → program-CbwFv75G.js} +8 -8
- package/dist/{program-context-BsCSqznM.js → program-context-Ck-chzM_.js} +43 -43
- package/dist/{progress-BN8aygvh.js → progress-BQLz1r3L.js} +1 -1
- package/dist/{prompt-select-styled-BKPmN1HP.js → prompt-select-styled-DJ5ONfKl.js} +4 -4
- package/dist/{prompt-select-styled-BB8mtFS9.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-ar7t02s1.js → provider-auth-helpers-Ci_EGvif.js} +7 -7
- package/dist/{provider-auth-helpers-486CLY6U.js → provider-auth-helpers-DGTDTeE5.js} +1 -1
- package/dist/{push-apns-AHniql5u.js → push-apns-BSYjGCn9.js} +5 -5
- package/dist/{push-apns-CJJ-O5fL.js → push-apns-Dz4hOY07.js} +1 -1
- package/dist/{pw-ai-DRVoaq_u.js → pw-ai-7i9eGnLh.js} +13 -13
- package/dist/{pw-ai-DIV4PcIo.js → pw-ai-CfYaR1K2.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/{qmd-manager-BRvg3Rx2.js → qmd-manager-B_GgyQQ0.js} +8 -8
- 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/{query-expansion-DHuNyU-_.js → query-expansion-DEq020GG.js} +5 -5
- package/dist/{redact-CIBM9Zli.js → redact-B_4KNlXs.js} +1 -1
- package/dist/{redact-1Y0KPNtr.js → redact-Bvpf-ATQ.js} +1 -1
- package/dist/{redact-snapshot-DQ_VN7gO.js → redact-snapshot-BbEVKv0k.js} +2 -2
- package/dist/{register.agent-DswuLYd8.js → register.agent-BZh3UWw3.js} +9 -9
- package/dist/{register.agent-TMXz7bwT.js → register.agent-CTPc2Q9m.js} +110 -110
- package/dist/{register.configure-BFWnHArB.js → register.configure-BzTxX7SG.js} +8 -8
- package/dist/register.configure-vVDARCph.js +168 -0
- package/dist/{register.maintenance-Dj8A9Hj7.js → register.maintenance-BNHEV-po.js} +9 -9
- package/dist/{register.maintenance-C2B-RPnI.js → register.maintenance-DTXn32on.js} +108 -108
- package/dist/{register.message-DWm_Lizi.js → register.message-BYWAEsKP.js} +3 -3
- package/dist/{register.message-CR569hCK.js → register.message-CHf51taw.js} +90 -90
- package/dist/{register.onboard-CBlF61-5.js → register.onboard-CxwDhXRS.js} +29 -29
- package/dist/{register.onboard-BjMv8Rc2.js → register.onboard-vruDRZdG.js} +2 -2
- package/dist/{register.orchestrator-anton-Cvw__ptb.js → register.orchestrator-anton-GSAFxzGa.js} +2 -2
- package/dist/{register.orchestrator-anton-CehFZHyG.js → register.orchestrator-anton-qBr2ZYrk.js} +7 -7
- package/dist/{register.setup-B8TX05TM.js → register.setup-B0zmlTXV.js} +2 -2
- package/dist/{register.setup-BrXOX1jn.js → register.setup-DlFQIXoR.js} +31 -31
- package/dist/{register.status-health-sessions-DexyefSU.js → register.status-health-sessions-16paRP9f.js} +101 -101
- package/dist/{register.status-health-sessions-C-3gl9qR.js → register.status-health-sessions-CtXhn9Dq.js} +4 -4
- package/dist/{register.subclis-CFcZU6Sc.js → register.subclis-lskGgus9.js} +9 -9
- package/dist/{replies-CWMglpIw.js → replies-6_GxvQYe.js} +3 -3
- package/dist/{replies-2C16fnBP.js → replies-hSFVxL4h.js} +3 -3
- package/dist/{reply-dLJYULbb.js → reply-DfRr_KdS.js} +120 -116
- package/dist/{reply-prefix-CXLm7TNq.js → reply-prefix-BUgeSN2R.js} +1 -1
- package/dist/{reply-prefix-DCljZiIB.js → reply-prefix-C3y4zpTl.js} +1 -1
- package/dist/{resolve-route-BrHTn_2g.js → resolve-route-D_AbcmD6.js} +4 -4
- package/dist/{resolve-route-ClcifpKn.js → resolve-route-DuttYY7A.js} +4 -4
- package/dist/{retry-CG6cMRDQ.js → retry-BeB9WenR.js} +1 -1
- 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-xc_0T201.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/{runner-BkCU-kqs.js → runner-PgRFPYUj.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-DZa8fWSm.js → send-BeIZJuy4.js} +7 -7
- package/dist/{send-Y1hD4tQ1.js → send-C1hvd3bt.js} +6 -6
- package/dist/{send-D_ARyjSf.js → send-C4v0Leny.js} +6 -6
- package/dist/{send-BOxJ4QXF.js → send-D4bMycQu.js} +7 -7
- package/dist/{send-D-UmmCCj.js → send-DQiw_nGD.js} +7 -7
- package/dist/{send-FLdrx-oF.js → send-Dfa3sn6r.js} +24 -24
- package/dist/{send-IlPMLAH-.js → send-DmLC7aEF.js} +10 -10
- 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-CgSZVd8M.js → server-node-events-B_LUFrA_.js} +89 -89
- package/dist/{server-node-events-Dj5jYSln.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/{session-nUPBXeEa.js → session-F_YDS_1V.js} +7 -7
- package/dist/{sessions-DRA4oaxz.js → sessions-3ioSeOA1.js} +41 -41
- 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-commands-BHTBXXVn.js → skill-commands-Ck3flWX7.js} +9 -9
- package/dist/{skill-scanner-BFXxq_hZ.js → skill-scanner-D7mzXRXd.js} +1 -1
- package/dist/{skills-umlGvChF.js → skills-CnAPWfca.js} +22 -22
- 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-CV7OIIGl.js → status-DxcdgCyX.js} +2 -2
- package/dist/{status-Bp-x4GJi.js → status-DzCllHYZ.js} +24 -24
- package/dist/{status.update-Cri65g-V.js → status.update-CTi6vuWj.js} +1 -1
- package/dist/{store-D-ZicQeo.js → store-CvMgrKWx.js} +2 -2
- package/dist/{store-CR1Ag5tw.js → store-kH9wHHbO.js} +2 -2
- package/dist/{subagent-registry-CJX_DOgh.js → subagent-registry-BcpHnckA.js} +17 -13
- package/dist/{subsystem-BTkYq-SM.js → subsystem-CGZX2PBV.js} +1 -1
- package/dist/{subsystem-D7ZepYT1.js → subsystem-tzu-rIAJ.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-Co_R_WKs.js → tables-5k-zOZ-s.js} +1 -1
- 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-B1mcM4WR.js → target-errors-BPfQrPim.js} +2 -2
- package/dist/{target-errors-BhRMVh6a.js → target-errors-bLIVFsbF.js} +2 -2
- package/dist/{tokens-DY5TC4xI.js → tokens-BRLyURxW.js} +1 -1
- package/dist/{tokens-DGajj8M9.js → tokens-Dg-QZ_pN.js} +1 -1
- package/dist/{tool-display-1HTlk4mF.js → tool-display-Dac7lHGW.js} +2 -2
- package/dist/{tool-images-Duuqr4bN.js → tool-images-CHqepyF_.js} +2 -2
- package/dist/{tool-images-ByP8vQ_u.js → tool-images-CcGZpzmq.js} +2 -2
- package/dist/{tool-loop-detection-CjWRg_4q.js → tool-loop-detection-BNGetx3Z.js} +3 -3
- 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-Crq7aGUA.js → update-cli-B53rJqAV.js} +115 -115
- package/dist/{update-cli-z5fJRDU4.js → update-cli-CTETjvrF.js} +9 -9
- package/dist/{update-runner-BkSrWsKc.js → update-runner-BGAdvd0c.js} +1 -1
- package/dist/{update-runner-BLquhnrL.js → update-runner-BOGIWX18.js} +5 -5
- package/dist/{utils-D9wGoiU9.js → utils-CTFLl_ji.js} +18 -18
- package/dist/{utils-BfmeFj7S.js → utils-CXzXXV2o.js} +2 -2
- package/dist/{web-B267OUXc.js → web-3nv8mK11.js} +3 -3
- package/dist/{web-BKSxBqZw.js → web-C7HXffph.js} +8 -8
- package/dist/web-CqOVupWI.js +123 -0
- package/dist/{web-CNowaS6B.js → web-Dwj9igbL.js} +66 -66
- 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/{whatsapp-actions-BJ6kVDXi.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
- 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-tAtkoD_r.js → workspace-DBFSzT6O.js} +18 -18
- package/dist/{workspace-dirs-C34pt6Pa.js → workspace-dirs-SsExQ3Bz.js} +1 -1
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/hand/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/package.json +1 -1
- package/package.json +4 -1
- package/dist/cli-BN8I3vTa.js +0 -162
- package/dist/emergency-stop-Chw8LiXP.js +0 -113
- package/dist/emergency-stop-HaFAEk9Z.js +0 -162
- package/dist/register.configure-DlxSU46q.js +0 -168
- package/dist/web-BKs38Jg4.js +0 -123
|
@@ -77,13 +77,126 @@ function markTaskDone(markdown, lineNo) {
|
|
|
77
77
|
lines[idx] = (lines[idx] ?? "").replace(/^(\s*)- \[ \] /, "$1- [x] ");
|
|
78
78
|
return `${lines.join("\n")}\n`;
|
|
79
79
|
}
|
|
80
|
-
function
|
|
80
|
+
function isJsonTaskFile(taskFile) {
|
|
81
|
+
return taskFile.toLowerCase().endsWith(".json");
|
|
82
|
+
}
|
|
83
|
+
function parsePendingTasksFromJson(jsonText) {
|
|
84
|
+
const data = JSON.parse(jsonText);
|
|
85
|
+
const pending = [];
|
|
86
|
+
const joinDetails = (parentDetails, subtasks) => {
|
|
87
|
+
const details = [];
|
|
88
|
+
if (typeof parentDetails === "string" && parentDetails.trim()) details.push(parentDetails.trim());
|
|
89
|
+
const lines = [];
|
|
90
|
+
for (const sub of subtasks) {
|
|
91
|
+
if (!sub || typeof sub !== "object") continue;
|
|
92
|
+
const subObj = sub;
|
|
93
|
+
if (subObj.done === true) continue;
|
|
94
|
+
const name = typeof subObj.name === "string" ? subObj.name.trim() : "";
|
|
95
|
+
if (!name) continue;
|
|
96
|
+
const subDetails = typeof subObj.details === "string" ? subObj.details.trim() : "";
|
|
97
|
+
lines.push(subDetails ? `- ${name}: ${subDetails}` : `- ${name}`);
|
|
98
|
+
}
|
|
99
|
+
if (lines.length > 0) details.push(`Subtasks:\n${lines.join("\n")}`);
|
|
100
|
+
return details.length > 0 ? details.join("\n\n") : void 0;
|
|
101
|
+
};
|
|
102
|
+
const pushTask = (jsonPath, obj) => {
|
|
103
|
+
if (obj.done === true) return;
|
|
104
|
+
const text = typeof obj.name === "string" ? obj.name.trim() : "";
|
|
105
|
+
if (!text) return;
|
|
106
|
+
const subtasks = Array.isArray(obj.subtasks) ? obj.subtasks : [];
|
|
107
|
+
pending.push({
|
|
108
|
+
text,
|
|
109
|
+
details: joinDetails(obj.details, subtasks),
|
|
110
|
+
jsonPath
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
if (data && typeof data === "object") {
|
|
114
|
+
const root = data;
|
|
115
|
+
const tasks = root.tasks;
|
|
116
|
+
if (Array.isArray(tasks)) for (let i = 0; i < tasks.length; i++) {
|
|
117
|
+
const task = tasks[i];
|
|
118
|
+
if (!task || typeof task !== "object") continue;
|
|
119
|
+
pushTask(["tasks", i], task);
|
|
120
|
+
}
|
|
121
|
+
else if ("name" in root || "subtasks" in root) pushTask([], root);
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
pending,
|
|
125
|
+
data
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function markJsonTaskDone(data, jsonPath) {
|
|
129
|
+
if (!jsonPath) return;
|
|
130
|
+
let cur = data;
|
|
131
|
+
for (const key of jsonPath) {
|
|
132
|
+
if (typeof key === "number") {
|
|
133
|
+
if (!Array.isArray(cur)) return;
|
|
134
|
+
cur = cur[key];
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if (!cur || typeof cur !== "object" || Array.isArray(cur)) return;
|
|
138
|
+
cur = cur[key];
|
|
139
|
+
}
|
|
140
|
+
if (!cur || typeof cur !== "object" || Array.isArray(cur)) return;
|
|
141
|
+
cur.done = true;
|
|
142
|
+
}
|
|
143
|
+
function formatTaskForPrompt(task) {
|
|
144
|
+
if (task.details) return `${task.text}
|
|
145
|
+
Details: ${task.details}`;
|
|
146
|
+
return task.text;
|
|
147
|
+
}
|
|
148
|
+
function looksLikeVersionBumpTask(taskText) {
|
|
149
|
+
return /bump\s+version/i.test(taskText) || /version\s+(to|\d+\.)/i.test(taskText);
|
|
150
|
+
}
|
|
151
|
+
function allowsNoRepoChanges(taskText) {
|
|
152
|
+
return /(review|verify|ensure|confirm|check)/i.test(taskText) && /(doc|docs|documentation|readme)/i.test(taskText);
|
|
153
|
+
}
|
|
154
|
+
async function ensureRepoCleanOrThrow(cwd) {
|
|
155
|
+
const { stdout } = await execFile$1("git", ["status", "--porcelain"], { cwd });
|
|
156
|
+
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}`);
|
|
157
|
+
}
|
|
158
|
+
async function hardCleanRepo(cwd) {
|
|
159
|
+
await execFile$1("git", ["reset", "--hard"], { cwd });
|
|
160
|
+
await execFile$1("git", [
|
|
161
|
+
"clean",
|
|
162
|
+
"-fd",
|
|
163
|
+
"-e",
|
|
164
|
+
".agents/tasks",
|
|
165
|
+
"-e",
|
|
166
|
+
"node_modules"
|
|
167
|
+
], { cwd });
|
|
168
|
+
}
|
|
169
|
+
async function commitAllIfDirty(cwd, message) {
|
|
170
|
+
const { stdout } = await execFile$1("git", ["status", "--porcelain"], { cwd });
|
|
171
|
+
if (stdout.trim().length === 0) return;
|
|
172
|
+
await execFile$1("git", ["add", "-A"], { cwd });
|
|
173
|
+
try {
|
|
174
|
+
await execFile$1("git", [
|
|
175
|
+
"restore",
|
|
176
|
+
"--staged",
|
|
177
|
+
".agents/tasks"
|
|
178
|
+
], { cwd });
|
|
179
|
+
} catch {}
|
|
180
|
+
const { stdout: staged } = await execFile$1("git", [
|
|
181
|
+
"diff",
|
|
182
|
+
"--cached",
|
|
183
|
+
"--name-only"
|
|
184
|
+
], { cwd });
|
|
185
|
+
if (staged.trim().length === 0) return;
|
|
186
|
+
await execFile$1("git", [
|
|
187
|
+
"commit",
|
|
188
|
+
"-m",
|
|
189
|
+
message
|
|
190
|
+
], { cwd });
|
|
191
|
+
}
|
|
192
|
+
function buildDirectTaskPrompt(task, opts) {
|
|
193
|
+
const skipTests = Boolean(opts?.skipTests);
|
|
81
194
|
return [
|
|
82
195
|
"You are executing one item from a managed checklist.",
|
|
83
196
|
`Task: ${task}`,
|
|
84
197
|
"Rules:",
|
|
85
198
|
"1) Make the minimal code changes required for this task.",
|
|
86
|
-
"2) Run targeted tests for your change.",
|
|
199
|
+
skipTests ? "2) Skip tests for this task unless you changed executable code." : "2) Run targeted tests for your change.",
|
|
87
200
|
"3) Return a concise completion summary."
|
|
88
201
|
].join("\n");
|
|
89
202
|
}
|
|
@@ -137,7 +250,8 @@ function buildReviewPrompt(planFilePath) {
|
|
|
137
250
|
|
|
138
251
|
Do not skip reading the file. Do not return JSON without first reading and updating the plan.`;
|
|
139
252
|
}
|
|
140
|
-
function buildImplementationPrompt(task, planFilePath) {
|
|
253
|
+
function buildImplementationPrompt(task, planFilePath, opts) {
|
|
254
|
+
const skipTests = Boolean(opts?.skipTests);
|
|
141
255
|
return [
|
|
142
256
|
`Complete this task: ${task}`,
|
|
143
257
|
"",
|
|
@@ -148,11 +262,12 @@ function buildImplementationPrompt(task, planFilePath) {
|
|
|
148
262
|
"Describing changes in text or showing diffs without applying them does NOT count.",
|
|
149
263
|
"Do not ask for confirmation — apply the changes now.",
|
|
150
264
|
"",
|
|
151
|
-
"After making the edits, run any verification steps from the plan.",
|
|
265
|
+
skipTests ? "Skip tests for this task unless you changed executable code." : "After making the edits, run any verification steps from the plan.",
|
|
152
266
|
"Then return a brief summary of what you changed."
|
|
153
267
|
].join("\n");
|
|
154
268
|
}
|
|
155
|
-
function buildImplementationRetryPrompt(task, planFilePath) {
|
|
269
|
+
function buildImplementationRetryPrompt(task, planFilePath, opts) {
|
|
270
|
+
const skipTests = Boolean(opts?.skipTests);
|
|
156
271
|
return [
|
|
157
272
|
"Your previous implementation attempt made zero repository changes.",
|
|
158
273
|
`Task: ${task}`,
|
|
@@ -162,12 +277,27 @@ function buildImplementationRetryPrompt(task, planFilePath) {
|
|
|
162
277
|
"Required sequence:",
|
|
163
278
|
"1) Read the plan file.",
|
|
164
279
|
"2) Use edit/write to modify repository files.",
|
|
165
|
-
"3) Optionally run verification.",
|
|
280
|
+
skipTests ? "3) Skip tests for this task unless you changed executable code." : "3) Optionally run verification.",
|
|
166
281
|
"4) Return a short summary.",
|
|
167
282
|
"",
|
|
168
283
|
"If you only provide analysis/diff text without edit/write tool calls, this attempt fails."
|
|
169
284
|
].join("\n");
|
|
170
285
|
}
|
|
286
|
+
function resolveAntonExecutionConfig(params) {
|
|
287
|
+
const antonCfg = params.config ?? {};
|
|
288
|
+
const preflightCfg = antonCfg.preflight ?? {};
|
|
289
|
+
const requestedMode = params.modeOverride ?? antonCfg.mode ?? "direct";
|
|
290
|
+
const mode = requestedMode === "preflight" && preflightCfg.enabled === false ? "direct" : requestedMode;
|
|
291
|
+
const taskTimeoutSec = antonCfg.taskTimeoutSec ?? 1200;
|
|
292
|
+
return {
|
|
293
|
+
mode,
|
|
294
|
+
requirementsReview: antonCfg.requirementsReview ?? preflightCfg.requirementsReview ?? false,
|
|
295
|
+
taskTimeoutSec,
|
|
296
|
+
discoveryTimeoutSec: antonCfg.discoveryTimeoutSec ?? preflightCfg.discoveryTimeoutSec ?? taskTimeoutSec,
|
|
297
|
+
reviewTimeoutSec: antonCfg.reviewTimeoutSec ?? preflightCfg.reviewTimeoutSec ?? taskTimeoutSec,
|
|
298
|
+
preflightMaxRetries: antonCfg.preflightMaxRetries ?? preflightCfg.maxRetries ?? 2
|
|
299
|
+
};
|
|
300
|
+
}
|
|
171
301
|
function formatDuration(ms) {
|
|
172
302
|
const seconds = Math.floor(ms / 1e3);
|
|
173
303
|
if (seconds < 60) return `${seconds}s`;
|
|
@@ -232,7 +362,7 @@ async function loadAntonConfig() {
|
|
|
232
362
|
}
|
|
233
363
|
}
|
|
234
364
|
async function runAgentTask(args) {
|
|
235
|
-
const { agentCliCommand } = await import("./agent-via-gateway-
|
|
365
|
+
const { agentCliCommand } = await import("./agent-via-gateway-MuDsrNW6.js");
|
|
236
366
|
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;
|
|
237
367
|
const result = await agentCliCommand({
|
|
238
368
|
message: args.message,
|
|
@@ -376,8 +506,11 @@ async function runDiscoveryPhase(args) {
|
|
|
376
506
|
task: `Discovery (attempt ${attempt + 1})`,
|
|
377
507
|
sessionId
|
|
378
508
|
});
|
|
509
|
+
const discoveryRepoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(args.taskFile);
|
|
510
|
+
await hardCleanRepo(discoveryRepoCwd);
|
|
511
|
+
await ensureRepoCleanOrThrow(discoveryRepoCwd);
|
|
379
512
|
const firstPass = await runAgentTask({
|
|
380
|
-
message: buildDiscoveryPrompt(args.task
|
|
513
|
+
message: buildDiscoveryPrompt(formatTaskForPrompt(args.task), args.taskFile, planFile),
|
|
381
514
|
sessionId,
|
|
382
515
|
timeout: args.timeout,
|
|
383
516
|
agent: args.agent,
|
|
@@ -445,8 +578,10 @@ async function runDiscoveryPhase(args) {
|
|
|
445
578
|
task: `Discovery repair (attempt ${attempt + 1})`,
|
|
446
579
|
sessionId: repairSessionId
|
|
447
580
|
});
|
|
581
|
+
await hardCleanRepo(discoveryRepoCwd);
|
|
582
|
+
await ensureRepoCleanOrThrow(discoveryRepoCwd);
|
|
448
583
|
const repairPass = await runAgentTask({
|
|
449
|
-
message: buildDiscoveryRepairPrompt(args.task
|
|
584
|
+
message: buildDiscoveryRepairPrompt(formatTaskForPrompt(args.task), args.taskFile, declaredPlanFile),
|
|
450
585
|
sessionId: repairSessionId,
|
|
451
586
|
timeout: args.timeout,
|
|
452
587
|
agent: args.agent,
|
|
@@ -544,6 +679,9 @@ async function runReviewPhase(args) {
|
|
|
544
679
|
task: "Requirements review",
|
|
545
680
|
sessionId
|
|
546
681
|
});
|
|
682
|
+
const reviewRepoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : process.cwd();
|
|
683
|
+
await hardCleanRepo(reviewRepoCwd);
|
|
684
|
+
await ensureRepoCleanOrThrow(reviewRepoCwd);
|
|
547
685
|
await runAgentTask({
|
|
548
686
|
message: buildReviewPrompt(args.planFile),
|
|
549
687
|
sessionId,
|
|
@@ -579,7 +717,14 @@ async function runReviewPhase(args) {
|
|
|
579
717
|
}
|
|
580
718
|
async function runAnton(args) {
|
|
581
719
|
const filePath = path.resolve(args.taskFile);
|
|
582
|
-
const
|
|
720
|
+
const raw = await fs.readFile(filePath, "utf8");
|
|
721
|
+
let pending = [];
|
|
722
|
+
let jsonData;
|
|
723
|
+
if (isJsonTaskFile(filePath)) {
|
|
724
|
+
const parsed = parsePendingTasksFromJson(raw);
|
|
725
|
+
pending = parsed.pending;
|
|
726
|
+
jsonData = parsed.data;
|
|
727
|
+
} else pending = parsePendingTasks(raw);
|
|
583
728
|
const notify = args.onProgress ?? (async () => {});
|
|
584
729
|
if (args.dryRun) {
|
|
585
730
|
args.runtime.log(`Dry run: ${pending.length} pending task(s)`);
|
|
@@ -598,16 +743,22 @@ async function runAnton(args) {
|
|
|
598
743
|
return;
|
|
599
744
|
}
|
|
600
745
|
const antonCfg = await loadAntonConfig();
|
|
601
|
-
const
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
const
|
|
606
|
-
const
|
|
746
|
+
const execution = resolveAntonExecutionConfig({
|
|
747
|
+
config: antonCfg,
|
|
748
|
+
modeOverride: args.mode
|
|
749
|
+
});
|
|
750
|
+
const mode = execution.mode;
|
|
751
|
+
const requirementsReview = execution.requirementsReview;
|
|
752
|
+
const taskTimeout = execution.taskTimeoutSec;
|
|
753
|
+
const discoveryTimeout = execution.discoveryTimeoutSec;
|
|
754
|
+
const reviewTimeout = execution.reviewTimeoutSec;
|
|
755
|
+
const preflightMaxRetries = execution.preflightMaxRetries;
|
|
607
756
|
const planDir = antonCfg.planDir ? path.resolve(antonCfg.planDir) : path.resolve(path.dirname(filePath), ".agents", "tasks");
|
|
608
757
|
const { loadConfig } = await import("./config-CEgzwk0J.js").then((n) => n.t);
|
|
609
758
|
const cfg = loadConfig();
|
|
610
759
|
const defaultTimeout = String(Number.isFinite(args.timeoutSec) && (args.timeoutSec ?? 0) > 0 ? args.timeoutSec : cfg.agents?.defaults?.timeoutSeconds ?? taskTimeout);
|
|
760
|
+
const repoCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
761
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
611
762
|
await acquireLock(Boolean(args.force));
|
|
612
763
|
const startedAt = Date.now();
|
|
613
764
|
await writeState({
|
|
@@ -642,6 +793,9 @@ async function runAnton(args) {
|
|
|
642
793
|
const task = pending[i];
|
|
643
794
|
if (!task) continue;
|
|
644
795
|
const taskNum = i + 1;
|
|
796
|
+
const taskPromptText = formatTaskForPrompt(task);
|
|
797
|
+
const skipTests = looksLikeVersionBumpTask(task.text) || allowsNoRepoChanges(task.text);
|
|
798
|
+
const allowNoChanges = allowsNoRepoChanges(task.text);
|
|
645
799
|
await writeState({
|
|
646
800
|
running: true,
|
|
647
801
|
taskFile: filePath,
|
|
@@ -665,6 +819,8 @@ async function runAnton(args) {
|
|
|
665
819
|
const taskFileRelForBaseline = path.relative(gitCwdForBaseline, filePath).replace(/\\/g, "/");
|
|
666
820
|
const changedBeforeTask = await getGitChangedFileCount(gitCwdForBaseline, taskFileRelForBaseline.startsWith("..") ? [] : [taskFileRelForBaseline]);
|
|
667
821
|
if (mode === "preflight") {
|
|
822
|
+
await hardCleanRepo(repoCwd);
|
|
823
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
668
824
|
const discoveryResult = await runDiscoveryPhase({
|
|
669
825
|
task,
|
|
670
826
|
taskNum,
|
|
@@ -687,8 +843,17 @@ async function runAnton(args) {
|
|
|
687
843
|
total: pending.length,
|
|
688
844
|
task: task.text
|
|
689
845
|
});
|
|
690
|
-
const
|
|
691
|
-
|
|
846
|
+
const latest = await fs.readFile(filePath, "utf8");
|
|
847
|
+
if (isJsonTaskFile(filePath)) {
|
|
848
|
+
if (jsonData && task.jsonPath) {
|
|
849
|
+
markJsonTaskDone(jsonData, task.jsonPath);
|
|
850
|
+
await fs.writeFile(filePath, JSON.stringify(jsonData, null, 2) + "\n", "utf8");
|
|
851
|
+
}
|
|
852
|
+
} else {
|
|
853
|
+
const updated = markTaskDone(latest, task.line ?? 0);
|
|
854
|
+
await fs.writeFile(filePath, updated, "utf8");
|
|
855
|
+
}
|
|
856
|
+
await commitAllIfDirty(repoCwd, `anton: ${task.text}`);
|
|
692
857
|
completed += 1;
|
|
693
858
|
await notify({
|
|
694
859
|
phase: "task_complete",
|
|
@@ -731,10 +896,12 @@ async function runAnton(args) {
|
|
|
731
896
|
task: task.text,
|
|
732
897
|
sessionId: implSessionId
|
|
733
898
|
});
|
|
734
|
-
const implPrompt = planFile ? buildImplementationPrompt(
|
|
899
|
+
const implPrompt = planFile ? buildImplementationPrompt(taskPromptText, planFile, { skipTests }) : buildDirectTaskPrompt(taskPromptText, { skipTests });
|
|
735
900
|
const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
|
|
736
901
|
const taskFileRel = path.relative(gitCwd, filePath).replace(/\\/g, "/");
|
|
737
902
|
const changeIgnores = taskFileRel.startsWith("..") ? [] : [taskFileRel];
|
|
903
|
+
await hardCleanRepo(repoCwd);
|
|
904
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
738
905
|
await runAgentTask({
|
|
739
906
|
message: implPrompt,
|
|
740
907
|
sessionId: implSessionId,
|
|
@@ -746,30 +913,44 @@ async function runAnton(args) {
|
|
|
746
913
|
workspaceDir: args.workspaceDir
|
|
747
914
|
});
|
|
748
915
|
let changedAfter = await getGitChangedFileCount(gitCwd, changeIgnores);
|
|
916
|
+
if (mode === "direct" && changedBeforeTask !== null && changedAfter !== null && changedAfter <= changedBeforeTask && !allowNoChanges) throw new Error("Implementation made no repository changes; refusing to mark task complete");
|
|
749
917
|
if (mode === "preflight" && changedBeforeTask !== null && changedAfter !== null && changedAfter <= changedBeforeTask) {
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
918
|
+
if (!allowNoChanges) {
|
|
919
|
+
const retrySessionId = `anton-impl-retry-${Date.now()}-${taskNum}`;
|
|
920
|
+
await notify({
|
|
921
|
+
phase: "task_agent_spawned",
|
|
922
|
+
index: taskNum,
|
|
923
|
+
total: pending.length,
|
|
924
|
+
task: `${task.text} (implementation retry)`,
|
|
925
|
+
sessionId: retrySessionId
|
|
926
|
+
});
|
|
927
|
+
await hardCleanRepo(repoCwd);
|
|
928
|
+
await ensureRepoCleanOrThrow(repoCwd);
|
|
929
|
+
await runAgentTask({
|
|
930
|
+
message: buildImplementationRetryPrompt(taskPromptText, planFile ?? "", { skipTests }),
|
|
931
|
+
sessionId: retrySessionId,
|
|
932
|
+
timeout: defaultTimeout,
|
|
933
|
+
agent: args.agent,
|
|
934
|
+
to: args.to,
|
|
935
|
+
runtime: args.runtime,
|
|
936
|
+
deps: args.deps,
|
|
937
|
+
workspaceDir: args.workspaceDir
|
|
938
|
+
});
|
|
939
|
+
changedAfter = await getGitChangedFileCount(gitCwd, changeIgnores);
|
|
940
|
+
if (changedAfter !== null && changedAfter <= changedBeforeTask) throw new Error("Implementation made no repository changes after retry; refusing to mark task complete");
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
const latest = await fs.readFile(filePath, "utf8");
|
|
944
|
+
if (isJsonTaskFile(filePath)) {
|
|
945
|
+
if (jsonData && task.jsonPath) {
|
|
946
|
+
markJsonTaskDone(jsonData, task.jsonPath);
|
|
947
|
+
await fs.writeFile(filePath, JSON.stringify(jsonData, null, 2) + "\n", "utf8");
|
|
948
|
+
}
|
|
949
|
+
} else {
|
|
950
|
+
const updated = markTaskDone(latest, task.line ?? 0);
|
|
951
|
+
await fs.writeFile(filePath, updated, "utf8");
|
|
770
952
|
}
|
|
771
|
-
|
|
772
|
-
await fs.writeFile(filePath, updated, "utf8");
|
|
953
|
+
await commitAllIfDirty(repoCwd, `anton: ${task.text}`);
|
|
773
954
|
completed += 1;
|
|
774
955
|
await notify({
|
|
775
956
|
phase: "task_complete",
|
|
@@ -778,6 +959,9 @@ async function runAnton(args) {
|
|
|
778
959
|
task: task.text
|
|
779
960
|
});
|
|
780
961
|
} catch (err) {
|
|
962
|
+
try {
|
|
963
|
+
await hardCleanRepo(repoCwd);
|
|
964
|
+
} catch {}
|
|
781
965
|
skipped += 1;
|
|
782
966
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
783
967
|
args.runtime.error(`[Anton] Task failed and was skipped: ${task.text}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as buildGroupHistoryKey, f as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-47BV2tLd.js";
|
|
2
2
|
import { i as resolveWhatsAppAccount } from "./accounts-BLYMokxV.js";
|
|
3
|
-
import { A as formatDurationPrecise, Ct as formatInboundEnvelope, Gt as resolveOpenProviderRuntimeGroupPolicy, Lt as resolveDmGroupAccessWithCommandGate, Mt as buildPairingReply, Pt as readStoreAllowFromForDmPolicy, Rt as resolveDmGroupAccessWithLists, Tt as resolveEnvelopeFormatOptions, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Z as resolveMentionGating, _ as resolveInboundDebounceMs, ct as recordPendingHistoryEntryIfEnabled, g as createInboundDebouncer, i as parseActivationCommand, j as enqueueSystemEvent, l as computeBackoff, lt as buildMentionRegexes, m as dispatchReplyWithBufferedBlockDispatcher, nt as buildHistoryContextFromEntries, qt as warnMissingProviderGroupPolicyFallbackOnce, r as normalizeGroupActivation, t as getReplyFromConfig, tt as DEFAULT_GROUP_HISTORY_LIMIT, u as sleepWithAbort, ut as normalizeMentionText, v as hasControlCommand, y as shouldComputeCommandAuthorized, yt as createDedupeCache } from "./reply-
|
|
3
|
+
import { A as formatDurationPrecise, Ct as formatInboundEnvelope, Gt as resolveOpenProviderRuntimeGroupPolicy, Lt as resolveDmGroupAccessWithCommandGate, Mt as buildPairingReply, Pt as readStoreAllowFromForDmPolicy, Rt as resolveDmGroupAccessWithLists, Tt as resolveEnvelopeFormatOptions, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Z as resolveMentionGating, _ as resolveInboundDebounceMs, ct as recordPendingHistoryEntryIfEnabled, g as createInboundDebouncer, i as parseActivationCommand, j as enqueueSystemEvent, l as computeBackoff, lt as buildMentionRegexes, m as dispatchReplyWithBufferedBlockDispatcher, nt as buildHistoryContextFromEntries, qt as warnMissingProviderGroupPolicyFallbackOnce, r as normalizeGroupActivation, t as getReplyFromConfig, tt as DEFAULT_GROUP_HISTORY_LIMIT, u as sleepWithAbort, ut as normalizeMentionText, v as hasControlCommand, y as shouldComputeCommandAuthorized, yt as createDedupeCache } from "./reply-BTVimsoK.js";
|
|
4
4
|
import { r as loadConfig } from "./config-CEgzwk0J.js";
|
|
5
5
|
import { A as shouldLogVerbose, D as logVerbose, I as getChildLogger, d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-Dyj2wV4e.js";
|
|
6
6
|
import { l as normalizeChatChannelId, t as createSubsystemLogger } from "./subsystem-DWPzKeZ0.js";
|
|
@@ -878,7 +878,7 @@ async function monitorWebInbox(options) {
|
|
|
878
878
|
};
|
|
879
879
|
const stopText = (inboundMessage.body ?? "").trim();
|
|
880
880
|
if (stopText) {
|
|
881
|
-
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-
|
|
881
|
+
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Ci4JC4dU.js");
|
|
882
882
|
if (isAbortRequestText(stopText)) {
|
|
883
883
|
const { loadConfig: loadCfg } = await import("./config-CEgzwk0J.js").then((n) => n.t);
|
|
884
884
|
const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
|
|
@@ -94,19 +94,43 @@ export type AntonProgressCallback = (event: AntonProgressEvent) => Promise<void>
|
|
|
94
94
|
export type AntonConfig = {
|
|
95
95
|
/** Execution mode: "direct" (single agent) or "preflight" (discovery → implementation). Default: "direct". */
|
|
96
96
|
mode?: "direct" | "preflight";
|
|
97
|
-
/**
|
|
97
|
+
/** Nested preflight settings used by config wizard/new schema. */
|
|
98
|
+
preflight?: {
|
|
99
|
+
/** When false, preflight mode is disabled and execution falls back to direct mode. */
|
|
100
|
+
enabled?: boolean;
|
|
101
|
+
/** Enable requirements review stage between discovery and implementation. */
|
|
102
|
+
requirementsReview?: boolean;
|
|
103
|
+
/** Discovery-stage timeout in seconds. Falls back to taskTimeoutSec. */
|
|
104
|
+
discoveryTimeoutSec?: number;
|
|
105
|
+
/** Requirements-review-stage timeout in seconds. Falls back to taskTimeoutSec. */
|
|
106
|
+
reviewTimeoutSec?: number;
|
|
107
|
+
/** Max retries for discovery/review before skipping. */
|
|
108
|
+
maxRetries?: number;
|
|
109
|
+
};
|
|
110
|
+
/** Legacy top-level requirements review flag (backward compatibility). */
|
|
98
111
|
requirementsReview?: boolean;
|
|
99
112
|
/** Per-task timeout in seconds. Default: 1200. */
|
|
100
113
|
taskTimeoutSec?: number;
|
|
101
|
-
/**
|
|
114
|
+
/** Legacy top-level discovery timeout in seconds. Falls back to taskTimeoutSec. */
|
|
102
115
|
discoveryTimeoutSec?: number;
|
|
103
|
-
/**
|
|
116
|
+
/** Legacy top-level requirements-review timeout in seconds. Falls back to taskTimeoutSec. */
|
|
104
117
|
reviewTimeoutSec?: number;
|
|
105
|
-
/**
|
|
118
|
+
/** Legacy top-level max retries for discovery/review before skipping. */
|
|
106
119
|
preflightMaxRetries?: number;
|
|
107
120
|
/** Directory to store plan files. Default: .agents/tasks/ relative to workspace. */
|
|
108
121
|
planDir?: string;
|
|
109
122
|
};
|
|
123
|
+
export declare function resolveAntonExecutionConfig(params: {
|
|
124
|
+
config: AntonConfig;
|
|
125
|
+
modeOverride?: "direct" | "preflight";
|
|
126
|
+
}): {
|
|
127
|
+
mode: "direct" | "preflight";
|
|
128
|
+
requirementsReview: boolean;
|
|
129
|
+
taskTimeoutSec: number;
|
|
130
|
+
discoveryTimeoutSec: number;
|
|
131
|
+
reviewTimeoutSec: number;
|
|
132
|
+
preflightMaxRetries: number;
|
|
133
|
+
};
|
|
110
134
|
export declare function formatProgressMessage(event: AntonProgressEvent): string;
|
|
111
135
|
export declare function antonStatus(runtime: RuntimeEnv): Promise<void>;
|
|
112
136
|
export declare function antonStop(runtime: RuntimeEnv): Promise<void>;
|
|
@@ -18,7 +18,7 @@ var deps_exports = /* @__PURE__ */ __exportAll({ createDefaultDeps: () => create
|
|
|
18
18
|
function createDefaultDeps() {
|
|
19
19
|
return {
|
|
20
20
|
sendMessageWhatsApp: async (...args) => {
|
|
21
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
21
|
+
const { sendMessageWhatsApp } = await import("./web-HiiN5NkP.js");
|
|
22
22
|
return await sendMessageWhatsApp(...args);
|
|
23
23
|
},
|
|
24
24
|
sendMessageTelegram: async (...args) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./accounts-BLYMokxV.js";
|
|
2
|
-
import { S as stopSubagentsForRequester, b as formatAbortReplyText, n as abortEmbeddedPiRun, w as clearSessionQueues, x as isAbortRequestText } from "./reply-
|
|
2
|
+
import { S as stopSubagentsForRequester, b as formatAbortReplyText, n as abortEmbeddedPiRun, w as clearSessionQueues, x as isAbortRequestText } from "./reply-BTVimsoK.js";
|
|
3
3
|
import "./paths-CtGV5i8O.js";
|
|
4
4
|
import "./github-copilot-token-CY2euW0d.js";
|
|
5
5
|
import "./config-CEgzwk0J.js";
|
|
@@ -61,7 +61,7 @@ import "./send-B26cNPqY.js";
|
|
|
61
61
|
import "./proxy-C4ewPdlN.js";
|
|
62
62
|
import "./resolve-route-BZABUE4J.js";
|
|
63
63
|
import "./replies-ZovJp-3F.js";
|
|
64
|
-
import "./deps-
|
|
64
|
+
import "./deps-FuyQakmK.js";
|
|
65
65
|
import "./outbound-attachment-BisU5Vji.js";
|
|
66
66
|
|
|
67
67
|
//#region src/auto-reply/reply/emergency-stop.ts
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId, u as resolveThreadSessionKeys } from "./session-key-47BV2tLd.js";
|
|
2
2
|
import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, o as createAccountListHelpers, r as resolveDefaultWhatsAppAccountId } from "./accounts-BLYMokxV.js";
|
|
3
|
-
import { $ as mergeAllowlist, $t as unregisterAcpRuntimeBackend, At as extractToolSend, B as formatDocsLink, Bt as resolveControlCommandGate, D as stripMarkdown, Dt as formatZonedTimestamp, E as processLineMessage, Et as formatUtcTimestamp, Ft as resolveDmAllowState, G as logInboundDrop, Gt as resolveOpenProviderRuntimeGroupPolicy, H as stringEnum, Ht as resetMissingProviderGroupPolicyFallbackWarningsForTesting, It as resolveDmGroupAccessDecision, J as removeAckReactionAfterReply, Jt as isDangerousNameMatchingEnabled, K as logTypingFailure, Kt as resolveRuntimeGroupPolicy, L as resolveDiscordUserAllowlist, Lt as resolveDmGroupAccessWithCommandGate, M as resolveSlackUserAllowlist, N as resolveSlackChannelAllowlist, Nt as DM_GROUP_ACCESS_REASON, O as createReceiptCard, Ot as resolveTimezone, P as detectBinary, Pt as readStoreAllowFromForDmPolicy, Q as resolveMentionGatingWithBypass, Qt as requireAcpRuntimeBackend, R as resolveDiscordChannelAllowlist, Rt as resolveDmGroupAccessWithLists, St as rejectDevicePairing, T as hasMarkdownToConvert, U as recordInboundSession, Ut as resolveAllowlistProviderRuntimeGroupPolicy, V as optionalStringEnum, Vt as GROUP_POLICY_BLOCKED_LABEL, W as logAckFailure, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Xt as getAcpRuntimeBackend, Y as shouldAckReaction, Yt as registerPluginHttpRoute, Z as resolveMentionGating, Zt as registerAcpRuntimeBackend, _t as readRequestBodyWithLimit, a as listLineAccountIds, an as formatAllowlistMatchMeta, at as clearHistoryEntriesIfEnabled, bt as approveDevicePairing, c as resolveLineAccount, cn as BLUEBUBBLES_ACTION_NAMES, ct as recordPendingHistoryEntryIfEnabled, dt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, en as ACP_ERROR_CODES, et as summarizeMapping, ft as DEFAULT_WEBHOOK_MAX_BODY_BYTES, gt as readJsonBodyWithLimit, ht as isRequestBodyLimitError, in as unbindThreadBindingsBySessionKey, it as clearHistoryEntries, jt as issuePairingChallenge, k as attachFooterText, kt as buildMediaPayload, ln as BLUEBUBBLES_GROUP_ACTIONS, mt as installRequestBodyLimitGuard, nn as autoBindSpawnedDiscordSubagent, o as normalizeAccountId$1, on as resolveAllowlistMatchSimple, ot as evictOldHistoryKeys, pt as RequestBodyLimitError, q as createTypingCallbacks, qt as warnMissingProviderGroupPolicyFallbackOnce, rn as listThreadBindingsBySessionKey, rt as buildPendingHistoryContextFromMap, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_ACTIONS, st as recordPendingHistoryEntry, tn as AcpRuntimeError, tt as DEFAULT_GROUP_HISTORY_LIMIT, un as CHANNEL_MESSAGE_ACTION_NAMES, vt as requestBodyErrorToText, wt as formatInboundFromLabel, xt as listDevicePairing, yt as createDedupeCache, z as collectDiscordAuditChannelIds, zt as resolveEffectiveAllowFromLists } from "./reply-
|
|
3
|
+
import { $ as mergeAllowlist, $t as unregisterAcpRuntimeBackend, At as extractToolSend, B as formatDocsLink, Bt as resolveControlCommandGate, D as stripMarkdown, Dt as formatZonedTimestamp, E as processLineMessage, Et as formatUtcTimestamp, Ft as resolveDmAllowState, G as logInboundDrop, Gt as resolveOpenProviderRuntimeGroupPolicy, H as stringEnum, Ht as resetMissingProviderGroupPolicyFallbackWarningsForTesting, It as resolveDmGroupAccessDecision, J as removeAckReactionAfterReply, Jt as isDangerousNameMatchingEnabled, K as logTypingFailure, Kt as resolveRuntimeGroupPolicy, L as resolveDiscordUserAllowlist, Lt as resolveDmGroupAccessWithCommandGate, M as resolveSlackUserAllowlist, N as resolveSlackChannelAllowlist, Nt as DM_GROUP_ACCESS_REASON, O as createReceiptCard, Ot as resolveTimezone, P as detectBinary, Pt as readStoreAllowFromForDmPolicy, Q as resolveMentionGatingWithBypass, Qt as requireAcpRuntimeBackend, R as resolveDiscordChannelAllowlist, Rt as resolveDmGroupAccessWithLists, St as rejectDevicePairing, T as hasMarkdownToConvert, U as recordInboundSession, Ut as resolveAllowlistProviderRuntimeGroupPolicy, V as optionalStringEnum, Vt as GROUP_POLICY_BLOCKED_LABEL, W as logAckFailure, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Xt as getAcpRuntimeBackend, Y as shouldAckReaction, Yt as registerPluginHttpRoute, Z as resolveMentionGating, Zt as registerAcpRuntimeBackend, _t as readRequestBodyWithLimit, a as listLineAccountIds, an as formatAllowlistMatchMeta, at as clearHistoryEntriesIfEnabled, bt as approveDevicePairing, c as resolveLineAccount, cn as BLUEBUBBLES_ACTION_NAMES, ct as recordPendingHistoryEntryIfEnabled, dt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, en as ACP_ERROR_CODES, et as summarizeMapping, ft as DEFAULT_WEBHOOK_MAX_BODY_BYTES, gt as readJsonBodyWithLimit, ht as isRequestBodyLimitError, in as unbindThreadBindingsBySessionKey, it as clearHistoryEntries, jt as issuePairingChallenge, k as attachFooterText, kt as buildMediaPayload, ln as BLUEBUBBLES_GROUP_ACTIONS, mt as installRequestBodyLimitGuard, nn as autoBindSpawnedDiscordSubagent, o as normalizeAccountId$1, on as resolveAllowlistMatchSimple, ot as evictOldHistoryKeys, pt as RequestBodyLimitError, q as createTypingCallbacks, qt as warnMissingProviderGroupPolicyFallbackOnce, rn as listThreadBindingsBySessionKey, rt as buildPendingHistoryContextFromMap, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_ACTIONS, st as recordPendingHistoryEntry, tn as AcpRuntimeError, tt as DEFAULT_GROUP_HISTORY_LIMIT, un as CHANNEL_MESSAGE_ACTION_NAMES, vt as requestBodyErrorToText, wt as formatInboundFromLabel, xt as listDevicePairing, yt as createDedupeCache, z as collectDiscordAuditChannelIds, zt as resolveEffectiveAllowFromLists } from "./reply-BTVimsoK.js";
|
|
4
4
|
import "./paths-CtGV5i8O.js";
|
|
5
5
|
import "./github-copilot-token-CY2euW0d.js";
|
|
6
6
|
import { A as GroupPolicySchema, An as acquireFileLock, D as BlockStreamingCoalesceSchema, E as ToolPolicySchema, F as TtsConfigSchema, I as TtsModeSchema, L as TtsProviderSchema, M as MarkdownTableModeSchema, N as ReplyRuntimeConfigSchemaShape, O as DmConfigSchema, P as TtsAutoSchema, R as normalizeAllowFrom, d as GoogleChatConfigSchema, f as IMessageConfigSchema, g as TelegramConfigSchema, h as SlackConfigSchema, j as MarkdownConfigSchema, jn as withFileLock, k as DmPolicySchema, l as WhatsAppConfigSchema, m as SignalConfigSchema, p as MSTeamsConfigSchema, u as DiscordConfigSchema, z as requireOpenAllowFrom } from "./config-CEgzwk0J.js";
|
|
@@ -52,7 +52,7 @@ import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticE
|
|
|
52
52
|
import { n as extractOriginalFilename } from "./store-CCCXwngh.js";
|
|
53
53
|
import "./pi-embedded-helpers-B68z4sHq.js";
|
|
54
54
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-CnUtsDch.js";
|
|
55
|
-
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-
|
|
55
|
+
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-B6pGyJpM.js";
|
|
56
56
|
import "./thinking-g4Rrlwu4.js";
|
|
57
57
|
import "./image-C_1tftC8.js";
|
|
58
58
|
import "./pi-model-discovery-Dt6899be.js";
|
|
@@ -65,7 +65,7 @@ import "./send-B26cNPqY.js";
|
|
|
65
65
|
import "./proxy-C4ewPdlN.js";
|
|
66
66
|
import "./resolve-route-BZABUE4J.js";
|
|
67
67
|
import "./replies-ZovJp-3F.js";
|
|
68
|
-
import "./deps-
|
|
68
|
+
import "./deps-FuyQakmK.js";
|
|
69
69
|
import "./outbound-attachment-BisU5Vji.js";
|
|
70
70
|
import "./outbound-Dx_q6JAI.js";
|
|
71
71
|
import "./session-DdJj6_DW.js";
|
|
@@ -72,7 +72,7 @@ import { t as makeProxyFetch } from "./proxy-C4ewPdlN.js";
|
|
|
72
72
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BZABUE4J.js";
|
|
73
73
|
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ZovJp-3F.js";
|
|
74
74
|
import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-WMrtFGPv.js";
|
|
75
|
-
import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-
|
|
75
|
+
import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-FuyQakmK.js";
|
|
76
76
|
import { createRequire } from "node:module";
|
|
77
77
|
import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
78
78
|
import * as path$1 from "node:path";
|
|
@@ -32058,6 +32058,7 @@ function createProgressStreamAdapter(opts) {
|
|
|
32058
32058
|
let lastToolName = "tool";
|
|
32059
32059
|
let lastToolCallId = "";
|
|
32060
32060
|
let firstDeltaCalled = false;
|
|
32061
|
+
let lastPartialText = "";
|
|
32061
32062
|
return {
|
|
32062
32063
|
stream,
|
|
32063
32064
|
start: async () => {
|
|
@@ -32095,12 +32096,15 @@ function createProgressStreamAdapter(opts) {
|
|
|
32095
32096
|
lastToolCallId = "";
|
|
32096
32097
|
},
|
|
32097
32098
|
onPartialReply: (payload) => {
|
|
32098
|
-
|
|
32099
|
+
const fullText = payload.text ?? "";
|
|
32100
|
+
const delta = fullText.startsWith(lastPartialText) ? fullText.slice(lastPartialText.length) : fullText;
|
|
32101
|
+
lastPartialText = fullText;
|
|
32102
|
+
if (delta) {
|
|
32099
32103
|
if (!firstDeltaCalled) {
|
|
32100
32104
|
firstDeltaCalled = true;
|
|
32101
32105
|
hooks.onFirstDelta?.();
|
|
32102
32106
|
}
|
|
32103
|
-
hooks.onToken?.(
|
|
32107
|
+
hooks.onToken?.(delta);
|
|
32104
32108
|
}
|
|
32105
32109
|
},
|
|
32106
32110
|
onTurnEnd: (stats) => {
|
|
@@ -33091,7 +33095,7 @@ function createDiscordMessageHandler(params) {
|
|
|
33091
33095
|
try {
|
|
33092
33096
|
const messageText = resolveDiscordMessageText(data.message)?.trim();
|
|
33093
33097
|
if (messageText) {
|
|
33094
|
-
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-
|
|
33098
|
+
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Ci4JC4dU.js");
|
|
33095
33099
|
if (isAbortRequestText(messageText)) {
|
|
33096
33100
|
const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
|
|
33097
33101
|
const channelId = resolveDiscordMessageChannelId({
|
|
@@ -43835,7 +43839,7 @@ async function monitorIMessageProvider(opts = {}) {
|
|
|
43835
43839
|
}
|
|
43836
43840
|
const msgText = (message.text ?? "").trim();
|
|
43837
43841
|
if (msgText) {
|
|
43838
|
-
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-
|
|
43842
|
+
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Ci4JC4dU.js");
|
|
43839
43843
|
if (isAbortRequestText(msgText)) {
|
|
43840
43844
|
const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
|
|
43841
43845
|
const route = resolveAgentRoute({
|
|
@@ -46231,7 +46235,7 @@ function createSignalEventHandler(deps) {
|
|
|
46231
46235
|
const senderName = envelope.sourceName ?? senderDisplay;
|
|
46232
46236
|
const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
|
|
46233
46237
|
if (bodyText) {
|
|
46234
|
-
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-
|
|
46238
|
+
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Ci4JC4dU.js");
|
|
46235
46239
|
if (isAbortRequestText(bodyText)) {
|
|
46236
46240
|
const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
|
|
46237
46241
|
const route = resolveAgentRoute({
|
|
@@ -49602,7 +49606,7 @@ function createSlackMessageHandler(params) {
|
|
|
49602
49606
|
if (ctx.markMessageSeen(message.channel, message.ts)) return;
|
|
49603
49607
|
const rawText = (message.text ?? "").trim();
|
|
49604
49608
|
if (rawText) {
|
|
49605
|
-
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-
|
|
49609
|
+
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Ci4JC4dU.js");
|
|
49606
49610
|
if (isAbortRequestText(rawText)) {
|
|
49607
49611
|
const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
|
|
49608
49612
|
const route = resolveAgentRoute({
|
|
@@ -54225,7 +54229,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
|
|
|
54225
54229
|
const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
|
|
54226
54230
|
const text = typeof msg.text === "string" ? msg.text : void 0;
|
|
54227
54231
|
if (text) {
|
|
54228
|
-
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-
|
|
54232
|
+
const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Ci4JC4dU.js");
|
|
54229
54233
|
if (isAbortRequestText(text)) {
|
|
54230
54234
|
const senderId = msg.from?.id ? String(msg.from.id) : "";
|
|
54231
54235
|
if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
|
|
@@ -57710,7 +57714,7 @@ function loadWebLoginQr() {
|
|
|
57710
57714
|
return webLoginQrPromise;
|
|
57711
57715
|
}
|
|
57712
57716
|
function loadWebChannel() {
|
|
57713
|
-
webChannelPromise ??= import("./web-
|
|
57717
|
+
webChannelPromise ??= import("./web-HiiN5NkP.js");
|
|
57714
57718
|
return webChannelPromise;
|
|
57715
57719
|
}
|
|
57716
57720
|
function loadWhatsAppActions() {
|
|
@@ -80282,7 +80286,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
|
|
|
80282
80286
|
};
|
|
80283
80287
|
const arg = body.slice(6).trim();
|
|
80284
80288
|
if (arg === "status" || arg === "") {
|
|
80285
|
-
const { antonStatus } = await import("./anton-
|
|
80289
|
+
const { antonStatus } = await import("./anton-CkJKOeKT.js");
|
|
80286
80290
|
const lines = [];
|
|
80287
80291
|
await antonStatus({
|
|
80288
80292
|
log: (msg) => lines.push(msg),
|
|
@@ -80298,7 +80302,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
|
|
|
80298
80302
|
return { shouldContinue: false };
|
|
80299
80303
|
}
|
|
80300
80304
|
if (arg === "stop") {
|
|
80301
|
-
const { antonStop } = await import("./anton-
|
|
80305
|
+
const { antonStop } = await import("./anton-CkJKOeKT.js");
|
|
80302
80306
|
const lines = [];
|
|
80303
80307
|
await antonStop({
|
|
80304
80308
|
log: (msg) => lines.push(msg),
|
|
@@ -80336,8 +80340,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
|
|
|
80336
80340
|
await sendProgress(replyCtx, text);
|
|
80337
80341
|
return { shouldContinue: false };
|
|
80338
80342
|
}
|
|
80339
|
-
const { runAnton, formatProgressMessage } = await import("./anton-
|
|
80340
|
-
const { createDefaultDeps } = await import("./deps-
|
|
80343
|
+
const { runAnton, formatProgressMessage } = await import("./anton-CkJKOeKT.js");
|
|
80344
|
+
const { createDefaultDeps } = await import("./deps-FuyQakmK.js").then((n) => n.n);
|
|
80341
80345
|
const { createNonExitingRuntime } = await import("./runtime-CjfcfOBD.js").then((n) => n.r);
|
|
80342
80346
|
const runtime = createNonExitingRuntime();
|
|
80343
80347
|
const deps = createDefaultDeps();
|