@visorcraft/idlehands 4.0.17 → 4.0.18

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 (455) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{accounts-DsVN0UNw.js → accounts-3HS_UAhJ.js} +1 -1
  3. package/dist/{accounts-Dk8mJIrQ.js → accounts-CRDMZUcg.js} +6 -6
  4. package/dist/{accounts-D-hQsUw-.js → accounts-DLTODa_Z.js} +1 -1
  5. package/dist/{accounts-D87a1Y_K.js → accounts-DgbTKQoW.js} +1 -1
  6. package/dist/{accounts-BDVs8LTu.js → accounts-upx5iuke.js} +1 -1
  7. package/dist/{accounts-CIvVRRHb.js → accounts-yD5yI-jP.js} +1 -1
  8. package/dist/{acp-cli-D52jj29o.js → acp-cli-B-7CXaeS.js} +7 -7
  9. package/dist/{agent-scope-DyP_tr7s.js → agent-scope-BVeQuh5x.js} +4 -4
  10. package/dist/{agent-scope-Bn39ugK4.js → agent-scope-RA0zXRpu.js} +18 -18
  11. package/dist/{agent-via-gateway-BlRwv6D6.js → agent-via-gateway-CC37LlPd.js} +8 -7
  12. package/dist/{agent-via-gateway-BVY7w5-N.js → agent-via-gateway-Cl2YwlXJ.js} +2 -1
  13. package/dist/{agent-via-gateway-BDWomN2t.js → agent-via-gateway-ClQrLbgo.js} +5 -4
  14. package/dist/{agent-via-gateway-DSZK5iRF.js → agent-via-gateway-pMCfUzW-.js} +61 -60
  15. package/dist/{agents-BLa67Gdv.js → agents-DrnGQroU.js} +4 -4
  16. package/dist/{agents.config-CyEkgCQE.js → agents.config-BZPnYIMF.js} +2 -2
  17. package/dist/{agents.config-ADCeu0yD.js → agents.config-DfWZrbXn.js} +1 -1
  18. package/dist/{plugin-sdk/anton-Bp5L7uaN.js → anton-B-I7rEtn.js} +24 -13
  19. package/dist/{anton-CZ5moxh6.js → anton-BfrX2FMd.js} +19 -8
  20. package/dist/anton-BgKjig3B.js +751 -0
  21. package/dist/{anton-D-0SP_5T.js → anton-BrY-bWgq.js} +19 -8
  22. package/dist/{api-key-rotation-nXQVJErE.js → api-key-rotation-B-FTJm5p.js} +1 -1
  23. package/dist/{audio-preflight-vD3mDc6w.js → audio-preflight-CSSlgO89.js} +4 -4
  24. package/dist/{audio-preflight-DzjXupNO.js → audio-preflight-Dl1TO10w.js} +31 -31
  25. package/dist/{audio-preflight-CW8IH1lU.js → audio-preflight-aBtF0cRI.js} +35 -35
  26. package/dist/{audit-D12wg2tV.js → audit-BmaVRZSd.js} +22 -22
  27. package/dist/{auth-choice-BDndThZZ.js → auth-choice-D12Wsf7w.js} +12 -12
  28. package/dist/{auth-choice-01ELTnLA.js → auth-choice-DtvI4epn.js} +1 -1
  29. package/dist/{auth-choice-CqbTnCYz.js → auth-choice-_C22dz9o.js} +10 -10
  30. package/dist/{auth-choice.apply-helpers-pTqMTYmi.js → auth-choice.apply-helpers-CGcniL1T.js} +1 -1
  31. package/dist/{auth-store-CMyrmmSF.js → auth-store-DDzIMy8_.js} +7 -7
  32. package/dist/{auth-store-DXT-l7fO.js → auth-store-DQAd4LSE.js} +12 -12
  33. package/dist/{auth-token-fKt_cHOj.js → auth-token-BJq87X3o.js} +1 -1
  34. package/dist/{banner-Dv_eAAWw.js → banner-B-UYZG8d.js} +1 -1
  35. package/dist/{bindings-DZjkLUU_.js → bindings-B59Q7nsk.js} +1 -1
  36. package/dist/{bindings-D3b5Fmc9.js → bindings-B9L4cqmm.js} +2 -2
  37. package/dist/{browser-cli-Da-0lyq2.js → browser-cli-Ny1nHwqv.js} +11 -11
  38. package/dist/build-info.json +3 -3
  39. package/dist/bundled/boot-md/handler.js +60 -60
  40. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  41. package/dist/bundled/command-logger/handler.js +3 -3
  42. package/dist/bundled/session-memory/handler.js +60 -60
  43. package/dist/{call-DnTBT02D.js → call-BRL23UCk.js} +9 -9
  44. package/dist/{channel-account-context-B4nJPU2N.js → channel-account-context-CDbY5AIr.js} +5 -5
  45. package/dist/{plugin-sdk/channel-activity-TcS_VfJk.js → channel-activity-DOLX-uK1.js} +3 -3
  46. package/dist/{channel-options-BilcK806.js → channel-options-BbwNg4q_.js} +1 -1
  47. package/dist/{channel-options-BvOLgXCF.js → channel-options-C0iwLcfC.js} +3 -3
  48. package/dist/{channel-selection-3jUl-PyW.js → channel-selection-ZxRkxpuF.js} +1 -1
  49. package/dist/{channel-web-B1IazKKL.js → channel-web-BLxKeCXF.js} +22 -22
  50. package/dist/{channel-web-BptLTwvg.js → channel-web-q6Ugfiks.js} +2 -2
  51. package/dist/{channels-cli-DejBZZ85.js → channels-cli-BtL1XuuK.js} +7 -7
  52. package/dist/{channels-cli-FssbSykQ.js → channels-cli-DaRR8vAs.js} +88 -88
  53. package/dist/{channels-status-issues-hgASw9UA.js → channels-status-issues-CDpWjdI3.js} +1 -1
  54. package/dist/{chrome-DEnkfZ9p.js → chrome-D_SXDetO.js} +20 -20
  55. package/dist/{chrome-BcJB6PcM.js → chrome-Do5potHV.js} +9 -9
  56. package/dist/{chrome-YguTEaLx.js → chrome-VBsQfIrt.js} +2 -2
  57. package/dist/{chunk-CMpX7Jaz.js → chunk-BgScV6uo.js} +1 -1
  58. package/dist/{clawbot-cli-C5cDal-5.js → clawbot-cli-uFgYrysW.js} +5 -5
  59. package/dist/cli/daemon-cli.js +1 -1
  60. package/dist/{cli-BrQZTuUX.js → cli-BjhrdeVd.js} +70 -70
  61. package/dist/{cli-j1A8WKSj.js → cli-CrUoGRuS.js} +2 -2
  62. package/dist/{client-DIckPnsi.js → client-DxH9hwLn.js} +1 -1
  63. package/dist/{command-registry-DZZAmcbA.js → command-registry-BZNlvfaM.js} +10 -10
  64. package/dist/{commands-D3BU_t7G.js → commands-Dj5LalLo.js} +1 -1
  65. package/dist/{commands-registry-j4vAzcF2.js → commands-registry-CK7aj_ri.js} +5 -5
  66. package/dist/{commands-registry-Cj4D_1tw.js → commands-registry-CURlRZQJ.js} +3 -3
  67. package/dist/{completion-cli-ktxbWAiG.js → completion-cli-BIabgt7h.js} +12 -12
  68. package/dist/{completion-cli-Cxvf8clb.js → completion-cli-p9W-g1Pe.js} +2 -2
  69. package/dist/{config-cli-CogA71uD.js → config-cli-B4nNEjK9.js} +6 -6
  70. package/dist/{config-cli-Bq_MWzp9.js → config-cli-u4zbdm-e.js} +1 -1
  71. package/dist/{config-guard-DnAyuF6T.js → config-guard-BdsOumqh.js} +17 -17
  72. package/dist/{config-validation-DIomLMwH.js → config-validation-BvKX6fPw.js} +2 -2
  73. package/dist/{configure-CZUn--aN.js → configure-BbDbMd5G.js} +16 -16
  74. package/dist/{configure-CPDGJFyt.js → configure-Dj1JdeEI.js} +3 -3
  75. package/dist/{control-ui-assets-CiaCDBvZ.js → control-ui-assets-C7ZpN9hN.js} +1 -1
  76. package/dist/{cron-cli-B8uqoogS.js → cron-cli-Xml0Uww8.js} +12 -12
  77. package/dist/{daemon-cli-CMBNTpSS.js → daemon-cli-B1Ti51bt.js} +11 -11
  78. package/dist/{daemon-install-DeqQiAad.js → daemon-install-CYPo4M1M.js} +4 -4
  79. package/dist/{daemon-install-helpers-Bug_GYuy.js → daemon-install-helpers-BZY9-jNW.js} +9 -9
  80. package/dist/{deliver-yTpXc5sv.js → deliver--kttnrER.js} +7 -7
  81. package/dist/{deliver-BUiQ-9fE.js → deliver-CJaM2zRY.js} +20 -20
  82. package/dist/{deliver-5FLCa6tB.js → deliver-whAbSPLk.js} +1 -1
  83. package/dist/{deps-PAzfFs3Q.js → deps-BMWq0kjy.js} +1 -1
  84. package/dist/{deps-BUUwigzc.js → deps-BuRud-p8.js} +1 -1
  85. package/dist/{plugin-sdk/deps-B5eQTF_d.js → deps-CQzDLqTz.js} +6 -6
  86. package/dist/{deps-CH8f3TJK.js → deps-Dr9GpASq.js} +6 -6
  87. package/dist/{devices-cli-DVLF8Yvw.js → devices-cli-BNkO0Fey.js} +7 -7
  88. package/dist/{diagnostic-4owMk4vH.js → diagnostic-lz5wKsEe.js} +1 -1
  89. package/dist/{diagnostics-CdUgLS0N.js → diagnostics-DmZbQ8Nc.js} +5 -5
  90. package/dist/{directory-cli-BAMS8f9U.js → directory-cli-Dz9iXeut.js} +9 -9
  91. package/dist/{dns-cli-BdxBk-k_.js → dns-cli-DD6hWsdc.js} +4 -4
  92. package/dist/{dock-BgOmHcbh.js → dock-6MgvdSqu.js} +6 -6
  93. package/dist/{dock-CzF5XYGd.js → dock-Y96MzKuM.js} +4 -4
  94. package/dist/{docs-cli-SF7es4Zs.js → docs-cli-cHkrTB2e.js} +4 -4
  95. package/dist/{doctor-completion-iWmUY3B4.js → doctor-completion-BLRGmusD.js} +2 -2
  96. package/dist/{doctor-completion-i04j1TGW.js → doctor-completion-BeZMlZPb.js} +1 -1
  97. package/dist/{doctor-config-flow-8qXzBx09.js → doctor-config-flow-Ck4oCjfl.js} +14 -14
  98. package/dist/{emergency-stop-CfKEsUr_.js → emergency-stop-BEsjWvQL.js} +70 -70
  99. package/dist/{emergency-stop-CzExWKhr.js → emergency-stop-BU-Vbk3V.js} +7 -7
  100. package/dist/{emergency-stop-DAmKucxm.js → emergency-stop-CSSPAKHr.js} +2 -2
  101. package/dist/emergency-stop-JXB5jZyK.js +113 -0
  102. package/dist/{enable-DaA_orGN.js → enable-o_s6PBsC.js} +1 -1
  103. package/dist/entry.js +1 -1
  104. package/dist/{env-B5G1qwGc.js → env-B7b7MKfk.js} +1 -1
  105. package/dist/{errors-C_0nm4TJ.js → errors--Eb33_ji.js} +1 -1
  106. package/dist/{exec-approvals-allowlist-8AkOwwIr.js → exec-approvals-allowlist-Co2tJSEo.js} +1 -1
  107. package/dist/{exec-approvals-cli-CtoJW2K-.js → exec-approvals-cli-CyjTnYfk.js} +15 -15
  108. package/dist/{exec-safe-bin-runtime-policy-DYXuBKqH.js → exec-safe-bin-runtime-policy-DaoU9-ni.js} +2 -2
  109. package/dist/extensionAPI.js +7 -7
  110. package/dist/{fetch-guard-iuQsIjqN.js → fetch-guard-OZ_PCUyr.js} +1 -1
  111. package/dist/{frontmatter-BOudmHMS.js → frontmatter-p8nPDprK.js} +2 -2
  112. package/dist/{fs-safe-CYUaAFO9.js → fs-safe-BEl8T_Vc.js} +2 -2
  113. package/dist/{fs-safe-DNFrxDS-.js → fs-safe-_JQUGpZf.js} +15 -15
  114. package/dist/{gateway-cli-DSJcNJYR.js → gateway-cli-BCHdAJHS.js} +9 -9
  115. package/dist/{gateway-cli-C8P5BVto.js → gateway-cli-Dumy2IVU.js} +148 -148
  116. package/dist/{gateway-rpc-6vnhO4v8.js → gateway-rpc-Du-ZpDjh.js} +1 -1
  117. package/dist/{gemini-auth-CIyaa44H.js → gemini-auth-CA0K3QXj.js} +2 -2
  118. package/dist/{github-copilot-token-Dgt6cnsM.js → github-copilot-token-DCg9Q9Ll.js} +7 -7
  119. package/dist/{health-BN8WNyon.js → health-B3kk7l82.js} +1 -1
  120. package/dist/{health-CNZK5D2k.js → health-CqdQAURH.js} +13 -13
  121. package/dist/{hooks-cli-t7tiLn8P.js → hooks-cli-Ba4woLl0.js} +84 -84
  122. package/dist/{hooks-cli-L32lBsp7.js → hooks-cli-jMG5GST1.js} +3 -3
  123. package/dist/{hooks-status-CPIWc_bx.js → hooks-status-DNGo2G8Q.js} +1 -1
  124. package/dist/{idlehands-root-DFL2GrNW.js → idlehands-root-B8cUs-5M.js} +8 -8
  125. package/dist/{image-C_aN5P6-.js → image-BAsQlUqT.js} +1 -1
  126. package/dist/{image-D8b_rlQC.js → image-BQ3RQWD8.js} +6 -6
  127. package/dist/{image-C2JZiK-6.js → image-DSDEbSiO.js} +5 -5
  128. package/dist/{image-ops-D1KtygWz.js → image-ops-BU-VdLZu.js} +2 -2
  129. package/dist/{plugin-sdk/image-ops-BRYGGDwL.js → image-ops-ZNtLhD4c.js} +3 -3
  130. package/dist/index.js +80 -80
  131. package/dist/{inspect-Dg16DMLn.js → inspect-ISQZuNM5.js} +4 -4
  132. package/dist/{install-safe-path-CNNMzJl9.js → install-safe-path-ChNR9pl6.js} +19 -19
  133. package/dist/{installs-ST3UaUVJ.js → installs-CNubze2L.js} +9 -9
  134. package/dist/{ir-B7IBoKLy.js → ir-DnyYtX4H.js} +5 -5
  135. package/dist/{ir-DV0Hszc8.js → ir-VncGpwA1.js} +6 -6
  136. package/dist/{lifecycle-core-DOScNyOv.js → lifecycle-core-B6UoqYTJ.js} +5 -5
  137. package/dist/llm-slug-generator.js +60 -60
  138. package/dist/{local-roots-KN4Hp1yZ.js → local-roots-C9CA2f0R.js} +5 -5
  139. package/dist/{local-roots-Cco87A2_.js → local-roots-q0xbefkf.js} +2 -2
  140. package/dist/{login-Dl_lsEHS.js → login-CfUhrgWT.js} +4 -4
  141. package/dist/{login-CFr5vJmR.js → login-Cn1vc1bn.js} +6 -6
  142. package/dist/{login-qr-B68cBRH0.js → login-qr-DBMsUxgL.js} +7 -7
  143. package/dist/{login-qr-CFFFOjOl.js → login-qr-Dj0NmRdg.js} +11 -11
  144. package/dist/{logs-cli-BluGGq03.js → logs-cli-CH4mFhUt.js} +8 -8
  145. package/dist/{manager-BBeTPO2h.js → manager-BMAFgXyU.js} +13 -13
  146. package/dist/{manager-BE_76jWB.js → manager-DBd_2F6j.js} +15 -15
  147. package/dist/{manifest-registry-RfRn8HJx.js → manifest-registry-Bak1x76G.js} +1 -1
  148. package/dist/{markdown-tables-CzsockiZ.js → markdown-tables-CsrsXS80.js} +1 -1
  149. package/dist/{markdown-tables-C5hTDqNm.js → markdown-tables-DZClqsNo.js} +1 -1
  150. package/dist/{memory-cli-4wfelGdK.js → memory-cli-CUGwnVIY.js} +12 -12
  151. package/dist/{message-channel-C8QtrwEU.js → message-channel-Cg9KtLfy.js} +1 -1
  152. package/dist/{model-Bd-05WpB.js → model-C-icShH2.js} +2 -2
  153. package/dist/{model-catalog-BCsDrrvq.js → model-catalog-D9no0CH2.js} +3 -3
  154. package/dist/{model-picker-D3U0wJCO.js → model-picker-BkXoTOiA.js} +4 -4
  155. package/dist/{model-selection-CSn9tUuH.js → model-selection-0dGxYGp8.js} +16 -16
  156. package/dist/{model-selection-1MMYqY6M.js → model-selection-Vtu6d5Um.js} +41 -41
  157. package/dist/{models-mQeB9JXZ.js → models-C6GypzZ1.js} +2 -2
  158. package/dist/{models-cli-dd-wJvj0.js → models-cli-BaR1RccY.js} +4 -4
  159. package/dist/{models-cli-ChStpcQY.js → models-cli-iLP9BnPA.js} +79 -79
  160. package/dist/{models-config-lQpqp472.js → models-config-C5A1wDWh.js} +6 -6
  161. package/dist/{node-cli-DhD8-NHR.js → node-cli-Ch7K7WtL.js} +32 -32
  162. package/dist/{node-service-GpI0jzKr.js → node-service-C3vyxHLA.js} +1 -1
  163. package/dist/{nodes-cli-DPzxQ0mY.js → nodes-cli-D_hUCPNt.js} +14 -14
  164. package/dist/{nodes-screen-CIAn0wXq.js → nodes-screen-CcpPaFxa.js} +4 -4
  165. package/dist/{npm-registry-spec-BfeHLbIQ.js → npm-registry-spec-BCbbfIhX.js} +16 -16
  166. package/dist/{npm-resolution-tT1BUac2.js → npm-resolution-CWxaTTrT.js} +3 -3
  167. package/dist/{npm-resolution-WKW4cIrd.js → npm-resolution-DYUWHUe5.js} +1 -1
  168. package/dist/{onboard-rze7pzoW.js → onboard-CinZ4CuY.js} +6 -6
  169. package/dist/{onboard-D1wKkHHC.js → onboard-DdBsJgzg.js} +2 -2
  170. package/dist/{onboard-channels-CG1R8Ozs.js → onboard-channels-9XAEsgO-.js} +1 -1
  171. package/dist/{onboard-channels-CRHp5hA-.js → onboard-channels-Bnwwq6TK.js} +20 -20
  172. package/dist/{onboard-custom-D2sCP3_S.js → onboard-custom-DUbzMMu7.js} +4 -4
  173. package/dist/{onboard-helpers-ByhJg2ST.js → onboard-helpers-BQmbMJxJ.js} +8 -8
  174. package/dist/{onboard-hooks-_1Jgimeu.js → onboard-hooks-D9teGxfH.js} +4 -4
  175. package/dist/{onboard-remote-DuhWSiAO.js → onboard-remote-CIjhaP2W.js} +1 -1
  176. package/dist/{onboard-skills-vFwEasAg.js → onboard-skills-BsaUIuq6.js} +4 -4
  177. package/dist/{onboarding-BxvY_aEE.js → onboarding-C4oujn63.js} +13 -13
  178. package/dist/{onboarding-BgHfZNln.js → onboarding-DFvHWFqL.js} +3 -3
  179. package/dist/{onboarding.finalize-DnCFQEPR.js → onboarding.finalize-BDWHPpyn.js} +82 -82
  180. package/dist/{onboarding.finalize-5_UCPMAw.js → onboarding.finalize-DMhdDTvo.js} +7 -7
  181. package/dist/{onboarding.gateway-config-qVAY6x7I.js → onboarding.gateway-config-CEQMyj8l.js} +16 -16
  182. package/dist/{openai-model-default-OPCCNNS0.js → openai-model-default-7J6cw1rA.js} +2 -2
  183. package/dist/{outbound-BNh6PpQb.js → outbound-BYm4JJli.js} +6 -6
  184. package/dist/{outbound-CG19kl0w.js → outbound-DPTxwchq.js} +4 -4
  185. package/dist/{plugin-sdk/outbound-attachment-Bs7fNaqv.js → outbound-attachment-Bot3bRnK.js} +2 -2
  186. package/dist/{outbound-attachment-jYdMgCml.js → outbound-attachment-DwaqvYNG.js} +2 -2
  187. package/dist/{pairing-cli-QJYYDcIK.js → pairing-cli-jwx6hMsM.js} +10 -10
  188. package/dist/{pairing-labels-DuZ7ih-T.js → pairing-labels-ChQJzbS9.js} +1 -1
  189. package/dist/{pairing-store-qvpPoWL_.js → pairing-store-CPpEEQJO.js} +2 -2
  190. package/dist/{pairing-token-3hoCgQqp.js → pairing-token-lKXTMQ_M.js} +7 -7
  191. package/dist/{path-alias-guards-Cu1nXNMM.js → path-alias-guards-BnjbJzIQ.js} +1 -1
  192. package/dist/{path-alias-guards-BCskHdfJ.js → path-alias-guards-FXBVVTLw.js} +3 -3
  193. package/dist/{path-safety-C1Y004P_.js → path-safety-DwibX65n.js} +1 -1
  194. package/dist/{paths-D_qUel1T.js → paths-0fcEvxu4.js} +3 -3
  195. package/dist/{paths-Bt0fZexW.js → paths-B-CLQ5RT.js} +9 -9
  196. package/dist/{paths-BYNVLNi_.js → paths-CkTEyLTV.js} +5 -5
  197. package/dist/{pi-embedded-D_8x2ll-.js → pi-embedded-BDp9JsrM.js} +180 -180
  198. package/dist/{pi-embedded-BcmA23Ak.js → pi-embedded-Dap1HAGA.js} +26 -26
  199. package/dist/{pi-embedded-helpers-CghCLoPo.js → pi-embedded-helpers-B1CKQ81Y.js} +24 -24
  200. package/dist/{pi-embedded-helpers-BkzrQ5bZ.js → pi-embedded-helpers-BCsfqpDt.js} +6 -6
  201. package/dist/{pi-embedded-helpers-C2j0LfJC.js → pi-embedded-helpers-Ct2rwp-P.js} +4 -4
  202. package/dist/{pi-model-discovery-Bt79ifyi.js → pi-model-discovery-BIP3RjXl.js} +1 -1
  203. package/dist/{pi-model-discovery-Bb__OY-j.js → pi-model-discovery-DBHbwKOo.js} +7 -7
  204. package/dist/{pi-tools.policy-B_ME3yF6.js → pi-tools.policy-DfITIKZj.js} +5 -5
  205. package/dist/{plugin-auto-enable-BMuSi4aV.js → plugin-auto-enable-7DUxMy6A.js} +3 -3
  206. package/dist/{plugin-registry-CncOKeD3.js → plugin-registry-CGFy1ugt.js} +1 -1
  207. package/dist/{plugin-registry-C3IHwz9i.js → plugin-registry-LYzfPk35.js} +3 -3
  208. package/dist/plugin-sdk/{accounts-Kt6ygPsC.js → accounts-BLYMokxV.js} +2 -2
  209. package/dist/plugin-sdk/{accounts-mjFAny5F.js → accounts-C5tHm1UI.js} +1 -1
  210. package/dist/plugin-sdk/{accounts-B9nfRzyn.js → accounts-CBVAw5_G.js} +1 -1
  211. package/dist/plugin-sdk/{agent-scope-CU41EMlR.js → agent-scope-jl80I5G9.js} +2 -2
  212. package/dist/plugin-sdk/{agent-via-gateway-CDKZ0Jk9.js → agent-via-gateway-De4e2_-W.js} +56 -55
  213. package/dist/{anton-llLwn1lp.js → plugin-sdk/anton-BO16dWNw.js} +24 -13
  214. package/dist/plugin-sdk/{api-key-rotation-CZhCWd61.js → api-key-rotation-D6nK54XH.js} +2 -2
  215. package/dist/plugin-sdk/{audio-preflight-CRgDehfO.js → audio-preflight-CKqqN8ty.js} +30 -30
  216. package/dist/plugin-sdk/{auth-store-DycBvVqL.js → auth-store-DaPWgQTx.js} +1 -1
  217. package/dist/plugin-sdk/{bindings-BDKKHGv-.js → bindings-xXgmJGxj.js} +2 -2
  218. package/dist/{channel-activity-D_TMOGQ0.js → plugin-sdk/channel-activity-loOg1DRw.js} +3 -3
  219. package/dist/plugin-sdk/{channel-web-DcgShj6y.js → channel-web-Cd-eamYe.js} +24 -24
  220. package/dist/plugin-sdk/{chrome-BCTizrZD.js → chrome-Cb9FgiCI.js} +6 -6
  221. package/dist/plugin-sdk/{chunk-DZr5xuqv.js → chunk-PW4MBmaN.js} +1 -1
  222. package/dist/plugin-sdk/commands/agent-via-gateway.d.ts +1 -0
  223. package/dist/plugin-sdk/{commands-registry-BqJLwZYh.js → commands-registry-B5m2EsHz.js} +5 -5
  224. package/dist/plugin-sdk/{config-BzPMtEKA.js → config-CEgzwk0J.js} +10 -10
  225. package/dist/plugin-sdk/{deliver-Cfc1UCre.js → deliver-BNfMF0Nb.js} +10 -10
  226. package/dist/{deps-B_5kPH1Q.js → plugin-sdk/deps-D6VWIdk7.js} +6 -6
  227. package/dist/plugin-sdk/{diagnostic-B8VzcqLf.js → diagnostic-ByA6zvzu.js} +1 -1
  228. package/dist/plugin-sdk/{dock-CMURqoee.js → dock-DKQYtT6-.js} +6 -6
  229. package/dist/plugin-sdk/{emergency-stop-DQppo4RU.js → emergency-stop-w-HD2bz4.js} +55 -55
  230. package/dist/plugin-sdk/{env-qurSiOO2.js → env-5XecRTLs.js} +1 -1
  231. package/dist/plugin-sdk/{errors-UqLewZJL.js → errors-CMcD8Lhh.js} +1 -1
  232. package/dist/plugin-sdk/{fetch-guard-C174s8ZV.js → fetch-guard-DwdUEdmT.js} +1 -1
  233. package/dist/plugin-sdk/{fs-safe-CCXTOK7j.js → fs-safe-qsx2_8-o.js} +2 -2
  234. package/dist/plugin-sdk/{image-DDuK8tyO.js → image-C_1tftC8.js} +6 -6
  235. package/dist/{image-ops-BkoEFRYH.js → plugin-sdk/image-ops-CXSUo-AM.js} +12 -12
  236. package/dist/plugin-sdk/index.js +60 -60
  237. package/dist/plugin-sdk/{ir-Bv0Zbp2E.js → ir-kdDGpPMq.js} +5 -5
  238. package/dist/plugin-sdk/{local-roots-bHCsSVt_.js → local-roots-DjB6DYeI.js} +4 -4
  239. package/dist/plugin-sdk/{login-CkQrnY2G.js → login-DIwO5D5Y.js} +6 -6
  240. package/dist/plugin-sdk/{login-qr-DAeHibH_.js → login-qr-CpCAJuvT.js} +8 -8
  241. package/dist/plugin-sdk/{manager-CTC1S_c9.js → manager-Dox9r7og.js} +10 -10
  242. package/dist/plugin-sdk/{markdown-tables-DfUQHRZY.js → markdown-tables-Drtwd4J5.js} +1 -1
  243. package/dist/plugin-sdk/{message-channel-DiMXmQeQ.js → message-channel-CQ0qkGHj.js} +1 -1
  244. package/dist/plugin-sdk/{outbound-B1twcfz5.js → outbound-Dx_q6JAI.js} +6 -6
  245. package/dist/{outbound-attachment-3I6GzwDe.js → plugin-sdk/outbound-attachment-BisU5Vji.js} +2 -2
  246. package/dist/plugin-sdk/{path-alias-guards-yyy61qHh.js → path-alias-guards-C_uBEYb4.js} +1 -1
  247. package/dist/plugin-sdk/{pi-embedded-helpers-BAm9cWol.js → pi-embedded-helpers-B68z4sHq.js} +16 -16
  248. package/dist/plugin-sdk/{pi-model-discovery-Bt6JtUFr.js → pi-model-discovery-Dt6899be.js} +1 -1
  249. package/dist/plugin-sdk/{plugins-DRPlVBr_.js → plugins-NTjIvHYk.js} +5 -5
  250. package/dist/plugin-sdk/{pw-ai-CY0evCZ2.js → pw-ai-Dk2PTZzq.js} +10 -10
  251. package/dist/plugin-sdk/{qmd-manager-BckPBwZX.js → qmd-manager-juzrnopq.js} +5 -5
  252. package/dist/plugin-sdk/{query-expansion-CPqK-tTR.js → query-expansion-xBXvzdkL.js} +2 -2
  253. package/dist/{redact-Bvpf-ATQ.js → plugin-sdk/redact-B6VQH3UQ.js} +1 -1
  254. package/dist/plugin-sdk/{replies-DwTNZJgi.js → replies-ZovJp-3F.js} +3 -3
  255. package/dist/plugin-sdk/{reply-BtQHoQT3.js → reply-BqAPyIsz.js} +95 -95
  256. package/dist/plugin-sdk/{reply-prefix-BqV0o7_7.js → reply-prefix--mxmTL7A.js} +1 -1
  257. package/dist/plugin-sdk/{resolve-outbound-target-DAdNGEqG.js → resolve-outbound-target-CnUtsDch.js} +2 -2
  258. package/dist/plugin-sdk/{resolve-route-C5mAwY-o.js → resolve-route-BZABUE4J.js} +3 -3
  259. package/dist/plugin-sdk/{retry-2OVzZJMZ.js → retry-Bh7jveNm.js} +1 -1
  260. package/dist/plugin-sdk/{runner-Ck0w3rcz.js → runner-CZz1tOIR.js} +10 -10
  261. package/dist/plugin-sdk/{send-BBD-m-nM.js → send-0EVlThEG.js} +10 -10
  262. package/dist/plugin-sdk/{send-CaPoBwby.js → send-B26cNPqY.js} +6 -6
  263. package/dist/plugin-sdk/{send-CPeuqOlq.js → send-BCjVQhp3.js} +13 -13
  264. package/dist/plugin-sdk/{send-SsqudCMv.js → send-CHUGIZs9.js} +7 -7
  265. package/dist/plugin-sdk/{send-A4Lv5nrg.js → send-Cb5NIN8s.js} +7 -7
  266. package/dist/plugin-sdk/{session-DpL4uk1J.js → session-DdJj6_DW.js} +3 -3
  267. package/dist/plugin-sdk/{sessions-CQ5iD4Uq.js → sessions-DNx9c2O2.js} +6 -6
  268. package/dist/plugin-sdk/{skill-commands-C_O9I71g.js → skill-commands-DorIK8kn.js} +5 -5
  269. package/dist/plugin-sdk/{skills-DmiIiX4l.js → skills-Dh_Cf2PA.js} +8 -8
  270. package/dist/plugin-sdk/{store-BI3rLJdW.js → store-CCCXwngh.js} +2 -2
  271. package/dist/plugin-sdk/{subsystem-lJo9gqAK.js → subsystem-DWPzKeZ0.js} +1 -1
  272. package/dist/plugin-sdk/{tables-C4X_nAUQ.js → tables-CF9W23Rd.js} +1 -1
  273. package/dist/{target-errors-BPfQrPim.js → plugin-sdk/target-errors-DaH0qYtL.js} +2 -2
  274. package/dist/plugin-sdk/{tokens-CU9S3S7t.js → tokens-Y97UKh4C.js} +1 -1
  275. package/dist/{tool-images-CcGZpzmq.js → plugin-sdk/tool-images-BMRkn_yk.js} +2 -2
  276. package/dist/plugin-sdk/{tool-loop-detection-DuwkSqZL.js → tool-loop-detection-Cv8wyfAi.js} +2 -2
  277. package/dist/plugin-sdk/{utils-dP-FpIgu.js → utils-Dyj2wV4e.js} +2 -2
  278. package/dist/plugin-sdk/web-Dj_tThNQ.js +71 -0
  279. package/dist/plugin-sdk/{whatsapp-actions-Bcknq6EZ.js → whatsapp-actions-B5g-Rywy.js} +23 -23
  280. package/dist/{plugins-CRB60mCJ.js → plugins-Bb6_uisJ.js} +10 -10
  281. package/dist/{plugins-B4hASNc2.js → plugins-D46VZh7u.js} +2 -2
  282. package/dist/{plugins-cli-BMptU-1l.js → plugins-cli-BCAcCeRZ.js} +80 -80
  283. package/dist/{plugins-cli-CMYlin6k.js → plugins-cli-BQKfJ9aF.js} +3 -3
  284. package/dist/{ports-B07M55Gr.js → ports-B2o0FSFD.js} +1 -1
  285. package/dist/{ports-DWJO5S52.js → ports-SQy1d-RL.js} +2 -2
  286. package/dist/{program-DyMaBEqF.js → program-Df-zk5RB.js} +8 -8
  287. package/dist/{program-context-BxflGz_G.js → program-context-DBOEyhi4.js} +43 -43
  288. package/dist/{prompt-select-styled-es3PJxfH.js → prompt-select-styled-B0FsbRWb.js} +4 -4
  289. package/dist/{prompt-select-styled-CI3hobey.js → prompt-select-styled-DJVZSK4X.js} +37 -37
  290. package/dist/{provider-auth-helpers-DYxaYmlq.js → provider-auth-helpers-Aojd4jNn.js} +5 -5
  291. package/dist/{provider-auth-helpers-CrGScfnN.js → provider-auth-helpers-D0cQmJkF.js} +1 -1
  292. package/dist/{push-apns-BNxgGXQy.js → push-apns-BtI9tV7C.js} +1 -1
  293. package/dist/{push-apns-CjAXPy2N.js → push-apns-qzriU6TC.js} +5 -5
  294. package/dist/{pw-ai-BGALvhDi.js → pw-ai-7i9eGnLh.js} +11 -11
  295. package/dist/{pw-ai-CfYaR1K2.js → pw-ai-BKPa5DlF.js} +13 -13
  296. package/dist/{pw-ai-DjmrIQle.js → pw-ai-yrIWfcWX.js} +1 -1
  297. package/dist/{qmd-manager-CVcPfkhL.js → qmd-manager-B-qeywfQ.js} +19 -19
  298. package/dist/{qmd-manager-B_GgyQQ0.js → qmd-manager-DEJVRLvM.js} +8 -8
  299. package/dist/{qr-cli-D2Oh8f0U.js → qr-cli-CSt5ihwG.js} +1 -1
  300. package/dist/{query-expansion-DEq020GG.js → query-expansion-CW7PqIXL.js} +5 -5
  301. package/dist/{query-expansion-i5I3yavb.js → query-expansion-Clts_AGz.js} +12 -12
  302. package/dist/{plugin-sdk/redact-Ub8sMBBC.js → redact-D1Ebz_iR.js} +1 -1
  303. package/dist/{redact-snapshot-CtIVs92s.js → redact-snapshot-BBNDQZIe.js} +1 -1
  304. package/dist/{register.agent-B9f0mtlc.js → register.agent-ButiRGeg.js} +9 -9
  305. package/dist/{register.agent-DrVFgVpf.js → register.agent-Xdy9Gu3H.js} +95 -95
  306. package/dist/{register.configure-DAlBU97I.js → register.configure-f4xr9iKB.js} +8 -8
  307. package/dist/register.configure-m5qhbCOO.js +168 -0
  308. package/dist/{register.maintenance-G_dZOyQA.js → register.maintenance-BA4e0HDc.js} +90 -90
  309. package/dist/{register.maintenance-BThQUyMI.js → register.maintenance-N55abUee.js} +9 -9
  310. package/dist/{register.message-DKaxesxx.js → register.message-DaVB6EYW.js} +3 -3
  311. package/dist/{register.message-BVTuvjQA.js → register.message-Zta0bYh0.js} +71 -71
  312. package/dist/{register.onboard-CwtL9YYR.js → register.onboard-BHKf5Emm.js} +2 -2
  313. package/dist/{register.onboard-CnoQ56yq.js → register.onboard-BikBO9Gs.js} +18 -18
  314. package/dist/{register.orchestrator-anton-2LtPHPXM.js → register.orchestrator-anton-DtPFOV9F.js} +14 -14
  315. package/dist/{register.orchestrator-anton-Ce55Lxt0.js → register.orchestrator-anton-x3yGok7b.js} +2 -2
  316. package/dist/{register.setup-Dg5LmRxd.js → register.setup-BeRMjZaz.js} +2 -2
  317. package/dist/{register.setup-_s2CQaBF.js → register.setup-DCIPrpG0.js} +21 -21
  318. package/dist/{register.status-health-sessions-DX2OgAeG.js → register.status-health-sessions-CA5wMwpi.js} +4 -4
  319. package/dist/{register.status-health-sessions-iSQzPXD0.js → register.status-health-sessions-I0YSjY_V.js} +82 -82
  320. package/dist/{register.subclis-YeKuHCRg.js → register.subclis-DZkq_g35.js} +9 -9
  321. package/dist/{replies-6_GxvQYe.js → replies-CXcxPRWk.js} +3 -3
  322. package/dist/{replies-Czp4hvpS.js → replies-hSFVxL4h.js} +1 -1
  323. package/dist/{reply-DKIv9jez.js → reply-DlS9HBVo.js} +153 -153
  324. package/dist/{reply-prefix-BMEdvSpA.js → reply-prefix-49q2WQ2B.js} +1 -1
  325. package/dist/{reply-prefix-BUgeSN2R.js → reply-prefix-C3y4zpTl.js} +1 -1
  326. package/dist/{resolve-route-Ef_Yt2Dw.js → resolve-route-D_AbcmD6.js} +2 -2
  327. package/dist/{resolve-route-DuttYY7A.js → resolve-route-Dr-fqH39.js} +4 -4
  328. package/dist/{retry-BeB9WenR.js → retry-DWN-e4ja.js} +1 -1
  329. package/dist/{rpc-DDTp_J6f.js → rpc-CCimHATv.js} +1 -1
  330. package/dist/{run-main-BwWO5erE.js → run-main-B75ak_hb.js} +15 -15
  331. package/dist/{runner-CZW_eyf2.js → runner-Bv_BA3vd.js} +1 -1
  332. package/dist/{runner-PgRFPYUj.js → runner-DO528Ump.js} +11 -11
  333. package/dist/{runner-BFG54hnb.js → runner-DzszLzI4.js} +20 -20
  334. package/dist/{runtime-DEmy759r.js → runtime-XmXLaHNk.js} +2 -2
  335. package/dist/{sandbox-CfPbhDY_.js → sandbox-DcUw5h3p.js} +20 -20
  336. package/dist/{sandbox-cli-B4wLJr21.js → sandbox-cli-DGvJ7Eeq.js} +22 -22
  337. package/dist/{secrets-cli-CidAOBfl.js → secrets-cli-Bgp_H_bH.js} +9 -9
  338. package/dist/{security-cli-Ch7AhbhS.js → security-cli-MQ__Ca6v.js} +39 -39
  339. package/dist/{send-DDMaLJAQ.js → send--lzpNy4f.js} +7 -7
  340. package/dist/{send-BeIZJuy4.js → send-BspIjWIY.js} +7 -7
  341. package/dist/{send-DmLC7aEF.js → send-BypmtKl1.js} +10 -10
  342. package/dist/{send-BCPkAE2k.js → send-C4v0Leny.js} +6 -6
  343. package/dist/{send-D4bMycQu.js → send-CRnMBrJ2.js} +7 -7
  344. package/dist/{send-CEavqqEz.js → send-DQiw_nGD.js} +6 -6
  345. package/dist/{send-Dfa3sn6r.js → send-De8xTUIV.js} +24 -24
  346. package/dist/{send-BPwTl4-K.js → send-DuwdEkLw.js} +4 -4
  347. package/dist/{send-CVIXqubC.js → send-DwdHiC7_.js} +13 -13
  348. package/dist/{send-C1hvd3bt.js → send-szC_vYk_.js} +6 -6
  349. package/dist/{server-BpSbZAwg.js → server-D6MltJIF.js} +14 -14
  350. package/dist/{server-context-BxNSTpH6.js → server-context-DI0W_H7R.js} +10 -10
  351. package/dist/{server-lifecycle-CGKrGrhM.js → server-lifecycle-B5PlrlbG.js} +2 -2
  352. package/dist/{server-node-events-CZ5OkouD.js → server-node-events-B1RPoseF.js} +71 -71
  353. package/dist/{server-node-events-lbb8M18B.js → server-node-events-CufCnFp4.js} +3 -3
  354. package/dist/{service-Bj2oSfpw.js → service-C8NMS3m_.js} +15 -15
  355. package/dist/{session-F_YDS_1V.js → session-CKiIT4OY.js} +7 -7
  356. package/dist/{session-BKVySI8q.js → session-CdnrRhb4.js} +1 -1
  357. package/dist/{sessions-3ioSeOA1.js → sessions-BgxmLQuf.js} +41 -41
  358. package/dist/{sessions-BqWocozB.js → sessions-BtPXimXQ.js} +14 -14
  359. package/dist/{shared-DnQ4iyXk.js → shared-CpDPo3hJ.js} +2 -2
  360. package/dist/{shared-Jzrx8DfN.js → shared-DpLSpJIl.js} +1 -1
  361. package/dist/{skill-commands-BwIRWSCI.js → skill-commands-BFzmZAfo.js} +5 -5
  362. package/dist/{skill-commands-Ck3flWX7.js → skill-commands-BOUMR5De.js} +9 -9
  363. package/dist/{skill-scanner-B4Ftsbd2.js → skill-scanner-D7mzXRXd.js} +5 -5
  364. package/dist/{skills-TIyQDZx7.js → skills-DlvDyK8L.js} +3 -3
  365. package/dist/{skills-CnAPWfca.js → skills-OsjsCf_S.js} +22 -22
  366. package/dist/{skills-cli-5lbXi4Lh.js → skills-cli-BhKGhjbO.js} +5 -5
  367. package/dist/{skills-install-D0JHP5uM.js → skills-install-tr6wRWZj.js} +4 -4
  368. package/dist/{skills-status-Q9skQExW.js → skills-status-qjQ8XP0h.js} +1 -1
  369. package/dist/{status-BE1Y0CKS.js → status-ERmEJYw1.js} +2 -2
  370. package/dist/{status-Bd9NYE1U.js → status-hXjECVBh.js} +24 -24
  371. package/dist/{status.update-C3uRz7W6.js → status.update-CTi6vuWj.js} +2 -2
  372. package/dist/{store-CvMgrKWx.js → store-B4rHJvSg.js} +2 -2
  373. package/dist/{store-CLNuI8-G.js → store-kH9wHHbO.js} +5 -5
  374. package/dist/{subagent-registry-CTZmDdGV.js → subagent-registry-CcxZYIwL.js} +11 -11
  375. package/dist/{subsystem-tzu-rIAJ.js → subsystem-B98oWbbO.js} +1 -1
  376. package/dist/{system-cli-DBp9Zmvt.js → system-cli-3T-OTIKv.js} +8 -8
  377. package/dist/{system-run-approval-context-xZVoE4nS.js → system-run-approval-context-CISBXlNw.js} +1 -1
  378. package/dist/{system-run-command-BIhrK3OI.js → system-run-command-qJdgzxLp.js} +1 -1
  379. package/dist/{systemd-DyrVLTI0.js → systemd-CaCR5CyM.js} +9 -9
  380. package/dist/{systemd-hints-BoKKzRI_.js → systemd-hints-DHu-HVFx.js} +6 -6
  381. package/dist/{systemd-linger-DrhGd61G.js → systemd-linger-B7XlUHk_.js} +1 -1
  382. package/dist/{tables-5k-zOZ-s.js → tables-DuOExt0S.js} +1 -1
  383. package/dist/{tables-CZSD889r.js → tables-g9xkflht.js} +1 -1
  384. package/dist/{plugin-sdk/target-errors-CXh6e9ZE.js → target-errors-CWZr3RMI.js} +2 -2
  385. package/dist/{target-errors-BYuWhuLU.js → target-errors-bLIVFsbF.js} +4 -4
  386. package/dist/{tokens-BRLyURxW.js → tokens-B9ArFCMX.js} +1 -1
  387. package/dist/{tool-images-DZHrc4pq.js → tool-images-CHqepyF_.js} +1 -1
  388. package/dist/{plugin-sdk/tool-images-Cf9aWlVu.js → tool-images-DLiBUCZb.js} +2 -2
  389. package/dist/{tool-loop-detection-BNGetx3Z.js → tool-loop-detection-j48jLTrr.js} +3 -3
  390. package/dist/{tui-cli-DKyA5pZ2.js → tui-cli-BVKWJ9X7.js} +30 -30
  391. package/dist/{tui-DWGHGeZ3.js → tui-lalhRHve.js} +6 -6
  392. package/dist/{update-la2AdLf3.js → update-D79ppbMQ.js} +3 -3
  393. package/dist/{update-cli-D-4_OhRR.js → update-cli-DROtjWg7.js} +9 -9
  394. package/dist/{update-cli-DvUx2El6.js → update-cli-Rnv68OR6.js} +99 -99
  395. package/dist/{update-runner-n2snlf-4.js → update-runner-BWxBVG9j.js} +15 -15
  396. package/dist/{update-runner-BvaywdEe.js → update-runner-CqeNDbPD.js} +1 -1
  397. package/dist/{upgrade-command-28wRHZZ2.js → upgrade-command-909a7QUc.js} +3 -3
  398. package/dist/{utils-CTFLl_ji.js → utils-ChNzRVsg.js} +18 -18
  399. package/dist/{web-Dbrx58hF.js → web-5ddwA0bs.js} +66 -66
  400. package/dist/web-BMSzFWiF.js +123 -0
  401. package/dist/{web-BjP-D0Iz.js → web-BQLIquZA.js} +8 -8
  402. package/dist/{web-BedV4zGE.js → web-CnzKMZK0.js} +3 -3
  403. package/dist/{webhooks-cli-BnmVPYkU.js → webhooks-cli-2N03q0iY.js} +6 -6
  404. package/dist/{whatsapp-actions-DbPcN6JQ.js → whatsapp-actions-CYraflBZ.js} +25 -25
  405. package/dist/{whatsapp-actions-D2mBFzmK.js → whatsapp-actions-Cms8wQM1.js} +18 -18
  406. package/dist/{with-timeout-BodPmGCY.js → with-timeout-DEdycYxq.js} +3 -3
  407. package/dist/{workspace-DBFSzT6O.js → workspace-AM44PzIs.js} +18 -18
  408. package/dist/{workspace-CDw87aZG.js → workspace-D3pARwoB.js} +1 -1
  409. package/dist/{workspace-dirs-D3bousoX.js → workspace-dirs-SsExQ3Bz.js} +1 -1
  410. package/dist/{wsl-CgXDjE09.js → wsl-BJW8nTyL.js} +2 -2
  411. package/extensions/acpx/package.json +1 -1
  412. package/extensions/bluebubbles/package.json +1 -1
  413. package/extensions/copilot-proxy/package.json +1 -1
  414. package/extensions/diagnostics-otel/package.json +1 -1
  415. package/extensions/discord/package.json +1 -1
  416. package/extensions/feishu/package.json +1 -1
  417. package/extensions/google-gemini-cli-auth/package.json +1 -1
  418. package/extensions/googlechat/package.json +1 -1
  419. package/extensions/hand/package.json +1 -1
  420. package/extensions/imessage/package.json +1 -1
  421. package/extensions/irc/package.json +1 -1
  422. package/extensions/line/package.json +1 -1
  423. package/extensions/llm-task/package.json +1 -1
  424. package/extensions/matrix/CHANGELOG.md +6 -0
  425. package/extensions/matrix/package.json +1 -1
  426. package/extensions/mattermost/package.json +1 -1
  427. package/extensions/memory-core/package.json +1 -1
  428. package/extensions/memory-lancedb/package.json +1 -1
  429. package/extensions/minimax-portal-auth/package.json +1 -1
  430. package/extensions/msteams/CHANGELOG.md +6 -0
  431. package/extensions/msteams/package.json +1 -1
  432. package/extensions/nextcloud-talk/package.json +1 -1
  433. package/extensions/nostr/CHANGELOG.md +6 -0
  434. package/extensions/nostr/package.json +1 -1
  435. package/extensions/open-prose/package.json +1 -1
  436. package/extensions/signal/package.json +1 -1
  437. package/extensions/slack/package.json +1 -1
  438. package/extensions/synology-chat/package.json +1 -1
  439. package/extensions/telegram/package.json +1 -1
  440. package/extensions/tlon/package.json +1 -1
  441. package/extensions/twitch/CHANGELOG.md +6 -0
  442. package/extensions/twitch/package.json +1 -1
  443. package/extensions/voice-call/CHANGELOG.md +6 -0
  444. package/extensions/voice-call/package.json +1 -1
  445. package/extensions/whatsapp/package.json +1 -1
  446. package/extensions/zalo/CHANGELOG.md +6 -0
  447. package/extensions/zalo/package.json +1 -1
  448. package/extensions/zalouser/CHANGELOG.md +6 -0
  449. package/extensions/zalouser/package.json +1 -1
  450. package/package.json +1 -1
  451. package/dist/anton-DYEYyPJ1.js +0 -740
  452. package/dist/emergency-stop-tKLAiFAG.js +0 -113
  453. package/dist/plugin-sdk/web-Cg6vlkku.js +0 -71
  454. package/dist/register.configure-BxZRBEJ9.js +0 -168
  455. package/dist/web-CDFWB79W.js +0 -123
@@ -1,740 +0,0 @@
1
- import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as CONFIG_DIR } from "./utils-CXzXXV2o.js";
3
- import path from "node:path";
4
- import { promisify } from "node:util";
5
- import fsPromises from "node:fs/promises";
6
- import { execFile } from "node:child_process";
7
-
8
- //#region src/commands/anton.ts
9
- var anton_exports = /* @__PURE__ */ __exportAll({
10
- antonStatus: () => antonStatus,
11
- antonStop: () => antonStop,
12
- formatProgressMessage: () => formatProgressMessage,
13
- runAnton: () => runAnton
14
- });
15
- const ANTON_STATE_PATH = path.join(CONFIG_DIR, "anton.state.json");
16
- const ANTON_LOCK_PATH = path.join(CONFIG_DIR, "anton.lock");
17
- const execFile$1 = promisify(execFile);
18
- async function ensureStateDir() {
19
- await fsPromises.mkdir(CONFIG_DIR, { recursive: true });
20
- }
21
- async function readState() {
22
- try {
23
- return JSON.parse(await fsPromises.readFile(ANTON_STATE_PATH, "utf8"));
24
- } catch {
25
- return { running: false };
26
- }
27
- }
28
- async function writeState(state) {
29
- await ensureStateDir();
30
- await fsPromises.writeFile(ANTON_STATE_PATH, `${JSON.stringify({
31
- ...state,
32
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
33
- }, null, 2)}\n`, "utf8");
34
- }
35
- async function acquireLock(force = false) {
36
- await ensureStateDir();
37
- try {
38
- await fsPromises.writeFile(ANTON_LOCK_PATH, JSON.stringify({
39
- pid: process.pid,
40
- startedAt: (/* @__PURE__ */ new Date()).toISOString()
41
- }), {
42
- encoding: "utf8",
43
- flag: "wx"
44
- });
45
- } catch {
46
- if (!force) throw new Error("Anton is already running (lock held)");
47
- await fsPromises.rm(ANTON_LOCK_PATH, { force: true });
48
- await fsPromises.writeFile(ANTON_LOCK_PATH, JSON.stringify({
49
- pid: process.pid,
50
- startedAt: (/* @__PURE__ */ new Date()).toISOString(),
51
- force: true
52
- }), {
53
- encoding: "utf8",
54
- flag: "wx"
55
- });
56
- }
57
- }
58
- async function releaseLock() {
59
- await fsPromises.rm(ANTON_LOCK_PATH, { force: true });
60
- }
61
- async function shouldStop() {
62
- const s = await readState();
63
- return Boolean(s.stopRequested);
64
- }
65
- function parsePendingTasks(markdown) {
66
- const lines = markdown.split(/\r?\n/);
67
- const tasks = [];
68
- for (let i = 0; i < lines.length; i++) {
69
- const m = (lines[i] ?? "").match(/^(\s*)- \[ \] (.+)$/);
70
- if (!m) continue;
71
- tasks.push({
72
- line: i + 1,
73
- indent: m[1] ?? "",
74
- text: (m[2] ?? "").trim()
75
- });
76
- }
77
- return tasks;
78
- }
79
- function markTaskDone(markdown, lineNo) {
80
- const lines = markdown.split(/\r?\n/);
81
- const idx = lineNo - 1;
82
- if (idx < 0 || idx >= lines.length) return markdown;
83
- lines[idx] = (lines[idx] ?? "").replace(/^(\s*)- \[ \] /, "$1- [x] ");
84
- return `${lines.join("\n")}\n`;
85
- }
86
- function buildDirectTaskPrompt(task) {
87
- return [
88
- "You are executing one item from a managed checklist.",
89
- `Task: ${task}`,
90
- "Rules:",
91
- "1) Make the minimal code changes required for this task.",
92
- "2) Run targeted tests for your change.",
93
- "3) Return a concise completion summary."
94
- ].join("\n");
95
- }
96
- function buildDiscoveryPrompt(task, taskFile, planFilePath) {
97
- return `You are running PRE-FLIGHT for an autonomous coding orchestrator.
98
-
99
- ## RULES
100
- - DO NOT implement code changes. DO NOT modify source files.
101
- - You may ONLY write to the plan file specified below.
102
- - Read the codebase to understand what needs to change.
103
-
104
- ## TASK
105
- From task file: ${taskFile}
106
- Task: ${task}
107
-
108
- ## DECISION FLOW
109
-
110
- **If task is ALREADY COMPLETE** (you are CERTAIN it's done after checking with tools):
111
- → Return ONLY: {"status":"complete","filename":""}
112
-
113
- **If task is INCOMPLETE or UNCERTAIN**:
114
- 1. Read relevant source files to understand the current state
115
- 2. Write a detailed implementation plan to: ${planFilePath}
116
- 3. The plan MUST include:
117
- - Task description (verbatim from above)
118
- - What needs to change and why
119
- - Implementation approach with specific steps
120
- - Files to modify/create
121
- - How to verify (test commands)
122
- 4. Verify the file exists and is non-empty
123
- 5. Return ONLY: {"status":"incomplete","filename":"${planFilePath}"}
124
-
125
- ## OUTPUT
126
- Return ONLY the JSON object. No markdown fences. No explanation.`;
127
- }
128
- function buildReviewPrompt(planFilePath) {
129
- return `Review this implementation plan and improve it:
130
- ${planFilePath}
131
-
132
- Treat it as written by a junior developer. Look for:
133
- - Missing edge cases
134
- - Opportunities to reuse existing code
135
- - Unclear or ambiguous steps
136
- - Missing test scenarios
137
-
138
- Update the SAME file in-place with your improvements.
139
-
140
- After review, return ONLY:
141
- {"status":"ready","filename":"${planFilePath}"}
142
-
143
- Do not return status=ready unless the file exists and has content.
144
- Return JSON only. No markdown fences. No commentary.`;
145
- }
146
- function buildImplementationPrompt(task, planFilePath) {
147
- return [
148
- "You are implementing a task from a managed checklist.",
149
- "A planning agent has already analyzed the codebase and written a detailed spec.",
150
- "",
151
- `Task: ${task}`,
152
- "",
153
- `Implementation plan: ${planFilePath}`,
154
- "",
155
- "Rules:",
156
- "1) Read the plan file FIRST — it contains the implementation approach.",
157
- "2) Follow the plan precisely. Make the code changes specified.",
158
- "3) Run the verification steps from the plan.",
159
- "4) Return a concise completion summary.",
160
- "",
161
- "Do not deviate from the plan unless you find a clear error in it."
162
- ].join("\n");
163
- }
164
- function formatDuration(ms) {
165
- const seconds = Math.floor(ms / 1e3);
166
- if (seconds < 60) return `${seconds}s`;
167
- const minutes = Math.floor(seconds / 60);
168
- const secs = seconds % 60;
169
- if (minutes < 60) return `${minutes}m ${secs}s`;
170
- return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
171
- }
172
- function formatProgressMessage(event) {
173
- switch (event.phase) {
174
- case "start": return `🤚 **Anton activated**\n📄 Task file: \`${path.basename(event.taskFile)}\`\n📋 ${event.totalTasks} task${event.totalTasks === 1 ? "" : "s"} pending`;
175
- case "task_start": return `\n🔪 **Task ${event.index}/${event.total}**: ${event.task}`;
176
- case "discovery_start": return `🔎 Discovery: analyzing codebase for task ${event.index}/${event.total}...`;
177
- case "discovery_complete": return `📝 Plan written: \`${path.basename(event.planFile)}\``;
178
- case "discovery_failed": return `⚠️ Discovery failed: ${event.error}\n└ Falling back to direct execution`;
179
- case "discovery_already_complete": return `✅ Discovery says task already complete — skipping implementation`;
180
- case "review_start": return `🧪 Reviewing plan: \`${path.basename(event.planFile)}\`...`;
181
- case "review_complete": return `✅ Plan reviewed and refined`;
182
- case "review_failed": return `⚠️ Review failed: ${event.error}\n└ Proceeding with unreviewed plan`;
183
- case "implementation_start": return event.planFile ? `🛠️ Implementation: following spec \`${path.basename(event.planFile)}\`` : `🛠️ Implementation: direct execution`;
184
- case "task_agent_spawned": return `🤖 Agent spawned (session: \`${event.sessionId}\`)`;
185
- case "task_complete": return `✅ **Task ${event.index}/${event.total} complete**: ${event.task}`;
186
- case "task_failed": return `❌ **Task ${event.index}/${event.total} failed**: ${event.task}\n└ ${event.error}`;
187
- case "task_skipped": return `⏭️ **Task ${event.index}/${event.total} skipped**: ${event.task}\n└ ${event.reason}`;
188
- case "stopped": return `🛑 **Anton stopped** (${event.completedSoFar}/${event.total} completed before stop)`;
189
- case "finish": return [
190
- `\n🏁 **Anton finished**`,
191
- `✅ Completed: ${event.completed}/${event.total}`,
192
- event.skipped > 0 ? `⏭️ Skipped: ${event.skipped}` : null,
193
- `⏱️ Duration: ${formatDuration(event.durationMs)}`
194
- ].filter(Boolean).join("\n");
195
- }
196
- }
197
- async function antonStatus(runtime) {
198
- const s = await readState();
199
- if (!s.running) {
200
- runtime.log("Anton is idle.");
201
- if (s.lastSummary) runtime.log(s.lastSummary);
202
- return;
203
- }
204
- runtime.log(`Anton running: ${s.completed ?? 0}/${s.total ?? 0} complete` + (s.taskFile ? ` | file=${s.taskFile}` : "") + (typeof s.currentIndex === "number" ? ` | current=${s.currentIndex + 1}` : ""));
205
- }
206
- async function antonStop(runtime) {
207
- const s = await readState();
208
- if (!s.running) {
209
- runtime.log("Anton is not running.");
210
- return;
211
- }
212
- await writeState({
213
- ...s,
214
- stopRequested: true
215
- });
216
- runtime.log("Anton stop requested. It will stop after current task.");
217
- }
218
- /** Load Anton config from the IdleHands config file. */
219
- async function loadAntonConfig() {
220
- try {
221
- const { loadConfig } = await import("./model-selection-CSn9tUuH.js").then((n) => n.Mt);
222
- return loadConfig().anton ?? {};
223
- } catch {
224
- return {};
225
- }
226
- }
227
- async function runAgentTask(args) {
228
- const { agentCliCommand } = await import("./agent-via-gateway-BDWomN2t.js").then((n) => n.n);
229
- 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;
230
- const result = await agentCliCommand({
231
- message: args.message,
232
- agent: args.agent,
233
- to: args.to,
234
- sessionId: args.sessionId,
235
- timeout: args.timeout,
236
- json: true,
237
- deliver: false,
238
- extraSystemPrompt
239
- }, args.runtime, args.deps);
240
- return { text: (result && typeof result === "object" && "result" in result ? result.result?.payloads ?? [] : []).map((p) => typeof p?.text === "string" ? p.text.trim() : "").filter(Boolean).join("\n\n").trim() };
241
- }
242
- function makePlanFilePath(planDir, taskIndex) {
243
- return path.join(planDir, `task-${taskIndex}-${Date.now()}.md`);
244
- }
245
- async function ensurePlanDir(planDir) {
246
- await fsPromises.mkdir(planDir, { recursive: true });
247
- }
248
- function looksLikeStatusJsonOnly(text) {
249
- const trimmed = text.trim();
250
- if (!trimmed.startsWith("{") || !trimmed.endsWith("}")) return false;
251
- try {
252
- const parsed = JSON.parse(trimmed);
253
- const keys = Object.keys(parsed).toSorted();
254
- return keys.length <= 3 && keys.includes("status") && keys.includes("filename");
255
- } catch {
256
- return false;
257
- }
258
- }
259
- function isUsefulPlanText(text) {
260
- const trimmed = text.trim();
261
- if (trimmed.length < 120) return false;
262
- if (looksLikeStatusJsonOnly(trimmed)) return false;
263
- return /^#\s+/m.test(trimmed) || /\b(Implementation approach|What needs to change|Files to modify|How to verify)\b/i.test(trimmed);
264
- }
265
- async function isPlanFileValid(filePath) {
266
- try {
267
- const stat = await fsPromises.stat(filePath);
268
- if (!stat.isFile() || stat.size < 20) return false;
269
- return isUsefulPlanText(await fsPromises.readFile(filePath, "utf8"));
270
- } catch {
271
- return false;
272
- }
273
- }
274
- async function getGitChangedFileCount(cwd) {
275
- try {
276
- const { stdout } = await execFile$1("git", ["status", "--porcelain"], { cwd });
277
- return stdout.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).length;
278
- } catch {
279
- return null;
280
- }
281
- }
282
- function extractJsonObject(text) {
283
- const trimmed = text.trim();
284
- if (!trimmed) return null;
285
- const tryParse = (candidate) => {
286
- try {
287
- const parsed = JSON.parse(candidate);
288
- if (!parsed || typeof parsed !== "object") return null;
289
- return parsed;
290
- } catch {
291
- return null;
292
- }
293
- };
294
- const direct = tryParse(trimmed);
295
- if (direct) return direct;
296
- const fencedMatch = trimmed.match(/```(?:json)?\s*([\s\S]*?)```/i);
297
- if (fencedMatch?.[1]) {
298
- const fenced = tryParse(fencedMatch[1].trim());
299
- if (fenced) return fenced;
300
- }
301
- const first = trimmed.indexOf("{");
302
- const last = trimmed.lastIndexOf("}");
303
- if (first >= 0 && last > first) {
304
- const sliced = tryParse(trimmed.slice(first, last + 1));
305
- if (sliced) return sliced;
306
- }
307
- return null;
308
- }
309
- function extractPlanMarkdownFromText(text) {
310
- const candidate = text.match(/```(?:markdown|md)?\s*([\s\S]*?)```/i)?.[1]?.trim() ?? text.trim();
311
- if (!isUsefulPlanText(candidate)) return;
312
- return candidate;
313
- }
314
- function normalizeDiscoveryFilename(filename, expectedPlanFile) {
315
- const trimmed = filename?.trim();
316
- if (!trimmed) return expectedPlanFile;
317
- return path.resolve(trimmed);
318
- }
319
- function buildDiscoveryRepairPrompt(task, taskFile, planFilePath) {
320
- return `RETRY: your previous preflight response did not produce a valid plan file.
321
-
322
- You MUST complete these steps exactly:
323
- 1) Write the implementation plan to: ${planFilePath}
324
- 2) Verify the file exists and is non-empty
325
- 3) Return ONLY strict JSON: {"status":"incomplete","filename":"${planFilePath}"}
326
-
327
- If task is already complete, return ONLY: {"status":"complete","filename":""}
328
-
329
- Do not include THOUGHT, markdown fences, or extra commentary.
330
- Task file: ${taskFile}
331
- Task: ${task}`;
332
- }
333
- async function tryPersistPlanFallback(params) {
334
- const planText = (((typeof params.parsed?.planMarkdown === "string" ? params.parsed.planMarkdown : void 0) ?? (typeof params.parsed?.plan === "string" ? params.parsed.plan : void 0))?.trim() || extractPlanMarkdownFromText(params.rawText) || "").trim();
335
- if (!isUsefulPlanText(planText)) return false;
336
- await fsPromises.writeFile(params.planFile, `${planText}\n`, "utf8");
337
- return await isPlanFileValid(params.planFile);
338
- }
339
- async function runDiscoveryPhase(args) {
340
- const planFile = makePlanFilePath(args.planDir, args.taskNum);
341
- await ensurePlanDir(args.planDir);
342
- await args.notify({
343
- phase: "discovery_start",
344
- index: args.taskNum,
345
- total: args.total,
346
- task: args.task.text
347
- });
348
- for (let attempt = 0; attempt <= args.maxRetries; attempt++) {
349
- const sessionId = `anton-discovery-${Date.now()}-${args.taskNum}-${attempt}`;
350
- try {
351
- await args.notify({
352
- phase: "task_agent_spawned",
353
- index: args.taskNum,
354
- total: args.total,
355
- task: `Discovery (attempt ${attempt + 1})`,
356
- sessionId
357
- });
358
- const firstPass = await runAgentTask({
359
- message: buildDiscoveryPrompt(args.task.text, args.taskFile, planFile),
360
- sessionId,
361
- timeout: args.timeout,
362
- agent: args.agent,
363
- to: args.to,
364
- runtime: args.runtime,
365
- deps: args.deps,
366
- workspaceDir: args.workspaceDir
367
- });
368
- const firstParsed = extractJsonObject(firstPass.text);
369
- if ((firstParsed?.status ?? "").toLowerCase() === "complete") return { status: "complete" };
370
- const declaredPlanFile = normalizeDiscoveryFilename(firstParsed?.filename, planFile);
371
- if (await isPlanFileValid(declaredPlanFile)) {
372
- await args.notify({
373
- phase: "discovery_complete",
374
- index: args.taskNum,
375
- total: args.total,
376
- task: args.task.text,
377
- planFile: declaredPlanFile
378
- });
379
- return {
380
- status: "plan_ready",
381
- planFile: declaredPlanFile
382
- };
383
- }
384
- if ((firstParsed?.status ?? "").toLowerCase() === "incomplete" && await tryPersistPlanFallback({
385
- planFile: declaredPlanFile,
386
- parsed: firstParsed,
387
- rawText: firstPass.text
388
- })) {
389
- await args.notify({
390
- phase: "discovery_complete",
391
- index: args.taskNum,
392
- total: args.total,
393
- task: args.task.text,
394
- planFile: declaredPlanFile
395
- });
396
- return {
397
- status: "plan_ready",
398
- planFile: declaredPlanFile
399
- };
400
- }
401
- const repairSessionId = `anton-discovery-repair-${Date.now()}-${args.taskNum}-${attempt}`;
402
- await args.notify({
403
- phase: "task_agent_spawned",
404
- index: args.taskNum,
405
- total: args.total,
406
- task: `Discovery repair (attempt ${attempt + 1})`,
407
- sessionId: repairSessionId
408
- });
409
- const repairPass = await runAgentTask({
410
- message: buildDiscoveryRepairPrompt(args.task.text, args.taskFile, declaredPlanFile),
411
- sessionId: repairSessionId,
412
- timeout: args.timeout,
413
- agent: args.agent,
414
- to: args.to,
415
- runtime: args.runtime,
416
- deps: args.deps,
417
- workspaceDir: args.workspaceDir
418
- });
419
- const repairParsed = extractJsonObject(repairPass.text);
420
- if ((repairParsed?.status ?? "").toLowerCase() === "complete") return { status: "complete" };
421
- const repairPlanFile = normalizeDiscoveryFilename(repairParsed?.filename, declaredPlanFile);
422
- if (await isPlanFileValid(repairPlanFile) || await tryPersistPlanFallback({
423
- planFile: repairPlanFile,
424
- parsed: repairParsed,
425
- rawText: repairPass.text
426
- })) {
427
- await args.notify({
428
- phase: "discovery_complete",
429
- index: args.taskNum,
430
- total: args.total,
431
- task: args.task.text,
432
- planFile: repairPlanFile
433
- });
434
- return {
435
- status: "plan_ready",
436
- planFile: repairPlanFile
437
- };
438
- }
439
- if (attempt === args.maxRetries) {
440
- const reason = "Discovery did not produce a valid plan file after primary + repair passes";
441
- await args.notify({
442
- phase: "discovery_failed",
443
- index: args.taskNum,
444
- total: args.total,
445
- task: args.task.text,
446
- error: reason
447
- });
448
- return {
449
- status: "failed",
450
- error: reason
451
- };
452
- }
453
- } catch (err) {
454
- const errorMsg = err instanceof Error ? err.message : String(err);
455
- if (attempt === args.maxRetries) {
456
- await args.notify({
457
- phase: "discovery_failed",
458
- index: args.taskNum,
459
- total: args.total,
460
- task: args.task.text,
461
- error: errorMsg
462
- });
463
- return {
464
- status: "failed",
465
- error: errorMsg
466
- };
467
- }
468
- }
469
- }
470
- return {
471
- status: "failed",
472
- error: "Discovery exhausted retries"
473
- };
474
- }
475
- async function runReviewPhase(args) {
476
- await args.notify({
477
- phase: "review_start",
478
- index: args.taskNum,
479
- total: args.total,
480
- task: args.task.text,
481
- planFile: args.planFile
482
- });
483
- const sessionId = `anton-review-${Date.now()}-${args.taskNum}`;
484
- try {
485
- await args.notify({
486
- phase: "task_agent_spawned",
487
- index: args.taskNum,
488
- total: args.total,
489
- task: "Requirements review",
490
- sessionId
491
- });
492
- await runAgentTask({
493
- message: buildReviewPrompt(args.planFile),
494
- sessionId,
495
- timeout: args.timeout,
496
- agent: args.agent,
497
- to: args.to,
498
- runtime: args.runtime,
499
- deps: args.deps,
500
- workspaceDir: args.workspaceDir
501
- });
502
- await args.notify({
503
- phase: "review_complete",
504
- index: args.taskNum,
505
- total: args.total,
506
- task: args.task.text,
507
- planFile: args.planFile
508
- });
509
- return { success: true };
510
- } catch (err) {
511
- const errorMsg = err instanceof Error ? err.message : String(err);
512
- await args.notify({
513
- phase: "review_failed",
514
- index: args.taskNum,
515
- total: args.total,
516
- task: args.task.text,
517
- error: errorMsg
518
- });
519
- return {
520
- success: false,
521
- error: errorMsg
522
- };
523
- }
524
- }
525
- async function runAnton(args) {
526
- const filePath = path.resolve(args.taskFile);
527
- const pending = parsePendingTasks(await fsPromises.readFile(filePath, "utf8"));
528
- const notify = args.onProgress ?? (async () => {});
529
- if (args.dryRun) {
530
- args.runtime.log(`Dry run: ${pending.length} pending task(s)`);
531
- for (const t of pending) args.runtime.log(`- [ ] ${t.text}`);
532
- return;
533
- }
534
- if (pending.length === 0) {
535
- args.runtime.log("No pending tasks.");
536
- await notify({
537
- phase: "finish",
538
- completed: 0,
539
- skipped: 0,
540
- total: 0,
541
- durationMs: 0
542
- });
543
- return;
544
- }
545
- const antonCfg = await loadAntonConfig();
546
- const mode = args.mode ?? antonCfg.mode ?? "direct";
547
- const requirementsReview = antonCfg.requirementsReview ?? false;
548
- const taskTimeout = antonCfg.taskTimeoutSec ?? 1200;
549
- const discoveryTimeout = antonCfg.discoveryTimeoutSec ?? taskTimeout;
550
- const reviewTimeout = antonCfg.reviewTimeoutSec ?? taskTimeout;
551
- const preflightMaxRetries = antonCfg.preflightMaxRetries ?? 2;
552
- const planDir = antonCfg.planDir ? path.resolve(antonCfg.planDir) : path.resolve(path.dirname(filePath), ".agents", "tasks");
553
- const { loadConfig } = await import("./model-selection-CSn9tUuH.js").then((n) => n.Mt);
554
- const cfg = loadConfig();
555
- const defaultTimeout = String(Number.isFinite(args.timeoutSec) && (args.timeoutSec ?? 0) > 0 ? args.timeoutSec : cfg.agents?.defaults?.timeoutSeconds ?? taskTimeout);
556
- await acquireLock(Boolean(args.force));
557
- const startedAt = Date.now();
558
- await writeState({
559
- running: true,
560
- taskFile: filePath,
561
- startedAt: new Date(startedAt).toISOString(),
562
- currentIndex: 0,
563
- total: pending.length,
564
- completed: 0,
565
- skipped: 0,
566
- stopRequested: false
567
- });
568
- await notify({
569
- phase: "start",
570
- taskFile: filePath,
571
- totalTasks: pending.length
572
- });
573
- args.runtime.log(`[Anton] Mode: ${mode}${mode === "preflight" ? requirementsReview ? " (with review)" : " (discovery → implementation)" : ""}`);
574
- let completed = 0;
575
- let skipped = 0;
576
- try {
577
- for (let i = 0; i < pending.length; i++) {
578
- if (await shouldStop()) {
579
- args.runtime.log("Anton stop acknowledged.");
580
- await notify({
581
- phase: "stopped",
582
- completedSoFar: completed,
583
- total: pending.length
584
- });
585
- break;
586
- }
587
- const task = pending[i];
588
- if (!task) continue;
589
- const taskNum = i + 1;
590
- await writeState({
591
- running: true,
592
- taskFile: filePath,
593
- startedAt: new Date(startedAt).toISOString(),
594
- currentIndex: i,
595
- total: pending.length,
596
- completed,
597
- skipped,
598
- stopRequested: false
599
- });
600
- args.runtime.log(`\n[Anton] Task ${taskNum}/${pending.length}: ${task.text}`);
601
- await notify({
602
- phase: "task_start",
603
- index: taskNum,
604
- total: pending.length,
605
- task: task.text
606
- });
607
- try {
608
- let planFile;
609
- if (mode === "preflight") {
610
- const discoveryResult = await runDiscoveryPhase({
611
- task,
612
- taskNum,
613
- total: pending.length,
614
- taskFile: filePath,
615
- planDir,
616
- timeout: String(discoveryTimeout),
617
- maxRetries: preflightMaxRetries,
618
- agent: args.agent,
619
- to: args.to,
620
- runtime: args.runtime,
621
- deps: args.deps,
622
- notify,
623
- workspaceDir: args.workspaceDir
624
- });
625
- if (discoveryResult.status === "complete") {
626
- await notify({
627
- phase: "discovery_already_complete",
628
- index: taskNum,
629
- total: pending.length,
630
- task: task.text
631
- });
632
- const updated = markTaskDone(await fsPromises.readFile(filePath, "utf8"), task.line);
633
- await fsPromises.writeFile(filePath, updated, "utf8");
634
- completed += 1;
635
- await notify({
636
- phase: "task_complete",
637
- index: taskNum,
638
- total: pending.length,
639
- task: task.text
640
- });
641
- continue;
642
- }
643
- if (discoveryResult.status === "plan_ready" && discoveryResult.planFile) {
644
- planFile = discoveryResult.planFile;
645
- if (requirementsReview) await runReviewPhase({
646
- task,
647
- taskNum,
648
- total: pending.length,
649
- planFile,
650
- timeout: String(reviewTimeout),
651
- agent: args.agent,
652
- to: args.to,
653
- runtime: args.runtime,
654
- deps: args.deps,
655
- notify,
656
- workspaceDir: args.workspaceDir
657
- });
658
- }
659
- if (!planFile) throw new Error("Preflight discovery did not produce a verified plan file; refusing direct implementation fallback");
660
- }
661
- await notify({
662
- phase: "implementation_start",
663
- index: taskNum,
664
- total: pending.length,
665
- task: task.text,
666
- planFile
667
- });
668
- const implSessionId = `anton-impl-${Date.now()}-${taskNum}`;
669
- await notify({
670
- phase: "task_agent_spawned",
671
- index: taskNum,
672
- total: pending.length,
673
- task: task.text,
674
- sessionId: implSessionId
675
- });
676
- const implPrompt = planFile ? buildImplementationPrompt(task.text, planFile) : buildDirectTaskPrompt(task.text);
677
- const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
678
- const changedBefore = await getGitChangedFileCount(gitCwd);
679
- await runAgentTask({
680
- message: implPrompt,
681
- sessionId: implSessionId,
682
- timeout: defaultTimeout,
683
- agent: args.agent,
684
- to: args.to,
685
- runtime: args.runtime,
686
- deps: args.deps,
687
- workspaceDir: args.workspaceDir
688
- });
689
- const changedAfter = await getGitChangedFileCount(gitCwd);
690
- if (mode === "preflight" && changedBefore !== null && changedAfter !== null && changedAfter <= changedBefore) throw new Error("Implementation made no repository changes; refusing to mark task complete");
691
- const updated = markTaskDone(await fsPromises.readFile(filePath, "utf8"), task.line);
692
- await fsPromises.writeFile(filePath, updated, "utf8");
693
- completed += 1;
694
- await notify({
695
- phase: "task_complete",
696
- index: taskNum,
697
- total: pending.length,
698
- task: task.text
699
- });
700
- } catch (err) {
701
- skipped += 1;
702
- const errorMsg = err instanceof Error ? err.message : String(err);
703
- args.runtime.error(`[Anton] Task failed and was skipped: ${task.text}`);
704
- args.runtime.error(errorMsg);
705
- await notify({
706
- phase: "task_failed",
707
- index: taskNum,
708
- total: pending.length,
709
- task: task.text,
710
- error: errorMsg
711
- });
712
- }
713
- }
714
- const durationMs = Date.now() - startedAt;
715
- const summary = `Anton finished: completed=${completed}, skipped=${skipped}, total=${pending.length}, duration=${formatDuration(durationMs)}`;
716
- await writeState({
717
- running: false,
718
- taskFile: filePath,
719
- startedAt: new Date(startedAt).toISOString(),
720
- total: pending.length,
721
- completed,
722
- skipped,
723
- lastSummary: summary,
724
- stopRequested: false
725
- });
726
- args.runtime.log(`\n${summary}`);
727
- await notify({
728
- phase: "finish",
729
- completed,
730
- skipped,
731
- total: pending.length,
732
- durationMs
733
- });
734
- } finally {
735
- await releaseLock();
736
- }
737
- }
738
-
739
- //#endregion
740
- export { runAnton as i, antonStop as n, anton_exports as r, antonStatus as t };