@bitseek/claw 1.2.2 → 1.2.6

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 (360) hide show
  1. package/dist/{accounts-DKvlV3Tm.js → accounts-C3iwoWUS.js} +1 -1
  2. package/dist/{accounts-D5DQlttG.js → accounts-CCbfXe4Y.js} +7 -7
  3. package/dist/{accounts-jPPbCJns.js → accounts-ChjgDDok.js} +1 -1
  4. package/dist/{acp-cli-BZnPaFm3.js → acp-cli-DIikR-tj.js} +8 -8
  5. package/dist/{agent-scope-CiBV1K6b.js → agent-scope-DHMu2mab.js} +1 -1
  6. package/dist/{agents-BMaMDR6h.js → agents-BCJbDk2P.js} +4 -4
  7. package/dist/{agents.config-BSY7Z6IC.js → agents.config-BoNoGEQI.js} +2 -2
  8. package/dist/{agents.config-Bjwf3eo1.js → agents.config-DoxV5m9v.js} +1 -1
  9. package/dist/{api-key-rotation-j4O7qxMf.js → api-key-rotation-CuHjsofV.js} +1 -1
  10. package/dist/{audio-preflight-BkoTbTIH.js → audio-preflight-BClvbKMQ.js} +36 -36
  11. package/dist/{audio-preflight-Dd9DDvqB.js → audio-preflight-BWOdDA2n.js} +4 -4
  12. package/dist/{audio-transcription-runner-Bx53bUS2.js → audio-transcription-runner-DaoqvWoi.js} +1 -1
  13. package/dist/{audio-transcription-runner-CF_UP4C7.js → audio-transcription-runner-Dv-MCA8E.js} +22 -22
  14. package/dist/{audit-1YVlVmk7.js → audit-BAGbgihO.js} +29 -29
  15. package/dist/{auth-Co2g3d8d.js → auth-B9WdgDjZ.js} +1 -1
  16. package/dist/{auth-choice-BYuegxlw.js → auth-choice-CP6K5htW.js} +1 -1
  17. package/dist/{auth-choice-BpOvsd_n.js → auth-choice-CTCXt7WB.js} +12 -12
  18. package/dist/{auth-choice-BamWYpsc.js → auth-choice-FFUrxk0-.js} +14 -14
  19. package/dist/{auth-choice.apply-helpers-CQLQ5Tuk.js → auth-choice.apply-helpers-Dz2x-3CK.js} +1 -1
  20. package/dist/{auth-token-BjVRLcvi.js → auth-token-BPWVp11S.js} +1 -1
  21. package/dist/{banner-EymX6IpH.js → banner-V_1v329B.js} +1 -1
  22. package/dist/{bindings-Ck6aotGf.js → bindings-C0k4wFy7.js} +1 -1
  23. package/dist/{bonjour-discovery-CtUQb94i.js → bonjour-discovery-DXvZeG8M.js} +1 -1
  24. package/dist/{browser-cli-CaBLM5A6.js → browser-cli-BwtSgIvC.js} +12 -12
  25. package/dist/build-info.json +3 -3
  26. package/dist/bundled/boot-md/handler.js +6 -6
  27. package/dist/bundled/session-memory/handler.js +6 -6
  28. package/dist/{call-BGZQEHL4.js → call-B9Vrcbed.js} +10 -10
  29. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  30. package/dist/canvas-host/a2ui/a2ui.bundle.js +6027 -1405
  31. package/dist/{channel-account-context-C6rIxLzo.js → channel-account-context-CeGx9Aq7.js} +5 -5
  32. package/dist/{channel-options-bD8Nb_XT.js → channel-options-DmEaPgkZ.js} +3 -3
  33. package/dist/{channel-options-BbugzQSv.js → channel-options-Dsjb-V1F.js} +1 -1
  34. package/dist/{channel-selection-TZJgoz5h.js → channel-selection-BDdjozhi.js} +1 -1
  35. package/dist/{channel-web-BzKDism5.js → channel-web-mFdbEE2o.js} +18 -18
  36. package/dist/{channel-web-C8R11QOm.js → channel-web-wuxrfEJh.js} +1 -1
  37. package/dist/{channels-cli-B6ICcQiX.js → channels-cli-CCTczoJM.js} +94 -94
  38. package/dist/{channels-cli-DLh8uOwf.js → channels-cli-OZeQkPMG.js} +6 -6
  39. package/dist/{channels-status-issues-DeT1Znlx.js → channels-status-issues-Dir7g-Pc.js} +1 -1
  40. package/dist/{chrome-DzGCPEQK.js → chrome-2gfHr1cU.js} +4 -4
  41. package/dist/{chrome-C6zMSR36.js → chrome-CjTE-vWv.js} +8 -8
  42. package/dist/{clawbot-cli-Comysjn9.js → clawbot-cli-BMGBnmny.js} +5 -5
  43. package/dist/{cli-dy2BdjPZ.js → cli-YeYpjq2c.js} +1 -1
  44. package/dist/{cli-BT1aLbEG.js → cli-zsP2OqB6.js} +75 -75
  45. package/dist/{client-B91adiXh.js → client-BoUhzGrS.js} +2 -2
  46. package/dist/{command-registry-oV1633Vs.js → command-registry-okzYatr9.js} +9 -9
  47. package/dist/{commands-C6OLhl3n.js → commands-npgZubp3.js} +1 -1
  48. package/dist/{commands-registry-CVzTBX51.js → commands-registry-B5jHbfUL.js} +3 -3
  49. package/dist/{completion-cli-C9i-Dicb.js → completion-cli-BFxGdqak.js} +2 -2
  50. package/dist/{completion-cli-5z7Fk2X-.js → completion-cli-Dm9dt8iw.js} +12 -12
  51. package/dist/{config-cli-CENkfh8B.js → config-cli-CJVYN-g-.js} +7 -7
  52. package/dist/{config-cli-CpsK8BqN.js → config-cli-hwawfBlS.js} +1 -1
  53. package/dist/{config-guard-9BjlFVZx.js → config-guard-1SsvFO9G.js} +17 -17
  54. package/dist/{config-validation-BcxAhhcj.js → config-validation-BJ6PNk8H.js} +3 -3
  55. package/dist/{configure-boTkhg01.js → configure-DMwHaNHJ.js} +17 -17
  56. package/dist/{configure-DcXrqefi.js → configure-l-lM74c1.js} +3 -3
  57. package/dist/control-ui/assets/{index-DmJK8e2M.js → index-CKSSOzJL.js} +116 -116
  58. package/dist/control-ui/assets/{index-DmJK8e2M.js.map → index-CKSSOzJL.js.map} +1 -1
  59. package/dist/control-ui/assets/index-Ck63PFX9.css +1 -0
  60. package/dist/control-ui/index.html +2 -2
  61. package/dist/{control-ui-assets-B_3g_YF0.js → control-ui-assets-DpInddpx.js} +1 -1
  62. package/dist/{cron-cli-C8kDGh6_.js → cron-cli-CyEcKgVG.js} +12 -12
  63. package/dist/{daemon-cli-RKWFtF-K.js → daemon-cli-CB9c5SXP.js} +15 -15
  64. package/dist/{daemon-install-DsJ0L8HP.js → daemon-install-Bqjc3wky.js} +4 -4
  65. package/dist/{daemon-install-helpers-CMWYg4_W.js → daemon-install-helpers-CGZBs-X3.js} +11 -11
  66. package/dist/{dashboard-BhAYjl6n.js → dashboard-8HFxt9IY.js} +2 -2
  67. package/dist/{deliver-Bn10XzRP.js → deliver-D4ugOkLr.js} +7 -7
  68. package/dist/{deliver-DXa06hfk.js → deliver-xY3h9X6N.js} +1 -1
  69. package/dist/{devices-cli-DoJBheGs.js → devices-cli-Bp8AMOPE.js} +8 -8
  70. package/dist/{diagnostic-DRPetA8l.js → diagnostic-phUWJbF_.js} +1 -1
  71. package/dist/{diagnostics-BHQgZbuI.js → diagnostics-D_AmByNE.js} +5 -5
  72. package/dist/{directory-cli-Brla3Idn.js → directory-cli-Bt3I30_e.js} +8 -8
  73. package/dist/{dns-cli-rEvE1LG9.js → dns-cli-DaTrsB61.js} +5 -5
  74. package/dist/{dock-BXksV3sC.js → dock-swzevZbj.js} +4 -4
  75. package/dist/{docs-cli-DtThi0Xf.js → docs-cli--2Qgcpvs.js} +4 -4
  76. package/dist/{doctor-completion-BwIgzkLP.js → doctor-completion-UEYo4_U6.js} +2 -2
  77. package/dist/{doctor-completion-BySkhMZY.js → doctor-completion-wHIBxn-7.js} +1 -1
  78. package/dist/{doctor-config-flow-18ijj3KB.js → doctor-config-flow-DKaeaH2u.js} +15 -15
  79. package/dist/{enable-CJ75JA5u.js → enable-xlkWJvIn.js} +1 -1
  80. package/dist/entry.js +2 -2
  81. package/dist/{exec-approvals-allowlist-CGVHz3PX.js → exec-approvals-allowlist-fG-NsL-O.js} +1 -1
  82. package/dist/{exec-approvals-cli-DfcUJ9Sm.js → exec-approvals-cli-r7jbe_Rj.js} +16 -16
  83. package/dist/{exec-safe-bin-runtime-policy-D7olAQMf.js → exec-safe-bin-runtime-policy-B9kCrTY1.js} +2 -2
  84. package/dist/extensionAPI.js +1 -1
  85. package/dist/{fetch-guard-D6eclxeP.js → fetch-guard-N12H9lEe.js} +1 -1
  86. package/dist/{fs-safe-p5lyYI__.js → fs-safe-BGAE6eOQ.js} +24 -24
  87. package/dist/{gateway-cli-Dn-Yq6Tf.js → gateway-cli-BFo0WvJx.js} +70 -16
  88. package/dist/{gateway-cli-BVn-fVbw.js → gateway-cli-Bi6tzv7v.js} +222 -168
  89. package/dist/{gateway-rpc-CJVCek88.js → gateway-rpc-BHBGSN7Z.js} +1 -1
  90. package/dist/{health-Du4IbXAP.js → health-CDEXWvnu.js} +1 -1
  91. package/dist/{health-DmJq2Wph.js → health-DlFSsTw-.js} +14 -14
  92. package/dist/{hooks-cli-BhSZV-cM.js → hooks-cli-CMLpJr6I.js} +83 -83
  93. package/dist/{hooks-cli-BrT4aprv.js → hooks-cli-Deo01lF6.js} +2 -2
  94. package/dist/{hooks-status-ONaKEpUH.js → hooks-status-inMD7sD-.js} +1 -1
  95. package/dist/{image-B270IRGo.js → image-BzR2twGI.js} +5 -5
  96. package/dist/{image-Dd4lgi4H.js → image-DCyaYY2d.js} +1 -1
  97. package/dist/{plugin-sdk/image-ops-DulHE5Qc.js → image-ops-B6BeXmZU.js} +12 -12
  98. package/dist/index.js +85 -85
  99. package/dist/{inspect-C0e0Dmvg.js → inspect-BwbOLUun.js} +4 -4
  100. package/dist/{install-safe-path-CSqVUjL8.js → install-safe-path-DodF6oyk.js} +25 -25
  101. package/dist/{installs-BXOZ3DXs.js → installs-8bzJi35e.js} +9 -9
  102. package/dist/{ipv4-Bk-doiEE.js → ipv4-BY_PmkpX.js} +1 -1
  103. package/dist/{ir-BGgl4f9u.js → ir-vGBxQkIg.js} +6 -6
  104. package/dist/{issue-format-rk9Vpcxd.js → issue-format-B4oxePhU.js} +1 -1
  105. package/dist/{json-files-bJqSYqgg.js → json-files-C7p5SEie.js} +8 -8
  106. package/dist/{lifecycle-core-Bqse41aA.js → lifecycle-core-C5a4clqu.js} +5 -5
  107. package/dist/llm-slug-generator.js +6 -6
  108. package/dist/{local-roots-jW0nhxVT.js → local-roots-Dcc5UeD8.js} +3 -3
  109. package/dist/{login-B2B75WGK.js → login-BM9p9nig.js} +3 -3
  110. package/dist/{login-qr-YjUycQZT.js → login-qr-CB4JWkHM.js} +6 -6
  111. package/dist/{logs-cli-Dyid6hUQ.js → logs-cli-DGdXLEv-.js} +9 -9
  112. package/dist/{manager-C9rftBaE.js → manager-X8AF3rQJ.js} +14 -14
  113. package/dist/{manifest-registry-B_U2pKBU.js → manifest-registry-HNrtHxxI.js} +1 -1
  114. package/dist/{markdown-tables-B5l_33qL.js → markdown-tables-XmfG1bwr.js} +1 -1
  115. package/dist/{memory-cli-o3L9NN74.js → memory-cli-87nxADqy.js} +12 -12
  116. package/dist/{model-FnrgCVyS.js → model-CESXYutI.js} +2 -2
  117. package/dist/{model-catalog-CjA5pRJF.js → model-catalog-DUHxH2xb.js} +3 -3
  118. package/dist/{model-picker-CMgjcqV_.js → model-picker-D705WMPf.js} +4 -4
  119. package/dist/{model-selection-xdfZxwgB.js → model-selection-DCo8MhsE.js} +16 -16
  120. package/dist/{models-BEMBo-jJ.js → models-CgguB_MH.js} +2 -2
  121. package/dist/{models-cli-CJCNoVhQ.js → models-cli-9x2mp4Ac.js} +85 -85
  122. package/dist/{models-cli-Bj5d7qpe.js → models-cli-BEb0DHSP.js} +3 -3
  123. package/dist/{models-config-Do1Ur_ov.js → models-config-Bgpjcu8R.js} +6 -6
  124. package/dist/{node-cli-DYOdgLUu.js → node-cli-DJnihsNr.js} +33 -33
  125. package/dist/{node-command-policy-BKUs_pS2.js → node-command-policy-BiPTB8BK.js} +1 -1
  126. package/dist/{node-service-6W3vqgVv.js → node-service-CfKJ5oC1.js} +1 -1
  127. package/dist/{nodes-cli-CQzck2kc.js → nodes-cli-4kBrEEti.js} +16 -16
  128. package/dist/{nodes-screen-Dptoharj.js → nodes-screen-FWjD2j3v.js} +7 -7
  129. package/dist/{npm-pack-install-Byr0kgft.js → npm-pack-install-CXheGnb0.js} +18 -18
  130. package/dist/{npm-resolution-BHQDGwrV.js → npm-resolution-DIr_TibO.js} +5 -5
  131. package/dist/{npm-resolution-DyqMvaHn.js → npm-resolution-T8SphiP5.js} +1 -1
  132. package/dist/{onboard-CUFDJWvM.js → onboard-B_MoYnrn.js} +2 -2
  133. package/dist/{onboard-DpLm6YX6.js → onboard-DEFQu6dU.js} +6 -6
  134. package/dist/{onboard-channels-i1FFoaW7.js → onboard-channels-BLZ8FdVP.js} +1 -1
  135. package/dist/{onboard-channels-CrxnmwMd.js → onboard-channels-BuG5-e60.js} +20 -20
  136. package/dist/{onboard-custom-Bow6lZPm.js → onboard-custom-HI7NPx1u.js} +3 -3
  137. package/dist/{onboard-custom.shared-CBRRhb95.js → onboard-custom.shared-SWx67Er2.js} +2 -2
  138. package/dist/{onboard-helpers-B1AEo6oL.js → onboard-helpers-Jc1-4LBc.js} +11 -11
  139. package/dist/{onboard-hooks-CtxRk6l_.js → onboard-hooks-DFjIpeE_.js} +4 -4
  140. package/dist/{onboard-remote-DmHpLoWf.js → onboard-remote-BLAyUeAO.js} +3 -3
  141. package/dist/{onboard-skills-DwpZY5tZ.js → onboard-skills--XkA2Jj4.js} +4 -4
  142. package/dist/{onboarding-Wve1--YA.js → onboarding-BQ2WB7tp.js} +13 -13
  143. package/dist/{onboarding-ORzDCBo6.js → onboarding-CSnr51pR.js} +3 -3
  144. package/dist/{onboarding.finalize-DH8INVdN.js → onboarding.finalize-BlMlIFRW.js} +6 -6
  145. package/dist/{onboarding.finalize-BoXDIiNp.js → onboarding.finalize-DAbr5Ar8.js} +87 -87
  146. package/dist/{onboarding.gateway-config-wXH6gE7c.js → onboarding.gateway-config-CMKjEPRA.js} +18 -18
  147. package/dist/{openai-model-default-Q7Hmy0eQ.js → openai-model-default-BTNz1OzV.js} +2 -2
  148. package/dist/{outbound-DlVJWa4u.js → outbound-Bf7VAx0-.js} +4 -4
  149. package/dist/{outbound-attachment-CZh4VjhT.js → outbound-attachment-Df5o7JIG.js} +2 -2
  150. package/dist/{pairing-cli-DAMLvDcA.js → pairing-cli-CA7Dxs-g.js} +9 -9
  151. package/dist/{pairing-labels-Cl7ROILg.js → pairing-labels-BBti3jJg.js} +1 -1
  152. package/dist/{pairing-store-DdZ0xMD7.js → pairing-store-DY0yrkuM.js} +3 -3
  153. package/dist/{path-alias-guards-DWh6tSaP.js → path-alias-guards-BNzjbOwM.js} +3 -3
  154. package/dist/{path-safety-COhgvniC.js → path-safety-dmCI2tpN.js} +1 -1
  155. package/dist/{paths-AxolTUEH.js → paths-BZfURxkW.js} +9 -9
  156. package/dist/{pi-embedded-DnavjoU4.js → pi-embedded-Bacc2S0h.js} +50 -22
  157. package/dist/{pi-embedded-DDt-4VY9.js → pi-embedded-Claxav22.js} +30 -2
  158. package/dist/{pi-embedded-helpers-BErNo2oq.js → pi-embedded-helpers-CMTVhLjq.js} +3 -3
  159. package/dist/{pi-embedded-helpers-ZTn-T7tW.js → pi-embedded-helpers-D3nc5XJW.js} +6 -6
  160. package/dist/{pi-model-discovery-DVhDvAnA.js → pi-model-discovery-BSytrsu4.js} +1 -1
  161. package/dist/{pi-tools.policy-eyXj0EY5.js → pi-tools.policy-Dwsq-Yaf.js} +5 -5
  162. package/dist/{plugin-auto-enable-D1WySsnE.js → plugin-auto-enable-4zXn-eVS.js} +3 -3
  163. package/dist/{plugin-registry-eOikaO9b.js → plugin-registry-CxFikiLF.js} +1 -1
  164. package/dist/{plugin-registry-CFL5j9cN.js → plugin-registry-DsZTkNKu.js} +3 -3
  165. package/dist/plugin-sdk/{accounts-COLYAAOx.js → accounts-4WE2wtsW.js} +1 -1
  166. package/dist/plugin-sdk/{accounts-BZrkOo6-.js → accounts-AbI8uETR.js} +1 -1
  167. package/dist/plugin-sdk/{accounts-D_pT5EjF.js → accounts-BYcizTXn.js} +3 -3
  168. package/dist/plugin-sdk/{active-listener-DxBXcWm_.js → active-listener-pnqLAUOh.js} +1 -1
  169. package/dist/plugin-sdk/{agent-scope-DT5pxpJB.js → agent-scope-_j3fIYCK.js} +3 -3
  170. package/dist/plugin-sdk/{api-key-rotation-Dl6Ad7Nj.js → api-key-rotation-CYI51U_M.js} +2 -2
  171. package/dist/plugin-sdk/{audio-preflight-CkPj4OVY.js → audio-preflight-BTRRjPew.js} +33 -33
  172. package/dist/plugin-sdk/{audio-transcription-runner-BBn9jEMg.js → audio-transcription-runner-DFZS7uCO.js} +10 -10
  173. package/dist/plugin-sdk/{bindings-BSfhEjKN.js → bindings-CxxzC7gn.js} +2 -2
  174. package/dist/plugin-sdk/{channel-activity-DAEbma-o.js → channel-activity-B3yZ-f-m.js} +3 -3
  175. package/dist/plugin-sdk/{channel-web-MpDUG9SU.js → channel-web-D2q54sK-.js} +23 -23
  176. package/dist/plugin-sdk/{chrome-Dn0G4NoF.js → chrome-oPevdeh5.js} +7 -7
  177. package/dist/plugin-sdk/{chunk-cvtXztAT.js → chunk-BPyPeheZ.js} +1 -1
  178. package/dist/plugin-sdk/{command-format-BOJz3y1v.js → command-format-DvyMEXQo.js} +1 -1
  179. package/dist/plugin-sdk/{commands-registry-CZWv_JwZ.js → commands-registry-Dk8re8Lz.js} +5 -5
  180. package/dist/plugin-sdk/{config-DAwOhnVF.js → config-D7I2_X4P.js} +10 -10
  181. package/dist/plugin-sdk/{deliver-PdH-MCq8.js → deliver-NrIHn0__.js} +11 -11
  182. package/dist/plugin-sdk/{diagnostic-BZvj-qNu.js → diagnostic-DL3k_wRi.js} +2 -2
  183. package/dist/plugin-sdk/{dock-BdR3OYZn.js → dock-CjdkiLH7.js} +6 -6
  184. package/dist/plugin-sdk/{errors-jusxdu7M.js → errors-DFTN4h2I.js} +1 -1
  185. package/dist/plugin-sdk/{fetch-guard-Dary6WwJ.js → fetch-guard-BivEyA4v.js} +2 -2
  186. package/dist/plugin-sdk/{fs-safe-DMCE0ej9.js → fs-safe-B256n7Ff.js} +3 -3
  187. package/dist/plugin-sdk/{image-B3A2l2ep.js → image-CkPzr3XN.js} +6 -6
  188. package/dist/{image-ops-BAMcbVMS.js → plugin-sdk/image-ops-C9GXWF3o.js} +2 -2
  189. package/dist/plugin-sdk/index.js +64 -64
  190. package/dist/plugin-sdk/{ir-BFXiJrsN.js → ir-BIm-jvIK.js} +6 -6
  191. package/dist/plugin-sdk/{local-roots-DssN60r6.js → local-roots-2AOXGUXW.js} +4 -4
  192. package/dist/plugin-sdk/{logger-Cr-x0vMf.js → logger-CNhs9eKJ.js} +1 -1
  193. package/dist/plugin-sdk/{login-D0ul3-6C.js → login-BcLiF9tC.js} +6 -6
  194. package/dist/plugin-sdk/{login-qr-XWKTFBuI.js → login-qr-GyPUodKJ.js} +9 -9
  195. package/dist/plugin-sdk/{manager-DGx_cF54.js → manager-DYLqNUb4.js} +10 -10
  196. package/dist/plugin-sdk/{markdown-tables-CsQpDNU5.js → markdown-tables-D9mmqMKi.js} +1 -1
  197. package/dist/plugin-sdk/{message-channel-CvNq-esz.js → message-channel-_CEZcqxE.js} +1 -1
  198. package/dist/plugin-sdk/{outbound-D29FHlQl.js → outbound-DdTsUaXa.js} +7 -7
  199. package/dist/plugin-sdk/{outbound-attachment-DRHrZUOx.js → outbound-attachment--hkuIDR1.js} +2 -2
  200. package/dist/plugin-sdk/{path-alias-guards-DpKV1B5p.js → path-alias-guards-BqUCBfUg.js} +1 -1
  201. package/dist/plugin-sdk/{pi-embedded-helpers-CKEUWckk.js → pi-embedded-helpers-CTfvZz83.js} +17 -17
  202. package/dist/plugin-sdk/{pi-model-discovery-BPeQq9XM.js → pi-model-discovery-CK3Ih_kq.js} +1 -1
  203. package/dist/plugin-sdk/{plugins-DF_dKXTR.js → plugins-BpHAMNJ1.js} +6 -6
  204. package/dist/plugin-sdk/{proxy-BfmEDoun.js → proxy-BJdRZOnJ.js} +1 -1
  205. package/dist/plugin-sdk/{proxy-fetch-BpHIgvBk.js → proxy-fetch-jmbopGcm.js} +1 -1
  206. package/dist/plugin-sdk/{pw-ai-BmmXDjtm.js → pw-ai-D0Kx7w1D.js} +13 -13
  207. package/dist/plugin-sdk/{qmd-manager-3hQbqkm5.js → qmd-manager-BDcutPp9.js} +8 -8
  208. package/dist/plugin-sdk/{query-expansion-BOGLUWB7.js → query-expansion-C_X8SyEA.js} +2 -2
  209. package/dist/plugin-sdk/{redact-BOuKZWXa.js → redact-DH8u23pF.js} +1 -1
  210. package/dist/plugin-sdk/{registry-Cv-oHUj1.js → registry-HF8_S7QO.js} +2 -2
  211. package/dist/plugin-sdk/{replies-CddwWBTJ.js → replies-DbjvV4gf.js} +3 -3
  212. package/dist/plugin-sdk/{reply-wHFXod4j.js → reply-Cs_Ks2Mr.js} +121 -93
  213. package/dist/plugin-sdk/{reply-prefix-DXthVxCx.js → reply-prefix-KODsMNJ-.js} +1 -1
  214. package/dist/plugin-sdk/{resolve-outbound-target-D3Y4F2Le.js → resolve-outbound-target-BPT4aNiD.js} +2 -2
  215. package/dist/plugin-sdk/{resolve-route-DuwYYn4a.js → resolve-route-De2B5QY_.js} +4 -4
  216. package/dist/plugin-sdk/{retry-BMcrIz7L.js → retry-pZ8iKytf.js} +1 -1
  217. package/dist/plugin-sdk/{send-D0AaWnIj.js → send-1uW-uqPf.js} +7 -7
  218. package/dist/plugin-sdk/{send-C5USYGq7.js → send-BoNw1Bki.js} +8 -8
  219. package/dist/plugin-sdk/{send-B0ztz6QC.js → send-C-Rd2stz.js} +6 -6
  220. package/dist/plugin-sdk/{send-DJzwu8kk.js → send-CZIN8SDx.js} +15 -15
  221. package/dist/plugin-sdk/{send-DEyQJTzd.js → send-wCqsQs_s.js} +10 -10
  222. package/dist/plugin-sdk/{session-meta-ChWvKVWj.js → session-meta-7J-uHiM_.js} +1 -1
  223. package/dist/plugin-sdk/{session-BA7tVDpV.js → session-ooYcB82T.js} +5 -5
  224. package/dist/plugin-sdk/{sessions-BXps6YzJ.js → sessions-lAIo5l8W.js} +6 -6
  225. package/dist/plugin-sdk/{skill-commands-B20uUsji.js → skill-commands-D1Q6hGS4.js} +5 -5
  226. package/dist/plugin-sdk/{skills-DXOTei42.js → skills-BWSDv2F_.js} +8 -8
  227. package/dist/plugin-sdk/{ssrf-Doxv9M7Q.js → ssrf-JKDwTi8i.js} +1 -1
  228. package/dist/plugin-sdk/{store-BZbE1V-C.js → store-BMeqzQAf.js} +2 -2
  229. package/dist/plugin-sdk/{subsystem-CM1s2lDT.js → subsystem-B0V8LFBA.js} +2 -2
  230. package/dist/plugin-sdk/{tables-BhH8EIqU.js → tables-DCSeBGBz.js} +1 -1
  231. package/dist/{target-errors-B1cYmIjq.js → plugin-sdk/target-errors-0u6pegQv.js} +2 -2
  232. package/dist/plugin-sdk/{tokens-DIE-Bf72.js → tokens-DF2_VTJy.js} +1 -1
  233. package/dist/plugin-sdk/{tool-images-heXfaJdb.js → tool-images-BbsgbHMZ.js} +2 -2
  234. package/dist/plugin-sdk/{tool-loop-detection-CygMSQUK.js → tool-loop-detection-JkCpGrfk.js} +2 -2
  235. package/dist/plugin-sdk/{utils-BcL6KGZf.js → utils-BfVxx6bk.js} +1 -1
  236. package/dist/plugin-sdk/web-B35hdNQ-.js +72 -0
  237. package/dist/plugin-sdk/{whatsapp-actions-CRean1yN.js → whatsapp-actions-tVcrGNQc.js} +25 -25
  238. package/dist/{plugins-CKWxMohB.js → plugins-Ce8ThYGQ.js} +2 -2
  239. package/dist/{plugins-cli-DrlRj_8V.js → plugins-cli-DxFh5OQi.js} +85 -85
  240. package/dist/{plugins-cli-Bg6sFJYH.js → plugins-cli-bHHZzKd-.js} +2 -2
  241. package/dist/{ports-DppAHKM-.js → ports-DXMCFRgn.js} +2 -2
  242. package/dist/{ports-BL-FP2jP.js → ports-wtEwdqsX.js} +1 -1
  243. package/dist/{program-BQ8WwHMi.js → program-DnjsZxiJ.js} +7 -7
  244. package/dist/{program-context-BWsBkMJn.js → program-context-36wFBslW.js} +43 -43
  245. package/dist/{prompt-select-styled-DbUQHcBh.js → prompt-select-styled-BkpL6eKQ.js} +4 -4
  246. package/dist/{prompt-select-styled-CLCyaJAG.js → prompt-select-styled-CJt-zhnt.js} +39 -39
  247. package/dist/{provider-auth-helpers-CKpEFImN.js → provider-auth-helpers-BFsLtU8g.js} +1 -1
  248. package/dist/{provider-auth-helpers-CdTLpxG1.js → provider-auth-helpers-DeJ105rb.js} +5 -5
  249. package/dist/{proxy-env-ClbXa7vn.js → proxy-env-DhFUQlwP.js} +1 -1
  250. package/dist/{push-apns-CVnc3jrx.js → push-apns-BSlKJa83.js} +1 -1
  251. package/dist/{push-apns-B_GGZO2Z.js → push-apns-SIM2es-Y.js} +5 -5
  252. package/dist/{pw-ai-D21rIJ2z.js → pw-ai-BOQE6s45.js} +15 -15
  253. package/dist/{pw-ai-pkfCxzhV.js → pw-ai-DGwA7iCM.js} +1 -1
  254. package/dist/{qmd-manager-BD6lfN35.js → qmd-manager-DVKj0i6T.js} +20 -20
  255. package/dist/{qr-cli-BQGJJ5hp.js → qr-cli-Z4_Y6bva.js} +1 -1
  256. package/dist/{query-expansion-Dl85zpSb.js → query-expansion-B9kneDbd.js} +12 -12
  257. package/dist/{redact-snapshot-DCGL0k2M.js → redact-snapshot-BI4Ryuhy.js} +1 -1
  258. package/dist/{register.agent-BxMqGoLQ.js → register.agent-C-OmdJMe.js} +7 -7
  259. package/dist/{register.agent-BwCayvbD.js → register.agent-Cd2LVcga.js} +100 -100
  260. package/dist/{register.configure-PCuADy_e.js → register.configure-CaSRlI6h.js} +7 -7
  261. package/dist/register.configure-DGIWBQvN.js +174 -0
  262. package/dist/{register.init-DWQDniBg.js → register.init-DpFUY5Ed.js} +15 -15
  263. package/dist/{register.maintenance-jHaU-XSR.js → register.maintenance-DAU-mVIz.js} +97 -97
  264. package/dist/{register.maintenance-CW5_urTq.js → register.maintenance-R4RCi4f3.js} +8 -8
  265. package/dist/{register.message-ByUxZi3s.js → register.message-5hKmcWaB.js} +2 -2
  266. package/dist/{register.message-DPlqIVvv.js → register.message-B0CI0Q4o.js} +76 -76
  267. package/dist/{register.onboard-BC4wpDdz.js → register.onboard-BGhXUfbX.js} +18 -18
  268. package/dist/{register.onboard-B-8WoYZr.js → register.onboard-Di7iClKl.js} +2 -2
  269. package/dist/{register.setup-CZ9a3M_O.js → register.setup-Dm_dHAB-.js} +2 -2
  270. package/dist/{register.setup-BQQX0yB6.js → register.setup-nlXy06aa.js} +21 -21
  271. package/dist/{register.start-BHASi8Um.js → register.start-Dzss99ZY.js} +17 -17
  272. package/dist/{register.status-health-sessions-BRJgE7jh.js → register.status-health-sessions-B4eNiGWS.js} +89 -89
  273. package/dist/{register.status-health-sessions-BKLWh2aq.js → register.status-health-sessions-lOM_lb6H.js} +3 -3
  274. package/dist/{register.subclis-DKG1KoTd.js → register.subclis-1MobNhis.js} +9 -9
  275. package/dist/{replies-B6SXcEs0.js → replies-k5K96_46.js} +1 -1
  276. package/dist/{reply-ezOUjaUp.js → reply-DQMWsIE2.js} +185 -156
  277. package/dist/{reply-prefix-BttpF8VB.js → reply-prefix-aBvAQX6L.js} +1 -1
  278. package/dist/{resolve-route-Ck23oGqS.js → resolve-route-R565qQgt.js} +2 -2
  279. package/dist/{rpc-9jE_1PW0.js → rpc-CMyUzpcT.js} +1 -1
  280. package/dist/{run-main-CGAXqlRX.js → run-main-CFGtfsPd.js} +14 -14
  281. package/dist/{runtime-Rd7ooKB0.js → runtime-D64ACWoX.js} +2 -2
  282. package/dist/{sandbox-BKa5RrBl.js → sandbox-DH9YtUfB.js} +18 -18
  283. package/dist/{sandbox-cli-BnpEc205.js → sandbox-cli-B1ThXy7C.js} +26 -26
  284. package/dist/{secrets-cli-CIxUNZyC.js → secrets-cli-BEjJ3GP-.js} +10 -10
  285. package/dist/{security-cli-BqOOeGxS.js → security-cli-Zma5k5BZ.js} +43 -43
  286. package/dist/{send-DuNBSJln.js → send-BQVNhO4Q.js} +5 -5
  287. package/dist/{send-SZBhACLn.js → send-CFUSH9C-.js} +8 -8
  288. package/dist/{send-Cua2kS5v.js → send-CabiU1-J.js} +6 -6
  289. package/dist/{send-ByUfPpKj.js → send-DmVTXBWW.js} +11 -11
  290. package/dist/{send-BntubUtK.js → send-NexNe2Wh.js} +6 -6
  291. package/dist/{server-Ct0J5VXf.js → server-DQ7D-B-v.js} +19 -19
  292. package/dist/{server-context-DWxmyV-0.js → server-context-Cr-Y4i6P.js} +12 -12
  293. package/dist/{server-lifecycle-B7aXKxY3.js → server-lifecycle-BVnXIEfI.js} +2 -2
  294. package/dist/{server-middleware-CO1brrgv.js → server-middleware-zyvA9rl9.js} +1 -1
  295. package/dist/{server-node-events-BHkXD38g.js → server-node-events-oa4mOmsp.js} +76 -76
  296. package/dist/{server-node-events-D_9Quh-1.js → server-node-events-yFZiE04b.js} +2 -2
  297. package/dist/{service-DqxfCr8y.js → service-BcFhE63y.js} +15 -15
  298. package/dist/{session-FOGqE7bj.js → session-Dl3x3d75.js} +1 -1
  299. package/dist/{session-meta-C-ox3bdI.js → session-meta-C6MooccR.js} +1 -1
  300. package/dist/{sessions-BpuJ64B0.js → sessions-sIaYsUyX.js} +15 -15
  301. package/dist/{shared-CgFPGTLU.js → shared-DNcLp2mA.js} +3 -3
  302. package/dist/{shared-BmSv3K8N.js → shared-sFrejcA4.js} +1 -1
  303. package/dist/{skill-commands-COl0HE54.js → skill-commands-C2_BOuyl.js} +5 -5
  304. package/dist/{skill-scanner-CsmM5F4F.js → skill-scanner-DYkQAh0l.js} +6 -6
  305. package/dist/{skills-BeFcXCoN.js → skills-BXLKd7i5.js} +3 -3
  306. package/dist/{skills-cli-D3ZteX5N.js → skills-cli-DrN4v5_m.js} +5 -5
  307. package/dist/{skills-install-B_Vda3dM.js → skills-install-CSfh8nRm.js} +6 -6
  308. package/dist/{skills-status-BEq0_fOn.js → skills-status-C7Q6Ezbv.js} +1 -1
  309. package/dist/{status-CwKeOASs.js → status-mS4bWnIW.js} +2 -2
  310. package/dist/{status-DjnNnvyr.js → status-rMgdZcE5.js} +25 -25
  311. package/dist/{status.update-HwSPC5ZX.js → status.update-D4GfnNDI.js} +2 -2
  312. package/dist/{store-B-nkOSsv.js → store-CRcBie8T.js} +5 -5
  313. package/dist/{subagent-registry-CfKMgII6.js → subagent-registry-CXBreqUP.js} +31 -2
  314. package/dist/{system-cli-IYwpBiC6.js → system-cli-Bscj57lL.js} +9 -9
  315. package/dist/{system-run-command-C3OIMtEu.js → system-run-command-Cn5yQ2rv.js} +1 -1
  316. package/dist/{systemd-DJ5Red-Q.js → systemd-BIfjzi-4.js} +9 -9
  317. package/dist/{systemd-hints-D40Qx3hg.js → systemd-hints-CgtHwBfD.js} +6 -6
  318. package/dist/{systemd-linger-BK6kig-o.js → systemd-linger-0Vho6LMt.js} +1 -1
  319. package/dist/{tables-C9_oCtRN.js → tables-C5n2nXbu.js} +1 -1
  320. package/dist/{tailnet-BYBKD8Kh.js → tailnet-C8NwaQEp.js} +1 -1
  321. package/dist/{plugin-sdk/target-errors-QZay02Cv.js → target-errors-cerGxvCB.js} +4 -4
  322. package/dist/{tool-images-QWbHWc0F.js → tool-images-CgSADinH.js} +1 -1
  323. package/dist/{tui-Dd6DhgjX.js → tui-DNT0WnU-.js} +6 -6
  324. package/dist/{tui-cli-C3PCazFC.js → tui-cli-DTFq2wGK.js} +33 -33
  325. package/dist/{update-B1Dhhu_3.js → update-Mb6BH0o9.js} +3 -3
  326. package/dist/{update-cli-BCH7o0oB.js → update-cli--qEz2_Eg.js} +109 -105
  327. package/dist/{update-cli-Dcvb1LZT.js → update-cli-Dbb1EPi2.js} +12 -8
  328. package/dist/{update-runner-l9K_q6Kz.js → update-runner-C9noXbfV.js} +10 -3
  329. package/dist/{update-runner-rrlmopJw.js → update-runner-Dj_CAfd4.js} +25 -18
  330. package/dist/{web-CsfqGSAa.js → web-BKrNiKsU.js} +2 -2
  331. package/dist/web-BQRkxG9u.js +126 -0
  332. package/dist/{web-BJ_nNwKp.js → web-CDHXvGxm.js} +6 -6
  333. package/dist/{web-C9QAX9EH.js → web-DJKitOpu.js} +1 -1
  334. package/dist/{webhooks-cli-BFdw7BAP.js → webhooks-cli-uXE9EOwT.js} +6 -6
  335. package/dist/{whatsapp-actions-CNoiLzRB.js → whatsapp-actions-DeX4x9sq.js} +19 -19
  336. package/dist/{with-timeout-tSH4Tex_.js → with-timeout-C-EETHnf.js} +3 -3
  337. package/dist/{workspace-dKMB109Q.js → workspace-1nc7aTpg.js} +1 -1
  338. package/dist/{workspace-CRdln__H.js → workspace-TersEUYu.js} +23 -23
  339. package/dist/{workspace-dirs-DcAUEsSG.js → workspace-dirs-DxTFH1r3.js} +1 -1
  340. package/dist/{ws-DKbBt0us.js → ws-E9v842O2.js} +2 -2
  341. package/dist/{wsl-yjQQ-PJd.js → wsl-Dg6XQcw5.js} +2 -2
  342. package/extensions/diagnostics-otel/node_modules/.bin/acorn +21 -0
  343. package/extensions/googlechat/node_modules/.bin/nlc +21 -0
  344. package/extensions/googlechat/node_modules/.bin/node-llama-cpp +21 -0
  345. package/extensions/googlechat/node_modules/.bin/openclaw +2 -2
  346. package/extensions/googlechat/node_modules/.bin/tsc +21 -0
  347. package/extensions/googlechat/node_modules/.bin/tsserver +21 -0
  348. package/extensions/memory-core/node_modules/.bin/nlc +21 -0
  349. package/extensions/memory-core/node_modules/.bin/node-llama-cpp +21 -0
  350. package/extensions/memory-core/node_modules/.bin/openclaw +2 -2
  351. package/extensions/memory-core/node_modules/.bin/tsc +21 -0
  352. package/extensions/memory-core/node_modules/.bin/tsserver +21 -0
  353. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +21 -0
  354. package/extensions/nostr/node_modules/.bin/tsc +21 -0
  355. package/extensions/nostr/node_modules/.bin/tsserver +21 -0
  356. package/package.json +2 -5
  357. package/dist/control-ui/assets/index-B5WC_0Be.css +0 -1
  358. package/dist/plugin-sdk/web-DbkpdVSZ.js +0 -72
  359. package/dist/register.configure-Bv4KP_MD.js +0 -174
  360. package/dist/web-CtrUXk94.js +0 -126
@@ -2,14 +2,14 @@ import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as
2
2
  import { a as logVerbose, d as colorize, f as isRich, g as getResolvedLoggerSettings, h as getLogger, m as getChildLogger, p as theme, s as setVerbose } from "./globals-uLeGcRW1.js";
3
3
  import { D as isPlainObject, E as truncateUtf16Safe, S as shortenHomePath, c as ensureDir, r as clamp, y as resolveUserPath } from "./utils-CP51tiAi.js";
4
4
  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-44rmAw5o.js";
5
- import { $ as normalizeOptionalText, $n as registerAgentRunContext, An as resolveSessionDeliveryTarget, Ar as enqueueSystemEvent, B as consumeRestartSentinel, Bn as countActiveDescendantRuns, Br as getAcpSessionManager, Bt as runWithModelFallback, C as listAgentsForGateway, Cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Ct as handleSlackHttpRequest, D as pruneLegacyStoreKeys, Dr as stripHeartbeatToken, Dt as computeBackoff, E as loadSessionEntry, En as resolveOutboundSessionRoute, F as markGatewaySigusr1RestartHandled, Ft as createOutboundSendDeps, Gn as resolveAnnounceTargetFromKey, Gr as DEFAULT_INPUT_IMAGE_MIMES, H as formatRestartSentinelMessage, Hn as listDescendantRunsForRequester, Hr as normalizeSendPolicy, Ht as setCliSessionId, I as scheduleGatewaySigusr1Restart, It as applyVerboseOverride, J as normalizeCronJobCreate, Jn as buildOutboundSessionContext, Jr as extractFileContentFromSource, K as writeRestartSentinel, Kn as readLatestAssistantReply, Kr as DEFAULT_INPUT_MAX_REDIRECTS, Kt as applyModelOverrideToSessionEntry, L as setGatewaySigusr1RestartPolicy, Lt as parseVerboseOverride, M as deferGatewayRestartUntilIdle, N as emitGatewayRestart, Nn as resetDirectoryCache, Nt as resolveAgentDeliveryPlan, O as resolveGatewaySessionStoreTarget, Ot as sleepWithAbort, P as isGatewaySigusr1RestartExternallyAllowed, Pr as requestHeartbeatNow, Pt as resolveAgentOutboundTarget, Q as normalizeOptionalSessionKey, Qn as onAgentEvent, Qr as resolveAgentTimeoutMs, R as setPreRestartDeferralCheck, Rn as isAbortRequestText, Rt as createDefaultDeps, Sn as getTotalPendingReplies, Sr as CommandLane, T as loadCombinedSessionStoreForGateway, Tn as ensureOutboundSessionEntry, Tt as requestBodyErrorToText, Ur as resolveSendPolicy, Ut as runCliAgent, V as formatDoctorNonInteractiveHint, Vn as initSubagentRegistry, Vr as resolveAgentSessionDirs, Vt as getCliSessionId, W as summarizeRestartSentinel, Wn as runSubagentAnnounceFlow, Wr as DEFAULT_INPUT_IMAGE_MAX_BYTES, X as inferLegacyName, Xn as emitAgentEvent, Xr as normalizeMimeList, Xt as resolveAgentAvatar, Y as normalizeCronJobPatch, Yn as clearAgentRunContext, Yr as extractImageContentFromSource, Yt as resolveSessionAuthProfileOverride, Z as normalizeOptionalAgentId, Zn as getAgentRunContext, Zr as resolveInputFileLimits, _ as applyToolPolicyPipeline, _r as getTotalQueueSize, ar as resolveTtsApiKey, at as stripLegacyDeliveryFields, b as createOpenClawTools, bn as dispatchInboundMessage, br as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as resolveTtsPrefsPath, ct as getPluginToolMeta, dr as setTtsProvider, dt as loadOpenClawPlugins, en as buildSafeExternalPrompt, er as resolveUserTimezone, et as normalizePayloadToSystemText, fr as textToSpeech, ft as createPluginRuntime, g as waitForEmbeddedPiRunEnd, gt as loadProviderUsageSummary, h as getActiveEmbeddedRunCount, hr as getActiveTaskCount, i as resolveCronStyleNow, in as unbindThreadBindingsBySessionKey, ir as isTtsProviderConfigured, it as hasLegacyDeliveryHints, j as consumeGatewaySigusr1RestartAuthorization, jn as resolveOutboundChannelPlugin, jr as isSystemEventContextChanged, jt as agentCommandFromIngress, k as resolveSessionModelRef, kn as resolveOutboundTarget, lr as resolveTtsProviderOrder, lt as resolvePluginTools, m as abortEmbeddedPiRun, mr as OPENAI_TTS_VOICES, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, nn as getHookType, nr as getTtsProvider, nt as migrateLegacyCronPayload, or as resolveTtsAutoMode, ot as applyBrowserProxyPaths, p as runEmbeddedPiAgent, pr as OPENAI_TTS_MODELS, q as normalizeHttpWebhookUrl, qn as clearSessionQueues, qr as DEFAULT_INPUT_TIMEOUT_MS, qt as lookupContextTokens, rn as isExternalHookSession, rr as isTtsEnabled, rt as buildDeliveryFromLegacyPayload, sr as resolveTtsConfig, st as persistBrowserProxyFiles, tn as detectSuspiciousPatterns, tr as clearBootstrapSnapshot, tt as normalizeRequiredName, ur as setTtsEnabled, v as buildDefaultToolPolicyPipelineSteps, vr as markGatewayDraining, w as listSessionsFromStore, wt as readJsonBodyWithLimit, x as canonicalizeSpawnedByForAgent, xn as createReplyDispatcher, xr as waitForActiveTasks, xt as resolveAgentOutboundIdentity, yn as formatZonedTimestamp, yr as resetAllLanes, z as triggerOpenClawRestart, zn as stopSubagentsForRequester, zr as ACP_SESSION_IDENTITY_RENDERER_VERSION, zt as createOutboundSendDeps$1 } from "./reply-ezOUjaUp.js";
6
- import { a as resolveAgentDir, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-CiBV1K6b.js";
5
+ import { $ as normalizeOptionalText, $n as registerAgentRunContext, An as resolveSessionDeliveryTarget, Ar as enqueueSystemEvent, B as consumeRestartSentinel, Bn as countActiveDescendantRuns, Br as getAcpSessionManager, Bt as runWithModelFallback, C as listAgentsForGateway, Cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Ct as handleSlackHttpRequest, D as pruneLegacyStoreKeys, Dr as stripHeartbeatToken, Dt as computeBackoff, E as loadSessionEntry, En as resolveOutboundSessionRoute, F as markGatewaySigusr1RestartHandled, Ft as createOutboundSendDeps, Gn as resolveAnnounceTargetFromKey, Gr as DEFAULT_INPUT_IMAGE_MIMES, H as formatRestartSentinelMessage, Hn as listDescendantRunsForRequester, Hr as normalizeSendPolicy, Ht as setCliSessionId, I as scheduleGatewaySigusr1Restart, It as applyVerboseOverride, J as normalizeCronJobCreate, Jn as buildOutboundSessionContext, Jr as extractFileContentFromSource, K as writeRestartSentinel, Kn as readLatestAssistantReply, Kr as DEFAULT_INPUT_MAX_REDIRECTS, Kt as applyModelOverrideToSessionEntry, L as setGatewaySigusr1RestartPolicy, Lt as parseVerboseOverride, M as deferGatewayRestartUntilIdle, N as emitGatewayRestart, Nn as resetDirectoryCache, Nt as resolveAgentDeliveryPlan, O as resolveGatewaySessionStoreTarget, Ot as sleepWithAbort, P as isGatewaySigusr1RestartExternallyAllowed, Pr as requestHeartbeatNow, Pt as resolveAgentOutboundTarget, Q as normalizeOptionalSessionKey, Qn as onAgentEvent, Qr as resolveAgentTimeoutMs, R as setPreRestartDeferralCheck, Rn as isAbortRequestText, Rt as createDefaultDeps, Sn as getTotalPendingReplies, Sr as CommandLane, T as loadCombinedSessionStoreForGateway, Tn as ensureOutboundSessionEntry, Tt as requestBodyErrorToText, Ur as resolveSendPolicy, Ut as runCliAgent, V as formatDoctorNonInteractiveHint, Vn as initSubagentRegistry, Vr as resolveAgentSessionDirs, Vt as getCliSessionId, W as summarizeRestartSentinel, Wn as runSubagentAnnounceFlow, Wr as DEFAULT_INPUT_IMAGE_MAX_BYTES, X as inferLegacyName, Xn as emitAgentEvent, Xr as normalizeMimeList, Xt as resolveAgentAvatar, Y as normalizeCronJobPatch, Yn as clearAgentRunContext, Yr as extractImageContentFromSource, Yt as resolveSessionAuthProfileOverride, Z as normalizeOptionalAgentId, Zn as getAgentRunContext, Zr as resolveInputFileLimits, _ as applyToolPolicyPipeline, _r as getTotalQueueSize, ar as resolveTtsApiKey, at as stripLegacyDeliveryFields, b as createOpenClawTools, bn as dispatchInboundMessage, br as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as resolveTtsPrefsPath, ct as getPluginToolMeta, dr as setTtsProvider, dt as loadOpenClawPlugins, en as buildSafeExternalPrompt, er as resolveUserTimezone, et as normalizePayloadToSystemText, fr as textToSpeech, ft as createPluginRuntime, g as waitForEmbeddedPiRunEnd, gt as loadProviderUsageSummary, h as getActiveEmbeddedRunCount, hr as getActiveTaskCount, i as resolveCronStyleNow, in as unbindThreadBindingsBySessionKey, ir as isTtsProviderConfigured, it as hasLegacyDeliveryHints, j as consumeGatewaySigusr1RestartAuthorization, jn as resolveOutboundChannelPlugin, jr as isSystemEventContextChanged, jt as agentCommandFromIngress, k as resolveSessionModelRef, kn as resolveOutboundTarget, lr as resolveTtsProviderOrder, lt as resolvePluginTools, m as abortEmbeddedPiRun, mr as OPENAI_TTS_VOICES, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, nn as getHookType, nr as getTtsProvider, nt as migrateLegacyCronPayload, or as resolveTtsAutoMode, ot as applyBrowserProxyPaths, p as runEmbeddedPiAgent, pr as OPENAI_TTS_MODELS, q as normalizeHttpWebhookUrl, qn as clearSessionQueues, qr as DEFAULT_INPUT_TIMEOUT_MS, qt as lookupContextTokens, rn as isExternalHookSession, rr as isTtsEnabled, rt as buildDeliveryFromLegacyPayload, sr as resolveTtsConfig, st as persistBrowserProxyFiles, tn as detectSuspiciousPatterns, tr as clearBootstrapSnapshot, tt as normalizeRequiredName, ur as setTtsEnabled, v as buildDefaultToolPolicyPipelineSteps, vr as markGatewayDraining, w as listSessionsFromStore, wt as readJsonBodyWithLimit, x as canonicalizeSpawnedByForAgent, xn as createReplyDispatcher, xr as waitForActiveTasks, xt as resolveAgentOutboundIdentity, yn as formatZonedTimestamp, yr as resetAllLanes, z as triggerOpenClawRestart, zn as stopSubagentsForRequester, zr as ACP_SESSION_IDENTITY_RENDERER_VERSION, zt as createOutboundSendDeps$1 } from "./reply-DQMWsIE2.js";
6
+ import { a as resolveAgentDir, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-DHMu2mab.js";
7
7
  import { a as setConsoleSubsystemFilter, d as defaultRuntime, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-BT74-yyS.js";
8
8
  import { S as isCronRunSessionKey, T as parseAgentSessionKey, c as normalizeAgentId, g as normalizeAccountId$1, h as DEFAULT_ACCOUNT_ID, l as normalizeMainKey, m as toAgentStoreSessionKey, o as classifySessionKeyShape, p as toAgentRequestSessionKey, r as buildAgentMainSessionKey, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, w as isSubagentSessionKey } from "./session-key-C9z4VQtw.js";
9
- import { A as isNotFoundPathError, C as openBoundaryFileSync, P as matchesSkillFilter, S as openBoundaryFile, T as sameFileIdentity, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_SOUL_FILENAME, d as ensureAgentWorkspace, h as resolveDefaultAgentWorkspaceDir, i as DEFAULT_HEARTBEAT_FILENAME, l as DEFAULT_TOOLS_FILENAME, o as DEFAULT_MEMORY_ALT_FILENAME, p as isWorkspaceOnboardingCompleted, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_MEMORY_FILENAME, t as DEFAULT_AGENTS_FILENAME, u as DEFAULT_USER_FILENAME, v as resolveWorkspaceTemplateDir, w as openVerifiedFileSync, y as resolveOpenClawPackageRoot } from "./workspace-CRdln__H.js";
9
+ import { A as isNotFoundPathError, C as openBoundaryFileSync, P as matchesSkillFilter, S as openBoundaryFile, T as sameFileIdentity, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_SOUL_FILENAME, d as ensureAgentWorkspace, h as resolveDefaultAgentWorkspaceDir, i as DEFAULT_HEARTBEAT_FILENAME, l as DEFAULT_TOOLS_FILENAME, o as DEFAULT_MEMORY_ALT_FILENAME, p as isWorkspaceOnboardingCompleted, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_MEMORY_FILENAME, t as DEFAULT_AGENTS_FILENAME, u as DEFAULT_USER_FILENAME, v as resolveWorkspaceTemplateDir, w as openVerifiedFileSync, y as resolveOpenClawPackageRoot } from "./workspace-TersEUYu.js";
10
10
  import { i as logWarn, t as logDebug } from "./logger-D04dg4Ex.js";
11
11
  import { n as runExec, t as runCommandWithTimeout } from "./exec-BdDcFm8M.js";
12
- import { Gt as parseConfigJson5, In as isAvatarHttpUrl, Jt as resolveConfigSnapshotHash, Kr as resolveAgentMaxConcurrent, Kt as readConfigFileSnapshot, Ln as isAvatarImageDataUrl, Mi as DEFAULT_CONTEXT_TOKENS, Mr as applyLegacyMigrations, Ni as DEFAULT_MODEL, Nr as ensureControlUiAllowedOriginsForNonLoopbackBind, Pi as DEFAULT_PROVIDER, Pn as AVATAR_MAX_BYTES, Qt as OpenClawSchema, S as resolveThinkingDefault, Ti as normalizeSecretInput, Ut as createConfigIO, Vn as looksLikeAvatarPath, Vt as migrateLegacyConfig, Wr as buildTalkConfigResponse, Wt as loadConfig, Xt as writeConfigFile, Zt as validateConfigObjectWithPlugins, _ as resolveHooksGmailModel, _n as parseDurationMs, a as getModelRefStatus, ai as upsertAuthProfile, b as resolveSubagentConfiguredModelSelection, bi as isPidAlive, g as resolveDefaultModelForAgent, h as resolveConfiguredModelRef, jr as applyMergePatch, p as resolveAllowedModelRef, qr as resolveSubagentMaxConcurrent, qt as readConfigFileSnapshotForWrite, s as isCliProvider, t as buildAllowedModelSet, tt as resolveApiKeyForProvider, u as normalizeModelSelection, ui as loadAuthProfileStoreForRuntime, vn as parseByteSize, wi as normalizeOptionalSecretInput, xt as resolveApiKeyForProfile } from "./model-selection-xdfZxwgB.js";
12
+ import { Gt as parseConfigJson5, In as isAvatarHttpUrl, Jt as resolveConfigSnapshotHash, Kr as resolveAgentMaxConcurrent, Kt as readConfigFileSnapshot, Ln as isAvatarImageDataUrl, Mi as DEFAULT_CONTEXT_TOKENS, Mr as applyLegacyMigrations, Ni as DEFAULT_MODEL, Nr as ensureControlUiAllowedOriginsForNonLoopbackBind, Pi as DEFAULT_PROVIDER, Pn as AVATAR_MAX_BYTES, Qt as OpenClawSchema, S as resolveThinkingDefault, Ti as normalizeSecretInput, Ut as createConfigIO, Vn as looksLikeAvatarPath, Vt as migrateLegacyConfig, Wr as buildTalkConfigResponse, Wt as loadConfig, Xt as writeConfigFile, Zt as validateConfigObjectWithPlugins, _ as resolveHooksGmailModel, _n as parseDurationMs, a as getModelRefStatus, ai as upsertAuthProfile, b as resolveSubagentConfiguredModelSelection, bi as isPidAlive, g as resolveDefaultModelForAgent, h as resolveConfiguredModelRef, jr as applyMergePatch, p as resolveAllowedModelRef, qr as resolveSubagentMaxConcurrent, qt as readConfigFileSnapshotForWrite, s as isCliProvider, t as buildAllowedModelSet, tt as resolveApiKeyForProvider, u as normalizeModelSelection, ui as loadAuthProfileStoreForRuntime, vn as parseByteSize, wi as normalizeOptionalSecretInput, xt as resolveApiKeyForProfile } from "./model-selection-DCo8MhsE.js";
13
13
  import "./github-copilot-token-CVsUoC9m.js";
14
14
  import { t as formatCliCommand } from "./command-format-DBmYTAza.js";
15
15
  import "./boolean-BgXe2hyu.js";
@@ -17,160 +17,160 @@ import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-4r1Vlroz
17
17
  import "./host-env-security-BiAcoumI.js";
18
18
  import { i as resolveRuntimeServiceVersion, r as VERSION } from "./env-vars-DM119fhK.js";
19
19
  import { C as clearInternalHooks, E as triggerInternalHook, T as registerInternalHook, h as createEmptyPluginRegistry, t as CHANNEL_IDS, u as getActivePluginRegistry, w as createInternalHookEvent } from "./registry-CUyWRciN.js";
20
- import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-B_U2pKBU.js";
21
- import "./dock-BXksV3sC.js";
20
+ import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-HNrtHxxI.js";
21
+ import "./dock-swzevZbj.js";
22
22
  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-CKAn7Lf7.js";
23
- import "./send-ByUfPpKj.js";
24
- import { u as registerUnhandledRejectionHandler } from "./audio-transcription-runner-CF_UP4C7.js";
25
- import { x as extractTextFromChatContent } from "./image-B270IRGo.js";
26
- import "./models-config-Do1Ur_ov.js";
27
- import "./pi-model-discovery-DVhDvAnA.js";
28
- import "./pi-embedded-helpers-ZTn-T7tW.js";
29
- import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-BKa5RrBl.js";
23
+ import "./send-DmVTXBWW.js";
24
+ import { u as registerUnhandledRejectionHandler } from "./audio-transcription-runner-Dv-MCA8E.js";
25
+ import { x as extractTextFromChatContent } from "./image-BzR2twGI.js";
26
+ import "./models-config-Bgpjcu8R.js";
27
+ import "./pi-model-discovery-BSytrsu4.js";
28
+ import "./pi-embedded-helpers-D3nc5XJW.js";
29
+ import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-DH9YtUfB.js";
30
30
  import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-zFhF8IWN.js";
31
- import "./chrome-DzGCPEQK.js";
31
+ import "./chrome-2gfHr1cU.js";
32
32
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-OcOGSzmc.js";
33
33
  import { t as safeEqualSecret } from "./secret-equal-D7A3Bol7.js";
34
- import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-BYBKD8Kh.js";
35
- import { c as normalizeHostHeader, d as resolveGatewayBindHost, f as resolveGatewayListenHosts, i as isLoopbackHost, l as pickPrimaryLanIPv4, n as isLocalishHost, o as isTrustedProxyAddress, r as isLoopbackAddress, s as isValidIPv4, t as rawDataToString, u as resolveClientIp } from "./ws-DKbBt0us.js";
36
- 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-Co2g3d8d.js";
37
- import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-DWxmyV-0.js";
34
+ import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C8NwaQEp.js";
35
+ import { c as normalizeHostHeader, d as resolveGatewayBindHost, f as resolveGatewayListenHosts, i as isLoopbackHost, l as pickPrimaryLanIPv4, n as isLocalishHost, o as isTrustedProxyAddress, r as isLoopbackAddress, s as isValidIPv4, t as rawDataToString, u as resolveClientIp } from "./ws-E9v842O2.js";
36
+ 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-B9WdgDjZ.js";
37
+ import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-Cr-Y4i6P.js";
38
38
  import { d as hasBinary } from "./frontmatter-f69paAeU.js";
39
- import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-BeFcXCoN.js";
40
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-DWh6tSaP.js";
41
- import "./paths-AxolTUEH.js";
39
+ import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-BXLKd7i5.js";
40
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-BNzjbOwM.js";
41
+ import "./paths-BZfURxkW.js";
42
42
  import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-Bf_pxORb.js";
43
43
  import { o as isErrno, r as formatErrorMessage } from "./errors-D5pCqwf4.js";
44
- import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-p5lyYI__.js";
45
- import { n as SsrFBlockedError } from "./proxy-env-ClbXa7vn.js";
46
- import { c as detectMime } from "./image-ops-BAMcbVMS.js";
47
- import "./store-B-nkOSsv.js";
48
- import { a as inspectPortUsage, l as formatPortDiagnostics, r as ensurePortAvailable } from "./ports-DppAHKM-.js";
44
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-BGAE6eOQ.js";
45
+ import { n as SsrFBlockedError } from "./proxy-env-DhFUQlwP.js";
46
+ import { c as detectMime } from "./image-ops-B6BeXmZU.js";
47
+ import "./store-CRcBie8T.js";
48
+ import { a as inspectPortUsage, l as formatPortDiagnostics, r as ensurePortAvailable } from "./ports-DXMCFRgn.js";
49
49
  import { t as movePathToTrash } from "./trash-Cq4N8bvb.js";
50
- import "./server-middleware-CO1brrgv.js";
51
- import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-bJqSYqgg.js";
52
- import { $ as resolveMainSessionKey, A as readSessionPreviewItemsFromTranscript, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, I as stripInlineDirectiveTagsForDisplay, L as stripInlineDirectiveTagsFromMessageForDisplay, M as resolveSessionTranscriptCandidates, N as stripEnvelopeFromMessage, O as cleanupArchivedSessionTranscripts, P as stripEnvelopeFromMessages, Q as resolveExplicitAgentSessionKey, R as jsonUtf8Bytes, T as archiveFileOnDisk, U as resolveSessionResetPolicy, V as evaluateSessionFreshness, X as canonicalizeMainSessionAlias, Y as setSessionRuntimeModel, Z as resolveAgentMainSessionKey, ct as cleanStaleLockFiles, d as updateSessionStore, et as resolveMainSessionKeyFromConfig, k as readSessionMessages, n as parseSessionThreadInfo, nt as snapshotSessionOrigin, o as loadSessionStore, q as mergeSessionEntry, t as extractDeliveryInfo, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-BpuJ64B0.js";
53
- import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-CKWxMohB.js";
54
- import { i as resolveWhatsAppAccount } from "./accounts-D5DQlttG.js";
55
- import "./accounts-DKvlV3Tm.js";
50
+ import "./server-middleware-zyvA9rl9.js";
51
+ import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-C7p5SEie.js";
52
+ import { $ as resolveMainSessionKey, A as readSessionPreviewItemsFromTranscript, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, I as stripInlineDirectiveTagsForDisplay, L as stripInlineDirectiveTagsFromMessageForDisplay, M as resolveSessionTranscriptCandidates, N as stripEnvelopeFromMessage, O as cleanupArchivedSessionTranscripts, P as stripEnvelopeFromMessages, Q as resolveExplicitAgentSessionKey, R as jsonUtf8Bytes, T as archiveFileOnDisk, U as resolveSessionResetPolicy, V as evaluateSessionFreshness, X as canonicalizeMainSessionAlias, Y as setSessionRuntimeModel, Z as resolveAgentMainSessionKey, ct as cleanStaleLockFiles, d as updateSessionStore, et as resolveMainSessionKeyFromConfig, k as readSessionMessages, n as parseSessionThreadInfo, nt as snapshotSessionOrigin, o as loadSessionStore, q as mergeSessionEntry, t as extractDeliveryInfo, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-sIaYsUyX.js";
53
+ import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-Ce8ThYGQ.js";
54
+ import { i as resolveWhatsAppAccount } from "./accounts-CCbfXe4Y.js";
55
+ import "./accounts-C3iwoWUS.js";
56
56
  import "./logging-Dn5qdhsZ.js";
57
- import "./accounts-jPPbCJns.js";
58
- import { t as buildChannelAccountBindings } from "./bindings-Ck6aotGf.js";
59
- import "./send-DuNBSJln.js";
57
+ import "./accounts-ChjgDDok.js";
58
+ import { t as buildChannelAccountBindings } from "./bindings-C0k4wFy7.js";
59
+ import "./send-BQVNhO4Q.js";
60
60
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-BJLbJUqV.js";
61
61
  import { i as normalizeInputProvenance } from "./input-provenance-CrQfrobW.js";
62
62
  import "./chat-envelope-D2ZROPtK.js";
63
- import "./tool-images-QWbHWc0F.js";
63
+ import "./tool-images-CgSADinH.js";
64
64
  import "./tool-display-BnVcCWLz.js";
65
- import { t as fetchWithSsrFGuard } from "./fetch-guard-D6eclxeP.js";
66
- import "./api-key-rotation-j4O7qxMf.js";
67
- import "./local-roots-jW0nhxVT.js";
68
- import { n as loadModelCatalog } from "./model-catalog-CjA5pRJF.js";
65
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-N12H9lEe.js";
66
+ import "./api-key-rotation-CuHjsofV.js";
67
+ import "./local-roots-Dcc5UeD8.js";
68
+ import { n as loadModelCatalog } from "./model-catalog-DUHxH2xb.js";
69
69
  import "./proxy-fetch-7LT9tml2.js";
70
70
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BK5VYCE_.js";
71
- import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-Bn10XzRP.js";
72
- import { r as isRestartEnabled } from "./commands-C6OLhl3n.js";
73
- import "./commands-registry-CVzTBX51.js";
74
- import { $ as validateNodePairApproveParams, $t as roleScopesAllow, A as validateCronStatusParams, At as validateWizardStartParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateToolsCatalogParams, D as validateCronRemoveParams, Dt as validateWebLoginWaitParams, E as validateCronListParams, Et as validateWebLoginStartParams, F as validateDevicePairRemoveParams, G as validateModelsAuthSetParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, Ht as ensureDeviceToken, I as validateDeviceTokenRevokeParams, It as parseSessionLabel, J as validateNodeDescribeParams, Jt as revokeDeviceToken, K as validateModelsListParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as buildDeviceAuthPayload, M as validateDevicePairApproveParams, Mt as PROTOCOL_VERSION, N as validateDevicePairListParams, Nt as ErrorCodes, O as validateCronRunParams, Ot as validateWizardCancelParams, P as validateDevicePairRejectParams, Pt as errorShape, Q as validateNodeListParams, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayloadV3, S as validateConfigSchemaParams, St as validateTalkModeParams, T as validateCronAddParams, Tt as validateWakeParams, U as validateExecApprovalsSetParams, Ut as getPairedDevice, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeInvokeParams, Xt as summarizeDeviceTokens, Y as validateNodeEventParams, Yt as rotateDeviceToken, Z as validateNodeInvokeResultParams, Zt as updatePairedDeviceMetadata, _ as validateChatInjectParams, _t as validateSkillsBinsParams, a as validateAgentWaitParams, at as validatePollParams, b as validateConfigGetParams, bt as validateSkillsUpdateParams, c as validateAgentsFilesGetParams, ct as validateSendParams, d as validateAgentsListParams, dt as validateSessionsListParams, et as validateNodePairListParams, f as validateAgentsUpdateParams, ft as validateSessionsPatchParams, g as validateChatHistoryParams, gt as validateSessionsUsageParams, h as validateChatAbortParams, ht as validateSessionsResolveParams, i as validateAgentParams, in as verifyDeviceSignature, it as validateNodeRenameParams, j as validateCronUpdateParams, jt as validateWizardStatusParams, k as validateCronRunsParams, kt as validateWizardNextParams, l as validateAgentsFilesListParams, lt as validateSessionsCompactParams, m as validateChannelsStatusParams, mt as validateSessionsResetParams, n as formatValidationErrors, nt as validateNodePairRequestParams, o as validateAgentsCreateParams, ot as validatePushTestParams, p as validateChannelsLogoutParams, pt as validateSessionsPreviewParams, q as validateModelsVerifyParams, qt as requestDevicePairing, r as validateAgentIdentityParams, rn as normalizeDevicePublicKeyBase64Url, rt as validateNodePairVerifyParams, s as validateAgentsDeleteParams, st as validateRequestFrame, tn as deriveDeviceIdFromPublicKey, tt as validateNodePairRejectParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSkillsInstallParams, w as validateConnectParams, wt as validateUpdateRunParams, x as validateConfigPatchParams, xt as validateTalkConfigParams, y as validateConfigApplyParams, yt as validateSkillsStatusParams, z as validateExecApprovalResolveParams, zt as normalizeDeviceMetadataForAuth } from "./client-B91adiXh.js";
75
- import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-BGZQEHL4.js";
71
+ import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-D4ugOkLr.js";
72
+ import { r as isRestartEnabled } from "./commands-npgZubp3.js";
73
+ import "./commands-registry-B5jHbfUL.js";
74
+ import { $ as validateNodePairApproveParams, $t as roleScopesAllow, A as validateCronStatusParams, At as validateWizardStartParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateToolsCatalogParams, D as validateCronRemoveParams, Dt as validateWebLoginWaitParams, E as validateCronListParams, Et as validateWebLoginStartParams, F as validateDevicePairRemoveParams, G as validateModelsAuthSetParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, Ht as ensureDeviceToken, I as validateDeviceTokenRevokeParams, It as parseSessionLabel, J as validateNodeDescribeParams, Jt as revokeDeviceToken, K as validateModelsListParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as buildDeviceAuthPayload, M as validateDevicePairApproveParams, Mt as PROTOCOL_VERSION, N as validateDevicePairListParams, Nt as ErrorCodes, O as validateCronRunParams, Ot as validateWizardCancelParams, P as validateDevicePairRejectParams, Pt as errorShape, Q as validateNodeListParams, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayloadV3, S as validateConfigSchemaParams, St as validateTalkModeParams, T as validateCronAddParams, Tt as validateWakeParams, U as validateExecApprovalsSetParams, Ut as getPairedDevice, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeInvokeParams, Xt as summarizeDeviceTokens, Y as validateNodeEventParams, Yt as rotateDeviceToken, Z as validateNodeInvokeResultParams, Zt as updatePairedDeviceMetadata, _ as validateChatInjectParams, _t as validateSkillsBinsParams, a as validateAgentWaitParams, at as validatePollParams, b as validateConfigGetParams, bt as validateSkillsUpdateParams, c as validateAgentsFilesGetParams, ct as validateSendParams, d as validateAgentsListParams, dt as validateSessionsListParams, et as validateNodePairListParams, f as validateAgentsUpdateParams, ft as validateSessionsPatchParams, g as validateChatHistoryParams, gt as validateSessionsUsageParams, h as validateChatAbortParams, ht as validateSessionsResolveParams, i as validateAgentParams, in as verifyDeviceSignature, it as validateNodeRenameParams, j as validateCronUpdateParams, jt as validateWizardStatusParams, k as validateCronRunsParams, kt as validateWizardNextParams, l as validateAgentsFilesListParams, lt as validateSessionsCompactParams, m as validateChannelsStatusParams, mt as validateSessionsResetParams, n as formatValidationErrors, nt as validateNodePairRequestParams, o as validateAgentsCreateParams, ot as validatePushTestParams, p as validateChannelsLogoutParams, pt as validateSessionsPreviewParams, q as validateModelsVerifyParams, qt as requestDevicePairing, r as validateAgentIdentityParams, rn as normalizeDevicePublicKeyBase64Url, rt as validateNodePairVerifyParams, s as validateAgentsDeleteParams, st as validateRequestFrame, tn as deriveDeviceIdFromPublicKey, tt as validateNodePairRejectParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSkillsInstallParams, w as validateConnectParams, wt as validateUpdateRunParams, x as validateConfigPatchParams, xt as validateTalkConfigParams, y as validateConfigApplyParams, yt as validateSkillsStatusParams, z as validateExecApprovalResolveParams, zt as normalizeDeviceMetadataForAuth } from "./client-BoUhzGrS.js";
75
+ import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-B9Vrcbed.js";
76
76
  import "./pairing-token-QppPqMJU.js";
77
77
  import "./fetch-Ca92M4MR.js";
78
78
  import "./retry-AsJdJVsE.js";
79
- import { a as readChannelAllowFromStoreSync } from "./pairing-store-DdZ0xMD7.js";
79
+ import { a as readChannelAllowFromStoreSync } from "./pairing-store-DY0yrkuM.js";
80
80
  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-C23wqMXV.js";
81
- import "./exec-approvals-allowlist-CGVHz3PX.js";
82
- import "./exec-safe-bin-runtime-policy-D7olAQMf.js";
83
- import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-Dptoharj.js";
84
- import { a as ToolInputError } from "./target-errors-B1cYmIjq.js";
85
- import { n as resolveSystemRunCommand } from "./system-run-command-C3OIMtEu.js";
81
+ import "./exec-approvals-allowlist-fG-NsL-O.js";
82
+ import "./exec-safe-bin-runtime-policy-B9kCrTY1.js";
83
+ import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-FWjD2j3v.js";
84
+ import { a as ToolInputError } from "./target-errors-cerGxvCB.js";
85
+ import { n as resolveSystemRunCommand } from "./system-run-command-Cn5yQ2rv.js";
86
86
  import "./diagnostic-session-state-DtDi2x-e.js";
87
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-tSH4Tex_.js";
88
- import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-DRPetA8l.js";
89
- import { d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-SZBhACLn.js";
90
- import "./model-FnrgCVyS.js";
91
- import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BttpF8VB.js";
87
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-C-EETHnf.js";
88
+ import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-phUWJbF_.js";
89
+ import { d as loadCronStore, f as resolveCronStorePath, p as saveCronStore } from "./send-CFUSH9C-.js";
90
+ import "./model-CESXYutI.js";
91
+ import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-aBvAQX6L.js";
92
92
  import "./chunk-mV8H66i-.js";
93
- import "./markdown-tables-B5l_33qL.js";
94
- import "./ir-BGgl4f9u.js";
93
+ import "./markdown-tables-XmfG1bwr.js";
94
+ import "./ir-vGBxQkIg.js";
95
95
  import "./render-C9RrMnL2.js";
96
- import { n as resolveMessageChannelSelection } from "./channel-selection-TZJgoz5h.js";
96
+ import { n as resolveMessageChannelSelection } from "./channel-selection-BDdjozhi.js";
97
97
  import { n as normalizePollInput } from "./polls-3Iuh9z3d.js";
98
- import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-D1WySsnE.js";
99
- import "./send-Cua2kS5v.js";
100
- import "./outbound-attachment-CZh4VjhT.js";
98
+ import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-4zXn-eVS.js";
99
+ import "./send-CabiU1-J.js";
100
+ import "./outbound-attachment-Df5o7JIG.js";
101
101
  import "./delivery-queue-EvfYzqtX.js";
102
- import "./send-BntubUtK.js";
103
- import "./resolve-route-Ck23oGqS.js";
104
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-eyXj0EY5.js";
102
+ import "./send-NexNe2Wh.js";
103
+ import "./resolve-route-R565qQgt.js";
104
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-Dwsq-Yaf.js";
105
105
  import { t as getChannelActivity } from "./channel-activity-C--BGtPd.js";
106
- import "./tables-C9_oCtRN.js";
106
+ import "./tables-C5n2nXbu.js";
107
107
  import "./proxy-D8dYXgWo.js";
108
- import "./replies-B6SXcEs0.js";
109
- 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-COl0HE54.js";
110
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DcAUEsSG.js";
108
+ import "./replies-k5K96_46.js";
109
+ 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-C2_BOuyl.js";
110
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DxTFH1r3.js";
111
111
  import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-DbjE1AVb.js";
112
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-B1AEo6oL.js";
112
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-Jc1-4LBc.js";
113
113
  import "./prompt-style-sTNfJFX8.js";
114
- import "./pairing-labels-Cl7ROILg.js";
114
+ import "./pairing-labels-BBti3jJg.js";
115
115
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-BxjB8vcE.js";
116
- import "./session-meta-C-ox3bdI.js";
117
- import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-o3L9NN74.js";
118
- import { r as resolveMemorySearchConfig } from "./manager-C9rftBaE.js";
119
- import "./query-expansion-Dl85zpSb.js";
116
+ import "./session-meta-C6MooccR.js";
117
+ import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-87nxADqy.js";
118
+ import { r as resolveMemorySearchConfig } from "./manager-X8AF3rQJ.js";
119
+ import "./query-expansion-B9kneDbd.js";
120
120
  import { t as formatDocsLink } from "./links-CM7pO4C5.js";
121
121
  import { n as runCommandWithRuntime } from "./cli-utils-BKqG4ZT-.js";
122
122
  import { t as formatHelpExamples } from "./help-format-DUJs-8Xi.js";
123
123
  import { n as withProgress } from "./progress-86COuAnG.js";
124
- import "./server-lifecycle-B7aXKxY3.js";
124
+ import "./server-lifecycle-BVnXIEfI.js";
125
125
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-C-R8Eo-4.js";
126
126
  import "./constants-BJiQF5Ae.js";
127
127
  import "./context-window-guard-BNuaId5E.js";
128
128
  import { i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-BdDIMad6.js";
129
129
  import { t as ensureOpenClawCliOnPath } from "./path-env-DzEqwLCq.js";
130
130
  import "./runtime-guard-p6l4jDOj.js";
131
- import { t as forceFreePortAndWait } from "./ports-BL-FP2jP.js";
132
- import { t as buildWorkspaceSkillStatus } from "./skills-status-BEq0_fOn.js";
131
+ import { t as forceFreePortAndWait } from "./ports-wtEwdqsX.js";
132
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-C7Q6Ezbv.js";
133
133
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-DHq9RLRQ.js";
134
134
  import { n as inheritOptionFromParent } from "./command-options-D4YE45pL.js";
135
135
  import { t as WizardCancelledError } from "./prompts-iXdBMk3j.js";
136
136
  import { t as resolveChannelDefaultAccountId } from "./helpers-D0Q6sarx.js";
137
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BSY7Z6IC.js";
138
- import { t as isWithinDir } from "./path-safety-COhgvniC.js";
139
- import { t as assertCanonicalPathWithinBase } from "./install-safe-path-CSqVUjL8.js";
140
- import "./skill-scanner-CsmM5F4F.js";
141
- import { n as formatConfigIssueLines } from "./issue-format-rk9Vpcxd.js";
137
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BoNoGEQI.js";
138
+ import { t as isWithinDir } from "./path-safety-dmCI2tpN.js";
139
+ import { t as assertCanonicalPathWithinBase } from "./install-safe-path-DodF6oyk.js";
140
+ import "./skill-scanner-DYkQAh0l.js";
141
+ import { n as formatConfigIssueLines } from "./issue-format-B4oxePhU.js";
142
142
  import { t as buildChannelAccountSnapshot } from "./status-yrDGXYZM.js";
143
- import "./channels-status-issues-DeT1Znlx.js";
144
- 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-DCGL0k2M.js";
145
- import "./daemon-install-helpers-CMWYg4_W.js";
146
- import "./systemd-DJ5Red-Q.js";
147
- import "./service-DqxfCr8y.js";
148
- import "./lifecycle-core-Bqse41aA.js";
149
- import "./systemd-hints-D40Qx3hg.js";
143
+ import "./channels-status-issues-Dir7g-Pc.js";
144
+ 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-BI4Ryuhy.js";
145
+ import "./daemon-install-helpers-CGZBs-X3.js";
146
+ import "./systemd-BIfjzi-4.js";
147
+ import "./service-BcFhE63y.js";
148
+ import "./lifecycle-core-C5a4clqu.js";
149
+ import "./systemd-hints-CgtHwBfD.js";
150
150
  import { t as parsePort$1 } from "./parse-port-DEJJlpU0.js";
151
- import { n as addGatewayServiceCommands } from "./daemon-cli-RKWFtF-K.js";
152
- import "./diagnostics-BHQgZbuI.js";
151
+ import { n as addGatewayServiceCommands } from "./daemon-cli-CB9c5SXP.js";
152
+ import "./diagnostics-D_AmByNE.js";
153
153
  import "./table-DZBPnHSy.js";
154
154
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-D1fyqK-r.js";
155
- import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BmSv3K8N.js";
156
- import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-1YVlVmk7.js";
157
- import { t as discoverGatewayBeacons } from "./bonjour-discovery-CtUQb94i.js";
158
- import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-DjnNnvyr.js";
159
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as isCronSystemEvent } from "./health-DmJq2Wph.js";
160
- import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B_3g_YF0.js";
161
- import { o as isBitseekBuild } from "./status.update-HwSPC5ZX.js";
162
- import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-C6rIxLzo.js";
163
- import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-Rd7ooKB0.js";
164
- import { t as runOnboardingWizard } from "./onboarding-Wve1--YA.js";
165
- 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-B_GGZO2Z.js";
155
+ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-sFrejcA4.js";
156
+ import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-BAGbgihO.js";
157
+ import { t as discoverGatewayBeacons } from "./bonjour-discovery-DXvZeG8M.js";
158
+ import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-rMgdZcE5.js";
159
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as isCronSystemEvent } from "./health-DlFSsTw-.js";
160
+ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DpInddpx.js";
161
+ import { o as isBitseekBuild } from "./status.update-D4GfnNDI.js";
162
+ import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-CeGx9Aq7.js";
163
+ import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-D64ACWoX.js";
164
+ import { t as runOnboardingWizard } from "./onboarding-BQ2WB7tp.js";
165
+ 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-SIM2es-Y.js";
166
166
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-mNwdQcKy.js";
167
- import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-BKUs_pS2.js";
168
- import "./node-service-6W3vqgVv.js";
169
- import "./shared-CgFPGTLU.js";
170
- import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-CBRRhb95.js";
171
- import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-B_Vda3dM.js";
172
- import { t as runGatewayUpdate } from "./update-runner-rrlmopJw.js";
173
- import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-dKMB109Q.js";
167
+ import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-BiPTB8BK.js";
168
+ import "./node-service-CfKJ5oC1.js";
169
+ import "./shared-DNcLp2mA.js";
170
+ import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-SWx67Er2.js";
171
+ import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-CSfh8nRm.js";
172
+ import { t as runGatewayUpdate } from "./update-runner-Dj_CAfd4.js";
173
+ import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-1nc7aTpg.js";
174
174
  import { fileURLToPath, pathToFileURL } from "node:url";
175
175
  import * as fsSync from "node:fs";
176
176
  import fs from "node:fs";
@@ -178,7 +178,7 @@ import os from "node:os";
178
178
  import path from "node:path";
179
179
  import chalk from "chalk";
180
180
  import { isDeepStrictEqual } from "node:util";
181
- import fs$1 from "node:fs/promises";
181
+ import fsPromises from "node:fs/promises";
182
182
  import { spawn, spawnSync } from "node:child_process";
183
183
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
184
184
  import { z } from "zod";
@@ -1249,7 +1249,7 @@ function resolveCheckIntervalMs(cfg) {
1249
1249
  }
1250
1250
  async function readState(statePath) {
1251
1251
  try {
1252
- const raw = await fs$1.readFile(statePath, "utf-8");
1252
+ const raw = await fsPromises.readFile(statePath, "utf-8");
1253
1253
  const parsed = JSON.parse(raw);
1254
1254
  return parsed && typeof parsed === "object" ? parsed : {};
1255
1255
  } catch {
@@ -1330,7 +1330,7 @@ async function runAutoUpdateCommand(params) {
1330
1330
  path.join(params.root, "dist", "index.mjs")
1331
1331
  ];
1332
1332
  for (const candidate of candidates) try {
1333
- await fs$1.access(candidate);
1333
+ await fsPromises.access(candidate);
1334
1334
  argv.push(execPath, candidate, ...baseArgs);
1335
1335
  break;
1336
1336
  } catch {}
@@ -4405,20 +4405,20 @@ async function drainPendingWrite(filePath) {
4405
4405
  if (pending) await pending.catch(() => void 0);
4406
4406
  }
4407
4407
  async function pruneIfNeeded(filePath, opts) {
4408
- const stat = await fs$1.stat(filePath).catch(() => null);
4408
+ const stat = await fsPromises.stat(filePath).catch(() => null);
4409
4409
  if (!stat || stat.size <= opts.maxBytes) return;
4410
- const lines = (await fs$1.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4410
+ const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4411
4411
  const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
4412
4412
  const { randomBytes } = await import("node:crypto");
4413
4413
  const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
4414
- await fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4415
- await fs$1.rename(tmp, filePath);
4414
+ await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4415
+ await fsPromises.rename(tmp, filePath);
4416
4416
  }
4417
4417
  async function appendCronRunLog(filePath, entry, opts) {
4418
4418
  const resolved = path.resolve(filePath);
4419
4419
  const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
4420
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
4421
- await fs$1.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4420
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
4421
+ await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4422
4422
  await pruneIfNeeded(resolved, {
4423
4423
  maxBytes: opts?.maxBytes ?? DEFAULT_CRON_RUN_LOG_MAX_BYTES,
4424
4424
  keepLines: opts?.keepLines ?? DEFAULT_CRON_RUN_LOG_KEEP_LINES
@@ -4512,7 +4512,7 @@ function filterRunLogEntries(entries, opts) {
4512
4512
  async function readCronRunLogEntriesPage(filePath, opts) {
4513
4513
  await drainPendingWrite(filePath);
4514
4514
  const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
4515
- const raw = await fs$1.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4515
+ const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4516
4516
  const statuses = normalizeRunStatuses(opts);
4517
4517
  const deliveryStatuses = normalizeDeliveryStatuses(opts);
4518
4518
  const query = opts?.query?.trim().toLowerCase() ?? "";
@@ -4548,7 +4548,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4548
4548
  const query = opts.query?.trim().toLowerCase() ?? "";
4549
4549
  const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
4550
4550
  const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
4551
- 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));
4551
+ const jsonlFiles = (await fsPromises.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
4552
4552
  if (jsonlFiles.length === 0) return {
4553
4553
  entries: [],
4554
4554
  total: 0,
@@ -4559,7 +4559,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4559
4559
  };
4560
4560
  await Promise.all(jsonlFiles.map((f) => drainPendingWrite(f)));
4561
4561
  const filtered = filterRunLogEntries((await Promise.all(jsonlFiles.map(async (filePath) => {
4562
- return parseAllRunLogEntries(await fs$1.readFile(filePath, "utf-8").catch(() => ""));
4562
+ return parseAllRunLogEntries(await fsPromises.readFile(filePath, "utf-8").catch(() => ""));
4563
4563
  }))).flat(), {
4564
4564
  statuses,
4565
4565
  deliveryStatuses,
@@ -9767,7 +9767,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
9767
9767
  }
9768
9768
  async function resolveWorkspaceRealPath(workspaceDir) {
9769
9769
  try {
9770
- return await fs$1.realpath(workspaceDir);
9770
+ return await fsPromises.realpath(workspaceDir);
9771
9771
  } catch {
9772
9772
  return path.resolve(workspaceDir);
9773
9773
  }
@@ -9791,7 +9791,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9791
9791
  }
9792
9792
  let candidateLstat;
9793
9793
  try {
9794
- candidateLstat = await fs$1.lstat(candidatePath);
9794
+ candidateLstat = await fsPromises.lstat(candidatePath);
9795
9795
  } catch (err) {
9796
9796
  if (isNotFoundPathError(err)) {
9797
9797
  if (params.allowMissing) return {
@@ -9811,7 +9811,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9811
9811
  if (candidateLstat.isSymbolicLink()) {
9812
9812
  let targetReal;
9813
9813
  try {
9814
- targetReal = await fs$1.realpath(candidatePath);
9814
+ targetReal = await fsPromises.realpath(candidatePath);
9815
9815
  } catch (err) {
9816
9816
  if (isNotFoundPathError(err)) {
9817
9817
  if (params.allowMissing) return {
@@ -9830,7 +9830,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9830
9830
  }
9831
9831
  let targetStat;
9832
9832
  try {
9833
- targetStat = await fs$1.stat(targetReal);
9833
+ targetStat = await fsPromises.stat(targetReal);
9834
9834
  } catch (err) {
9835
9835
  if (isNotFoundPathError(err)) {
9836
9836
  if (params.allowMissing) return {
@@ -9877,13 +9877,13 @@ async function resolveAgentWorkspaceFilePath(params) {
9877
9877
  return {
9878
9878
  kind: "ready",
9879
9879
  requestPath,
9880
- ioPath: await fs$1.realpath(candidatePath).catch(() => candidatePath),
9880
+ ioPath: await fsPromises.realpath(candidatePath).catch(() => candidatePath),
9881
9881
  workspaceReal
9882
9882
  };
9883
9883
  }
9884
9884
  async function statFileSafely(filePath) {
9885
9885
  try {
9886
- const [stat, lstat] = await Promise.all([fs$1.stat(filePath), fs$1.lstat(filePath)]);
9886
+ const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.lstat(filePath)]);
9887
9887
  if (lstat.isSymbolicLink() || !stat.isFile()) return null;
9888
9888
  if (stat.nlink > 1) return null;
9889
9889
  if (!sameFileIdentity(stat, lstat)) return null;
@@ -9968,7 +9968,7 @@ function resolveOptionalStringParam(value) {
9968
9968
  async function moveToTrashBestEffort(pathname) {
9969
9969
  if (!pathname) return;
9970
9970
  try {
9971
- await fs$1.access(pathname);
9971
+ await fsPromises.access(pathname);
9972
9972
  } catch {
9973
9973
  return;
9974
9974
  }
@@ -10044,7 +10044,7 @@ const agentsHandlers = {
10044
10044
  dir: workspaceDir,
10045
10045
  ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
10046
10046
  });
10047
- await fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10047
+ await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10048
10048
  await writeConfigFile(nextConfig);
10049
10049
  const safeName = sanitizeIdentityLine(rawName);
10050
10050
  const emoji = resolveOptionalStringParam(params.emoji);
@@ -10057,7 +10057,7 @@ const agentsHandlers = {
10057
10057
  ...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
10058
10058
  ""
10059
10059
  ];
10060
- await fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
10060
+ await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
10061
10061
  respond(true, {
10062
10062
  ok: true,
10063
10063
  agentId,
@@ -10092,9 +10092,9 @@ const agentsHandlers = {
10092
10092
  });
10093
10093
  if (avatar) {
10094
10094
  const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
10095
- await fs$1.mkdir(workspace, { recursive: true });
10095
+ await fsPromises.mkdir(workspace, { recursive: true });
10096
10096
  const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
10097
- await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10097
+ await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10098
10098
  }
10099
10099
  respond(true, {
10100
10100
  ok: true,
@@ -10218,7 +10218,7 @@ const agentsHandlers = {
10218
10218
  const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
10219
10219
  if (!resolved) return;
10220
10220
  const { agentId, workspaceDir, name } = resolved;
10221
- await fs$1.mkdir(workspaceDir, { recursive: true });
10221
+ await fsPromises.mkdir(workspaceDir, { recursive: true });
10222
10222
  const filePath = path.join(workspaceDir, name);
10223
10223
  const resolvedPath = await resolveWorkspaceFilePathOrRespond({
10224
10224
  respond,
@@ -12511,14 +12511,14 @@ function isRollingLogFile(file) {
12511
12511
  return ROLLING_LOG_RE.test(path.basename(file));
12512
12512
  }
12513
12513
  async function resolveLogFile(file) {
12514
- if (await fs$1.stat(file).catch(() => null)) return file;
12514
+ if (await fsPromises.stat(file).catch(() => null)) return file;
12515
12515
  if (!isRollingLogFile(file)) return file;
12516
12516
  const dir = path.dirname(file);
12517
- const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => null);
12517
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
12518
12518
  if (!entries) return file;
12519
12519
  return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
12520
12520
  const fullPath = path.join(dir, entry.name);
12521
- const fileStat = await fs$1.stat(fullPath).catch(() => null);
12521
+ const fileStat = await fsPromises.stat(fullPath).catch(() => null);
12522
12522
  return fileStat ? {
12523
12523
  path: fullPath,
12524
12524
  mtimeMs: fileStat.mtimeMs
@@ -12526,7 +12526,7 @@ async function resolveLogFile(file) {
12526
12526
  }))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
12527
12527
  }
12528
12528
  async function readLogSlice(params) {
12529
- const stat = await fs$1.stat(params.file).catch(() => null);
12529
+ const stat = await fsPromises.stat(params.file).catch(() => null);
12530
12530
  if (!stat) return {
12531
12531
  cursor: 0,
12532
12532
  size: 0,
@@ -12564,7 +12564,7 @@ async function readLogSlice(params) {
12564
12564
  truncated,
12565
12565
  reset
12566
12566
  };
12567
- const handle = await fs$1.open(params.file, "r");
12567
+ const handle = await fsPromises.open(params.file, "r");
12568
12568
  try {
12569
12569
  let prefix = "";
12570
12570
  if (start > 0) {
@@ -13611,7 +13611,7 @@ const nodeHandlers = {
13611
13611
  const p = params;
13612
13612
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
13613
13613
  await respondUnavailableOnThrow(respond, async () => {
13614
- const { handleNodeEvent } = await import("./server-node-events-BHkXD38g.js");
13614
+ const { handleNodeEvent } = await import("./server-node-events-oa4mOmsp.js");
13615
13615
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
13616
13616
  await handleNodeEvent({
13617
13617
  deps: context.deps,
@@ -14300,6 +14300,12 @@ function isCommandNotFoundResult(result) {
14300
14300
  const output = `${result.stderr}\n${result.stdout}`.toLowerCase();
14301
14301
  return output.includes("enoent") || output.includes("command not found") || output.includes("not recognized as an internal or external command");
14302
14302
  }
14303
+ function isAlreadyInstalledResult(result) {
14304
+ return `${result.stderr}\n${result.stdout}`.toLowerCase().includes("already installed");
14305
+ }
14306
+ function requiresForceForSuspiciousSkill(result) {
14307
+ return `${result.stderr}\n${result.stdout}`.toLowerCase().includes("use --force to install suspicious skills in non-interactive mode");
14308
+ }
14303
14309
  async function runMarketInstallCommand(runCommand, argv, options) {
14304
14310
  try {
14305
14311
  return await runCommand(argv, options);
@@ -14331,11 +14337,11 @@ async function installLocalMarketSkill(params) {
14331
14337
  candidatePath: sourceDir,
14332
14338
  boundaryLabel: "market templates directory"
14333
14339
  });
14334
- if (!(await fs$1.stat(sourceDir)).isDirectory()) return {
14340
+ if (!(await fsPromises.stat(sourceDir)).isDirectory()) return {
14335
14341
  ok: false,
14336
14342
  message: `Local template "${templateDir}" is not a directory.`
14337
14343
  };
14338
- if (!(await fs$1.stat(sourceSkillPath)).isFile()) return {
14344
+ if (!(await fsPromises.stat(sourceSkillPath)).isFile()) return {
14339
14345
  ok: false,
14340
14346
  message: `Local template "${templateDir}" is missing SKILL.md.`
14341
14347
  };
@@ -14349,13 +14355,13 @@ async function installLocalMarketSkill(params) {
14349
14355
  const workspaceSkillsDir = path.join(workspaceDir, "skills");
14350
14356
  const targetDir = path.join(workspaceSkillsDir, templateDir);
14351
14357
  try {
14352
- await fs$1.mkdir(workspaceSkillsDir, { recursive: true });
14358
+ await fsPromises.mkdir(workspaceSkillsDir, { recursive: true });
14353
14359
  await assertCanonicalPathWithinBase({
14354
14360
  baseDir: workspaceSkillsDir,
14355
14361
  candidatePath: targetDir,
14356
14362
  boundaryLabel: "workspace skills directory"
14357
14363
  });
14358
- await fs$1.cp(sourceDir, targetDir, {
14364
+ await fsPromises.cp(sourceDir, targetDir, {
14359
14365
  recursive: true,
14360
14366
  force: true
14361
14367
  });
@@ -14379,18 +14385,43 @@ async function installClawhubMarketSkill(params, deps) {
14379
14385
  const workspaceDir = resolveUserPath(params.workspaceDir);
14380
14386
  const timeoutMs = Math.min(Math.max(params.timeoutMs ?? 3e5, 1e3), 9e5);
14381
14387
  const runCommand = deps?.runCommand ?? runCommandWithTimeout;
14388
+ const installOptions = {
14389
+ cwd: workspaceDir,
14390
+ timeoutMs
14391
+ };
14382
14392
  const first = await runMarketInstallCommand(runCommand, [
14383
14393
  "clawhub",
14384
14394
  "install",
14385
14395
  slug
14386
- ], {
14387
- cwd: workspaceDir,
14388
- timeoutMs
14389
- });
14396
+ ], installOptions);
14390
14397
  if (first.code === 0) return {
14391
14398
  ok: true,
14392
14399
  message: `Installed "${slug}" via clawhub.`
14393
14400
  };
14401
+ if (isAlreadyInstalledResult(first)) return {
14402
+ ok: true,
14403
+ message: `Already installed "${slug}" via clawhub.`
14404
+ };
14405
+ if (requiresForceForSuspiciousSkill(first)) {
14406
+ const forced = await runMarketInstallCommand(runCommand, [
14407
+ "clawhub",
14408
+ "install",
14409
+ slug,
14410
+ "--force"
14411
+ ], installOptions);
14412
+ if (forced.code === 0) return {
14413
+ ok: true,
14414
+ message: `Installed "${slug}" via clawhub --force.`
14415
+ };
14416
+ if (isAlreadyInstalledResult(forced)) return {
14417
+ ok: true,
14418
+ message: `Already installed "${slug}" via clawhub --force.`
14419
+ };
14420
+ return {
14421
+ ok: false,
14422
+ message: `ClawHub install failed: ${formatInstallFailureMessage(forced)}`
14423
+ };
14424
+ }
14394
14425
  if (!isCommandNotFoundResult(first)) return {
14395
14426
  ok: false,
14396
14427
  message: `ClawHub install failed: ${formatInstallFailureMessage(first)}`
@@ -14401,14 +14432,37 @@ async function installClawhubMarketSkill(params, deps) {
14401
14432
  "clawhub",
14402
14433
  "install",
14403
14434
  slug
14404
- ], {
14405
- cwd: workspaceDir,
14406
- timeoutMs
14407
- });
14435
+ ], installOptions);
14408
14436
  if (fallback.code === 0) return {
14409
14437
  ok: true,
14410
14438
  message: `Installed "${slug}" via npx clawhub.`
14411
14439
  };
14440
+ if (isAlreadyInstalledResult(fallback)) return {
14441
+ ok: true,
14442
+ message: `Already installed "${slug}" via npx clawhub.`
14443
+ };
14444
+ if (requiresForceForSuspiciousSkill(fallback)) {
14445
+ const forcedFallback = await runMarketInstallCommand(runCommand, [
14446
+ "npx",
14447
+ "-y",
14448
+ "clawhub",
14449
+ "install",
14450
+ slug,
14451
+ "--force"
14452
+ ], installOptions);
14453
+ if (forcedFallback.code === 0) return {
14454
+ ok: true,
14455
+ message: `Installed "${slug}" via npx clawhub --force.`
14456
+ };
14457
+ if (isAlreadyInstalledResult(forcedFallback)) return {
14458
+ ok: true,
14459
+ message: `Already installed "${slug}" via npx clawhub --force.`
14460
+ };
14461
+ return {
14462
+ ok: false,
14463
+ message: `ClawHub install failed: ${formatInstallFailureMessage(forcedFallback)}`
14464
+ };
14465
+ }
14412
14466
  return {
14413
14467
  ok: false,
14414
14468
  message: `ClawHub install failed: ${formatInstallFailureMessage(fallback)}`
@@ -17141,7 +17195,7 @@ function normalizeAgentPayload(payload) {
17141
17195
  async function startBrowserControlServerIfEnabled() {
17142
17196
  if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
17143
17197
  const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
17144
- const mod = override ? await import(override) : await import("./server-Ct0J5VXf.js");
17198
+ const mod = override ? await import(override) : await import("./server-DQ7D-B-v.js");
17145
17199
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
17146
17200
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
17147
17201
  if (!start) return null;
@@ -17369,7 +17423,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
17369
17423
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
17370
17424
  const candidate = path.join(rootReal, rel);
17371
17425
  try {
17372
- const st = await fs$1.lstat(candidate);
17426
+ const st = await fsPromises.lstat(candidate);
17373
17427
  if (st.isSymbolicLink()) return null;
17374
17428
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
17375
17429
  } catch {}
@@ -17406,8 +17460,8 @@ async function resolveA2uiRoot() {
17406
17460
  for (const dir of candidates) try {
17407
17461
  const indexPath = path.join(dir, "index.html");
17408
17462
  const bundlePath = path.join(dir, "a2ui.bundle.js");
17409
- await fs$1.stat(indexPath);
17410
- await fs$1.stat(bundlePath);
17463
+ await fsPromises.stat(indexPath);
17464
+ await fsPromises.stat(bundlePath);
17411
17465
  return dir;
17412
17466
  } catch {}
17413
17467
  return null;
@@ -17416,7 +17470,7 @@ async function resolveA2uiRootReal() {
17416
17470
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
17417
17471
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
17418
17472
  const root = await resolveA2uiRoot();
17419
- cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
17473
+ cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
17420
17474
  cachedA2uiResolvedAtMs = Date.now();
17421
17475
  resolvingA2uiRoot = null;
17422
17476
  return cachedA2uiRootReal;
@@ -17637,13 +17691,13 @@ function normalizeBasePath(rawPath) {
17637
17691
  }
17638
17692
  async function prepareCanvasRoot(rootDir) {
17639
17693
  await ensureDir(rootDir);
17640
- const rootReal = await fs$1.realpath(rootDir);
17694
+ const rootReal = await fsPromises.realpath(rootDir);
17641
17695
  try {
17642
17696
  const indexPath = path.join(rootReal, "index.html");
17643
- await fs$1.stat(indexPath);
17697
+ await fsPromises.stat(indexPath);
17644
17698
  } catch {
17645
17699
  try {
17646
- await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17700
+ await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17647
17701
  } catch {}
17648
17702
  }
17649
17703
  return rootReal;
@@ -20650,7 +20704,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
20650
20704
  }
20651
20705
  async function readLockPayload(lockPath) {
20652
20706
  try {
20653
- const raw = await fs$1.readFile(lockPath, "utf8");
20707
+ const raw = await fsPromises.readFile(lockPath, "utf8");
20654
20708
  const parsed = JSON.parse(raw);
20655
20709
  if (typeof parsed.pid !== "number") return null;
20656
20710
  if (typeof parsed.createdAt !== "string") return null;
@@ -20685,11 +20739,11 @@ async function acquireGatewayLock(opts = {}) {
20685
20739
  const platform = opts.platform ?? process.platform;
20686
20740
  const port = opts.port;
20687
20741
  const { lockPath, configPath } = resolveGatewayLockPath(env);
20688
- await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
20742
+ await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
20689
20743
  const startedAt = Date.now();
20690
20744
  let lastPayload = null;
20691
20745
  while (Date.now() - startedAt < timeoutMs) try {
20692
- const handle = await fs$1.open(lockPath, "wx");
20746
+ const handle = await fsPromises.open(lockPath, "wx");
20693
20747
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
20694
20748
  const payload = {
20695
20749
  pid: process.pid,
@@ -20703,7 +20757,7 @@ async function acquireGatewayLock(opts = {}) {
20703
20757
  configPath,
20704
20758
  release: async () => {
20705
20759
  await handle.close().catch(() => void 0);
20706
- await fs$1.rm(lockPath, { force: true });
20760
+ await fsPromises.rm(lockPath, { force: true });
20707
20761
  }
20708
20762
  };
20709
20763
  } catch (err) {
@@ -20712,7 +20766,7 @@ async function acquireGatewayLock(opts = {}) {
20712
20766
  const ownerPid = lastPayload?.pid;
20713
20767
  const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
20714
20768
  if (ownerStatus === "dead" && ownerPid) {
20715
- await fs$1.rm(lockPath, { force: true });
20769
+ await fsPromises.rm(lockPath, { force: true });
20716
20770
  continue;
20717
20771
  }
20718
20772
  if (ownerStatus !== "alive") {
@@ -20722,13 +20776,13 @@ async function acquireGatewayLock(opts = {}) {
20722
20776
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
20723
20777
  }
20724
20778
  if (!stale) try {
20725
- const st = await fs$1.stat(lockPath);
20779
+ const st = await fsPromises.stat(lockPath);
20726
20780
  stale = Date.now() - st.mtimeMs > staleMs;
20727
20781
  } catch {
20728
20782
  stale = false;
20729
20783
  }
20730
20784
  if (stale) {
20731
- await fs$1.rm(lockPath, { force: true });
20785
+ await fsPromises.rm(lockPath, { force: true });
20732
20786
  continue;
20733
20787
  }
20734
20788
  }
@@ -23038,7 +23092,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
23038
23092
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
23039
23093
  if (!minimalTestGateway) (async () => {
23040
23094
  const { recoverPendingDeliveries } = await import("./delivery-queue-EvfYzqtX.js").then((n) => n.n);
23041
- const { deliverOutboundPayloads } = await import("./deliver-Bn10XzRP.js").then((n) => n.n);
23095
+ const { deliverOutboundPayloads } = await import("./deliver-D4ugOkLr.js").then((n) => n.n);
23042
23096
  await recoverPendingDeliveries({
23043
23097
  deliver: deliverOutboundPayloads,
23044
23098
  log: log.child("delivery-recovery"),