@visorcraft/idlehands 4.0.21 → 4.1.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 (284) hide show
  1. package/dist/{accounts-DLTODa_Z.js → accounts-D-hQsUw-.js} +1 -1
  2. package/dist/{accounts-DgbTKQoW.js → accounts-D87a1Y_K.js} +1 -1
  3. package/dist/{accounts-3HS_UAhJ.js → accounts-DsVN0UNw.js} +1 -1
  4. package/dist/{acp-cli-BEpWQbqb.js → acp-cli-BEHYc8ty.js} +7 -7
  5. package/dist/{agent-scope-RA0zXRpu.js → agent-scope-Bn39ugK4.js} +18 -18
  6. package/dist/{agent-via-gateway-DHn8V6v4.js → agent-via-gateway-CM7X6sKJ.js} +7 -7
  7. package/dist/{agent-via-gateway-CUQG6kii.js → agent-via-gateway-bS6seBwg.js} +4 -4
  8. package/dist/{agent-via-gateway-Cn3iNSod.js → agent-via-gateway-igDg7ko6.js} +7 -7
  9. package/dist/{agents.config-CHtoYxr6.js → agents.config-CPUPtcKt.js} +2 -2
  10. package/dist/{anton-Dyz3neEN.js → anton-C7-Qxyij.js} +1 -1
  11. package/dist/{anton-x7f6kIFP.js → anton-D9tZAGaj.js} +20 -20
  12. package/dist/{anton-hH1PyE2C.js → anton-ONYQUE8F.js} +1 -1
  13. package/dist/{api-key-rotation-B-FTJm5p.js → api-key-rotation-nXQVJErE.js} +1 -1
  14. package/dist/{audio-preflight-vD3mDc6w.js → audio-preflight-CSSlgO89.js} +4 -4
  15. package/dist/{audio-preflight-Dl1TO10w.js → audio-preflight-DzjXupNO.js} +31 -31
  16. package/dist/{audio-preflight-B8qbJcB1.js → audio-preflight-qkU2lsDn.js} +4 -4
  17. package/dist/{audit-CKeZnjft.js → audit-C5VPFgbJ.js} +22 -22
  18. package/dist/{auth-choice-D12Wsf7w.js → auth-choice-BDndThZZ.js} +12 -12
  19. package/dist/{auth-choice-DRR52LJT.js → auth-choice-CQqV1VIf.js} +10 -10
  20. package/dist/{auth-choice.apply-helpers-CGcniL1T.js → auth-choice.apply-helpers-pTqMTYmi.js} +1 -1
  21. package/dist/{auth-store-DDzIMy8_.js → auth-store-CMyrmmSF.js} +7 -7
  22. package/dist/{auth-token-BJq87X3o.js → auth-token-fKt_cHOj.js} +1 -1
  23. package/dist/{bindings-B59Q7nsk.js → bindings-DZjkLUU_.js} +1 -1
  24. package/dist/{browser-cli-Ci6DpTnS.js → browser-cli-qU0I-Gla.js} +11 -11
  25. package/dist/build-info.json +3 -3
  26. package/dist/bundled/boot-md/handler.js +7 -7
  27. package/dist/bundled/session-memory/handler.js +7 -7
  28. package/dist/{call-BpWhjuOg.js → call-Du-oBD99.js} +9 -9
  29. package/dist/{channel-account-context-CDbY5AIr.js → channel-account-context-B4nJPU2N.js} +5 -5
  30. package/dist/{channel-options-B4oF7_V2.js → channel-options-B1cfZ5uQ.js} +3 -3
  31. package/dist/{channel-selection-ZxRkxpuF.js → channel-selection-3jUl-PyW.js} +1 -1
  32. package/dist/{channel-web-0icuasR6.js → channel-web-CzrJ-6X4.js} +22 -22
  33. package/dist/{channels-cli-B2w32z11.js → channels-cli-B4o-qohk.js} +88 -88
  34. package/dist/{channels-status-issues-CDpWjdI3.js → channels-status-issues-hgASw9UA.js} +1 -1
  35. package/dist/{chrome-xahUzIaT.js → chrome-CT_a9OgI.js} +9 -9
  36. package/dist/{chrome-DEnkfZ9p.js → chrome-Do5potHV.js} +9 -9
  37. package/dist/{chrome-VBsQfIrt.js → chrome-YguTEaLx.js} +2 -2
  38. package/dist/{clawbot-cli-uFgYrysW.js → clawbot-cli-C5cDal-5.js} +5 -5
  39. package/dist/{cli-BVw2ja-q.js → cli-DXyOlvH2.js} +70 -70
  40. package/dist/{client-DtnD-ee9.js → client-Dl5EAvfO.js} +1 -1
  41. package/dist/{command-registry-CWDCVzZv.js → command-registry-esizscE2.js} +5 -5
  42. package/dist/{commands-Dj5LalLo.js → commands-D3BU_t7G.js} +1 -1
  43. package/dist/{commands-registry-CURlRZQJ.js → commands-registry-Cj4D_1tw.js} +3 -3
  44. package/dist/{completion-cli-f5M3WVf8.js → completion-cli-CXDILt8-.js} +12 -12
  45. package/dist/{completion-cli-CjERsZ27.js → completion-cli-c4blaZPQ.js} +2 -2
  46. package/dist/{config-cli-Bt7n6ZJS.js → config-cli-98ASrAou.js} +1 -1
  47. package/dist/{config-cli-B2gc8CV1.js → config-cli-D_mH5-FH.js} +6 -6
  48. package/dist/{config-guard-BdsOumqh.js → config-guard-DnAyuF6T.js} +17 -17
  49. package/dist/{config-validation-BvKX6fPw.js → config-validation-DIomLMwH.js} +2 -2
  50. package/dist/{configure-BXsptBk3.js → configure-PKG58EzI.js} +16 -16
  51. package/dist/{control-ui-assets-C7ZpN9hN.js → control-ui-assets-CiaCDBvZ.js} +1 -1
  52. package/dist/{cron-cli-DQsnGQKs.js → cron-cli-BIfVPc5K.js} +12 -12
  53. package/dist/{daemon-cli-DUg-s4LG.js → daemon-cli-DpyQu0Dp.js} +11 -11
  54. package/dist/{daemon-install-CYPo4M1M.js → daemon-install-DeqQiAad.js} +4 -4
  55. package/dist/{daemon-install-helpers-BZY9-jNW.js → daemon-install-helpers-Bug_GYuy.js} +9 -9
  56. package/dist/{deliver-CIFO6sel.js → deliver-Db2xqgLg.js} +1 -1
  57. package/dist/{deliver-5FLCa6tB.js → deliver-whAbSPLk.js} +1 -1
  58. package/dist/{deliver--kttnrER.js → deliver-yTpXc5sv.js} +7 -7
  59. package/dist/{deps-CwPrf7RC.js → deps-BotXja4Z.js} +6 -6
  60. package/dist/{deps-DwTILPLD.js → deps-CC5E5LXB.js} +1 -1
  61. package/dist/{deps-BbipxGPW.js → deps-DR1eh_L_.js} +1 -1
  62. package/dist/{devices-cli-DKK65S9Z.js → devices-cli-B7fkQKei.js} +7 -7
  63. package/dist/{diagnostics-DmZbQ8Nc.js → diagnostics-CdUgLS0N.js} +5 -5
  64. package/dist/{directory-cli-Dz9iXeut.js → directory-cli-BAMS8f9U.js} +9 -9
  65. package/dist/{dns-cli-DD6hWsdc.js → dns-cli-BdxBk-k_.js} +4 -4
  66. package/dist/{dock-Y96MzKuM.js → dock-CzF5XYGd.js} +4 -4
  67. package/dist/{docs-cli-cHkrTB2e.js → docs-cli-SF7es4Zs.js} +4 -4
  68. package/dist/{doctor-completion-C2-SDBd6.js → doctor-completion-Co_xszXC.js} +2 -2
  69. package/dist/{doctor-completion-DB151YdP.js → doctor-completion-DFr8_h-z.js} +1 -1
  70. package/dist/{doctor-config-flow-Ck4oCjfl.js → doctor-config-flow-8qXzBx09.js} +14 -14
  71. package/dist/{emergency-stop-Lj33jqJJ.js → emergency-stop-ChBe32HN.js} +7 -7
  72. package/dist/{emergency-stop-DpNGtfb4.js → emergency-stop-DtVFxCO1.js} +70 -70
  73. package/dist/{emergency-stop-C2sJ4lsk.js → emergency-stop-DyQna_P0.js} +7 -7
  74. package/dist/{enable-o_s6PBsC.js → enable-DaA_orGN.js} +1 -1
  75. package/dist/entry.js +1 -1
  76. package/dist/{exec-approvals-allowlist-Co2tJSEo.js → exec-approvals-allowlist-8AkOwwIr.js} +1 -1
  77. package/dist/{exec-approvals-cli-D6XUzs4j.js → exec-approvals-cli-CbcJzCt0.js} +15 -15
  78. package/dist/{exec-safe-bin-runtime-policy-DaoU9-ni.js → exec-safe-bin-runtime-policy-DYXuBKqH.js} +2 -2
  79. package/dist/extensionAPI.js +7 -7
  80. package/dist/{fs-safe-_JQUGpZf.js → fs-safe-DNFrxDS-.js} +15 -15
  81. package/dist/{gateway-cli-Ccd1ukWq.js → gateway-cli-DjCBMnUT.js} +2 -2
  82. package/dist/{gateway-cli-lNUOd2_i.js → gateway-cli-poVGdgAz.js} +148 -148
  83. package/dist/{gateway-rpc-BBFG1T-M.js → gateway-rpc-IpZymG6F.js} +1 -1
  84. package/dist/{health--GQAFTBr.js → health-lZsCLX6p.js} +13 -13
  85. package/dist/{hooks-cli-Di8qrzIB.js → hooks-cli-EbzkZ1Xh.js} +84 -84
  86. package/dist/{hooks-status-DNGo2G8Q.js → hooks-status-CPIWc_bx.js} +1 -1
  87. package/dist/{idlehands-root-B8cUs-5M.js → idlehands-root-DFL2GrNW.js} +8 -8
  88. package/dist/{image-C_aN5P6-.js → image-BAsQlUqT.js} +1 -1
  89. package/dist/{image-DSDEbSiO.js → image-C2JZiK-6.js} +5 -5
  90. package/dist/{image-D9D-lzCw.js → image-Dlu13Ebx.js} +1 -1
  91. package/dist/{image-ops-BU-VdLZu.js → image-ops-BkoEFRYH.js} +10 -10
  92. package/dist/index.js +80 -80
  93. package/dist/{inspect-ISQZuNM5.js → inspect-Dg16DMLn.js} +4 -4
  94. package/dist/{install-safe-path-ChNR9pl6.js → install-safe-path-CNNMzJl9.js} +19 -19
  95. package/dist/{installs-CNubze2L.js → installs-ST3UaUVJ.js} +9 -9
  96. package/dist/{ir-VncGpwA1.js → ir-DV0Hszc8.js} +6 -6
  97. package/dist/{lifecycle-core-B6UoqYTJ.js → lifecycle-core-DOScNyOv.js} +5 -5
  98. package/dist/llm-slug-generator.js +7 -7
  99. package/dist/{local-roots-q0xbefkf.js → local-roots-Cco87A2_.js} +2 -2
  100. package/dist/{login-CfUhrgWT.js → login-Dl_lsEHS.js} +4 -4
  101. package/dist/{login-qr-DBMsUxgL.js → login-qr-B68cBRH0.js} +7 -7
  102. package/dist/{logs-cli-4VQ9Iwiw.js → logs-cli-DHCG25JA.js} +8 -8
  103. package/dist/{manager-BMAFgXyU.js → manager-BBeTPO2h.js} +13 -13
  104. package/dist/{manifest-registry-Bak1x76G.js → manifest-registry-RfRn8HJx.js} +1 -1
  105. package/dist/{markdown-tables-DZClqsNo.js → markdown-tables-C5hTDqNm.js} +1 -1
  106. package/dist/{memory-cli-CUGwnVIY.js → memory-cli-4wfelGdK.js} +12 -12
  107. package/dist/{model-C-icShH2.js → model-Bd-05WpB.js} +2 -2
  108. package/dist/{model-catalog-D9no0CH2.js → model-catalog-BCsDrrvq.js} +3 -3
  109. package/dist/{model-picker-BkXoTOiA.js → model-picker-D3U0wJCO.js} +4 -4
  110. package/dist/{model-selection-0dGxYGp8.js → model-selection-CSn9tUuH.js} +16 -16
  111. package/dist/{models-cli-CMwszgSD.js → models-cli-umEUn4Xu.js} +79 -79
  112. package/dist/{models-config-C5A1wDWh.js → models-config-lQpqp472.js} +6 -6
  113. package/dist/{node-cli-BYzjxmUY.js → node-cli-7gQ7xfOh.js} +32 -32
  114. package/dist/{node-service-C3vyxHLA.js → node-service-GpI0jzKr.js} +1 -1
  115. package/dist/{nodes-cli-kNOtp0U0.js → nodes-cli-CDXLGCox.js} +14 -14
  116. package/dist/{nodes-screen-CcpPaFxa.js → nodes-screen-CIAn0wXq.js} +4 -4
  117. package/dist/{npm-registry-spec-BCbbfIhX.js → npm-registry-spec-BfeHLbIQ.js} +16 -16
  118. package/dist/{npm-resolution-DLSA4PTO.js → npm-resolution-By6en78P.js} +3 -3
  119. package/dist/{onboard-CbXlbAx2.js → onboard-BmDmDXYf.js} +6 -6
  120. package/dist/{onboard-B6eOxpDM.js → onboard-Dw-URWpt.js} +1 -1
  121. package/dist/{onboard-channels-BISq46-i.js → onboard-channels-DCDhpz9s.js} +20 -20
  122. package/dist/{onboard-custom-DUbzMMu7.js → onboard-custom-D2sCP3_S.js} +4 -4
  123. package/dist/{onboard-helpers-mzy38DiC.js → onboard-helpers-CdzbIhrm.js} +8 -8
  124. package/dist/{onboard-hooks-D9teGxfH.js → onboard-hooks-_1Jgimeu.js} +4 -4
  125. package/dist/{onboard-remote-LCBHijVE.js → onboard-remote-pCRaL_Ey.js} +1 -1
  126. package/dist/{onboard-skills-jFY9gaOu.js → onboard-skills-DvwRvBvj.js} +4 -4
  127. package/dist/{onboarding-Da3n7Rvs.js → onboarding-Cf3JxJxY.js} +13 -13
  128. package/dist/{onboarding-DikyMlYG.js → onboarding-DIorhVOJ.js} +1 -1
  129. package/dist/{onboarding.finalize-CwYx5n3Z.js → onboarding.finalize-BCmAqhLV.js} +4 -4
  130. package/dist/{onboarding.finalize-Bp2ufMd0.js → onboarding.finalize-BH4WHo75.js} +82 -82
  131. package/dist/{onboarding.gateway-config-Btu2gzgr.js → onboarding.gateway-config-Sj7zQKsE.js} +16 -16
  132. package/dist/{openai-model-default-7J6cw1rA.js → openai-model-default-OPCCNNS0.js} +2 -2
  133. package/dist/{outbound-DPTxwchq.js → outbound-CG19kl0w.js} +4 -4
  134. package/dist/{outbound-attachment-Bot3bRnK.js → outbound-attachment-jYdMgCml.js} +2 -2
  135. package/dist/{pairing-cli-jwx6hMsM.js → pairing-cli-QJYYDcIK.js} +10 -10
  136. package/dist/{pairing-labels-ChQJzbS9.js → pairing-labels-DuZ7ih-T.js} +1 -1
  137. package/dist/{pairing-store-CPpEEQJO.js → pairing-store-qvpPoWL_.js} +2 -2
  138. package/dist/{pairing-token-lKXTMQ_M.js → pairing-token-3hoCgQqp.js} +7 -7
  139. package/dist/{path-alias-guards-FXBVVTLw.js → path-alias-guards-BCskHdfJ.js} +3 -3
  140. package/dist/{path-safety-DwibX65n.js → path-safety-C1Y004P_.js} +1 -1
  141. package/dist/{paths-B-CLQ5RT.js → paths-Bt0fZexW.js} +9 -9
  142. package/dist/{pi-embedded-Bc4KWuTe.js → pi-embedded-DMx6rHVL.js} +26 -26
  143. package/dist/{pi-embedded-helpers-CUoUoEEN.js → pi-embedded-helpers-B3ceCcxm.js} +4 -4
  144. package/dist/{pi-embedded-helpers-BCsfqpDt.js → pi-embedded-helpers-BkzrQ5bZ.js} +6 -6
  145. package/dist/{pi-embedded-helpers-C2j0LfJC.js → pi-embedded-helpers-Ct2rwp-P.js} +4 -4
  146. package/dist/{pi-embedded-k2mZJOsr.js → pi-embedded-mKozULng.js} +26 -26
  147. package/dist/{pi-model-discovery-BIP3RjXl.js → pi-model-discovery-Bt79ifyi.js} +1 -1
  148. package/dist/{pi-tools.policy-DfITIKZj.js → pi-tools.policy-B_ME3yF6.js} +5 -5
  149. package/dist/{plugin-auto-enable-7DUxMy6A.js → plugin-auto-enable-BMuSi4aV.js} +3 -3
  150. package/dist/{plugin-registry-DROWinG6.js → plugin-registry-BIoGoN5y.js} +3 -3
  151. package/dist/{plugins-D46VZh7u.js → plugins-B4hASNc2.js} +2 -2
  152. package/dist/{plugins-cli-b_o3IL7x.js → plugins-cli-Dlb8QO-K.js} +80 -80
  153. package/dist/{ports-B2o0FSFD.js → ports-B07M55Gr.js} +1 -1
  154. package/dist/{ports-SQy1d-RL.js → ports-DWJO5S52.js} +2 -2
  155. package/dist/{program-vH6RTUOw.js → program-Do2-I4y3.js} +2 -2
  156. package/dist/{program-context-D6irLwPo.js → program-context-B_byBfwR.js} +43 -43
  157. package/dist/{prompt-select-styled-CDoDFWo7.js → prompt-select-styled-CBF_I30O.js} +37 -37
  158. package/dist/{prompt-select-styled-DFVvU0TH.js → prompt-select-styled-VWGHu3e1.js} +1 -1
  159. package/dist/{provider-auth-helpers-CNRz0SFC.js → provider-auth-helpers-BGGSUXOH.js} +5 -5
  160. package/dist/{push-apns-e2xmxGGE.js → push-apns-CuwLAoXk.js} +5 -5
  161. package/dist/{pw-ai-7i9eGnLh.js → pw-ai-BGALvhDi.js} +11 -11
  162. package/dist/{pw-ai-CnvVtt_s.js → pw-ai-DIV4PcIo.js} +1 -1
  163. package/dist/{pw-ai-DjmrIQle.js → pw-ai-yrIWfcWX.js} +1 -1
  164. package/dist/{qmd-manager-B-qeywfQ.js → qmd-manager-CVcPfkhL.js} +19 -19
  165. package/dist/{qr-cli-CSt5ihwG.js → qr-cli-D2Oh8f0U.js} +1 -1
  166. package/dist/{query-expansion-Clts_AGz.js → query-expansion-i5I3yavb.js} +12 -12
  167. package/dist/{redact-snapshot-Cc8Brktr.js → redact-snapshot-K5EFkIbD.js} +14 -0
  168. package/dist/{redact-snapshot-BBNDQZIe.js → redact-snapshot-KMo22a85.js} +15 -1
  169. package/dist/{register.agent-HWcFMr6h.js → register.agent-CDcuj79y.js} +95 -95
  170. package/dist/register.configure-CxwdWRSG.js +168 -0
  171. package/dist/{register.maintenance-BYiX9iOa.js → register.maintenance-BcFR1fGQ.js} +5 -5
  172. package/dist/{register.maintenance-C6o2WuQx.js → register.maintenance-wv8PzmVy.js} +90 -90
  173. package/dist/{register.message-BewFLd-k.js → register.message-DUAiI9J7.js} +71 -71
  174. package/dist/{register.onboard-BVm-2XAx.js → register.onboard-BMNBXD29.js} +2 -2
  175. package/dist/{register.onboard-a0kqiCTa.js → register.onboard-F09brfSb.js} +18 -18
  176. package/dist/{register.orchestrator-anton-BYyjV8R-.js → register.orchestrator-anton-CGhKIDjJ.js} +14 -14
  177. package/dist/{register.setup-BJ0WBUpt.js → register.setup-DqbGSLoJ.js} +2 -2
  178. package/dist/{register.setup-BwPJaqpH.js → register.setup-jzek547p.js} +21 -21
  179. package/dist/{register.status-health-sessions-Clzt8hbv.js → register.status-health-sessions-ByfydR_f.js} +82 -82
  180. package/dist/{register.subclis-CrcOefJY.js → register.subclis-CuNL7Zgu.js} +3 -3
  181. package/dist/{replies-hSFVxL4h.js → replies-Czp4hvpS.js} +1 -1
  182. package/dist/{reply-D5gCiiGr.js → reply-CdFdL9nL.js} +153 -153
  183. package/dist/{reply-prefix-C3y4zpTl.js → reply-prefix-BMEdvSpA.js} +1 -1
  184. package/dist/{resolve-route-D_AbcmD6.js → resolve-route-Ef_Yt2Dw.js} +2 -2
  185. package/dist/{rpc-Cf9OK5Yk.js → rpc-CNqnw2FL.js} +1 -1
  186. package/dist/{run-main-BCX3UZMR.js → run-main-9A7FdIR1.js} +5 -5
  187. package/dist/{runner-DzszLzI4.js → runner-BFG54hnb.js} +20 -20
  188. package/dist/{runner-DjDddZhb.js → runner-BkCU-kqs.js} +1 -1
  189. package/dist/{runner-CZW_eyf2.js → runner-Bv_BA3vd.js} +1 -1
  190. package/dist/{runtime-XmXLaHNk.js → runtime-DEmy759r.js} +2 -2
  191. package/dist/{sandbox-DcUw5h3p.js → sandbox-CfPbhDY_.js} +20 -20
  192. package/dist/{sandbox-cli-DGvJ7Eeq.js → sandbox-cli-B4wLJr21.js} +22 -22
  193. package/dist/{secrets-cli-CR3h2TBy.js → secrets-cli-DP718vNZ.js} +9 -9
  194. package/dist/{security-cli-B9_LV2po.js → security-cli-CG2_SV7b.js} +39 -39
  195. package/dist/{send-C4v0Leny.js → send-BCPkAE2k.js} +6 -6
  196. package/dist/{send-DuwdEkLw.js → send-BPwTl4-K.js} +4 -4
  197. package/dist/{send-DQiw_nGD.js → send-CEavqqEz.js} +6 -6
  198. package/dist/{send-DwdHiC7_.js → send-CVIXqubC.js} +13 -13
  199. package/dist/{send--lzpNy4f.js → send-DDMaLJAQ.js} +7 -7
  200. package/dist/{server-D6MltJIF.js → server-BpSbZAwg.js} +14 -14
  201. package/dist/{server-context-DI0W_H7R.js → server-context-BxNSTpH6.js} +10 -10
  202. package/dist/{server-lifecycle-B5PlrlbG.js → server-lifecycle-CGKrGrhM.js} +2 -2
  203. package/dist/{server-node-events-DvStFPGi.js → server-node-events-BSPxvn7O.js} +71 -71
  204. package/dist/{service-C8NMS3m_.js → service-Bj2oSfpw.js} +15 -15
  205. package/dist/{session-CdnrRhb4.js → session-BKVySI8q.js} +1 -1
  206. package/dist/{sessions-BtPXimXQ.js → sessions-BqWocozB.js} +14 -14
  207. package/dist/{shared-CpDPo3hJ.js → shared-DnQ4iyXk.js} +2 -2
  208. package/dist/{shared-DpLSpJIl.js → shared-Jzrx8DfN.js} +1 -1
  209. package/dist/{skill-commands-BFzmZAfo.js → skill-commands-BwIRWSCI.js} +5 -5
  210. package/dist/{skill-scanner-D7mzXRXd.js → skill-scanner-B4Ftsbd2.js} +5 -5
  211. package/dist/{skills-DlvDyK8L.js → skills-TIyQDZx7.js} +3 -3
  212. package/dist/{skills-cli-BhKGhjbO.js → skills-cli-5lbXi4Lh.js} +5 -5
  213. package/dist/{skills-install-tr6wRWZj.js → skills-install-D0JHP5uM.js} +4 -4
  214. package/dist/{skills-status-qjQ8XP0h.js → skills-status-Q9skQExW.js} +1 -1
  215. package/dist/{status-CWnPokQF.js → status-YWasgjym.js} +24 -24
  216. package/dist/{status.update-CTi6vuWj.js → status.update-C3uRz7W6.js} +2 -2
  217. package/dist/{store-kH9wHHbO.js → store-CLNuI8-G.js} +5 -5
  218. package/dist/{system-cli-DyVZ5udc.js → system-cli-BfjZ6QvH.js} +8 -8
  219. package/dist/{system-run-approval-context-CISBXlNw.js → system-run-approval-context-xZVoE4nS.js} +1 -1
  220. package/dist/{system-run-command-qJdgzxLp.js → system-run-command-BIhrK3OI.js} +1 -1
  221. package/dist/{systemd-CaCR5CyM.js → systemd-DyrVLTI0.js} +9 -9
  222. package/dist/{systemd-hints-DHu-HVFx.js → systemd-hints-BoKKzRI_.js} +6 -6
  223. package/dist/{systemd-linger-B7XlUHk_.js → systemd-linger-DrhGd61G.js} +1 -1
  224. package/dist/{tables-g9xkflht.js → tables-CZSD889r.js} +1 -1
  225. package/dist/{target-errors-bLIVFsbF.js → target-errors-BYuWhuLU.js} +4 -4
  226. package/dist/{tool-images-CHqepyF_.js → tool-images-DZHrc4pq.js} +1 -1
  227. package/dist/{tui-Bne3YNiw.js → tui-B2bAseIB.js} +6 -6
  228. package/dist/{tui-cli-D0Z-rcUe.js → tui-cli-cewAjqAk.js} +30 -30
  229. package/dist/{update-cli-CxZD0ekr.js → update-cli-Cxp_mYOH.js} +5 -5
  230. package/dist/{update-cli-BTNcddEX.js → update-cli-D7gDHoEE.js} +99 -99
  231. package/dist/{update-D79ppbMQ.js → update-la2AdLf3.js} +3 -3
  232. package/dist/{update-runner-CN7Dm9tg.js → update-runner-DRglQgXe.js} +15 -15
  233. package/dist/{upgrade-command-909a7QUc.js → upgrade-command-28wRHZZ2.js} +3 -3
  234. package/dist/{web-t3fXJTeB.js → web-BuIXrrsp.js} +8 -8
  235. package/dist/{web-DiqHxfw7.js → web-BxegDO-S.js} +8 -8
  236. package/dist/web-DESq0zCM.js +123 -0
  237. package/dist/{webhooks-cli-2N03q0iY.js → webhooks-cli-BnmVPYkU.js} +6 -6
  238. package/dist/{whatsapp-actions-Cms8wQM1.js → whatsapp-actions-D2mBFzmK.js} +18 -18
  239. package/dist/{with-timeout-DEdycYxq.js → with-timeout-BodPmGCY.js} +3 -3
  240. package/dist/{workspace-D3pARwoB.js → workspace-CDw87aZG.js} +1 -1
  241. package/dist/{workspace-dirs-SsExQ3Bz.js → workspace-dirs-D3bousoX.js} +1 -1
  242. package/dist/{wsl-BJW8nTyL.js → wsl-CgXDjE09.js} +2 -2
  243. package/extensions/acpx/package.json +1 -1
  244. package/extensions/bluebubbles/package.json +1 -1
  245. package/extensions/copilot-proxy/package.json +1 -1
  246. package/extensions/diagnostics-otel/package.json +1 -1
  247. package/extensions/discord/package.json +1 -1
  248. package/extensions/feishu/package.json +1 -1
  249. package/extensions/google-gemini-cli-auth/package.json +1 -1
  250. package/extensions/googlechat/package.json +1 -1
  251. package/extensions/hand/package.json +1 -1
  252. package/extensions/imessage/package.json +1 -1
  253. package/extensions/irc/package.json +1 -1
  254. package/extensions/line/package.json +1 -1
  255. package/extensions/llm-task/package.json +1 -1
  256. package/extensions/matrix/CHANGELOG.md +6 -0
  257. package/extensions/matrix/package.json +1 -1
  258. package/extensions/mattermost/package.json +1 -1
  259. package/extensions/memory-core/package.json +1 -1
  260. package/extensions/memory-lancedb/package.json +1 -1
  261. package/extensions/minimax-portal-auth/package.json +1 -1
  262. package/extensions/msteams/CHANGELOG.md +6 -0
  263. package/extensions/msteams/package.json +1 -1
  264. package/extensions/nextcloud-talk/package.json +1 -1
  265. package/extensions/nostr/CHANGELOG.md +6 -0
  266. package/extensions/nostr/package.json +1 -1
  267. package/extensions/open-prose/package.json +1 -1
  268. package/extensions/signal/package.json +1 -1
  269. package/extensions/slack/package.json +1 -1
  270. package/extensions/synology-chat/package.json +1 -1
  271. package/extensions/telegram/package.json +1 -1
  272. package/extensions/tlon/package.json +1 -1
  273. package/extensions/twitch/CHANGELOG.md +6 -0
  274. package/extensions/twitch/package.json +1 -1
  275. package/extensions/voice-call/CHANGELOG.md +6 -0
  276. package/extensions/voice-call/package.json +1 -1
  277. package/extensions/whatsapp/package.json +1 -1
  278. package/extensions/zalo/CHANGELOG.md +6 -0
  279. package/extensions/zalo/package.json +1 -1
  280. package/extensions/zalouser/CHANGELOG.md +6 -0
  281. package/extensions/zalouser/package.json +1 -1
  282. package/package.json +1 -1
  283. package/dist/register.configure-k8gocsJw.js +0 -168
  284. package/dist/web-BV-BEZj6.js +0 -123
@@ -1,169 +1,169 @@
1
1
  import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cn44w-EB.js";
2
2
  import { B as theme, D as isPlainObject, E as truncateUtf16Safe, H as getLogger, M as logVerbose, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, r as clamp, y as resolveUserPath, z as isRich } from "./utils-CXzXXV2o.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $ as normalizeOptionalAgentId, $n as resolveTtsAutoMode, $t as resolveAgentAvatar, A as resolveOutboundSessionRoute, B as setGatewaySigusr1RestartPolicy, Bn as buildOutboundSessionContext, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as createOutboundSendDeps, C as loadCombinedSessionStoreForGateway, Cn as formatZonedTimestamp, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dr as requestHeartbeatNow, Dt as requestBodyErrorToText, E as resolveGatewaySessionStoreTarget, En as getTotalPendingReplies, Et as readJsonBodyWithLimit, F as deferGatewayRestartUntilIdle, Fn as listDescendantRunsForRequester, Fr as normalizeSendPolicy, Gn as onAgentEvent, Gr as resolveAgentTimeoutMs, Gt as setCliSessionId, H as consumeRestartSentinel, Hn as clearAgentRunContext, Hr as extractImageContentFromSource, Ht as parseVerboseOverride, I as emitGatewayRestart, Ir as resolveSendPolicy, J as writeRestartSentinel, Jn as clearBootstrapSnapshot, K as summarizeRestartSentinel, Kn as registerAgentRunContext, Kt as runCliAgent, L as isGatewaySigusr1RestartExternallyAllowed, Ln as runSubagentAnnounceFlow, Lr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Lt as resolveOutboundTarget, M as resetDirectoryCache, Mn as stopSubagentsForRequester, Mr as ACP_SESSION_IDENTITY_RENDERER_VERSION, Nn as countActiveDescendantRuns, Nr as getAcpSessionManager, Nt as resolveAgentDeliveryPlan, Ot as computeBackoff, P as consumeGatewaySigusr1RestartAuthorization, Pn as initSubagentRegistry, Pr as resolveAgentSessionDirs, Pt as resolveAgentOutboundTarget, Q as inferLegacyName, Qn as resolveTtsApiKey, Qt as resolveSessionAuthProfileOverride, R as markGatewaySigusr1RestartHandled, Rn as resolveAnnounceTargetFromKey, Rr as DEFAULT_INPUT_IMAGE_MIMES, Rt as resolveSessionDeliveryTarget, S as listSessionsFromStore, T as pruneLegacyStoreKeys, Tn as createReplyDispatcher, Tt as handleSlackHttpRequest, U as formatDoctorNonInteractiveHint, Un as emitAgentEvent, Ur as normalizeMimeList, Ut as runWithModelFallback, V as setPreRestartDeferralCheck, Vn as clearSessionQueues, Vr as extractFileContentFromSource, Vt as applyVerboseOverride, W as formatRestartSentinelMessage, Wn as getAgentRunContext, Wr as resolveInputFileLimits, Wt as getCliSessionId, X as normalizeCronJobCreate, Xn as isTtsEnabled, Xt as lookupContextTokens, Y as normalizeHttpWebhookUrl, Yn as getTtsProvider, Yt as applyModelOverrideToSessionEntry, Z as normalizeCronJobPatch, Zn as isTtsProviderConfigured, _t as normalizeGroupActivation, an as getHookType, ar as textToSpeech, at as buildDeliveryFromLegacyPayload, br as stripHeartbeatToken, cr as getActiveTaskCount, d as runEmbeddedPiAgent, dn as buildHistoryContextFromEntries, dr as markGatewayDraining, dt as persistBrowserProxyFiles, er as resolveTtsConfig, et as normalizeOptionalSessionKey, f as abortEmbeddedPiRun, fr as resetAllLanes, ft as getPluginToolMeta, g as buildDefaultToolPolicyPipelineSteps, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as applyToolPolicyPipeline, hr as CommandLane, ht as loadIdleHandsPlugins, i as resolveCronStyleNow, in as detectSuspiciousPatterns, ir as setTtsProvider, it as migrateLegacyCronPayload, jn as isAbortRequestText, jt as agentCommand, k as ensureOutboundSessionEntry, kt as sleepWithAbort, m as waitForEmbeddedPiRunEnd, mr as waitForActiveTasks, n as BARE_SESSION_RESET_PROMPT, nr as resolveTtsProviderOrder, nt as normalizePayloadToSystemText, on as isExternalHookSession, or as OPENAI_TTS_MODELS, ot as hasLegacyDeliveryHints, p as getActiveEmbeddedRunCount, pr as setCommandLaneConcurrency, pt as resolvePluginTools, qn as resolveUserTimezone, rn as buildSafeExternalPrompt, rr as setTtsEnabled, rt as normalizeRequiredName, sn as unbindThreadBindingsBySessionKey, sr as OPENAI_TTS_VOICES, st as stripLegacyDeliveryFields, tr as resolveTtsPrefsPath, tt as normalizeOptionalText, ur as getTotalQueueSize, ut as applyBrowserProxyPaths, v as createIdleHandsTools, w as loadSessionEntry, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as listAgentsForGateway, y as canonicalizeSpawnedByForAgent, yt as loadProviderUsageSummary, z as scheduleGatewaySigusr1Restart, zn as readLatestAssistantReply, zr as DEFAULT_INPUT_MAX_REDIRECTS, zt as resolveOutboundChannelPlugin } from "./reply-D5gCiiGr.js";
5
- import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, O as isWorkspaceOnboardingCompleted, S as DEFAULT_MEMORY_FILENAME, T as DEFAULT_USER_FILENAME, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, g as DEFAULT_AGENTS_FILENAME, i as resolveAgentConfig, j as resolveWorkspaceTemplateDir, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME, w as DEFAULT_TOOLS_FILENAME, x as DEFAULT_MEMORY_ALT_FILENAME, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-RA0zXRpu.js";
4
+ import { $ as normalizeOptionalAgentId, $n as resolveTtsAutoMode, $t as resolveAgentAvatar, A as resolveOutboundSessionRoute, B as setGatewaySigusr1RestartPolicy, Bn as buildOutboundSessionContext, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as createOutboundSendDeps, C as loadCombinedSessionStoreForGateway, Cn as formatZonedTimestamp, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dr as requestHeartbeatNow, Dt as requestBodyErrorToText, E as resolveGatewaySessionStoreTarget, En as getTotalPendingReplies, Et as readJsonBodyWithLimit, F as deferGatewayRestartUntilIdle, Fn as listDescendantRunsForRequester, Fr as normalizeSendPolicy, Gn as onAgentEvent, Gr as resolveAgentTimeoutMs, Gt as setCliSessionId, H as consumeRestartSentinel, Hn as clearAgentRunContext, Hr as extractImageContentFromSource, Ht as parseVerboseOverride, I as emitGatewayRestart, Ir as resolveSendPolicy, J as writeRestartSentinel, Jn as clearBootstrapSnapshot, K as summarizeRestartSentinel, Kn as registerAgentRunContext, Kt as runCliAgent, L as isGatewaySigusr1RestartExternallyAllowed, Ln as runSubagentAnnounceFlow, Lr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Lt as resolveOutboundTarget, M as resetDirectoryCache, Mn as stopSubagentsForRequester, Mr as ACP_SESSION_IDENTITY_RENDERER_VERSION, Nn as countActiveDescendantRuns, Nr as getAcpSessionManager, Nt as resolveAgentDeliveryPlan, Ot as computeBackoff, P as consumeGatewaySigusr1RestartAuthorization, Pn as initSubagentRegistry, Pr as resolveAgentSessionDirs, Pt as resolveAgentOutboundTarget, Q as inferLegacyName, Qn as resolveTtsApiKey, Qt as resolveSessionAuthProfileOverride, R as markGatewaySigusr1RestartHandled, Rn as resolveAnnounceTargetFromKey, Rr as DEFAULT_INPUT_IMAGE_MIMES, Rt as resolveSessionDeliveryTarget, S as listSessionsFromStore, T as pruneLegacyStoreKeys, Tn as createReplyDispatcher, Tt as handleSlackHttpRequest, U as formatDoctorNonInteractiveHint, Un as emitAgentEvent, Ur as normalizeMimeList, Ut as runWithModelFallback, V as setPreRestartDeferralCheck, Vn as clearSessionQueues, Vr as extractFileContentFromSource, Vt as applyVerboseOverride, W as formatRestartSentinelMessage, Wn as getAgentRunContext, Wr as resolveInputFileLimits, Wt as getCliSessionId, X as normalizeCronJobCreate, Xn as isTtsEnabled, Xt as lookupContextTokens, Y as normalizeHttpWebhookUrl, Yn as getTtsProvider, Yt as applyModelOverrideToSessionEntry, Z as normalizeCronJobPatch, Zn as isTtsProviderConfigured, _t as normalizeGroupActivation, an as getHookType, ar as textToSpeech, at as buildDeliveryFromLegacyPayload, br as stripHeartbeatToken, cr as getActiveTaskCount, d as runEmbeddedPiAgent, dn as buildHistoryContextFromEntries, dr as markGatewayDraining, dt as persistBrowserProxyFiles, er as resolveTtsConfig, et as normalizeOptionalSessionKey, f as abortEmbeddedPiRun, fr as resetAllLanes, ft as getPluginToolMeta, g as buildDefaultToolPolicyPipelineSteps, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as applyToolPolicyPipeline, hr as CommandLane, ht as loadIdleHandsPlugins, i as resolveCronStyleNow, in as detectSuspiciousPatterns, ir as setTtsProvider, it as migrateLegacyCronPayload, jn as isAbortRequestText, jt as agentCommand, k as ensureOutboundSessionEntry, kt as sleepWithAbort, m as waitForEmbeddedPiRunEnd, mr as waitForActiveTasks, n as BARE_SESSION_RESET_PROMPT, nr as resolveTtsProviderOrder, nt as normalizePayloadToSystemText, on as isExternalHookSession, or as OPENAI_TTS_MODELS, ot as hasLegacyDeliveryHints, p as getActiveEmbeddedRunCount, pr as setCommandLaneConcurrency, pt as resolvePluginTools, qn as resolveUserTimezone, rn as buildSafeExternalPrompt, rr as setTtsEnabled, rt as normalizeRequiredName, sn as unbindThreadBindingsBySessionKey, sr as OPENAI_TTS_VOICES, st as stripLegacyDeliveryFields, tr as resolveTtsPrefsPath, tt as normalizeOptionalText, ur as getTotalQueueSize, ut as applyBrowserProxyPaths, v as createIdleHandsTools, w as loadSessionEntry, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as listAgentsForGateway, y as canonicalizeSpawnedByForAgent, yt as loadProviderUsageSummary, z as scheduleGatewaySigusr1Restart, zn as readLatestAssistantReply, zr as DEFAULT_INPUT_MAX_REDIRECTS, zt as resolveOutboundChannelPlugin } from "./reply-CdFdL9nL.js";
5
+ import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, O as isWorkspaceOnboardingCompleted, S as DEFAULT_MEMORY_FILENAME, T as DEFAULT_USER_FILENAME, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, g as DEFAULT_AGENTS_FILENAME, i as resolveAgentConfig, j as resolveWorkspaceTemplateDir, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME, w as DEFAULT_TOOLS_FILENAME, x as DEFAULT_MEMORY_ALT_FILENAME, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-Bn39ugK4.js";
6
6
  import { F as triggerInternalHook, M as clearInternalHooks, N as createInternalHookEvent, P as registerInternalHook, a as setConsoleSubsystemFilter, b as getActivePluginRegistry, d as CHANNEL_IDS, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger, w as createEmptyPluginRegistry } from "./subsystem-CGZX2PBV.js";
7
7
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
8
8
  import { C as isSubagentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, h as normalizeAccountId$1, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, w as parseAgentSessionKey, x as isCronRunSessionKey } from "./session-key-Cuihcz_O.js";
9
- import { a as openBoundaryFileSync, d as isNotFoundPathError, i as openBoundaryFile, m as matchesSkillFilter, o as openVerifiedFileSync, s as sameFileIdentity, t as resolveIdleHandsPackageRoot } from "./idlehands-root-B8cUs-5M.js";
9
+ import { a as openBoundaryFileSync, d as isNotFoundPathError, i as openBoundaryFile, m as matchesSkillFilter, o as openVerifiedFileSync, s as sameFileIdentity, t as resolveIdleHandsPackageRoot } from "./idlehands-root-DFL2GrNW.js";
10
10
  import { i as logDebug, n as runExec, s as logWarn, t as runCommandWithTimeout } from "./exec-CKHMT0tZ.js";
11
- import { $r as DEFAULT_PROVIDER, Bt as resolveConfigSnapshotHash, Ft as createConfigIO, Ht as writeConfigFile, It as loadConfig, Lt as parseConfigJson5, Nt as migrateLegacyConfig, Qr as DEFAULT_MODEL, Rt as readConfigFileSnapshot, Ut as validateConfigObjectWithPlugins, Wr as normalizeSecretInput, Wt as IdleHandsSchema, Zr as DEFAULT_CONTEXT_TOKENS, _n as looksLikeAvatarPath, a as getModelRefStatus, cn as parseDurationMs, dr as buildTalkConfigResponse, f as resolveAllowedModelRef, fn as isAvatarHttpUrl, g as resolveHooksGmailModel, h as resolveDefaultModelForAgent, ln as parseByteSize, m as resolveConfiguredModelRef, mr as resolveSubagentMaxConcurrent, nr as applyLegacyMigrations, pn as isAvatarImageDataUrl, pr as resolveAgentMaxConcurrent, s as isCliProvider, t as buildAllowedModelSet, tr as applyMergePatch, un as AVATAR_MAX_BYTES, x as resolveThinkingDefault, y as resolveSubagentConfiguredModelSelection, zr as isPidAlive, zt as readConfigFileSnapshotForWrite } from "./model-selection-0dGxYGp8.js";
11
+ import { $r as DEFAULT_PROVIDER, Bt as resolveConfigSnapshotHash, Ft as createConfigIO, Ht as writeConfigFile, It as loadConfig, Lt as parseConfigJson5, Nt as migrateLegacyConfig, Qr as DEFAULT_MODEL, Rt as readConfigFileSnapshot, Ut as validateConfigObjectWithPlugins, Wr as normalizeSecretInput, Wt as IdleHandsSchema, Zr as DEFAULT_CONTEXT_TOKENS, _n as looksLikeAvatarPath, a as getModelRefStatus, cn as parseDurationMs, dr as buildTalkConfigResponse, f as resolveAllowedModelRef, fn as isAvatarHttpUrl, g as resolveHooksGmailModel, h as resolveDefaultModelForAgent, ln as parseByteSize, m as resolveConfiguredModelRef, mr as resolveSubagentMaxConcurrent, nr as applyLegacyMigrations, pn as isAvatarImageDataUrl, pr as resolveAgentMaxConcurrent, s as isCliProvider, t as buildAllowedModelSet, tr as applyMergePatch, un as AVATAR_MAX_BYTES, x as resolveThinkingDefault, y as resolveSubagentConfiguredModelSelection, zr as isPidAlive, zt as readConfigFileSnapshotForWrite } from "./model-selection-CSn9tUuH.js";
12
12
  import "./github-copilot-token-D7lpquOO.js";
13
13
  import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
14
14
  import "./boolean-BsqeuxE6.js";
15
15
  import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-Bx-F45X5.js";
16
16
  import "./host-env-security-DkAVVuaw.js";
17
17
  import { i as resolveRuntimeServiceVersion, r as VERSION } from "./env-vars-sTMVGyld.js";
18
- import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-Bak1x76G.js";
19
- import "./dock-Y96MzKuM.js";
18
+ import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-RfRn8HJx.js";
19
+ import "./dock-CzF5XYGd.js";
20
20
  import { _ as normalizeGatewayClientMode, f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-DVauVtrg.js";
21
- import "./send-DwdHiC7_.js";
22
- import { d as registerUnhandledRejectionHandler } from "./runner-DzszLzI4.js";
23
- import { x as extractTextFromChatContent } from "./image-DSDEbSiO.js";
24
- import "./models-config-C5A1wDWh.js";
25
- import "./pi-model-discovery-BIP3RjXl.js";
26
- import "./pi-embedded-helpers-BCsfqpDt.js";
27
- import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-DcUw5h3p.js";
21
+ import "./send-CVIXqubC.js";
22
+ import { d as registerUnhandledRejectionHandler } from "./runner-BFG54hnb.js";
23
+ import { x as extractTextFromChatContent } from "./image-C2JZiK-6.js";
24
+ import "./models-config-lQpqp472.js";
25
+ import "./pi-model-discovery-Bt79ifyi.js";
26
+ import "./pi-embedded-helpers-BkzrQ5bZ.js";
27
+ import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-CfPbhDY_.js";
28
28
  import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-4_Wxc542.js";
29
- import "./chrome-VBsQfIrt.js";
29
+ import "./chrome-YguTEaLx.js";
30
30
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-B5Irc_Bi.js";
31
31
  import { t as safeEqualSecret } from "./secret-equal-D_OXOV-d.js";
32
32
  import "./ip-DJ5wsTQn.js";
33
33
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C9lH_YnG.js";
34
34
  import { c as normalizeHostHeader, d as resolveGatewayBindHost, f as resolveGatewayListenHosts, i as isLoopbackHost, l as pickPrimaryLanIPv4, n as isLocalishHost, o as isTrustedProxyAddress, p as resolveHostName, r as isLoopbackAddress, s as isValidIPv4, t as rawDataToString, u as resolveClientIp } from "./ws-XBTtYpJc.js";
35
35
  import { a as resolveGatewayAuth, c as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, i as isLocalDirectRequest, l as createAuthRateLimiter, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH, t as assertGatewayAuthConfigured, u as normalizeRateLimitClientIp } from "./auth-heRVBxh2.js";
36
- import { c as ensureGatewayStartupAuth, l as mergeGatewayTailscaleConfig } from "./server-context-DI0W_H7R.js";
36
+ import { c as ensureGatewayStartupAuth, l as mergeGatewayTailscaleConfig } from "./server-context-BxNSTpH6.js";
37
37
  import { d as hasBinary } from "./frontmatter-D-sQ_Hqk.js";
38
- import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-DlvDyK8L.js";
39
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-FXBVVTLw.js";
40
- import "./paths-B-CLQ5RT.js";
38
+ import { i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-TIyQDZx7.js";
39
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-BCskHdfJ.js";
40
+ import "./paths-Bt0fZexW.js";
41
41
  import { i as compileSafeRegex } from "./redact-B_4KNlXs.js";
42
42
  import { a as isErrno, n as formatErrorMessage } from "./errors-DZDuPc3M.js";
43
- import { i as writeFileWithinRoot, n as openFileWithinRoot, r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-_JQUGpZf.js";
43
+ import { i as writeFileWithinRoot, n as openFileWithinRoot, r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-DNFrxDS-.js";
44
44
  import { t as SsrFBlockedError } from "./ssrf-Dw9zzKSM.js";
45
- import { c as detectMime } from "./image-ops-BU-VdLZu.js";
46
- import "./store-kH9wHHbO.js";
47
- import { a as inspectPortUsage, l as formatPortDiagnostics, r as ensurePortAvailable } from "./ports-SQy1d-RL.js";
45
+ import { c as detectMime } from "./image-ops-BkoEFRYH.js";
46
+ import "./store-CLNuI8-G.js";
47
+ import { a as inspectPortUsage, l as formatPortDiagnostics, r as ensurePortAvailable } from "./ports-DWJO5S52.js";
48
48
  import { t as movePathToTrash } from "./trash-CUFiyQN5.js";
49
49
  import "./server-middleware-BC21xYvr.js";
50
- import { $ as resolveExplicitAgentSessionKey, A as cleanupArchivedSessionTranscripts, C as mergeDeliveryContext, D as archiveFileOnDisk, F as stripEnvelopeFromMessage, H as evaluateSessionFreshness, I as stripEnvelopeFromMessages, J as mergeSessionEntry, M as readSessionPreviewItemsFromTranscript, O as archiveSessionTranscripts, P as resolveSessionTranscriptCandidates, Q as resolveAgentMainSessionKey, R as stripInlineDirectiveTagsForDisplay, T as normalizeSessionDeliveryFields, W as resolveSessionResetPolicy, X as setSessionRuntimeModel, Z as canonicalizeMainSessionAlias, c as loadSessionStore, et as resolveMainSessionKey, g as updateSessionStore, j as readSessionMessages, k as capArrayByJsonBytes, lt as cleanStaleLockFiles, n as extractDeliveryInfo, r as parseSessionThreadInfo, rt as snapshotSessionOrigin, tt as resolveMainSessionKeyFromConfig, x as deliveryContextFromSession, z as stripInlineDirectiveTagsFromMessageForDisplay } from "./sessions-BtPXimXQ.js";
51
- import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-D46VZh7u.js";
52
- import { i as resolveWhatsAppAccount } from "./accounts-DLTODa_Z.js";
53
- import "./accounts-3HS_UAhJ.js";
54
- import "./accounts-DgbTKQoW.js";
55
- import { t as buildChannelAccountBindings } from "./bindings-B59Q7nsk.js";
50
+ import { $ as resolveExplicitAgentSessionKey, A as cleanupArchivedSessionTranscripts, C as mergeDeliveryContext, D as archiveFileOnDisk, F as stripEnvelopeFromMessage, H as evaluateSessionFreshness, I as stripEnvelopeFromMessages, J as mergeSessionEntry, M as readSessionPreviewItemsFromTranscript, O as archiveSessionTranscripts, P as resolveSessionTranscriptCandidates, Q as resolveAgentMainSessionKey, R as stripInlineDirectiveTagsForDisplay, T as normalizeSessionDeliveryFields, W as resolveSessionResetPolicy, X as setSessionRuntimeModel, Z as canonicalizeMainSessionAlias, c as loadSessionStore, et as resolveMainSessionKey, g as updateSessionStore, j as readSessionMessages, k as capArrayByJsonBytes, lt as cleanStaleLockFiles, n as extractDeliveryInfo, r as parseSessionThreadInfo, rt as snapshotSessionOrigin, tt as resolveMainSessionKeyFromConfig, x as deliveryContextFromSession, z as stripInlineDirectiveTagsFromMessageForDisplay } from "./sessions-BqWocozB.js";
51
+ import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-B4hASNc2.js";
52
+ import { i as resolveWhatsAppAccount } from "./accounts-D-hQsUw-.js";
53
+ import "./accounts-DsVN0UNw.js";
54
+ import "./accounts-D87a1Y_K.js";
55
+ import { t as buildChannelAccountBindings } from "./bindings-DZjkLUU_.js";
56
56
  import "./logging-q4KyMmY-.js";
57
- import "./auth-store-DDzIMy8_.js";
58
- import "./send-DuwdEkLw.js";
57
+ import "./auth-store-CMyrmmSF.js";
58
+ import "./send-BPwTl4-K.js";
59
59
  import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath, l as resolveSessionTranscriptsDirForAgent, o as resolveSessionTranscriptPath, u as resolveStorePath } from "./paths-DRz46q00.js";
60
60
  import { i as normalizeInputProvenance } from "./input-provenance-CTnwu8Ge.js";
61
61
  import "./chat-envelope-Bebo3vwl.js";
62
- import "./tool-images-CHqepyF_.js";
62
+ import "./tool-images-DZHrc4pq.js";
63
63
  import "./tool-display-Dac7lHGW.js";
64
64
  import { t as fetchWithSsrFGuard } from "./fetch-guard-yUZu1Vzc.js";
65
- import "./api-key-rotation-B-FTJm5p.js";
66
- import "./local-roots-q0xbefkf.js";
67
- import { n as loadModelCatalog } from "./model-catalog-D9no0CH2.js";
65
+ import "./api-key-rotation-nXQVJErE.js";
66
+ import "./local-roots-Cco87A2_.js";
67
+ import { n as loadModelCatalog } from "./model-catalog-BCsDrrvq.js";
68
68
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Dg-QZ_pN.js";
69
- import { S as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads, w as runGlobalGatewayStopSafely } from "./deliver--kttnrER.js";
70
- import { r as isRestartEnabled } from "./commands-Dj5LalLo.js";
71
- import "./commands-registry-CURlRZQJ.js";
72
- import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as PROTOCOL_VERSION, B as validateExecApprovalsGetParams, Bt as getPairedDevice, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, Ft as buildDeviceAuthPayload, G as validateModelsListParams, Gt as revokeDeviceToken, H as validateExecApprovalsNodeSetParams, Ht as rejectDevicePairing, I as validateDeviceTokenRevokeParams, It as buildDeviceAuthPayloadV3, J as validateNodeInvokeParams, Jt as updatePairedDeviceMetadata, K as validateNodeDescribeParams, Kt as rotateDeviceToken, L as validateDeviceTokenRotateParams, Lt as normalizeDeviceMetadataForAuth, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, Qt as deriveDeviceIdFromPublicKey, R as validateExecApprovalRequestParams, Rt as approveDevicePairing, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as removePairedDevice, V as validateExecApprovalsNodeGetParams, Vt as listDevicePairing, W as validateLogsTailParams, Wt as requestDevicePairing, X as validateNodeListParams, Xt as roleScopesAllow, Y as validateNodeInvokeResultParams, Yt as verifyDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, at as validateRequestFrame, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, en as normalizeDevicePublicKeyBase64Url, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, qt as summarizeDeviceTokens, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tn as verifyDeviceSignature, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, w as validateConnectParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateToolsCatalogParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, z as validateExecApprovalResolveParams, zt as ensureDeviceToken } from "./client-DtnD-ee9.js";
73
- import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-BpWhjuOg.js";
74
- import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-lKXTMQ_M.js";
69
+ import { S as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads, w as runGlobalGatewayStopSafely } from "./deliver-yTpXc5sv.js";
70
+ import { r as isRestartEnabled } from "./commands-D3BU_t7G.js";
71
+ import "./commands-registry-Cj4D_1tw.js";
72
+ import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as PROTOCOL_VERSION, B as validateExecApprovalsGetParams, Bt as getPairedDevice, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, Ft as buildDeviceAuthPayload, G as validateModelsListParams, Gt as revokeDeviceToken, H as validateExecApprovalsNodeSetParams, Ht as rejectDevicePairing, I as validateDeviceTokenRevokeParams, It as buildDeviceAuthPayloadV3, J as validateNodeInvokeParams, Jt as updatePairedDeviceMetadata, K as validateNodeDescribeParams, Kt as rotateDeviceToken, L as validateDeviceTokenRotateParams, Lt as normalizeDeviceMetadataForAuth, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, Qt as deriveDeviceIdFromPublicKey, R as validateExecApprovalRequestParams, Rt as approveDevicePairing, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as removePairedDevice, V as validateExecApprovalsNodeGetParams, Vt as listDevicePairing, W as validateLogsTailParams, Wt as requestDevicePairing, X as validateNodeListParams, Xt as roleScopesAllow, Y as validateNodeInvokeResultParams, Yt as verifyDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, at as validateRequestFrame, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, en as normalizeDevicePublicKeyBase64Url, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, qt as summarizeDeviceTokens, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tn as verifyDeviceSignature, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, w as validateConnectParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateToolsCatalogParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, z as validateExecApprovalResolveParams, zt as ensureDeviceToken } from "./client-Dl5EAvfO.js";
73
+ import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-Du-oBD99.js";
74
+ import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-3hoCgQqp.js";
75
75
  import "./fetch-CYe1ekSh.js";
76
76
  import "./retry-Db05aSB8.js";
77
- import { a as readChannelAllowFromStoreSync } from "./pairing-store-CPpEEQJO.js";
77
+ import { a as readChannelAllowFromStoreSync } from "./pairing-store-qvpPoWL_.js";
78
78
  import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-C2s2dPha.js";
79
- import "./exec-approvals-allowlist-Co2tJSEo.js";
80
- import "./exec-safe-bin-runtime-policy-DaoU9-ni.js";
81
- import "./nodes-screen-CcpPaFxa.js";
82
- import { a as ToolInputError } from "./target-errors-bLIVFsbF.js";
79
+ import "./exec-approvals-allowlist-8AkOwwIr.js";
80
+ import "./exec-safe-bin-runtime-policy-DYXuBKqH.js";
81
+ import "./nodes-screen-CIAn0wXq.js";
82
+ import { a as ToolInputError } from "./target-errors-BYuWhuLU.js";
83
83
  import "./diagnostic-session-state-CJHdRyOy.js";
84
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-DEdycYxq.js";
84
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-BodPmGCY.js";
85
85
  import { f as startDiagnosticHeartbeat, h as isDiagnosticsEnabled, p as stopDiagnosticHeartbeat } from "./diagnostic-ByHpt6q8.js";
86
- import { d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send--lzpNy4f.js";
87
- import "./model-C-icShH2.js";
88
- import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-C3y4zpTl.js";
89
- import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-CUGwnVIY.js";
90
- import { n as resolveMemorySearchConfig } from "./manager-BMAFgXyU.js";
91
- import "./query-expansion-Clts_AGz.js";
86
+ import { d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-DDMaLJAQ.js";
87
+ import "./model-Bd-05WpB.js";
88
+ import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BMEdvSpA.js";
89
+ import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-4wfelGdK.js";
90
+ import { n as resolveMemorySearchConfig } from "./manager-BBeTPO2h.js";
91
+ import "./query-expansion-i5I3yavb.js";
92
92
  import "./chunk-ClMFHJu-.js";
93
- import "./markdown-tables-DZClqsNo.js";
94
- import "./ir-VncGpwA1.js";
93
+ import "./markdown-tables-C5hTDqNm.js";
94
+ import "./ir-DV0Hszc8.js";
95
95
  import "./render-DC4qnRqG.js";
96
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-DfITIKZj.js";
96
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-B_ME3yF6.js";
97
97
  import { n as normalizePollInput } from "./polls-CGpoOVqd.js";
98
98
  import { t as getChannelActivity } from "./channel-activity-DaCsrdWK.js";
99
- import "./tables-g9xkflht.js";
100
- import "./send-C4v0Leny.js";
99
+ import "./tables-CZSD889r.js";
100
+ import "./send-BCPkAE2k.js";
101
101
  import "./proxy-yk1Oqe9p.js";
102
102
  import { t as formatDocsLink } from "./links-15764jZB.js";
103
103
  import { n as runCommandWithRuntime } from "./cli-utils-CH2y4E2f.js";
104
104
  import { t as formatHelpExamples } from "./help-format-CMAqOikG.js";
105
105
  import { n as withProgress } from "./progress-BQLz1r3L.js";
106
- import "./resolve-route-D_AbcmD6.js";
107
- import "./replies-hSFVxL4h.js";
108
- import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-BFzmZAfo.js";
109
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-SsExQ3Bz.js";
110
- import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-CwPrf7RC.js";
111
- import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-7DUxMy6A.js";
112
- import { n as resolveMessageChannelSelection } from "./channel-selection-ZxRkxpuF.js";
113
- import "./outbound-attachment-Bot3bRnK.js";
106
+ import "./resolve-route-Ef_Yt2Dw.js";
107
+ import "./replies-Czp4hvpS.js";
108
+ import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-BwIRWSCI.js";
109
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs-D3bousoX.js";
110
+ import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-BotXja4Z.js";
111
+ import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-BMuSi4aV.js";
112
+ import { n as resolveMessageChannelSelection } from "./channel-selection-3jUl-PyW.js";
113
+ import "./outbound-attachment-jYdMgCml.js";
114
114
  import "./delivery-queue-BvDRo8CK.js";
115
115
  import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-DS1rjzML.js";
116
- import "./send-DQiw_nGD.js";
117
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-mzy38DiC.js";
116
+ import "./send-CEavqqEz.js";
117
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-CdzbIhrm.js";
118
118
  import "./prompt-style-kmKiCZnm.js";
119
- import "./pairing-labels-ChQJzbS9.js";
119
+ import "./pairing-labels-DuZ7ih-T.js";
120
120
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-D1JXJKiz.js";
121
- import "./server-lifecycle-B5PlrlbG.js";
121
+ import "./server-lifecycle-CGKrGrhM.js";
122
122
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-rQoQSWkz.js";
123
- import { n as resolveSystemRunCommand } from "./system-run-command-qJdgzxLp.js";
123
+ import { n as resolveSystemRunCommand } from "./system-run-command-BIhrK3OI.js";
124
124
  import { i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-CVWq9u04.js";
125
125
  import { t as ensureIdleHandsCliOnPath } from "./path-env-CKSLQUS1.js";
126
126
  import "./runtime-guard-X6f4YmTM.js";
127
- import { t as forceFreePortAndWait } from "./ports-B2o0FSFD.js";
128
- import { t as buildWorkspaceSkillStatus } from "./skills-status-qjQ8XP0h.js";
127
+ import { t as forceFreePortAndWait } from "./ports-B07M55Gr.js";
128
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-Q9skQExW.js";
129
129
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-ulSRJzn7.js";
130
130
  import { n as inheritOptionFromParent } from "./command-options-D4MmqoOd.js";
131
131
  import { t as WizardCancelledError } from "./prompts-9ZBCWbQB.js";
132
132
  import { t as resolveChannelDefaultAccountId } from "./helpers-C6eW1WGZ.js";
133
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CHtoYxr6.js";
134
- import { t as isWithinDir } from "./path-safety-DwibX65n.js";
135
- import "./install-safe-path-ChNR9pl6.js";
136
- import "./skill-scanner-D7mzXRXd.js";
133
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CPUPtcKt.js";
134
+ import { t as isWithinDir } from "./path-safety-C1Y004P_.js";
135
+ import "./install-safe-path-CNNMzJl9.js";
136
+ import "./skill-scanner-B4Ftsbd2.js";
137
137
  import { t as buildChannelAccountSnapshot } from "./status-D8Z2uvBM.js";
138
- import "./channels-status-issues-CDpWjdI3.js";
139
- import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-BBNDQZIe.js";
140
- import "./daemon-install-helpers-BZY9-jNW.js";
141
- import "./systemd-CaCR5CyM.js";
142
- import "./service-C8NMS3m_.js";
143
- import "./lifecycle-core-B6UoqYTJ.js";
144
- import "./systemd-hints-DHu-HVFx.js";
138
+ import "./channels-status-issues-hgASw9UA.js";
139
+ import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-KMo22a85.js";
140
+ import "./daemon-install-helpers-Bug_GYuy.js";
141
+ import "./systemd-DyrVLTI0.js";
142
+ import "./service-Bj2oSfpw.js";
143
+ import "./lifecycle-core-DOScNyOv.js";
144
+ import "./systemd-hints-BoKKzRI_.js";
145
145
  import { t as parsePort$1 } from "./parse-port-l2c0Yyf3.js";
146
- import { n as addGatewayServiceCommands } from "./daemon-cli-DUg-s4LG.js";
147
- import "./diagnostics-DmZbQ8Nc.js";
146
+ import { n as addGatewayServiceCommands } from "./daemon-cli-DpyQu0Dp.js";
147
+ import "./diagnostics-CdUgLS0N.js";
148
148
  import "./table-B9AmL3M1.js";
149
149
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-FDdFH5E8.js";
150
- import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DpLSpJIl.js";
151
- import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-CKeZnjft.js";
150
+ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Jzrx8DfN.js";
151
+ import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-C5VPFgbJ.js";
152
152
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-DMslm8Hx.js";
153
- import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-CWnPokQF.js";
154
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health--GQAFTBr.js";
155
- import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C7ZpN9hN.js";
156
- import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-CDbY5AIr.js";
157
- import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-XmXLaHNk.js";
158
- import { t as runOnboardingWizard } from "./onboarding-Da3n7Rvs.js";
159
- import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-e2xmxGGE.js";
153
+ import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-YWasgjym.js";
154
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-lZsCLX6p.js";
155
+ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CiaCDBvZ.js";
156
+ import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-B4nJPU2N.js";
157
+ import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-DEmy759r.js";
158
+ import { t as runOnboardingWizard } from "./onboarding-Cf3JxJxY.js";
159
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-CuwLAoXk.js";
160
160
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DRJTQOMM.js";
161
- import "./node-service-C3vyxHLA.js";
162
- import "./status.update-CTi6vuWj.js";
163
- import { a as matchSystemRunApprovalBindingV1, i as buildSystemRunApprovalBindingV1, n as resolveSystemRunApprovalRequestContext, o as missingSystemRunApprovalBindingV1, r as resolveSystemRunApprovalRuntimeContext, s as toSystemRunApprovalMismatchError } from "./system-run-approval-context-CISBXlNw.js";
164
- import { t as installSkill } from "./skills-install-tr6wRWZj.js";
165
- import { t as runGatewayUpdate } from "./update-runner-CN7Dm9tg.js";
166
- import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-D3pARwoB.js";
161
+ import "./node-service-GpI0jzKr.js";
162
+ import "./status.update-C3uRz7W6.js";
163
+ import { a as matchSystemRunApprovalBindingV1, i as buildSystemRunApprovalBindingV1, n as resolveSystemRunApprovalRequestContext, o as missingSystemRunApprovalBindingV1, r as resolveSystemRunApprovalRuntimeContext, s as toSystemRunApprovalMismatchError } from "./system-run-approval-context-xZVoE4nS.js";
164
+ import { t as installSkill } from "./skills-install-D0JHP5uM.js";
165
+ import { t as runGatewayUpdate } from "./update-runner-DRglQgXe.js";
166
+ import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CDw87aZG.js";
167
167
  import { fileURLToPath, pathToFileURL } from "node:url";
168
168
  import * as fsSync from "node:fs";
169
169
  import fs from "node:fs";
@@ -171,7 +171,7 @@ import os from "node:os";
171
171
  import path from "node:path";
172
172
  import chalk from "chalk";
173
173
  import { isDeepStrictEqual } from "node:util";
174
- import fs$1 from "node:fs/promises";
174
+ import fsPromises from "node:fs/promises";
175
175
  import { spawn, spawnSync } from "node:child_process";
176
176
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
177
177
  import { z } from "zod";
@@ -1242,7 +1242,7 @@ function resolveCheckIntervalMs(cfg) {
1242
1242
  }
1243
1243
  async function readState(statePath) {
1244
1244
  try {
1245
- const raw = await fs$1.readFile(statePath, "utf-8");
1245
+ const raw = await fsPromises.readFile(statePath, "utf-8");
1246
1246
  const parsed = JSON.parse(raw);
1247
1247
  return parsed && typeof parsed === "object" ? parsed : {};
1248
1248
  } catch {
@@ -1250,8 +1250,8 @@ async function readState(statePath) {
1250
1250
  }
1251
1251
  }
1252
1252
  async function writeState(statePath, state) {
1253
- await fs$1.mkdir(path.dirname(statePath), { recursive: true });
1254
- await fs$1.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
1253
+ await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
1254
+ await fsPromises.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
1255
1255
  }
1256
1256
  function sameUpdateAvailable(a, b) {
1257
1257
  if (a === b) return true;
@@ -1324,7 +1324,7 @@ async function runAutoUpdateCommand(params) {
1324
1324
  path.join(params.root, "dist", "index.mjs")
1325
1325
  ];
1326
1326
  for (const candidate of candidates) try {
1327
- await fs$1.access(candidate);
1327
+ await fsPromises.access(candidate);
1328
1328
  argv.push(execPath, candidate, ...baseArgs);
1329
1329
  break;
1330
1330
  } catch {}
@@ -4160,20 +4160,20 @@ function resolveCronRunLogPruneOptions(cfg) {
4160
4160
  };
4161
4161
  }
4162
4162
  async function pruneIfNeeded(filePath, opts) {
4163
- const stat = await fs$1.stat(filePath).catch(() => null);
4163
+ const stat = await fsPromises.stat(filePath).catch(() => null);
4164
4164
  if (!stat || stat.size <= opts.maxBytes) return;
4165
- const lines = (await fs$1.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4165
+ const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4166
4166
  const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
4167
4167
  const { randomBytes } = await import("node:crypto");
4168
4168
  const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
4169
- await fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4170
- await fs$1.rename(tmp, filePath);
4169
+ await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4170
+ await fsPromises.rename(tmp, filePath);
4171
4171
  }
4172
4172
  async function appendCronRunLog(filePath, entry, opts) {
4173
4173
  const resolved = path.resolve(filePath);
4174
4174
  const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
4175
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
4176
- await fs$1.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4175
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
4176
+ await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4177
4177
  await pruneIfNeeded(resolved, {
4178
4178
  maxBytes: opts?.maxBytes ?? DEFAULT_CRON_RUN_LOG_MAX_BYTES,
4179
4179
  keepLines: opts?.keepLines ?? DEFAULT_CRON_RUN_LOG_KEEP_LINES
@@ -4266,7 +4266,7 @@ function filterRunLogEntries(entries, opts) {
4266
4266
  }
4267
4267
  async function readCronRunLogEntriesPage(filePath, opts) {
4268
4268
  const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
4269
- const raw = await fs$1.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4269
+ const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4270
4270
  const statuses = normalizeRunStatuses(opts);
4271
4271
  const deliveryStatuses = normalizeDeliveryStatuses(opts);
4272
4272
  const query = opts?.query?.trim().toLowerCase() ?? "";
@@ -4302,7 +4302,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4302
4302
  const query = opts.query?.trim().toLowerCase() ?? "";
4303
4303
  const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
4304
4304
  const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
4305
- const jsonlFiles = (await fs$1.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
4305
+ const jsonlFiles = (await fsPromises.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
4306
4306
  if (jsonlFiles.length === 0) return {
4307
4307
  entries: [],
4308
4308
  total: 0,
@@ -4312,7 +4312,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4312
4312
  nextOffset: null
4313
4313
  };
4314
4314
  const filtered = filterRunLogEntries((await Promise.all(jsonlFiles.map(async (filePath) => {
4315
- return parseAllRunLogEntries(await fs$1.readFile(filePath, "utf-8").catch(() => ""));
4315
+ return parseAllRunLogEntries(await fsPromises.readFile(filePath, "utf-8").catch(() => ""));
4316
4316
  }))).flat(), {
4317
4317
  statuses,
4318
4318
  deliveryStatuses,
@@ -9018,7 +9018,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
9018
9018
  }
9019
9019
  async function resolveWorkspaceRealPath(workspaceDir) {
9020
9020
  try {
9021
- return await fs$1.realpath(workspaceDir);
9021
+ return await fsPromises.realpath(workspaceDir);
9022
9022
  } catch {
9023
9023
  return path.resolve(workspaceDir);
9024
9024
  }
@@ -9042,7 +9042,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9042
9042
  }
9043
9043
  let candidateLstat;
9044
9044
  try {
9045
- candidateLstat = await fs$1.lstat(candidatePath);
9045
+ candidateLstat = await fsPromises.lstat(candidatePath);
9046
9046
  } catch (err) {
9047
9047
  if (isNotFoundPathError(err)) {
9048
9048
  if (params.allowMissing) return {
@@ -9062,7 +9062,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9062
9062
  if (candidateLstat.isSymbolicLink()) {
9063
9063
  let targetReal;
9064
9064
  try {
9065
- targetReal = await fs$1.realpath(candidatePath);
9065
+ targetReal = await fsPromises.realpath(candidatePath);
9066
9066
  } catch (err) {
9067
9067
  if (isNotFoundPathError(err)) {
9068
9068
  if (params.allowMissing) return {
@@ -9081,7 +9081,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9081
9081
  }
9082
9082
  let targetStat;
9083
9083
  try {
9084
- targetStat = await fs$1.stat(targetReal);
9084
+ targetStat = await fsPromises.stat(targetReal);
9085
9085
  } catch (err) {
9086
9086
  if (isNotFoundPathError(err)) {
9087
9087
  if (params.allowMissing) return {
@@ -9128,13 +9128,13 @@ async function resolveAgentWorkspaceFilePath(params) {
9128
9128
  return {
9129
9129
  kind: "ready",
9130
9130
  requestPath,
9131
- ioPath: await fs$1.realpath(candidatePath).catch(() => candidatePath),
9131
+ ioPath: await fsPromises.realpath(candidatePath).catch(() => candidatePath),
9132
9132
  workspaceReal
9133
9133
  };
9134
9134
  }
9135
9135
  async function statFileSafely(filePath) {
9136
9136
  try {
9137
- const [stat, lstat] = await Promise.all([fs$1.stat(filePath), fs$1.lstat(filePath)]);
9137
+ const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.lstat(filePath)]);
9138
9138
  if (lstat.isSymbolicLink() || !stat.isFile()) return null;
9139
9139
  if (stat.nlink > 1) return null;
9140
9140
  if (!sameFileIdentity(stat, lstat)) return null;
@@ -9219,7 +9219,7 @@ function resolveOptionalStringParam(value) {
9219
9219
  async function moveToTrashBestEffort(pathname) {
9220
9220
  if (!pathname) return;
9221
9221
  try {
9222
- await fs$1.access(pathname);
9222
+ await fsPromises.access(pathname);
9223
9223
  } catch {
9224
9224
  return;
9225
9225
  }
@@ -9266,7 +9266,7 @@ const agentsHandlers = {
9266
9266
  dir: workspaceDir,
9267
9267
  ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
9268
9268
  });
9269
- await fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
9269
+ await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
9270
9270
  await writeConfigFile(nextConfig);
9271
9271
  const safeName = sanitizeIdentityLine(rawName);
9272
9272
  const emoji = resolveOptionalStringParam(params.emoji);
@@ -9279,7 +9279,7 @@ const agentsHandlers = {
9279
9279
  ...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
9280
9280
  ""
9281
9281
  ];
9282
- await fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
9282
+ await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
9283
9283
  respond(true, {
9284
9284
  ok: true,
9285
9285
  agentId,
@@ -9314,9 +9314,9 @@ const agentsHandlers = {
9314
9314
  });
9315
9315
  if (avatar) {
9316
9316
  const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
9317
- await fs$1.mkdir(workspace, { recursive: true });
9317
+ await fsPromises.mkdir(workspace, { recursive: true });
9318
9318
  const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
9319
- await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
9319
+ await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
9320
9320
  }
9321
9321
  respond(true, {
9322
9322
  ok: true,
@@ -9447,7 +9447,7 @@ const agentsHandlers = {
9447
9447
  const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
9448
9448
  if (!resolved) return;
9449
9449
  const { agentId, workspaceDir, name } = resolved;
9450
- await fs$1.mkdir(workspaceDir, { recursive: true });
9450
+ await fsPromises.mkdir(workspaceDir, { recursive: true });
9451
9451
  const filePath = path.join(workspaceDir, name);
9452
9452
  const resolvedPath = await resolveAgentWorkspaceFilePath({
9453
9453
  workspaceDir,
@@ -11659,14 +11659,14 @@ function isRollingLogFile(file) {
11659
11659
  return ROLLING_LOG_RE.test(path.basename(file));
11660
11660
  }
11661
11661
  async function resolveLogFile(file) {
11662
- if (await fs$1.stat(file).catch(() => null)) return file;
11662
+ if (await fsPromises.stat(file).catch(() => null)) return file;
11663
11663
  if (!isRollingLogFile(file)) return file;
11664
11664
  const dir = path.dirname(file);
11665
- const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => null);
11665
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
11666
11666
  if (!entries) return file;
11667
11667
  return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
11668
11668
  const fullPath = path.join(dir, entry.name);
11669
- const fileStat = await fs$1.stat(fullPath).catch(() => null);
11669
+ const fileStat = await fsPromises.stat(fullPath).catch(() => null);
11670
11670
  return fileStat ? {
11671
11671
  path: fullPath,
11672
11672
  mtimeMs: fileStat.mtimeMs
@@ -11674,7 +11674,7 @@ async function resolveLogFile(file) {
11674
11674
  }))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
11675
11675
  }
11676
11676
  async function readLogSlice(params) {
11677
- const stat = await fs$1.stat(params.file).catch(() => null);
11677
+ const stat = await fsPromises.stat(params.file).catch(() => null);
11678
11678
  if (!stat) return {
11679
11679
  cursor: 0,
11680
11680
  size: 0,
@@ -11712,7 +11712,7 @@ async function readLogSlice(params) {
11712
11712
  truncated,
11713
11713
  reset
11714
11714
  };
11715
- const handle = await fs$1.open(params.file, "r");
11715
+ const handle = await fsPromises.open(params.file, "r");
11716
11716
  try {
11717
11717
  let prefix = "";
11718
11718
  if (start > 0) {
@@ -12694,7 +12694,7 @@ const nodeHandlers = {
12694
12694
  const p = params;
12695
12695
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
12696
12696
  await respondUnavailableOnThrow(respond, async () => {
12697
- const { handleNodeEvent } = await import("./server-node-events-DvStFPGi.js");
12697
+ const { handleNodeEvent } = await import("./server-node-events-BSPxvn7O.js");
12698
12698
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
12699
12699
  await handleNodeEvent({
12700
12700
  deps: context.deps,
@@ -15680,7 +15680,7 @@ function normalizeAgentPayload(payload) {
15680
15680
  async function startBrowserControlServerIfEnabled() {
15681
15681
  if (isTruthyEnvValue(process.env.IDLEHANDS_SKIP_BROWSER_CONTROL_SERVER)) return null;
15682
15682
  const override = process.env.IDLEHANDS_BROWSER_CONTROL_MODULE?.trim();
15683
- const mod = override ? await import(override) : await import("./server-D6MltJIF.js");
15683
+ const mod = override ? await import(override) : await import("./server-BpSbZAwg.js");
15684
15684
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
15685
15685
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
15686
15686
  if (!start) return null;
@@ -15903,7 +15903,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
15903
15903
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
15904
15904
  const candidate = path.join(rootReal, rel);
15905
15905
  try {
15906
- const st = await fs$1.lstat(candidate);
15906
+ const st = await fsPromises.lstat(candidate);
15907
15907
  if (st.isSymbolicLink()) return null;
15908
15908
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
15909
15909
  } catch {}
@@ -15940,8 +15940,8 @@ async function resolveA2uiRoot() {
15940
15940
  for (const dir of candidates) try {
15941
15941
  const indexPath = path.join(dir, "index.html");
15942
15942
  const bundlePath = path.join(dir, "a2ui.bundle.js");
15943
- await fs$1.stat(indexPath);
15944
- await fs$1.stat(bundlePath);
15943
+ await fsPromises.stat(indexPath);
15944
+ await fsPromises.stat(bundlePath);
15945
15945
  return dir;
15946
15946
  } catch {}
15947
15947
  return null;
@@ -15950,7 +15950,7 @@ async function resolveA2uiRootReal() {
15950
15950
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
15951
15951
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
15952
15952
  const root = await resolveA2uiRoot();
15953
- cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
15953
+ cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
15954
15954
  cachedA2uiResolvedAtMs = Date.now();
15955
15955
  resolvingA2uiRoot = null;
15956
15956
  return cachedA2uiRootReal;
@@ -16171,13 +16171,13 @@ function normalizeBasePath(rawPath) {
16171
16171
  }
16172
16172
  async function prepareCanvasRoot(rootDir) {
16173
16173
  await ensureDir(rootDir);
16174
- const rootReal = await fs$1.realpath(rootDir);
16174
+ const rootReal = await fsPromises.realpath(rootDir);
16175
16175
  try {
16176
16176
  const indexPath = path.join(rootReal, "index.html");
16177
- await fs$1.stat(indexPath);
16177
+ await fsPromises.stat(indexPath);
16178
16178
  } catch {
16179
16179
  try {
16180
- await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
16180
+ await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
16181
16181
  } catch {}
16182
16182
  }
16183
16183
  return rootReal;
@@ -18991,7 +18991,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
18991
18991
  }
18992
18992
  async function readLockPayload(lockPath) {
18993
18993
  try {
18994
- const raw = await fs$1.readFile(lockPath, "utf8");
18994
+ const raw = await fsPromises.readFile(lockPath, "utf8");
18995
18995
  const parsed = JSON.parse(raw);
18996
18996
  if (typeof parsed.pid !== "number") return null;
18997
18997
  if (typeof parsed.createdAt !== "string") return null;
@@ -19026,11 +19026,11 @@ async function acquireGatewayLock(opts = {}) {
19026
19026
  const platform = opts.platform ?? process.platform;
19027
19027
  const port = opts.port;
19028
19028
  const { lockPath, configPath } = resolveGatewayLockPath(env);
19029
- await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
19029
+ await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
19030
19030
  const startedAt = Date.now();
19031
19031
  let lastPayload = null;
19032
19032
  while (Date.now() - startedAt < timeoutMs) try {
19033
- const handle = await fs$1.open(lockPath, "wx");
19033
+ const handle = await fsPromises.open(lockPath, "wx");
19034
19034
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
19035
19035
  const payload = {
19036
19036
  pid: process.pid,
@@ -19044,7 +19044,7 @@ async function acquireGatewayLock(opts = {}) {
19044
19044
  configPath,
19045
19045
  release: async () => {
19046
19046
  await handle.close().catch(() => void 0);
19047
- await fs$1.rm(lockPath, { force: true });
19047
+ await fsPromises.rm(lockPath, { force: true });
19048
19048
  }
19049
19049
  };
19050
19050
  } catch (err) {
@@ -19053,7 +19053,7 @@ async function acquireGatewayLock(opts = {}) {
19053
19053
  const ownerPid = lastPayload?.pid;
19054
19054
  const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
19055
19055
  if (ownerStatus === "dead" && ownerPid) {
19056
- await fs$1.rm(lockPath, { force: true });
19056
+ await fsPromises.rm(lockPath, { force: true });
19057
19057
  continue;
19058
19058
  }
19059
19059
  if (ownerStatus !== "alive") {
@@ -19063,13 +19063,13 @@ async function acquireGatewayLock(opts = {}) {
19063
19063
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
19064
19064
  }
19065
19065
  if (!stale) try {
19066
- const st = await fs$1.stat(lockPath);
19066
+ const st = await fsPromises.stat(lockPath);
19067
19067
  stale = Date.now() - st.mtimeMs > staleMs;
19068
19068
  } catch {
19069
19069
  stale = false;
19070
19070
  }
19071
19071
  if (stale) {
19072
- await fs$1.rm(lockPath, { force: true });
19072
+ await fsPromises.rm(lockPath, { force: true });
19073
19073
  continue;
19074
19074
  }
19075
19075
  }
@@ -21360,7 +21360,7 @@ async function startGatewayServer(port = 1013, opts = {}) {
21360
21360
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
21361
21361
  if (!minimalTestGateway) (async () => {
21362
21362
  const { recoverPendingDeliveries } = await import("./delivery-queue-BvDRo8CK.js").then((n) => n.n);
21363
- const { deliverOutboundPayloads } = await import("./deliver--kttnrER.js").then((n) => n.n);
21363
+ const { deliverOutboundPayloads } = await import("./deliver-yTpXc5sv.js").then((n) => n.n);
21364
21364
  await recoverPendingDeliveries({
21365
21365
  deliver: deliverOutboundPayloads,
21366
21366
  log: log.child("delivery-recovery"),