@yuf1011/openclaw 2026.3.1 → 2026.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/dist/{accounts-DmPvlCpt.js → accounts-1yld8BY0.js} +1 -1
  2. package/dist/{accounts-UyfWuXKC.js → accounts-Bgjrmxdu.js} +1 -1
  3. package/dist/{accounts-9Q07LhiR.js → accounts-Bj4Z7jBB.js} +7 -7
  4. package/dist/{acp-cli-nchqxQfx.js → acp-cli-CmC_BH_F.js} +9 -9
  5. package/dist/{agent-scope-CaXaKovT.js → agent-scope-B33Scyaw.js} +17 -17
  6. package/dist/{agents-Bp-on4Ol.js → agents-C1kcu676.js} +14 -14
  7. package/dist/{agents.config-FcpuK_oH.js → agents.config-bWKr_efI.js} +2 -2
  8. package/dist/{audio-preflight-HamJvwTU.js → audio-preflight-DrlqJTSX.js} +36 -36
  9. package/dist/{audio-preflight-O-Z_sN2r.js → audio-preflight-DwqzIQik.js} +4 -4
  10. package/dist/{audit-BNH972H2.js → audit-BJB-Xpuo.js} +23 -23
  11. package/dist/{auth-DHBdjHjv.js → auth-D3lXwd01.js} +1 -1
  12. package/dist/{auth-choice-C9nuVlg2.js → auth-choice-CLaOH6QA.js} +11 -11
  13. package/dist/{auth-choice-DcdZx6iq.js → auth-choice-DvgigM9u.js} +12 -12
  14. package/dist/{auth-choice.apply-helpers-CLLeqgyP.js → auth-choice.apply-helpers-DAtOrGrN.js} +1 -1
  15. package/dist/{auth-profiles-qnck2ozy.js → auth-profiles-D3FyYUSG.js} +16 -16
  16. package/dist/{auth-token-D7uxXxRA.js → auth-token-5Yewb0K8.js} +1 -1
  17. package/dist/{banner-KQwBaYzV.js → banner-BBj7LBMv.js} +1 -1
  18. package/dist/{bindings-vuIL-APZ.js → bindings-CWyuSfs6.js} +1 -1
  19. package/dist/{bonjour-discovery-BTitpiD_.js → bonjour-discovery-BZKMSZbv.js} +1 -1
  20. package/dist/{browser-cli-mVm8SiTf.js → browser-cli-Dae28dnV.js} +13 -13
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +6 -6
  23. package/dist/bundled/session-memory/handler.js +6 -6
  24. package/dist/{call-C-oZgsJl.js → call-BZSWeS2x.js} +10 -10
  25. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  26. package/dist/{channel-account-context-BJEFFNm5.js → channel-account-context-CvN7490K.js} +5 -5
  27. package/dist/{channel-options-C16VfUrO.js → channel-options-C-f-M1qF.js} +3 -3
  28. package/dist/{channel-selection-D7I4uyOc.js → channel-selection-DYEAZFR_.js} +1 -1
  29. package/dist/{channel-web-B1GNR2Dq.js → channel-web-DZsn-oXm.js} +18 -18
  30. package/dist/{channels-cli-CoYoUIpQ.js → channels-cli-D4rNipxg.js} +94 -94
  31. package/dist/{channels-status-issues-BDFtJFM3.js → channels-status-issues-BU67pzdy.js} +1 -1
  32. package/dist/{chrome-BO_XI6hR.js → chrome-CmcvtOeC.js} +4 -4
  33. package/dist/{chrome-C9dZ_OUB.js → chrome-rCogzAbu.js} +9 -9
  34. package/dist/{clawbot-cli-DvFI6yxU.js → clawbot-cli-z2dtXuJD.js} +5 -5
  35. package/dist/cli-CRcQGL-0.js +156 -0
  36. package/dist/{client-BBiFerkj.js → client-CdetOJti.js} +2 -2
  37. package/dist/{command-registry-CA18iTa1.js → command-registry-DpWSR6vE.js} +11 -11
  38. package/dist/{commands-CPLAkZQx.js → commands-DvATdC6x.js} +1 -1
  39. package/dist/{commands-registry-C9Mi0U--.js → commands-registry-CxF5UuEv.js} +3 -3
  40. package/dist/{completion-cli-f2rJo_UJ.js → completion-cli-8XhBe_hV.js} +13 -13
  41. package/dist/{config-cli-D3Kk9KK5.js → config-cli-KR_BJlS_.js} +6 -6
  42. package/dist/{config-guard-DOLjY0Fe.js → config-guard-CCUlwUmY.js} +2 -2
  43. package/dist/{config-validation-krJ4BOp0.js → config-validation-DM5GZr_k.js} +2 -2
  44. package/dist/{configure-BJLfFfRf.js → configure-Cijg4qS_.js} +17 -17
  45. package/dist/{control-ui-assets-DwsjxukL.js → control-ui-assets-D3JoK4hu.js} +1 -1
  46. package/dist/{cron-cli-C35CLkzi.js → cron-cli-D9M9O2W6.js} +13 -13
  47. package/dist/{daemon-cli-YUZ4wWO5.js → daemon-cli-CV7F4tGh.js} +14 -14
  48. package/dist/{daemon-install-CvpZhhVu.js → daemon-install-DoY06atb.js} +4 -4
  49. package/dist/{daemon-install-helpers-2MdByqYP.js → daemon-install-helpers-BbDloeys.js} +9 -9
  50. package/dist/{deliver-B7mNw8Vu.js → deliver-CZEKwM5v.js} +7 -7
  51. package/dist/{deliver-D1fs1S3v.js → deliver-vfoVGjjK.js} +1 -1
  52. package/dist/{devices-cli-D62t6AOQ.js → devices-cli-DO3kZZY9.js} +9 -9
  53. package/dist/{diagnostic-CJIq8gp_.js → diagnostic-Bc4KUKvc.js} +1 -1
  54. package/dist/{diagnostics-B_N_47d8.js → diagnostics-Cwm6yj6S.js} +5 -5
  55. package/dist/{directory-cli-gpg8jejU.js → directory-cli-CxHr8BB9.js} +8 -8
  56. package/dist/{dns-cli-AJOUY2RK.js → dns-cli-D4tVpUzw.js} +5 -5
  57. package/dist/{dock-BYLdmpt5.js → dock-SjEhga7i.js} +4 -4
  58. package/dist/{docs-cli-B8nNTRqk.js → docs-cli-Dfg5DloZ.js} +4 -4
  59. package/dist/{doctor-completion-C8_UEBvL.js → doctor-completion-Cx1hTz2p.js} +2 -2
  60. package/dist/{doctor-config-flow-BoMU70Ko.js → doctor-config-flow-AkAVT_nE.js} +14 -14
  61. package/dist/{enable-BIW6JnCC.js → enable-D8_8_z2E.js} +1 -1
  62. package/dist/entry.js +2 -2
  63. package/dist/{exec-approvals-allowlist-CklJrJwI.js → exec-approvals-allowlist-CjjR0Lj9.js} +1 -1
  64. package/dist/{exec-approvals-cli-tXCzQbvW.js → exec-approvals-cli-DzUDeKvk.js} +17 -17
  65. package/dist/{exec-safe-bin-runtime-policy-BCQlhcV7.js → exec-safe-bin-runtime-policy-BQ4FXdVM.js} +2 -2
  66. package/dist/{fetch-guard-qBXlHXD_.js → fetch-guard-Cm1MSHHV.js} +1 -1
  67. package/dist/{fs-safe-Dr8G7a6P.js → fs-safe-CCDIEBbt.js} +16 -16
  68. package/dist/{gateway-cli-Bl2PLo3y.js → gateway-cli-CZD2FTCR.js} +154 -154
  69. package/dist/{gateway-rpc-BTAI1-VC.js → gateway-rpc-D_B_ulqD.js} +1 -1
  70. package/dist/{gemini-auth-DLd8nbvG.js → gemini-auth-i82BVqPg.js} +1 -1
  71. package/dist/{health-C2cEnW7K.js → health-BayXWmty.js} +13 -13
  72. package/dist/{hooks-cli-D8BwaEoO.js → hooks-cli-BPDlubbK.js} +90 -90
  73. package/dist/{hooks-status-Bk97nvaD.js → hooks-status-0v40xw4Q.js} +1 -1
  74. package/dist/{image-CEFy-HTg.js → image-dzsBaMmN.js} +1 -1
  75. package/dist/{plugin-sdk/image-ops-CVCbKZRn.js → image-ops-Z3_QkQPj.js} +2 -2
  76. package/dist/{image-QYMqJ_Cu.js → image-w5Vu5G__.js} +5 -5
  77. package/dist/{inspect-CmMfTMbw.js → inspect-Br6JEUTm.js} +4 -4
  78. package/dist/{install-safe-path-DXJW8Vo3.js → install-safe-path-DGYbxO86.js} +19 -19
  79. package/dist/{installs-Dn2iXOnd.js → installs-Bg1jGMwd.js} +10 -10
  80. package/dist/{ipv4-CrhBNcyo.js → ipv4-BBc3Sa_a.js} +1 -1
  81. package/dist/{ir-DYUcUO1t.js → ir-Dhd5EWHO.js} +6 -6
  82. package/dist/{lifecycle-core-CkOjXGl1.js → lifecycle-core-DrcOD7_e.js} +5 -5
  83. package/dist/llm-slug-generator.js +6 -6
  84. package/dist/{local-roots-iKHeLTM9.js → local-roots-Cyat99dT.js} +3 -3
  85. package/dist/{login-BdEIPD3M.js → login-CbEdSE8o.js} +3 -3
  86. package/dist/{login-qr-BCrD2_fy.js → login-qr-DK2E0Fk5.js} +6 -6
  87. package/dist/{logs-cli-BUI8frD6.js → logs-cli-DX5sTx_Z.js} +10 -10
  88. package/dist/{manager-SsdELHU2.js → manager-DdwvQQ2A.js} +14 -14
  89. package/dist/{manifest-registry-YC37UceR.js → manifest-registry-DRMtnPEQ.js} +1 -1
  90. package/dist/{markdown-tables-BvxYO6Nz.js → markdown-tables-DhrZVWff.js} +1 -1
  91. package/dist/{memory-cli-DPD3Jnkc.js → memory-cli-CdB1ptzd.js} +12 -12
  92. package/dist/{model-2aL8NZKc.js → model-AKh96s7h.js} +2 -2
  93. package/dist/{model-catalog-BL39Jul_.js → model-catalog-el1FVV5q.js} +3 -3
  94. package/dist/{model-picker-wenGgGVr.js → model-picker-BzzwN4eR.js} +4 -4
  95. package/dist/{models-BGvQqrQE.js → models-CyBxXuv1.js} +17 -17
  96. package/dist/{models-cli-fQ4IbjQs.js → models-cli-q5yywUVm.js} +80 -80
  97. package/dist/{models-config-1JCLlVs8.js → models-config-CGGxd1w2.js} +6 -6
  98. package/dist/{net-CWUwrVfz.js → net-C63UEjlQ.js} +2 -2
  99. package/dist/{node-cli-DHw9Zenb.js → node-cli-DeauKipI.js} +36 -36
  100. package/dist/{node-service-sJ_Rmbk7.js → node-service-CVNXtZeJ.js} +1 -1
  101. package/dist/{nodes-cli-BgDJY7us.js → nodes-cli-QVwX4ULT.js} +15 -15
  102. package/dist/{nodes-screen-BV63eC7o.js → nodes-screen-CHgcakcH.js} +5 -5
  103. package/dist/{npm-pack-install-C2E_zBU6.js → npm-pack-install-ChrCCIJD.js} +16 -16
  104. package/dist/{npm-resolution-B6xDbagk.js → npm-resolution-CvPKK0T0.js} +3 -3
  105. package/dist/{onboard-BBEWORGd.js → onboard-G39xAbGJ.js} +6 -6
  106. package/dist/{onboard-channels-DwWwZbhS.js → onboard-channels-BfGGowDI.js} +20 -20
  107. package/dist/{onboard-custom-CFuF05H2.js → onboard-custom-D_J_UV_B.js} +4 -4
  108. package/dist/{onboard-helpers-BnUKgDFe.js → onboard-helpers-CzMlu78H.js} +10 -10
  109. package/dist/{onboard-hooks-Te3_nPpe.js → onboard-hooks-gniWP7px.js} +4 -4
  110. package/dist/{onboard-remote-BgO_SWWa.js → onboard-remote-BpvvuHBw.js} +3 -3
  111. package/dist/{onboard-skills-CbTLB4cs.js → onboard-skills-CTY-DPhb.js} +4 -4
  112. package/dist/{onboarding-1PceVUnc.js → onboarding-BVt6sz-b.js} +13 -13
  113. package/dist/{onboarding.finalize-B4cr4Txq.js → onboarding.finalize-UFHE8pEj.js} +89 -89
  114. package/dist/{onboarding.gateway-config-BwYXTzcK.js → onboarding.gateway-config-1awD8XGu.js} +18 -18
  115. package/dist/{openai-model-default-CUxaHKMh.js → openai-model-default-Dy_e_lUy.js} +2 -2
  116. package/dist/{openclaw-root-DW-p-saf.js → openclaw-root-Cw_9FXUV.js} +8 -8
  117. package/dist/{plugin-sdk/outbound-attachment-BXtgutRQ.js → outbound-attachment-DmkmJ2Lc.js} +2 -2
  118. package/dist/{outbound-DXu6wxmi.js → outbound-m3MjDRvf.js} +4 -4
  119. package/dist/{pairing-cli-tFQQnCAT.js → pairing-cli-GoI4I4if.js} +9 -9
  120. package/dist/{pairing-labels-rAuS5aeV.js → pairing-labels-ZYWr_HV3.js} +1 -1
  121. package/dist/{pairing-store-_x0NQEfq.js → pairing-store-C49WkfCi.js} +2 -2
  122. package/dist/{pairing-token-PHk3tBUz.js → pairing-token-CtND5y_8.js} +7 -7
  123. package/dist/{path-alias-guards-z2hGNiIs.js → path-alias-guards-DEakBSGU.js} +3 -3
  124. package/dist/{path-safety-DBBDWKy1.js → path-safety-DeVxBPre.js} +1 -1
  125. package/dist/{paths-rIq72jC_.js → paths-BVyklYXR.js} +9 -9
  126. package/dist/{pi-embedded-fLS3EStS.js → pi-embedded-BCr5zWiT.js} +21 -21
  127. package/dist/{pi-embedded-helpers-BUce0Iqb.js → pi-embedded-helpers-BYXUXgYn.js} +6 -6
  128. package/dist/{pi-embedded-helpers-C_cbk2KW.js → pi-embedded-helpers-Dv3HZWfJ.js} +4 -4
  129. package/dist/{pi-model-discovery-BvGj4Ik8.js → pi-model-discovery-iNwnGd3m.js} +1 -1
  130. package/dist/{pi-tools.policy-oE4ZdHFF.js → pi-tools.policy-B5HqMPIq.js} +5 -5
  131. package/dist/{plugin-auto-enable-B2Kx-xH3.js → plugin-auto-enable-gT66Wggm.js} +3 -3
  132. package/dist/{plugin-registry-Cct_UdcP.js → plugin-registry-w2gqdvm-.js} +3 -3
  133. package/dist/plugin-sdk/{accounts-DFBfxw6M.js → accounts-DCDKnmrW.js} +1 -1
  134. package/dist/plugin-sdk/{accounts-WdYXo32T.js → accounts-DcjX_Olt.js} +1 -1
  135. package/dist/plugin-sdk/{accounts-CK8zoDbM.js → accounts-wG7sdxrI.js} +2 -2
  136. package/dist/plugin-sdk/{active-listener-PQ_Tmkac.js → active-listener-CZu4-ue_.js} +1 -1
  137. package/dist/plugin-sdk/{agent-scope-Mc1svPAJ.js → agent-scope-wi2hKUar.js} +1 -1
  138. package/dist/plugin-sdk/{api-key-rotation-0R4c0BKy.js → api-key-rotation-C50AZ4HQ.js} +2 -2
  139. package/dist/plugin-sdk/{audio-preflight-DeKzW6t7.js → audio-preflight-CWobJe2m.js} +29 -29
  140. package/dist/plugin-sdk/{bindings-Doyw0dbC.js → bindings-B2InXUgN.js} +2 -2
  141. package/dist/plugin-sdk/{channel-activity-WTkBRQhD.js → channel-activity-DhlOJslm.js} +3 -3
  142. package/dist/plugin-sdk/{channel-web-O8qsWnj-.js → channel-web-b5Y6qjaX.js} +21 -21
  143. package/dist/plugin-sdk/{chrome-DBhifTKw.js → chrome-BE2vPym_.js} +6 -6
  144. package/dist/plugin-sdk/{chunk-1puCfOZX.js → chunk-BKXLkSr_.js} +1 -1
  145. package/dist/plugin-sdk/{command-format-Bf4OYMmN.js → command-format-D4smYdZ1.js} +1 -1
  146. package/dist/plugin-sdk/{commands-registry-Bv5URQN-.js → commands-registry-CRAjZbMZ.js} +4 -4
  147. package/dist/plugin-sdk/{config-CCVvq2-2.js → config-CuVxnKd5.js} +8 -8
  148. package/dist/plugin-sdk/{deliver-Du8jMk_2.js → deliver-C-QqkAxt.js} +10 -10
  149. package/dist/plugin-sdk/{diagnostic-8HfhvtLS.js → diagnostic-DF5kk6Ha.js} +2 -2
  150. package/dist/plugin-sdk/{dock-1qTnXc22.js → dock-B6o_YOXU.js} +5 -5
  151. package/dist/plugin-sdk/{errors-D6sYxFmI.js → errors--NHuiZti.js} +1 -1
  152. package/dist/plugin-sdk/{fetch-guard-CfkACfHH.js → fetch-guard-IzK0s4EP.js} +2 -2
  153. package/dist/plugin-sdk/{fs-safe-DOZJUWUV.js → fs-safe-DCNfFQXN.js} +2 -2
  154. package/dist/plugin-sdk/{image-p3JhFE-q.js → image-Ckh39rIc.js} +6 -6
  155. package/dist/{image-ops-toDXWGMw.js → plugin-sdk/image-ops-c8-5iEn1.js} +12 -12
  156. package/dist/plugin-sdk/index.js +58 -58
  157. package/dist/plugin-sdk/{ir-EtEIlzCl.js → ir-KJ8B3heg.js} +5 -5
  158. package/dist/plugin-sdk/{local-roots-DcjujrLt.js → local-roots-oFw9xB3W.js} +4 -4
  159. package/dist/plugin-sdk/{login-CaiyG7fL.js → login-BpSGWRAn.js} +6 -6
  160. package/dist/plugin-sdk/{login-qr-qR_0F2uz.js → login-qr-BcEHe2l6.js} +6 -6
  161. package/dist/plugin-sdk/{manager-DHHJPm4z.js → manager-Mk7Al8tR.js} +9 -9
  162. package/dist/plugin-sdk/{markdown-tables-DfInfLzW.js → markdown-tables-CgoIgjwH.js} +1 -1
  163. package/dist/plugin-sdk/{message-channel-CTmZmMGO.js → message-channel-B_avrhM-.js} +1 -1
  164. package/dist/plugin-sdk/{outbound-Csej8W-L.js → outbound-5ejc0abd.js} +6 -6
  165. package/dist/{outbound-attachment-Bi7QWVn5.js → plugin-sdk/outbound-attachment-DJZwfefq.js} +2 -2
  166. package/dist/plugin-sdk/{path-alias-guards-mPZl8VD3.js → path-alias-guards-dQJhySnm.js} +1 -1
  167. package/dist/plugin-sdk/{pi-embedded-helpers-C9JVi9wk.js → pi-embedded-helpers-ChvwOu5y.js} +16 -16
  168. package/dist/plugin-sdk/{pi-model-discovery-BS3RfvIw.js → pi-model-discovery-DgYhmlNG.js} +1 -1
  169. package/dist/plugin-sdk/{plugins-kAeBKYoU.js → plugins-43A_vro3.js} +4 -4
  170. package/dist/plugin-sdk/{pw-ai-DczkhBlG.js → pw-ai-B_Eskool.js} +10 -10
  171. package/dist/plugin-sdk/{qmd-manager-QzGHpfme.js → qmd-manager-D8hOneSc.js} +4 -4
  172. package/dist/plugin-sdk/{query-expansion-asHSnsMm.js → query-expansion-Dy2RqhGj.js} +2 -2
  173. package/dist/plugin-sdk/{redact-Bd2SiHkr.js → redact-C1cyUA71.js} +1 -1
  174. package/dist/plugin-sdk/{replies-FfnAJgf7.js → replies-CnQaxnV4.js} +3 -3
  175. package/dist/plugin-sdk/{reply-COGOw5Ek.js → reply-BwE-soc9.js} +86 -86
  176. package/dist/plugin-sdk/{reply-prefix-CrfFpZVa.js → reply-prefix-DCQtho4T.js} +1 -1
  177. package/dist/plugin-sdk/{resolve-outbound-target-BVT4EVrH.js → resolve-outbound-target-Dq9I2GaW.js} +2 -2
  178. package/dist/plugin-sdk/{resolve-route-CXAS6e8J.js → resolve-route-CJvtv5t9.js} +3 -3
  179. package/dist/plugin-sdk/{retry-9m7s9V95.js → retry-C-lOGVgE.js} +1 -1
  180. package/dist/plugin-sdk/{runner-C6ylai6Z.js → runner-DsccFtkb.js} +9 -9
  181. package/dist/plugin-sdk/{send-CxsVHVAX.js → send-2gyvX72Q.js} +12 -12
  182. package/dist/plugin-sdk/{send-D_ho4big.js → send-BMhePV_4.js} +10 -10
  183. package/dist/plugin-sdk/{send-alW6jFu1.js → send-BeYIngcm.js} +6 -6
  184. package/dist/plugin-sdk/{send-BnfdAJbL.js → send-BlEAcyDg.js} +8 -8
  185. package/dist/plugin-sdk/{send-CSOzYSNF.js → send-DeNtjymi.js} +7 -7
  186. package/dist/plugin-sdk/{session-Bqv8qF6e.js → session-D2AiJJYy.js} +4 -4
  187. package/dist/plugin-sdk/{sessions-BuxRaCyw.js → sessions-zmPjX-cD.js} +5 -5
  188. package/dist/plugin-sdk/{skill-commands-BpaJj_N6.js → skill-commands-BTNdJ6Cr.js} +4 -4
  189. package/dist/plugin-sdk/{skills-BFujt10E.js → skills-BkGa5_yy.js} +7 -7
  190. package/dist/plugin-sdk/{ssrf-Q9AqFBuw.js → ssrf-B_Q2k5gm.js} +1 -1
  191. package/dist/plugin-sdk/{store-BKCEQ-Gy.js → store-DlIx0Ljh.js} +2 -2
  192. package/dist/plugin-sdk/{subsystem-Dv9ZY_DW.js → subsystem-D7KkLxSJ.js} +2 -2
  193. package/dist/plugin-sdk/{tables-CiLC1-xu.js → tables-BbXRskgD.js} +1 -1
  194. package/dist/plugin-sdk/{target-errors-D28xCQm8.js → target-errors-BvPFqIjq.js} +2 -2
  195. package/dist/plugin-sdk/{tokens-V3CP7Ge2.js → tokens-CVvkQM_V.js} +1 -1
  196. package/dist/plugin-sdk/{tool-images-Cog7Gmdl.js → tool-images-aK1slaVl.js} +2 -2
  197. package/dist/plugin-sdk/{tool-loop-detection-DG_vuYxb.js → tool-loop-detection-BP9LIuuY.js} +1 -1
  198. package/dist/plugin-sdk/web-CH6ZZsT2.js +67 -0
  199. package/dist/plugin-sdk/{whatsapp-actions-WLB-KfIA.js → whatsapp-actions-ChLODgBj.js} +22 -22
  200. package/dist/{plugins-CiBXm-v1.js → plugins-Cb8JznN4.js} +2 -2
  201. package/dist/{plugins-cli-BGpk_mxe.js → plugins-cli-BQAyU_if.js} +86 -86
  202. package/dist/{ports-Z6QFaVRW.js → ports-4J8-_4SF.js} +2 -2
  203. package/dist/{ports-DMnEiLQa.js → ports-Ds33lE1B.js} +1 -1
  204. package/dist/{program-Aj-MXGpl.js → program-D5ThaA_K.js} +84 -84
  205. package/dist/{prompt-select-styled-g85rM8c_.js → prompt-select-styled-B1xopDJb.js} +39 -39
  206. package/dist/{provider-auth-helpers-JeXDbyPW.js → provider-auth-helpers-C-Vm3aEA.js} +5 -5
  207. package/dist/{push-apns-BsK6rZMS.js → push-apns-C0YjpY9N.js} +5 -5
  208. package/dist/{pw-ai-CoN0pihK.js → pw-ai-DloIDud2.js} +16 -16
  209. package/dist/{pw-ai-BDzqpsq_.js → pw-ai-PpF146vO.js} +1 -1
  210. package/dist/{qmd-manager-D8eAzrZY.js → qmd-manager-Du0tEQ-8.js} +19 -19
  211. package/dist/{qr-cli-ovb8Q1J9.js → qr-cli-DJ6LqChA.js} +1 -1
  212. package/dist/{query-expansion-B3FVYwN6.js → query-expansion-CwyL4z9j.js} +12 -12
  213. package/dist/{redact-snapshot-zDjp0HRV.js → redact-snapshot-W7mO-kGu.js} +1 -1
  214. package/dist/{register.agent-Bcd3jYoI.js → register.agent-CdV5WCcn.js} +96 -96
  215. package/dist/register.configure-265nQbq2.js +162 -0
  216. package/dist/{register.maintenance-DE9PWWja.js → register.maintenance-_pksRHI5.js} +97 -97
  217. package/dist/{register.message-CNcokMYT.js → register.message-BIuzvBK0.js} +77 -77
  218. package/dist/{register.onboard-lN_aaVOZ.js → register.onboard-DEl8fY1G.js} +19 -19
  219. package/dist/{register.setup-B6EaaMq4.js → register.setup-Ig_gGvdF.js} +22 -22
  220. package/dist/{register.status-health-sessions-CboXR8WN.js → register.status-health-sessions-DdHiFiQ8.js} +89 -89
  221. package/dist/{register.subclis-BkGATlmp.js → register.subclis-FZKDXxxL.js} +31 -31
  222. package/dist/{replies-COLVQezU.js → replies-BAqKfdVk.js} +1 -1
  223. package/dist/{reply-prefix-BLgL5eLu.js → reply-prefix-Q23IMgrt.js} +1 -1
  224. package/dist/{resolve-route-B0u78v_W.js → resolve-route-DvJmdJ7B.js} +2 -2
  225. package/dist/{rpc-BWpHds0n.js → rpc-u34pBflj.js} +1 -1
  226. package/dist/{run-main-dqrwXIoU.js → run-main-CAQXzgkK.js} +94 -94
  227. package/dist/{runner-DcvLsEbZ.js → runner-C9RTcw_0.js} +21 -21
  228. package/dist/{runner-CsGs9PzD.js → runner-Q4wBIACO.js} +1 -1
  229. package/dist/{runtime-x5BqK1kr.js → runtime-CnfENRVM.js} +2 -2
  230. package/dist/{sandbox-B-wAH3en.js → sandbox-BCxHjLQS.js} +22 -22
  231. package/dist/{sandbox-cli-CegfJFAq.js → sandbox-cli-DnMnYrDy.js} +26 -26
  232. package/dist/{secrets-cli-CAIsSLya.js → secrets-cli-Bj6VgalW.js} +11 -11
  233. package/dist/{security-cli-DESlyONm.js → security-cli-DctG0oZz.js} +43 -43
  234. package/dist/{send-sEXu0p87.js → send-CVj6uOGI.js} +7 -7
  235. package/dist/{send-CgATYx8D.js → send-DE17gd7F.js} +6 -6
  236. package/dist/{send-DZ9JXWaZ.js → send-oJraTp-6.js} +6 -6
  237. package/dist/{send-DY7qzDta.js → send-snKm1H4E.js} +13 -13
  238. package/dist/{send-OJbtfeWf.js → send-zp5AuaHE.js} +5 -5
  239. package/dist/{server-C9NDdRkP.js → server-CRa1oZfY.js} +19 -19
  240. package/dist/{server-context-YevsHXaf.js → server-context-RDkXuB9P.js} +13 -13
  241. package/dist/{server-lifecycle-BVWplIzw.js → server-lifecycle-CQk8mryT.js} +2 -2
  242. package/dist/{server-middleware-DJQVLZmo.js → server-middleware-DSIQAJZd.js} +1 -1
  243. package/dist/{server-node-events-DH8c0jEn.js → server-node-events-DqzBAn3Q.js} +77 -77
  244. package/dist/{service-oBfCq-qK.js → service-B0CzjIz2.js} +15 -15
  245. package/dist/{session-C8fYTfkG.js → session-Crum9mSn.js} +1 -1
  246. package/dist/{session-utils-Bt_Cx0zH.js → session-utils-dd1SrJKT.js} +6 -6
  247. package/dist/{sessions-DWdz1xc4.js → sessions-9J-stFWk.js} +4 -4
  248. package/dist/{sessions-IKxRT_G9.js → sessions-aGmwHv0g.js} +14 -14
  249. package/dist/{shared-Q1aRCgme.js → shared-5VPKZal4.js} +1 -1
  250. package/dist/{shared-BqFzJLjd.js → shared-CnARKvCa.js} +2 -2
  251. package/dist/{skill-commands-KdMeqg8g.js → skill-commands-B4-CgHlk.js} +5 -5
  252. package/dist/{skill-scanner-YaxFgz1o.js → skill-scanner-DW9hSz_J.js} +5 -5
  253. package/dist/{skills-DjfCNN-j.js → skills-BkqPPXlw.js} +3 -3
  254. package/dist/{skills-cli-6EDVmjHz.js → skills-cli-DPSjkS2r.js} +5 -5
  255. package/dist/{skills-install-CdZGnrOv.js → skills-install-m034GRjq.js} +5 -5
  256. package/dist/{skills-status-DZfbtXdy.js → skills-status--02_4mXJ.js} +1 -1
  257. package/dist/{ssrf-6Hb9TNxM.js → ssrf-DQPhGAdC.js} +1 -1
  258. package/dist/{status-CN8vEkdO.js → status-DA7gKGeU.js} +25 -25
  259. package/dist/{status.update-B0a3iQjj.js → status.update-DEPhS3kj.js} +2 -2
  260. package/dist/{store-DVxkLZrN.js → store-BnsBHp0V.js} +5 -5
  261. package/dist/{subagent-registry-CY8NG6Io.js → subagent-registry-CrbLe3Kg.js} +153 -153
  262. package/dist/{system-cli-CWbpLljA.js → system-cli-DwVWo2kb.js} +10 -10
  263. package/dist/{system-run-command-h3aZvaIL.js → system-run-command-BD_JuCLP.js} +1 -1
  264. package/dist/{systemd-DpV5A3Tl.js → systemd-B48mxZjg.js} +9 -9
  265. package/dist/{systemd-hints-OqRJ_OnZ.js → systemd-hints-CupZgKik.js} +6 -6
  266. package/dist/{systemd-linger-vRX-cxeO.js → systemd-linger-663aGc_T.js} +1 -1
  267. package/dist/{tables-CsW7naec.js → tables-CuPXwWh2.js} +1 -1
  268. package/dist/{tailnet-D3oqrI3q.js → tailnet-DRVktntg.js} +1 -1
  269. package/dist/{target-errors-yilhMKWi.js → target-errors-D4aLwsCU.js} +4 -4
  270. package/dist/{tool-images-Bo0IcPMG.js → tool-images-0PIXjd8w.js} +1 -1
  271. package/dist/{tui-2gCoYUUs.js → tui-14zIh3zr.js} +6 -6
  272. package/dist/{tui-cli-BNY2WcIM.js → tui-cli-BjHx8K12.js} +34 -34
  273. package/dist/{update-NahlryOD.js → update-VaL_prKP.js} +3 -3
  274. package/dist/{update-cli-By_RMYHj.js → update-cli-ZVB5K666.js} +106 -106
  275. package/dist/{update-runner-BoksUWgy.js → update-runner-sefNoN9G.js} +15 -15
  276. package/dist/web-BsX8l9H1.js +116 -0
  277. package/dist/{web-3ZvmLaE3.js → web-Ch0JHP2x.js} +6 -6
  278. package/dist/{webhooks-cli-C3a8VMoI.js → webhooks-cli-BUVjs-bx.js} +6 -6
  279. package/dist/{whatsapp-actions-D69bEFbN.js → whatsapp-actions-D-q8r2i5.js} +19 -19
  280. package/dist/{with-timeout-DOYJYBpu.js → with-timeout-ChQUbgyO.js} +3 -3
  281. package/dist/{workspace-BhsnAjlE.js → workspace-B-5q5HFZ.js} +1 -1
  282. package/dist/{workspace-dirs-BC9tU92n.js → workspace-dirs-Mb8gX4pT.js} +1 -1
  283. package/dist/{wsl-Din03sl7.js → wsl-D9-kubbW.js} +2 -2
  284. package/package.json +1 -1
  285. package/dist/cli-BfrcQXmk.js +0 -156
  286. package/dist/plugin-sdk/web-DPBNX3_v.js +0 -67
  287. package/dist/register.configure-15nzK_2U.js +0 -162
  288. package/dist/web-BTc3UuX6.js +0 -116
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CIQTys4Q.js";
2
- import { n as callGateway } from "./call-C-oZgsJl.js";
2
+ import { n as callGateway } from "./call-BZSWeS2x.js";
3
3
  import { n as withProgress } from "./progress-bvyZjsUc.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts
@@ -1,4 +1,4 @@
1
- import { ir as normalizeProviderId } from "./auth-profiles-qnck2ozy.js";
1
+ import { ir as normalizeProviderId } from "./auth-profiles-D3FyYUSG.js";
2
2
  import { n as formatErrorMessage } from "./errors-Cu3BYw29.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
@@ -1,23 +1,23 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Dt as isRich, Ot as theme, Z as escapeRegExp, _t as info, r as isTruthyEnvValue, s as createSubsystemLogger, v as defaultRuntime } from "./entry.js";
3
- import { it as parseDurationMs, j as loadConfig } from "./auth-profiles-qnck2ozy.js";
4
- import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-CaXaKovT.js";
3
+ import { it as parseDurationMs, j as loadConfig } from "./auth-profiles-D3FyYUSG.js";
4
+ import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-B33Scyaw.js";
5
5
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-qmb11-mH.js";
6
- import { $ as resolveAgentMainSessionKey, Q as canonicalizeMainSessionAlias, c as loadSessionStore, h as updateSessionStore, p as saveSessionStore } from "./sessions-IKxRT_G9.js";
7
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CiBXm-v1.js";
8
- import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-vuIL-APZ.js";
9
- import { Ar as isHeartbeatContentEffectivelyEmpty, Dr as CommandLane, Fn as setHeartbeatWakeHandler, In as resolveHeartbeatReasonKind, Mn as peekSystemEventEntries, Mr as stripHeartbeatToken, Or as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Pn as requestHeartbeatNow, _t as resolveHeartbeatSenderContext, ar as resolveUserTimezone, at as appendCronStyleCurrentTimeLine, gt as resolveHeartbeatDeliveryTarget, jr as resolveHeartbeatPrompt$1, kr as DEFAULT_HEARTBEAT_EVERY, rt as getReplyFromConfig, sn as buildOutboundSessionContext, xr as getQueueSize } from "./subagent-registry-CY8NG6Io.js";
6
+ import { $ as resolveAgentMainSessionKey, Q as canonicalizeMainSessionAlias, c as loadSessionStore, h as updateSessionStore, p as saveSessionStore } from "./sessions-aGmwHv0g.js";
7
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-Cb8JznN4.js";
8
+ import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-CWyuSfs6.js";
9
+ import { Ar as isHeartbeatContentEffectivelyEmpty, Dr as CommandLane, Fn as setHeartbeatWakeHandler, In as resolveHeartbeatReasonKind, Mn as peekSystemEventEntries, Mr as stripHeartbeatToken, Or as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Pn as requestHeartbeatNow, _t as resolveHeartbeatSenderContext, ar as resolveUserTimezone, at as appendCronStyleCurrentTimeLine, gt as resolveHeartbeatDeliveryTarget, jr as resolveHeartbeatPrompt$1, kr as DEFAULT_HEARTBEAT_EVERY, rt as getReplyFromConfig, sn as buildOutboundSessionContext, xr as getQueueSize } from "./subagent-registry-CrbLe3Kg.js";
10
10
  import { l as resolveStorePath, r as resolveSessionFilePath } from "./paths-4nKmwJd-.js";
11
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C-oZgsJl.js";
11
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BZSWeS2x.js";
12
12
  import { t as HEARTBEAT_TOKEN } from "./tokens-DytUXmpb.js";
13
- import { t as deliverOutboundPayloads } from "./deliver-B7mNw8Vu.js";
13
+ import { t as deliverOutboundPayloads } from "./deliver-CZEKwM5v.js";
14
14
  import { i as hasErrnoCode, n as formatErrorMessage } from "./errors-Cu3BYw29.js";
15
- import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-BLgL5eLu.js";
15
+ import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-Q23IMgrt.js";
16
16
  import { n as withProgress } from "./progress-bvyZjsUc.js";
17
17
  import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-CyUGZxub.js";
18
18
  import { t as resolveChannelDefaultAccountId } from "./helpers-BgzIw8DX.js";
19
19
  import path from "node:path";
20
- import fsPromises from "node:fs/promises";
20
+ import fs from "node:fs/promises";
21
21
 
22
22
  //#region src/infra/heartbeat-active-hours.ts
23
23
  const ACTIVE_HOURS_TIME_PATTERN = /^(?:([01]\d|2[0-3]):([0-5]\d)|24:00)$/;
@@ -311,7 +311,7 @@ async function pruneHeartbeatTranscript(params) {
311
311
  const { transcriptPath, preHeartbeatSize } = params;
312
312
  if (!transcriptPath || typeof preHeartbeatSize !== "number" || preHeartbeatSize < 0) return;
313
313
  try {
314
- if ((await fsPromises.stat(transcriptPath)).size > preHeartbeatSize) await fsPromises.truncate(transcriptPath, preHeartbeatSize);
314
+ if ((await fs.stat(transcriptPath)).size > preHeartbeatSize) await fs.truncate(transcriptPath, preHeartbeatSize);
315
315
  } catch {}
316
316
  }
317
317
  /**
@@ -329,7 +329,7 @@ async function captureTranscriptState(params) {
329
329
  });
330
330
  return {
331
331
  transcriptPath,
332
- preHeartbeatSize: (await fsPromises.stat(transcriptPath)).size
332
+ preHeartbeatSize: (await fs.stat(transcriptPath)).size
333
333
  };
334
334
  } catch {
335
335
  return {};
@@ -386,7 +386,7 @@ async function resolveHeartbeatPreflight(params) {
386
386
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
387
387
  const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
388
388
  try {
389
- if (isHeartbeatContentEffectivelyEmpty(await fsPromises.readFile(heartbeatFilePath, "utf-8"))) return {
389
+ if (isHeartbeatContentEffectivelyEmpty(await fs.readFile(heartbeatFilePath, "utf-8"))) return {
390
390
  ...basePreflight,
391
391
  skipReason: "empty-heartbeat-file"
392
392
  };
@@ -1,125 +1,125 @@
1
1
  import { Ot as theme, W as CONFIG_DIR, st as resolveUserPath, ut as shortenHomePath, v as defaultRuntime } from "./entry.js";
2
- import { L as writeConfigFile, j as loadConfig } from "./auth-profiles-qnck2ozy.js";
2
+ import { L as writeConfigFile, j as loadConfig } from "./auth-profiles-D3FyYUSG.js";
3
3
  import { t as formatCliCommand } from "./command-format-BYm_a0tW.js";
4
- import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-CaXaKovT.js";
5
- import "./openclaw-root-DW-p-saf.js";
4
+ import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-B33Scyaw.js";
5
+ import "./openclaw-root-Cw_9FXUV.js";
6
6
  import "./exec-BhaMholX.js";
7
7
  import "./github-copilot-token-DKRiM6oj.js";
8
8
  import "./host-env-security-BM8ktVlo.js";
9
9
  import "./version-CFqP9tDG.js";
10
10
  import "./env-vars-kURZgejA.js";
11
11
  import { a as isPathInsideWithRealpath, i as isPathInside, n as MANIFEST_KEY } from "./legacy-names-PPcHwaHH.js";
12
- import "./manifest-registry-YC37UceR.js";
13
- import "./dock-BYLdmpt5.js";
14
- import "./model-2aL8NZKc.js";
15
- import "./pi-model-discovery-BvGj4Ik8.js";
12
+ import "./manifest-registry-DRMtnPEQ.js";
13
+ import "./dock-SjEhga7i.js";
14
+ import "./model-AKh96s7h.js";
15
+ import "./pi-model-discovery-iNwnGd3m.js";
16
16
  import "./frontmatter-CA3PbX1f.js";
17
- import { S as validateRegistryNpmSpec } from "./skills-DjfCNN-j.js";
18
- import "./path-alias-guards-z2hGNiIs.js";
17
+ import { S as validateRegistryNpmSpec } from "./skills-BkqPPXlw.js";
18
+ import "./path-alias-guards-DEakBSGU.js";
19
19
  import "./message-channel-CIQTys4Q.js";
20
- import "./sessions-IKxRT_G9.js";
21
- import "./plugins-CiBXm-v1.js";
22
- import "./accounts-9Q07LhiR.js";
23
- import "./accounts-UyfWuXKC.js";
24
- import "./accounts-DmPvlCpt.js";
25
- import "./bindings-vuIL-APZ.js";
20
+ import "./sessions-aGmwHv0g.js";
21
+ import "./plugins-Cb8JznN4.js";
22
+ import "./accounts-Bj4Z7jBB.js";
23
+ import "./accounts-Bgjrmxdu.js";
24
+ import "./accounts-1yld8BY0.js";
25
+ import "./bindings-CWyuSfs6.js";
26
26
  import "./logging-CFvkxgcX.js";
27
- import "./send-OJbtfeWf.js";
28
- import "./send-DY7qzDta.js";
29
- import "./subagent-registry-CY8NG6Io.js";
27
+ import "./send-zp5AuaHE.js";
28
+ import "./send-snKm1H4E.js";
29
+ import "./subagent-registry-CrbLe3Kg.js";
30
30
  import "./paths-4nKmwJd-.js";
31
31
  import "./chat-envelope-BHg8VU61.js";
32
- import "./client-BBiFerkj.js";
33
- import "./call-C-oZgsJl.js";
34
- import "./pairing-token-PHk3tBUz.js";
35
- import "./net-CWUwrVfz.js";
36
- import "./tailnet-D3oqrI3q.js";
32
+ import "./client-CdetOJti.js";
33
+ import "./call-BZSWeS2x.js";
34
+ import "./pairing-token-CtND5y_8.js";
35
+ import "./net-C63UEjlQ.js";
36
+ import "./tailnet-DRVktntg.js";
37
37
  import "./tokens-DytUXmpb.js";
38
- import "./with-timeout-DOYJYBpu.js";
39
- import "./deliver-B7mNw8Vu.js";
40
- import "./diagnostic-CJIq8gp_.js";
38
+ import "./with-timeout-ChQUbgyO.js";
39
+ import "./deliver-CZEKwM5v.js";
40
+ import "./diagnostic-Bc4KUKvc.js";
41
41
  import "./diagnostic-session-state-Cw3EMvZy.js";
42
- import "./send-sEXu0p87.js";
43
- import "./image-ops-toDXWGMw.js";
44
- import "./pi-embedded-helpers-BUce0Iqb.js";
45
- import "./sandbox-B-wAH3en.js";
42
+ import "./send-CVj6uOGI.js";
43
+ import "./image-ops-Z3_QkQPj.js";
44
+ import "./pi-embedded-helpers-BYXUXgYn.js";
45
+ import "./sandbox-BCxHjLQS.js";
46
46
  import "./tool-catalog-DABanDxl.js";
47
- import "./chrome-BO_XI6hR.js";
47
+ import "./chrome-CmcvtOeC.js";
48
48
  import { l as promptYesNo } from "./tailscale-Cz0j5H8x.js";
49
- import "./auth-DHBdjHjv.js";
50
- import "./server-context-YevsHXaf.js";
51
- import "./paths-rIq72jC_.js";
49
+ import "./auth-D3lXwd01.js";
50
+ import "./server-context-RDkXuB9P.js";
51
+ import "./paths-BVyklYXR.js";
52
52
  import "./redact-Dcypez3H.js";
53
53
  import "./errors-Cu3BYw29.js";
54
- import "./fs-safe-Dr8G7a6P.js";
55
- import "./ssrf-6Hb9TNxM.js";
56
- import "./store-DVxkLZrN.js";
57
- import "./ports-Z6QFaVRW.js";
54
+ import "./fs-safe-CCDIEBbt.js";
55
+ import "./ssrf-DQPhGAdC.js";
56
+ import "./store-BnsBHp0V.js";
57
+ import "./ports-4J8-_4SF.js";
58
58
  import "./trash-C8oZT55U.js";
59
- import "./server-middleware-DJQVLZmo.js";
60
- import "./tool-images-Bo0IcPMG.js";
59
+ import "./server-middleware-DSIQAJZd.js";
60
+ import "./tool-images-0PIXjd8w.js";
61
61
  import "./thinking-DW6CKWyf.js";
62
- import "./models-config-1JCLlVs8.js";
63
- import "./exec-approvals-allowlist-CklJrJwI.js";
64
- import "./exec-safe-bin-runtime-policy-BCQlhcV7.js";
65
- import "./reply-prefix-BLgL5eLu.js";
66
- import "./memory-cli-DPD3Jnkc.js";
67
- import "./manager-SsdELHU2.js";
68
- import "./gemini-auth-DLd8nbvG.js";
69
- import "./fetch-guard-qBXlHXD_.js";
70
- import "./query-expansion-B3FVYwN6.js";
62
+ import "./models-config-CGGxd1w2.js";
63
+ import "./exec-approvals-allowlist-CjjR0Lj9.js";
64
+ import "./exec-safe-bin-runtime-policy-BQ4FXdVM.js";
65
+ import "./reply-prefix-Q23IMgrt.js";
66
+ import "./memory-cli-CdB1ptzd.js";
67
+ import "./manager-DdwvQQ2A.js";
68
+ import "./gemini-auth-i82BVqPg.js";
69
+ import "./fetch-guard-Cm1MSHHV.js";
70
+ import "./query-expansion-CwyL4z9j.js";
71
71
  import "./retry-DRMxSLyf.js";
72
- import "./target-errors-yilhMKWi.js";
73
- import "./local-roots-iKHeLTM9.js";
72
+ import "./target-errors-D4aLwsCU.js";
73
+ import "./local-roots-Cyat99dT.js";
74
74
  import "./chunk-C1ApS_WL.js";
75
- import "./markdown-tables-BvxYO6Nz.js";
76
- import "./ir-DYUcUO1t.js";
75
+ import "./markdown-tables-DhrZVWff.js";
76
+ import "./ir-Dhd5EWHO.js";
77
77
  import "./render-C1H8wE-4.js";
78
- import "./commands-CPLAkZQx.js";
79
- import "./commands-registry-C9Mi0U--.js";
80
- import "./image-QYMqJ_Cu.js";
78
+ import "./commands-DvATdC6x.js";
79
+ import "./commands-registry-CxF5UuEv.js";
80
+ import "./image-w5Vu5G__.js";
81
81
  import "./tool-display-DvjkoW7B.js";
82
- import "./runner-DcvLsEbZ.js";
83
- import "./model-catalog-BL39Jul_.js";
82
+ import "./runner-C9RTcw_0.js";
83
+ import "./model-catalog-el1FVV5q.js";
84
84
  import "./fetch-CgA7FwwB.js";
85
- import "./pairing-store-_x0NQEfq.js";
85
+ import "./pairing-store-C49WkfCi.js";
86
86
  import "./exec-approvals-DJC4eXS0.js";
87
- import "./nodes-screen-BV63eC7o.js";
88
- import "./system-run-command-h3aZvaIL.js";
89
- import "./session-utils-Bt_Cx0zH.js";
87
+ import "./nodes-screen-CHgcakcH.js";
88
+ import "./system-run-command-BD_JuCLP.js";
89
+ import "./session-utils-dd1SrJKT.js";
90
90
  import "./session-cost-usage-D-OIYYal.js";
91
- import "./skill-commands-KdMeqg8g.js";
92
- import "./workspace-dirs-BC9tU92n.js";
91
+ import "./skill-commands-B4-CgHlk.js";
92
+ import "./workspace-dirs-Mb8gX4pT.js";
93
93
  import "./channel-activity-CmnAG-Z9.js";
94
- import "./tables-CsW7naec.js";
95
- import "./server-lifecycle-BVWplIzw.js";
94
+ import "./tables-CuPXwWh2.js";
95
+ import "./server-lifecycle-CQk8mryT.js";
96
96
  import "./stagger-wClkZ9EC.js";
97
- import "./channel-selection-D7I4uyOc.js";
98
- import "./plugin-auto-enable-B2Kx-xH3.js";
99
- import "./send-CgATYx8D.js";
100
- import "./outbound-attachment-Bi7QWVn5.js";
97
+ import "./channel-selection-DYEAZFR_.js";
98
+ import "./plugin-auto-enable-gT66Wggm.js";
99
+ import "./send-DE17gd7F.js";
100
+ import "./outbound-attachment-DmkmJ2Lc.js";
101
101
  import "./delivery-queue-CpA_Z7vE.js";
102
- import "./send-DZ9JXWaZ.js";
103
- import "./resolve-route-B0u78v_W.js";
104
- import "./pi-tools.policy-oE4ZdHFF.js";
102
+ import "./send-oJraTp-6.js";
103
+ import "./resolve-route-DvJmdJ7B.js";
104
+ import "./pi-tools.policy-B5HqMPIq.js";
105
105
  import "./proxy-C-FYeH9g.js";
106
106
  import { t as formatDocsLink } from "./links-yQMT2QcX.js";
107
107
  import "./cli-utils-CKDCmKAq.js";
108
108
  import "./help-format-Du-bXlH0.js";
109
109
  import "./progress-bvyZjsUc.js";
110
- import "./replies-COLVQezU.js";
111
- import "./onboard-helpers-BnUKgDFe.js";
110
+ import "./replies-BAqKfdVk.js";
111
+ import "./onboard-helpers-CzMlu78H.js";
112
112
  import "./prompt-style-wsroINzm.js";
113
- import "./pairing-labels-rAuS5aeV.js";
114
- import { c as resolveArchiveKind, i as unscopedPackageName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-DXJW8Vo3.js";
115
- import { a as resolveTimedInstallModeOptions, c as resolveArchiveSourcePath, i as resolveInstallModeOptions, n as installFromNpmSpecArchiveWithInstaller, o as resolveExistingInstallPath, r as installPackageDir, s as withExtractedArchiveRoot, t as finalizeNpmSpecArchiveInstall } from "./npm-pack-install-C2E_zBU6.js";
113
+ import "./pairing-labels-ZYWr_HV3.js";
114
+ import { c as resolveArchiveKind, i as unscopedPackageName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-DGYbxO86.js";
115
+ import { a as resolveTimedInstallModeOptions, c as resolveArchiveSourcePath, i as resolveInstallModeOptions, n as installFromNpmSpecArchiveWithInstaller, o as resolveExistingInstallPath, r as installPackageDir, s as withExtractedArchiveRoot, t as finalizeNpmSpecArchiveInstall } from "./npm-pack-install-ChrCCIJD.js";
116
116
  import { t as renderTable } from "./table-D7QRfQ5S.js";
117
- import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-BhsnAjlE.js";
118
- import { t as buildWorkspaceHookStatus } from "./hooks-status-Bk97nvaD.js";
119
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-B6xDbagk.js";
117
+ import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B-5q5HFZ.js";
118
+ import { t as buildWorkspaceHookStatus } from "./hooks-status-0v40xw4Q.js";
119
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-CvPKK0T0.js";
120
120
  import path from "node:path";
121
121
  import fs from "node:fs";
122
- import fsPromises from "node:fs/promises";
122
+ import fs$1 from "node:fs/promises";
123
123
 
124
124
  //#region src/hooks/install.ts
125
125
  const defaultLogger = {};
@@ -150,7 +150,7 @@ async function ensureOpenClawHooks(manifest) {
150
150
  }
151
151
  async function resolveInstallTargetDir(id, hooksDir) {
152
152
  const baseHooksDir = hooksDir ? resolveUserPath(hooksDir) : path.join(CONFIG_DIR, "hooks");
153
- await fsPromises.mkdir(baseHooksDir, { recursive: true });
153
+ await fs$1.mkdir(baseHooksDir, { recursive: true });
154
154
  const targetDirResult = resolveSafeInstallDir({
155
155
  baseDir: baseHooksDir,
156
156
  id,
@@ -168,7 +168,7 @@ async function resolveInstallTargetDir(id, hooksDir) {
168
168
  async function resolveHookNameFromDir(hookDir) {
169
169
  const hookMdPath = path.join(hookDir, "HOOK.md");
170
170
  if (!await fileExists(hookMdPath)) throw new Error(`HOOK.md missing in ${hookDir}`);
171
- return parseFrontmatter(await fsPromises.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
171
+ return parseFrontmatter(await fs$1.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
172
172
  }
173
173
  async function validateHookDir(hookDir) {
174
174
  if (!await fileExists(path.join(hookDir, "HOOK.md"))) throw new Error(`HOOK.md missing in ${hookDir}`);
@@ -301,24 +301,24 @@ async function installHookFromDir(params) {
301
301
  let backupDir = null;
302
302
  if (mode === "update" && await fileExists(targetDir)) {
303
303
  backupDir = `${targetDir}.backup-${Date.now()}`;
304
- await fsPromises.rename(targetDir, backupDir);
304
+ await fs$1.rename(targetDir, backupDir);
305
305
  }
306
306
  try {
307
- await fsPromises.cp(params.hookDir, targetDir, { recursive: true });
307
+ await fs$1.cp(params.hookDir, targetDir, { recursive: true });
308
308
  } catch (err) {
309
309
  if (backupDir) {
310
- await fsPromises.rm(targetDir, {
310
+ await fs$1.rm(targetDir, {
311
311
  recursive: true,
312
312
  force: true
313
313
  }).catch(() => void 0);
314
- await fsPromises.rename(backupDir, targetDir).catch(() => void 0);
314
+ await fs$1.rename(backupDir, targetDir).catch(() => void 0);
315
315
  }
316
316
  return {
317
317
  ok: false,
318
318
  error: `failed to copy hook: ${String(err)}`
319
319
  };
320
320
  }
321
- if (backupDir) await fsPromises.rm(backupDir, {
321
+ if (backupDir) await fs$1.rm(backupDir, {
322
322
  recursive: true,
323
323
  force: true
324
324
  }).catch(() => void 0);
@@ -548,7 +548,7 @@ function logIntegrityDriftWarning(hookId, drift) {
548
548
  }
549
549
  async function readInstalledPackageVersion(dir) {
550
550
  try {
551
- const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
551
+ const raw = await fs$1.readFile(path.join(dir, "package.json"), "utf-8");
552
552
  const parsed = JSON.parse(raw);
553
553
  return typeof parsed.version === "string" ? parsed.version : void 0;
554
554
  } catch {
@@ -1,7 +1,7 @@
1
1
  import { W as CONFIG_DIR } from "./entry.js";
2
2
  import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-pq_GhKtO.js";
3
3
  import { d as hasBinary } from "./frontmatter-CA3PbX1f.js";
4
- import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-BhsnAjlE.js";
4
+ import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B-5q5HFZ.js";
5
5
  import path from "node:path";
6
6
 
7
7
  //#region src/hooks/hooks-status.ts
@@ -3,7 +3,7 @@ import { h as resolveAgentModelPrimaryValue, m as resolveAgentModelFallbackValue
3
3
  import { M as isRecord, V as shortenHomeInString } from "./subsystem-A5aAh1zO.js";
4
4
  import { C as getApiKeyForModel, Dn as normalizeSecretInput, R as loadConfig, Sn as resolveOpenClawAgentDir, T as requireApiKey, _ as normalizeProviders, b as resolveImplicitProviders, v as resolveImplicitBedrockProvider, y as resolveImplicitCopilotProvider } from "./model-selection-DQGp0FRf.js";
5
5
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-C77P6PHW.js";
6
- import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-C_cbk2KW.js";
6
+ import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-Dv3HZWfJ.js";
7
7
  import { n as redactToolDetail } from "./redact-CCJhkLdQ.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -1,6 +1,6 @@
1
- import { D as runExec } from "./agent-scope-Mc1svPAJ.js";
2
- import path from "node:path";
1
+ import { n as runExec } from "./exec-BhaMholX.js";
3
2
  import os from "node:os";
3
+ import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
  import { fileTypeFromBuffer } from "file-type";
6
6
 
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { $ as isRecord } from "./entry.js";
3
- import { Ur as requireApiKey, Vr as getApiKeyForModel, si as normalizeSecretInput } from "./auth-profiles-qnck2ozy.js";
4
- import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue } from "./agent-scope-CaXaKovT.js";
5
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BvGj4Ik8.js";
6
- import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-BUce0Iqb.js";
7
- import { t as ensureOpenClawModelsJson } from "./models-config-1JCLlVs8.js";
3
+ import { Ur as requireApiKey, Vr as getApiKeyForModel, si as normalizeSecretInput } from "./auth-profiles-D3FyYUSG.js";
4
+ import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue } from "./agent-scope-B33Scyaw.js";
5
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-iNwnGd3m.js";
6
+ import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-BYXUXgYn.js";
7
+ import { t as ensureOpenClawModelsJson } from "./models-config-CGGxd1w2.js";
8
8
  import { r as resolveToolDisplay, t as formatToolDetail } from "./tool-display-DvjkoW7B.js";
9
9
  import { complete } from "@mariozechner/pi-ai";
10
10
 
@@ -1,7 +1,7 @@
1
1
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, p as resolveGatewayWindowsTaskName, r as GATEWAY_SERVICE_MARKER } from "./constants-B6D1y3V2.js";
2
- import { n as execSchtasks } from "./service-oBfCq-qK.js";
2
+ import { n as execSchtasks } from "./service-B0CzjIz2.js";
3
3
  import path from "node:path";
4
- import fsPromises from "node:fs/promises";
4
+ import fs from "node:fs/promises";
5
5
 
6
6
  //#region src/daemon/inspect.ts
7
7
  const EXTRA_MARKERS = [
@@ -76,14 +76,14 @@ function isLegacyLabel(label) {
76
76
  }
77
77
  async function readDirEntries(dir) {
78
78
  try {
79
- return await fsPromises.readdir(dir);
79
+ return await fs.readdir(dir);
80
80
  } catch {
81
81
  return [];
82
82
  }
83
83
  }
84
84
  async function readUtf8File(filePath) {
85
85
  try {
86
- return await fsPromises.readFile(filePath, "utf8");
86
+ return await fs.readFile(filePath, "utf8");
87
87
  } catch {
88
88
  return null;
89
89
  }
@@ -1,8 +1,8 @@
1
- import { d as isNotFoundPathError, f as isPathInside, p as isSymlinkOpenError } from "./openclaw-root-DW-p-saf.js";
2
- import { n as resolveSafeBaseDir } from "./path-safety-DBBDWKy1.js";
1
+ import { d as isNotFoundPathError, f as isPathInside, p as isSymlinkOpenError } from "./openclaw-root-Cw_9FXUV.js";
2
+ import { n as resolveSafeBaseDir } from "./path-safety-DeVxBPre.js";
3
3
  import path from "node:path";
4
4
  import { constants } from "node:fs";
5
- import fsPromises from "node:fs/promises";
5
+ import fs$1 from "node:fs/promises";
6
6
  import { createHash } from "node:crypto";
7
7
  import { pipeline } from "node:stream/promises";
8
8
  import { Readable, Transform } from "node:stream";
@@ -79,9 +79,9 @@ function resolveArchiveKind(filePath) {
79
79
  async function resolvePackedRootDir(extractDir) {
80
80
  const direct = path.join(extractDir, "package");
81
81
  try {
82
- if ((await fsPromises.stat(direct)).isDirectory()) return direct;
82
+ if ((await fs$1.stat(direct)).isDirectory()) return direct;
83
83
  } catch {}
84
- const dirs = (await fsPromises.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
84
+ const dirs = (await fs$1.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
85
85
  if (dirs.length !== 1) throw new Error(`unexpected archive layout (dirs: ${dirs.join(", ")})`);
86
86
  const onlyDir = dirs[0];
87
87
  if (!onlyDir) throw new Error("unexpected archive layout (no package dir found)");
@@ -151,10 +151,10 @@ function symlinkTraversalError(originalPath) {
151
151
  return new ArchiveSecurityError("destination-symlink-traversal", `${ERROR_ARCHIVE_ENTRY_TRAVERSES_SYMLINK}: ${originalPath}`);
152
152
  }
153
153
  async function assertDestinationDirReady(destDir) {
154
- const stat = await fsPromises.lstat(destDir);
154
+ const stat = await fs$1.lstat(destDir);
155
155
  if (stat.isSymbolicLink()) throw new ArchiveSecurityError("destination-symlink", "archive destination is a symlink");
156
156
  if (!stat.isDirectory()) throw new ArchiveSecurityError("destination-not-directory", "archive destination is not a directory");
157
- return await fsPromises.realpath(destDir);
157
+ return await fs$1.realpath(destDir);
158
158
  }
159
159
  async function assertNoSymlinkTraversal(params) {
160
160
  const parts = params.relPath.split("/").filter(Boolean);
@@ -163,7 +163,7 @@ async function assertNoSymlinkTraversal(params) {
163
163
  current = path.join(current, part);
164
164
  let stat;
165
165
  try {
166
- stat = await fsPromises.lstat(current);
166
+ stat = await fs$1.lstat(current);
167
167
  } catch (err) {
168
168
  if (isNotFoundPathError(err)) continue;
169
169
  throw err;
@@ -174,7 +174,7 @@ async function assertNoSymlinkTraversal(params) {
174
174
  async function assertResolvedInsideDestination(params) {
175
175
  let resolved;
176
176
  try {
177
- resolved = await fsPromises.realpath(params.targetPath);
177
+ resolved = await fs$1.realpath(params.targetPath);
178
178
  } catch (err) {
179
179
  if (isNotFoundPathError(err)) return;
180
180
  throw err;
@@ -183,7 +183,7 @@ async function assertResolvedInsideDestination(params) {
183
183
  }
184
184
  async function openZipOutputFile(outPath, originalPath) {
185
185
  try {
186
- return await fsPromises.open(outPath, OPEN_WRITE_FLAGS, 438);
186
+ return await fs$1.open(outPath, OPEN_WRITE_FLAGS, 438);
187
187
  } catch (err) {
188
188
  if (isSymlinkOpenError(err)) throw symlinkTraversalError(originalPath);
189
189
  throw err;
@@ -192,12 +192,12 @@ async function openZipOutputFile(outPath, originalPath) {
192
192
  async function cleanupPartialRegularFile(filePath) {
193
193
  let stat;
194
194
  try {
195
- stat = await fsPromises.lstat(filePath);
195
+ stat = await fs$1.lstat(filePath);
196
196
  } catch (err) {
197
197
  if (isNotFoundPathError(err)) return;
198
198
  throw err;
199
199
  }
200
- if (stat.isFile()) await fsPromises.unlink(filePath).catch(() => void 0);
200
+ if (stat.isFile()) await fs$1.unlink(filePath).catch(() => void 0);
201
201
  }
202
202
  async function readZipEntryStream(entry) {
203
203
  if (typeof entry.nodeStream === "function") return entry.nodeStream();
@@ -225,7 +225,7 @@ async function prepareZipOutputPath(params) {
225
225
  originalPath: params.originalPath
226
226
  });
227
227
  if (params.isDirectory) {
228
- await fsPromises.mkdir(params.outPath, { recursive: true });
228
+ await fs$1.mkdir(params.outPath, { recursive: true });
229
229
  await assertResolvedInsideDestination({
230
230
  destinationRealDir: params.destinationRealDir,
231
231
  targetPath: params.outPath,
@@ -234,7 +234,7 @@ async function prepareZipOutputPath(params) {
234
234
  return;
235
235
  }
236
236
  const parentDir = path.dirname(params.outPath);
237
- await fsPromises.mkdir(parentDir, { recursive: true });
237
+ await fs$1.mkdir(parentDir, { recursive: true });
238
238
  await assertResolvedInsideDestination({
239
239
  destinationRealDir: params.destinationRealDir,
240
240
  targetPath: parentDir,
@@ -254,14 +254,14 @@ async function writeZipFileEntry(params) {
254
254
  }
255
255
  if (typeof params.entry.unixPermissions === "number") {
256
256
  const mode = params.entry.unixPermissions & 511;
257
- if (mode !== 0) await fsPromises.chmod(params.outPath, mode).catch(() => void 0);
257
+ if (mode !== 0) await fs$1.chmod(params.outPath, mode).catch(() => void 0);
258
258
  }
259
259
  }
260
260
  async function extractZip(params) {
261
261
  const limits = resolveExtractLimits(params.limits);
262
262
  const destinationRealDir = await assertDestinationDirReady(params.destDir);
263
- if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
264
- const buffer = await fsPromises.readFile(params.archivePath);
263
+ if ((await fs$1.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
264
+ const buffer = await fs$1.readFile(params.archivePath);
265
265
  const zip = await JSZip.loadAsync(buffer);
266
266
  const entries = Object.values(zip.files);
267
267
  const strip = Math.max(0, Math.floor(params.stripComponents ?? 0));
@@ -346,14 +346,14 @@ async function extractArchive(params) {
346
346
  }
347
347
  async function fileExists(filePath) {
348
348
  try {
349
- await fsPromises.stat(filePath);
349
+ await fs$1.stat(filePath);
350
350
  return true;
351
351
  } catch {
352
352
  return false;
353
353
  }
354
354
  }
355
355
  async function readJsonFile(filePath) {
356
- const raw = await fsPromises.readFile(filePath, "utf-8");
356
+ const raw = await fs$1.readFile(filePath, "utf-8");
357
357
  return JSON.parse(raw);
358
358
  }
359
359
 
@@ -1,12 +1,12 @@
1
1
  import { W as CONFIG_DIR, st as resolveUserPath } from "./entry.js";
2
2
  import { i as isPathInside, n as MANIFEST_KEY, r as extensionUsesSkippedScannerPath } from "./legacy-names-PPcHwaHH.js";
3
- import { o as loadPluginManifest } from "./manifest-registry-YC37UceR.js";
4
- import { S as validateRegistryNpmSpec } from "./skills-DjfCNN-j.js";
5
- import { c as resolveArchiveKind, i as unscopedPackageName, n as safeDirName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-DXJW8Vo3.js";
6
- import { a as resolveTimedInstallModeOptions, c as resolveArchiveSourcePath, i as resolveInstallModeOptions, n as installFromNpmSpecArchiveWithInstaller, o as resolveExistingInstallPath, r as installPackageDir, s as withExtractedArchiveRoot, t as finalizeNpmSpecArchiveInstall } from "./npm-pack-install-C2E_zBU6.js";
7
- import { t as scanDirectoryWithSummary } from "./skill-scanner-YaxFgz1o.js";
3
+ import { o as loadPluginManifest } from "./manifest-registry-DRMtnPEQ.js";
4
+ import { S as validateRegistryNpmSpec } from "./skills-BkqPPXlw.js";
5
+ import { c as resolveArchiveKind, i as unscopedPackageName, n as safeDirName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-DGYbxO86.js";
6
+ import { a as resolveTimedInstallModeOptions, c as resolveArchiveSourcePath, i as resolveInstallModeOptions, n as installFromNpmSpecArchiveWithInstaller, o as resolveExistingInstallPath, r as installPackageDir, s as withExtractedArchiveRoot, t as finalizeNpmSpecArchiveInstall } from "./npm-pack-install-ChrCCIJD.js";
7
+ import { t as scanDirectoryWithSummary } from "./skill-scanner-DW9hSz_J.js";
8
8
  import path from "node:path";
9
- import fsPromises from "node:fs/promises";
9
+ import fs from "node:fs/promises";
10
10
 
11
11
  //#region src/plugins/install.ts
12
12
  const defaultLogger = {};
@@ -109,7 +109,7 @@ async function installPluginFromPackageDir(params) {
109
109
  logger.warn?.(`Plugin "${pluginId}" code safety scan failed (${String(err)}). Installation continues; run "openclaw security audit --deep" after install.`);
110
110
  }
111
111
  const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
112
- await fsPromises.mkdir(extensionsDir, { recursive: true });
112
+ await fs.mkdir(extensionsDir, { recursive: true });
113
113
  const targetDirResult = resolveSafeInstallDir({
114
114
  baseDir: extensionsDir,
115
115
  id: pluginId,
@@ -193,7 +193,7 @@ async function installPluginFromDir(params) {
193
193
  ok: false,
194
194
  error: `directory not found: ${dirPath}`
195
195
  };
196
- if (!(await fsPromises.stat(dirPath)).isDirectory()) return {
196
+ if (!(await fs.stat(dirPath)).isDirectory()) return {
197
197
  ok: false,
198
198
  error: `not a directory: ${dirPath}`
199
199
  };
@@ -215,7 +215,7 @@ async function installPluginFromFile(params) {
215
215
  error: `file not found: ${filePath}`
216
216
  };
217
217
  const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
218
- await fsPromises.mkdir(extensionsDir, { recursive: true });
218
+ await fs.mkdir(extensionsDir, { recursive: true });
219
219
  const pluginId = path.basename(filePath, path.extname(filePath)) || "plugin";
220
220
  const pluginIdError = validatePluginId(pluginId);
221
221
  if (pluginIdError) return {
@@ -229,7 +229,7 @@ async function installPluginFromFile(params) {
229
229
  };
230
230
  if (dryRun) return buildFileInstallResult(pluginId, targetFile);
231
231
  logger.info?.(`Installing to ${targetFile}…`);
232
- await fsPromises.copyFile(filePath, targetFile);
232
+ await fs.copyFile(filePath, targetFile);
233
233
  return buildFileInstallResult(pluginId, targetFile);
234
234
  }
235
235
  async function installPluginFromNpmSpec(params) {
@@ -1,4 +1,4 @@
1
- import { lt as isCanonicalDottedDecimalIPv4, pt as isIpv6Address, vt as parseCanonicalIpAddress } from "./auth-profiles-qnck2ozy.js";
1
+ import { lt as isCanonicalDottedDecimalIPv4, pt as isIpv6Address, vt as parseCanonicalIpAddress } from "./auth-profiles-D3FyYUSG.js";
2
2
  import { o as getTailnetHostname } from "./tailscale-Cz0j5H8x.js";
3
3
 
4
4
  //#region src/gateway/gateway-config-prompts.shared.ts