@visorcraft/idlehands 4.0.7 → 4.0.8

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 (344) hide show
  1. package/dist/{accounts-DsVN0UNw.js → accounts-3HS_UAhJ.js} +1 -1
  2. package/dist/{accounts-D-hQsUw-.js → accounts-DLTODa_Z.js} +1 -1
  3. package/dist/{accounts-D87a1Y_K.js → accounts-DgbTKQoW.js} +1 -1
  4. package/dist/{acp-cli-D52jj29o.js → acp-cli-B-7CXaeS.js} +7 -7
  5. package/dist/{agent-scope-Bn39ugK4.js → agent-scope-RA0zXRpu.js} +18 -18
  6. package/dist/{agent-via-gateway-DHSAoHG7.js → agent-via-gateway-BNqWa2KY.js} +1 -1
  7. package/dist/{agent-via-gateway-DKv0lYbJ.js → agent-via-gateway-DAWRXgBZ.js} +7 -7
  8. package/dist/{agent-via-gateway-DpOnWB8B.js → agent-via-gateway-DnukWgYg.js} +4 -4
  9. package/dist/{agent-via-gateway-iOxURXfD.js → agent-via-gateway-ot70omgC.js} +2 -2
  10. package/dist/{agents-lCACO44K.js → agents-etUqQ3vM.js} +4 -4
  11. package/dist/{agents.config-CCY6Cz20.js → agents.config-DGaSmPdW.js} +2 -2
  12. package/dist/{agents.config-B9LFlgTL.js → agents.config-FFOmEBpp.js} +1 -1
  13. package/dist/anton-B7cGl-93.js +579 -0
  14. package/dist/{anton-eVW4p18G.js → anton-BV_xSUQi.js} +1 -1
  15. package/dist/{anton-BBGfJxOA.js → anton-CZliSAOv.js} +1 -1
  16. package/dist/{anton-BAc6lLhA.js → anton-CdYcHDXy.js} +1 -1
  17. package/dist/{api-key-rotation-nXQVJErE.js → api-key-rotation-B-FTJm5p.js} +1 -1
  18. package/dist/{audio-preflight-vD3mDc6w.js → audio-preflight-CSSlgO89.js} +4 -4
  19. package/dist/{audio-preflight-DzjXupNO.js → audio-preflight-Dl1TO10w.js} +31 -31
  20. package/dist/{audit-D12wg2tV.js → audit-BmaVRZSd.js} +22 -22
  21. package/dist/{auth-choice-FtlZRCkf.js → auth-choice-CdEVNS6t.js} +1 -1
  22. package/dist/{auth-choice-BDndThZZ.js → auth-choice-D12Wsf7w.js} +12 -12
  23. package/dist/{auth-choice-CB74F1Wg.js → auth-choice-qQO5MWz8.js} +10 -10
  24. package/dist/{auth-choice.apply-helpers-pTqMTYmi.js → auth-choice.apply-helpers-CGcniL1T.js} +1 -1
  25. package/dist/{auth-store-CMyrmmSF.js → auth-store-DDzIMy8_.js} +7 -7
  26. package/dist/{auth-token-fKt_cHOj.js → auth-token-BJq87X3o.js} +1 -1
  27. package/dist/{banner-B_5dznlS.js → banner-DKPFtm9j.js} +1 -1
  28. package/dist/{bindings-DZjkLUU_.js → bindings-B59Q7nsk.js} +1 -1
  29. package/dist/{browser-cli-Da-0lyq2.js → browser-cli-Ny1nHwqv.js} +11 -11
  30. package/dist/build-info.json +3 -3
  31. package/dist/bundled/boot-md/handler.js +2 -2
  32. package/dist/bundled/session-memory/handler.js +2 -2
  33. package/dist/{call-DnTBT02D.js → call-BRL23UCk.js} +9 -9
  34. package/dist/{channel-account-context-B4nJPU2N.js → channel-account-context-CDbY5AIr.js} +5 -5
  35. package/dist/{channel-options-h5L1S2Jw.js → channel-options-BNcsrd0d.js} +3 -3
  36. package/dist/{channel-options-DXRwdUX9.js → channel-options-CSurZCfX.js} +1 -1
  37. package/dist/{channel-selection-3jUl-PyW.js → channel-selection-ZxRkxpuF.js} +1 -1
  38. package/dist/{channel-web-DERdVSsP.js → channel-web-COYnY8sZ.js} +2 -2
  39. package/dist/{channel-web-BRQth7bT.js → channel-web-DfBOK5if.js} +22 -22
  40. package/dist/{channels-cli-DhVgXBQN.js → channels-cli-BTIg3DJP.js} +7 -7
  41. package/dist/{channels-cli-tiO1k2nS.js → channels-cli-GZ16c99F.js} +88 -88
  42. package/dist/{channels-status-issues-hgASw9UA.js → channels-status-issues-CDpWjdI3.js} +1 -1
  43. package/dist/{chrome-DEnkfZ9p.js → chrome-Do5potHV.js} +9 -9
  44. package/dist/{chrome-YguTEaLx.js → chrome-VBsQfIrt.js} +2 -2
  45. package/dist/{clawbot-cli-C5cDal-5.js → clawbot-cli-uFgYrysW.js} +5 -5
  46. package/dist/cli/daemon-cli.js +1 -1
  47. package/dist/{cli-LY72rmrU.js → cli-CBXoKbJn.js} +2 -2
  48. package/dist/{cli-5gUCiFfL.js → cli-CnjJnIx0.js} +70 -70
  49. package/dist/{client-DIckPnsi.js → client-DxH9hwLn.js} +1 -1
  50. package/dist/{command-registry-DiTM7FaG.js → command-registry-D3iSv7Of.js} +10 -10
  51. package/dist/{commands-D3BU_t7G.js → commands-Dj5LalLo.js} +1 -1
  52. package/dist/{commands-registry-Cj4D_1tw.js → commands-registry-CURlRZQJ.js} +3 -3
  53. package/dist/{completion-cli-nnpHTGC-.js → completion-cli-Dkh-Zrqo.js} +2 -2
  54. package/dist/{completion-cli-ComrmOxR.js → completion-cli-Zaylny55.js} +12 -12
  55. package/dist/{config-cli-eBJoaO3_.js → config-cli-B8R8eDUm.js} +1 -1
  56. package/dist/{config-cli-CyFGv1-x.js → config-cli-DOf-CodQ.js} +6 -6
  57. package/dist/{config-guard-DnAyuF6T.js → config-guard-BdsOumqh.js} +17 -17
  58. package/dist/{config-validation-DIomLMwH.js → config-validation-BvKX6fPw.js} +2 -2
  59. package/dist/{configure-CxKJRv-R.js → configure-3o91R4Qd.js} +3 -3
  60. package/dist/{configure-BDbf-55B.js → configure-Wh7ZMjiP.js} +16 -16
  61. package/dist/{control-ui-assets-CiaCDBvZ.js → control-ui-assets-C7ZpN9hN.js} +1 -1
  62. package/dist/{cron-cli-B8uqoogS.js → cron-cli-Xml0Uww8.js} +12 -12
  63. package/dist/{daemon-cli-CMBNTpSS.js → daemon-cli-B1Ti51bt.js} +11 -11
  64. package/dist/{daemon-install-DeqQiAad.js → daemon-install-CYPo4M1M.js} +4 -4
  65. package/dist/{daemon-install-helpers-Bug_GYuy.js → daemon-install-helpers-BZY9-jNW.js} +9 -9
  66. package/dist/{deliver-yTpXc5sv.js → deliver--kttnrER.js} +7 -7
  67. package/dist/{deliver-5FLCa6tB.js → deliver-whAbSPLk.js} +1 -1
  68. package/dist/{deps-CNuk_Lqe.js → deps-0GRTVtgy.js} +1 -1
  69. package/dist/{deps-DGHlGKcG.js → deps-Bdrf7UsT.js} +1 -1
  70. package/dist/{deps-j4ERP1vX.js → deps-Ci76e_07.js} +1 -1
  71. package/dist/{deps-r93HSLuk.js → deps-DB6dI42Y.js} +6 -6
  72. package/dist/{devices-cli-DVLF8Yvw.js → devices-cli-BNkO0Fey.js} +7 -7
  73. package/dist/{diagnostics-CdUgLS0N.js → diagnostics-DmZbQ8Nc.js} +5 -5
  74. package/dist/{directory-cli-BAMS8f9U.js → directory-cli-Dz9iXeut.js} +9 -9
  75. package/dist/{dns-cli-BdxBk-k_.js → dns-cli-DD6hWsdc.js} +4 -4
  76. package/dist/{dock-CzF5XYGd.js → dock-Y96MzKuM.js} +4 -4
  77. package/dist/{docs-cli-SF7es4Zs.js → docs-cli-cHkrTB2e.js} +4 -4
  78. package/dist/{doctor-completion-B1zfgEgx.js → doctor-completion-BeqR17ft.js} +1 -1
  79. package/dist/{doctor-completion-k4Y6iVow.js → doctor-completion-CeD_GwXj.js} +2 -2
  80. package/dist/{doctor-config-flow-8qXzBx09.js → doctor-config-flow-Ck4oCjfl.js} +14 -14
  81. package/dist/{emergency-stop-CZrc3yGJ.js → emergency-stop-B1ycCthl.js} +7 -7
  82. package/dist/{emergency-stop-EXYMl2Ho.js → emergency-stop-BpudAT0i.js} +2 -2
  83. package/dist/{emergency-stop-rAr2AFYc.js → emergency-stop-D8XCYE8L.js} +2 -2
  84. package/dist/{emergency-stop-ChZeaOFx.js → emergency-stop-fApFDnLR.js} +70 -70
  85. package/dist/{enable-DaA_orGN.js → enable-o_s6PBsC.js} +1 -1
  86. package/dist/entry.js +1 -1
  87. package/dist/{exec-approvals-allowlist-8AkOwwIr.js → exec-approvals-allowlist-Co2tJSEo.js} +1 -1
  88. package/dist/{exec-approvals-cli-CtoJW2K-.js → exec-approvals-cli-CyjTnYfk.js} +15 -15
  89. package/dist/{exec-safe-bin-runtime-policy-DYXuBKqH.js → exec-safe-bin-runtime-policy-DaoU9-ni.js} +2 -2
  90. package/dist/extensionAPI.js +7 -7
  91. package/dist/{fs-safe-DNFrxDS-.js → fs-safe-_JQUGpZf.js} +15 -15
  92. package/dist/{gateway-cli-DUEnEMPj.js → gateway-cli-D3b05F0y.js} +9 -9
  93. package/dist/{gateway-cli-BzhusJ6G.js → gateway-cli-D9wmLKfn.js} +148 -148
  94. package/dist/{gateway-rpc-6vnhO4v8.js → gateway-rpc-Du-ZpDjh.js} +1 -1
  95. package/dist/{health-H258IqdH.js → health-D6PJPflH.js} +1 -1
  96. package/dist/{health-DUdnHqnW.js → health-cUQV1hzf.js} +13 -13
  97. package/dist/{hooks-cli-BQhTkmIs.js → hooks-cli-Cg5joAHH.js} +3 -3
  98. package/dist/{hooks-cli-h8tcMsfo.js → hooks-cli-Cs51IGnr.js} +84 -84
  99. package/dist/{hooks-status-CPIWc_bx.js → hooks-status-DNGo2G8Q.js} +1 -1
  100. package/dist/{idlehands-root-DFL2GrNW.js → idlehands-root-B8cUs-5M.js} +8 -8
  101. package/dist/{image-C_aN5P6-.js → image-BAsQlUqT.js} +1 -1
  102. package/dist/{image-C2JZiK-6.js → image-DSDEbSiO.js} +5 -5
  103. package/dist/{plugin-sdk/image-ops-BRYGGDwL.js → image-ops-BU-VdLZu.js} +2 -2
  104. package/dist/index.js +80 -80
  105. package/dist/{inspect-Dg16DMLn.js → inspect-ISQZuNM5.js} +4 -4
  106. package/dist/{install-safe-path-CNNMzJl9.js → install-safe-path-ChNR9pl6.js} +19 -19
  107. package/dist/{installs-ST3UaUVJ.js → installs-CNubze2L.js} +9 -9
  108. package/dist/{ir-DV0Hszc8.js → ir-VncGpwA1.js} +6 -6
  109. package/dist/{lifecycle-core-DOScNyOv.js → lifecycle-core-B6UoqYTJ.js} +5 -5
  110. package/dist/llm-slug-generator.js +2 -2
  111. package/dist/{local-roots-Cco87A2_.js → local-roots-q0xbefkf.js} +2 -2
  112. package/dist/{login-Dl_lsEHS.js → login-CfUhrgWT.js} +4 -4
  113. package/dist/{login-qr-B68cBRH0.js → login-qr-DBMsUxgL.js} +7 -7
  114. package/dist/{logs-cli-BluGGq03.js → logs-cli-CH4mFhUt.js} +8 -8
  115. package/dist/{manager-BBeTPO2h.js → manager-BMAFgXyU.js} +13 -13
  116. package/dist/{manifest-registry-RfRn8HJx.js → manifest-registry-Bak1x76G.js} +1 -1
  117. package/dist/{markdown-tables-C5hTDqNm.js → markdown-tables-DZClqsNo.js} +1 -1
  118. package/dist/{memory-cli-4wfelGdK.js → memory-cli-CUGwnVIY.js} +12 -12
  119. package/dist/{model-Bd-05WpB.js → model-C-icShH2.js} +2 -2
  120. package/dist/{model-catalog-BCsDrrvq.js → model-catalog-D9no0CH2.js} +3 -3
  121. package/dist/{model-picker-D3U0wJCO.js → model-picker-BkXoTOiA.js} +4 -4
  122. package/dist/{model-selection-CSn9tUuH.js → model-selection-0dGxYGp8.js} +16 -16
  123. package/dist/{models-cli-C2VBtXFK.js → models-cli-D6CVD4Jl.js} +79 -79
  124. package/dist/{models-cli-DBi6iuAc.js → models-cli-Va0ILYmK.js} +4 -4
  125. package/dist/{models-config-lQpqp472.js → models-config-C5A1wDWh.js} +6 -6
  126. package/dist/{models-Coc4CuFb.js → models-tqBGSD-X.js} +2 -2
  127. package/dist/{node-cli-DhD8-NHR.js → node-cli-Ch7K7WtL.js} +32 -32
  128. package/dist/{node-service-GpI0jzKr.js → node-service-C3vyxHLA.js} +1 -1
  129. package/dist/{nodes-cli-DPzxQ0mY.js → nodes-cli-D_hUCPNt.js} +14 -14
  130. package/dist/{nodes-screen-CIAn0wXq.js → nodes-screen-CcpPaFxa.js} +4 -4
  131. package/dist/{npm-registry-spec-BfeHLbIQ.js → npm-registry-spec-BCbbfIhX.js} +16 -16
  132. package/dist/{npm-resolution-DaNJYnTG.js → npm-resolution-CCdELgCy.js} +1 -1
  133. package/dist/{npm-resolution-B6vPFolU.js → npm-resolution-DgW-oSJa.js} +3 -3
  134. package/dist/{onboard-bK4jkGRa.js → onboard-Bfd4q7HR.js} +6 -6
  135. package/dist/{onboard-CM-Fu2Ee.js → onboard-Br7oW1Sf.js} +2 -2
  136. package/dist/{onboard-channels-CWZXe89N.js → onboard-channels-BpCQ5nQX.js} +1 -1
  137. package/dist/{onboard-channels-BYRL9eyC.js → onboard-channels-wDbxIOXH.js} +20 -20
  138. package/dist/{onboard-custom-D2sCP3_S.js → onboard-custom-DUbzMMu7.js} +4 -4
  139. package/dist/{onboard-helpers-ByhJg2ST.js → onboard-helpers-BQmbMJxJ.js} +8 -8
  140. package/dist/{onboard-hooks-_1Jgimeu.js → onboard-hooks-D9teGxfH.js} +4 -4
  141. package/dist/{onboard-remote-DuhWSiAO.js → onboard-remote-CIjhaP2W.js} +1 -1
  142. package/dist/{onboard-skills-vFwEasAg.js → onboard-skills-BsaUIuq6.js} +4 -4
  143. package/dist/{onboarding-CNGvwRqq.js → onboarding-CegT14jj.js} +13 -13
  144. package/dist/{onboarding-Ds1add5x.js → onboarding-rD-jdAK3.js} +3 -3
  145. package/dist/{onboarding.finalize-B4o0pRn2.js → onboarding.finalize-C50Cd_QG.js} +82 -82
  146. package/dist/{onboarding.finalize-CBIKuTsi.js → onboarding.finalize-CHq5hQxh.js} +7 -7
  147. package/dist/{onboarding.gateway-config-qVAY6x7I.js → onboarding.gateway-config-CEQMyj8l.js} +16 -16
  148. package/dist/{openai-model-default-OPCCNNS0.js → openai-model-default-7J6cw1rA.js} +2 -2
  149. package/dist/{outbound-CG19kl0w.js → outbound-DPTxwchq.js} +4 -4
  150. package/dist/{plugin-sdk/outbound-attachment-Bs7fNaqv.js → outbound-attachment-Bot3bRnK.js} +2 -2
  151. package/dist/{pairing-cli-QJYYDcIK.js → pairing-cli-jwx6hMsM.js} +10 -10
  152. package/dist/{pairing-labels-DuZ7ih-T.js → pairing-labels-ChQJzbS9.js} +1 -1
  153. package/dist/{pairing-store-qvpPoWL_.js → pairing-store-CPpEEQJO.js} +2 -2
  154. package/dist/{pairing-token-3hoCgQqp.js → pairing-token-lKXTMQ_M.js} +7 -7
  155. package/dist/{path-alias-guards-BCskHdfJ.js → path-alias-guards-FXBVVTLw.js} +3 -3
  156. package/dist/{path-safety-C1Y004P_.js → path-safety-DwibX65n.js} +1 -1
  157. package/dist/{paths-Bt0fZexW.js → paths-B-CLQ5RT.js} +9 -9
  158. package/dist/{pi-embedded-BnjDF31C.js → pi-embedded-2EqYdroP.js} +96 -42
  159. package/dist/{pi-embedded-helpers-BkzrQ5bZ.js → pi-embedded-helpers-BCsfqpDt.js} +6 -6
  160. package/dist/{pi-embedded-helpers-C2j0LfJC.js → pi-embedded-helpers-Ct2rwp-P.js} +4 -4
  161. package/dist/{pi-embedded-CxYEstRZ.js → pi-embedded-znVFwmix.js} +81 -27
  162. package/dist/{pi-model-discovery-Bt79ifyi.js → pi-model-discovery-BIP3RjXl.js} +1 -1
  163. package/dist/{pi-tools.policy-B_ME3yF6.js → pi-tools.policy-DfITIKZj.js} +5 -5
  164. package/dist/{plugin-auto-enable-BMuSi4aV.js → plugin-auto-enable-7DUxMy6A.js} +3 -3
  165. package/dist/{plugin-registry-avBJMf8D.js → plugin-registry-CYXCwXDq.js} +3 -3
  166. package/dist/{plugin-registry-COLTpSWs.js → plugin-registry-DAtKgBy3.js} +1 -1
  167. package/dist/plugin-sdk/{accounts-Kt6ygPsC.js → accounts-BLYMokxV.js} +2 -2
  168. package/dist/plugin-sdk/{accounts-mjFAny5F.js → accounts-C5tHm1UI.js} +1 -1
  169. package/dist/plugin-sdk/{accounts-B9nfRzyn.js → accounts-CBVAw5_G.js} +1 -1
  170. package/dist/plugin-sdk/{agent-scope-CU41EMlR.js → agent-scope-jl80I5G9.js} +2 -2
  171. package/dist/plugin-sdk/{agent-via-gateway-DruTfj9D.js → agent-via-gateway-BeEBACUq.js} +55 -55
  172. package/dist/plugin-sdk/{anton-lKxGN-F2.js → anton-DXocufH_.js} +4 -4
  173. package/dist/plugin-sdk/{api-key-rotation-CZhCWd61.js → api-key-rotation-D6nK54XH.js} +2 -2
  174. package/dist/plugin-sdk/{audio-preflight-CRgDehfO.js → audio-preflight-CKqqN8ty.js} +30 -30
  175. package/dist/plugin-sdk/{auth-store-DycBvVqL.js → auth-store-DaPWgQTx.js} +1 -1
  176. package/dist/plugin-sdk/{bindings-BDKKHGv-.js → bindings-xXgmJGxj.js} +2 -2
  177. package/dist/plugin-sdk/{channel-activity-TcS_VfJk.js → channel-activity-loOg1DRw.js} +3 -3
  178. package/dist/plugin-sdk/{channel-web-DFBbK8o7.js → channel-web-DOG4rb7e.js} +24 -24
  179. package/dist/plugin-sdk/{chrome-BCTizrZD.js → chrome-Cb9FgiCI.js} +6 -6
  180. package/dist/plugin-sdk/{chunk-DZr5xuqv.js → chunk-PW4MBmaN.js} +1 -1
  181. package/dist/plugin-sdk/{commands-registry-BqJLwZYh.js → commands-registry-B5m2EsHz.js} +5 -5
  182. package/dist/plugin-sdk/{config-BzPMtEKA.js → config-CEgzwk0J.js} +10 -10
  183. package/dist/plugin-sdk/{deliver-Cfc1UCre.js → deliver-BNfMF0Nb.js} +10 -10
  184. package/dist/plugin-sdk/{deps-C2JklbCf.js → deps--J_OAyWa.js} +6 -6
  185. package/dist/plugin-sdk/{diagnostic-B8VzcqLf.js → diagnostic-ByA6zvzu.js} +1 -1
  186. package/dist/plugin-sdk/{dock-CMURqoee.js → dock-DKQYtT6-.js} +6 -6
  187. package/dist/plugin-sdk/{emergency-stop-DaCLgoNM.js → emergency-stop-CAC-_dk-.js} +55 -55
  188. package/dist/plugin-sdk/{env-qurSiOO2.js → env-5XecRTLs.js} +1 -1
  189. package/dist/plugin-sdk/{errors-UqLewZJL.js → errors-CMcD8Lhh.js} +1 -1
  190. package/dist/plugin-sdk/{fetch-guard-C174s8ZV.js → fetch-guard-DwdUEdmT.js} +1 -1
  191. package/dist/plugin-sdk/{fs-safe-CCXTOK7j.js → fs-safe-qsx2_8-o.js} +2 -2
  192. package/dist/plugin-sdk/{image-DDuK8tyO.js → image-C_1tftC8.js} +6 -6
  193. package/dist/{image-ops-BkoEFRYH.js → plugin-sdk/image-ops-CXSUo-AM.js} +12 -12
  194. package/dist/plugin-sdk/index.js +60 -60
  195. package/dist/plugin-sdk/{ir-Bv0Zbp2E.js → ir-kdDGpPMq.js} +5 -5
  196. package/dist/plugin-sdk/{local-roots-bHCsSVt_.js → local-roots-DjB6DYeI.js} +4 -4
  197. package/dist/plugin-sdk/{login-CkQrnY2G.js → login-DIwO5D5Y.js} +6 -6
  198. package/dist/plugin-sdk/{login-qr-DAeHibH_.js → login-qr-CpCAJuvT.js} +8 -8
  199. package/dist/plugin-sdk/{manager-CTC1S_c9.js → manager-Dox9r7og.js} +10 -10
  200. package/dist/plugin-sdk/{markdown-tables-DfUQHRZY.js → markdown-tables-Drtwd4J5.js} +1 -1
  201. package/dist/plugin-sdk/{message-channel-DiMXmQeQ.js → message-channel-CQ0qkGHj.js} +1 -1
  202. package/dist/plugin-sdk/{outbound-B1twcfz5.js → outbound-Dx_q6JAI.js} +6 -6
  203. package/dist/{outbound-attachment-jYdMgCml.js → plugin-sdk/outbound-attachment-BisU5Vji.js} +2 -2
  204. package/dist/plugin-sdk/{path-alias-guards-yyy61qHh.js → path-alias-guards-C_uBEYb4.js} +1 -1
  205. package/dist/plugin-sdk/{pi-embedded-helpers-BAm9cWol.js → pi-embedded-helpers-B68z4sHq.js} +16 -16
  206. package/dist/plugin-sdk/{pi-model-discovery-Bt6JtUFr.js → pi-model-discovery-Dt6899be.js} +1 -1
  207. package/dist/plugin-sdk/{plugins-DRPlVBr_.js → plugins-NTjIvHYk.js} +5 -5
  208. package/dist/plugin-sdk/{pw-ai-CY0evCZ2.js → pw-ai-Dk2PTZzq.js} +10 -10
  209. package/dist/plugin-sdk/{qmd-manager-BckPBwZX.js → qmd-manager-juzrnopq.js} +5 -5
  210. package/dist/plugin-sdk/{query-expansion-CPqK-tTR.js → query-expansion-xBXvzdkL.js} +2 -2
  211. package/dist/plugin-sdk/{redact-Ub8sMBBC.js → redact-B6VQH3UQ.js} +1 -1
  212. package/dist/plugin-sdk/{replies-DwTNZJgi.js → replies-ZovJp-3F.js} +3 -3
  213. package/dist/plugin-sdk/{reply-BKLT5LXW.js → reply-5pZsGmq0.js} +165 -111
  214. package/dist/plugin-sdk/{reply-prefix-BqV0o7_7.js → reply-prefix--mxmTL7A.js} +1 -1
  215. package/dist/plugin-sdk/{resolve-outbound-target-DAdNGEqG.js → resolve-outbound-target-CnUtsDch.js} +2 -2
  216. package/dist/plugin-sdk/{resolve-route-C5mAwY-o.js → resolve-route-BZABUE4J.js} +3 -3
  217. package/dist/plugin-sdk/{retry-2OVzZJMZ.js → retry-Bh7jveNm.js} +1 -1
  218. package/dist/plugin-sdk/{runner-Ck0w3rcz.js → runner-CZz1tOIR.js} +10 -10
  219. package/dist/plugin-sdk/{send-BBD-m-nM.js → send-0EVlThEG.js} +10 -10
  220. package/dist/plugin-sdk/{send-CaPoBwby.js → send-B26cNPqY.js} +6 -6
  221. package/dist/plugin-sdk/{send-CPeuqOlq.js → send-BCjVQhp3.js} +13 -13
  222. package/dist/plugin-sdk/{send-SsqudCMv.js → send-CHUGIZs9.js} +7 -7
  223. package/dist/plugin-sdk/{send-A4Lv5nrg.js → send-Cb5NIN8s.js} +7 -7
  224. package/dist/plugin-sdk/{session-DpL4uk1J.js → session-DdJj6_DW.js} +3 -3
  225. package/dist/plugin-sdk/{sessions-CQ5iD4Uq.js → sessions-DNx9c2O2.js} +6 -6
  226. package/dist/plugin-sdk/{skill-commands-C_O9I71g.js → skill-commands-DorIK8kn.js} +5 -5
  227. package/dist/plugin-sdk/{skills-DmiIiX4l.js → skills-Dh_Cf2PA.js} +8 -8
  228. package/dist/plugin-sdk/{store-BI3rLJdW.js → store-CCCXwngh.js} +2 -2
  229. package/dist/plugin-sdk/{subsystem-lJo9gqAK.js → subsystem-DWPzKeZ0.js} +1 -1
  230. package/dist/plugin-sdk/{tables-C4X_nAUQ.js → tables-CF9W23Rd.js} +1 -1
  231. package/dist/plugin-sdk/{target-errors-CXh6e9ZE.js → target-errors-DaH0qYtL.js} +2 -2
  232. package/dist/plugin-sdk/{tokens-CU9S3S7t.js → tokens-Y97UKh4C.js} +1 -1
  233. package/dist/plugin-sdk/{tool-images-Cf9aWlVu.js → tool-images-BMRkn_yk.js} +2 -2
  234. package/dist/plugin-sdk/{tool-loop-detection-DuwkSqZL.js → tool-loop-detection-Cv8wyfAi.js} +2 -2
  235. package/dist/plugin-sdk/{utils-dP-FpIgu.js → utils-Dyj2wV4e.js} +2 -2
  236. package/dist/plugin-sdk/web-B-T8tUvc.js +71 -0
  237. package/dist/plugin-sdk/{whatsapp-actions-Bcknq6EZ.js → whatsapp-actions-B5g-Rywy.js} +23 -23
  238. package/dist/{plugins-B4hASNc2.js → plugins-D46VZh7u.js} +2 -2
  239. package/dist/{plugins-cli-C-uo9LAy.js → plugins-cli-CAbzpQdE.js} +3 -3
  240. package/dist/{plugins-cli-B6_9syjW.js → plugins-cli-Di1X-utw.js} +80 -80
  241. package/dist/{ports-B07M55Gr.js → ports-B2o0FSFD.js} +1 -1
  242. package/dist/{ports-DWJO5S52.js → ports-SQy1d-RL.js} +2 -2
  243. package/dist/{program-CRsDka5E.js → program-DCfsqP_8.js} +8 -8
  244. package/dist/{program-context-BTsKVJG-.js → program-context-Dhec-fGX.js} +43 -43
  245. package/dist/{prompt-select-styled-DzubrMFT.js → prompt-select-styled-C1aw6YAJ.js} +37 -37
  246. package/dist/{prompt-select-styled-7hzJWrd9.js → prompt-select-styled-CJ2ux4O0.js} +4 -4
  247. package/dist/{provider-auth-helpers-YtnVtfHM.js → provider-auth-helpers-BPsTPi3e.js} +1 -1
  248. package/dist/{provider-auth-helpers-dm-wozHr.js → provider-auth-helpers-aWibl0HT.js} +5 -5
  249. package/dist/{push-apns-BV7zUKu7.js → push-apns-BracxehR.js} +1 -1
  250. package/dist/{push-apns-A-7U4OK4.js → push-apns-By39WpiH.js} +5 -5
  251. package/dist/{pw-ai-BGALvhDi.js → pw-ai-7i9eGnLh.js} +11 -11
  252. package/dist/{pw-ai-DjmrIQle.js → pw-ai-yrIWfcWX.js} +1 -1
  253. package/dist/{qmd-manager-CVcPfkhL.js → qmd-manager-B-qeywfQ.js} +19 -19
  254. package/dist/{qr-cli-D2Oh8f0U.js → qr-cli-CSt5ihwG.js} +1 -1
  255. package/dist/{query-expansion-i5I3yavb.js → query-expansion-Clts_AGz.js} +12 -12
  256. package/dist/{redact-snapshot-CtIVs92s.js → redact-snapshot-BBNDQZIe.js} +1 -1
  257. package/dist/{register.agent-rHf18cUW.js → register.agent-BaVrC6Ay.js} +9 -9
  258. package/dist/{register.agent-D5bvlE12.js → register.agent-CyZyt49k.js} +95 -95
  259. package/dist/{register.configure-9NQauTQK.js → register.configure-CqmHvWcB.js} +8 -8
  260. package/dist/register.configure-DmjP2LTb.js +168 -0
  261. package/dist/{register.maintenance-BIVd22Yn.js → register.maintenance-DYYx-jCe.js} +9 -9
  262. package/dist/{register.maintenance-QBWMAGg5.js → register.maintenance-DfWWglhS.js} +90 -90
  263. package/dist/{register.message-C4xi8EEY.js → register.message-C3tFRLbl.js} +3 -3
  264. package/dist/{register.message-SchCSbTL.js → register.message-Cke7XTrc.js} +71 -71
  265. package/dist/{register.onboard-DV8DYRTN.js → register.onboard-BXK-V33E.js} +18 -18
  266. package/dist/{register.onboard-PcPjyLxN.js → register.onboard-DLZNgT0T.js} +2 -2
  267. package/dist/{register.orchestrator-anton-BcfMp8Cz.js → register.orchestrator-anton-D2g_KbgY.js} +14 -14
  268. package/dist/{register.orchestrator-anton-D8yY6nax.js → register.orchestrator-anton-rvqNZKP1.js} +2 -2
  269. package/dist/{register.setup-CrajCApG.js → register.setup-DBL7rrRW.js} +2 -2
  270. package/dist/{register.setup-B0CVTHFW.js → register.setup-Dr-v5BSC.js} +21 -21
  271. package/dist/{register.status-health-sessions-CsrQlTwE.js → register.status-health-sessions-BDG_QnIw.js} +4 -4
  272. package/dist/{register.status-health-sessions-MOhlrdZM.js → register.status-health-sessions-BrnK4KEW.js} +82 -82
  273. package/dist/{register.subclis-Bsrxn7je.js → register.subclis-SGnxsMrq.js} +9 -9
  274. package/dist/{replies-Czp4hvpS.js → replies-hSFVxL4h.js} +1 -1
  275. package/dist/{reply-prefix-BMEdvSpA.js → reply-prefix-C3y4zpTl.js} +1 -1
  276. package/dist/{reply-DlbLp0Yj.js → reply-tuqCy_5s.js} +223 -169
  277. package/dist/{resolve-route-Ef_Yt2Dw.js → resolve-route-D_AbcmD6.js} +2 -2
  278. package/dist/{rpc-DDTp_J6f.js → rpc-CCimHATv.js} +1 -1
  279. package/dist/{run-main-BIzE50C9.js → run-main-KfdXYi7n.js} +15 -15
  280. package/dist/{runner-CZW_eyf2.js → runner-Bv_BA3vd.js} +1 -1
  281. package/dist/{runner-BFG54hnb.js → runner-DzszLzI4.js} +20 -20
  282. package/dist/{runtime-DEmy759r.js → runtime-XmXLaHNk.js} +2 -2
  283. package/dist/{sandbox-CfPbhDY_.js → sandbox-DcUw5h3p.js} +20 -20
  284. package/dist/{sandbox-cli-B4wLJr21.js → sandbox-cli-DGvJ7Eeq.js} +22 -22
  285. package/dist/{secrets-cli-CidAOBfl.js → secrets-cli-Bgp_H_bH.js} +9 -9
  286. package/dist/{security-cli-Ch7AhbhS.js → security-cli-MQ__Ca6v.js} +39 -39
  287. package/dist/{send-DDMaLJAQ.js → send--lzpNy4f.js} +7 -7
  288. package/dist/{send-BCPkAE2k.js → send-C4v0Leny.js} +6 -6
  289. package/dist/{send-CEavqqEz.js → send-DQiw_nGD.js} +6 -6
  290. package/dist/{send-BPwTl4-K.js → send-DuwdEkLw.js} +4 -4
  291. package/dist/{send-CVIXqubC.js → send-DwdHiC7_.js} +13 -13
  292. package/dist/{server-BpSbZAwg.js → server-D6MltJIF.js} +14 -14
  293. package/dist/{server-context-BxNSTpH6.js → server-context-DI0W_H7R.js} +10 -10
  294. package/dist/{server-lifecycle-CGKrGrhM.js → server-lifecycle-B5PlrlbG.js} +2 -2
  295. package/dist/{server-node-events-CJo-LhWK.js → server-node-events-BLSMmXyp.js} +71 -71
  296. package/dist/{server-node-events-Ca-vBB7y.js → server-node-events-Brm38g1H.js} +3 -3
  297. package/dist/{service-Bj2oSfpw.js → service-C8NMS3m_.js} +15 -15
  298. package/dist/{session-BKVySI8q.js → session-CdnrRhb4.js} +1 -1
  299. package/dist/{sessions-BqWocozB.js → sessions-BtPXimXQ.js} +14 -14
  300. package/dist/{shared-DnQ4iyXk.js → shared-CpDPo3hJ.js} +2 -2
  301. package/dist/{shared-Jzrx8DfN.js → shared-DpLSpJIl.js} +1 -1
  302. package/dist/{skill-commands-BwIRWSCI.js → skill-commands-BFzmZAfo.js} +5 -5
  303. package/dist/{skill-scanner-B4Ftsbd2.js → skill-scanner-D7mzXRXd.js} +5 -5
  304. package/dist/{skills-TIyQDZx7.js → skills-DlvDyK8L.js} +3 -3
  305. package/dist/{skills-cli-5lbXi4Lh.js → skills-cli-BhKGhjbO.js} +5 -5
  306. package/dist/{skills-install-D0JHP5uM.js → skills-install-tr6wRWZj.js} +4 -4
  307. package/dist/{skills-status-Q9skQExW.js → skills-status-qjQ8XP0h.js} +1 -1
  308. package/dist/{status-Bq62ab72.js → status-CLNSJORR.js} +2 -2
  309. package/dist/{status-Dkbgc9sr.js → status-CmG_xHAm.js} +24 -24
  310. package/dist/{status.update-C3uRz7W6.js → status.update-CTi6vuWj.js} +2 -2
  311. package/dist/{store-CLNuI8-G.js → store-kH9wHHbO.js} +5 -5
  312. package/dist/{subagent-registry-DdXcwxHN.js → subagent-registry-B-ciR-Ya.js} +81 -27
  313. package/dist/{system-cli-DBp9Zmvt.js → system-cli-3T-OTIKv.js} +8 -8
  314. package/dist/{system-run-approval-context-xZVoE4nS.js → system-run-approval-context-CISBXlNw.js} +1 -1
  315. package/dist/{system-run-command-BIhrK3OI.js → system-run-command-qJdgzxLp.js} +1 -1
  316. package/dist/{systemd-DyrVLTI0.js → systemd-CaCR5CyM.js} +9 -9
  317. package/dist/{systemd-hints-BoKKzRI_.js → systemd-hints-DHu-HVFx.js} +6 -6
  318. package/dist/{systemd-linger-DrhGd61G.js → systemd-linger-B7XlUHk_.js} +1 -1
  319. package/dist/{tables-CZSD889r.js → tables-g9xkflht.js} +1 -1
  320. package/dist/{target-errors-BYuWhuLU.js → target-errors-bLIVFsbF.js} +4 -4
  321. package/dist/{tool-images-DZHrc4pq.js → tool-images-CHqepyF_.js} +1 -1
  322. package/dist/{tui-cli-DKyA5pZ2.js → tui-cli-BVKWJ9X7.js} +30 -30
  323. package/dist/{tui-DWGHGeZ3.js → tui-lalhRHve.js} +6 -6
  324. package/dist/{update-la2AdLf3.js → update-D79ppbMQ.js} +3 -3
  325. package/dist/{update-cli-DazNo7rK.js → update-cli-B-RzWiVk.js} +99 -99
  326. package/dist/{update-cli-DaMRO-aG.js → update-cli-ButEdTeQ.js} +9 -9
  327. package/dist/{update-runner-y0ygXgsr.js → update-runner-Cxg4n1sn.js} +15 -15
  328. package/dist/{update-runner-BVkF5g4U.js → update-runner-DizoiA2w.js} +1 -1
  329. package/dist/{upgrade-command-CRivS_8q.js → upgrade-command-DP6F1cjV.js} +3 -3
  330. package/dist/web-C4Q6twkC.js +123 -0
  331. package/dist/{web-CZCgCfEk.js → web-D5dDa5kC.js} +3 -3
  332. package/dist/{web-DeCBCsXv.js → web-DWhjgVIf.js} +8 -8
  333. package/dist/{web-DBWzdQPi.js → web-DtCFqhdb.js} +3 -3
  334. package/dist/{webhooks-cli-BnmVPYkU.js → webhooks-cli-2N03q0iY.js} +6 -6
  335. package/dist/{whatsapp-actions-D2mBFzmK.js → whatsapp-actions-Cms8wQM1.js} +18 -18
  336. package/dist/{with-timeout-BodPmGCY.js → with-timeout-DEdycYxq.js} +3 -3
  337. package/dist/{workspace-CDw87aZG.js → workspace-D3pARwoB.js} +1 -1
  338. package/dist/{workspace-dirs-D3bousoX.js → workspace-dirs-SsExQ3Bz.js} +1 -1
  339. package/dist/{wsl-CgXDjE09.js → wsl-BJW8nTyL.js} +2 -2
  340. package/package.json +1 -1
  341. package/dist/anton-RLNAl1Wi.js +0 -579
  342. package/dist/plugin-sdk/web-CWWIv9mK.js +0 -71
  343. package/dist/register.configure-Cz-AvXU5.js +0 -168
  344. package/dist/web-k_Gtl1KZ.js +0 -123
@@ -1,26 +1,26 @@
1
1
  import "./paths-Cn44w-EB.js";
2
2
  import { B as theme } from "./utils-CXzXXV2o.js";
3
- import "./agent-scope-Bn39ugK4.js";
3
+ import "./agent-scope-RA0zXRpu.js";
4
4
  import "./subsystem-CGZX2PBV.js";
5
5
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
6
- import "./idlehands-root-DFL2GrNW.js";
6
+ import "./idlehands-root-B8cUs-5M.js";
7
7
  import "./exec-CKHMT0tZ.js";
8
- import { It as loadConfig } from "./model-selection-CSn9tUuH.js";
8
+ import { It as loadConfig } from "./model-selection-0dGxYGp8.js";
9
9
  import "./github-copilot-token-D7lpquOO.js";
10
10
  import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
11
11
  import "./boolean-BsqeuxE6.js";
12
12
  import "./env-Bx-F45X5.js";
13
13
  import "./host-env-security-DkAVVuaw.js";
14
14
  import "./env-vars-sTMVGyld.js";
15
- import "./manifest-registry-RfRn8HJx.js";
16
- import { r as normalizeChannelId } from "./plugins-B4hASNc2.js";
17
- import "./accounts-D-hQsUw-.js";
18
- import "./bindings-DZjkLUU_.js";
15
+ import "./manifest-registry-Bak1x76G.js";
16
+ import { r as normalizeChannelId } from "./plugins-D46VZh7u.js";
17
+ import "./accounts-DLTODa_Z.js";
18
+ import "./bindings-B59Q7nsk.js";
19
19
  import "./logging-q4KyMmY-.js";
20
- import "./auth-store-CMyrmmSF.js";
21
- import { d as listPairingChannels, f as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-qvpPoWL_.js";
20
+ import "./auth-store-DDzIMy8_.js";
21
+ import { d as listPairingChannels, f as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-CPpEEQJO.js";
22
22
  import { t as formatDocsLink } from "./links-15764jZB.js";
23
- import { t as resolvePairingIdLabel } from "./pairing-labels-DuZ7ih-T.js";
23
+ import { t as resolvePairingIdLabel } from "./pairing-labels-ChQJzbS9.js";
24
24
  import { t as renderTable } from "./table-B9AmL3M1.js";
25
25
 
26
26
  //#region src/cli/pairing-cli.ts
@@ -1,4 +1,4 @@
1
- import { u as getPairingAdapter } from "./pairing-store-qvpPoWL_.js";
1
+ import { u as getPairingAdapter } from "./pairing-store-CPpEEQJO.js";
2
2
 
3
3
  //#region src/pairing/pairing-labels.ts
4
4
  function resolvePairingIdLabel(channel) {
@@ -1,8 +1,8 @@
1
1
  import { g as resolveStateDir, m as resolveOAuthDir, y as resolveRequiredHomeDir } from "./paths-Cn44w-EB.js";
2
2
  import { b as safeParseJson } from "./utils-CXzXXV2o.js";
3
3
  import { m as DEFAULT_ACCOUNT_ID } from "./session-key-Cuihcz_O.js";
4
- import { Lr as withFileLock$1 } from "./model-selection-CSn9tUuH.js";
5
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-B4hASNc2.js";
4
+ import { Lr as withFileLock$1 } from "./model-selection-0dGxYGp8.js";
5
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-D46VZh7u.js";
6
6
  import fs from "node:fs";
7
7
  import os from "node:os";
8
8
  import path from "node:path";
@@ -1,13 +1,13 @@
1
1
  import { g as resolveStateDir } from "./paths-Cn44w-EB.js";
2
2
  import { t as safeEqualSecret } from "./secret-equal-D_OXOV-d.js";
3
3
  import path from "node:path";
4
- import fsPromises from "node:fs/promises";
4
+ import fs from "node:fs/promises";
5
5
  import { randomBytes, randomUUID } from "node:crypto";
6
6
 
7
7
  //#region src/infra/json-files.ts
8
8
  async function readJsonFile(filePath) {
9
9
  try {
10
- const raw = await fsPromises.readFile(filePath, "utf8");
10
+ const raw = await fs.readFile(filePath, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return null;
@@ -16,15 +16,15 @@ async function readJsonFile(filePath) {
16
16
  async function writeJsonAtomic(filePath, value, options) {
17
17
  const mode = options?.mode ?? 384;
18
18
  const dir = path.dirname(filePath);
19
- await fsPromises.mkdir(dir, { recursive: true });
19
+ await fs.mkdir(dir, { recursive: true });
20
20
  const tmp = `${filePath}.${randomUUID()}.tmp`;
21
- await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
21
+ await fs.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
22
22
  try {
23
- await fsPromises.chmod(tmp, mode);
23
+ await fs.chmod(tmp, mode);
24
24
  } catch {}
25
- await fsPromises.rename(tmp, filePath);
25
+ await fs.rename(tmp, filePath);
26
26
  try {
27
- await fsPromises.chmod(filePath, mode);
27
+ await fs.chmod(filePath, mode);
28
28
  } catch {}
29
29
  }
30
30
  function createAsyncLock() {
@@ -1,13 +1,13 @@
1
- import { c as BOUNDARY_PATH_ALIAS_POLICIES, d as isNotFoundPathError, l as resolveBoundaryPath } from "./idlehands-root-DFL2GrNW.js";
1
+ import { c as BOUNDARY_PATH_ALIAS_POLICIES, d as isNotFoundPathError, l as resolveBoundaryPath } from "./idlehands-root-B8cUs-5M.js";
2
2
  import os from "node:os";
3
- import fsPromises from "node:fs/promises";
3
+ import fs from "node:fs/promises";
4
4
 
5
5
  //#region src/infra/hardlink-guards.ts
6
6
  async function assertNoHardlinkedFinalPath(params) {
7
7
  if (params.allowFinalHardlinkForUnlink) return;
8
8
  let stat;
9
9
  try {
10
- stat = await fsPromises.stat(params.filePath);
10
+ stat = await fs.stat(params.filePath);
11
11
  } catch (err) {
12
12
  if (isNotFoundPathError(err)) return;
13
13
  throw err;
@@ -1,4 +1,4 @@
1
- import { f as isPathInside } from "./idlehands-root-DFL2GrNW.js";
1
+ import { f as isPathInside } from "./idlehands-root-B8cUs-5M.js";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/infra/path-safety.ts
@@ -1,8 +1,8 @@
1
1
  import { et as resolvePreferredIdleHandsTmpDir } from "./utils-CXzXXV2o.js";
2
- import { d as isNotFoundPathError, f as isPathInside } from "./idlehands-root-DFL2GrNW.js";
3
- import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-DNFrxDS-.js";
2
+ import { d as isNotFoundPathError, f as isPathInside } from "./idlehands-root-B8cUs-5M.js";
3
+ import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-_JQUGpZf.js";
4
4
  import path from "node:path";
5
- import fsPromises from "node:fs/promises";
5
+ import fs from "node:fs/promises";
6
6
 
7
7
  //#region src/browser/form-fields.ts
8
8
  const DEFAULT_FILL_FIELD_TYPE = "text";
@@ -44,27 +44,27 @@ function invalidPath(scopeLabel) {
44
44
  }
45
45
  async function resolveRealPathIfExists(targetPath) {
46
46
  try {
47
- return await fsPromises.realpath(targetPath);
47
+ return await fs.realpath(targetPath);
48
48
  } catch {
49
49
  return;
50
50
  }
51
51
  }
52
52
  async function resolveTrustedRootRealPath(rootDir) {
53
53
  try {
54
- const rootLstat = await fsPromises.lstat(rootDir);
54
+ const rootLstat = await fs.lstat(rootDir);
55
55
  if (!rootLstat.isDirectory() || rootLstat.isSymbolicLink()) return;
56
- return await fsPromises.realpath(rootDir);
56
+ return await fs.realpath(rootDir);
57
57
  } catch {
58
58
  return;
59
59
  }
60
60
  }
61
61
  async function validateCanonicalPathWithinRoot(params) {
62
62
  try {
63
- const candidateLstat = await fsPromises.lstat(params.candidatePath);
63
+ const candidateLstat = await fs.lstat(params.candidatePath);
64
64
  if (candidateLstat.isSymbolicLink()) return "invalid";
65
65
  if (params.expect === "directory" && !candidateLstat.isDirectory()) return "invalid";
66
66
  if (params.expect === "file" && !candidateLstat.isFile()) return "invalid";
67
- const candidateRealPath = await fsPromises.realpath(params.candidatePath);
67
+ const candidateRealPath = await fs.realpath(params.candidatePath);
68
68
  return isPathInside(params.rootRealPath, candidateRealPath) ? "ok" : "invalid";
69
69
  } catch (err) {
70
70
  return isNotFoundPathError(err) ? "not-found" : "invalid";
@@ -142,7 +142,7 @@ async function resolveCheckedPathsWithinRoot(params) {
142
142
  };
143
143
  if (!rootRealPath || !raw || !path.isAbsolute(raw)) return lexicalPathResult;
144
144
  try {
145
- const resolvedExistingPath = await fsPromises.realpath(raw);
145
+ const resolvedExistingPath = await fs.realpath(raw);
146
146
  const relativePath = path.relative(rootRealPath, resolvedExistingPath);
147
147
  if (!isInRoot(relativePath)) return lexicalPathResult;
148
148
  return {
@@ -22,7 +22,7 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, n as getWebAuthA
22
22
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-J10cQN4A.js";
23
23
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DLZt92Da.js";
24
24
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-BvP4jdcV.js";
25
- import { C as initializeGlobalHookRunner, S as getGlobalHookRunner, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-5FLCa6tB.js";
25
+ import { C as initializeGlobalHookRunner, S as getGlobalHookRunner, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-whAbSPLk.js";
26
26
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-jHCdo9Am.js";
27
27
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bx2Le86J.js";
28
28
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BRVjft5i.js";
@@ -30,8 +30,8 @@ import { $ as readJsonFileWithFallback, A as extractTelegramLocation, B as norma
30
30
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-BDG-MYYV.js";
31
31
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Dic-M5qw.js";
32
32
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-DqqfOIdx.js";
33
- import { $ as stripPluginOnlyAllowlist, A as isTimeoutErrorMessage, B as resolveBrowserConfig, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as ensureSandboxWorkspaceForSession, G as resolveGatewayCredentialsFromConfig, H as getBridgeAuthForPort, I as resolveSandboxContext, J as applyOwnerOnlyToolPolicy, K as trimToUndefined$1, L as resolveSandboxRuntimeStatus, M as parseImageDimensionError, N as parseImageSizeError, O as isRateLimitAssistantError, P as sanitizeUserFacingText, Q as mergeAlsoAllowPolicy, R as createBrowserRouteContext, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, U as ensureBrowserControlAuth, V as resolveProfile, W as resolveBrowserControlAuth, X as collectExplicitAllowlist, Y as buildPluginToolGroups, Z as expandPolicyWithPluginGroups, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, at as buildBootstrapContextFiles, b as isAuthPermanentErrorMessage, c as extractToolCallsFromAssistant, ct as resolveBootstrapTotalMaxChars, d as downgradeOpenAIReasoningBlocks, et as expandToolGroups, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, it as matchesAnyGlobPattern, j as isTransientHttpError, k as isRawApiErrorPayload, l as extractToolResultId, lt as sanitizeGoogleTurnOrdering, m as classifyFailoverReason, n as validateGeminiTurns, nt as resolveToolProfilePolicy, o as normalizeTextForComparison, ot as ensureSessionHeader, p as BILLING_ERROR_USER_MESSAGE, q as resolveSandboxConfigForAgent, r as pickFallbackThinkingLevel, rt as compileGlobPatterns, s as sanitizeSessionMessagesImages, st as resolveBootstrapMaxChars, t as validateAnthropicTurns, tt as normalizeToolName, u as sanitizeToolCallIdsForCloudCodeAssist, v as getApiErrorPayloadFingerprint, w as isContextOverflowError, x as isBillingAssistantError, y as isAuthAssistantError, z as registerBrowserRoutes } from "./pi-embedded-helpers-C2j0LfJC.js";
34
- import { C as ensureChromeExtensionRelayServer, F as isSecureWebSocketUrl, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as rawDataToString, k as resolveExistingPathsWithinRoot, s as resolveLsofCommandSync } from "./chrome-DEnkfZ9p.js";
33
+ import { $ as stripPluginOnlyAllowlist, A as isTimeoutErrorMessage, B as resolveBrowserConfig, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as ensureSandboxWorkspaceForSession, G as resolveGatewayCredentialsFromConfig, H as getBridgeAuthForPort, I as resolveSandboxContext, J as applyOwnerOnlyToolPolicy, K as trimToUndefined$1, L as resolveSandboxRuntimeStatus, M as parseImageDimensionError, N as parseImageSizeError, O as isRateLimitAssistantError, P as sanitizeUserFacingText, Q as mergeAlsoAllowPolicy, R as createBrowserRouteContext, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, U as ensureBrowserControlAuth, V as resolveProfile, W as resolveBrowserControlAuth, X as collectExplicitAllowlist, Y as buildPluginToolGroups, Z as expandPolicyWithPluginGroups, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, at as buildBootstrapContextFiles, b as isAuthPermanentErrorMessage, c as extractToolCallsFromAssistant, ct as resolveBootstrapTotalMaxChars, d as downgradeOpenAIReasoningBlocks, et as expandToolGroups, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, it as matchesAnyGlobPattern, j as isTransientHttpError, k as isRawApiErrorPayload, l as extractToolResultId, lt as sanitizeGoogleTurnOrdering, m as classifyFailoverReason, n as validateGeminiTurns, nt as resolveToolProfilePolicy, o as normalizeTextForComparison, ot as ensureSessionHeader, p as BILLING_ERROR_USER_MESSAGE, q as resolveSandboxConfigForAgent, r as pickFallbackThinkingLevel, rt as compileGlobPatterns, s as sanitizeSessionMessagesImages, st as resolveBootstrapMaxChars, t as validateAnthropicTurns, tt as normalizeToolName, u as sanitizeToolCallIdsForCloudCodeAssist, v as getApiErrorPayloadFingerprint, w as isContextOverflowError, x as isBillingAssistantError, y as isAuthAssistantError, z as registerBrowserRoutes } from "./pi-embedded-helpers-Ct2rwp-P.js";
34
+ import { C as ensureChromeExtensionRelayServer, F as isSecureWebSocketUrl, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as rawDataToString, k as resolveExistingPathsWithinRoot, s as resolveLsofCommandSync } from "./chrome-Do5potHV.js";
35
35
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DappnhDp.js";
36
36
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-nQcWk6Z6.js";
37
37
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CGbCFqW8.js";
@@ -46,7 +46,7 @@ import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath, l as r
46
46
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BaUINxJH.js";
47
47
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CpZSs-zE.js";
48
48
  import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-BFsWfunr.js";
49
- import { C as extractTextFromChatContent, S as isInsideCode, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, w as ensureIdleHandsModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-C_aN5P6-.js";
49
+ import { C as extractTextFromChatContent, S as isInsideCode, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, w as ensureIdleHandsModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-BAsQlUqT.js";
50
50
  import { n as resolveMemorySearchConfig } from "./manager-DYOflU5p.js";
51
51
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-B7YMixjc.js";
52
52
  import { t as fetchWithSsrFGuard } from "./fetch-guard-BdCPmLBP.js";
@@ -60,7 +60,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-BwkcXPZC.js";
60
60
  import { _ as isNativeCommandsExplicitlyDisabled, a as listChatCommands, b as resolveNativeSkillsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, g as isCommandFlagEnabled, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody, v as isRestartEnabled, y as resolveNativeCommandsEnabled } from "./commands-registry-1-Rv2-IS.js";
61
61
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CHpRgsOw.js";
62
62
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZmR6jxY.js";
63
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$2, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-CZW_eyf2.js";
63
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$2, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-Bv_BA3vd.js";
64
64
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-ChVgjTkv.js";
65
65
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DTHhQmHb.js";
66
66
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C3LJmSjf.js";
@@ -72,7 +72,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
72
72
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-BnWIC6Jc.js";
73
73
  import { t as makeProxyFetch } from "./proxy-CNZpb4NE.js";
74
74
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CqYEEgmA.js";
75
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-j4ERP1vX.js";
75
+ import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-Ci76e_07.js";
76
76
  import { createRequire } from "node:module";
77
77
  import * as path$1 from "node:path";
78
78
  import path, { isAbsolute } from "node:path";
@@ -91,7 +91,7 @@ import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, Setting
91
91
  import { EdgeTTS } from "node-edge-tts";
92
92
  import { createServer } from "node:http";
93
93
  import { ProxyAgent, fetch as fetch$1 } from "undici";
94
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
94
+ import WebSocket$1, { WebSocket } from "ws";
95
95
  import { Buffer as Buffer$1 } from "node:buffer";
96
96
  import { createJiti } from "jiti";
97
97
  import { Type } from "@sinclair/typebox";
@@ -6371,7 +6371,7 @@ var GatewayClient = class {
6371
6371
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
6372
6372
  });
6373
6373
  }
6374
- this.ws = new WebSocket$1(url, wsOptions);
6374
+ this.ws = new WebSocket(url, wsOptions);
6375
6375
  this.ws.on("open", () => {
6376
6376
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
6377
6377
  const tlsError = this.validateTlsFingerprint();
@@ -6567,7 +6567,7 @@ var GatewayClient = class {
6567
6567
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
6568
6568
  if (this.connectTimer) clearTimeout(this.connectTimer);
6569
6569
  this.connectTimer = setTimeout(() => {
6570
- if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
6570
+ if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
6571
6571
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
6572
6572
  this.ws?.close(1008, "connect challenge timeout");
6573
6573
  }, connectChallengeTimeoutMs);
@@ -6609,7 +6609,7 @@ var GatewayClient = class {
6609
6609
  return null;
6610
6610
  }
6611
6611
  async request(method, params, opts) {
6612
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
6612
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
6613
6613
  const id = randomUUID();
6614
6614
  const frame = {
6615
6615
  type: "req",
@@ -7933,7 +7933,7 @@ async function routeReply(params) {
7933
7933
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7934
7934
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7935
7935
  try {
7936
- const { deliverOutboundPayloads } = await import("./deliver-5FLCa6tB.js").then((n) => n.n);
7936
+ const { deliverOutboundPayloads } = await import("./deliver-whAbSPLk.js").then((n) => n.n);
7937
7937
  const outboundSession = buildOutboundSessionContext({
7938
7938
  cfg,
7939
7939
  agentId: resolvedAgentId,
@@ -23045,9 +23045,12 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23045
23045
  const body = params.command.commandBodyNormalized;
23046
23046
  if (!body.startsWith("/anton")) return null;
23047
23047
  if (!params.command.isAuthorizedSender) return { shouldContinue: false };
23048
+ const channel = params.ctx.OriginatingChannel ?? params.command.channel;
23049
+ const to = params.ctx.OriginatingTo ?? params.command.from ?? params.command.to ?? "";
23050
+ const canRoute = isRoutableChannel(channel);
23048
23051
  const replyCtx = {
23049
- channel: params.ctx.OriginatingChannel ?? params.command.channel,
23050
- to: params.ctx.OriginatingTo ?? params.command.from ?? params.command.to ?? "",
23052
+ channel,
23053
+ to,
23051
23054
  sessionKey: params.sessionKey,
23052
23055
  accountId: params.ctx.AccountId,
23053
23056
  threadId: params.ctx.MessageThreadId,
@@ -23055,25 +23058,35 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23055
23058
  };
23056
23059
  const arg = body.slice(6).trim();
23057
23060
  if (arg === "status" || arg === "") {
23058
- const { antonStatus } = await import("./anton-eVW4p18G.js");
23061
+ const { antonStatus } = await import("./anton-BV_xSUQi.js");
23059
23062
  const lines = [];
23060
23063
  await antonStatus({
23061
23064
  log: (msg) => lines.push(msg),
23062
23065
  error: (msg) => lines.push(msg),
23063
23066
  exit: () => {}
23064
23067
  });
23065
- await sendProgress(replyCtx, lines.join("\n") || "Anton is idle.");
23068
+ const text = lines.join("\n") || "Anton is idle.";
23069
+ if (!canRoute) return {
23070
+ shouldContinue: false,
23071
+ reply: { text }
23072
+ };
23073
+ await sendProgress(replyCtx, text);
23066
23074
  return { shouldContinue: false };
23067
23075
  }
23068
23076
  if (arg === "stop") {
23069
- const { antonStop } = await import("./anton-eVW4p18G.js");
23077
+ const { antonStop } = await import("./anton-BV_xSUQi.js");
23070
23078
  const lines = [];
23071
23079
  await antonStop({
23072
23080
  log: (msg) => lines.push(msg),
23073
23081
  error: (msg) => lines.push(msg),
23074
23082
  exit: () => {}
23075
23083
  });
23076
- await sendProgress(replyCtx, lines.join("\n") || "Stop requested.");
23084
+ const text = lines.join("\n") || "Stop requested.";
23085
+ if (!canRoute) return {
23086
+ shouldContinue: false,
23087
+ reply: { text }
23088
+ };
23089
+ await sendProgress(replyCtx, text);
23077
23090
  return { shouldContinue: false };
23078
23091
  }
23079
23092
  const taskFile = arg;
@@ -23082,19 +23095,30 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23082
23095
  const resolvedPath = pathMod.resolve(params.workspaceDir || process.cwd(), taskFile);
23083
23096
  try {
23084
23097
  if (!(await fs.stat(resolvedPath)).isFile()) {
23085
- await sendProgress(replyCtx, `❌ Not a file: \`${resolvedPath}\``);
23098
+ const text = `❌ Not a file: \`${resolvedPath}\``;
23099
+ if (!canRoute) return {
23100
+ shouldContinue: false,
23101
+ reply: { text }
23102
+ };
23103
+ await sendProgress(replyCtx, text);
23086
23104
  return { shouldContinue: false };
23087
23105
  }
23088
23106
  } catch {
23089
- await sendProgress(replyCtx, `❌ File not found: \`${resolvedPath}\``);
23107
+ const text = `❌ File not found: \`${resolvedPath}\``;
23108
+ if (!canRoute) return {
23109
+ shouldContinue: false,
23110
+ reply: { text }
23111
+ };
23112
+ await sendProgress(replyCtx, text);
23090
23113
  return { shouldContinue: false };
23091
23114
  }
23092
- const { runAnton, formatProgressMessage } = await import("./anton-eVW4p18G.js");
23093
- const { createDefaultDeps } = await import("./deps-j4ERP1vX.js").then((n) => n.n);
23115
+ const { runAnton, formatProgressMessage } = await import("./anton-BV_xSUQi.js");
23116
+ const { createDefaultDeps } = await import("./deps-Ci76e_07.js").then((n) => n.n);
23094
23117
  const { createNonExitingRuntime } = await import("./runtime-8mi3mpYB.js").then((n) => n.r);
23095
23118
  const runtime = createNonExitingRuntime();
23096
23119
  const deps = createDefaultDeps();
23097
- await sendProgress(replyCtx, `🤚 **/anton** invoked on \`${pathMod.basename(resolvedPath)}\`\nStarting orchestrator...`);
23120
+ const startText = `🤚 **/anton** invoked on \`${pathMod.basename(resolvedPath)}\`\nStarting orchestrator...`;
23121
+ if (canRoute) await sendProgress(replyCtx, startText);
23098
23122
  (async () => {
23099
23123
  try {
23100
23124
  await runAnton({
@@ -23104,15 +23128,19 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23104
23128
  force: false,
23105
23129
  dryRun: false,
23106
23130
  workspaceDir: params.workspaceDir || void 0,
23107
- onProgress: async (event) => {
23131
+ ...canRoute ? { onProgress: async (event) => {
23108
23132
  await sendProgress(replyCtx, formatProgressMessage(event));
23109
- }
23133
+ } } : {}
23110
23134
  });
23111
23135
  } catch (err) {
23112
- await sendProgress(replyCtx, `❌ **Anton crashed**: ${err instanceof Error ? err.message : String(err)}`);
23136
+ const msg = err instanceof Error ? err.message : String(err);
23137
+ if (canRoute) await sendProgress(replyCtx, `❌ **Anton crashed**: ${msg}`);
23113
23138
  }
23114
23139
  })();
23115
- return { shouldContinue: false };
23140
+ return canRoute ? { shouldContinue: false } : {
23141
+ shouldContinue: false,
23142
+ reply: { text: startText }
23143
+ };
23116
23144
  };
23117
23145
 
23118
23146
  //#endregion
@@ -23124,9 +23152,15 @@ const handleDirCommand = async (params, _allowTextCommands) => {
23124
23152
  const channel = params.ctx.OriginatingChannel ?? params.command.channel;
23125
23153
  const to = params.ctx.OriginatingTo ?? params.command.from ?? params.command.to ?? "";
23126
23154
  const arg = body.slice(4).trim();
23155
+ const canRoute = isRoutableChannel(channel);
23127
23156
  if (!arg) {
23157
+ const text = `📂 Current workspace: \`${params.workspaceDir || "(not set)"}\``;
23158
+ if (!canRoute) return {
23159
+ shouldContinue: false,
23160
+ reply: { text }
23161
+ };
23128
23162
  await routeReply({
23129
- payload: { text: `📂 Current workspace: \`${params.workspaceDir || "(not set)"}\`` },
23163
+ payload: { text },
23130
23164
  channel,
23131
23165
  to,
23132
23166
  sessionKey: params.sessionKey,
@@ -23141,8 +23175,13 @@ const handleDirCommand = async (params, _allowTextCommands) => {
23141
23175
  const resolved = (await import("node:path")).resolve(newPath);
23142
23176
  try {
23143
23177
  if (!(await fs.stat(resolved)).isDirectory()) {
23178
+ const text = `❌ Path exists but is not a directory: \`${resolved}\``;
23179
+ if (!canRoute) return {
23180
+ shouldContinue: false,
23181
+ reply: { text }
23182
+ };
23144
23183
  await routeReply({
23145
- payload: { text: `❌ Path exists but is not a directory: \`${resolved}\`` },
23184
+ payload: { text },
23146
23185
  channel,
23147
23186
  to,
23148
23187
  sessionKey: params.sessionKey,
@@ -23153,8 +23192,13 @@ const handleDirCommand = async (params, _allowTextCommands) => {
23153
23192
  return { shouldContinue: false };
23154
23193
  }
23155
23194
  } catch {
23195
+ const text = `❌ Directory not found: \`${resolved}\``;
23196
+ if (!canRoute) return {
23197
+ shouldContinue: false,
23198
+ reply: { text }
23199
+ };
23156
23200
  await routeReply({
23157
- payload: { text: `❌ Directory not found: \`${resolved}\`` },
23201
+ payload: { text },
23158
23202
  channel,
23159
23203
  to,
23160
23204
  sessionKey: params.sessionKey,
@@ -23175,8 +23219,13 @@ const handleDirCommand = async (params, _allowTextCommands) => {
23175
23219
  });
23176
23220
  }
23177
23221
  params.workspaceDir = resolved;
23222
+ const text = `✅ Workspace set to: \`${resolved}\`\nActive for this session only.`;
23223
+ if (!canRoute) return {
23224
+ shouldContinue: false,
23225
+ reply: { text }
23226
+ };
23178
23227
  await routeReply({
23179
- payload: { text: `✅ Workspace set to: \`${resolved}\`\nActive for this session only.` },
23228
+ payload: { text },
23180
23229
  channel,
23181
23230
  to,
23182
23231
  sessionKey: params.sessionKey,
@@ -23185,8 +23234,13 @@ const handleDirCommand = async (params, _allowTextCommands) => {
23185
23234
  cfg: params.cfg
23186
23235
  });
23187
23236
  } catch (err) {
23237
+ const text = `❌ Failed to update workspace: ${err instanceof Error ? err.message : String(err)}`;
23238
+ if (!canRoute) return {
23239
+ shouldContinue: false,
23240
+ reply: { text }
23241
+ };
23188
23242
  await routeReply({
23189
- payload: { text: `❌ Failed to update workspace: ${err instanceof Error ? err.message : String(err)}` },
23243
+ payload: { text },
23190
23244
  channel,
23191
23245
  to,
23192
23246
  sessionKey: params.sessionKey,
@@ -47352,7 +47406,7 @@ async function deliverSessionMaintenanceWarning(params) {
47352
47406
  return;
47353
47407
  }
47354
47408
  try {
47355
- const { deliverOutboundPayloads } = await import("./deliver-5FLCa6tB.js").then((n) => n.n);
47409
+ const { deliverOutboundPayloads } = await import("./deliver-whAbSPLk.js").then((n) => n.n);
47356
47410
  const outboundSession = buildOutboundSessionContext({
47357
47411
  cfg: params.cfg,
47358
47412
  sessionKey: params.sessionKey
@@ -51786,7 +51840,7 @@ async function describeStickerImage(params) {
51786
51840
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
51787
51841
  try {
51788
51842
  const buffer = await fs.readFile(imagePath);
51789
- const { describeImageWithModel } = await import("./image-C_aN5P6-.js").then((n) => n.n);
51843
+ const { describeImageWithModel } = await import("./image-BAsQlUqT.js").then((n) => n.n);
51790
51844
  return (await describeImageWithModel({
51791
51845
  buffer,
51792
51846
  fileName: "sticker.webp",
@@ -54714,7 +54768,7 @@ async function preflightDiscordMessage(params) {
54714
54768
  let preflightTranscript;
54715
54769
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
54716
54770
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
54717
- const { transcribeFirstAudio } = await import("./audio-preflight-vD3mDc6w.js");
54771
+ const { transcribeFirstAudio } = await import("./audio-preflight-CSSlgO89.js");
54718
54772
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
54719
54773
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
54720
54774
  ctx: {
@@ -57191,7 +57245,7 @@ function createDiscordMessageHandler(params) {
57191
57245
  try {
57192
57246
  const messageText = resolveDiscordMessageText(data.message)?.trim();
57193
57247
  if (messageText) {
57194
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CZrc3yGJ.js");
57248
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B1ycCthl.js");
57195
57249
  if (isAbortRequestText(messageText)) {
57196
57250
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
57197
57251
  const channelId = resolveDiscordMessageChannelId({
@@ -62637,7 +62691,7 @@ function createDiscordGatewayPlugin(params) {
62637
62691
  return super.registerClient(client);
62638
62692
  }
62639
62693
  createWebSocket(url) {
62640
- return new WebSocket(url, { agent: wsAgent });
62694
+ return new WebSocket$1(url, { agent: wsAgent });
62641
62695
  }
62642
62696
  }
62643
62697
  return new ProxyGatewayPlugin();
@@ -64689,7 +64743,7 @@ async function monitorIMessageProvider(opts = {}) {
64689
64743
  }
64690
64744
  const msgText = (message.text ?? "").trim();
64691
64745
  if (msgText) {
64692
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CZrc3yGJ.js");
64746
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B1ycCthl.js");
64693
64747
  if (isAbortRequestText(msgText)) {
64694
64748
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
64695
64749
  const route = resolveAgentRoute({
@@ -67300,7 +67354,7 @@ function createSignalEventHandler(deps) {
67300
67354
  const senderName = envelope.sourceName ?? senderDisplay;
67301
67355
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
67302
67356
  if (bodyText) {
67303
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CZrc3yGJ.js");
67357
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B1ycCthl.js");
67304
67358
  if (isAbortRequestText(bodyText)) {
67305
67359
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
67306
67360
  const route = resolveAgentRoute({
@@ -70682,7 +70736,7 @@ function createSlackMessageHandler(params) {
70682
70736
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
70683
70737
  const rawText = (message.text ?? "").trim();
70684
70738
  if (rawText) {
70685
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CZrc3yGJ.js");
70739
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B1ycCthl.js");
70686
70740
  if (isAbortRequestText(rawText)) {
70687
70741
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
70688
70742
  const route = resolveAgentRoute({
@@ -72876,7 +72930,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
72876
72930
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
72877
72931
  const text = typeof msg.text === "string" ? msg.text : void 0;
72878
72932
  if (text) {
72879
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CZrc3yGJ.js");
72933
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B1ycCthl.js");
72880
72934
  if (isAbortRequestText(text)) {
72881
72935
  const senderId = msg.from?.id ? String(msg.from.id) : "";
72882
72936
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -73763,7 +73817,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
73763
73817
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
73764
73818
  let preflightTranscript;
73765
73819
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
73766
- const { transcribeFirstAudio } = await import("./audio-preflight-vD3mDc6w.js");
73820
+ const { transcribeFirstAudio } = await import("./audio-preflight-CSSlgO89.js");
73767
73821
  preflightTranscript = await transcribeFirstAudio({
73768
73822
  ctx: {
73769
73823
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -76361,7 +76415,7 @@ function loadWebLoginQr() {
76361
76415
  return webLoginQrPromise;
76362
76416
  }
76363
76417
  function loadWebChannel() {
76364
- webChannelPromise ??= import("./web-DeCBCsXv.js");
76418
+ webChannelPromise ??= import("./web-DWhjgVIf.js");
76365
76419
  return webChannelPromise;
76366
76420
  }
76367
76421
  function loadWhatsAppActions() {
@@ -1,10 +1,10 @@
1
1
  import { E as truncateUtf16Safe } from "./utils-CXzXXV2o.js";
2
2
  import { s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
4
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-CfPbhDY_.js";
5
- import { t as sanitizeContentBlocksImages } from "./tool-images-DZHrc4pq.js";
4
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-DcUw5h3p.js";
5
+ import { t as sanitizeContentBlocksImages } from "./tool-images-CHqepyF_.js";
6
6
  import path from "node:path";
7
- import fsPromises from "node:fs/promises";
7
+ import fs from "node:fs/promises";
8
8
  import { createHash } from "node:crypto";
9
9
 
10
10
  //#region src/agents/pi-embedded-helpers/bootstrap.ts
@@ -102,10 +102,10 @@ function clampToBudget(content, budget) {
102
102
  async function ensureSessionHeader(params) {
103
103
  const file = params.sessionFile;
104
104
  try {
105
- await fsPromises.stat(file);
105
+ await fs.stat(file);
106
106
  return;
107
107
  } catch {}
108
- await fsPromises.mkdir(path.dirname(file), { recursive: true });
108
+ await fs.mkdir(path.dirname(file), { recursive: true });
109
109
  const entry = {
110
110
  type: "session",
111
111
  version: 2,
@@ -113,7 +113,7 @@ async function ensureSessionHeader(params) {
113
113
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
114
114
  cwd: params.cwd
115
115
  };
116
- await fsPromises.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
116
+ await fs.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
117
117
  }
118
118
  function buildBootstrapContextFiles(files, opts) {
119
119
  const maxChars = opts?.maxChars ?? DEFAULT_BOOTSTRAP_MAX_CHARS;