@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.
Files changed (409) hide show
  1. package/dist/{accounts-B4A5mL3Y.js → accounts-3HS_UAhJ.js} +1 -1
  2. package/dist/{accounts-B8cGzkjD.js → accounts-BDVs8LTu.js} +1 -1
  3. package/dist/{accounts-D5tB_lO0.js → accounts-CIvVRRHb.js} +1 -1
  4. package/dist/{accounts-CbaEMSlt.js → accounts-DLTODa_Z.js} +2 -2
  5. package/dist/{accounts-VbtNKne6.js → accounts-DgbTKQoW.js} +1 -1
  6. package/dist/{accounts-BQC_GRUB.js → accounts-Dk8mJIrQ.js} +6 -6
  7. package/dist/{acp-cli-BF3FD1qw.js → acp-cli-BEpWQbqb.js} +12 -12
  8. package/dist/{agent-scope-Bxq1eWbA.js → agent-scope-DyP_tr7s.js} +4 -4
  9. package/dist/{agent-scope-DbNnv10G.js → agent-scope-RA0zXRpu.js} +3 -3
  10. package/dist/{agent-via-gateway-BtMWCqx4.js → agent-via-gateway-Bhon8XVm.js} +7 -7
  11. package/dist/{agent-via-gateway-BN0HMYd7.js → agent-via-gateway-CS-8ChjV.js} +1 -1
  12. package/dist/{agent-via-gateway-BsTP4WyI.js → agent-via-gateway-DVTkXwmI.js} +60 -60
  13. package/dist/{agent-via-gateway-9aP1U_YQ.js → agent-via-gateway-Drygi4ty.js} +6 -6
  14. package/dist/{agents-Bitc3LDE.js → agents-dNuQ9qUa.js} +4 -4
  15. package/dist/{agents.config-DmFqh5v8.js → agents.config-B_6rOTVW.js} +1 -1
  16. package/dist/{agents.config-DLjDlH4M.js → agents.config-DCNsF8yj.js} +2 -2
  17. package/dist/{anton-C3Y_hYo3.js → anton-BmSsFmSP.js} +225 -41
  18. package/dist/{anton-Dn_Pc4P0.js → anton-Cw4-BgtA.js} +229 -45
  19. package/dist/{anton-CmB9XtGt.js → anton-D375-ufL.js} +226 -41
  20. package/dist/{anton-DqSQ27RK.js → anton-Di5VPZiI.js} +229 -44
  21. package/dist/{api-key-rotation-Bj8Q_8ST.js → api-key-rotation-B-FTJm5p.js} +2 -2
  22. package/dist/{audio-preflight-qkU2lsDn.js → audio-preflight-CW8IH1lU.js} +35 -35
  23. package/dist/{audio-preflight-BEe3Go6e.js → audio-preflight-Dl1TO10w.js} +41 -41
  24. package/dist/{audio-preflight-CSSlgO89.js → audio-preflight-vD3mDc6w.js} +4 -4
  25. package/dist/{audit-DjUOBxVB.js → audit-CKeZnjft.js} +21 -21
  26. package/dist/{auth-choice-BKDISagq.js → auth-choice-C8Tj46gd.js} +10 -10
  27. package/dist/{auth-choice-nFObMeHm.js → auth-choice-CYV4KLt7.js} +1 -1
  28. package/dist/{auth-choice-fHV4ZjtT.js → auth-choice-D12Wsf7w.js} +15 -15
  29. package/dist/{auth-choice.apply-helpers-fIm7h2DA.js → auth-choice.apply-helpers-CGcniL1T.js} +1 -1
  30. package/dist/{auth-DoNXQLDj.js → auth-heRVBxh2.js} +1 -1
  31. package/dist/{auth-store-Dqjgb5R1.js → auth-store-DDzIMy8_.js} +1 -1
  32. package/dist/{auth-store-Bb4aajHu.js → auth-store-DXT-l7fO.js} +12 -12
  33. package/dist/{auth-token-ChjRQYCt.js → auth-token-BJq87X3o.js} +2 -2
  34. package/dist/{banner-IB7Cylyq.js → banner-B7_rwm3P.js} +1 -1
  35. package/dist/{bindings-DorAphZu.js → bindings-B59Q7nsk.js} +2 -2
  36. package/dist/{bindings-CLZIJ0Eo.js → bindings-D3b5Fmc9.js} +2 -2
  37. package/dist/{bonjour-discovery-Yzgl5gfZ.js → bonjour-discovery-DMslm8Hx.js} +2 -2
  38. package/dist/{browser-cli-B8GEKR0p.js → browser-cli-Ci6DpTnS.js} +19 -19
  39. package/dist/build-info.json +3 -3
  40. package/dist/bundled/boot-md/handler.js +60 -60
  41. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  42. package/dist/bundled/command-logger/handler.js +3 -3
  43. package/dist/bundled/session-memory/handler.js +60 -60
  44. package/dist/{call-SK4sGwpN.js → call-BpWhjuOg.js} +4 -4
  45. package/dist/{channel-account-context-CBQ0TdW0.js → channel-account-context-CDbY5AIr.js} +1 -1
  46. package/dist/{channel-activity-D3e45uuU.js → channel-activity-D_TMOGQ0.js} +3 -3
  47. package/dist/{channel-activity-DdL3RAv_.js → channel-activity-DaCsrdWK.js} +3 -3
  48. package/dist/{channel-options-DcxOFxzU.js → channel-options-DTqGMcYU.js} +5 -5
  49. package/dist/{channel-options-B2LlZj0S.js → channel-options-Dxc1A5iC.js} +1 -1
  50. package/dist/{channel-selection-DLfBD-c0.js → channel-selection-ZxRkxpuF.js} +2 -2
  51. package/dist/{channel-web-XLD22Zzs.js → channel-web-BPlapQS3.js} +2 -2
  52. package/dist/{channel-web-Cu_AcYVB.js → channel-web-CgvDCMru.js} +26 -26
  53. package/dist/{channels-cli-DZWOS5d6.js → channels-cli-BfUIc52d.js} +7 -7
  54. package/dist/{channels-cli-BWMjEguK.js → channels-cli-k45uGu5k.js} +104 -104
  55. package/dist/{channels-status-issues-DMvYh1lV.js → channels-status-issues-CDpWjdI3.js} +1 -1
  56. package/dist/{chrome-Do5potHV.js → chrome-BcJB6PcM.js} +9 -9
  57. package/dist/{chrome-CT_a9OgI.js → chrome-DEnkfZ9p.js} +29 -29
  58. package/dist/{chrome-DeAzXWRb.js → chrome-VBsQfIrt.js} +4 -4
  59. package/dist/{chunk-Djk-9JeT.js → chunk-CMpX7Jaz.js} +1 -1
  60. package/dist/{chunk-DJjn34fF.js → chunk-ClMFHJu-.js} +1 -1
  61. package/dist/{clack-prompter-EMS8sO4h.js → clack-prompter-CvbZsmjW.js} +5 -5
  62. package/dist/{clawbot-cli-B8qqplom.js → clawbot-cli-uFgYrysW.js} +9 -9
  63. package/dist/cli/daemon-cli.js +1 -1
  64. package/dist/cli-BapK2rdH.js +162 -0
  65. package/dist/{cli-Bq5b8f58.js → cli-C6GCCnET.js} +2 -2
  66. package/dist/{client-Cagiy1nE.js → client-DtnD-ee9.js} +2 -2
  67. package/dist/{clipboard-BqjWohVl.js → clipboard-LsW7H0Y8.js} +1 -1
  68. package/dist/{command-registry-CeIfSw9l.js → command-registry-DJb9jSNL.js} +10 -10
  69. package/dist/{commands-5UqnjBKV.js → commands-Dj5LalLo.js} +2 -2
  70. package/dist/{commands-registry-C1lIoXkL.js → commands-registry-CURlRZQJ.js} +5 -5
  71. package/dist/{commands-registry-_TBHHpvt.js → commands-registry-j4vAzcF2.js} +5 -5
  72. package/dist/{completion-cli-Dh0MVQJ6.js → completion-cli-BXA0UZAn.js} +2 -2
  73. package/dist/{completion-cli-ClOKco1N.js → completion-cli-DqJEZMJt.js} +4 -4
  74. package/dist/{config-cli-BaNTuQ52.js → config-cli-97SkUuuT.js} +13 -13
  75. package/dist/{config-cli-CpgR8c8d.js → config-cli-BfaVUsj-.js} +1 -1
  76. package/dist/{config-guard-DwTygT00.js → config-guard-BdsOumqh.js} +23 -23
  77. package/dist/{config-validation-wUpXePGY.js → config-validation-BvKX6fPw.js} +2 -2
  78. package/dist/{configure-C4n13-o1.js → configure-CmTKkn3M.js} +21 -21
  79. package/dist/{configure-BfzLtTQH.js → configure-DpswIHZC.js} +3 -3
  80. package/dist/{control-ui-assets-CSrZ1shI.js → control-ui-assets-C7ZpN9hN.js} +1 -1
  81. package/dist/{cron-cli-Den58QGF.js → cron-cli-DQsnGQKs.js} +17 -17
  82. package/dist/{daemon-cli-CpCtUgS2.js → daemon-cli-DUg-s4LG.js} +14 -14
  83. package/dist/{daemon-install-BPEEr5XM.js → daemon-install-CYPo4M1M.js} +8 -8
  84. package/dist/{deliver-BqJFyWu7.js → deliver--kttnrER.js} +10 -10
  85. package/dist/{deliver-whAbSPLk.js → deliver-5FLCa6tB.js} +1 -1
  86. package/dist/{deliver-Db2xqgLg.js → deliver-BUiQ-9fE.js} +20 -20
  87. package/dist/{deps-BH4bzzRD.js → deps-BV_-fxNb.js} +1 -1
  88. package/dist/{deps-CnUuBleG.js → deps-Bc5yBM-U.js} +6 -6
  89. package/dist/{deps-c-x2UBbd.js → deps-CDLYb9a7.js} +1 -1
  90. package/dist/{deps-CjvmCq-K.js → deps-IpeS3x5O.js} +6 -6
  91. package/dist/{devices-cli-HTdRxjTf.js → devices-cli-DKK65S9Z.js} +12 -12
  92. package/dist/{diagnostic-BvlZ0Sot.js → diagnostic-4owMk4vH.js} +1 -1
  93. package/dist/{diagnostic-ztHDqZ1m.js → diagnostic-BECJfEvH.js} +3 -3
  94. package/dist/{diagnostic-BUKW2Q0G.js → diagnostic-ByHpt6q8.js} +1 -1
  95. package/dist/{diagnostics-C2vxSb6v.js → diagnostics-DmZbQ8Nc.js} +1 -1
  96. package/dist/{directory-cli-BQDn6Qin.js → directory-cli-Dz9iXeut.js} +16 -16
  97. package/dist/{dns-cli-lwfJKGdv.js → dns-cli-DD6hWsdc.js} +10 -10
  98. package/dist/{dock-ejUetwTC.js → dock-BgOmHcbh.js} +6 -6
  99. package/dist/{dock-DpA6CUDJ.js → dock-Y96MzKuM.js} +6 -6
  100. package/dist/{docs-cli-Jnv5gp25.js → docs-cli-cHkrTB2e.js} +9 -9
  101. package/dist/{doctor-completion-BUUL91Dy.js → doctor-completion-BkS6Phs6.js} +2 -2
  102. package/dist/{doctor-completion-IIzctUix.js → doctor-completion-WFEPRjgs.js} +1 -1
  103. package/dist/{doctor-config-flow-DcxVJJvh.js → doctor-config-flow-Ck4oCjfl.js} +13 -13
  104. package/dist/{emergency-stop-Bg9a1fXU.js → emergency-stop-DKLc7AmD.js} +7 -7
  105. package/dist/{emergency-stop-CjxNr2he.js → emergency-stop-DMTHxdvC.js} +2 -2
  106. package/dist/emergency-stop-Dxp2e3a9.js +113 -0
  107. package/dist/emergency-stop-zy54uJoE.js +162 -0
  108. package/dist/{enable-ztZSnOGv.js → enable-o_s6PBsC.js} +2 -2
  109. package/dist/entry.js +1 -1
  110. package/dist/{env-q-PhWbb_.js → env-B5G1qwGc.js} +1 -1
  111. package/dist/{env-dMo-pLSc.js → env-Bx-F45X5.js} +1 -1
  112. package/dist/{errors-C4SHjIZK.js → errors-C_0nm4TJ.js} +1 -1
  113. package/dist/{errors-BNr2qnai.js → errors-DZDuPc3M.js} +1 -1
  114. package/dist/{exec-B9xbr2pN.js → exec-CKHMT0tZ.js} +2 -2
  115. package/dist/{exec-approvals-allowlist-BzsyDGgt.js → exec-approvals-allowlist-Co2tJSEo.js} +1 -1
  116. package/dist/{exec-approvals-cli-2SjGVbIm.js → exec-approvals-cli-D6XUzs4j.js} +21 -21
  117. package/dist/{exec-safe-bin-runtime-policy-bEV0LvVh.js → exec-safe-bin-runtime-policy-DaoU9-ni.js} +2 -2
  118. package/dist/extensionAPI.js +7 -7
  119. package/dist/{fetch-guard-CcfDZXe9.js → fetch-guard-iuQsIjqN.js} +1 -1
  120. package/dist/{fetch-guard-C-IWepjW.js → fetch-guard-yUZu1Vzc.js} +1 -1
  121. package/dist/{frontmatter-pTUG4Sx_.js → frontmatter-BOudmHMS.js} +2 -2
  122. package/dist/{frontmatter-x0EBRtDF.js → frontmatter-D-sQ_Hqk.js} +2 -2
  123. package/dist/{fs-safe-2l05hI1Y.js → fs-safe-CYUaAFO9.js} +2 -2
  124. package/dist/{gateway-cli-Bcamqq7Z.js → gateway-cli-E6DUzxEX.js} +9 -9
  125. package/dist/{gateway-cli-C2jOWbsN.js → gateway-cli-FNbwxOiN.js} +123 -123
  126. package/dist/{gateway-rpc-C_He5poS.js → gateway-rpc-BBFG1T-M.js} +3 -3
  127. package/dist/{gemini-auth-DLSGffQK.js → gemini-auth-CIyaa44H.js} +2 -2
  128. package/dist/{github-copilot-token-BjmEQcmi.js → github-copilot-token-Dgt6cnsM.js} +7 -7
  129. package/dist/{gmail-setup-utils-D1VrLZhD.js → gmail-setup-utils-DRJTQOMM.js} +3 -3
  130. package/dist/{health-3B8ANLz5.js → health-CGW71CVV.js} +15 -15
  131. package/dist/{health-BTU1dGHH.js → health-D60h_a2w.js} +1 -1
  132. package/dist/{health-format-CWIquyOr.js → health-format-Ba_hOaT2.js} +1 -1
  133. package/dist/{help-format-D7QsjOW4.js → help-format-CMAqOikG.js} +1 -1
  134. package/dist/{hooks-cli-BOc85-37.js → hooks-cli-BnVSeWIo.js} +3 -3
  135. package/dist/{hooks-cli-CdEcbqPF.js → hooks-cli-DaWPRdgZ.js} +93 -93
  136. package/dist/{hooks-status-BBvzI_rQ.js → hooks-status-DNGo2G8Q.js} +3 -3
  137. package/dist/{image-BAsQlUqT.js → image-C_aN5P6-.js} +1 -1
  138. package/dist/{image-Dlu13Ebx.js → image-D8b_rlQC.js} +6 -6
  139. package/dist/{image-BkrcRFPe.js → image-DSDEbSiO.js} +7 -7
  140. package/dist/{image-ops-CGnAhRRV.js → image-ops-BU-VdLZu.js} +1 -1
  141. package/dist/{image-ops-J8P5zOFm.js → image-ops-D1KtygWz.js} +1 -1
  142. package/dist/index.js +99 -99
  143. package/dist/{inspect-BOW-hTlT.js → inspect-ISQZuNM5.js} +1 -1
  144. package/dist/{installs-DGfrRYWX.js → installs-CNubze2L.js} +4 -4
  145. package/dist/{ir-BT5aAdU9.js → ir-B7IBoKLy.js} +5 -5
  146. package/dist/{ir-DBqjL1SG.js → ir-VncGpwA1.js} +4 -4
  147. package/dist/{lifecycle-core-DOL5vqsF.js → lifecycle-core-B6UoqYTJ.js} +5 -5
  148. package/dist/{links-DIG3qrf5.js → links-15764jZB.js} +1 -1
  149. package/dist/llm-slug-generator.js +60 -60
  150. package/dist/{local-roots-d4y0lvs2.js → local-roots-KN4Hp1yZ.js} +5 -5
  151. package/dist/{local-roots-B-lmQdZs.js → local-roots-q0xbefkf.js} +4 -4
  152. package/dist/{logging-BK2fjjMe.js → logging-B0-9lotb.js} +1 -1
  153. package/dist/{login-C2X0In6m.js → login-CFr5vJmR.js} +6 -6
  154. package/dist/{login-BVf_DBja.js → login-CfUhrgWT.js} +6 -6
  155. package/dist/{login-qr-C17PY0rr.js → login-qr-CFFFOjOl.js} +11 -11
  156. package/dist/{login-qr-V1EwcFLt.js → login-qr-DBMsUxgL.js} +10 -10
  157. package/dist/{logs-cli-BgrYblUE.js → logs-cli-4VQ9Iwiw.js} +13 -13
  158. package/dist/{manager-CgzA1hKo.js → manager-BE_76jWB.js} +15 -15
  159. package/dist/{manager-DayGME0K.js → manager-BMAFgXyU.js} +10 -10
  160. package/dist/{manifest-registry-cOeAg4W6.js → manifest-registry-Bak1x76G.js} +2 -2
  161. package/dist/{markdown-tables-R8VTpfE9.js → markdown-tables-CzsockiZ.js} +1 -1
  162. package/dist/{markdown-tables-BQ8czvs_.js → markdown-tables-DZClqsNo.js} +1 -1
  163. package/dist/{memory-cli-D_bFq_Q1.js → memory-cli-CUGwnVIY.js} +12 -12
  164. package/dist/{message-channel-ZdI1-uUh.js → message-channel-C8QtrwEU.js} +1 -1
  165. package/dist/{message-channel-CRSTffWx.js → message-channel-DVauVtrg.js} +1 -1
  166. package/dist/{model-Di6JkHyx.js → model-C-icShH2.js} +2 -2
  167. package/dist/{model-catalog-D_KsCB5j.js → model-catalog-D9no0CH2.js} +4 -4
  168. package/dist/{model-picker-CM_QFlL4.js → model-picker-BkXoTOiA.js} +4 -4
  169. package/dist/{model-selection-Df4-bBn3.js → model-selection-0dGxYGp8.js} +12 -12
  170. package/dist/{model-selection-C5hI1dum.js → model-selection-1MMYqY6M.js} +41 -41
  171. package/dist/{models-CIS_OcjC.js → models-C1ouQF8k.js} +2 -2
  172. package/dist/{models-cli-6njz6jJl.js → models-cli-BhFUh61j.js} +4 -4
  173. package/dist/{models-cli-BS7pagh1.js → models-cli-CxEFLoMt.js} +98 -98
  174. package/dist/{models-config-zq6L0fug.js → models-config-C5A1wDWh.js} +2 -2
  175. package/dist/{node-cli-PVcj1bnA.js → node-cli-BYzjxmUY.js} +33 -33
  176. package/dist/{node-service-IG3YtMJq.js → node-service-C3vyxHLA.js} +1 -1
  177. package/dist/{nodes-cli-DKj4NkKf.js → nodes-cli-kNOtp0U0.js} +21 -21
  178. package/dist/{nodes-screen-CK0vmyQx.js → nodes-screen-CcpPaFxa.js} +1 -1
  179. package/dist/{note--5AAjfvH.js → note-69EfBEU-.js} +2 -2
  180. package/dist/{npm-registry-spec-B81IsQOs.js → npm-registry-spec-BCbbfIhX.js} +2 -2
  181. package/dist/{npm-resolution-CkpVYF4z.js → npm-resolution-D30nzRfu.js} +4 -4
  182. package/dist/{npm-resolution-DWXTcpqo.js → npm-resolution-Ds0qg1EX.js} +1 -1
  183. package/dist/{onboard-BYOBc47n.js → onboard-Cv6q6Usf.js} +9 -9
  184. package/dist/{onboard-b_mYsSas.js → onboard-NcA_odSQ.js} +2 -2
  185. package/dist/{onboard-channels-sslbndju.js → onboard-channels-C1E5DpTR.js} +17 -17
  186. package/dist/{onboard-channels-CzB1oDsu.js → onboard-channels-bfoS7x6P.js} +1 -1
  187. package/dist/{onboard-custom-C_4nk_e8.js → onboard-custom-DUbzMMu7.js} +4 -4
  188. package/dist/{onboard-helpers-CXjQtadC.js → onboard-helpers-mzy38DiC.js} +7 -7
  189. package/dist/{onboard-hooks-CuOJrgfu.js → onboard-hooks-D9teGxfH.js} +7 -7
  190. package/dist/{onboard-remote-B-bN7EmV.js → onboard-remote-LCBHijVE.js} +3 -3
  191. package/dist/{onboard-skills-BVmcgCzz.js → onboard-skills-jFY9gaOu.js} +4 -4
  192. package/dist/{onboarding-qxSl79A_.js → onboarding-CX8a934a.js} +16 -16
  193. package/dist/{onboarding-BfDz8n6H.js → onboarding-CpGBbVTj.js} +3 -3
  194. package/dist/{onboarding.finalize-DeEXxkOU.js → onboarding.finalize-BnKQeFN8.js} +7 -7
  195. package/dist/{onboarding.finalize-DGZkcjrv.js → onboarding.finalize-CRgpFQIz.js} +99 -99
  196. package/dist/{onboarding.gateway-config-BinQe57V.js → onboarding.gateway-config-Btu2gzgr.js} +21 -21
  197. package/dist/{openai-model-default-CK1wUY3u.js → openai-model-default-7J6cw1rA.js} +2 -2
  198. package/dist/{outbound-CdY_AskB.js → outbound-BNh6PpQb.js} +6 -6
  199. package/dist/{outbound-DClHNQfl.js → outbound-DPTxwchq.js} +6 -6
  200. package/dist/{outbound-attachment-IfeZJAKk.js → outbound-attachment-3I6GzwDe.js} +2 -2
  201. package/dist/{outbound-attachment-Cz80loTd.js → outbound-attachment-Bot3bRnK.js} +2 -2
  202. package/dist/{pairing-cli-By_hykOY.js → pairing-cli-jwx6hMsM.js} +15 -15
  203. package/dist/{pairing-labels-Dm-DUGGI.js → pairing-labels-ChQJzbS9.js} +1 -1
  204. package/dist/{pairing-store-CPUUuW7M.js → pairing-store-CPpEEQJO.js} +3 -3
  205. package/dist/{path-alias-guards-BZmt6hFb.js → path-alias-guards-Cu1nXNMM.js} +1 -1
  206. package/dist/{path-env-CWIJihhd.js → path-env-CKSLQUS1.js} +1 -1
  207. package/dist/{paths-CBF9EBzh.js → paths-B-CLQ5RT.js} +1 -1
  208. package/dist/{paths-DQpv9a3Q.js → paths-BYNVLNi_.js} +5 -5
  209. package/dist/{paths-D3p7ZvM6.js → paths-D_qUel1T.js} +3 -3
  210. package/dist/{pi-embedded-E9CG0AZO.js → pi-embedded-0YMQWOc5.js} +32 -28
  211. package/dist/{pi-embedded-xW12sr9Q.js → pi-embedded-BO8wzB4O.js} +185 -181
  212. package/dist/{pi-embedded-helpers-D675DgwP.js → pi-embedded-helpers-BCsfqpDt.js} +4 -4
  213. package/dist/{pi-embedded-helpers-Ct2rwp-P.js → pi-embedded-helpers-C2j0LfJC.js} +4 -4
  214. package/dist/{pi-embedded-helpers-B3ceCcxm.js → pi-embedded-helpers-CghCLoPo.js} +24 -24
  215. package/dist/{pi-model-discovery-BEKzIGSg.js → pi-model-discovery-BIP3RjXl.js} +1 -1
  216. package/dist/{pi-model-discovery-Dlx4RLWo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
  217. package/dist/{pi-tools.policy-GzRj_NVc.js → pi-tools.policy-DfITIKZj.js} +6 -6
  218. package/dist/{plugin-auto-enable-CU8IfpBV.js → plugin-auto-enable-7DUxMy6A.js} +5 -5
  219. package/dist/{plugin-registry-CY1u8bd9.js → plugin-registry-Cp2q0pVP.js} +1 -1
  220. package/dist/{plugin-registry-CJfl54B-.js → plugin-registry-DceNUcJc.js} +4 -4
  221. package/dist/plugin-sdk/{agent-via-gateway-NXyTgftN.js → agent-via-gateway-MuDsrNW6.js} +2 -2
  222. package/dist/plugin-sdk/{anton-8LTiJnvw.js → anton-CkJKOeKT.js} +225 -41
  223. package/dist/plugin-sdk/{channel-web-DEl6BZu6.js → channel-web-B6pGyJpM.js} +2 -2
  224. package/dist/plugin-sdk/commands/anton.d.ts +28 -4
  225. package/dist/plugin-sdk/{deps-CdRm6UCM.js → deps-FuyQakmK.js} +1 -1
  226. package/dist/plugin-sdk/{emergency-stop-vr_MLBH0.js → emergency-stop-Ci4JC4dU.js} +2 -2
  227. package/dist/plugin-sdk/index.js +3 -3
  228. package/dist/plugin-sdk/{reply-Cii_-apO.js → reply-BTVimsoK.js} +17 -13
  229. package/dist/plugin-sdk/{web-BrcYG4Cd.js → web-HiiN5NkP.js} +3 -3
  230. package/dist/{plugins-DYr-HHj0.js → plugins-CRB60mCJ.js} +10 -10
  231. package/dist/{plugins-Bj6rzE-9.js → plugins-D46VZh7u.js} +5 -5
  232. package/dist/{plugins-cli-BsCu9ZxX.js → plugins-cli-2wK7R85Y.js} +3 -3
  233. package/dist/{plugins-cli-rEURRyag.js → plugins-cli-BaQt7jqk.js} +95 -95
  234. package/dist/{ports-D3FuSfMU.js → ports-B2o0FSFD.js} +2 -2
  235. package/dist/{ports-BJ6Xu_G6.js → ports-SQy1d-RL.js} +3 -3
  236. package/dist/{program-CtFnQFId.js → program-CbwFv75G.js} +8 -8
  237. package/dist/{program-context-BsCSqznM.js → program-context-Ck-chzM_.js} +43 -43
  238. package/dist/{progress-BN8aygvh.js → progress-BQLz1r3L.js} +1 -1
  239. package/dist/{prompt-select-styled-BKPmN1HP.js → prompt-select-styled-DJ5ONfKl.js} +4 -4
  240. package/dist/{prompt-select-styled-BB8mtFS9.js → prompt-select-styled-DigZiJWM.js} +35 -35
  241. package/dist/{prompt-style-BRwf6dfp.js → prompt-style-kmKiCZnm.js} +1 -1
  242. package/dist/{provider-auth-helpers-ar7t02s1.js → provider-auth-helpers-Ci_EGvif.js} +7 -7
  243. package/dist/{provider-auth-helpers-486CLY6U.js → provider-auth-helpers-DGTDTeE5.js} +1 -1
  244. package/dist/{push-apns-AHniql5u.js → push-apns-BSYjGCn9.js} +5 -5
  245. package/dist/{push-apns-CJJ-O5fL.js → push-apns-Dz4hOY07.js} +1 -1
  246. package/dist/{pw-ai-DRVoaq_u.js → pw-ai-7i9eGnLh.js} +13 -13
  247. package/dist/{pw-ai-DIV4PcIo.js → pw-ai-CfYaR1K2.js} +13 -13
  248. package/dist/{pw-ai-yrIWfcWX.js → pw-ai-DjmrIQle.js} +1 -1
  249. package/dist/{qmd-manager-SkIM31ge.js → qmd-manager-B-qeywfQ.js} +6 -6
  250. package/dist/{qmd-manager-BRvg3Rx2.js → qmd-manager-B_GgyQQ0.js} +8 -8
  251. package/dist/{qr-cli-BsFvbHQy.js → qr-cli-CSt5ihwG.js} +4 -4
  252. package/dist/{query-expansion-BIsWftgR.js → query-expansion-Clts_AGz.js} +2 -2
  253. package/dist/{query-expansion-DHuNyU-_.js → query-expansion-DEq020GG.js} +5 -5
  254. package/dist/{redact-CIBM9Zli.js → redact-B_4KNlXs.js} +1 -1
  255. package/dist/{redact-1Y0KPNtr.js → redact-Bvpf-ATQ.js} +1 -1
  256. package/dist/{redact-snapshot-DQ_VN7gO.js → redact-snapshot-BbEVKv0k.js} +2 -2
  257. package/dist/{register.agent-DswuLYd8.js → register.agent-BZh3UWw3.js} +9 -9
  258. package/dist/{register.agent-TMXz7bwT.js → register.agent-CTPc2Q9m.js} +110 -110
  259. package/dist/{register.configure-BFWnHArB.js → register.configure-BzTxX7SG.js} +8 -8
  260. package/dist/register.configure-vVDARCph.js +168 -0
  261. package/dist/{register.maintenance-Dj8A9Hj7.js → register.maintenance-BNHEV-po.js} +9 -9
  262. package/dist/{register.maintenance-C2B-RPnI.js → register.maintenance-DTXn32on.js} +108 -108
  263. package/dist/{register.message-DWm_Lizi.js → register.message-BYWAEsKP.js} +3 -3
  264. package/dist/{register.message-CR569hCK.js → register.message-CHf51taw.js} +90 -90
  265. package/dist/{register.onboard-CBlF61-5.js → register.onboard-CxwDhXRS.js} +29 -29
  266. package/dist/{register.onboard-BjMv8Rc2.js → register.onboard-vruDRZdG.js} +2 -2
  267. package/dist/{register.orchestrator-anton-Cvw__ptb.js → register.orchestrator-anton-GSAFxzGa.js} +2 -2
  268. package/dist/{register.orchestrator-anton-CehFZHyG.js → register.orchestrator-anton-qBr2ZYrk.js} +7 -7
  269. package/dist/{register.setup-B8TX05TM.js → register.setup-B0zmlTXV.js} +2 -2
  270. package/dist/{register.setup-BrXOX1jn.js → register.setup-DlFQIXoR.js} +31 -31
  271. package/dist/{register.status-health-sessions-DexyefSU.js → register.status-health-sessions-16paRP9f.js} +101 -101
  272. package/dist/{register.status-health-sessions-C-3gl9qR.js → register.status-health-sessions-CtXhn9Dq.js} +4 -4
  273. package/dist/{register.subclis-CFcZU6Sc.js → register.subclis-lskGgus9.js} +9 -9
  274. package/dist/{replies-CWMglpIw.js → replies-6_GxvQYe.js} +3 -3
  275. package/dist/{replies-2C16fnBP.js → replies-hSFVxL4h.js} +3 -3
  276. package/dist/{reply-dLJYULbb.js → reply-DfRr_KdS.js} +120 -116
  277. package/dist/{reply-prefix-CXLm7TNq.js → reply-prefix-BUgeSN2R.js} +1 -1
  278. package/dist/{reply-prefix-DCljZiIB.js → reply-prefix-C3y4zpTl.js} +1 -1
  279. package/dist/{resolve-route-BrHTn_2g.js → resolve-route-D_AbcmD6.js} +4 -4
  280. package/dist/{resolve-route-ClcifpKn.js → resolve-route-DuttYY7A.js} +4 -4
  281. package/dist/{retry-CG6cMRDQ.js → retry-BeB9WenR.js} +1 -1
  282. package/dist/{retry-B7zUL1Mv.js → retry-Db05aSB8.js} +1 -1
  283. package/dist/{rpc-Dp_JZNAZ.js → rpc-Cf9OK5Yk.js} +3 -3
  284. package/dist/{run-main-xc_0T201.js → run-main-Bj-8MZGb.js} +15 -15
  285. package/dist/{runner-Bv_BA3vd.js → runner-CZW_eyf2.js} +1 -1
  286. package/dist/{runner-p3KLBBEt.js → runner-DzszLzI4.js} +11 -11
  287. package/dist/{runner-BkCU-kqs.js → runner-PgRFPYUj.js} +11 -11
  288. package/dist/{runtime-DELkrqga.js → runtime-XmXLaHNk.js} +3 -3
  289. package/dist/{sandbox-cEpEHVD-.js → sandbox-DcUw5h3p.js} +8 -8
  290. package/dist/{sandbox-cli-B7kOJiLh.js → sandbox-cli-DGvJ7Eeq.js} +32 -32
  291. package/dist/{secrets-cli-COGPFjdu.js → secrets-cli-CR3h2TBy.js} +14 -14
  292. package/dist/{security-cli-Db4ZYVER.js → security-cli-B9_LV2po.js} +42 -42
  293. package/dist/{send-DA-ryUJS.js → send--lzpNy4f.js} +14 -14
  294. package/dist/{send-DZa8fWSm.js → send-BeIZJuy4.js} +7 -7
  295. package/dist/{send-Y1hD4tQ1.js → send-C1hvd3bt.js} +6 -6
  296. package/dist/{send-D_ARyjSf.js → send-C4v0Leny.js} +6 -6
  297. package/dist/{send-BOxJ4QXF.js → send-D4bMycQu.js} +7 -7
  298. package/dist/{send-D-UmmCCj.js → send-DQiw_nGD.js} +7 -7
  299. package/dist/{send-FLdrx-oF.js → send-Dfa3sn6r.js} +24 -24
  300. package/dist/{send-IlPMLAH-.js → send-DmLC7aEF.js} +10 -10
  301. package/dist/{send-DnscWRVE.js → send-DuwdEkLw.js} +7 -7
  302. package/dist/{send-BhbOA8rP.js → send-DwdHiC7_.js} +10 -10
  303. package/dist/{server-DLOBjQtf.js → server-D6MltJIF.js} +21 -21
  304. package/dist/{server-context-CvZnSu9L.js → server-context-DI0W_H7R.js} +11 -11
  305. package/dist/{server-lifecycle-CfZbDiFe.js → server-lifecycle-B5PlrlbG.js} +2 -2
  306. package/dist/{server-node-events-CgSZVd8M.js → server-node-events-B_LUFrA_.js} +89 -89
  307. package/dist/{server-node-events-Dj5jYSln.js → server-node-events-Benu2lR2.js} +3 -3
  308. package/dist/{service-fKr0VnMd.js → service-C8NMS3m_.js} +1 -1
  309. package/dist/{session-BKdoiopW.js → session-CdnrRhb4.js} +2 -2
  310. package/dist/{session-nUPBXeEa.js → session-F_YDS_1V.js} +7 -7
  311. package/dist/{sessions-DRA4oaxz.js → sessions-3ioSeOA1.js} +41 -41
  312. package/dist/{sessions-uS8Ko6pU.js → sessions-BtPXimXQ.js} +6 -6
  313. package/dist/{shared-Cvf3nhuq.js → shared-CpDPo3hJ.js} +2 -2
  314. package/dist/{shared-pSfUCPxh.js → shared-DpLSpJIl.js} +1 -1
  315. package/dist/{skill-commands-BY4BNcfR.js → skill-commands-BFzmZAfo.js} +6 -6
  316. package/dist/{skill-commands-BHTBXXVn.js → skill-commands-Ck3flWX7.js} +9 -9
  317. package/dist/{skill-scanner-BFXxq_hZ.js → skill-scanner-D7mzXRXd.js} +1 -1
  318. package/dist/{skills-umlGvChF.js → skills-CnAPWfca.js} +22 -22
  319. package/dist/{skills-DuPZzvnK.js → skills-DlvDyK8L.js} +4 -4
  320. package/dist/{skills-cli-wSg-syqz.js → skills-cli-BhKGhjbO.js} +10 -10
  321. package/dist/{skills-install-CQihNd2n.js → skills-install-tr6wRWZj.js} +6 -6
  322. package/dist/{skills-status-D7aU-6Ob.js → skills-status-qjQ8XP0h.js} +4 -4
  323. package/dist/{status-CV7OIIGl.js → status-DxcdgCyX.js} +2 -2
  324. package/dist/{status-Bp-x4GJi.js → status-DzCllHYZ.js} +24 -24
  325. package/dist/{status.update-Cri65g-V.js → status.update-CTi6vuWj.js} +1 -1
  326. package/dist/{store-D-ZicQeo.js → store-CvMgrKWx.js} +2 -2
  327. package/dist/{store-CR1Ag5tw.js → store-kH9wHHbO.js} +2 -2
  328. package/dist/{subagent-registry-CJX_DOgh.js → subagent-registry-BcpHnckA.js} +17 -13
  329. package/dist/{subsystem-BTkYq-SM.js → subsystem-CGZX2PBV.js} +1 -1
  330. package/dist/{subsystem-D7ZepYT1.js → subsystem-tzu-rIAJ.js} +1 -1
  331. package/dist/{system-cli-DSF87U3I.js → system-cli-DyVZ5udc.js} +13 -13
  332. package/dist/{system-run-approval-context-DtT5msEN.js → system-run-approval-context-CISBXlNw.js} +1 -1
  333. package/dist/{system-run-command-CrHlKsQv.js → system-run-command-qJdgzxLp.js} +1 -1
  334. package/dist/{systemd-C9CCJ2y5.js → systemd-CaCR5CyM.js} +2 -2
  335. package/dist/{systemd-hints-D4_AmIA0.js → systemd-hints-DHu-HVFx.js} +2 -2
  336. package/dist/{systemd-linger-BRBtRm6O.js → systemd-linger-B7XlUHk_.js} +2 -2
  337. package/dist/{table-PG064F0C.js → table-B9AmL3M1.js} +2 -2
  338. package/dist/{tables-Co_R_WKs.js → tables-5k-zOZ-s.js} +1 -1
  339. package/dist/{tables-Ca5i1iM6.js → tables-g9xkflht.js} +1 -1
  340. package/dist/{tailscale-Dr3FvwTm.js → tailscale-B5Irc_Bi.js} +2 -2
  341. package/dist/{target-errors-B1mcM4WR.js → target-errors-BPfQrPim.js} +2 -2
  342. package/dist/{target-errors-BhRMVh6a.js → target-errors-bLIVFsbF.js} +2 -2
  343. package/dist/{tokens-DY5TC4xI.js → tokens-BRLyURxW.js} +1 -1
  344. package/dist/{tokens-DGajj8M9.js → tokens-Dg-QZ_pN.js} +1 -1
  345. package/dist/{tool-display-1HTlk4mF.js → tool-display-Dac7lHGW.js} +2 -2
  346. package/dist/{tool-images-Duuqr4bN.js → tool-images-CHqepyF_.js} +2 -2
  347. package/dist/{tool-images-ByP8vQ_u.js → tool-images-CcGZpzmq.js} +2 -2
  348. package/dist/{tool-loop-detection-CjWRg_4q.js → tool-loop-detection-BNGetx3Z.js} +3 -3
  349. package/dist/{tool-loop-detection-BxLycal4.js → tool-loop-detection-C5VjmhPJ.js} +2 -2
  350. package/dist/{trash-CHnKIQrP.js → trash-CUFiyQN5.js} +1 -1
  351. package/dist/{tui-BmvrLAnW.js → tui-Bne3YNiw.js} +9 -9
  352. package/dist/{tui-cli-Dm28GC4T.js → tui-cli-D0Z-rcUe.js} +39 -39
  353. package/dist/{update-D96LyJ5s.js → update-D79ppbMQ.js} +3 -3
  354. package/dist/{update-cli-Crq7aGUA.js → update-cli-B53rJqAV.js} +115 -115
  355. package/dist/{update-cli-z5fJRDU4.js → update-cli-CTETjvrF.js} +9 -9
  356. package/dist/{update-runner-BkSrWsKc.js → update-runner-BGAdvd0c.js} +1 -1
  357. package/dist/{update-runner-BLquhnrL.js → update-runner-BOGIWX18.js} +5 -5
  358. package/dist/{utils-D9wGoiU9.js → utils-CTFLl_ji.js} +18 -18
  359. package/dist/{utils-BfmeFj7S.js → utils-CXzXXV2o.js} +2 -2
  360. package/dist/{web-B267OUXc.js → web-3nv8mK11.js} +3 -3
  361. package/dist/{web-BKSxBqZw.js → web-C7HXffph.js} +8 -8
  362. package/dist/web-CqOVupWI.js +123 -0
  363. package/dist/{web-CNowaS6B.js → web-Dwj9igbL.js} +66 -66
  364. package/dist/{webhooks-cli-DLVMYO3R.js → webhooks-cli-2N03q0iY.js} +11 -11
  365. package/dist/{whatsapp-actions-De803Fwb.js → whatsapp-actions-Cms8wQM1.js} +22 -22
  366. package/dist/{whatsapp-actions-BJ6kVDXi.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
  367. package/dist/{widearea-dns-DJVz6r4U.js → widearea-dns-FDdFH5E8.js} +1 -1
  368. package/dist/{with-timeout-Bz8F3xNq.js → with-timeout-DEdycYxq.js} +5 -5
  369. package/dist/{workspace-BHN1rb4L.js → workspace-D3pARwoB.js} +3 -3
  370. package/dist/{workspace-tAtkoD_r.js → workspace-DBFSzT6O.js} +18 -18
  371. package/dist/{workspace-dirs-C34pt6Pa.js → workspace-dirs-SsExQ3Bz.js} +1 -1
  372. package/extensions/acpx/package.json +1 -1
  373. package/extensions/bluebubbles/package.json +1 -1
  374. package/extensions/copilot-proxy/package.json +1 -1
  375. package/extensions/diagnostics-otel/package.json +1 -1
  376. package/extensions/discord/package.json +1 -1
  377. package/extensions/feishu/package.json +1 -1
  378. package/extensions/google-gemini-cli-auth/package.json +1 -1
  379. package/extensions/googlechat/package.json +1 -1
  380. package/extensions/hand/package.json +1 -1
  381. package/extensions/imessage/package.json +1 -1
  382. package/extensions/irc/package.json +1 -1
  383. package/extensions/line/package.json +1 -1
  384. package/extensions/llm-task/package.json +1 -1
  385. package/extensions/matrix/package.json +1 -1
  386. package/extensions/mattermost/package.json +1 -1
  387. package/extensions/memory-core/package.json +1 -1
  388. package/extensions/memory-lancedb/package.json +1 -1
  389. package/extensions/minimax-portal-auth/package.json +1 -1
  390. package/extensions/msteams/package.json +1 -1
  391. package/extensions/nextcloud-talk/package.json +1 -1
  392. package/extensions/nostr/package.json +1 -1
  393. package/extensions/open-prose/package.json +1 -1
  394. package/extensions/signal/package.json +1 -1
  395. package/extensions/slack/package.json +1 -1
  396. package/extensions/synology-chat/package.json +1 -1
  397. package/extensions/telegram/package.json +1 -1
  398. package/extensions/tlon/package.json +1 -1
  399. package/extensions/twitch/package.json +1 -1
  400. package/extensions/voice-call/package.json +1 -1
  401. package/extensions/whatsapp/package.json +1 -1
  402. package/extensions/zalo/package.json +1 -1
  403. package/extensions/zalouser/package.json +1 -1
  404. package/package.json +4 -1
  405. package/dist/cli-BN8I3vTa.js +0 -162
  406. package/dist/emergency-stop-Chw8LiXP.js +0 -113
  407. package/dist/emergency-stop-HaFAEk9Z.js +0 -162
  408. package/dist/register.configure-DlxSU46q.js +0 -168
  409. 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 buildDirectTaskPrompt(task) {
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-NXyTgftN.js");
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.text, args.taskFile, planFile),
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.text, args.taskFile, declaredPlanFile),
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 pending = parsePendingTasks(await fs.readFile(filePath, "utf8"));
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 mode = args.mode ?? antonCfg.mode ?? "direct";
602
- const requirementsReview = antonCfg.requirementsReview ?? false;
603
- const taskTimeout = antonCfg.taskTimeoutSec ?? 1200;
604
- const discoveryTimeout = antonCfg.discoveryTimeoutSec ?? taskTimeout;
605
- const reviewTimeout = antonCfg.reviewTimeoutSec ?? taskTimeout;
606
- const preflightMaxRetries = antonCfg.preflightMaxRetries ?? 2;
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 updated = markTaskDone(await fs.readFile(filePath, "utf8"), task.line);
691
- await fs.writeFile(filePath, updated, "utf8");
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(task.text, planFile) : buildDirectTaskPrompt(task.text);
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
- const retrySessionId = `anton-impl-retry-${Date.now()}-${taskNum}`;
751
- await notify({
752
- phase: "task_agent_spawned",
753
- index: taskNum,
754
- total: pending.length,
755
- task: `${task.text} (implementation retry)`,
756
- sessionId: retrySessionId
757
- });
758
- await runAgentTask({
759
- message: buildImplementationRetryPrompt(task.text, planFile ?? ""),
760
- sessionId: retrySessionId,
761
- timeout: defaultTimeout,
762
- agent: args.agent,
763
- to: args.to,
764
- runtime: args.runtime,
765
- deps: args.deps,
766
- workspaceDir: args.workspaceDir
767
- });
768
- changedAfter = await getGitChangedFileCount(gitCwd, changeIgnores);
769
- if (changedAfter !== null && changedAfter <= changedBeforeTask) throw new Error("Implementation made no repository changes after retry; refusing to mark task complete");
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
- const updated = markTaskDone(await fs.readFile(filePath, "utf8"), task.line);
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-Cii_-apO.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-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-vr_MLBH0.js");
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
- /** Enable requirements review stage between discovery and implementation. Default: false. */
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
- /** Discovery-stage timeout in seconds. Falls back to taskTimeoutSec. */
114
+ /** Legacy top-level discovery timeout in seconds. Falls back to taskTimeoutSec. */
102
115
  discoveryTimeoutSec?: number;
103
- /** Requirements-review-stage timeout in seconds. Falls back to taskTimeoutSec. */
116
+ /** Legacy top-level requirements-review timeout in seconds. Falls back to taskTimeoutSec. */
104
117
  reviewTimeoutSec?: number;
105
- /** Max retries for discovery/review before skipping. Default: 2. */
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-BrcYG4Cd.js");
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-Cii_-apO.js";
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-CdRm6UCM.js";
64
+ import "./deps-FuyQakmK.js";
65
65
  import "./outbound-attachment-BisU5Vji.js";
66
66
 
67
67
  //#region src/auto-reply/reply/emergency-stop.ts
@@ -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-Cii_-apO.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-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-DEl6BZu6.js";
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-CdRm6UCM.js";
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-CdRm6UCM.js";
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
- if (payload.text) {
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?.(payload.text);
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-vr_MLBH0.js");
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-vr_MLBH0.js");
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-vr_MLBH0.js");
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-vr_MLBH0.js");
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-vr_MLBH0.js");
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-BrcYG4Cd.js");
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-8LTiJnvw.js");
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-8LTiJnvw.js");
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-8LTiJnvw.js");
80340
- const { createDefaultDeps } = await import("./deps-CdRm6UCM.js").then((n) => n.n);
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();