@visorcraft/idlehands 4.4.0 → 4.4.2

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 (256) hide show
  1. package/dist/{accounts-BDVs8LTu.js → accounts-B8cGzkjD.js} +1 -1
  2. package/dist/{accounts-Dk8mJIrQ.js → accounts-BQC_GRUB.js} +6 -6
  3. package/dist/{accounts-CIvVRRHb.js → accounts-D5tB_lO0.js} +1 -1
  4. package/dist/{agent-scope-DyP_tr7s.js → agent-scope-Bxq1eWbA.js} +4 -4
  5. package/dist/{agent-via-gateway-DvLTdMBj.js → agent-via-gateway-B82avysM.js} +1 -1
  6. package/dist/{agent-via-gateway-CPvgY5VA.js → agent-via-gateway-BLv_oSL5.js} +1 -1
  7. package/dist/{agent-via-gateway-OzQZlQpB.js → agent-via-gateway-BZBYIS74.js} +2 -2
  8. package/dist/{agent-via-gateway-CTti0dK7.js → agent-via-gateway-spHKNacF.js} +60 -60
  9. package/dist/{agents-BEuHL8Zr.js → agents-DFsifqti.js} +4 -4
  10. package/dist/{agents.config-BjMP6yqX.js → agents.config-B-HneNqt.js} +1 -1
  11. package/dist/{agents.config-BDQ4Bu0B.js → agents.config-LJG8mKGJ.js} +1 -1
  12. package/dist/{anton-Dwp3KlQs.js → anton-BHVfJEmp.js} +1 -1
  13. package/dist/{anton-C8SARtai.js → anton-CH-O1fKX.js} +5 -5
  14. package/dist/{anton-DCJl8crN.js → anton-DDY9C7_9.js} +1 -1
  15. package/dist/{anton-F-OwKPyb.js → anton-DYkdgFjS.js} +1 -1
  16. package/dist/{audio-preflight-DdYPJah_.js → audio-preflight-CwOVlM_o.js} +35 -35
  17. package/dist/{auth-choice-BHISFUGz.js → auth-choice-BwuBROMy.js} +1 -1
  18. package/dist/{auth-choice-Dam79K-y.js → auth-choice-tTRqUPHJ.js} +1 -1
  19. package/dist/{auth-store-DXT-l7fO.js → auth-store-Bb4aajHu.js} +12 -12
  20. package/dist/{banner-ascZEgmt.js → banner-DUYqUnZh.js} +1 -1
  21. package/dist/{bindings-D3b5Fmc9.js → bindings-CLZIJ0Eo.js} +2 -2
  22. package/dist/build-info.json +3 -3
  23. package/dist/bundled/boot-md/handler.js +60 -60
  24. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  25. package/dist/bundled/command-logger/handler.js +3 -3
  26. package/dist/bundled/session-memory/handler.js +60 -60
  27. package/dist/{plugin-sdk/channel-activity-loOg1DRw.js → channel-activity-DdL3RAv_.js} +3 -3
  28. package/dist/{channel-options-CAfv1NVr.js → channel-options-DgE4bKnZ.js} +1 -1
  29. package/dist/{channel-options-BdjtX9_O.js → channel-options-w859WR9f.js} +1 -1
  30. package/dist/{channel-web-BZe8v7Di.js → channel-web-6DakWPLw.js} +2 -2
  31. package/dist/{channel-web-B23k1s4A.js → channel-web-DRFHkK-t.js} +2 -2
  32. package/dist/{channels-cli-v8qMY1yM.js → channels-cli-3a9CzVGj.js} +7 -7
  33. package/dist/{channels-cli-Bfz9P0IR.js → channels-cli-DTM2c23f.js} +7 -7
  34. package/dist/{chrome-RZ6-DZcL.js → chrome-CrBtckYY.js} +17 -17
  35. package/dist/{chunk-CMpX7Jaz.js → chunk-Djk-9JeT.js} +1 -1
  36. package/dist/{cli-HkluaDt1.js → cli-BYiKVK4i.js} +2 -2
  37. package/dist/{cli-DyId4irC.js → cli-C7BI3Wn6.js} +2 -2
  38. package/dist/{command-registry-Bs5y1F2v.js → command-registry-BtbFeRGU.js} +10 -10
  39. package/dist/{commands-registry-C_zNi-Ou.js → commands-registry-Cy_UQS_3.js} +5 -5
  40. package/dist/{completion-cli-CGXtQf6t.js → completion-cli-BB2Y8nfx.js} +1 -1
  41. package/dist/{completion-cli-BmHAqqY4.js → completion-cli-BGz3hkuH.js} +2 -2
  42. package/dist/{config-cli-BdJDJv0a.js → config-cli-DOmnPiGC.js} +1 -1
  43. package/dist/{config-cli-CEehCZa0.js → config-cli-b1s6P-RG.js} +1 -1
  44. package/dist/{configure-C5087mSP.js → configure-BQsgmT59.js} +3 -3
  45. package/dist/{configure-C44gmCt3.js → configure-D4tLHdxZ.js} +3 -3
  46. package/dist/daemon-cli.js +6 -6
  47. package/dist/{deliver-BQeDhZSa.js → deliver-DReSDWa4.js} +20 -20
  48. package/dist/{deps-CchkM1ea.js → deps-1S6DoURA.js} +1 -1
  49. package/dist/{deps-SgroTRjf.js → deps-BZOU70bs.js} +1 -1
  50. package/dist/{deps-UTcCCmJ6.js → deps-D0XOoTym.js} +6 -6
  51. package/dist/{deps-CfQJK6WP.js → deps-D3ku734-.js} +1 -1
  52. package/dist/{diagnostic-4owMk4vH.js → diagnostic-BvlZ0Sot.js} +1 -1
  53. package/dist/{dock-BgOmHcbh.js → dock-ejUetwTC.js} +6 -6
  54. package/dist/{doctor-completion-DsaJMlSu.js → doctor-completion-BfAWZyFl.js} +1 -1
  55. package/dist/{doctor-completion-Cgl5S3K0.js → doctor-completion-DOFXmBLZ.js} +1 -1
  56. package/dist/{emergency-stop-B2KUQyt8.js → emergency-stop-3LJcS7w-.js} +2 -2
  57. package/dist/emergency-stop-BXmSbO38.js +113 -0
  58. package/dist/{emergency-stop-DjURYr3Z.js → emergency-stop-DXwma2EI.js} +2 -2
  59. package/dist/{emergency-stop-BCRW03p2.js → emergency-stop-Dpdosd7y.js} +2 -2
  60. package/dist/entry.js +1 -1
  61. package/dist/{env-B5G1qwGc.js → env-q-PhWbb_.js} +1 -1
  62. package/dist/{plugin-sdk/errors-CMcD8Lhh.js → errors-C4SHjIZK.js} +1 -1
  63. package/dist/extensionAPI.js +2 -2
  64. package/dist/{fetch-guard-iuQsIjqN.js → fetch-guard-CcfDZXe9.js} +1 -1
  65. package/dist/{frontmatter-BOudmHMS.js → frontmatter-pTUG4Sx_.js} +2 -2
  66. package/dist/{fs-safe-CYUaAFO9.js → fs-safe-2l05hI1Y.js} +2 -2
  67. package/dist/{gateway-cli-BmwR5tHy.js → gateway-cli-B2CLa9rg.js} +9 -9
  68. package/dist/{gateway-cli-Cx3sGYvO.js → gateway-cli-CzXEYocw.js} +9 -9
  69. package/dist/{gemini-auth-DwwgHLvI.js → gemini-auth-DnP8lfQK.js} +2 -2
  70. package/dist/{github-copilot-token-Dgt6cnsM.js → github-copilot-token-BjmEQcmi.js} +7 -7
  71. package/dist/{health-DXbufVL-.js → health-C2A5ilGU.js} +1 -1
  72. package/dist/{health-F0lUmHT3.js → health-Dn7CVhrN.js} +1 -1
  73. package/dist/{hooks-cli-6t3DpWin.js → hooks-cli-BxGuMBUi.js} +3 -3
  74. package/dist/{hooks-cli-CsWYWkar.js → hooks-cli-CT8pLj_8.js} +3 -3
  75. package/dist/{image-4HTajysw.js → image-DBhgEUm0.js} +6 -6
  76. package/dist/{image-ops-D1KtygWz.js → image-ops-J8P5zOFm.js} +1 -1
  77. package/dist/index.js +7 -7
  78. package/dist/{ir-B7IBoKLy.js → ir-BT5aAdU9.js} +5 -5
  79. package/dist/llm-slug-generator.js +60 -60
  80. package/dist/{local-roots-KN4Hp1yZ.js → local-roots-d4y0lvs2.js} +5 -5
  81. package/dist/{login-B8EuUm6R.js → login-CtL3gtbh.js} +6 -6
  82. package/dist/{login-qr-DS_9MrMo.js → login-qr-D090cMcd.js} +11 -11
  83. package/dist/{manager-CaFxh6F8.js → manager-1TS0xG0C.js} +15 -15
  84. package/dist/{markdown-tables-CzsockiZ.js → markdown-tables-R8VTpfE9.js} +1 -1
  85. package/dist/{message-channel-C8QtrwEU.js → message-channel-ZdI1-uUh.js} +1 -1
  86. package/dist/{model-selection-D5g8tXIY.js → model-selection-C5BhfuPa.js} +41 -41
  87. package/dist/{models-awPyoUpk.js → models-CGtrW3AC.js} +2 -2
  88. package/dist/{models-cli-D_PfTekq.js → models-cli-0TPj_c8R.js} +4 -4
  89. package/dist/{models-cli-CsA9GN5G.js → models-cli-BvUKtS_w.js} +3 -3
  90. package/dist/{npm-resolution-BKPKKKLt.js → npm-resolution-Anabxb6_.js} +1 -1
  91. package/dist/{npm-resolution-BpQ2o-Eh.js → npm-resolution-Ox7X74-Z.js} +1 -1
  92. package/dist/{onboard-C9KRYbrH.js → onboard-B3m0Seri.js} +2 -2
  93. package/dist/{onboard-BiT3YReS.js → onboard-DsqTjPex.js} +2 -2
  94. package/dist/{onboard-channels-C6b-o1TK.js → onboard-channels-14qYfbpr.js} +1 -1
  95. package/dist/{onboard-channels-_XLjSBKm.js → onboard-channels-DFXKCp3G.js} +1 -1
  96. package/dist/{onboarding-BfAhtIYl.js → onboarding-BJYyNWSX.js} +3 -3
  97. package/dist/{onboarding-By12Oyni.js → onboarding-nIZFJ6yX.js} +3 -3
  98. package/dist/{onboarding.finalize-yL217Gdr.js → onboarding.finalize-B1qxBzUX.js} +6 -6
  99. package/dist/{onboarding.finalize-CAgcobAs.js → onboarding.finalize-Bi1nDMyy.js} +7 -7
  100. package/dist/{outbound-Dq9yoBDJ.js → outbound-D3dHUVkO.js} +6 -6
  101. package/dist/{outbound-attachment-3I6GzwDe.js → outbound-attachment-IfeZJAKk.js} +2 -2
  102. package/dist/{path-alias-guards-Cu1nXNMM.js → path-alias-guards-BZmt6hFb.js} +1 -1
  103. package/dist/{paths-D_qUel1T.js → paths-D3p7ZvM6.js} +3 -3
  104. package/dist/{paths-BYNVLNi_.js → paths-DQpv9a3Q.js} +5 -5
  105. package/dist/{pi-embedded-BfPWx2YM.js → pi-embedded-D-vbVu50.js} +67 -37
  106. package/dist/{pi-embedded-helpers-DBkYJKhY.js → pi-embedded-helpers-BcRw0T_g.js} +24 -24
  107. package/dist/{pi-embedded-tWfE4dVB.js → pi-embedded-wUyn4Zjf.js} +235 -205
  108. package/dist/{pi-model-discovery-BMRRgVlz.js → pi-model-discovery-DMEzBdm5.js} +7 -7
  109. package/dist/{plugin-registry-ZgC7HA0z.js → plugin-registry-DHavGgu-.js} +1 -1
  110. package/dist/{plugin-registry-7DC8-ZZJ.js → plugin-registry-ReGTT2Qn.js} +1 -1
  111. package/dist/plugin-sdk/{accounts-CBVAw5_G.js → accounts-B9nfRzyn.js} +1 -1
  112. package/dist/plugin-sdk/{accounts-BLYMokxV.js → accounts-Kt6ygPsC.js} +2 -2
  113. package/dist/plugin-sdk/{accounts-C5tHm1UI.js → accounts-mjFAny5F.js} +1 -1
  114. package/dist/plugin-sdk/{agent-scope-jl80I5G9.js → agent-scope-CU41EMlR.js} +2 -2
  115. package/dist/plugin-sdk/{agent-via-gateway-C9v2r0O2.js → agent-via-gateway-BaZViUVq.js} +55 -55
  116. package/dist/plugin-sdk/agents/tool-stubs.d.ts +2 -1
  117. package/dist/plugin-sdk/{anton-7I_gkw4v.js → anton-y9DWQk_X.js} +4 -4
  118. package/dist/plugin-sdk/{api-key-rotation-BUIqfXnG.js → api-key-rotation-DPA6ftN7.js} +2 -2
  119. package/dist/plugin-sdk/{audio-preflight-URcQAxhH.js → audio-preflight-DL4zZ6SH.js} +30 -30
  120. package/dist/plugin-sdk/{auth-store-DaPWgQTx.js → auth-store-DycBvVqL.js} +1 -1
  121. package/dist/plugin-sdk/{bindings-xXgmJGxj.js → bindings-BDKKHGv-.js} +2 -2
  122. package/dist/{channel-activity-D_TMOGQ0.js → plugin-sdk/channel-activity-TcS_VfJk.js} +3 -3
  123. package/dist/plugin-sdk/{channel-web-B7qyJbrs.js → channel-web-CLQ55z3e.js} +24 -24
  124. package/dist/plugin-sdk/{chrome-CPVAOm0b.js → chrome-CaJve-Gp.js} +6 -6
  125. package/dist/plugin-sdk/{chunk-PW4MBmaN.js → chunk-DZr5xuqv.js} +1 -1
  126. package/dist/plugin-sdk/{commands-registry-DQCQbF8W.js → commands-registry-DWTMC5Bl.js} +5 -5
  127. package/dist/plugin-sdk/{config-04otsq-i.js → config-DXRuYZaI.js} +10 -10
  128. package/dist/plugin-sdk/{deliver-DfopPK17.js → deliver-DbtR2D87.js} +10 -10
  129. package/dist/plugin-sdk/{deps-Gj9jRY77.js → deps-DNbYvt5g.js} +6 -6
  130. package/dist/plugin-sdk/{diagnostic-ByA6zvzu.js → diagnostic-B8VzcqLf.js} +1 -1
  131. package/dist/plugin-sdk/{dock-DKQYtT6-.js → dock-CMURqoee.js} +6 -6
  132. package/dist/plugin-sdk/{emergency-stop-B7_VgSkO.js → emergency-stop-DQXrdDYX.js} +55 -55
  133. package/dist/plugin-sdk/{env-5XecRTLs.js → env-qurSiOO2.js} +1 -1
  134. package/dist/{errors-C_0nm4TJ.js → plugin-sdk/errors-UqLewZJL.js} +1 -1
  135. package/dist/plugin-sdk/{fetch-guard-DwdUEdmT.js → fetch-guard-C174s8ZV.js} +1 -1
  136. package/dist/plugin-sdk/{fs-safe-qsx2_8-o.js → fs-safe-CCXTOK7j.js} +2 -2
  137. package/dist/plugin-sdk/{image-B-gM6mxU.js → image-D-9PH0zg.js} +6 -6
  138. package/dist/plugin-sdk/{image-ops-CXSUo-AM.js → image-ops-BRYGGDwL.js} +1 -1
  139. package/dist/plugin-sdk/index.js +60 -60
  140. package/dist/plugin-sdk/{ir-kdDGpPMq.js → ir-Bv0Zbp2E.js} +5 -5
  141. package/dist/plugin-sdk/{local-roots-DjB6DYeI.js → local-roots-bHCsSVt_.js} +4 -4
  142. package/dist/plugin-sdk/{login-Bpe2s20d.js → login-B8HpBurd.js} +6 -6
  143. package/dist/plugin-sdk/{login-qr-C9ndp3tg.js → login-qr-DQnS-xlm.js} +8 -8
  144. package/dist/plugin-sdk/{manager-CBBlTnh3.js → manager-CKed0ZZE.js} +10 -10
  145. package/dist/plugin-sdk/{markdown-tables-Drtwd4J5.js → markdown-tables-DfUQHRZY.js} +1 -1
  146. package/dist/plugin-sdk/{message-channel-CQ0qkGHj.js → message-channel-DiMXmQeQ.js} +1 -1
  147. package/dist/plugin-sdk/{outbound-D6g6crrp.js → outbound-DNK06gip.js} +6 -6
  148. package/dist/plugin-sdk/{outbound-attachment-BisU5Vji.js → outbound-attachment-Bs7fNaqv.js} +2 -2
  149. package/dist/plugin-sdk/{path-alias-guards-C_uBEYb4.js → path-alias-guards-yyy61qHh.js} +1 -1
  150. package/dist/plugin-sdk/{pi-embedded-helpers-D48bhP-9.js → pi-embedded-helpers-BoeRlyoL.js} +16 -16
  151. package/dist/plugin-sdk/{pi-model-discovery-DCBTaRzI.js → pi-model-discovery-BLPN0Tzs.js} +1 -1
  152. package/dist/plugin-sdk/{plugins-NTjIvHYk.js → plugins-DRPlVBr_.js} +5 -5
  153. package/dist/plugin-sdk/{pw-ai-YGZXROMl.js → pw-ai-V3n0xLn-.js} +10 -10
  154. package/dist/plugin-sdk/{qmd-manager-juzrnopq.js → qmd-manager-BckPBwZX.js} +5 -5
  155. package/dist/plugin-sdk/{query-expansion-xBXvzdkL.js → query-expansion-CPqK-tTR.js} +2 -2
  156. package/dist/plugin-sdk/{redact-B6VQH3UQ.js → redact-Ub8sMBBC.js} +1 -1
  157. package/dist/plugin-sdk/{replies-DXdzWcMN.js → replies-CzsaFa8u.js} +3 -3
  158. package/dist/plugin-sdk/{reply-nvcQV3Q_.js → reply-DWcAkFIT.js} +151 -121
  159. package/dist/plugin-sdk/{reply-prefix--mxmTL7A.js → reply-prefix-BqV0o7_7.js} +1 -1
  160. package/dist/plugin-sdk/{resolve-outbound-target-CnUtsDch.js → resolve-outbound-target-DAdNGEqG.js} +2 -2
  161. package/dist/plugin-sdk/{resolve-route-BZABUE4J.js → resolve-route-C5mAwY-o.js} +3 -3
  162. package/dist/{retry-BeB9WenR.js → plugin-sdk/retry-2OVzZJMZ.js} +1 -1
  163. package/dist/plugin-sdk/{runner-C2xaoYAR.js → runner-C_iZbSwz.js} +10 -10
  164. package/dist/plugin-sdk/{send-CKQ89Lq9.js → send-BUYJmPie.js} +6 -6
  165. package/dist/plugin-sdk/{send-CFkuTXvq.js → send-BsxSmaWa.js} +7 -7
  166. package/dist/plugin-sdk/{send-BgTqMJLI.js → send-CBYbDScb.js} +10 -10
  167. package/dist/plugin-sdk/{send-dmYAtUT5.js → send-D-cZm1Y5.js} +7 -7
  168. package/dist/plugin-sdk/{send-CRhcec-_.js → send-Dt8bXHE8.js} +13 -13
  169. package/dist/plugin-sdk/{session-OpE6SSAs.js → session-C9uqVmuk.js} +3 -3
  170. package/dist/plugin-sdk/{sessions-CG-k8Acv.js → sessions-B4ApxPY1.js} +6 -6
  171. package/dist/plugin-sdk/{skill-commands-BHBpmuX9.js → skill-commands-B8suoqwn.js} +5 -5
  172. package/dist/plugin-sdk/{skills-33Wy6_4b.js → skills-Dl2nq6QI.js} +8 -8
  173. package/dist/plugin-sdk/{store-CCCXwngh.js → store-BI3rLJdW.js} +2 -2
  174. package/dist/plugin-sdk/{subsystem-DWPzKeZ0.js → subsystem-lJo9gqAK.js} +1 -1
  175. package/dist/plugin-sdk/{tables-CF9W23Rd.js → tables-C4X_nAUQ.js} +1 -1
  176. package/dist/plugin-sdk/{target-errors-DaH0qYtL.js → target-errors-CXh6e9ZE.js} +2 -2
  177. package/dist/plugin-sdk/{tokens-Y97UKh4C.js → tokens-CU9S3S7t.js} +1 -1
  178. package/dist/{tool-images-CcGZpzmq.js → plugin-sdk/tool-images-Cf9aWlVu.js} +2 -2
  179. package/dist/plugin-sdk/{tool-loop-detection-Cv8wyfAi.js → tool-loop-detection-DuwkSqZL.js} +2 -2
  180. package/dist/plugin-sdk/{utils-Dyj2wV4e.js → utils-dP-FpIgu.js} +2 -2
  181. package/dist/plugin-sdk/web-CNw6-P_B.js +71 -0
  182. package/dist/plugin-sdk/{whatsapp-actions-Cp6vXAA8.js → whatsapp-actions-CEAXpexT.js} +23 -23
  183. package/dist/{plugins-CRB60mCJ.js → plugins-DYr-HHj0.js} +10 -10
  184. package/dist/{plugins-cli-DACLE21S.js → plugins-cli-C13WMPnF.js} +3 -3
  185. package/dist/{plugins-cli-kePQvJ9L.js → plugins-cli-CO4FVaiO.js} +3 -3
  186. package/dist/{program-VV9u5uPU.js → program-B_vfCOU2.js} +8 -8
  187. package/dist/{program-context-j94K3IXR.js → program-context-BmSQ_Sf4.js} +18 -18
  188. package/dist/{prompt-select-styled-BSqCn36X.js → prompt-select-styled-B5ZwrfX0.js} +4 -4
  189. package/dist/{prompt-select-styled-BH51ROGD.js → prompt-select-styled-BC7OSZ1q.js} +4 -4
  190. package/dist/{provider-auth-helpers-BAB3PaaB.js → provider-auth-helpers-CDu8gosd.js} +1 -1
  191. package/dist/{provider-auth-helpers-DMSF8Mhq.js → provider-auth-helpers-D0A6E5jr.js} +1 -1
  192. package/dist/{push-apns-Cou7KeCj.js → push-apns-BofP21zS.js} +1 -1
  193. package/dist/{push-apns-CGUwMKT-.js → push-apns-Dc8RVDXC.js} +1 -1
  194. package/dist/{pw-ai-5GRjEp4v.js → pw-ai-D3GtQQoU.js} +13 -13
  195. package/dist/{qmd-manager-B_GgyQQ0.js → qmd-manager-BRvg3Rx2.js} +8 -8
  196. package/dist/{query-expansion-DEq020GG.js → query-expansion-DHuNyU-_.js} +5 -5
  197. package/dist/{redact-Bvpf-ATQ.js → redact-1Y0KPNtr.js} +1 -1
  198. package/dist/{register.agent-YCGBKv-d.js → register.agent-CMlS5uBQ.js} +9 -9
  199. package/dist/{register.agent-ColbJEk3.js → register.agent-CV7M3tu9.js} +8 -8
  200. package/dist/{register.configure-C5g7670Q.js → register.configure-BnNziB2G.js} +8 -8
  201. package/dist/{register.configure-CfUo6nvs.js → register.configure-CMB0aDJp.js} +8 -8
  202. package/dist/{register.maintenance-53FGiO0K.js → register.maintenance-BdWGNtkz.js} +8 -8
  203. package/dist/{register.maintenance-CBNoQia-.js → register.maintenance-X6asZwHw.js} +9 -9
  204. package/dist/{register.message-0nKlUSrH.js → register.message-BuggdGjG.js} +3 -3
  205. package/dist/{register.message-CaFp4DAP.js → register.message-DnOPNIGk.js} +3 -3
  206. package/dist/{register.onboard-B3NgvEwe.js → register.onboard-BDhpm8TD.js} +2 -2
  207. package/dist/{register.onboard-B9IJ3wUe.js → register.onboard-CHHu9Skd.js} +2 -2
  208. package/dist/{register.orchestrator-anton-Cxnh52UP.js → register.orchestrator-anton-B-tuZR0z.js} +2 -2
  209. package/dist/{register.orchestrator-anton-HIi6nBvo.js → register.orchestrator-anton-SlFmmH1n.js} +2 -2
  210. package/dist/{register.setup-y7C2w79N.js → register.setup-A8U_6S1I.js} +2 -2
  211. package/dist/{register.setup-DyxAeyO2.js → register.setup-D7mmwdPD.js} +2 -2
  212. package/dist/{register.status-health-sessions-5wREP3Tq.js → register.status-health-sessions-DVocz8ib.js} +4 -4
  213. package/dist/{register.status-health-sessions-DbzCxLhd.js → register.status-health-sessions-haba-O-6.js} +4 -4
  214. package/dist/{register.subclis-BEDdoF6M.js → register.subclis-B-zDlWeV.js} +9 -9
  215. package/dist/{replies-uBXwI7WM.js → replies-BxRl_2Nq.js} +3 -3
  216. package/dist/{reply-vDM22Gez.js → reply-7AXQ38dZ.js} +67 -37
  217. package/dist/{reply-prefix-BUgeSN2R.js → reply-prefix-DCljZiIB.js} +1 -1
  218. package/dist/{resolve-route-DuttYY7A.js → resolve-route-ClcifpKn.js} +4 -4
  219. package/dist/{plugin-sdk/retry-Bh7jveNm.js → retry-CG6cMRDQ.js} +1 -1
  220. package/dist/{run-main-BKjpcqq8.js → run-main-Cy6gYOh3.js} +15 -15
  221. package/dist/{runner-Cy6GWdoL.js → runner-BZBK277H.js} +11 -11
  222. package/dist/{send-Ce_lAnef.js → send-B7Fzlmlo.js} +7 -7
  223. package/dist/{send-BskvGZej.js → send-BGyVbnFP.js} +7 -7
  224. package/dist/{send-DvjrOg1z.js → send-DcN-QeVO.js} +6 -6
  225. package/dist/{send-rp8dzIy4.js → send-n1vT5TEb.js} +24 -24
  226. package/dist/{send-C4z2HAbE.js → send-qNmymshG.js} +10 -10
  227. package/dist/{server-node-events-B7IQ1nzZ.js → server-node-events-ChBhFPg3.js} +3 -3
  228. package/dist/{server-node-events-CraqSZJR.js → server-node-events-Dbr2WR-0.js} +3 -3
  229. package/dist/{session-BbwP0jac.js → session-BMqBZ_fq.js} +7 -7
  230. package/dist/{sessions-DA2oWrdb.js → sessions-BA3_G98W.js} +41 -41
  231. package/dist/{skill-commands-AySApC-2.js → skill-commands-DnTjl_m1.js} +9 -9
  232. package/dist/{skills-B3wf7ZnA.js → skills-DRGt1G_o.js} +22 -22
  233. package/dist/{status-ZUnD4Pgf.js → status-BompBfRg.js} +2 -2
  234. package/dist/{status-D9fTji6b.js → status-Cy7Zcfzv.js} +2 -2
  235. package/dist/{store-CvMgrKWx.js → store-D-ZicQeo.js} +2 -2
  236. package/dist/{subagent-registry-l7V3IoLe.js → subagent-registry-DDIoRVFV.js} +67 -37
  237. package/dist/{subsystem-tzu-rIAJ.js → subsystem-D7ZepYT1.js} +1 -1
  238. package/dist/{tables-5k-zOZ-s.js → tables-Co_R_WKs.js} +1 -1
  239. package/dist/{target-errors-BPfQrPim.js → target-errors-B1mcM4WR.js} +2 -2
  240. package/dist/{tokens-BRLyURxW.js → tokens-DGajj8M9.js} +1 -1
  241. package/dist/{plugin-sdk/tool-images-BMRkn_yk.js → tool-images-Duuqr4bN.js} +2 -2
  242. package/dist/{tool-loop-detection-BNGetx3Z.js → tool-loop-detection-CjWRg_4q.js} +3 -3
  243. package/dist/{update-cli-CMn89gww.js → update-cli-1s_O26hF.js} +8 -8
  244. package/dist/{update-cli-D02DhEE9.js → update-cli-DywvLvxF.js} +9 -9
  245. package/dist/{update-runner-C44em-38.js → update-runner-2yf_p333.js} +1 -1
  246. package/dist/{update-runner-BSsZSlwa.js → update-runner-DfTjwukX.js} +1 -1
  247. package/dist/{utils-CTFLl_ji.js → utils-D9wGoiU9.js} +18 -18
  248. package/dist/{web-CiVRDtta.js → web-59hB8x7z.js} +3 -3
  249. package/dist/{web-DLIXLq_L.js → web-C4vEw_Lp.js} +3 -3
  250. package/dist/{web-Dkl33QN0.js → web-DxQjSHSJ.js} +66 -66
  251. package/dist/{web-bCfwH31U.js → web-WBETd448.js} +3 -3
  252. package/dist/{whatsapp-actions-C_BWc4tJ.js → whatsapp-actions-DmI59VQd.js} +25 -25
  253. package/dist/{workspace-DBFSzT6O.js → workspace-tAtkoD_r.js} +18 -18
  254. package/package.json +1 -1
  255. package/dist/emergency-stop-CjVqAFw-.js +0 -113
  256. package/dist/plugin-sdk/web-BzOC1x6m.js +0 -71
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cn44w-EB.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-CXzXXV2o.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-vDM22Gez.js";
4
+ import "./reply-7AXQ38dZ.js";
5
5
  import { v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-RA0zXRpu.js";
6
6
  import "./subsystem-CGZX2PBV.js";
7
7
  import { i as restoreTerminalState } from "./runtime-44j_X4Y6.js";
@@ -103,7 +103,7 @@ import "./resolve-route-D_AbcmD6.js";
103
103
  import "./replies-Bt95GAew.js";
104
104
  import "./skill-commands-23SP2OFQ.js";
105
105
  import "./workspace-dirs-SsExQ3Bz.js";
106
- import "./deps-SgroTRjf.js";
106
+ import "./deps-BZOU70bs.js";
107
107
  import "./plugin-auto-enable-DyNeRjEL.js";
108
108
  import "./channel-selection-ZxRkxpuF.js";
109
109
  import "./outbound-attachment-Bot3bRnK.js";
@@ -117,17 +117,17 @@ import "./server-lifecycle-DMOhxIYC.js";
117
117
  import "./stagger-rQoQSWkz.js";
118
118
  import "./system-run-command-P86Xjnl8.js";
119
119
  import "./runtime-guard-X6f4YmTM.js";
120
- import "./program-context-j94K3IXR.js";
120
+ import "./program-context-BmSQ_Sf4.js";
121
121
  import "./note-69EfBEU-.js";
122
- import { r as installCompletion } from "./completion-cli-CGXtQf6t.js";
122
+ import { r as installCompletion } from "./completion-cli-BB2Y8nfx.js";
123
123
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-BZY9-jNW.js";
124
124
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BGXzfrm4.js";
125
125
  import { r as isSystemdUserServiceAvailable } from "./systemd-CaCR5CyM.js";
126
126
  import { t as resolveGatewayService } from "./service-C8NMS3m_.js";
127
- import { r as healthCommand } from "./health-DXbufVL-.js";
127
+ import { r as healthCommand } from "./health-C2A5ilGU.js";
128
128
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C7ZpN9hN.js";
129
129
  import { t as formatHealthCheckFailure } from "./health-format-Ba_hOaT2.js";
130
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DsaJMlSu.js";
130
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BfAWZyFl.js";
131
131
  import { t as runTui } from "./tui-CgvwVqsn.js";
132
132
  import os from "node:os";
133
133
  import path from "node:path";
@@ -26,7 +26,7 @@ import "./logging-Bgrm4o7g.js";
26
26
  import "./auth-store-D9BmR4S6.js";
27
27
  import "./send-CuXAB8LA.js";
28
28
  import "./send-lf9ld4To.js";
29
- import "./subagent-registry-l7V3IoLe.js";
29
+ import "./subagent-registry-DDIoRVFV.js";
30
30
  import "./paths-CC17i2eK.js";
31
31
  import "./chat-envelope-Dedaetiq.js";
32
32
  import "./client-udFMSDes.js";
@@ -109,24 +109,24 @@ import "./cli-utils-BfsDuRZS.js";
109
109
  import "./help-format-CldHB7lS.js";
110
110
  import "./progress-B76RkFx7.js";
111
111
  import "./replies-CmTF3tWU.js";
112
- import "./deps-CfQJK6WP.js";
112
+ import "./deps-D3ku734-.js";
113
113
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-_Uk9P3FF.js";
114
114
  import "./prompt-style-XmK49QYK.js";
115
115
  import "./pairing-labels-CLdV_RlM.js";
116
116
  import "./note-C2HHth6G.js";
117
- import { r as installCompletion } from "./completion-cli-BmHAqqY4.js";
118
- import "./register.subclis-BEDdoF6M.js";
119
- import "./command-registry-Bs5y1F2v.js";
117
+ import { r as installCompletion } from "./completion-cli-BGz3hkuH.js";
118
+ import "./register.subclis-B-zDlWeV.js";
119
+ import "./command-registry-BtbFeRGU.js";
120
120
  import "./program-context-BrqeiWcA.js";
121
121
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-DUHqeg5Y.js";
122
122
  import "./runtime-guard-DTSD0F6o.js";
123
123
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CRT3STlu.js";
124
124
  import { r as isSystemdUserServiceAvailable } from "./systemd-CYLBa7fG.js";
125
125
  import { t as resolveGatewayService } from "./service-BzgRt9im.js";
126
- import { r as healthCommand } from "./health-F0lUmHT3.js";
126
+ import { r as healthCommand } from "./health-Dn7CVhrN.js";
127
127
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5haX6bT.js";
128
128
  import { t as formatHealthCheckFailure } from "./health-format-wax5NzZB.js";
129
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Cgl5S3K0.js";
129
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DOFXmBLZ.js";
130
130
  import { t as runTui } from "./tui-vyXW-Y-w.js";
131
131
  import os from "node:os";
132
132
  import path from "node:path";
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
3
- import { I as getChildLogger, o as escapeRegExp, x as toWhatsappJid } from "./utils-CTFLl_ji.js";
4
- import { R as loadConfig } from "./model-selection-D5g8tXIY.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
3
+ import { I as getChildLogger, o as escapeRegExp, x as toWhatsappJid } from "./utils-D9wGoiU9.js";
4
+ import { R as loadConfig } from "./model-selection-C5BhfuPa.js";
5
5
  import { n as generateSecureUuid } from "./secure-random-B1N_MXT_.js";
6
- import { n as resolveMarkdownTableMode } from "./markdown-tables-CzsockiZ.js";
7
- import { a as loadWebMedia } from "./ir-B7IBoKLy.js";
6
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-R8VTpfE9.js";
7
+ import { a as loadWebMedia } from "./ir-BT5aAdU9.js";
8
8
  import { n as normalizePollInput } from "./polls-DhMjjIGW.js";
9
- import { t as convertMarkdownTables } from "./tables-5k-zOZ-s.js";
9
+ import { t as convertMarkdownTables } from "./tables-Co_R_WKs.js";
10
10
  import { i as redactIdentifier, n as requireActiveWebListener } from "./active-listener-jilCMH1M.js";
11
11
 
12
12
  //#region src/markdown/whatsapp.ts
@@ -1,5 +1,5 @@
1
- import { r as saveMediaBuffer } from "./store-CvMgrKWx.js";
2
- import { a as loadWebMedia } from "./ir-B7IBoKLy.js";
1
+ import { r as saveMediaBuffer } from "./store-D-ZicQeo.js";
2
+ import { a as loadWebMedia } from "./ir-BT5aAdU9.js";
3
3
 
4
4
  //#region src/media/outbound-attachment.ts
5
5
  async function resolveOutboundAttachmentFromUrl(mediaUrl, maxBytes, options) {
@@ -1,4 +1,4 @@
1
- import { A as isNotFoundPathError, D as BOUNDARY_PATH_ALIAS_POLICIES, O as resolveBoundaryPath } from "./workspace-DBFSzT6O.js";
1
+ import { A as isNotFoundPathError, D as BOUNDARY_PATH_ALIAS_POLICIES, O as resolveBoundaryPath } from "./workspace-tAtkoD_r.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
 
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { d as resolveStateDir, f as expandHomePrefix, m as resolveRequiredHomeDir } from "./paths-BYNVLNi_.js";
2
+ import { d as resolveStateDir, f as expandHomePrefix, m as resolveRequiredHomeDir } from "./paths-DQpv9a3Q.js";
3
3
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-CuLPSMu_.js";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
- import syncFs from "node:fs";
6
+ import fs from "node:fs";
7
7
 
8
8
  //#region src/config/sessions/paths.ts
9
9
  var paths_exports = /* @__PURE__ */ __exportAll({
@@ -95,7 +95,7 @@ function resolveStructuralSessionFallbackPath(candidateAbsPath, expectedAgentId)
95
95
  }
96
96
  function safeRealpathSync(filePath) {
97
97
  try {
98
- return syncFs.realpathSync(filePath);
98
+ return fs.realpathSync(filePath);
99
99
  } catch {
100
100
  return;
101
101
  }
@@ -1,6 +1,6 @@
1
1
  import os from "node:os";
2
2
  import path from "node:path";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
 
5
5
  //#region src/infra/home-dir.ts
6
6
  function normalize(value) {
@@ -85,10 +85,10 @@ function resolveStateDir(env = process.env, homedir = envHomedir(env)) {
85
85
  if (override) return resolveUserPath(override, env, effectiveHomedir);
86
86
  const newDir = newStateDir(effectiveHomedir);
87
87
  const legacyDirs = legacyStateDirs(effectiveHomedir);
88
- if (syncFs.existsSync(newDir)) return newDir;
88
+ if (fs.existsSync(newDir)) return newDir;
89
89
  const existingLegacy = legacyDirs.find((dir) => {
90
90
  try {
91
- return syncFs.existsSync(dir);
91
+ return fs.existsSync(dir);
92
92
  } catch {
93
93
  return false;
94
94
  }
@@ -127,7 +127,7 @@ function resolveCanonicalConfigPath(env = process.env, stateDir = resolveStateDi
127
127
  function resolveConfigPathCandidate(env = process.env, homedir = envHomedir(env)) {
128
128
  const existing = resolveDefaultConfigCandidates(env, homedir).find((candidate) => {
129
129
  try {
130
- return syncFs.existsSync(candidate);
130
+ return fs.existsSync(candidate);
131
131
  } catch {
132
132
  return false;
133
133
  }
@@ -144,7 +144,7 @@ function resolveConfigPath(env = process.env, stateDir = resolveStateDir(env, en
144
144
  const stateOverride = env.IDLEHANDS_STATE_DIR?.trim();
145
145
  const existing = [path.join(stateDir, CONFIG_FILENAME), ...LEGACY_CONFIG_FILENAMES.map((name) => path.join(stateDir, name))].find((candidate) => {
146
146
  try {
147
- return syncFs.existsSync(candidate);
147
+ return fs.existsSync(candidate);
148
148
  } catch {
149
149
  return false;
150
150
  }
@@ -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-B7WhS1HA.js";
75
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-CchkM1ea.js";
75
+ import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-1S6DoURA.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";
@@ -23059,7 +23059,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23059
23059
  };
23060
23060
  const arg = body.slice(6).trim();
23061
23061
  if (arg === "status" || arg === "") {
23062
- const { antonStatus } = await import("./anton-DCJl8crN.js");
23062
+ const { antonStatus } = await import("./anton-DDY9C7_9.js");
23063
23063
  const lines = [];
23064
23064
  await antonStatus({
23065
23065
  log: (msg) => lines.push(msg),
@@ -23075,7 +23075,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23075
23075
  return { shouldContinue: false };
23076
23076
  }
23077
23077
  if (arg === "stop") {
23078
- const { antonStop } = await import("./anton-DCJl8crN.js");
23078
+ const { antonStop } = await import("./anton-DDY9C7_9.js");
23079
23079
  const lines = [];
23080
23080
  await antonStop({
23081
23081
  log: (msg) => lines.push(msg),
@@ -23113,8 +23113,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23113
23113
  await sendProgress(replyCtx, text);
23114
23114
  return { shouldContinue: false };
23115
23115
  }
23116
- const { runAnton, formatProgressMessage } = await import("./anton-DCJl8crN.js");
23117
- const { createDefaultDeps } = await import("./deps-CchkM1ea.js").then((n) => n.n);
23116
+ const { runAnton, formatProgressMessage } = await import("./anton-DDY9C7_9.js");
23117
+ const { createDefaultDeps } = await import("./deps-1S6DoURA.js").then((n) => n.n);
23118
23118
  const { createNonExitingRuntime } = await import("./runtime-8mi3mpYB.js").then((n) => n.r);
23119
23119
  const runtime = createNonExitingRuntime();
23120
23120
  const deps = createDefaultDeps();
@@ -57271,7 +57271,7 @@ function createDiscordMessageHandler(params) {
57271
57271
  try {
57272
57272
  const messageText = resolveDiscordMessageText(data.message)?.trim();
57273
57273
  if (messageText) {
57274
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B2KUQyt8.js");
57274
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-3LJcS7w-.js");
57275
57275
  if (isAbortRequestText(messageText)) {
57276
57276
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
57277
57277
  const channelId = resolveDiscordMessageChannelId({
@@ -64769,7 +64769,7 @@ async function monitorIMessageProvider(opts = {}) {
64769
64769
  }
64770
64770
  const msgText = (message.text ?? "").trim();
64771
64771
  if (msgText) {
64772
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B2KUQyt8.js");
64772
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-3LJcS7w-.js");
64773
64773
  if (isAbortRequestText(msgText)) {
64774
64774
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
64775
64775
  const route = resolveAgentRoute({
@@ -67380,7 +67380,7 @@ function createSignalEventHandler(deps) {
67380
67380
  const senderName = envelope.sourceName ?? senderDisplay;
67381
67381
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
67382
67382
  if (bodyText) {
67383
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B2KUQyt8.js");
67383
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-3LJcS7w-.js");
67384
67384
  if (isAbortRequestText(bodyText)) {
67385
67385
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
67386
67386
  const route = resolveAgentRoute({
@@ -70762,7 +70762,7 @@ function createSlackMessageHandler(params) {
70762
70762
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
70763
70763
  const rawText = (message.text ?? "").trim();
70764
70764
  if (rawText) {
70765
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B2KUQyt8.js");
70765
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-3LJcS7w-.js");
70766
70766
  if (isAbortRequestText(rawText)) {
70767
70767
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
70768
70768
  const route = resolveAgentRoute({
@@ -72956,7 +72956,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
72956
72956
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
72957
72957
  const text = typeof msg.text === "string" ? msg.text : void 0;
72958
72958
  if (text) {
72959
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-B2KUQyt8.js");
72959
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-3LJcS7w-.js");
72960
72960
  if (isAbortRequestText(text)) {
72961
72961
  const senderId = msg.from?.id ? String(msg.from.id) : "";
72962
72962
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -76441,7 +76441,7 @@ function loadWebLoginQr() {
76441
76441
  return webLoginQrPromise;
76442
76442
  }
76443
76443
  function loadWebChannel() {
76444
- webChannelPromise ??= import("./web-DLIXLq_L.js");
76444
+ webChannelPromise ??= import("./web-C4vEw_Lp.js");
76445
76445
  return webChannelPromise;
76446
76446
  }
76447
76447
  function loadWhatsAppActions() {
@@ -83425,6 +83425,20 @@ function resolveSilentReplyFallbackText(params) {
83425
83425
  if (!fallback) return params.text;
83426
83426
  return fallback;
83427
83427
  }
83428
+ function hasAssistantToolCallBlock(message) {
83429
+ const content = message.content;
83430
+ if (!Array.isArray(content)) return false;
83431
+ return content.some((block) => {
83432
+ if (!block || typeof block !== "object") return false;
83433
+ const type = block.type;
83434
+ return type === "toolCall" || type === "tool_call";
83435
+ });
83436
+ }
83437
+ function isAssistantToolPlanningMessage(message) {
83438
+ const stopReason = message.stopReason;
83439
+ if (stopReason === "toolUse" || stopReason === "tool_use") return true;
83440
+ return hasAssistantToolCallBlock(message);
83441
+ }
83428
83442
  function handleMessageStart(ctx, evt) {
83429
83443
  if (evt.message?.role !== "assistant") return;
83430
83444
  ctx.resetAssistantMessageState(ctx.state.assistantTexts.length);
@@ -83578,6 +83592,7 @@ function handleMessageEnd(ctx, evt) {
83578
83592
  }),
83579
83593
  messagingToolSentTexts: ctx.state.messagingToolSentTexts
83580
83594
  });
83595
+ const suppressToolPlanningOutput = isAssistantToolPlanningMessage(assistantMessage);
83581
83596
  const rawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? extractAssistantThinking(assistantMessage) || extractThinkingFromTaggedText(rawText) : "";
83582
83597
  const formattedReasoning = rawThinking ? formatReasoningMessage(rawThinking) : "";
83583
83598
  const trimmedText = text.trim();
@@ -83595,7 +83610,7 @@ function handleMessageEnd(ctx, evt) {
83595
83610
  hasMedia = Boolean(mediaUrls && mediaUrls.length > 0);
83596
83611
  }
83597
83612
  }
83598
- if (!ctx.state.emittedAssistantUpdate && (cleanedText || hasMedia)) {
83613
+ if (!ctx.state.emittedAssistantUpdate && !suppressToolPlanningOutput && (cleanedText || hasMedia)) {
83599
83614
  emitAgentEvent({
83600
83615
  runId: ctx.params.runId,
83601
83616
  stream: "assistant",
@@ -83618,12 +83633,12 @@ function handleMessageEnd(ctx, evt) {
83618
83633
  const addedDuringMessage = ctx.state.assistantTexts.length > ctx.state.assistantTextBaseline;
83619
83634
  const chunkerHasBuffered = ctx.blockChunker?.hasBuffered() ?? false;
83620
83635
  ctx.finalizeAssistantTexts({
83621
- text,
83636
+ text: suppressToolPlanningOutput ? "" : text,
83622
83637
  addedDuringMessage,
83623
83638
  chunkerHasBuffered
83624
83639
  });
83625
83640
  const onBlockReply = ctx.params.onBlockReply;
83626
- const shouldEmitReasoning = Boolean(ctx.state.includeReasoning && formattedReasoning && onBlockReply && formattedReasoning !== ctx.state.lastReasoningSent);
83641
+ const shouldEmitReasoning = Boolean(!suppressToolPlanningOutput && ctx.state.includeReasoning && formattedReasoning && onBlockReply && formattedReasoning !== ctx.state.lastReasoningSent);
83627
83642
  const shouldEmitReasoningBeforeAnswer = shouldEmitReasoning && ctx.state.blockReplyBreak === "message_end" && !addedDuringMessage;
83628
83643
  const maybeEmitReasoning = () => {
83629
83644
  if (!shouldEmitReasoning || !formattedReasoning) return;
@@ -83634,7 +83649,7 @@ function handleMessageEnd(ctx, evt) {
83634
83649
  });
83635
83650
  };
83636
83651
  if (shouldEmitReasoningBeforeAnswer) maybeEmitReasoning();
83637
- if ((ctx.state.blockReplyBreak === "message_end" || (ctx.blockChunker ? ctx.blockChunker.hasBuffered() : ctx.state.blockBuffer.length > 0)) && text && onBlockReply) {
83652
+ if ((ctx.state.blockReplyBreak === "message_end" || (ctx.blockChunker ? ctx.blockChunker.hasBuffered() : ctx.state.blockBuffer.length > 0)) && !suppressToolPlanningOutput && text && onBlockReply) {
83638
83653
  if (ctx.blockChunker?.hasBuffered()) {
83639
83654
  ctx.blockChunker.drain({
83640
83655
  force: true,
@@ -83659,8 +83674,8 @@ function handleMessageEnd(ctx, evt) {
83659
83674
  }
83660
83675
  }
83661
83676
  if (!shouldEmitReasoningBeforeAnswer) maybeEmitReasoning();
83662
- if (ctx.state.streamReasoning && rawThinking) ctx.emitReasoningStream(rawThinking);
83663
- if (ctx.state.blockReplyBreak === "text_end" && onBlockReply) {
83677
+ if (!suppressToolPlanningOutput && ctx.state.streamReasoning && rawThinking) ctx.emitReasoningStream(rawThinking);
83678
+ if (!suppressToolPlanningOutput && ctx.state.blockReplyBreak === "text_end" && onBlockReply) {
83664
83679
  const tailResult = ctx.consumeReplyDirectives("", { final: true });
83665
83680
  if (tailResult) {
83666
83681
  const { text: cleanedText, mediaUrls, audioAsVoice, replyToId, replyToTag, replyToCurrent } = tailResult;
@@ -85068,36 +85083,51 @@ function extractParameterSummary(tool) {
85068
85083
  /**
85069
85084
  * Build compact tool guidance for common coding tools.
85070
85085
  * This is optimized for local models with limited context.
85086
+ * @param excludeTools - Tool names to exclude (e.g., tools with full schemas)
85071
85087
  */
85072
- function buildCompactToolGuidance() {
85073
- return `## Tools
85074
-
85075
- Call tools with JSON: {"tool": "name", "params": {...}}
85076
-
85077
- **exec** - Run shell commands
85088
+ function buildCompactToolGuidance(excludeTools) {
85089
+ const excludeSet = new Set((excludeTools ?? []).map((name) => name.toLowerCase()));
85090
+ const includedTools = [
85091
+ {
85092
+ name: "exec",
85093
+ def: `**exec** - Run shell commands
85078
85094
  command (required): Shell command to execute
85079
85095
  workdir: Working directory
85080
85096
  timeout: Timeout in seconds
85081
- background: Run in background (true/false)
85082
-
85083
- **read** - Read file contents
85097
+ background: Run in background (true/false)`
85098
+ },
85099
+ {
85100
+ name: "read",
85101
+ def: `**read** - Read file contents
85084
85102
  path (required): File path to read
85085
85103
  offset: Start line (1-indexed)
85086
- limit: Max lines to read
85087
-
85088
- **write** - Create/overwrite files
85104
+ limit: Max lines to read`
85105
+ },
85106
+ {
85107
+ name: "write",
85108
+ def: `**write** - Create/overwrite files
85089
85109
  path (required): File path to write
85090
- content (required): Content to write
85091
-
85092
- **edit** - Precise text replacement
85110
+ content (required): Content to write`
85111
+ },
85112
+ {
85113
+ name: "edit",
85114
+ def: `**edit** - Precise text replacement
85093
85115
  path (required): File path to edit
85094
85116
  old_string (required): Exact text to find
85095
- new_string (required): Replacement text
85096
-
85097
- **process** - Manage background processes
85117
+ new_string (required): Replacement text`
85118
+ },
85119
+ {
85120
+ name: "process",
85121
+ def: `**process** - Manage background processes
85098
85122
  action (required): list|poll|kill|log
85099
85123
  sessionId: Session ID for poll/kill/log
85100
- timeout: Poll timeout in ms`;
85124
+ timeout: Poll timeout in ms`
85125
+ }
85126
+ ].filter(({ name }) => !excludeSet.has(name)).map(({ def }) => def);
85127
+ if (includedTools.length === 0) return "";
85128
+ return `## Tools
85129
+
85130
+ ${includedTools.join("\n\n")}`;
85101
85131
  }
85102
85132
 
85103
85133
  //#endregion
@@ -85937,7 +85967,7 @@ async function runEmbeddedAttempt(params) {
85937
85967
  });
85938
85968
  const stubModeConfig = params.config?.tools?.stubMode;
85939
85969
  const tools = applyStubMode(toolsSanitized, stubModeConfig);
85940
- const toolStubGuidance = stubModeConfig?.enabled ? stubModeConfig.guidance ?? (stubModeConfig.compactGuidance ? buildCompactToolGuidance() : generateToolStubGuidance(toolsRaw)) : void 0;
85970
+ const toolStubGuidance = stubModeConfig?.enabled ? stubModeConfig.guidance ?? (stubModeConfig.compactGuidance ? buildCompactToolGuidance(stubModeConfig.fullSchemaTools) : generateToolStubGuidance(toolsRaw)) : void 0;
85941
85971
  const allowedToolNames = collectAllowedToolNames({
85942
85972
  tools,
85943
85973
  clientTools: params.clientTools
@@ -1,28 +1,28 @@
1
- import { d as resolveSessionAgentId, r as resolveAgentConfig } from "./agent-scope-DyP_tr7s.js";
2
- import { n as STATE_DIR, s as resolveGatewayPort } from "./paths-BYNVLNi_.js";
3
- import { n as CHANNEL_IDS, t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
4
- import { S as truncateUtf16Safe, h as resolveUserPath } from "./utils-CTFLl_ji.js";
1
+ import { d as resolveSessionAgentId, r as resolveAgentConfig } from "./agent-scope-Bxq1eWbA.js";
2
+ import { n as STATE_DIR, s as resolveGatewayPort } from "./paths-DQpv9a3Q.js";
3
+ import { n as CHANNEL_IDS, t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
4
+ import { S as truncateUtf16Safe, h as resolveUserPath } from "./utils-D9wGoiU9.js";
5
5
  import { n as defaultRuntime } from "./runtime-8mi3mpYB.js";
6
6
  import { l as resolveAgentIdFromSessionKey, s as normalizeAgentId } from "./session-key-CuLPSMu_.js";
7
- import { _ as runExec, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_HEARTBEAT_FILENAME, k as resolvePathViaExistingAncestorSync, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SOUL_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME, w as openBoundaryFile } from "./workspace-DBFSzT6O.js";
8
- import { $ as getBlockedNetworkModeReason, H as writeConfigFile, L as createConfigIO, R as loadConfig } from "./model-selection-D5g8tXIY.js";
7
+ import { _ as runExec, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_HEARTBEAT_FILENAME, k as resolvePathViaExistingAncestorSync, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SOUL_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME, w as openBoundaryFile } from "./workspace-tAtkoD_r.js";
8
+ import { $ as getBlockedNetworkModeReason, H as writeConfigFile, L as createConfigIO, R as loadConfig } from "./model-selection-C5BhfuPa.js";
9
9
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { t as generateSecureToken } from "./secure-random-B1N_MXT_.js";
12
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-D1KtygWz.js";
13
- import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-RZ6-DZcL.js";
12
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-J8P5zOFm.js";
13
+ import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-CrBtckYY.js";
14
14
  import { t as SsrFBlockedError } from "./ssrf-CZeHDwVZ.js";
15
- import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-B3wf7ZnA.js";
16
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Cu1nXNMM.js";
17
- import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C_0nm4TJ.js";
18
- import { r as saveMediaBuffer, t as ensureMediaDir } from "./store-CvMgrKWx.js";
19
- import { H as resolveAgentMainSessionKey, V as canonicalizeMainSessionAlias, q as acquireSessionWriteLock } from "./sessions-DA2oWrdb.js";
20
- import { t as sanitizeContentBlocksImages } from "./tool-images-CcGZpzmq.js";
15
+ import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DRGt1G_o.js";
16
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BZmt6hFb.js";
17
+ import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C4SHjIZK.js";
18
+ import { r as saveMediaBuffer, t as ensureMediaDir } from "./store-D-ZicQeo.js";
19
+ import { H as resolveAgentMainSessionKey, V as canonicalizeMainSessionAlias, q as acquireSessionWriteLock } from "./sessions-BA3_G98W.js";
20
+ import { t as sanitizeContentBlocksImages } from "./tool-images-Duuqr4bN.js";
21
21
  import { o as normalizeThinkLevel } from "./thinking-z4_linel.js";
22
22
  import fs from "node:fs/promises";
23
23
  import os from "node:os";
24
24
  import path, { posix } from "node:path";
25
- import syncFs, { existsSync } from "node:fs";
25
+ import fs$1, { existsSync } from "node:fs";
26
26
  import { spawn } from "node:child_process";
27
27
  import crypto, { createHash, timingSafeEqual } from "node:crypto";
28
28
  import express from "express";
@@ -1182,7 +1182,7 @@ function isModuleNotFoundError(err) {
1182
1182
  }
1183
1183
  async function loadPwAiModule(mode) {
1184
1184
  try {
1185
- return await import("./pw-ai-5GRjEp4v.js");
1185
+ return await import("./pw-ai-D3GtQQoU.js");
1186
1186
  } catch (err) {
1187
1187
  if (mode === "soft") return null;
1188
1188
  if (isModuleNotFoundError(err)) return null;
@@ -2922,11 +2922,11 @@ async function movePathToTrash(targetPath) {
2922
2922
  return targetPath;
2923
2923
  } catch {
2924
2924
  const trashDir = path.join(os.homedir(), ".Trash");
2925
- syncFs.mkdirSync(trashDir, { recursive: true });
2925
+ fs$1.mkdirSync(trashDir, { recursive: true });
2926
2926
  const base = path.basename(targetPath);
2927
2927
  let dest = path.join(trashDir, `${base}-${Date.now()}`);
2928
- if (syncFs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
2929
- syncFs.renameSync(targetPath, dest);
2928
+ if (fs$1.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
2929
+ fs$1.renameSync(targetPath, dest);
2930
2930
  return dest;
2931
2931
  }
2932
2932
  }
@@ -3004,7 +3004,7 @@ function createBrowserProfilesService(ctx) {
3004
3004
  } catch {}
3005
3005
  const userDataDir = resolveIdleHandsUserDataDir(name);
3006
3006
  const profileDir = path.dirname(userDataDir);
3007
- if (syncFs.existsSync(profileDir)) {
3007
+ if (fs$1.existsSync(profileDir)) {
3008
3008
  await movePathToTrash(profileDir);
3009
3009
  deleted = true;
3010
3010
  }
@@ -3717,13 +3717,13 @@ function createProfileContext(opts, profile) {
3717
3717
  const userDataDir = resolveIdleHandsUserDataDir(profile.name);
3718
3718
  const profileState = getProfileState();
3719
3719
  if (await isHttpReachable(300) && !profileState.running) try {
3720
- await (await import("./pw-ai-5GRjEp4v.js")).closePlaywrightBrowserConnection();
3720
+ await (await import("./pw-ai-D3GtQQoU.js")).closePlaywrightBrowserConnection();
3721
3721
  } catch {}
3722
3722
  if (profileState.running) await stopRunningBrowser();
3723
3723
  try {
3724
- await (await import("./pw-ai-5GRjEp4v.js")).closePlaywrightBrowserConnection();
3724
+ await (await import("./pw-ai-D3GtQQoU.js")).closePlaywrightBrowserConnection();
3725
3725
  } catch {}
3726
- if (!syncFs.existsSync(userDataDir)) return {
3726
+ if (!fs$1.existsSync(userDataDir)) return {
3727
3727
  moved: false,
3728
3728
  from: userDataDir
3729
3729
  };
@@ -5350,7 +5350,7 @@ var SandboxFsBridgeImpl = class {
5350
5350
  });
5351
5351
  if (!guarded.ok) {
5352
5352
  if (guarded.reason !== "path" || options.allowMissingTarget === false) throw guarded.error instanceof Error ? guarded.error : /* @__PURE__ */ new Error(`Sandbox boundary checks failed; cannot ${options.action}: ${target.containerPath}`);
5353
- } else syncFs.closeSync(guarded.fd);
5353
+ } else fs$1.closeSync(guarded.fd);
5354
5354
  const canonicalContainerPath = await this.resolveCanonicalContainerPath({
5355
5355
  containerPath: target.containerPath,
5356
5356
  allowFinalSymlinkForUnlink: options.aliasPolicy?.allowFinalSymlinkForUnlink === true