@visorcraft/idlehands 4.4.1 → 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 (263) 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-B7VYaDwI.js → agent-via-gateway-B82avysM.js} +1 -1
  6. package/dist/{agent-via-gateway-6jGL9ZRb.js → agent-via-gateway-BLv_oSL5.js} +1 -1
  7. package/dist/{agent-via-gateway-D6SBbSiq.js → agent-via-gateway-BZBYIS74.js} +7 -7
  8. package/dist/{agent-via-gateway-hbF-h9TM.js → agent-via-gateway-spHKNacF.js} +60 -60
  9. package/dist/{agents-BVYgk2uc.js → agents-DFsifqti.js} +4 -4
  10. package/dist/{agents.config-CcZ8kSaj.js → agents.config-B-HneNqt.js} +1 -1
  11. package/dist/{agents.config-CKj37-g5.js → agents.config-LJG8mKGJ.js} +1 -1
  12. package/dist/{anton-B4KXAf54.js → anton-BHVfJEmp.js} +1 -1
  13. package/dist/{anton-BNzNY6Vh.js → anton-CH-O1fKX.js} +5 -5
  14. package/dist/{anton-DnEx8ryb.js → anton-DDY9C7_9.js} +1 -1
  15. package/dist/{anton-C8M2UhOH.js → anton-DYkdgFjS.js} +1 -1
  16. package/dist/{audio-preflight-DdYPJah_.js → audio-preflight-CwOVlM_o.js} +35 -35
  17. package/dist/{audio-preflight-CdQj55ox.js → audio-preflight-Dl_bdO0l.js} +4 -4
  18. package/dist/{auth-choice-BAioGgge.js → auth-choice-BwuBROMy.js} +1 -1
  19. package/dist/{auth-choice-CWa45O0-.js → auth-choice-tTRqUPHJ.js} +1 -1
  20. package/dist/{auth-store-DXT-l7fO.js → auth-store-Bb4aajHu.js} +12 -12
  21. package/dist/{banner-BxyoIRj1.js → banner-DUYqUnZh.js} +1 -1
  22. package/dist/{bindings-D3b5Fmc9.js → bindings-CLZIJ0Eo.js} +2 -2
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/boot-md/handler.js +60 -60
  25. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  26. package/dist/bundled/command-logger/handler.js +3 -3
  27. package/dist/bundled/session-memory/handler.js +60 -60
  28. package/dist/{channel-activity-D_TMOGQ0.js → channel-activity-DdL3RAv_.js} +3 -3
  29. package/dist/{channel-options-Bo-oY1lo.js → channel-options-DgE4bKnZ.js} +1 -1
  30. package/dist/{channel-options-D4Abu9ss.js → channel-options-w859WR9f.js} +1 -1
  31. package/dist/{channel-web-aUJWpYzV.js → channel-web-6DakWPLw.js} +2 -2
  32. package/dist/{channel-web-CUcTJTDU.js → channel-web-DRFHkK-t.js} +2 -2
  33. package/dist/{channels-cli-B3mz1uK6.js → channels-cli-3a9CzVGj.js} +7 -7
  34. package/dist/{channels-cli-CxSH3i2W.js → channels-cli-DTM2c23f.js} +7 -7
  35. package/dist/{chrome-CfoCzQ7O.js → chrome-Bip_1c2e.js} +9 -9
  36. package/dist/{chrome-RZ6-DZcL.js → chrome-CrBtckYY.js} +17 -17
  37. package/dist/{chunk-CMpX7Jaz.js → chunk-Djk-9JeT.js} +1 -1
  38. package/dist/{cli-Lk-tSEzq.js → cli-BYiKVK4i.js} +2 -2
  39. package/dist/{cli-Bv7W1rAQ.js → cli-C7BI3Wn6.js} +2 -2
  40. package/dist/{command-registry-Ct2rGje_.js → command-registry-BtbFeRGU.js} +10 -10
  41. package/dist/{commands-registry-C_zNi-Ou.js → commands-registry-Cy_UQS_3.js} +5 -5
  42. package/dist/{completion-cli-D1Y9BqD8.js → completion-cli-BB2Y8nfx.js} +1 -1
  43. package/dist/{completion-cli-BVkper4z.js → completion-cli-BGz3hkuH.js} +2 -2
  44. package/dist/{config-cli-DhIGl8u2.js → config-cli-DOmnPiGC.js} +1 -1
  45. package/dist/{config-cli-Cunf6ZG_.js → config-cli-b1s6P-RG.js} +1 -1
  46. package/dist/{configure-BMuZGX8O.js → configure-BQsgmT59.js} +3 -3
  47. package/dist/{configure-CjZDdguE.js → configure-D4tLHdxZ.js} +3 -3
  48. package/dist/daemon-cli.js +6 -6
  49. package/dist/{deliver-Dsgo26ZO.js → deliver-CO1v69YA.js} +1 -1
  50. package/dist/{deliver-BQeDhZSa.js → deliver-DReSDWa4.js} +20 -20
  51. package/dist/{deps-B7PzlVAo.js → deps-1S6DoURA.js} +1 -1
  52. package/dist/{deps-BrSKLsz0.js → deps-BZOU70bs.js} +1 -1
  53. package/dist/{deps-DvFgwh2J.js → deps-D0XOoTym.js} +6 -6
  54. package/dist/{deps-Bq61L28a.js → deps-D3ku734-.js} +1 -1
  55. package/dist/{diagnostic-4owMk4vH.js → diagnostic-BvlZ0Sot.js} +1 -1
  56. package/dist/{dock-BgOmHcbh.js → dock-ejUetwTC.js} +6 -6
  57. package/dist/{doctor-completion-_mAeHEgR.js → doctor-completion-BfAWZyFl.js} +1 -1
  58. package/dist/{doctor-completion-CYeuHpzs.js → doctor-completion-DOFXmBLZ.js} +1 -1
  59. package/dist/{emergency-stop-CksdLPai.js → emergency-stop-3LJcS7w-.js} +7 -7
  60. package/dist/emergency-stop-BXmSbO38.js +113 -0
  61. package/dist/{emergency-stop-DkALIxNO.js → emergency-stop-DXwma2EI.js} +2 -2
  62. package/dist/{emergency-stop-Cl_1fWgA.js → emergency-stop-Dpdosd7y.js} +2 -2
  63. package/dist/entry.js +1 -1
  64. package/dist/{env-B5G1qwGc.js → env-q-PhWbb_.js} +1 -1
  65. package/dist/{plugin-sdk/errors-CMcD8Lhh.js → errors-C4SHjIZK.js} +1 -1
  66. package/dist/extensionAPI.js +7 -7
  67. package/dist/{fetch-guard-iuQsIjqN.js → fetch-guard-CcfDZXe9.js} +1 -1
  68. package/dist/{frontmatter-BOudmHMS.js → frontmatter-pTUG4Sx_.js} +2 -2
  69. package/dist/{fs-safe-CYUaAFO9.js → fs-safe-2l05hI1Y.js} +2 -2
  70. package/dist/{gateway-cli-C-tj9UP3.js → gateway-cli-B2CLa9rg.js} +9 -9
  71. package/dist/{gateway-cli-BACWzti6.js → gateway-cli-CzXEYocw.js} +9 -9
  72. package/dist/{gemini-auth-DwwgHLvI.js → gemini-auth-DnP8lfQK.js} +2 -2
  73. package/dist/{github-copilot-token-Dgt6cnsM.js → github-copilot-token-BjmEQcmi.js} +7 -7
  74. package/dist/{health-CErhWLEK.js → health-C2A5ilGU.js} +1 -1
  75. package/dist/{health-BV8l2AT8.js → health-Dn7CVhrN.js} +1 -1
  76. package/dist/{hooks-cli-BHve1IFH.js → hooks-cli-BxGuMBUi.js} +3 -3
  77. package/dist/{hooks-cli-CdUSadGW.js → hooks-cli-CT8pLj_8.js} +3 -3
  78. package/dist/{image-JsjsSvBI.js → image-Cu288YpA.js} +1 -1
  79. package/dist/{image-4HTajysw.js → image-DBhgEUm0.js} +6 -6
  80. package/dist/{image-ops-D1KtygWz.js → image-ops-J8P5zOFm.js} +1 -1
  81. package/dist/index.js +7 -7
  82. package/dist/{ir-B7IBoKLy.js → ir-BT5aAdU9.js} +5 -5
  83. package/dist/llm-slug-generator.js +60 -60
  84. package/dist/{local-roots-KN4Hp1yZ.js → local-roots-d4y0lvs2.js} +5 -5
  85. package/dist/{login-B8EuUm6R.js → login-CtL3gtbh.js} +6 -6
  86. package/dist/{login-qr-DS_9MrMo.js → login-qr-D090cMcd.js} +11 -11
  87. package/dist/{manager-CaFxh6F8.js → manager-1TS0xG0C.js} +15 -15
  88. package/dist/{markdown-tables-CzsockiZ.js → markdown-tables-R8VTpfE9.js} +1 -1
  89. package/dist/{message-channel-C8QtrwEU.js → message-channel-ZdI1-uUh.js} +1 -1
  90. package/dist/{model-selection-D5g8tXIY.js → model-selection-C5BhfuPa.js} +41 -41
  91. package/dist/{models-CbuRFugK.js → models-CGtrW3AC.js} +2 -2
  92. package/dist/{models-cli-DzuBGnWF.js → models-cli-0TPj_c8R.js} +4 -4
  93. package/dist/{models-cli-BXFbPL8U.js → models-cli-BvUKtS_w.js} +3 -3
  94. package/dist/{npm-resolution-BJWOQq_k.js → npm-resolution-Anabxb6_.js} +1 -1
  95. package/dist/{npm-resolution-BO02ImLM.js → npm-resolution-Ox7X74-Z.js} +1 -1
  96. package/dist/{onboard-DFxvWMZm.js → onboard-B3m0Seri.js} +2 -2
  97. package/dist/{onboard-BafFvA78.js → onboard-DsqTjPex.js} +2 -2
  98. package/dist/{onboard-channels-52aYyjLX.js → onboard-channels-14qYfbpr.js} +1 -1
  99. package/dist/{onboard-channels-Dy6UoU78.js → onboard-channels-DFXKCp3G.js} +1 -1
  100. package/dist/{onboarding-BK5EH5Rn.js → onboarding-BJYyNWSX.js} +3 -3
  101. package/dist/{onboarding-CqPkGVMr.js → onboarding-nIZFJ6yX.js} +3 -3
  102. package/dist/{onboarding.finalize-B58yHwhW.js → onboarding.finalize-B1qxBzUX.js} +6 -6
  103. package/dist/{onboarding.finalize-BMRt8s2a.js → onboarding.finalize-Bi1nDMyy.js} +7 -7
  104. package/dist/{outbound-Dq9yoBDJ.js → outbound-D3dHUVkO.js} +6 -6
  105. package/dist/{outbound-attachment-3I6GzwDe.js → outbound-attachment-IfeZJAKk.js} +2 -2
  106. package/dist/{path-alias-guards-Cu1nXNMM.js → path-alias-guards-BZmt6hFb.js} +1 -1
  107. package/dist/{paths-D_qUel1T.js → paths-D3p7ZvM6.js} +3 -3
  108. package/dist/{paths-BYNVLNi_.js → paths-DQpv9a3Q.js} +5 -5
  109. package/dist/{pi-embedded-DQpyqnA8.js → pi-embedded-D-vbVu50.js} +61 -46
  110. package/dist/{pi-embedded-helpers-DBkYJKhY.js → pi-embedded-helpers-BcRw0T_g.js} +24 -24
  111. package/dist/{pi-embedded-helpers-i5nHSWCq.js → pi-embedded-helpers-Ts8Hdurw.js} +4 -4
  112. package/dist/{pi-embedded-Dn4hfyZ7.js → pi-embedded-wUyn4Zjf.js} +214 -199
  113. package/dist/{pi-model-discovery-BMRRgVlz.js → pi-model-discovery-DMEzBdm5.js} +7 -7
  114. package/dist/{plugin-registry-C_B5M53b.js → plugin-registry-DHavGgu-.js} +1 -1
  115. package/dist/{plugin-registry-BIerZvsa.js → plugin-registry-ReGTT2Qn.js} +1 -1
  116. package/dist/plugin-sdk/{accounts-CBVAw5_G.js → accounts-B9nfRzyn.js} +1 -1
  117. package/dist/plugin-sdk/{accounts-BLYMokxV.js → accounts-Kt6ygPsC.js} +2 -2
  118. package/dist/plugin-sdk/{accounts-C5tHm1UI.js → accounts-mjFAny5F.js} +1 -1
  119. package/dist/plugin-sdk/{agent-scope-jl80I5G9.js → agent-scope-CU41EMlR.js} +2 -2
  120. package/dist/plugin-sdk/{agent-via-gateway-VUne26H_.js → agent-via-gateway-BaZViUVq.js} +55 -55
  121. package/dist/plugin-sdk/agents/tool-stubs.d.ts +2 -1
  122. package/dist/plugin-sdk/{anton-Dc7P4F4R.js → anton-y9DWQk_X.js} +4 -4
  123. package/dist/plugin-sdk/{api-key-rotation-BUIqfXnG.js → api-key-rotation-DPA6ftN7.js} +2 -2
  124. package/dist/plugin-sdk/{audio-preflight-URcQAxhH.js → audio-preflight-DL4zZ6SH.js} +30 -30
  125. package/dist/plugin-sdk/{auth-store-DaPWgQTx.js → auth-store-DycBvVqL.js} +1 -1
  126. package/dist/plugin-sdk/{bindings-xXgmJGxj.js → bindings-BDKKHGv-.js} +2 -2
  127. package/dist/plugin-sdk/{channel-activity-loOg1DRw.js → channel-activity-TcS_VfJk.js} +3 -3
  128. package/dist/plugin-sdk/{channel-web-ineTToqd.js → channel-web-CLQ55z3e.js} +24 -24
  129. package/dist/plugin-sdk/{chrome-CPVAOm0b.js → chrome-CaJve-Gp.js} +6 -6
  130. package/dist/plugin-sdk/{chunk-PW4MBmaN.js → chunk-DZr5xuqv.js} +1 -1
  131. package/dist/plugin-sdk/{commands-registry-DQCQbF8W.js → commands-registry-DWTMC5Bl.js} +5 -5
  132. package/dist/plugin-sdk/{config-04otsq-i.js → config-DXRuYZaI.js} +10 -10
  133. package/dist/plugin-sdk/{deliver-DfopPK17.js → deliver-DbtR2D87.js} +10 -10
  134. package/dist/plugin-sdk/{deps-D39VXTRX.js → deps-DNbYvt5g.js} +6 -6
  135. package/dist/plugin-sdk/{diagnostic-ByA6zvzu.js → diagnostic-B8VzcqLf.js} +1 -1
  136. package/dist/plugin-sdk/{dock-DKQYtT6-.js → dock-CMURqoee.js} +6 -6
  137. package/dist/plugin-sdk/{emergency-stop-CY_hnUVd.js → emergency-stop-DQXrdDYX.js} +55 -55
  138. package/dist/plugin-sdk/{env-5XecRTLs.js → env-qurSiOO2.js} +1 -1
  139. package/dist/{errors-C_0nm4TJ.js → plugin-sdk/errors-UqLewZJL.js} +1 -1
  140. package/dist/plugin-sdk/{fetch-guard-DwdUEdmT.js → fetch-guard-C174s8ZV.js} +1 -1
  141. package/dist/plugin-sdk/{fs-safe-qsx2_8-o.js → fs-safe-CCXTOK7j.js} +2 -2
  142. package/dist/plugin-sdk/{image-B-gM6mxU.js → image-D-9PH0zg.js} +6 -6
  143. package/dist/plugin-sdk/{image-ops-CXSUo-AM.js → image-ops-BRYGGDwL.js} +1 -1
  144. package/dist/plugin-sdk/index.js +60 -60
  145. package/dist/plugin-sdk/{ir-kdDGpPMq.js → ir-Bv0Zbp2E.js} +5 -5
  146. package/dist/plugin-sdk/{local-roots-DjB6DYeI.js → local-roots-bHCsSVt_.js} +4 -4
  147. package/dist/plugin-sdk/{login-Bpe2s20d.js → login-B8HpBurd.js} +6 -6
  148. package/dist/plugin-sdk/{login-qr-C9ndp3tg.js → login-qr-DQnS-xlm.js} +8 -8
  149. package/dist/plugin-sdk/{manager-CBBlTnh3.js → manager-CKed0ZZE.js} +10 -10
  150. package/dist/plugin-sdk/{markdown-tables-Drtwd4J5.js → markdown-tables-DfUQHRZY.js} +1 -1
  151. package/dist/plugin-sdk/{message-channel-CQ0qkGHj.js → message-channel-DiMXmQeQ.js} +1 -1
  152. package/dist/plugin-sdk/{outbound-D6g6crrp.js → outbound-DNK06gip.js} +6 -6
  153. package/dist/plugin-sdk/{outbound-attachment-BisU5Vji.js → outbound-attachment-Bs7fNaqv.js} +2 -2
  154. package/dist/plugin-sdk/{path-alias-guards-C_uBEYb4.js → path-alias-guards-yyy61qHh.js} +1 -1
  155. package/dist/plugin-sdk/{pi-embedded-helpers-D48bhP-9.js → pi-embedded-helpers-BoeRlyoL.js} +16 -16
  156. package/dist/plugin-sdk/{pi-model-discovery-DCBTaRzI.js → pi-model-discovery-BLPN0Tzs.js} +1 -1
  157. package/dist/plugin-sdk/{plugins-NTjIvHYk.js → plugins-DRPlVBr_.js} +5 -5
  158. package/dist/plugin-sdk/{pw-ai-YGZXROMl.js → pw-ai-V3n0xLn-.js} +10 -10
  159. package/dist/plugin-sdk/{qmd-manager-juzrnopq.js → qmd-manager-BckPBwZX.js} +5 -5
  160. package/dist/plugin-sdk/{query-expansion-xBXvzdkL.js → query-expansion-CPqK-tTR.js} +2 -2
  161. package/dist/plugin-sdk/{redact-B6VQH3UQ.js → redact-Ub8sMBBC.js} +1 -1
  162. package/dist/plugin-sdk/{replies-DXdzWcMN.js → replies-CzsaFa8u.js} +3 -3
  163. package/dist/plugin-sdk/{reply-RRDB8Hr7.js → reply-DWcAkFIT.js} +130 -115
  164. package/dist/plugin-sdk/{reply-prefix--mxmTL7A.js → reply-prefix-BqV0o7_7.js} +1 -1
  165. package/dist/plugin-sdk/{resolve-outbound-target-CnUtsDch.js → resolve-outbound-target-DAdNGEqG.js} +2 -2
  166. package/dist/plugin-sdk/{resolve-route-BZABUE4J.js → resolve-route-C5mAwY-o.js} +3 -3
  167. package/dist/{retry-BeB9WenR.js → plugin-sdk/retry-2OVzZJMZ.js} +1 -1
  168. package/dist/plugin-sdk/{runner-C2xaoYAR.js → runner-C_iZbSwz.js} +10 -10
  169. package/dist/plugin-sdk/{send-CKQ89Lq9.js → send-BUYJmPie.js} +6 -6
  170. package/dist/plugin-sdk/{send-CFkuTXvq.js → send-BsxSmaWa.js} +7 -7
  171. package/dist/plugin-sdk/{send-BgTqMJLI.js → send-CBYbDScb.js} +10 -10
  172. package/dist/plugin-sdk/{send-dmYAtUT5.js → send-D-cZm1Y5.js} +7 -7
  173. package/dist/plugin-sdk/{send-CRhcec-_.js → send-Dt8bXHE8.js} +13 -13
  174. package/dist/plugin-sdk/{session-OpE6SSAs.js → session-C9uqVmuk.js} +3 -3
  175. package/dist/plugin-sdk/{sessions-CG-k8Acv.js → sessions-B4ApxPY1.js} +6 -6
  176. package/dist/plugin-sdk/{skill-commands-BHBpmuX9.js → skill-commands-B8suoqwn.js} +5 -5
  177. package/dist/plugin-sdk/{skills-33Wy6_4b.js → skills-Dl2nq6QI.js} +8 -8
  178. package/dist/plugin-sdk/{store-CCCXwngh.js → store-BI3rLJdW.js} +2 -2
  179. package/dist/plugin-sdk/{subsystem-DWPzKeZ0.js → subsystem-lJo9gqAK.js} +1 -1
  180. package/dist/plugin-sdk/{tables-CF9W23Rd.js → tables-C4X_nAUQ.js} +1 -1
  181. package/dist/plugin-sdk/{target-errors-DaH0qYtL.js → target-errors-CXh6e9ZE.js} +2 -2
  182. package/dist/plugin-sdk/{tokens-Y97UKh4C.js → tokens-CU9S3S7t.js} +1 -1
  183. package/dist/{tool-images-CcGZpzmq.js → plugin-sdk/tool-images-Cf9aWlVu.js} +2 -2
  184. package/dist/plugin-sdk/{tool-loop-detection-Cv8wyfAi.js → tool-loop-detection-DuwkSqZL.js} +2 -2
  185. package/dist/plugin-sdk/{utils-Dyj2wV4e.js → utils-dP-FpIgu.js} +2 -2
  186. package/dist/plugin-sdk/web-CNw6-P_B.js +71 -0
  187. package/dist/plugin-sdk/{whatsapp-actions-Cp6vXAA8.js → whatsapp-actions-CEAXpexT.js} +23 -23
  188. package/dist/{plugins-CRB60mCJ.js → plugins-DYr-HHj0.js} +10 -10
  189. package/dist/{plugins-cli-CD34Zewk.js → plugins-cli-C13WMPnF.js} +3 -3
  190. package/dist/{plugins-cli-BM3apx3Z.js → plugins-cli-CO4FVaiO.js} +3 -3
  191. package/dist/{program-hlrBo5Ce.js → program-B_vfCOU2.js} +8 -8
  192. package/dist/{program-context-Bl64JzxU.js → program-context-BmSQ_Sf4.js} +18 -18
  193. package/dist/{prompt-select-styled-f40iKGOp.js → prompt-select-styled-B5ZwrfX0.js} +4 -4
  194. package/dist/{prompt-select-styled-BAYe1OqG.js → prompt-select-styled-BC7OSZ1q.js} +4 -4
  195. package/dist/{provider-auth-helpers-51CT-Q-Q.js → provider-auth-helpers-CDu8gosd.js} +1 -1
  196. package/dist/{provider-auth-helpers-BIbY8IHT.js → provider-auth-helpers-D0A6E5jr.js} +1 -1
  197. package/dist/{push-apns-DGYpjf9d.js → push-apns-BofP21zS.js} +1 -1
  198. package/dist/{push-apns-fdjNrWTc.js → push-apns-Dc8RVDXC.js} +1 -1
  199. package/dist/{pw-ai-5GRjEp4v.js → pw-ai-D3GtQQoU.js} +13 -13
  200. package/dist/{pw-ai-CX1qce0j.js → pw-ai-YklTVbF6.js} +1 -1
  201. package/dist/{qmd-manager-B_GgyQQ0.js → qmd-manager-BRvg3Rx2.js} +8 -8
  202. package/dist/{query-expansion-DEq020GG.js → query-expansion-DHuNyU-_.js} +5 -5
  203. package/dist/{redact-Bvpf-ATQ.js → redact-1Y0KPNtr.js} +1 -1
  204. package/dist/{register.agent-QXLalAr7.js → register.agent-CMlS5uBQ.js} +9 -9
  205. package/dist/{register.agent-DM9zMka2.js → register.agent-CV7M3tu9.js} +8 -8
  206. package/dist/{register.configure-DYbl1myH.js → register.configure-BnNziB2G.js} +8 -8
  207. package/dist/{register.configure-C6yu81ji.js → register.configure-CMB0aDJp.js} +8 -8
  208. package/dist/{register.maintenance-BmKpPkIS.js → register.maintenance-BdWGNtkz.js} +8 -8
  209. package/dist/{register.maintenance-B5s6APwg.js → register.maintenance-X6asZwHw.js} +9 -9
  210. package/dist/{register.message-DonrN0cy.js → register.message-BuggdGjG.js} +3 -3
  211. package/dist/{register.message-DVc5XVAt.js → register.message-DnOPNIGk.js} +3 -3
  212. package/dist/{register.onboard-lHuw_CER.js → register.onboard-BDhpm8TD.js} +2 -2
  213. package/dist/{register.onboard-BE31mSHh.js → register.onboard-CHHu9Skd.js} +2 -2
  214. package/dist/{register.orchestrator-anton-CVNuKUWS.js → register.orchestrator-anton-B-tuZR0z.js} +2 -2
  215. package/dist/{register.orchestrator-anton-Dgbr0yM1.js → register.orchestrator-anton-SlFmmH1n.js} +2 -2
  216. package/dist/{register.setup-BudIJsJc.js → register.setup-A8U_6S1I.js} +2 -2
  217. package/dist/{register.setup-DNlkNa0X.js → register.setup-D7mmwdPD.js} +2 -2
  218. package/dist/{register.status-health-sessions-DuMxtV8K.js → register.status-health-sessions-DVocz8ib.js} +4 -4
  219. package/dist/{register.status-health-sessions-nhSLVQw7.js → register.status-health-sessions-haba-O-6.js} +4 -4
  220. package/dist/{register.subclis-Bnq9Bi9p.js → register.subclis-B-zDlWeV.js} +9 -9
  221. package/dist/{replies-uBXwI7WM.js → replies-BxRl_2Nq.js} +3 -3
  222. package/dist/{reply-DUE8raq5.js → reply-7AXQ38dZ.js} +46 -31
  223. package/dist/{reply-prefix-BUgeSN2R.js → reply-prefix-DCljZiIB.js} +1 -1
  224. package/dist/{resolve-route-DuttYY7A.js → resolve-route-ClcifpKn.js} +4 -4
  225. package/dist/{plugin-sdk/retry-Bh7jveNm.js → retry-CG6cMRDQ.js} +1 -1
  226. package/dist/{run-main-D7FJSKGA.js → run-main-Cy6gYOh3.js} +15 -15
  227. package/dist/{runner-Cy6GWdoL.js → runner-BZBK277H.js} +11 -11
  228. package/dist/{runner-DG_xf5vi.js → runner-upvvkv9R.js} +1 -1
  229. package/dist/{send-Ce_lAnef.js → send-B7Fzlmlo.js} +7 -7
  230. package/dist/{send-BskvGZej.js → send-BGyVbnFP.js} +7 -7
  231. package/dist/{send-DvjrOg1z.js → send-DcN-QeVO.js} +6 -6
  232. package/dist/{send-rp8dzIy4.js → send-n1vT5TEb.js} +24 -24
  233. package/dist/{send-C4z2HAbE.js → send-qNmymshG.js} +10 -10
  234. package/dist/{server-node-events-DhFplzWZ.js → server-node-events-ChBhFPg3.js} +3 -3
  235. package/dist/{server-node-events-CLq5E5Db.js → server-node-events-Dbr2WR-0.js} +3 -3
  236. package/dist/{session-BbwP0jac.js → session-BMqBZ_fq.js} +7 -7
  237. package/dist/{sessions-DA2oWrdb.js → sessions-BA3_G98W.js} +41 -41
  238. package/dist/{skill-commands-AySApC-2.js → skill-commands-DnTjl_m1.js} +9 -9
  239. package/dist/{skills-B3wf7ZnA.js → skills-DRGt1G_o.js} +22 -22
  240. package/dist/{status-CsNXMHzO.js → status-BompBfRg.js} +2 -2
  241. package/dist/{status-CyzO0TGy.js → status-Cy7Zcfzv.js} +2 -2
  242. package/dist/{store-CvMgrKWx.js → store-D-ZicQeo.js} +2 -2
  243. package/dist/{subagent-registry-DW1LK5cG.js → subagent-registry-DDIoRVFV.js} +46 -31
  244. package/dist/{subsystem-tzu-rIAJ.js → subsystem-D7ZepYT1.js} +1 -1
  245. package/dist/{tables-5k-zOZ-s.js → tables-Co_R_WKs.js} +1 -1
  246. package/dist/{target-errors-BPfQrPim.js → target-errors-B1mcM4WR.js} +2 -2
  247. package/dist/{tokens-BRLyURxW.js → tokens-DGajj8M9.js} +1 -1
  248. package/dist/{plugin-sdk/tool-images-BMRkn_yk.js → tool-images-Duuqr4bN.js} +2 -2
  249. package/dist/{tool-loop-detection-BNGetx3Z.js → tool-loop-detection-CjWRg_4q.js} +3 -3
  250. package/dist/{update-cli-DEMtHXm1.js → update-cli-1s_O26hF.js} +8 -8
  251. package/dist/{update-cli-CtsLbpQq.js → update-cli-DywvLvxF.js} +9 -9
  252. package/dist/{update-runner-DpD5VBHi.js → update-runner-2yf_p333.js} +1 -1
  253. package/dist/{update-runner-ybEXKv6M.js → update-runner-DfTjwukX.js} +1 -1
  254. package/dist/{utils-CTFLl_ji.js → utils-D9wGoiU9.js} +18 -18
  255. package/dist/{web-C-13ua3w.js → web-59hB8x7z.js} +3 -3
  256. package/dist/{web-SvfucU2_.js → web-C4vEw_Lp.js} +8 -8
  257. package/dist/{web-Da5eWC4p.js → web-DxQjSHSJ.js} +66 -66
  258. package/dist/{web-CI1Ye0j8.js → web-WBETd448.js} +3 -3
  259. package/dist/{whatsapp-actions-C_BWc4tJ.js → whatsapp-actions-DmI59VQd.js} +25 -25
  260. package/dist/{workspace-DBFSzT6O.js → workspace-tAtkoD_r.js} +18 -18
  261. package/package.json +1 -1
  262. package/dist/emergency-stop-Sq-9tUol.js +0 -113
  263. package/dist/plugin-sdk/web-Bxlapohg.js +0 -71
@@ -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
  }
@@ -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-p_pDuU90.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-Cro3WBC4.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-Dsgo26ZO.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-CO1v69YA.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-BwF_em5R.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-i5nHSWCq.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-CfoCzQ7O.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-Ts8Hdurw.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-Bip_1c2e.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-BRqZp2IE.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-JsjsSvBI.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-Cu288YpA.js";
50
50
  import { n as resolveMemorySearchConfig } from "./manager-B9Q7jxHQ.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-DBT-IMwk.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-rG2AXHaN.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-DG_xf5vi.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-upvvkv9R.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-B7WhS1HA.js";
75
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-B7PzlVAo.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";
@@ -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$1, { WebSocket } from "ws";
94
+ import WebSocket, { WebSocket as WebSocket$1 } 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";
@@ -6372,7 +6372,7 @@ var GatewayClient = class {
6372
6372
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
6373
6373
  });
6374
6374
  }
6375
- this.ws = new WebSocket(url, wsOptions);
6375
+ this.ws = new WebSocket$1(url, wsOptions);
6376
6376
  this.ws.on("open", () => {
6377
6377
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
6378
6378
  const tlsError = this.validateTlsFingerprint();
@@ -6568,7 +6568,7 @@ var GatewayClient = class {
6568
6568
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
6569
6569
  if (this.connectTimer) clearTimeout(this.connectTimer);
6570
6570
  this.connectTimer = setTimeout(() => {
6571
- if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
6571
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
6572
6572
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
6573
6573
  this.ws?.close(1008, "connect challenge timeout");
6574
6574
  }, connectChallengeTimeoutMs);
@@ -6610,7 +6610,7 @@ var GatewayClient = class {
6610
6610
  return null;
6611
6611
  }
6612
6612
  async request(method, params, opts) {
6613
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
6613
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
6614
6614
  const id = randomUUID();
6615
6615
  const frame = {
6616
6616
  type: "req",
@@ -7934,7 +7934,7 @@ async function routeReply(params) {
7934
7934
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7935
7935
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7936
7936
  try {
7937
- const { deliverOutboundPayloads } = await import("./deliver-Dsgo26ZO.js").then((n) => n.n);
7937
+ const { deliverOutboundPayloads } = await import("./deliver-CO1v69YA.js").then((n) => n.n);
7938
7938
  const outboundSession = buildOutboundSessionContext({
7939
7939
  cfg,
7940
7940
  agentId: resolvedAgentId,
@@ -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-DnEx8ryb.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-DnEx8ryb.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-DnEx8ryb.js");
23117
- const { createDefaultDeps } = await import("./deps-B7PzlVAo.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();
@@ -47426,7 +47426,7 @@ async function deliverSessionMaintenanceWarning(params) {
47426
47426
  return;
47427
47427
  }
47428
47428
  try {
47429
- const { deliverOutboundPayloads } = await import("./deliver-Dsgo26ZO.js").then((n) => n.n);
47429
+ const { deliverOutboundPayloads } = await import("./deliver-CO1v69YA.js").then((n) => n.n);
47430
47430
  const outboundSession = buildOutboundSessionContext({
47431
47431
  cfg: params.cfg,
47432
47432
  sessionKey: params.sessionKey
@@ -51862,7 +51862,7 @@ async function describeStickerImage(params) {
51862
51862
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
51863
51863
  try {
51864
51864
  const buffer = await fs.readFile(imagePath);
51865
- const { describeImageWithModel } = await import("./image-JsjsSvBI.js").then((n) => n.n);
51865
+ const { describeImageWithModel } = await import("./image-Cu288YpA.js").then((n) => n.n);
51866
51866
  return (await describeImageWithModel({
51867
51867
  buffer,
51868
51868
  fileName: "sticker.webp",
@@ -54790,7 +54790,7 @@ async function preflightDiscordMessage(params) {
54790
54790
  let preflightTranscript;
54791
54791
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
54792
54792
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
54793
- const { transcribeFirstAudio } = await import("./audio-preflight-CdQj55ox.js");
54793
+ const { transcribeFirstAudio } = await import("./audio-preflight-Dl_bdO0l.js");
54794
54794
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
54795
54795
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
54796
54796
  ctx: {
@@ -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-CksdLPai.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({
@@ -62717,7 +62717,7 @@ function createDiscordGatewayPlugin(params) {
62717
62717
  return super.registerClient(client);
62718
62718
  }
62719
62719
  createWebSocket(url) {
62720
- return new WebSocket$1(url, { agent: wsAgent });
62720
+ return new WebSocket(url, { agent: wsAgent });
62721
62721
  }
62722
62722
  }
62723
62723
  return new ProxyGatewayPlugin();
@@ -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-CksdLPai.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-CksdLPai.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-CksdLPai.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-CksdLPai.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)) {
@@ -73843,7 +73843,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
73843
73843
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
73844
73844
  let preflightTranscript;
73845
73845
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
73846
- const { transcribeFirstAudio } = await import("./audio-preflight-CdQj55ox.js");
73846
+ const { transcribeFirstAudio } = await import("./audio-preflight-Dl_bdO0l.js");
73847
73847
  preflightTranscript = await transcribeFirstAudio({
73848
73848
  ctx: {
73849
73849
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -76441,7 +76441,7 @@ function loadWebLoginQr() {
76441
76441
  return webLoginQrPromise;
76442
76442
  }
76443
76443
  function loadWebChannel() {
76444
- webChannelPromise ??= import("./web-SvfucU2_.js");
76444
+ webChannelPromise ??= import("./web-C4vEw_Lp.js");
76445
76445
  return webChannelPromise;
76446
76446
  }
76447
76447
  function loadWhatsAppActions() {
@@ -85083,36 +85083,51 @@ function extractParameterSummary(tool) {
85083
85083
  /**
85084
85084
  * Build compact tool guidance for common coding tools.
85085
85085
  * This is optimized for local models with limited context.
85086
+ * @param excludeTools - Tool names to exclude (e.g., tools with full schemas)
85086
85087
  */
85087
- function buildCompactToolGuidance() {
85088
- return `## Tools
85089
-
85090
- Call tools with JSON: {"tool": "name", "params": {...}}
85091
-
85092
- **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
85093
85094
  command (required): Shell command to execute
85094
85095
  workdir: Working directory
85095
85096
  timeout: Timeout in seconds
85096
- background: Run in background (true/false)
85097
-
85098
- **read** - Read file contents
85097
+ background: Run in background (true/false)`
85098
+ },
85099
+ {
85100
+ name: "read",
85101
+ def: `**read** - Read file contents
85099
85102
  path (required): File path to read
85100
85103
  offset: Start line (1-indexed)
85101
- limit: Max lines to read
85102
-
85103
- **write** - Create/overwrite files
85104
+ limit: Max lines to read`
85105
+ },
85106
+ {
85107
+ name: "write",
85108
+ def: `**write** - Create/overwrite files
85104
85109
  path (required): File path to write
85105
- content (required): Content to write
85106
-
85107
- **edit** - Precise text replacement
85110
+ content (required): Content to write`
85111
+ },
85112
+ {
85113
+ name: "edit",
85114
+ def: `**edit** - Precise text replacement
85108
85115
  path (required): File path to edit
85109
85116
  old_string (required): Exact text to find
85110
- new_string (required): Replacement text
85111
-
85112
- **process** - Manage background processes
85117
+ new_string (required): Replacement text`
85118
+ },
85119
+ {
85120
+ name: "process",
85121
+ def: `**process** - Manage background processes
85113
85122
  action (required): list|poll|kill|log
85114
85123
  sessionId: Session ID for poll/kill/log
85115
- 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")}`;
85116
85131
  }
85117
85132
 
85118
85133
  //#endregion
@@ -85952,7 +85967,7 @@ async function runEmbeddedAttempt(params) {
85952
85967
  });
85953
85968
  const stubModeConfig = params.config?.tools?.stubMode;
85954
85969
  const tools = applyStubMode(toolsSanitized, stubModeConfig);
85955
- 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;
85956
85971
  const allowedToolNames = collectAllowedToolNames({
85957
85972
  tools,
85958
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
@@ -9,7 +9,7 @@ import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
9
9
  import { n as parseBooleanValue } from "./env-BpvqFD5n.js";
10
10
  import { t as generateSecureToken } from "./secure-random-BvP4jdcV.js";
11
11
  import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BDG-MYYV.js";
12
- 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-CfoCzQ7O.js";
12
+ 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-Bip_1c2e.js";
13
13
  import { t as SsrFBlockedError } from "./ssrf-DappnhDp.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BRqZp2IE.js";
15
15
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CGbCFqW8.js";
@@ -1181,7 +1181,7 @@ function isModuleNotFoundError(err) {
1181
1181
  }
1182
1182
  async function loadPwAiModule(mode) {
1183
1183
  try {
1184
- return await import("./pw-ai-CX1qce0j.js");
1184
+ return await import("./pw-ai-YklTVbF6.js");
1185
1185
  } catch (err) {
1186
1186
  if (mode === "soft") return null;
1187
1187
  if (isModuleNotFoundError(err)) return null;
@@ -3716,11 +3716,11 @@ function createProfileContext(opts, profile) {
3716
3716
  const userDataDir = resolveIdleHandsUserDataDir(profile.name);
3717
3717
  const profileState = getProfileState();
3718
3718
  if (await isHttpReachable(300) && !profileState.running) try {
3719
- await (await import("./pw-ai-CX1qce0j.js")).closePlaywrightBrowserConnection();
3719
+ await (await import("./pw-ai-YklTVbF6.js")).closePlaywrightBrowserConnection();
3720
3720
  } catch {}
3721
3721
  if (profileState.running) await stopRunningBrowser();
3722
3722
  try {
3723
- await (await import("./pw-ai-CX1qce0j.js")).closePlaywrightBrowserConnection();
3723
+ await (await import("./pw-ai-YklTVbF6.js")).closePlaywrightBrowserConnection();
3724
3724
  } catch {}
3725
3725
  if (!syncFs.existsSync(userDataDir)) return {
3726
3726
  moved: false,