@visorcraft/idlehands 4.1.0 → 4.2.0

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 (382) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{accounts-DsVN0UNw.js → accounts-3HS_UAhJ.js} +1 -1
  3. package/dist/{accounts-B8cGzkjD.js → accounts-BDVs8LTu.js} +1 -1
  4. package/dist/{accounts-D5tB_lO0.js → accounts-CIvVRRHb.js} +1 -1
  5. package/dist/{accounts-D-hQsUw-.js → accounts-DLTODa_Z.js} +1 -1
  6. package/dist/{accounts-D87a1Y_K.js → accounts-DgbTKQoW.js} +1 -1
  7. package/dist/{accounts-BQC_GRUB.js → accounts-Dk8mJIrQ.js} +6 -6
  8. package/dist/{acp-cli-BEHYc8ty.js → acp-cli-BEpWQbqb.js} +7 -7
  9. package/dist/{agent-scope-Bxq1eWbA.js → agent-scope-DyP_tr7s.js} +4 -4
  10. package/dist/{agent-scope-Bn39ugK4.js → agent-scope-RA0zXRpu.js} +18 -18
  11. package/dist/{agent-via-gateway-igDg7ko6.js → agent-via-gateway-C42kkKZI.js} +2 -2
  12. package/dist/{agent-via-gateway-CM7X6sKJ.js → agent-via-gateway-CUtzJXBE.js} +60 -60
  13. package/dist/{agent-via-gateway-B03q92bw.js → agent-via-gateway-CldlRczJ.js} +1 -1
  14. package/dist/{agent-via-gateway-bS6seBwg.js → agent-via-gateway-oMn0WfUq.js} +4 -4
  15. package/dist/{agents-DdTECKDf.js → agents-BfnnMO1i.js} +4 -4
  16. package/dist/{agents.config-D2EbQiOx.js → agents.config-BFfVBZMA.js} +1 -1
  17. package/dist/{agents.config-CPUPtcKt.js → agents.config-bWtpv0jP.js} +2 -2
  18. package/dist/{anton-ONYQUE8F.js → anton-CgpWkf5P.js} +32 -17
  19. package/dist/{anton-C7-Qxyij.js → anton-CoGaJdTU.js} +36 -21
  20. package/dist/{anton-D4vpCj_q.js → anton-DSS3RNo7.js} +32 -17
  21. package/dist/anton-DXL8jrY_.js +792 -0
  22. package/dist/{api-key-rotation-nXQVJErE.js → api-key-rotation-B-FTJm5p.js} +1 -1
  23. package/dist/{audio-preflight-qkU2lsDn.js → audio-preflight-CW8IH1lU.js} +35 -35
  24. package/dist/{audio-preflight-DzjXupNO.js → audio-preflight-Dl1TO10w.js} +31 -31
  25. package/dist/{audit-C5VPFgbJ.js → audit-CKeZnjft.js} +22 -22
  26. package/dist/{auth-choice-DVoPuwEs.js → auth-choice-BNofPyTK.js} +1 -1
  27. package/dist/{auth-choice-BDndThZZ.js → auth-choice-D12Wsf7w.js} +12 -12
  28. package/dist/{auth-choice-CQqV1VIf.js → auth-choice-Z7nPFxhP.js} +10 -10
  29. package/dist/{auth-choice.apply-helpers-pTqMTYmi.js → auth-choice.apply-helpers-CGcniL1T.js} +1 -1
  30. package/dist/{auth-store-CMyrmmSF.js → auth-store-DDzIMy8_.js} +7 -7
  31. package/dist/{auth-store-Bb4aajHu.js → auth-store-DXT-l7fO.js} +12 -12
  32. package/dist/{auth-token-fKt_cHOj.js → auth-token-BJq87X3o.js} +1 -1
  33. package/dist/{banner-CFKoGAzN.js → banner-B1-kj-GW.js} +1 -1
  34. package/dist/{bindings-DZjkLUU_.js → bindings-B59Q7nsk.js} +1 -1
  35. package/dist/{bindings-CLZIJ0Eo.js → bindings-D3b5Fmc9.js} +2 -2
  36. package/dist/{browser-cli-qU0I-Gla.js → browser-cli-Ci6DpTnS.js} +11 -11
  37. package/dist/build-info.json +3 -3
  38. package/dist/bundled/boot-md/handler.js +60 -60
  39. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  40. package/dist/bundled/command-logger/handler.js +3 -3
  41. package/dist/bundled/session-memory/handler.js +60 -60
  42. package/dist/{call-Du-oBD99.js → call-BpWhjuOg.js} +9 -9
  43. package/dist/{channel-account-context-B4nJPU2N.js → channel-account-context-CDbY5AIr.js} +5 -5
  44. package/dist/{channel-activity-DdL3RAv_.js → channel-activity-D_TMOGQ0.js} +3 -3
  45. package/dist/{channel-options-BU0E7BdU.js → channel-options-C5Iz9bes.js} +1 -1
  46. package/dist/{channel-options-B1cfZ5uQ.js → channel-options-CUP3A4VX.js} +3 -3
  47. package/dist/{channel-selection-3jUl-PyW.js → channel-selection-ZxRkxpuF.js} +1 -1
  48. package/dist/{channel-web-BDytDCrG.js → channel-web-CGXl1PnB.js} +2 -2
  49. package/dist/{channel-web-CzrJ-6X4.js → channel-web-CsUiKxQo.js} +22 -22
  50. package/dist/{channels-cli-DWaQsKP8.js → channels-cli-DK7TRLqX.js} +7 -7
  51. package/dist/{channels-cli-B4o-qohk.js → channels-cli-DmHSajZy.js} +88 -88
  52. package/dist/{channels-status-issues-hgASw9UA.js → channels-status-issues-CDpWjdI3.js} +1 -1
  53. package/dist/{chrome-CT_a9OgI.js → chrome-BcJB6PcM.js} +17 -17
  54. package/dist/{chrome-YguTEaLx.js → chrome-VBsQfIrt.js} +2 -2
  55. package/dist/{chunk-Djk-9JeT.js → chunk-CMpX7Jaz.js} +1 -1
  56. package/dist/{clawbot-cli-C5cDal-5.js → clawbot-cli-uFgYrysW.js} +5 -5
  57. package/dist/{cli-Hplv9sD1.js → cli-6eMKeewY.js} +2 -2
  58. package/dist/{cli-DXyOlvH2.js → cli-DEE_ketW.js} +70 -70
  59. package/dist/{client-Dl5EAvfO.js → client-DtnD-ee9.js} +1 -1
  60. package/dist/{command-registry-esizscE2.js → command-registry-BFTlzx6d.js} +10 -10
  61. package/dist/{commands-D3BU_t7G.js → commands-Dj5LalLo.js} +1 -1
  62. package/dist/{commands-registry-Cj4D_1tw.js → commands-registry-CURlRZQJ.js} +3 -3
  63. package/dist/{commands-registry-_TBHHpvt.js → commands-registry-j4vAzcF2.js} +5 -5
  64. package/dist/{completion-cli-c4blaZPQ.js → completion-cli-BbXgtvGY.js} +2 -2
  65. package/dist/{completion-cli-CXDILt8-.js → completion-cli-PBfCNWhv.js} +12 -12
  66. package/dist/{config-cli-D_mH5-FH.js → config-cli-BVJRkNhX.js} +6 -6
  67. package/dist/{config-cli-98ASrAou.js → config-cli-Q934shK6.js} +1 -1
  68. package/dist/{config-guard-DnAyuF6T.js → config-guard-BdsOumqh.js} +17 -17
  69. package/dist/{config-validation-DIomLMwH.js → config-validation-BvKX6fPw.js} +2 -2
  70. package/dist/{configure-PKG58EzI.js → configure-85ttW_lD.js} +16 -16
  71. package/dist/{configure-CKspMrI1.js → configure-BGAvA5a4.js} +3 -3
  72. package/dist/{control-ui-assets-CiaCDBvZ.js → control-ui-assets-C7ZpN9hN.js} +1 -1
  73. package/dist/{cron-cli-BIfVPc5K.js → cron-cli-DQsnGQKs.js} +12 -12
  74. package/dist/{daemon-cli-DpyQu0Dp.js → daemon-cli-DUg-s4LG.js} +11 -11
  75. package/dist/{daemon-install-DeqQiAad.js → daemon-install-CYPo4M1M.js} +4 -4
  76. package/dist/{daemon-install-helpers-Bug_GYuy.js → daemon-install-helpers-BZY9-jNW.js} +9 -9
  77. package/dist/{deliver-yTpXc5sv.js → deliver--kttnrER.js} +7 -7
  78. package/dist/{deliver-Db2xqgLg.js → deliver-BUiQ-9fE.js} +20 -20
  79. package/dist/{deps-CjWcQwlX.js → deps-AEDT3iDX.js} +1 -1
  80. package/dist/{deps-CC5E5LXB.js → deps-B4J8H6nI.js} +6 -6
  81. package/dist/{deps-BotXja4Z.js → deps-Bq7jJLyN.js} +6 -6
  82. package/dist/{deps-DR1eh_L_.js → deps-Ch6bZ8PI.js} +1 -1
  83. package/dist/{devices-cli-B7fkQKei.js → devices-cli-DKK65S9Z.js} +7 -7
  84. package/dist/{diagnostic-BvlZ0Sot.js → diagnostic-4owMk4vH.js} +1 -1
  85. package/dist/{diagnostics-CdUgLS0N.js → diagnostics-DmZbQ8Nc.js} +5 -5
  86. package/dist/{directory-cli-BAMS8f9U.js → directory-cli-Dz9iXeut.js} +9 -9
  87. package/dist/{dns-cli-BdxBk-k_.js → dns-cli-DD6hWsdc.js} +4 -4
  88. package/dist/{dock-ejUetwTC.js → dock-BgOmHcbh.js} +6 -6
  89. package/dist/{dock-CzF5XYGd.js → dock-Y96MzKuM.js} +4 -4
  90. package/dist/{docs-cli-SF7es4Zs.js → docs-cli-cHkrTB2e.js} +4 -4
  91. package/dist/{doctor-completion-Co_xszXC.js → doctor-completion-CN5Zujsa.js} +2 -2
  92. package/dist/{doctor-completion-DFr8_h-z.js → doctor-completion-Clh5CNUd.js} +1 -1
  93. package/dist/{doctor-config-flow-8qXzBx09.js → doctor-config-flow-Ck4oCjfl.js} +14 -14
  94. package/dist/{emergency-stop-ChBe32HN.js → emergency-stop-2v4bhRCE.js} +2 -2
  95. package/dist/{emergency-stop-DtVFxCO1.js → emergency-stop-BtasjDnU.js} +70 -70
  96. package/dist/emergency-stop-CVO75pTD.js +113 -0
  97. package/dist/{emergency-stop-CDozqde9.js → emergency-stop-D_bTOufu.js} +2 -2
  98. package/dist/{enable-DaA_orGN.js → enable-o_s6PBsC.js} +1 -1
  99. package/dist/entry.js +1 -1
  100. package/dist/{env-q-PhWbb_.js → env-B5G1qwGc.js} +1 -1
  101. package/dist/{errors-C4SHjIZK.js → errors-C_0nm4TJ.js} +1 -1
  102. package/dist/{exec-approvals-allowlist-8AkOwwIr.js → exec-approvals-allowlist-Co2tJSEo.js} +1 -1
  103. package/dist/{exec-approvals-cli-CbcJzCt0.js → exec-approvals-cli-D6XUzs4j.js} +15 -15
  104. package/dist/{exec-safe-bin-runtime-policy-DYXuBKqH.js → exec-safe-bin-runtime-policy-DaoU9-ni.js} +2 -2
  105. package/dist/extensionAPI.js +2 -2
  106. package/dist/{fetch-guard-CcfDZXe9.js → fetch-guard-iuQsIjqN.js} +1 -1
  107. package/dist/{frontmatter-pTUG4Sx_.js → frontmatter-BOudmHMS.js} +2 -2
  108. package/dist/{fs-safe-2l05hI1Y.js → fs-safe-CYUaAFO9.js} +2 -2
  109. package/dist/{fs-safe-DNFrxDS-.js → fs-safe-_JQUGpZf.js} +15 -15
  110. package/dist/{gateway-cli-DjCBMnUT.js → gateway-cli-Cl7cEsHE.js} +9 -9
  111. package/dist/{gateway-cli-poVGdgAz.js → gateway-cli-DJm73Wou.js} +148 -148
  112. package/dist/{gateway-rpc-IpZymG6F.js → gateway-rpc-BBFG1T-M.js} +1 -1
  113. package/dist/{gemini-auth-DLSGffQK.js → gemini-auth-CIyaa44H.js} +2 -2
  114. package/dist/{github-copilot-token-BjmEQcmi.js → github-copilot-token-Dgt6cnsM.js} +7 -7
  115. package/dist/{health-lZsCLX6p.js → health-C6_Sa_ef.js} +13 -13
  116. package/dist/{health-HEN6Wk9G.js → health-D-b3jdnU.js} +1 -1
  117. package/dist/{hooks-cli-DFrttZGb.js → hooks-cli-BB25FyuN.js} +3 -3
  118. package/dist/{hooks-cli-EbzkZ1Xh.js → hooks-cli-BC3n8UYQ.js} +84 -84
  119. package/dist/{hooks-status-CPIWc_bx.js → hooks-status-DNGo2G8Q.js} +1 -1
  120. package/dist/{idlehands-root-DFL2GrNW.js → idlehands-root-B8cUs-5M.js} +8 -8
  121. package/dist/{image-Dlu13Ebx.js → image-D8b_rlQC.js} +6 -6
  122. package/dist/{image-C2JZiK-6.js → image-DSDEbSiO.js} +5 -5
  123. package/dist/{image-ops-J8P5zOFm.js → image-ops-BU-VdLZu.js} +2 -2
  124. package/dist/{image-ops-BkoEFRYH.js → image-ops-D1KtygWz.js} +11 -11
  125. package/dist/index.js +80 -80
  126. package/dist/{inspect-Dg16DMLn.js → inspect-ISQZuNM5.js} +4 -4
  127. package/dist/{install-safe-path-CNNMzJl9.js → install-safe-path-ChNR9pl6.js} +19 -19
  128. package/dist/{installs-ST3UaUVJ.js → installs-CNubze2L.js} +9 -9
  129. package/dist/{ir-BT5aAdU9.js → ir-B7IBoKLy.js} +5 -5
  130. package/dist/{ir-DV0Hszc8.js → ir-VncGpwA1.js} +6 -6
  131. package/dist/{lifecycle-core-DOScNyOv.js → lifecycle-core-B6UoqYTJ.js} +5 -5
  132. package/dist/llm-slug-generator.js +60 -60
  133. package/dist/{local-roots-d4y0lvs2.js → local-roots-KN4Hp1yZ.js} +5 -5
  134. package/dist/{local-roots-Cco87A2_.js → local-roots-q0xbefkf.js} +2 -2
  135. package/dist/{login-C2X0In6m.js → login-CFr5vJmR.js} +6 -6
  136. package/dist/{login-Dl_lsEHS.js → login-CfUhrgWT.js} +4 -4
  137. package/dist/{login-qr-C17PY0rr.js → login-qr-CFFFOjOl.js} +11 -11
  138. package/dist/{login-qr-B68cBRH0.js → login-qr-DBMsUxgL.js} +7 -7
  139. package/dist/{logs-cli-DHCG25JA.js → logs-cli-4VQ9Iwiw.js} +8 -8
  140. package/dist/{manager-CgzA1hKo.js → manager-BE_76jWB.js} +15 -15
  141. package/dist/{manager-BBeTPO2h.js → manager-BMAFgXyU.js} +13 -13
  142. package/dist/{manifest-registry-RfRn8HJx.js → manifest-registry-Bak1x76G.js} +1 -1
  143. package/dist/{markdown-tables-R8VTpfE9.js → markdown-tables-CzsockiZ.js} +1 -1
  144. package/dist/{markdown-tables-C5hTDqNm.js → markdown-tables-DZClqsNo.js} +1 -1
  145. package/dist/{memory-cli-4wfelGdK.js → memory-cli-CUGwnVIY.js} +12 -12
  146. package/dist/{message-channel-ZdI1-uUh.js → message-channel-C8QtrwEU.js} +1 -1
  147. package/dist/{model-Bd-05WpB.js → model-C-icShH2.js} +2 -2
  148. package/dist/{model-catalog-BCsDrrvq.js → model-catalog-D9no0CH2.js} +3 -3
  149. package/dist/{model-picker-D3U0wJCO.js → model-picker-BkXoTOiA.js} +4 -4
  150. package/dist/{model-selection-CSn9tUuH.js → model-selection-0dGxYGp8.js} +16 -16
  151. package/dist/{model-selection-C5hI1dum.js → model-selection-1MMYqY6M.js} +41 -41
  152. package/dist/{models-tZYpgts_.js → models-C1_Tdc1Q.js} +2 -2
  153. package/dist/{models-cli-umEUn4Xu.js → models-cli-B9yw60gV.js} +79 -79
  154. package/dist/{models-cli-DVAyIZ63.js → models-cli-Bs5ZNSbk.js} +4 -4
  155. package/dist/{models-config-lQpqp472.js → models-config-C5A1wDWh.js} +6 -6
  156. package/dist/{node-cli-7gQ7xfOh.js → node-cli-BYzjxmUY.js} +32 -32
  157. package/dist/{node-service-GpI0jzKr.js → node-service-C3vyxHLA.js} +1 -1
  158. package/dist/{nodes-cli-CDXLGCox.js → nodes-cli-kNOtp0U0.js} +14 -14
  159. package/dist/{nodes-screen-CIAn0wXq.js → nodes-screen-CcpPaFxa.js} +4 -4
  160. package/dist/{npm-registry-spec-BfeHLbIQ.js → npm-registry-spec-BCbbfIhX.js} +16 -16
  161. package/dist/{npm-resolution-By6en78P.js → npm-resolution-BMDipaRX.js} +3 -3
  162. package/dist/{npm-resolution-By6bZkA-.js → npm-resolution-yXJbqHHn.js} +1 -1
  163. package/dist/{onboard-Dw-URWpt.js → onboard-CYRoDnOI.js} +2 -2
  164. package/dist/{onboard-BmDmDXYf.js → onboard-DjbHK18p.js} +6 -6
  165. package/dist/{onboard-channels-DCDhpz9s.js → onboard-channels-CNQt2jFU.js} +20 -20
  166. package/dist/{onboard-channels-JPltbNGL.js → onboard-channels-CkxvodmR.js} +1 -1
  167. package/dist/{onboard-custom-D2sCP3_S.js → onboard-custom-DUbzMMu7.js} +4 -4
  168. package/dist/{onboard-helpers-CdzbIhrm.js → onboard-helpers-mzy38DiC.js} +8 -8
  169. package/dist/{onboard-hooks-_1Jgimeu.js → onboard-hooks-D9teGxfH.js} +4 -4
  170. package/dist/{onboard-remote-pCRaL_Ey.js → onboard-remote-LCBHijVE.js} +1 -1
  171. package/dist/{onboard-skills-DvwRvBvj.js → onboard-skills-jFY9gaOu.js} +4 -4
  172. package/dist/{onboarding-DIorhVOJ.js → onboarding-BEDOWI9h.js} +3 -3
  173. package/dist/{onboarding-Cf3JxJxY.js → onboarding-D9AZJlDK.js} +13 -13
  174. package/dist/{onboarding.finalize-BCmAqhLV.js → onboarding.finalize-D4hW1yTd.js} +7 -7
  175. package/dist/{onboarding.finalize-BH4WHo75.js → onboarding.finalize-DJxMkD2g.js} +82 -82
  176. package/dist/{onboarding.gateway-config-Sj7zQKsE.js → onboarding.gateway-config-Btu2gzgr.js} +16 -16
  177. package/dist/{openai-model-default-OPCCNNS0.js → openai-model-default-7J6cw1rA.js} +2 -2
  178. package/dist/{outbound-CdY_AskB.js → outbound-BNh6PpQb.js} +6 -6
  179. package/dist/{outbound-CG19kl0w.js → outbound-DPTxwchq.js} +4 -4
  180. package/dist/{outbound-attachment-jYdMgCml.js → outbound-attachment-3I6GzwDe.js} +2 -2
  181. package/dist/{outbound-attachment-IfeZJAKk.js → outbound-attachment-Bot3bRnK.js} +2 -2
  182. package/dist/{pairing-cli-QJYYDcIK.js → pairing-cli-jwx6hMsM.js} +10 -10
  183. package/dist/{pairing-labels-DuZ7ih-T.js → pairing-labels-ChQJzbS9.js} +1 -1
  184. package/dist/{pairing-store-qvpPoWL_.js → pairing-store-CPpEEQJO.js} +2 -2
  185. package/dist/{pairing-token-3hoCgQqp.js → pairing-token-lKXTMQ_M.js} +7 -7
  186. package/dist/{path-alias-guards-BZmt6hFb.js → path-alias-guards-Cu1nXNMM.js} +1 -1
  187. package/dist/{path-alias-guards-BCskHdfJ.js → path-alias-guards-FXBVVTLw.js} +3 -3
  188. package/dist/{path-safety-C1Y004P_.js → path-safety-DwibX65n.js} +1 -1
  189. package/dist/{paths-Bt0fZexW.js → paths-B-CLQ5RT.js} +9 -9
  190. package/dist/{paths-DQpv9a3Q.js → paths-BYNVLNi_.js} +5 -5
  191. package/dist/{paths-D3p7ZvM6.js → paths-D_qUel1T.js} +3 -3
  192. package/dist/{pi-embedded-mKozULng.js → pi-embedded-C6RDRgJM.js} +179 -179
  193. package/dist/{pi-embedded-helpers-BkzrQ5bZ.js → pi-embedded-helpers-BCsfqpDt.js} +6 -6
  194. package/dist/{pi-embedded-helpers-B3ceCcxm.js → pi-embedded-helpers-CghCLoPo.js} +24 -24
  195. package/dist/{pi-embedded-DMx6rHVL.js → pi-embedded-o6Xj8V4C.js} +11 -11
  196. package/dist/{pi-model-discovery-Bt79ifyi.js → pi-model-discovery-BIP3RjXl.js} +1 -1
  197. package/dist/{pi-model-discovery-Dlx4RLWo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
  198. package/dist/{pi-tools.policy-B_ME3yF6.js → pi-tools.policy-DfITIKZj.js} +5 -5
  199. package/dist/{plugin-auto-enable-BMuSi4aV.js → plugin-auto-enable-7DUxMy6A.js} +3 -3
  200. package/dist/{plugin-registry-BY85d-vE.js → plugin-registry-6C1sgAm1.js} +1 -1
  201. package/dist/{plugin-registry-BIoGoN5y.js → plugin-registry-DIK-5KI9.js} +3 -3
  202. package/dist/plugin-sdk/{agent-via-gateway-CXtWg-qx.js → agent-via-gateway-DmQMFWNE.js} +2 -2
  203. package/dist/plugin-sdk/{anton-CGYTy9vy.js → anton-CrjFisFZ.js} +32 -17
  204. package/dist/plugin-sdk/{channel-web-EFRSObCG.js → channel-web-vQgHbtCG.js} +2 -2
  205. package/dist/plugin-sdk/{deps-qZxPlSgp.js → deps-DfyALwFG.js} +1 -1
  206. package/dist/plugin-sdk/{emergency-stop-CxcBz-aQ.js → emergency-stop-0ZrbH3D4.js} +2 -2
  207. package/dist/plugin-sdk/index.js +3 -3
  208. package/dist/plugin-sdk/{reply-nUO1aM3T.js → reply-BfdVf3fw.js} +11 -11
  209. package/dist/plugin-sdk/{web-CEtAvhaI.js → web-DwDLI7GP.js} +3 -3
  210. package/dist/{plugins-DYr-HHj0.js → plugins-CRB60mCJ.js} +10 -10
  211. package/dist/{plugins-B4hASNc2.js → plugins-D46VZh7u.js} +2 -2
  212. package/dist/{plugins-cli-Dlb8QO-K.js → plugins-cli-B1kN2Xze.js} +80 -80
  213. package/dist/{plugins-cli-RFXGkaxP.js → plugins-cli-DFUxLQbB.js} +3 -3
  214. package/dist/{ports-B07M55Gr.js → ports-B2o0FSFD.js} +1 -1
  215. package/dist/{ports-DWJO5S52.js → ports-SQy1d-RL.js} +2 -2
  216. package/dist/{program-context-B_byBfwR.js → program-context-CjyGlgVG.js} +43 -43
  217. package/dist/{program-Do2-I4y3.js → program-mmjp27H4.js} +8 -8
  218. package/dist/{prompt-select-styled-VWGHu3e1.js → prompt-select-styled-04TKk_r3.js} +4 -4
  219. package/dist/{prompt-select-styled-CBF_I30O.js → prompt-select-styled-FskTiqWw.js} +37 -37
  220. package/dist/{provider-auth-helpers-BCc5UtUa.js → provider-auth-helpers-9IcvdTst.js} +1 -1
  221. package/dist/{provider-auth-helpers-BGGSUXOH.js → provider-auth-helpers-BI7MVWjD.js} +5 -5
  222. package/dist/{push-apns-CHmvuoMu.js → push-apns-Bh0u21Bh.js} +1 -1
  223. package/dist/{push-apns-CuwLAoXk.js → push-apns-DvSYSWvk.js} +5 -5
  224. package/dist/{pw-ai-BGALvhDi.js → pw-ai-7i9eGnLh.js} +11 -11
  225. package/dist/{pw-ai-DIV4PcIo.js → pw-ai-CfYaR1K2.js} +13 -13
  226. package/dist/{qmd-manager-CVcPfkhL.js → qmd-manager-B-qeywfQ.js} +19 -19
  227. package/dist/{qmd-manager-BRvg3Rx2.js → qmd-manager-B_GgyQQ0.js} +8 -8
  228. package/dist/{qr-cli-D2Oh8f0U.js → qr-cli-CSt5ihwG.js} +1 -1
  229. package/dist/{query-expansion-i5I3yavb.js → query-expansion-Clts_AGz.js} +12 -12
  230. package/dist/{query-expansion-DHuNyU-_.js → query-expansion-DEq020GG.js} +5 -5
  231. package/dist/{redact-1Y0KPNtr.js → redact-Bvpf-ATQ.js} +1 -1
  232. package/dist/{redact-snapshot-KMo22a85.js → redact-snapshot-BbEVKv0k.js} +1 -1
  233. package/dist/{register.agent-Dx7ULz49.js → register.agent-B3zUfhl9.js} +9 -9
  234. package/dist/{register.agent-CDcuj79y.js → register.agent-BSe92Zxh.js} +95 -95
  235. package/dist/register.configure-DZ9OCp0V.js +168 -0
  236. package/dist/{register.configure-BctHAiWh.js → register.configure-N4JG5hVe.js} +8 -8
  237. package/dist/{register.maintenance-BcFR1fGQ.js → register.maintenance-BjhkxF3o.js} +9 -9
  238. package/dist/{register.maintenance-wv8PzmVy.js → register.maintenance-DxauQqK_.js} +90 -90
  239. package/dist/{register.message-DUAiI9J7.js → register.message-BsMpRFVr.js} +71 -71
  240. package/dist/{register.message-BLScF2fV.js → register.message-DoZ5i1Pn.js} +3 -3
  241. package/dist/{register.onboard-BMNBXD29.js → register.onboard-Cw3wNQRm.js} +2 -2
  242. package/dist/{register.onboard-F09brfSb.js → register.onboard-Hxi3l9IA.js} +18 -18
  243. package/dist/{register.orchestrator-anton-CGhKIDjJ.js → register.orchestrator-anton-BqQfw2JX.js} +14 -14
  244. package/dist/{register.orchestrator-anton-Tn_RaMLq.js → register.orchestrator-anton-DOByOKzU.js} +2 -2
  245. package/dist/{register.setup-jzek547p.js → register.setup-dazD7bl3.js} +21 -21
  246. package/dist/{register.setup-DqbGSLoJ.js → register.setup-r5Xy4nv4.js} +2 -2
  247. package/dist/{register.status-health-sessions-ByfydR_f.js → register.status-health-sessions-3zjBM0m6.js} +82 -82
  248. package/dist/{register.status-health-sessions-wbopjGL-.js → register.status-health-sessions-DobZ2G2u.js} +4 -4
  249. package/dist/{register.subclis-CuNL7Zgu.js → register.subclis-CGJxYP3h.js} +9 -9
  250. package/dist/{replies-2C16fnBP.js → replies-6_GxvQYe.js} +3 -3
  251. package/dist/{replies-Czp4hvpS.js → replies-hSFVxL4h.js} +1 -1
  252. package/dist/{reply-CdFdL9nL.js → reply-BDr-UY9O.js} +153 -153
  253. package/dist/{reply-prefix-DCljZiIB.js → reply-prefix-BUgeSN2R.js} +1 -1
  254. package/dist/{reply-prefix-BMEdvSpA.js → reply-prefix-C3y4zpTl.js} +1 -1
  255. package/dist/{resolve-route-Ef_Yt2Dw.js → resolve-route-D_AbcmD6.js} +2 -2
  256. package/dist/{resolve-route-ClcifpKn.js → resolve-route-DuttYY7A.js} +4 -4
  257. package/dist/{retry-CG6cMRDQ.js → retry-BeB9WenR.js} +1 -1
  258. package/dist/{rpc-CNqnw2FL.js → rpc-Cf9OK5Yk.js} +1 -1
  259. package/dist/{run-main-9A7FdIR1.js → run-main-BDEztzfx.js} +15 -15
  260. package/dist/{runner-BFG54hnb.js → runner-DzszLzI4.js} +20 -20
  261. package/dist/{runner-BkCU-kqs.js → runner-PgRFPYUj.js} +11 -11
  262. package/dist/{runtime-DEmy759r.js → runtime-XmXLaHNk.js} +2 -2
  263. package/dist/{sandbox-CfPbhDY_.js → sandbox-DcUw5h3p.js} +20 -20
  264. package/dist/{sandbox-cli-B4wLJr21.js → sandbox-cli-DGvJ7Eeq.js} +22 -22
  265. package/dist/{secrets-cli-DP718vNZ.js → secrets-cli-CR3h2TBy.js} +9 -9
  266. package/dist/{security-cli-CG2_SV7b.js → security-cli-B9_LV2po.js} +39 -39
  267. package/dist/{send-DDMaLJAQ.js → send--lzpNy4f.js} +7 -7
  268. package/dist/{send-DZa8fWSm.js → send-BeIZJuy4.js} +7 -7
  269. package/dist/{send-Y1hD4tQ1.js → send-C1hvd3bt.js} +6 -6
  270. package/dist/{send-BCPkAE2k.js → send-C4v0Leny.js} +6 -6
  271. package/dist/{send-BOxJ4QXF.js → send-D4bMycQu.js} +7 -7
  272. package/dist/{send-CEavqqEz.js → send-DQiw_nGD.js} +6 -6
  273. package/dist/{send-FLdrx-oF.js → send-Dfa3sn6r.js} +24 -24
  274. package/dist/{send-IlPMLAH-.js → send-DmLC7aEF.js} +10 -10
  275. package/dist/{send-BPwTl4-K.js → send-DuwdEkLw.js} +4 -4
  276. package/dist/{send-CVIXqubC.js → send-DwdHiC7_.js} +13 -13
  277. package/dist/{server-BpSbZAwg.js → server-D6MltJIF.js} +14 -14
  278. package/dist/{server-context-BxNSTpH6.js → server-context-DI0W_H7R.js} +10 -10
  279. package/dist/{server-lifecycle-CGKrGrhM.js → server-lifecycle-B5PlrlbG.js} +2 -2
  280. package/dist/{server-node-events-CbVkqOtV.js → server-node-events-BL1dTBEr.js} +3 -3
  281. package/dist/{server-node-events-BSPxvn7O.js → server-node-events-C69TPlKW.js} +71 -71
  282. package/dist/{service-Bj2oSfpw.js → service-C8NMS3m_.js} +15 -15
  283. package/dist/{session-BKVySI8q.js → session-CdnrRhb4.js} +1 -1
  284. package/dist/{session-nUPBXeEa.js → session-F_YDS_1V.js} +7 -7
  285. package/dist/{sessions-DRA4oaxz.js → sessions-3ioSeOA1.js} +41 -41
  286. package/dist/{sessions-BqWocozB.js → sessions-BtPXimXQ.js} +14 -14
  287. package/dist/{shared-DnQ4iyXk.js → shared-CpDPo3hJ.js} +2 -2
  288. package/dist/{shared-Jzrx8DfN.js → shared-DpLSpJIl.js} +1 -1
  289. package/dist/{skill-commands-BwIRWSCI.js → skill-commands-BFzmZAfo.js} +5 -5
  290. package/dist/{skill-commands-BHTBXXVn.js → skill-commands-Ck3flWX7.js} +9 -9
  291. package/dist/{skill-scanner-B4Ftsbd2.js → skill-scanner-D7mzXRXd.js} +5 -5
  292. package/dist/{skills-umlGvChF.js → skills-CnAPWfca.js} +22 -22
  293. package/dist/{skills-TIyQDZx7.js → skills-DlvDyK8L.js} +3 -3
  294. package/dist/{skills-cli-5lbXi4Lh.js → skills-cli-BhKGhjbO.js} +5 -5
  295. package/dist/{skills-install-D0JHP5uM.js → skills-install-tr6wRWZj.js} +4 -4
  296. package/dist/{skills-status-Q9skQExW.js → skills-status-qjQ8XP0h.js} +1 -1
  297. package/dist/{status-ClMOrHdT.js → status-AEwcpHsu.js} +2 -2
  298. package/dist/{status-YWasgjym.js → status-B8z0RCPf.js} +24 -24
  299. package/dist/{status.update-C3uRz7W6.js → status.update-CTi6vuWj.js} +2 -2
  300. package/dist/{store-D-ZicQeo.js → store-CvMgrKWx.js} +2 -2
  301. package/dist/{store-CLNuI8-G.js → store-kH9wHHbO.js} +5 -5
  302. package/dist/{subagent-registry-BH5O1rxK.js → subagent-registry-Dclk-Ews.js} +11 -11
  303. package/dist/{subsystem-D7ZepYT1.js → subsystem-tzu-rIAJ.js} +1 -1
  304. package/dist/{system-cli-BfjZ6QvH.js → system-cli-DyVZ5udc.js} +8 -8
  305. package/dist/{system-run-approval-context-xZVoE4nS.js → system-run-approval-context-CISBXlNw.js} +1 -1
  306. package/dist/{system-run-command-BIhrK3OI.js → system-run-command-qJdgzxLp.js} +1 -1
  307. package/dist/{systemd-DyrVLTI0.js → systemd-CaCR5CyM.js} +9 -9
  308. package/dist/{systemd-hints-BoKKzRI_.js → systemd-hints-DHu-HVFx.js} +6 -6
  309. package/dist/{systemd-linger-DrhGd61G.js → systemd-linger-B7XlUHk_.js} +1 -1
  310. package/dist/{tables-Co_R_WKs.js → tables-5k-zOZ-s.js} +1 -1
  311. package/dist/{tables-CZSD889r.js → tables-g9xkflht.js} +1 -1
  312. package/dist/{target-errors-B1mcM4WR.js → target-errors-BPfQrPim.js} +2 -2
  313. package/dist/{target-errors-BYuWhuLU.js → target-errors-bLIVFsbF.js} +4 -4
  314. package/dist/{tokens-DGajj8M9.js → tokens-BRLyURxW.js} +1 -1
  315. package/dist/{tool-images-DZHrc4pq.js → tool-images-CHqepyF_.js} +1 -1
  316. package/dist/{tool-images-Duuqr4bN.js → tool-images-CcGZpzmq.js} +2 -2
  317. package/dist/{tool-loop-detection-CjWRg_4q.js → tool-loop-detection-BNGetx3Z.js} +3 -3
  318. package/dist/{tui-B2bAseIB.js → tui-Bne3YNiw.js} +6 -6
  319. package/dist/{tui-cli-cewAjqAk.js → tui-cli-D0Z-rcUe.js} +30 -30
  320. package/dist/{update-la2AdLf3.js → update-D79ppbMQ.js} +3 -3
  321. package/dist/{update-cli-D7gDHoEE.js → update-cli-8Tk6PCmD.js} +99 -99
  322. package/dist/{update-cli-Cxp_mYOH.js → update-cli-Bobm67f-.js} +9 -9
  323. package/dist/{update-runner-DRglQgXe.js → update-runner-B4xzPa4-.js} +15 -15
  324. package/dist/{update-runner-tu2Aiphu.js → update-runner-C4NjVy9-.js} +1 -1
  325. package/dist/{upgrade-command-28wRHZZ2.js → upgrade-command-909a7QUc.js} +3 -3
  326. package/dist/{utils-D9wGoiU9.js → utils-CTFLl_ji.js} +18 -18
  327. package/dist/{web-aRaB-CvF.js → web-9J12F46d.js} +3 -3
  328. package/dist/{web-BxegDO-S.js → web-DPSpgc_K.js} +3 -3
  329. package/dist/web-Dqy4kqC9.js +123 -0
  330. package/dist/{web-BuIXrrsp.js → web-NzOJcvWO.js} +66 -66
  331. package/dist/{webhooks-cli-BnmVPYkU.js → webhooks-cli-2N03q0iY.js} +6 -6
  332. package/dist/{whatsapp-actions-D2mBFzmK.js → whatsapp-actions-Cms8wQM1.js} +18 -18
  333. package/dist/{whatsapp-actions-BJ6kVDXi.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
  334. package/dist/{with-timeout-BodPmGCY.js → with-timeout-DEdycYxq.js} +3 -3
  335. package/dist/{workspace-CDw87aZG.js → workspace-D3pARwoB.js} +1 -1
  336. package/dist/{workspace-tAtkoD_r.js → workspace-DBFSzT6O.js} +18 -18
  337. package/dist/{workspace-dirs-D3bousoX.js → workspace-dirs-SsExQ3Bz.js} +1 -1
  338. package/dist/{wsl-CgXDjE09.js → wsl-BJW8nTyL.js} +2 -2
  339. package/extensions/acpx/package.json +1 -1
  340. package/extensions/bluebubbles/package.json +1 -1
  341. package/extensions/copilot-proxy/package.json +1 -1
  342. package/extensions/diagnostics-otel/package.json +1 -1
  343. package/extensions/discord/package.json +1 -1
  344. package/extensions/feishu/package.json +1 -1
  345. package/extensions/google-gemini-cli-auth/package.json +1 -1
  346. package/extensions/googlechat/package.json +1 -1
  347. package/extensions/hand/package.json +1 -1
  348. package/extensions/imessage/package.json +1 -1
  349. package/extensions/irc/package.json +1 -1
  350. package/extensions/line/package.json +1 -1
  351. package/extensions/llm-task/package.json +1 -1
  352. package/extensions/matrix/CHANGELOG.md +6 -0
  353. package/extensions/matrix/package.json +1 -1
  354. package/extensions/mattermost/package.json +1 -1
  355. package/extensions/memory-core/package.json +1 -1
  356. package/extensions/memory-lancedb/package.json +1 -1
  357. package/extensions/minimax-portal-auth/package.json +1 -1
  358. package/extensions/msteams/CHANGELOG.md +6 -0
  359. package/extensions/msteams/package.json +1 -1
  360. package/extensions/nextcloud-talk/package.json +1 -1
  361. package/extensions/nostr/CHANGELOG.md +6 -0
  362. package/extensions/nostr/package.json +1 -1
  363. package/extensions/open-prose/package.json +1 -1
  364. package/extensions/signal/package.json +1 -1
  365. package/extensions/slack/package.json +1 -1
  366. package/extensions/synology-chat/package.json +1 -1
  367. package/extensions/telegram/package.json +1 -1
  368. package/extensions/tlon/package.json +1 -1
  369. package/extensions/twitch/CHANGELOG.md +6 -0
  370. package/extensions/twitch/package.json +1 -1
  371. package/extensions/voice-call/CHANGELOG.md +6 -0
  372. package/extensions/voice-call/package.json +1 -1
  373. package/extensions/whatsapp/package.json +1 -1
  374. package/extensions/zalo/CHANGELOG.md +6 -0
  375. package/extensions/zalo/package.json +1 -1
  376. package/extensions/zalouser/CHANGELOG.md +6 -0
  377. package/extensions/zalouser/package.json +1 -1
  378. package/package.json +1 -1
  379. package/dist/anton-D9tZAGaj.js +0 -777
  380. package/dist/emergency-stop-DyQna_P0.js +0 -113
  381. package/dist/register.configure-CxwdWRSG.js +0 -168
  382. package/dist/web-DESq0zCM.js +0 -123
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DVauVtrg.js";
2
- import { n as callGateway } from "./call-Du-oBD99.js";
2
+ import { n as callGateway } from "./call-BpWhjuOg.js";
3
3
  import { n as withProgress } from "./progress-BQLz1r3L.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts
@@ -1,5 +1,5 @@
1
- import { c as normalizeProviderId } from "./model-selection-C5hI1dum.js";
2
- import { n as formatErrorMessage } from "./errors-C4SHjIZK.js";
1
+ import { c as normalizeProviderId } from "./model-selection-1MMYqY6M.js";
2
+ import { n as formatErrorMessage } from "./errors-C_0nm4TJ.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
5
5
  const KEY_SPLIT_RE = /[\s,;]+/g;
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { d as resolveStateDir } from "./paths-DQpv9a3Q.js";
2
+ import { d as resolveStateDir } from "./paths-BYNVLNi_.js";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
4
+ import syncFs from "node:fs";
5
5
 
6
6
  //#region src/infra/json-file.ts
7
7
  function loadJsonFile(pathname) {
8
8
  try {
9
- if (!fs.existsSync(pathname)) return;
10
- const raw = fs.readFileSync(pathname, "utf8");
9
+ if (!syncFs.existsSync(pathname)) return;
10
+ const raw = syncFs.readFileSync(pathname, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return;
@@ -15,12 +15,12 @@ function loadJsonFile(pathname) {
15
15
  }
16
16
  function saveJsonFile(pathname, data) {
17
17
  const dir = path.dirname(pathname);
18
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, {
18
+ if (!syncFs.existsSync(dir)) syncFs.mkdirSync(dir, {
19
19
  recursive: true,
20
20
  mode: 448
21
21
  });
22
- fs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
- fs.chmodSync(pathname, 384);
22
+ syncFs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
+ syncFs.chmodSync(pathname, 384);
24
24
  }
25
25
 
26
26
  //#endregion
@@ -1,26 +1,26 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-CXzXXV2o.js";
3
- import { Bn as buildOutboundSessionContext, Dr as requestHeartbeatNow, Ft as resolveHeartbeatDeliveryTarget, It as resolveHeartbeatSenderContext, Or as setHeartbeatWakeHandler, Tr as peekSystemEventEntries, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, kr as resolveHeartbeatReasonKind, lr as getQueueSize, qn as resolveUserTimezone, r as appendCronStyleCurrentTimeLine, t as getReplyFromConfig, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./reply-CdFdL9nL.js";
4
- import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-Bn39ugK4.js";
3
+ import { Bn as buildOutboundSessionContext, Dr as requestHeartbeatNow, Ft as resolveHeartbeatDeliveryTarget, It as resolveHeartbeatSenderContext, Or as setHeartbeatWakeHandler, Tr as peekSystemEventEntries, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, kr as resolveHeartbeatReasonKind, lr as getQueueSize, qn as resolveUserTimezone, r as appendCronStyleCurrentTimeLine, t as getReplyFromConfig, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./reply-BDr-UY9O.js";
4
+ import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-RA0zXRpu.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
6
6
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
7
7
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-Cuihcz_O.js";
8
- import { It as loadConfig, cn as parseDurationMs } from "./model-selection-CSn9tUuH.js";
8
+ import { It as loadConfig, cn as parseDurationMs } from "./model-selection-0dGxYGp8.js";
9
9
  import { t as isTruthyEnvValue } from "./env-Bx-F45X5.js";
10
10
  import { i as hasErrnoCode, n as formatErrorMessage } from "./errors-DZDuPc3M.js";
11
- import { Q as resolveAgentMainSessionKey, Z as canonicalizeMainSessionAlias, c as loadSessionStore, g as updateSessionStore, p as saveSessionStore } from "./sessions-BqWocozB.js";
12
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-B4hASNc2.js";
13
- import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-DZjkLUU_.js";
11
+ import { Q as resolveAgentMainSessionKey, Z as canonicalizeMainSessionAlias, c as loadSessionStore, g as updateSessionStore, p as saveSessionStore } from "./sessions-BtPXimXQ.js";
12
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-D46VZh7u.js";
13
+ import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-B59Q7nsk.js";
14
14
  import { i as resolveSessionFilePath, u as resolveStorePath } from "./paths-DRz46q00.js";
15
15
  import { t as HEARTBEAT_TOKEN } from "./tokens-Dg-QZ_pN.js";
16
- import { t as deliverOutboundPayloads } from "./deliver-yTpXc5sv.js";
17
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-Du-oBD99.js";
18
- import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-BMEdvSpA.js";
16
+ import { t as deliverOutboundPayloads } from "./deliver--kttnrER.js";
17
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BpWhjuOg.js";
18
+ import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-C3y4zpTl.js";
19
19
  import { n as withProgress } from "./progress-BQLz1r3L.js";
20
20
  import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-CVWq9u04.js";
21
21
  import { t as resolveChannelDefaultAccountId } from "./helpers-C6eW1WGZ.js";
22
22
  import path from "node:path";
23
- import fsPromises from "node:fs/promises";
23
+ import fs from "node:fs/promises";
24
24
 
25
25
  //#region src/infra/heartbeat-active-hours.ts
26
26
  const ACTIVE_HOURS_TIME_PATTERN = /^(?:([01]\d|2[0-3]):([0-5]\d)|24:00)$/;
@@ -314,7 +314,7 @@ async function pruneHeartbeatTranscript(params) {
314
314
  const { transcriptPath, preHeartbeatSize } = params;
315
315
  if (!transcriptPath || typeof preHeartbeatSize !== "number" || preHeartbeatSize < 0) return;
316
316
  try {
317
- if ((await fsPromises.stat(transcriptPath)).size > preHeartbeatSize) await fsPromises.truncate(transcriptPath, preHeartbeatSize);
317
+ if ((await fs.stat(transcriptPath)).size > preHeartbeatSize) await fs.truncate(transcriptPath, preHeartbeatSize);
318
318
  } catch {}
319
319
  }
320
320
  /**
@@ -332,7 +332,7 @@ async function captureTranscriptState(params) {
332
332
  });
333
333
  return {
334
334
  transcriptPath,
335
- preHeartbeatSize: (await fsPromises.stat(transcriptPath)).size
335
+ preHeartbeatSize: (await fs.stat(transcriptPath)).size
336
336
  };
337
337
  } catch {
338
338
  return {};
@@ -389,7 +389,7 @@ async function resolveHeartbeatPreflight(params) {
389
389
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
390
390
  const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
391
391
  try {
392
- if (isHeartbeatContentEffectivelyEmpty(await fsPromises.readFile(heartbeatFilePath, "utf-8"))) return {
392
+ if (isHeartbeatContentEffectivelyEmpty(await fs.readFile(heartbeatFilePath, "utf-8"))) return {
393
393
  ...basePreflight,
394
394
  skipReason: "empty-heartbeat-file"
395
395
  };
@@ -7,7 +7,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
7
7
  import { $ as canonicalizeMainSessionAlias, c as loadSessionStore, et as resolveAgentMainSessionKey, g as updateSessionStore, p as saveSessionStore } from "./sessions-BoqJKVEs.js";
8
8
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CCrfZ49T.js";
9
9
  import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-Ch_2VM9i.js";
10
- import { An as requestHeartbeatNow, Dr as isHeartbeatContentEffectivelyEmpty, Er as DEFAULT_HEARTBEAT_EVERY, Mn as resolveHeartbeatReasonKind, On as peekSystemEventEntries, Or as resolveHeartbeatPrompt$1, Tr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, bn as buildOutboundSessionContext, et as getReplyFromConfig, jn as setHeartbeatWakeHandler, kr as stripHeartbeatToken, mt as resolveHeartbeatSenderContext, nr as resolveUserTimezone, nt as appendCronStyleCurrentTimeLine, pt as resolveHeartbeatDeliveryTarget, vr as getQueueSize, wr as CommandLane } from "./subagent-registry-BH5O1rxK.js";
10
+ import { An as requestHeartbeatNow, Dr as isHeartbeatContentEffectivelyEmpty, Er as DEFAULT_HEARTBEAT_EVERY, Mn as resolveHeartbeatReasonKind, On as peekSystemEventEntries, Or as resolveHeartbeatPrompt$1, Tr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, bn as buildOutboundSessionContext, et as getReplyFromConfig, jn as setHeartbeatWakeHandler, kr as stripHeartbeatToken, mt as resolveHeartbeatSenderContext, nr as resolveUserTimezone, nt as appendCronStyleCurrentTimeLine, pt as resolveHeartbeatDeliveryTarget, vr as getQueueSize, wr as CommandLane } from "./subagent-registry-Dclk-Ews.js";
11
11
  import { i as resolveSessionFilePath, u as resolveStorePath } from "./paths-CC17i2eK.js";
12
12
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C82rD2Wn.js";
13
13
  import { t as HEARTBEAT_TOKEN } from "./tokens-DMP8C42Q.js";
@@ -28,7 +28,7 @@ import "./logging-Bgrm4o7g.js";
28
28
  import "./auth-store-D9BmR4S6.js";
29
29
  import "./send-m4lQkQcY.js";
30
30
  import "./send-CCiDIuX4.js";
31
- import "./subagent-registry-BH5O1rxK.js";
31
+ import "./subagent-registry-Dclk-Ews.js";
32
32
  import "./paths-CC17i2eK.js";
33
33
  import "./chat-envelope-Dedaetiq.js";
34
34
  import "./client-udFMSDes.js";
@@ -111,7 +111,7 @@ import "./cli-utils-BfsDuRZS.js";
111
111
  import "./help-format-CldHB7lS.js";
112
112
  import "./progress-B76RkFx7.js";
113
113
  import "./replies-DSfpze17.js";
114
- import "./deps-CjWcQwlX.js";
114
+ import "./deps-AEDT3iDX.js";
115
115
  import "./onboard-helpers-DWivfzcc.js";
116
116
  import "./prompt-style-XmK49QYK.js";
117
117
  import "./pairing-labels-D7xcHkxi.js";
@@ -120,7 +120,7 @@ import { a as resolveInstallModeOptions, c as withExtractedArchiveRoot, i as ins
120
120
  import { t as renderTable } from "./table-aJzHv5Oe.js";
121
121
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-Dj1dL0rI.js";
122
122
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DdEXLhj3.js";
123
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-By6bZkA-.js";
123
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-yXJbqHHn.js";
124
124
  import path from "node:path";
125
125
  import fs from "node:fs";
126
126
  import fs$1 from "node:fs/promises";
@@ -1,13 +1,13 @@
1
1
  import "./paths-Cn44w-EB.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-CXzXXV2o.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-CdFdL9nL.js";
5
- import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-Bn39ugK4.js";
4
+ import "./reply-BDr-UY9O.js";
5
+ import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-RA0zXRpu.js";
6
6
  import "./subsystem-CGZX2PBV.js";
7
7
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
8
- import "./idlehands-root-DFL2GrNW.js";
8
+ import "./idlehands-root-B8cUs-5M.js";
9
9
  import "./exec-CKHMT0tZ.js";
10
- import { Ht as writeConfigFile, It as loadConfig } from "./model-selection-CSn9tUuH.js";
10
+ import { Ht as writeConfigFile, It as loadConfig } from "./model-selection-0dGxYGp8.js";
11
11
  import "./github-copilot-token-D7lpquOO.js";
12
12
  import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
13
13
  import "./boolean-BsqeuxE6.js";
@@ -15,118 +15,118 @@ import "./env-Bx-F45X5.js";
15
15
  import "./host-env-security-DkAVVuaw.js";
16
16
  import "./env-vars-sTMVGyld.js";
17
17
  import { n as isPathInside, r as isPathInsideWithRealpath } from "./scan-paths-DE00o1Lk.js";
18
- import "./manifest-registry-RfRn8HJx.js";
18
+ import "./manifest-registry-Bak1x76G.js";
19
19
  import { n as MANIFEST_KEY } from "./legacy-names-DB161qHh.js";
20
- import "./dock-CzF5XYGd.js";
20
+ import "./dock-Y96MzKuM.js";
21
21
  import "./message-channel-DVauVtrg.js";
22
- import "./send-CVIXqubC.js";
23
- import "./runner-BFG54hnb.js";
24
- import "./image-C2JZiK-6.js";
25
- import "./models-config-lQpqp472.js";
26
- import "./pi-model-discovery-Bt79ifyi.js";
27
- import "./pi-embedded-helpers-BkzrQ5bZ.js";
28
- import "./sandbox-CfPbhDY_.js";
22
+ import "./send-DwdHiC7_.js";
23
+ import "./runner-DzszLzI4.js";
24
+ import "./image-DSDEbSiO.js";
25
+ import "./models-config-C5A1wDWh.js";
26
+ import "./pi-model-discovery-BIP3RjXl.js";
27
+ import "./pi-embedded-helpers-BCsfqpDt.js";
28
+ import "./sandbox-DcUw5h3p.js";
29
29
  import "./tool-catalog-4_Wxc542.js";
30
- import "./chrome-YguTEaLx.js";
30
+ import "./chrome-VBsQfIrt.js";
31
31
  import { u as promptYesNo } from "./tailscale-B5Irc_Bi.js";
32
32
  import "./ip-DJ5wsTQn.js";
33
33
  import "./tailnet-C9lH_YnG.js";
34
34
  import "./ws-XBTtYpJc.js";
35
35
  import "./auth-heRVBxh2.js";
36
- import "./server-context-BxNSTpH6.js";
36
+ import "./server-context-DI0W_H7R.js";
37
37
  import "./frontmatter-D-sQ_Hqk.js";
38
- import "./skills-TIyQDZx7.js";
39
- import "./path-alias-guards-BCskHdfJ.js";
40
- import "./paths-Bt0fZexW.js";
38
+ import "./skills-DlvDyK8L.js";
39
+ import "./path-alias-guards-FXBVVTLw.js";
40
+ import "./paths-B-CLQ5RT.js";
41
41
  import "./redact-B_4KNlXs.js";
42
42
  import "./errors-DZDuPc3M.js";
43
- import "./fs-safe-DNFrxDS-.js";
43
+ import "./fs-safe-_JQUGpZf.js";
44
44
  import "./ssrf-Dw9zzKSM.js";
45
- import "./image-ops-BkoEFRYH.js";
46
- import "./store-CLNuI8-G.js";
47
- import "./ports-DWJO5S52.js";
45
+ import "./image-ops-BU-VdLZu.js";
46
+ import "./store-kH9wHHbO.js";
47
+ import "./ports-SQy1d-RL.js";
48
48
  import "./trash-CUFiyQN5.js";
49
49
  import "./server-middleware-BC21xYvr.js";
50
- import "./sessions-BqWocozB.js";
51
- import "./plugins-B4hASNc2.js";
52
- import "./accounts-D-hQsUw-.js";
53
- import "./accounts-DsVN0UNw.js";
54
- import "./accounts-D87a1Y_K.js";
55
- import "./bindings-DZjkLUU_.js";
50
+ import "./sessions-BtPXimXQ.js";
51
+ import "./plugins-D46VZh7u.js";
52
+ import "./accounts-DLTODa_Z.js";
53
+ import "./accounts-3HS_UAhJ.js";
54
+ import "./accounts-DgbTKQoW.js";
55
+ import "./bindings-B59Q7nsk.js";
56
56
  import "./logging-q4KyMmY-.js";
57
- import "./auth-store-CMyrmmSF.js";
58
- import "./send-BPwTl4-K.js";
57
+ import "./auth-store-DDzIMy8_.js";
58
+ import "./send-DuwdEkLw.js";
59
59
  import "./paths-DRz46q00.js";
60
60
  import "./chat-envelope-Bebo3vwl.js";
61
- import "./tool-images-DZHrc4pq.js";
61
+ import "./tool-images-CHqepyF_.js";
62
62
  import "./tool-display-Dac7lHGW.js";
63
63
  import "./fetch-guard-yUZu1Vzc.js";
64
- import "./api-key-rotation-nXQVJErE.js";
65
- import "./local-roots-Cco87A2_.js";
66
- import "./model-catalog-BCsDrrvq.js";
64
+ import "./api-key-rotation-B-FTJm5p.js";
65
+ import "./local-roots-q0xbefkf.js";
66
+ import "./model-catalog-D9no0CH2.js";
67
67
  import "./tokens-Dg-QZ_pN.js";
68
- import "./deliver-yTpXc5sv.js";
69
- import "./commands-D3BU_t7G.js";
70
- import "./commands-registry-Cj4D_1tw.js";
71
- import "./client-Dl5EAvfO.js";
72
- import "./call-Du-oBD99.js";
73
- import "./pairing-token-3hoCgQqp.js";
68
+ import "./deliver--kttnrER.js";
69
+ import "./commands-Dj5LalLo.js";
70
+ import "./commands-registry-CURlRZQJ.js";
71
+ import "./client-DtnD-ee9.js";
72
+ import "./call-BpWhjuOg.js";
73
+ import "./pairing-token-lKXTMQ_M.js";
74
74
  import "./fetch-CYe1ekSh.js";
75
75
  import "./retry-Db05aSB8.js";
76
- import "./pairing-store-qvpPoWL_.js";
76
+ import "./pairing-store-CPpEEQJO.js";
77
77
  import "./exec-approvals-C2s2dPha.js";
78
- import "./exec-approvals-allowlist-8AkOwwIr.js";
79
- import "./exec-safe-bin-runtime-policy-DYXuBKqH.js";
80
- import "./nodes-screen-CIAn0wXq.js";
81
- import "./target-errors-BYuWhuLU.js";
78
+ import "./exec-approvals-allowlist-Co2tJSEo.js";
79
+ import "./exec-safe-bin-runtime-policy-DaoU9-ni.js";
80
+ import "./nodes-screen-CcpPaFxa.js";
81
+ import "./target-errors-bLIVFsbF.js";
82
82
  import "./diagnostic-session-state-CJHdRyOy.js";
83
- import "./with-timeout-BodPmGCY.js";
83
+ import "./with-timeout-DEdycYxq.js";
84
84
  import "./diagnostic-ByHpt6q8.js";
85
- import "./send-DDMaLJAQ.js";
86
- import "./model-Bd-05WpB.js";
87
- import "./reply-prefix-BMEdvSpA.js";
88
- import "./memory-cli-4wfelGdK.js";
89
- import "./manager-BBeTPO2h.js";
90
- import "./query-expansion-i5I3yavb.js";
85
+ import "./send--lzpNy4f.js";
86
+ import "./model-C-icShH2.js";
87
+ import "./reply-prefix-C3y4zpTl.js";
88
+ import "./memory-cli-CUGwnVIY.js";
89
+ import "./manager-BMAFgXyU.js";
90
+ import "./query-expansion-Clts_AGz.js";
91
91
  import "./chunk-ClMFHJu-.js";
92
- import "./markdown-tables-C5hTDqNm.js";
93
- import "./ir-DV0Hszc8.js";
92
+ import "./markdown-tables-DZClqsNo.js";
93
+ import "./ir-VncGpwA1.js";
94
94
  import "./render-DC4qnRqG.js";
95
- import "./pi-tools.policy-B_ME3yF6.js";
95
+ import "./pi-tools.policy-DfITIKZj.js";
96
96
  import "./channel-activity-DaCsrdWK.js";
97
- import "./tables-CZSD889r.js";
98
- import "./send-BCPkAE2k.js";
97
+ import "./tables-g9xkflht.js";
98
+ import "./send-C4v0Leny.js";
99
99
  import "./proxy-yk1Oqe9p.js";
100
100
  import { t as formatDocsLink } from "./links-15764jZB.js";
101
101
  import "./cli-utils-CH2y4E2f.js";
102
102
  import "./help-format-CMAqOikG.js";
103
103
  import "./progress-BQLz1r3L.js";
104
- import "./resolve-route-Ef_Yt2Dw.js";
105
- import "./replies-Czp4hvpS.js";
106
- import "./skill-commands-BwIRWSCI.js";
107
- import "./workspace-dirs-D3bousoX.js";
108
- import "./deps-BotXja4Z.js";
109
- import "./plugin-auto-enable-BMuSi4aV.js";
110
- import "./channel-selection-3jUl-PyW.js";
111
- import "./outbound-attachment-jYdMgCml.js";
104
+ import "./resolve-route-D_AbcmD6.js";
105
+ import "./replies-hSFVxL4h.js";
106
+ import "./skill-commands-BFzmZAfo.js";
107
+ import "./workspace-dirs-SsExQ3Bz.js";
108
+ import "./deps-Bq7jJLyN.js";
109
+ import "./plugin-auto-enable-7DUxMy6A.js";
110
+ import "./channel-selection-ZxRkxpuF.js";
111
+ import "./outbound-attachment-Bot3bRnK.js";
112
112
  import "./delivery-queue-BvDRo8CK.js";
113
113
  import "./session-cost-usage-DS1rjzML.js";
114
- import "./send-CEavqqEz.js";
115
- import "./onboard-helpers-CdzbIhrm.js";
114
+ import "./send-DQiw_nGD.js";
115
+ import "./onboard-helpers-mzy38DiC.js";
116
116
  import "./prompt-style-kmKiCZnm.js";
117
- import "./pairing-labels-DuZ7ih-T.js";
118
- import "./server-lifecycle-CGKrGrhM.js";
117
+ import "./pairing-labels-ChQJzbS9.js";
118
+ import "./server-lifecycle-B5PlrlbG.js";
119
119
  import "./stagger-rQoQSWkz.js";
120
- import "./system-run-command-BIhrK3OI.js";
121
- import { c as resolveArchiveKind, i as unscopedPackageName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-CNNMzJl9.js";
122
- import { a as resolveInstallModeOptions, c as withExtractedArchiveRoot, i as installPackageDir, l as resolveArchiveSourcePath, n as finalizeNpmSpecArchiveInstall, o as resolveTimedInstallModeOptions, r as installFromNpmSpecArchiveWithInstaller, s as resolveExistingInstallPath, t as validateRegistryNpmSpec } from "./npm-registry-spec-BfeHLbIQ.js";
120
+ import "./system-run-command-qJdgzxLp.js";
121
+ import { c as resolveArchiveKind, i as unscopedPackageName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-ChNR9pl6.js";
122
+ import { a as resolveInstallModeOptions, c as withExtractedArchiveRoot, i as installPackageDir, l as resolveArchiveSourcePath, n as finalizeNpmSpecArchiveInstall, o as resolveTimedInstallModeOptions, r as installFromNpmSpecArchiveWithInstaller, s as resolveExistingInstallPath, t as validateRegistryNpmSpec } from "./npm-registry-spec-BCbbfIhX.js";
123
123
  import { t as renderTable } from "./table-B9AmL3M1.js";
124
- import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-CDw87aZG.js";
125
- import { t as buildWorkspaceHookStatus } from "./hooks-status-CPIWc_bx.js";
126
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-By6en78P.js";
124
+ import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-D3pARwoB.js";
125
+ import { t as buildWorkspaceHookStatus } from "./hooks-status-DNGo2G8Q.js";
126
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-BMDipaRX.js";
127
127
  import fs from "node:fs";
128
128
  import path from "node:path";
129
- import fsPromises from "node:fs/promises";
129
+ import fs$1 from "node:fs/promises";
130
130
 
131
131
  //#region src/hooks/install.ts
132
132
  const defaultLogger = {};
@@ -157,7 +157,7 @@ async function ensureIdleHandsHooks(manifest) {
157
157
  }
158
158
  async function resolveInstallTargetDir(id, hooksDir) {
159
159
  const baseHooksDir = hooksDir ? resolveUserPath(hooksDir) : path.join(CONFIG_DIR, "hooks");
160
- await fsPromises.mkdir(baseHooksDir, { recursive: true });
160
+ await fs$1.mkdir(baseHooksDir, { recursive: true });
161
161
  const targetDirResult = resolveSafeInstallDir({
162
162
  baseDir: baseHooksDir,
163
163
  id,
@@ -175,7 +175,7 @@ async function resolveInstallTargetDir(id, hooksDir) {
175
175
  async function resolveHookNameFromDir(hookDir) {
176
176
  const hookMdPath = path.join(hookDir, "HOOK.md");
177
177
  if (!await fileExists(hookMdPath)) throw new Error(`HOOK.md missing in ${hookDir}`);
178
- return parseFrontmatter(await fsPromises.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
178
+ return parseFrontmatter(await fs$1.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
179
179
  }
180
180
  async function validateHookDir(hookDir) {
181
181
  if (!await fileExists(path.join(hookDir, "HOOK.md"))) throw new Error(`HOOK.md missing in ${hookDir}`);
@@ -308,24 +308,24 @@ async function installHookFromDir(params) {
308
308
  let backupDir = null;
309
309
  if (mode === "update" && await fileExists(targetDir)) {
310
310
  backupDir = `${targetDir}.backup-${Date.now()}`;
311
- await fsPromises.rename(targetDir, backupDir);
311
+ await fs$1.rename(targetDir, backupDir);
312
312
  }
313
313
  try {
314
- await fsPromises.cp(params.hookDir, targetDir, { recursive: true });
314
+ await fs$1.cp(params.hookDir, targetDir, { recursive: true });
315
315
  } catch (err) {
316
316
  if (backupDir) {
317
- await fsPromises.rm(targetDir, {
317
+ await fs$1.rm(targetDir, {
318
318
  recursive: true,
319
319
  force: true
320
320
  }).catch(() => void 0);
321
- await fsPromises.rename(backupDir, targetDir).catch(() => void 0);
321
+ await fs$1.rename(backupDir, targetDir).catch(() => void 0);
322
322
  }
323
323
  return {
324
324
  ok: false,
325
325
  error: `failed to copy hook: ${String(err)}`
326
326
  };
327
327
  }
328
- if (backupDir) await fsPromises.rm(backupDir, {
328
+ if (backupDir) await fs$1.rm(backupDir, {
329
329
  recursive: true,
330
330
  force: true
331
331
  }).catch(() => void 0);
@@ -555,7 +555,7 @@ function logIntegrityDriftWarning(hookId, drift) {
555
555
  }
556
556
  async function readInstalledPackageVersion(dir) {
557
557
  try {
558
- const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
558
+ const raw = await fs$1.readFile(path.join(dir, "package.json"), "utf-8");
559
559
  const parsed = JSON.parse(raw);
560
560
  return typeof parsed.version === "string" ? parsed.version : void 0;
561
561
  } catch {
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_DIR } from "./utils-CXzXXV2o.js";
2
2
  import { d as hasBinary } from "./frontmatter-D-sQ_Hqk.js";
3
3
  import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-BKwPdF1n.js";
4
- import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CDw87aZG.js";
4
+ import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-D3pARwoB.js";
5
5
  import path from "node:path";
6
6
 
7
7
  //#region src/hooks/hooks-status.ts
@@ -2,7 +2,7 @@ import { fileURLToPath } from "node:url";
2
2
  import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
- import fsPromises from "node:fs/promises";
5
+ import fs$1 from "node:fs/promises";
6
6
 
7
7
  //#region src/agents/skills/filter.ts
8
8
  function normalizeSkillFilter(skillFilter) {
@@ -166,7 +166,7 @@ async function resolveBoundaryPathLexicalAsync(params) {
166
166
  lexicalCursor = path.join(lexicalCursor, segment);
167
167
  let stat;
168
168
  try {
169
- stat = await fsPromises.lstat(lexicalCursor);
169
+ stat = await fs$1.lstat(lexicalCursor);
170
170
  } catch (error) {
171
171
  if (isNotFoundPathError(error)) {
172
172
  const missingSuffix = segments.slice(idx);
@@ -333,7 +333,7 @@ async function resolvePathViaExistingAncestor(targetPath) {
333
333
  }
334
334
  if (!await pathExists(cursor)) return normalized;
335
335
  try {
336
- const resolvedAncestor = path.resolve(await fsPromises.realpath(cursor));
336
+ const resolvedAncestor = path.resolve(await fs$1.realpath(cursor));
337
337
  if (missingSuffix.length === 0) return resolvedAncestor;
338
338
  return path.resolve(resolvedAncestor, ...missingSuffix);
339
339
  } catch {
@@ -363,7 +363,7 @@ async function getPathKind(absolutePath, preserveFinalSymlink) {
363
363
  try {
364
364
  return {
365
365
  exists: true,
366
- kind: toResolvedKind(preserveFinalSymlink ? await fsPromises.lstat(absolutePath) : await fsPromises.stat(absolutePath))
366
+ kind: toResolvedKind(preserveFinalSymlink ? await fs$1.lstat(absolutePath) : await fs$1.stat(absolutePath))
367
367
  };
368
368
  } catch (error) {
369
369
  if (isNotFoundPathError(error)) return {
@@ -419,7 +419,7 @@ function isFilesystemRoot(candidate) {
419
419
  }
420
420
  async function pathExists(targetPath) {
421
421
  try {
422
- await fsPromises.lstat(targetPath);
422
+ await fs$1.lstat(targetPath);
423
423
  return true;
424
424
  } catch (error) {
425
425
  if (isNotFoundPathError(error)) return false;
@@ -428,10 +428,10 @@ async function pathExists(targetPath) {
428
428
  }
429
429
  async function resolveSymlinkHopPath(symlinkPath) {
430
430
  try {
431
- return path.resolve(await fsPromises.realpath(symlinkPath));
431
+ return path.resolve(await fs$1.realpath(symlinkPath));
432
432
  } catch (error) {
433
433
  if (!isNotFoundPathError(error)) throw error;
434
- const linkTarget = await fsPromises.readlink(symlinkPath);
434
+ const linkTarget = await fs$1.readlink(symlinkPath);
435
435
  return resolvePathViaExistingAncestor(path.resolve(path.dirname(symlinkPath), linkTarget));
436
436
  }
437
437
  }
@@ -600,7 +600,7 @@ async function openBoundaryFile(params) {
600
600
  const CORE_PACKAGE_NAMES = new Set(["idlehands", "@visorcraft/idlehands"]);
601
601
  async function readPackageName(dir) {
602
602
  try {
603
- const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
603
+ const raw = await fs$1.readFile(path.join(dir, "package.json"), "utf-8");
604
604
  const parsed = JSON.parse(raw);
605
605
  return typeof parsed.name === "string" ? parsed.name : null;
606
606
  } catch {
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { h as resolveAgentModelPrimaryValue, m as resolveAgentModelFallbackValues } from "./agent-scope-Bxq1eWbA.js";
3
- import { _ as shortenHomeInString, c as isRecord } from "./utils-D9wGoiU9.js";
4
- import { R as loadConfig, S as getApiKeyForModel, _ as normalizeProviders, dn as resolveIdleHandsAgentDir, gn as normalizeSecretInput, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-C5hI1dum.js";
5
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Dlx4RLWo.js";
6
- import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-B3ceCcxm.js";
7
- import { n as redactToolDetail } from "./redact-1Y0KPNtr.js";
2
+ import { h as resolveAgentModelPrimaryValue, m as resolveAgentModelFallbackValues } from "./agent-scope-DyP_tr7s.js";
3
+ import { _ as shortenHomeInString, c as isRecord } from "./utils-CTFLl_ji.js";
4
+ import { R as loadConfig, S as getApiKeyForModel, _ as normalizeProviders, dn as resolveIdleHandsAgentDir, gn as normalizeSecretInput, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-1MMYqY6M.js";
5
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bb__OY-j.js";
6
+ import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-CghCLoPo.js";
7
+ import { n as redactToolDetail } from "./redact-Bvpf-ATQ.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { complete } from "@mariozechner/pi-ai";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { d as isRecord } from "./utils-CXzXXV2o.js";
3
- import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue } from "./agent-scope-Bn39ugK4.js";
4
- import { J as requireApiKey, K as getApiKeyForModel, Wr as normalizeSecretInput } from "./model-selection-CSn9tUuH.js";
5
- import { t as ensureIdleHandsModelsJson } from "./models-config-lQpqp472.js";
6
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bt79ifyi.js";
7
- import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-BkzrQ5bZ.js";
3
+ import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue } from "./agent-scope-RA0zXRpu.js";
4
+ import { J as requireApiKey, K as getApiKeyForModel, Wr as normalizeSecretInput } from "./model-selection-0dGxYGp8.js";
5
+ import { t as ensureIdleHandsModelsJson } from "./models-config-C5A1wDWh.js";
6
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BIP3RjXl.js";
7
+ import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-BCsfqpDt.js";
8
8
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-Dac7lHGW.js";
9
9
  import { complete } from "@mariozechner/pi-ai";
10
10
 
@@ -1,7 +1,7 @@
1
- import { _ as runExec } from "./workspace-tAtkoD_r.js";
2
- import fs from "node:fs/promises";
1
+ import { n as runExec } from "./exec-CKHMT0tZ.js";
3
2
  import os from "node:os";
4
3
  import path from "node:path";
4
+ import fs from "node:fs/promises";
5
5
  import { fileTypeFromBuffer } from "file-type";
6
6
 
7
7
  //#region src/media/constants.ts
@@ -1,7 +1,7 @@
1
- import { n as runExec } from "./exec-CKHMT0tZ.js";
1
+ import { _ as runExec } from "./workspace-DBFSzT6O.js";
2
+ import fs from "node:fs/promises";
2
3
  import os from "node:os";
3
4
  import path from "node:path";
4
- import fsPromises from "node:fs/promises";
5
5
  import { fileTypeFromBuffer } from "file-type";
6
6
 
7
7
  //#region src/media/constants.ts
@@ -235,11 +235,11 @@ function readJpegExifOrientation(buffer) {
235
235
  return null;
236
236
  }
237
237
  async function withTempDir(fn) {
238
- const dir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "idlehands-img-"));
238
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), "idlehands-img-"));
239
239
  try {
240
240
  return await fn(dir);
241
241
  } finally {
242
- await fsPromises.rm(dir, {
242
+ await fs.rm(dir, {
243
243
  recursive: true,
244
244
  force: true
245
245
  }).catch(() => {});
@@ -248,7 +248,7 @@ async function withTempDir(fn) {
248
248
  async function sipsMetadataFromBuffer(buffer) {
249
249
  return await withTempDir(async (dir) => {
250
250
  const input = path.join(dir, "in.img");
251
- await fsPromises.writeFile(input, buffer);
251
+ await fs.writeFile(input, buffer);
252
252
  const { stdout } = await runExec("/usr/bin/sips", [
253
253
  "-g",
254
254
  "pixelWidth",
@@ -276,7 +276,7 @@ async function sipsResizeToJpeg(params) {
276
276
  return await withTempDir(async (dir) => {
277
277
  const input = path.join(dir, "in.img");
278
278
  const output = path.join(dir, "out.jpg");
279
- await fsPromises.writeFile(input, params.buffer);
279
+ await fs.writeFile(input, params.buffer);
280
280
  await runExec("/usr/bin/sips", [
281
281
  "-Z",
282
282
  String(Math.max(1, Math.round(params.maxSide))),
@@ -293,14 +293,14 @@ async function sipsResizeToJpeg(params) {
293
293
  timeoutMs: 2e4,
294
294
  maxBuffer: 1024 * 1024
295
295
  });
296
- return await fsPromises.readFile(output);
296
+ return await fs.readFile(output);
297
297
  });
298
298
  }
299
299
  async function sipsConvertToJpeg(buffer) {
300
300
  return await withTempDir(async (dir) => {
301
301
  const input = path.join(dir, "in.heic");
302
302
  const output = path.join(dir, "out.jpg");
303
- await fsPromises.writeFile(input, buffer);
303
+ await fs.writeFile(input, buffer);
304
304
  await runExec("/usr/bin/sips", [
305
305
  "-s",
306
306
  "format",
@@ -312,7 +312,7 @@ async function sipsConvertToJpeg(buffer) {
312
312
  timeoutMs: 2e4,
313
313
  maxBuffer: 1024 * 1024
314
314
  });
315
- return await fsPromises.readFile(output);
315
+ return await fs.readFile(output);
316
316
  });
317
317
  }
318
318
  async function getImageMetadata(buffer) {
@@ -363,7 +363,7 @@ async function sipsApplyOrientation(buffer, orientation) {
363
363
  return await withTempDir(async (dir) => {
364
364
  const input = path.join(dir, "in.jpg");
365
365
  const output = path.join(dir, "out.jpg");
366
- await fsPromises.writeFile(input, buffer);
366
+ await fs.writeFile(input, buffer);
367
367
  await runExec("/usr/bin/sips", [
368
368
  ...ops,
369
369
  input,
@@ -373,7 +373,7 @@ async function sipsApplyOrientation(buffer, orientation) {
373
373
  timeoutMs: 2e4,
374
374
  maxBuffer: 1024 * 1024
375
375
  });
376
- return await fsPromises.readFile(output);
376
+ return await fs.readFile(output);
377
377
  });
378
378
  }
379
379
  async function resizeToJpeg(params) {