openclaw-multi-auto 1.7.5 → 1.7.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 (196) hide show
  1. package/dist/{acp-cli-D2FsuxI4.js → acp-cli-DMujSgSt.js} +11 -11
  2. package/dist/{agent-B8D73rdQ.js → agent-CaQagdQ7.js} +8 -8
  3. package/dist/{agent-BomWJjOy.js → agent-QkWi9ww5.js} +7 -7
  4. package/dist/{agent-scope-DmTcOjk4.js → agent-scope-sd1-3XH0.js} +16 -16
  5. package/dist/{agents.config-Crwrvv0Y.js → agents.config-DpC62EoF.js} +3 -3
  6. package/dist/{audio-preflight-CZHCr2-5.js → audio-preflight-CKN-13f6.js} +1 -1
  7. package/dist/{audio-preflight-DUZyiet9.js → audio-preflight-CxMkqmsz.js} +10 -10
  8. package/dist/{audit-CX3KlHoS.js → audit-COOnp_TQ.js} +18 -18
  9. package/dist/{audit-membership-runtime-DOqwbA7L.js → audit-membership-runtime-o16tAd90.js} +1 -1
  10. package/dist/{auth-choice-DZC8_SXk.js → auth-choice-B7hFRxC4.js} +19 -19
  11. package/dist/{auth-choice-CuOI0DLZ.js → auth-choice-CgIbQGAr.js} +8 -8
  12. package/dist/{auth-choice-options-C_poWj2I.js → auth-choice-options-CaiEtgdy.js} +1 -1
  13. package/dist/{auth-choice-prompt-Bjt463U7.js → auth-choice-prompt-CyE2_iHL.js} +1 -1
  14. package/dist/{auth-choice.apply-helpers-BFZ8hPRq.js → auth-choice.apply-helpers-BwI7_FDv.js} +2 -2
  15. package/dist/{auth-choice.preferred-provider-CzDq9Lvp.js → auth-choice.preferred-provider-BJFK05is.js} +5 -5
  16. package/dist/{auth-profiles.runtime-DNqCx0L5.js → auth-profiles.runtime-DHFZjArZ.js} +1 -1
  17. package/dist/{auth-profiles.runtime-BWD0iDWZ.js → auth-profiles.runtime-firEabaJ.js} +10 -10
  18. package/dist/{auth-token-CnWG4-cB.js → auth-token-Ca2ISBq6.js} +1 -1
  19. package/dist/{bonjour-discovery-Cnl-PHZ4.js → bonjour-discovery-CgQeXj94.js} +1 -1
  20. package/dist/{browser-cli-DLSYDvK2.js → browser-cli-DfrP5czU.js} +11 -11
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +2 -2
  23. package/dist/bundled/session-memory/handler.js +1 -1
  24. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  25. package/dist/{channel-account-context-DMK0G0sK.js → channel-account-context-F18H2wEh.js} +7 -7
  26. package/dist/{channel-options-CsQMEhUD.js → channel-options-DR0IjcQw.js} +3 -3
  27. package/dist/{channel-web-D7txUcfH.js → channel-web-B3yCvpab.js} +4 -4
  28. package/dist/{channels-cli-DK-EFHka.js → channels-cli-C9jvVDlM.js} +33 -33
  29. package/dist/{channels-status-issues-B-PoQaOZ.js → channels-status-issues-C6mRI9nP.js} +1 -1
  30. package/dist/{clack-prompter-COY2Efgu.js → clack-prompter-CakorHf3.js} +1 -1
  31. package/dist/{clawbot-cli-CYVkuLnO.js → clawbot-cli-De1V5wKt.js} +12 -12
  32. package/dist/{cleanup-utils-DksMdp7C.js → cleanup-utils-DZ-HVi66.js} +4 -4
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-BXEJJp6e.js → cli-5Ap2oull.js} +10 -10
  35. package/dist/{cmd-argv-BdNFwuhe.js → cmd-argv-Dz5qUtqp.js} +1 -1
  36. package/dist/{compact.runtime-Do9SwMzP.js → compact.runtime-Bi0KAZxx.js} +10 -10
  37. package/dist/{compact.runtime-pgjSlzSY.js → compact.runtime-DoEYdXjJ.js} +1 -1
  38. package/dist/{completion-cli-BnHZnvaD.js → completion-cli-DetW6vGx.js} +12 -12
  39. package/dist/{config-cli-BTyfFTwL.js → config-cli-JmabBPbR.js} +13 -13
  40. package/dist/{config-guard-DXvConn_.js → config-guard-D0ly1tu3.js} +12 -12
  41. package/dist/{config-validation-ZC7mw4HJ.js → config-validation-DtOoaTl7.js} +3 -3
  42. package/dist/{configure--3s3LTcF.js → configure-DNZVKth2.js} +52 -52
  43. package/dist/{control-ui-assets-D5CuaZfV.js → control-ui-assets-B9I2TpME.js} +1 -1
  44. package/dist/{cron-cli-BTeTdxk8.js → cron-cli-hA-3anvP.js} +11 -11
  45. package/dist/{daemon-cli-TvT5eeIP.js → daemon-cli-CgEObThe.js} +13 -13
  46. package/dist/{daemon-install-CUvnebOQ.js → daemon-install-e324s4no.js} +16 -16
  47. package/dist/{daemon-install-plan.shared-BfFSRwqA.js → daemon-install-plan.shared-g5FPfccc.js} +12 -12
  48. package/dist/{deliver-runtime-CRO5x8jL.js → deliver-runtime-CI-THBhi.js} +10 -10
  49. package/dist/{deliver-runtime-D4aWAXZ9.js → deliver-runtime-CqyJiuFQ.js} +1 -1
  50. package/dist/{deps-Cgw7M-k3.js → deps-B6HgPp5e.js} +6 -6
  51. package/dist/{device-bootstrap-DSXbseT6.js → device-bootstrap-oW1bwgs7.js} +1 -1
  52. package/dist/{device-pairing-RZV6Mnep.js → device-pairing-CMxl0D-M.js} +1 -1
  53. package/dist/{devices-cli-DnvmJ-Sg.js → devices-cli-BPpKKc7g.js} +11 -11
  54. package/dist/{diagnostics-1AwcyuKi.js → diagnostics-iZHasrpQ.js} +5 -5
  55. package/dist/{directory-cli-CO5of3mT.js → directory-cli-BP8WHXBG.js} +10 -10
  56. package/dist/{dns-cli-s2wuP3H0.js → dns-cli-CQl7AkL3.js} +10 -10
  57. package/dist/{docs-cli-CZA-gAQf.js → docs-cli-BWb05s-1.js} +3 -3
  58. package/dist/{doctor-completion-DvnTlsPK.js → doctor-completion-CA3Zcz0O.js} +2 -2
  59. package/dist/{doctor-config-flow-DOEjAAYV.js → doctor-config-flow-C53lW8fK.js} +10 -10
  60. package/dist/{enable-BSbXEyXD.js → enable-CmddFDJP.js} +1 -1
  61. package/dist/{exec-approvals-cli-CsNqvj8p.js → exec-approvals-cli-Cyhhh2cy.js} +18 -18
  62. package/dist/{fetch-CGW2R_wh.js → fetch-ggeyBJ4j.js} +2 -2
  63. package/dist/{gateway-cli-Bq7xXLEB.js → gateway-cli-vQfsLSPv.js} +101 -101
  64. package/dist/{gateway-install-token-C40ge2lh.js → gateway-install-token-CQHd6wSt.js} +3 -3
  65. package/dist/{gateway-rpc-DUJcLoxb.js → gateway-rpc-DrDqntyT.js} +1 -1
  66. package/dist/{health-D_dD9-ET.js → health-CTOG7Tdy.js} +7 -7
  67. package/dist/{hooks-cli-YvIgaujr.js → hooks-cli-CvrIbP3A.js} +18 -18
  68. package/dist/{hooks-status-C3wWva3H.js → hooks-status-BiuMKGQP.js} +1 -1
  69. package/dist/{image-runtime-Cx4HaqrI.js → image-runtime-Cen4jnt5.js} +10 -10
  70. package/dist/{image-runtime-Brryt_BU.js → image-runtime-DuwNoMsX.js} +1 -1
  71. package/dist/index.js +21 -21
  72. package/dist/{inspect-D3lV5ful.js → inspect-C0iPD7zZ.js} +4 -4
  73. package/dist/{install-safe-path-BvwKN_9n.js → install-safe-path-CnIWvuEU.js} +33 -33
  74. package/dist/{installs-BC5ieRDB.js → installs-BcQMkw3V.js} +8 -8
  75. package/dist/{ipv4-CwqOzc5W.js → ipv4-DHZnIX-K.js} +1 -1
  76. package/dist/{issue-format-34LidjQQ.js → issue-format-CtBob7pd.js} +1 -1
  77. package/dist/{launchd-BLFV2ME0.js → launchd-D7vxtTg7.js} +13 -13
  78. package/dist/{lifecycle-core-C07n1IOr.js → lifecycle-core-CKec6MyM.js} +6 -6
  79. package/dist/llm-slug-generator.js +1 -1
  80. package/dist/{logging-DPEdtuNl.js → logging-B7i4YBpx.js} +1 -1
  81. package/dist/{login-BLC4Op_m.js → login-CQ5pGFeF.js} +3 -3
  82. package/dist/{login-CKmmxErc.js → login-DC00cCmn.js} +2 -2
  83. package/dist/{login-qr-DpxxtTBd.js → login-qr-C8iDYxXx.js} +11 -11
  84. package/dist/{login-qr-KVA4wuh0.js → login-qr-DB7lXNdD.js} +2 -2
  85. package/dist/{logs-cli-BKhTgUSN.js → logs-cli-B8u30MKC.js} +11 -11
  86. package/dist/{manager-runtime-D9AEoM1M.js → manager-runtime-C04JB-55.js} +1 -1
  87. package/dist/{manager-runtime-B4ZbE6hq.js → manager-runtime-DDc_xR6t.js} +10 -10
  88. package/dist/{manager.runtime-lHLhN5ro.js → manager.runtime-sDKQexj4.js} +16 -16
  89. package/dist/{manager.runtime-BV-CBNb2.js → manager.runtime-y1RqEqxK.js} +2 -2
  90. package/dist/{model-picker-C5sQCeTo.js → model-picker-iMZicrZb.js} +5 -5
  91. package/dist/{model-selection-CNRMBWfR.js → model-selection-Coo7zMJO.js} +43 -43
  92. package/dist/{models-cli-B7OdTj93.js → models-cli-CHWqnmnX.js} +21 -21
  93. package/dist/{node-cli-ArOhWB3h.js → node-cli-D2EGwHd2.js} +22 -22
  94. package/dist/{node-command-policy-BVIbeciX.js → node-command-policy-C9YoIlNR.js} +1 -1
  95. package/dist/{node-service-ESc5ToCS.js → node-service-D7xRD6Op.js} +1 -1
  96. package/dist/{nodes-cli-BLneGv8c.js → nodes-cli-BaWA_a27.js} +13 -13
  97. package/dist/{npm-pack-install-DI_0G-Ju.js → npm-pack-install-C7ntuYO8.js} +23 -23
  98. package/dist/{npm-resolution-DowD_x7i.js → npm-resolution-BL-LzQ8q.js} +3 -3
  99. package/dist/{onboard-Da0Gqg8E.js → onboard-1Vbkq-0q.js} +10 -10
  100. package/dist/{onboard-channels-Dub92d1X.js → onboard-channels-C_RZQliP.js} +16 -16
  101. package/dist/{onboard-custom-iC39HaRY.js → onboard-custom-CyUm7NIR.js} +5 -5
  102. package/dist/{onboard-hooks-DUll1iq8.js → onboard-hooks-Bx20a5uy.js} +4 -4
  103. package/dist/{onboard-remote-Cyc407f2.js → onboard-remote-Dtm07eUX.js} +3 -3
  104. package/dist/{onboard-skills-BqnqjDI3.js → onboard-skills-BOBtFqTc.js} +3 -3
  105. package/dist/{onboarding-BgeTWLi_.js → onboarding-CAQDdLGu.js} +17 -17
  106. package/dist/{onboarding.finalize-C4jEsWtC.js → onboarding.finalize-BAUMJZlu.js} +25 -25
  107. package/dist/{onboarding.gateway-config-C2XdEUF3.js → onboarding.gateway-config-BRSWuajr.js} +14 -14
  108. package/dist/{onboarding.secret-input-OwIXA7An.js → onboarding.secret-input-D75Xjj5j.js} +1 -1
  109. package/dist/{openai-codex-oauth-BUnBFHjs.js → openai-codex-oauth-BjOz2DJZ.js} +3 -3
  110. package/dist/{openclaw-root-B5jXk2td.js → openclaw-root-dlCz9toZ.js} +8 -8
  111. package/dist/{outbound-send-deps-dRaNZNE7.js → outbound-send-deps-Bid3Xegx.js} +1 -1
  112. package/dist/{pairing-cli-pEJPQw6E.js → pairing-cli-Dm_fH3zm.js} +10 -10
  113. package/dist/{path-alias-guards-BEqdGdn9.js → path-alias-guards-B6owPyQX.js} +3 -3
  114. package/dist/{path-safety-TRhr8lhQ.js → path-safety-DN7L46Yk.js} +1 -1
  115. package/dist/{pi-model-discovery-runtime-BkRq7f9h.js → pi-model-discovery-runtime-BRs3OnbK.js} +10 -10
  116. package/dist/{pi-model-discovery-runtime-CDKkuBYh.js → pi-model-discovery-runtime-DsZRIFOj.js} +1 -1
  117. package/dist/{pi-tools.before-tool-call.runtime-Dt7ZWya_.js → pi-tools.before-tool-call.runtime-Cz99nK1_.js} +10 -10
  118. package/dist/{pi-tools.before-tool-call.runtime-DgAiY2la.js → pi-tools.before-tool-call.runtime-l0nSxXys.js} +1 -1
  119. package/dist/{plugin-install-plan-q0pKUAmp.js → plugin-install-plan-tegfcs_j.js} +1 -1
  120. package/dist/{plugin-registry-DrrKSvdi.js → plugin-registry-D1UVdXNl.js} +2 -2
  121. package/dist/{plugins-om7vnHk0.js → plugins-BVbKGpQJ.js} +9 -9
  122. package/dist/{plugins-cli-BWuwmlNA.js → plugins-cli-DMTK-3PI.js} +21 -21
  123. package/dist/{ports-CVD9jTxH.js → ports-CrZzXxTl.js} +2 -2
  124. package/dist/{probe-auth-CRm2yob0.js → probe-auth-H1_HjX3c.js} +1 -1
  125. package/dist/{program-context-BnNrq2_o.js → program-context--XQiK-Vv.js} +42 -42
  126. package/dist/{prompt-select-styled-FpCuoi_9.js → prompt-select-styled-BzWw9bIh.js} +32 -32
  127. package/dist/{provider-auth-helpers-Dzq3SbTh.js → provider-auth-helpers-B5U-h2Ob.js} +4 -4
  128. package/dist/{provider-wizard-CRYUkbUG.js → provider-wizard-BgHYhBzK.js} +1 -1
  129. package/dist/{push-apns-6Yefl4vF.js → push-apns-DQdHdrq8.js} +3 -3
  130. package/dist/{pw-ai-Brk_ehKR.js → pw-ai-8OpaEmr4.js} +15 -15
  131. package/dist/{pw-ai-3ual6adI.js → pw-ai-R41XeePP.js} +1 -1
  132. package/dist/{qmd-manager-Clny9vcj.js → qmd-manager-BMkECKpc.js} +19 -19
  133. package/dist/{qr-cli-TsbdBlkh.js → qr-cli-CZy0bldy.js} +11 -11
  134. package/dist/{query-expansion-BNb6Vys6.js → query-expansion-AnOnkIqf.js} +48 -48
  135. package/dist/{redact-snapshot-sudZsVoX.js → redact-snapshot-lCMXNHo3.js} +1 -1
  136. package/dist/{register.agent-BcYbZ3eF.js → register.agent-2yZ4uAHT.js} +43 -43
  137. package/dist/{register.backup-DbtBtW_J.js → register.backup-Byyque4N.js} +26 -26
  138. package/dist/register.configure-CrATD0tr.js +87 -0
  139. package/dist/{register.maintenance-Cdn2TwrI.js → register.maintenance-BZ_V3Ubt.js} +33 -33
  140. package/dist/{register.message-cHCXxeA6.js → register.message-CJwTd37H.js} +13 -13
  141. package/dist/{register.onboard-Dbig7G2G.js → register.onboard-BY0T1WHb.js} +17 -17
  142. package/dist/{register.setup-DjHUcAcm.js → register.setup-CA3ZUrN-.js} +18 -18
  143. package/dist/{register.status-health-sessions-BMxJK45p.js → register.status-health-sessions-PN0jxAPA.js} +26 -26
  144. package/dist/{reply-Cf5Mm7vB.js → reply-gX1XTS9Y.js} +226 -226
  145. package/dist/{restart-stale-pids-ZfbSMILU.js → restart-stale-pids-B6E7QavX.js} +2 -2
  146. package/dist/{rpc-8YrBMBoD.js → rpc-B2PO3N0W.js} +1 -1
  147. package/dist/{runtime-whatsapp-login.runtime-Br3SxDXL.js → runtime-whatsapp-login.runtime-C_E260pb.js} +3 -3
  148. package/dist/{runtime-whatsapp-login.runtime-Bo1HalYB.js → runtime-whatsapp-login.runtime-DKMtq6l9.js} +12 -12
  149. package/dist/{runtime-whatsapp-outbound.runtime-L3Qkst0n.js → runtime-whatsapp-outbound.runtime-BdHcgl-R.js} +2 -2
  150. package/dist/{runtime-whatsapp-outbound.runtime-Ch2o56Ey.js → runtime-whatsapp-outbound.runtime-Dv1HN4ha.js} +11 -11
  151. package/dist/{sandbox-cli-CoRe21Si.js → sandbox-cli-SCYkP_qN.js} +10 -10
  152. package/dist/{secret-file-7smmAVRV.js → secret-file-CuiwToxK.js} +1 -1
  153. package/dist/{secrets-cli-CHT1AjCX.js → secrets-cli-C5O6Jw_4.js} +11 -11
  154. package/dist/{security-cli-DRqdmCtr.js → security-cli-CL4qtb9H.js} +20 -20
  155. package/dist/{send-CXnKWzde.js → send-BvAlpSvh.js} +1 -1
  156. package/dist/{send-CHZ7WuOb.js → send-hZxe8sP9.js} +2 -2
  157. package/dist/{server-DiTziwvC.js → server-Cnc4lO11.js} +10 -10
  158. package/dist/{server-node-events-p5ykMQz-.js → server-node-events-aTSoNGTe.js} +14 -14
  159. package/dist/{service-RXVSlLiU.js → service-LNrViUVb.js} +13 -13
  160. package/dist/{session-CXOhppV3.js → session-CndmPe2D.js} +2 -2
  161. package/dist/{session-kt-bqE_z.js → session-D7nweu0t.js} +1 -1
  162. package/dist/{shared-CoL161wD.js → shared-c6JUv5At.js} +1 -1
  163. package/dist/{skill-scanner-BzjuMMKN.js → skill-scanner-DaUNX-tW.js} +6 -6
  164. package/dist/{skills-cli-YajvWbjO.js → skills-cli-YqsScIM5.js} +11 -11
  165. package/dist/{skills-install-DFkV3GsC.js → skills-install-BnRu7wO4.js} +6 -6
  166. package/dist/{skills-status-PMeXzDbC.js → skills-status-DHMQ6A2H.js} +1 -1
  167. package/dist/{skills-Jz-BSwRd.js → skills-vhlUaliH.js} +2 -2
  168. package/dist/{slash-commands.runtime-BYfxn_xu.js → slash-commands.runtime-AZCJXo7S.js} +1 -1
  169. package/dist/{slash-commands.runtime-_LrsMaI1.js → slash-commands.runtime-D9GHahMO.js} +10 -10
  170. package/dist/{slash-dispatch.runtime-neG4499W.js → slash-dispatch.runtime-DcISuJb0.js} +10 -10
  171. package/dist/{slash-dispatch.runtime-Cu8ghe1h.js → slash-dispatch.runtime-DyUU1AG5.js} +1 -1
  172. package/dist/{slash-skill-commands.runtime-8dS5PTaH.js → slash-skill-commands.runtime-Cv1NPjj6.js} +1 -1
  173. package/dist/{slash-skill-commands.runtime-D0ohJN-V.js → slash-skill-commands.runtime-Dt6QQJcX.js} +10 -10
  174. package/dist/{status-1patzIRq.js → status-D9mVTxuB.js} +1 -1
  175. package/dist/{status-BaLZ1uQV.js → status-QQiIsfFq.js} +21 -21
  176. package/dist/{status.update-DrzJ1YWu.js → status.update-DY13od-q.js} +3 -3
  177. package/dist/{subagent-registry-runtime-BTW1zlrG.js → subagent-registry-runtime-CoeW8s2P.js} +10 -10
  178. package/dist/{subagent-registry-runtime-Z0fdsGSq.js → subagent-registry-runtime-N50VG-ay.js} +1 -1
  179. package/dist/{system-cli-CndWL3sF.js → system-cli-DMu6SZhn.js} +11 -11
  180. package/dist/{systemd-D47rkLi7.js → systemd-DSK6B3bg.js} +11 -11
  181. package/dist/{systemd-hints-DHfXVo8k.js → systemd-hints-DsQTPBGt.js} +6 -6
  182. package/dist/{systemd-linger-DwmFZpci.js → systemd-linger-BPISBIWJ.js} +1 -1
  183. package/dist/{tui-CzYnfJxE.js → tui-DzNNH2rc.js} +2 -2
  184. package/dist/{tui-cli-D47N0Kfm.js → tui-cli-D5JgcWb9.js} +11 -11
  185. package/dist/{update-BiUnc38r.js → update-DL_359AR.js} +2 -2
  186. package/dist/{update-cli-CeqH2oQ-.js → update-cli-BfjWjK3A.js} +45 -45
  187. package/dist/{update-runner-oqYBjs5t.js → update-runner-CfkBU1BA.js} +16 -16
  188. package/dist/{web-CXyjF_si.js → web-B4n02Xhe.js} +4 -4
  189. package/dist/{web-BRvkjVpk.js → web-BHO-XtPY.js} +14 -14
  190. package/dist/{webhooks-cli-CnTKcfvh.js → webhooks-cli-C0kgprJJ.js} +10 -10
  191. package/dist/{whatsapp-actions-BXO9Bi7a.js → whatsapp-actions-BC06Ug_d.js} +11 -11
  192. package/dist/{whatsapp-actions-BUvGEDSk.js → whatsapp-actions-JJEG8eF3.js} +2 -2
  193. package/dist/{workspace-CWne7yqK.js → workspace-BTsqd19h.js} +1 -1
  194. package/package.json +8 -8
  195. package/scripts/create-instance.sh +29 -46
  196. package/dist/register.configure-CPWCrXrC.js +0 -87
@@ -1,16 +1,16 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
2
2
  import { A as theme, k as isRich, p as defaultRuntime, t as createSubsystemLogger, y as info } from "./subsystem-G54saDcg.js";
3
3
  import { l as escapeRegExp } from "./utils-B8zCe27d.js";
4
- import { $i as buildOutboundSessionContext, $p as resolveAgentMainSessionKey, Cu as stripHeartbeatToken, G as withProgress, Gp as evaluateSessionFreshness, Jl as resolveUserTimezone, Ql as clearBootstrapSnapshotOnSessionRollover, Qp as canonicalizeMainSessionAlias, Su as resolveHeartbeatPrompt$1, T_ as parseDurationMs, Xi as resolveHeartbeatSenderContext, Yi as resolveHeartbeatDeliveryTarget, _l as requestHeartbeatNow, _p as loadSessionStore, bl as resolveHeartbeatReasonKind, d_ as loadConfig, ea as deliverOutboundPayloads, gl as areHeartbeatsEnabled, ji as resolveEffectiveMessagesConfig, ns as buildGatewayConnectionDetails, p_ as readBestEffortConfig, qp as resolveSessionResetPolicy, rs as callGateway, sd as peekSystemEventEntries, su as CommandLane, t as getReplyFromConfig, tu as getQueueSize, vl as setHeartbeatWakeHandler, vr as appendCronStyleCurrentTimeLine, wu as HEARTBEAT_TOKEN, xp as updateSessionStore, xu as isHeartbeatContentEffectivelyEmpty, yp as saveSessionStore } from "./reply-Cf5Mm7vB.js";
5
- import { b as DEFAULT_HEARTBEAT_FILENAME, d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId, i as resolveAgentConfig } from "./agent-scope-DmTcOjk4.js";
4
+ import { $i as buildOutboundSessionContext, $p as resolveAgentMainSessionKey, Cu as stripHeartbeatToken, G as withProgress, Gp as evaluateSessionFreshness, Jl as resolveUserTimezone, Ql as clearBootstrapSnapshotOnSessionRollover, Qp as canonicalizeMainSessionAlias, Su as resolveHeartbeatPrompt$1, T_ as parseDurationMs, Xi as resolveHeartbeatSenderContext, Yi as resolveHeartbeatDeliveryTarget, _l as requestHeartbeatNow, _p as loadSessionStore, bl as resolveHeartbeatReasonKind, d_ as loadConfig, ea as deliverOutboundPayloads, gl as areHeartbeatsEnabled, ji as resolveEffectiveMessagesConfig, ns as buildGatewayConnectionDetails, p_ as readBestEffortConfig, qp as resolveSessionResetPolicy, rs as callGateway, sd as peekSystemEventEntries, su as CommandLane, t as getReplyFromConfig, tu as getQueueSize, vl as setHeartbeatWakeHandler, vr as appendCronStyleCurrentTimeLine, wu as HEARTBEAT_TOKEN, xp as updateSessionStore, xu as isHeartbeatContentEffectivelyEmpty, yp as saveSessionStore } from "./reply-gX1XTS9Y.js";
5
+ import { b as DEFAULT_HEARTBEAT_FILENAME, d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId, i as resolveAgentConfig } from "./agent-scope-sd1-3XH0.js";
6
6
  import { E as parseAgentSessionKey, c as normalizeAgentId, h as toAgentStoreSessionKey, u as resolveAgentIdFromSessionKey } from "./session-key-DjKQluAa.js";
7
7
  import { t as isTruthyEnvValue } from "./env-CQxWwTMn.js";
8
- import { Y as buildChannelAccountBindings, Z as resolvePreferredAccountId, g as resolveChannelDefaultAccountId, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-om7vnHk0.js";
8
+ import { Y as buildChannelAccountBindings, Z as resolvePreferredAccountId, g as resolveChannelDefaultAccountId, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BVbKGpQJ.js";
9
9
  import { a as hasErrnoCode, r as formatErrorMessage } from "./errors-DNKaAVHN.js";
10
10
  import { l as resolveStorePath, r as resolveSessionFilePath } from "./paths-CfmKJcO5.js";
11
11
  import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-DRnbwSep.js";
12
12
  import path from "node:path";
13
- import fs from "node:fs/promises";
13
+ import fsPromises from "node:fs/promises";
14
14
  import crypto from "node:crypto";
15
15
  //#region src/cron/isolated-agent/session.ts
16
16
  function resolveCronSession(params) {
@@ -355,7 +355,7 @@ async function pruneHeartbeatTranscript(params) {
355
355
  const { transcriptPath, preHeartbeatSize } = params;
356
356
  if (!transcriptPath || typeof preHeartbeatSize !== "number" || preHeartbeatSize < 0) return;
357
357
  try {
358
- if ((await fs.stat(transcriptPath)).size > preHeartbeatSize) await fs.truncate(transcriptPath, preHeartbeatSize);
358
+ if ((await fsPromises.stat(transcriptPath)).size > preHeartbeatSize) await fsPromises.truncate(transcriptPath, preHeartbeatSize);
359
359
  } catch {}
360
360
  }
361
361
  /**
@@ -373,7 +373,7 @@ async function captureTranscriptState(params) {
373
373
  });
374
374
  return {
375
375
  transcriptPath,
376
- preHeartbeatSize: (await fs.stat(transcriptPath)).size
376
+ preHeartbeatSize: (await fsPromises.stat(transcriptPath)).size
377
377
  };
378
378
  } catch {
379
379
  return {};
@@ -430,7 +430,7 @@ async function resolveHeartbeatPreflight(params) {
430
430
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
431
431
  const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
432
432
  try {
433
- if (isHeartbeatContentEffectivelyEmpty(await fs.readFile(heartbeatFilePath, "utf-8"))) return {
433
+ if (isHeartbeatContentEffectivelyEmpty(await fsPromises.readFile(heartbeatFilePath, "utf-8"))) return {
434
434
  ...basePreflight,
435
435
  skipReason: "empty-heartbeat-file"
436
436
  };
@@ -1,9 +1,9 @@
1
1
  import "./paths-tuenh9TL.js";
2
2
  import { A as theme, p as defaultRuntime } from "./subsystem-G54saDcg.js";
3
3
  import { S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-B8zCe27d.js";
4
- import { d_ as loadConfig, v_ as writeConfigFile, yg as promptYesNo } from "./reply-Cf5Mm7vB.js";
5
- import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-DmTcOjk4.js";
6
- import "./openclaw-root-B5jXk2td.js";
4
+ import { d_ as loadConfig, v_ as writeConfigFile, yg as promptYesNo } from "./reply-gX1XTS9Y.js";
5
+ import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-sd1-3XH0.js";
6
+ import "./openclaw-root-dlCz9toZ.js";
7
7
  import "./logger-BohkHL0S.js";
8
8
  import "./exec-CNtAq7Md.js";
9
9
  import "./github-copilot-token-Ff890Vmh.js";
@@ -13,31 +13,31 @@ import "./env-CQxWwTMn.js";
13
13
  import { _ as validateRegistryNpmSpec } from "./env-overrides-BYyMsIvB.js";
14
14
  import { n as isPathInside, r as isPathInsideWithRealpath } from "./scan-paths-B5Yx6Npu.js";
15
15
  import "./registry-aHEgjCIQ.js";
16
- import "./skills-Jz-BSwRd.js";
16
+ import "./skills-vhlUaliH.js";
17
17
  import { m as MANIFEST_KEY } from "./frontmatter-BngyYhS0.js";
18
- import "./plugins-om7vnHk0.js";
19
- import "./query-expansion-BNb6Vys6.js";
18
+ import "./plugins-BVbKGpQJ.js";
19
+ import "./query-expansion-AnOnkIqf.js";
20
20
  import "./redact-owRpqMhM.js";
21
- import "./path-alias-guards-BEqdGdn9.js";
22
- import "./fetch-CGW2R_wh.js";
21
+ import "./path-alias-guards-B6owPyQX.js";
22
+ import "./fetch-ggeyBJ4j.js";
23
23
  import "./errors-DNKaAVHN.js";
24
- import "./cmd-argv-BdNFwuhe.js";
25
- import "./restart-stale-pids-ZfbSMILU.js";
24
+ import "./cmd-argv-Dz5qUtqp.js";
25
+ import "./restart-stale-pids-B6E7QavX.js";
26
26
  import "./delivery-queue-B7zSt4zY.js";
27
27
  import "./paths-CfmKJcO5.js";
28
28
  import "./session-cost-usage-C2jrTKxW.js";
29
29
  import "./prompt-style-DlcWUCNR.js";
30
30
  import { t as formatDocsLink } from "./links-BpKafJs4.js";
31
31
  import "./cli-utils-BSURvrmb.js";
32
- import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, u as resolveArchiveKind } from "./install-safe-path-BvwKN_9n.js";
33
- import { a as installPackageDir, c as resolveTimedInstallModeOptions, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, o as installPackageDirWithManifestDeps, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-DI_0G-Ju.js";
32
+ import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, u as resolveArchiveKind } from "./install-safe-path-CnIWvuEU.js";
33
+ import { a as installPackageDir, c as resolveTimedInstallModeOptions, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, o as installPackageDirWithManifestDeps, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-C7ntuYO8.js";
34
34
  import { n as renderTable, t as getTerminalTableWidth } from "./table-DpnYa9iY.js";
35
- import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-CWne7yqK.js";
36
- import { t as buildWorkspaceHookStatus } from "./hooks-status-C3wWva3H.js";
37
- import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec, t as buildNpmInstallRecordFields } from "./npm-resolution-DowD_x7i.js";
35
+ import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-BTsqd19h.js";
36
+ import { t as buildWorkspaceHookStatus } from "./hooks-status-BiuMKGQP.js";
37
+ import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec, t as buildNpmInstallRecordFields } from "./npm-resolution-BL-LzQ8q.js";
38
38
  import fs from "node:fs";
39
39
  import path from "node:path";
40
- import fs$1 from "node:fs/promises";
40
+ import fsPromises from "node:fs/promises";
41
41
  //#region src/infra/install-from-npm-spec.ts
42
42
  async function installFromValidatedNpmSpecArchive(params) {
43
43
  const spec = params.spec.trim();
@@ -140,7 +140,7 @@ async function installFromResolvedHookDir(resolvedDir, params) {
140
140
  async function resolveHookNameFromDir(hookDir) {
141
141
  const hookMdPath = path.join(hookDir, "HOOK.md");
142
142
  if (!await fileExists(hookMdPath)) throw new Error(`HOOK.md missing in ${hookDir}`);
143
- return parseFrontmatter(await fs$1.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
143
+ return parseFrontmatter(await fsPromises.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
144
144
  }
145
145
  async function validateHookDir(hookDir) {
146
146
  if (!await fileExists(path.join(hookDir, "HOOK.md"))) throw new Error(`HOOK.md missing in ${hookDir}`);
@@ -467,7 +467,7 @@ function logIntegrityDriftWarning(hookId, drift) {
467
467
  }
468
468
  async function readInstalledPackageVersion(dir) {
469
469
  try {
470
- const raw = await fs$1.readFile(path.join(dir, "package.json"), "utf-8");
470
+ const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
471
471
  const parsed = JSON.parse(raw);
472
472
  return typeof parsed.version === "string" ? parsed.version : void 0;
473
473
  } catch {
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_DIR } from "./utils-B8zCe27d.js";
2
2
  import { f as hasBinary } from "./frontmatter-BngyYhS0.js";
3
3
  import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-1kCOFMNZ.js";
4
- import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CWne7yqK.js";
4
+ import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-BTsqd19h.js";
5
5
  import path from "node:path";
6
6
  //#region src/hooks/hooks-status.ts
7
7
  function resolveHookKey(entry) {
@@ -1,9 +1,9 @@
1
1
  import "./paths-tuenh9TL.js";
2
2
  import "./subsystem-G54saDcg.js";
3
3
  import "./utils-B8zCe27d.js";
4
- import { rf as describeImageWithModel } from "./reply-Cf5Mm7vB.js";
5
- import "./agent-scope-DmTcOjk4.js";
6
- import "./openclaw-root-B5jXk2td.js";
4
+ import { rf as describeImageWithModel } from "./reply-gX1XTS9Y.js";
5
+ import "./agent-scope-sd1-3XH0.js";
6
+ import "./openclaw-root-dlCz9toZ.js";
7
7
  import "./logger-BohkHL0S.js";
8
8
  import "./exec-CNtAq7Md.js";
9
9
  import "./github-copilot-token-Ff890Vmh.js";
@@ -11,16 +11,16 @@ import "./boolean-B938tROv.js";
11
11
  import "./env-CQxWwTMn.js";
12
12
  import "./env-overrides-BYyMsIvB.js";
13
13
  import "./registry-aHEgjCIQ.js";
14
- import "./skills-Jz-BSwRd.js";
14
+ import "./skills-vhlUaliH.js";
15
15
  import "./frontmatter-BngyYhS0.js";
16
- import "./plugins-om7vnHk0.js";
17
- import "./query-expansion-BNb6Vys6.js";
16
+ import "./plugins-BVbKGpQJ.js";
17
+ import "./query-expansion-AnOnkIqf.js";
18
18
  import "./redact-owRpqMhM.js";
19
- import "./path-alias-guards-BEqdGdn9.js";
20
- import "./fetch-CGW2R_wh.js";
19
+ import "./path-alias-guards-B6owPyQX.js";
20
+ import "./fetch-ggeyBJ4j.js";
21
21
  import "./errors-DNKaAVHN.js";
22
- import "./cmd-argv-BdNFwuhe.js";
23
- import "./restart-stale-pids-ZfbSMILU.js";
22
+ import "./cmd-argv-Dz5qUtqp.js";
23
+ import "./restart-stale-pids-B6E7QavX.js";
24
24
  import "./delivery-queue-B7zSt4zY.js";
25
25
  import "./paths-CfmKJcO5.js";
26
26
  import "./session-cost-usage-C2jrTKxW.js";
@@ -3,7 +3,7 @@ import "./paths-CNIc83Pn.js";
3
3
  import "./subsystem-Cr1MiLhx.js";
4
4
  import "./workspace-Bi8vpJN0.js";
5
5
  import "./logger-DCBlX1uz.js";
6
- import { qn as describeImageWithModel } from "./model-selection-CNRMBWfR.js";
6
+ import { qn as describeImageWithModel } from "./model-selection-Coo7zMJO.js";
7
7
  import "./github-copilot-token-BeFx3MLn.js";
8
8
  import "./boolean-C7Ct_klp.js";
9
9
  import "./fetch-BdTTF2z-.js";
package/dist/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
  import "./paths-tuenh9TL.js";
3
3
  import { A as theme, B as tryParseLogLevel, J as hasHelpOrVersion, K as getVerboseFlag, R as ALLOWED_LOG_LEVELS, W as getCommandPathWithRootOptions, Y as hasRootVersionAlias, d as visibleWidth, k as isRich, p as defaultRuntime, q as hasFlag, r as enableConsoleCapture, w as setVerbose } from "./subsystem-G54saDcg.js";
4
4
  import { T as toWhatsappJid, l as escapeRegExp, m as normalizeE164, n as assertWebChannel } from "./utils-B8zCe27d.js";
5
- import { Up as deriveSessionKey, Wp as resolveSessionKey, _p as loadSessionStore, bi as resolveCommitHash, cf as installUnhandledRejectionHandler, d_ as loadConfig, dv as VERSION, gv as loadDotEnv, nf as applyTemplate, t as getReplyFromConfig, vg as ensureBinary, yg as promptYesNo, yp as saveSessionStore } from "./reply-Cf5Mm7vB.js";
6
- import "./agent-scope-DmTcOjk4.js";
7
- import "./openclaw-root-B5jXk2td.js";
5
+ import { Up as deriveSessionKey, Wp as resolveSessionKey, _p as loadSessionStore, bi as resolveCommitHash, cf as installUnhandledRejectionHandler, d_ as loadConfig, dv as VERSION, gv as loadDotEnv, nf as applyTemplate, t as getReplyFromConfig, vg as ensureBinary, yg as promptYesNo, yp as saveSessionStore } from "./reply-gX1XTS9Y.js";
6
+ import "./agent-scope-sd1-3XH0.js";
7
+ import "./openclaw-root-dlCz9toZ.js";
8
8
  import "./logger-BohkHL0S.js";
9
9
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CNtAq7Md.js";
10
10
  import "./github-copilot-token-Ff890Vmh.js";
@@ -13,34 +13,34 @@ import "./boolean-B938tROv.js";
13
13
  import { r as normalizeEnv, t as isTruthyEnvValue } from "./env-CQxWwTMn.js";
14
14
  import "./env-overrides-BYyMsIvB.js";
15
15
  import "./registry-aHEgjCIQ.js";
16
- import "./skills-Jz-BSwRd.js";
16
+ import "./skills-vhlUaliH.js";
17
17
  import "./frontmatter-BngyYhS0.js";
18
- import "./plugins-om7vnHk0.js";
19
- import "./query-expansion-BNb6Vys6.js";
18
+ import "./plugins-BVbKGpQJ.js";
19
+ import "./query-expansion-AnOnkIqf.js";
20
20
  import "./redact-owRpqMhM.js";
21
- import "./path-alias-guards-BEqdGdn9.js";
22
- import "./fetch-CGW2R_wh.js";
21
+ import "./path-alias-guards-B6owPyQX.js";
22
+ import "./fetch-ggeyBJ4j.js";
23
23
  import { i as formatUncaughtError } from "./errors-DNKaAVHN.js";
24
- import { c as describePortOwner, l as ensurePortAvailable, s as PortInUseError, u as handlePortError } from "./cmd-argv-BdNFwuhe.js";
25
- import "./restart-stale-pids-ZfbSMILU.js";
24
+ import { c as describePortOwner, l as ensurePortAvailable, s as PortInUseError, u as handlePortError } from "./cmd-argv-Dz5qUtqp.js";
25
+ import "./restart-stale-pids-B6E7QavX.js";
26
26
  import "./delivery-queue-B7zSt4zY.js";
27
27
  import { l as resolveStorePath } from "./paths-CfmKJcO5.js";
28
28
  import "./session-cost-usage-C2jrTKxW.js";
29
29
  import "./prompt-style-DlcWUCNR.js";
30
30
  import { t as formatDocsLink } from "./links-BpKafJs4.js";
31
31
  import "./cli-utils-BSURvrmb.js";
32
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-D7txUcfH.js";
33
- import "./send-CHZ7WuOb.js";
34
- import "./session-CXOhppV3.js";
35
- import "./login-BLC4Op_m.js";
36
- import { t as createDefaultDeps } from "./deps-Cgw7M-k3.js";
32
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-B3yCvpab.js";
33
+ import "./send-hZxe8sP9.js";
34
+ import "./session-CndmPe2D.js";
35
+ import "./login-CQ5pGFeF.js";
36
+ import { t as createDefaultDeps } from "./deps-B6HgPp5e.js";
37
37
  import { t as isMainModule } from "./is-main-DzNjpBBb.js";
38
38
  import { t as ensureOpenClawCliOnPath } from "./path-env-_M4X1ggC.js";
39
39
  import { t as assertSupportedRuntime } from "./runtime-guard-C4h47dl7.js";
40
- import "./ports-CVD9jTxH.js";
41
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-BnNrq2_o.js";
42
- import "./plugin-registry-DrrKSvdi.js";
43
- import { n as resolveCliChannelOptions } from "./channel-options-CsQMEhUD.js";
40
+ import "./ports-CrZzXxTl.js";
41
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context--XQiK-Vv.js";
42
+ import "./plugin-registry-D1UVdXNl.js";
43
+ import { n as resolveCliChannelOptions } from "./channel-options-DR0IjcQw.js";
44
44
  import process$1 from "node:process";
45
45
  import { fileURLToPath } from "node:url";
46
46
  import { Command, InvalidArgumentError } from "commander";
@@ -495,11 +495,11 @@ function shouldBypassConfigGuard(commandPath) {
495
495
  return false;
496
496
  }
497
497
  function loadConfigGuardModule() {
498
- configGuardModulePromise ??= import("./config-guard-DXvConn_.js");
498
+ configGuardModulePromise ??= import("./config-guard-D0ly1tu3.js");
499
499
  return configGuardModulePromise;
500
500
  }
501
501
  function loadPluginRegistryModule() {
502
- pluginRegistryModulePromise ??= import("./plugin-registry-DrrKSvdi.js").then((n) => n.n);
502
+ pluginRegistryModulePromise ??= import("./plugin-registry-D1UVdXNl.js").then((n) => n.n);
503
503
  return pluginRegistryModulePromise;
504
504
  }
505
505
  function getRootCommand(command) {
@@ -1,8 +1,8 @@
1
1
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel, p as resolveGatewayWindowsTaskName, r as GATEWAY_SERVICE_MARKER } from "./constants-D-pfuSKJ.js";
2
2
  import { r as resolveHomeDir } from "./runtime-parse-l56zRsXX.js";
3
- import { i as execSchtasks } from "./service-RXVSlLiU.js";
3
+ import { i as execSchtasks } from "./service-LNrViUVb.js";
4
4
  import path from "node:path";
5
- import fs from "node:fs/promises";
5
+ import fsPromises from "node:fs/promises";
6
6
  //#region src/daemon/inspect.ts
7
7
  const EXTRA_MARKERS = [
8
8
  "openclaw",
@@ -71,14 +71,14 @@ function isLegacyLabel(label) {
71
71
  }
72
72
  async function readDirEntries(dir) {
73
73
  try {
74
- return await fs.readdir(dir);
74
+ return await fsPromises.readdir(dir);
75
75
  } catch {
76
76
  return [];
77
77
  }
78
78
  }
79
79
  async function readUtf8File(filePath) {
80
80
  try {
81
- return await fs.readFile(filePath, "utf8");
81
+ return await fsPromises.readFile(filePath, "utf8");
82
82
  } catch {
83
83
  return null;
84
84
  }
@@ -1,9 +1,9 @@
1
- import { f as isNotFoundPathError, p as isPathInside, s as sameFileIdentity } from "./openclaw-root-B5jXk2td.js";
2
- import { J as openFileWithinRoot, K as copyFileWithinRoot, W as SafeOpenError, Y as openWritableFileWithinRoot } from "./query-expansion-BNb6Vys6.js";
3
- import { n as resolveSafeBaseDir } from "./path-safety-TRhr8lhQ.js";
1
+ import { f as isNotFoundPathError, p as isPathInside, s as sameFileIdentity } from "./openclaw-root-dlCz9toZ.js";
2
+ import { J as openFileWithinRoot, K as copyFileWithinRoot, W as SafeOpenError, Y as openWritableFileWithinRoot } from "./query-expansion-AnOnkIqf.js";
3
+ import { n as resolveSafeBaseDir } from "./path-safety-DN7L46Yk.js";
4
4
  import { constants } from "node:fs";
5
5
  import path from "node:path";
6
- import fs$1 from "node:fs/promises";
6
+ import fsPromises from "node:fs/promises";
7
7
  import { createHash, randomUUID } from "node:crypto";
8
8
  import { pipeline } from "node:stream/promises";
9
9
  import { Readable, Transform } from "node:stream";
@@ -55,10 +55,10 @@ function symlinkTraversalError$1(originalPath) {
55
55
  return new ArchiveSecurityError("destination-symlink-traversal", `${ERROR_ARCHIVE_ENTRY_TRAVERSES_SYMLINK}: ${originalPath}`);
56
56
  }
57
57
  async function prepareArchiveDestinationDir(destDir) {
58
- const stat = await fs$1.lstat(destDir);
58
+ const stat = await fsPromises.lstat(destDir);
59
59
  if (stat.isSymbolicLink()) throw new ArchiveSecurityError("destination-symlink", "archive destination is a symlink");
60
60
  if (!stat.isDirectory()) throw new ArchiveSecurityError("destination-not-directory", "archive destination is not a directory");
61
- return await fs$1.realpath(destDir);
61
+ return await fsPromises.realpath(destDir);
62
62
  }
63
63
  async function assertNoSymlinkTraversal(params) {
64
64
  const parts = params.relPath.split(/[\\/]+/).filter(Boolean);
@@ -67,7 +67,7 @@ async function assertNoSymlinkTraversal(params) {
67
67
  current = path.join(current, part);
68
68
  let stat;
69
69
  try {
70
- stat = await fs$1.lstat(current);
70
+ stat = await fsPromises.lstat(current);
71
71
  } catch (err) {
72
72
  if (isNotFoundPathError(err)) continue;
73
73
  throw err;
@@ -78,7 +78,7 @@ async function assertNoSymlinkTraversal(params) {
78
78
  async function assertResolvedInsideDestination(params) {
79
79
  let resolved;
80
80
  try {
81
- resolved = await fs$1.realpath(params.targetPath);
81
+ resolved = await fsPromises.realpath(params.targetPath);
82
82
  } catch (err) {
83
83
  if (isNotFoundPathError(err)) return;
84
84
  throw err;
@@ -92,7 +92,7 @@ async function prepareArchiveOutputPath(params) {
92
92
  originalPath: params.originalPath
93
93
  });
94
94
  if (params.isDirectory) {
95
- await fs$1.mkdir(params.outPath, { recursive: true });
95
+ await fsPromises.mkdir(params.outPath, { recursive: true });
96
96
  await assertResolvedInsideDestination({
97
97
  destinationRealDir: params.destinationRealDir,
98
98
  targetPath: params.outPath,
@@ -101,7 +101,7 @@ async function prepareArchiveOutputPath(params) {
101
101
  return;
102
102
  }
103
103
  const parentDir = path.dirname(params.outPath);
104
- await fs$1.mkdir(parentDir, { recursive: true });
104
+ await fsPromises.mkdir(parentDir, { recursive: true });
105
105
  await assertResolvedInsideDestination({
106
106
  destinationRealDir: params.destinationRealDir,
107
107
  targetPath: parentDir,
@@ -115,14 +115,14 @@ async function applyStagedEntryMode(params) {
115
115
  targetPath: destinationPath,
116
116
  originalPath: params.originalPath
117
117
  });
118
- if (params.mode !== 0) await fs$1.chmod(destinationPath, params.mode).catch(() => void 0);
118
+ if (params.mode !== 0) await fsPromises.chmod(destinationPath, params.mode).catch(() => void 0);
119
119
  }
120
120
  async function withStagedArchiveDestination(params) {
121
- const stagingDir = await fs$1.mkdtemp(path.join(params.destinationRealDir, ".openclaw-archive-"));
121
+ const stagingDir = await fsPromises.mkdtemp(path.join(params.destinationRealDir, ".openclaw-archive-"));
122
122
  try {
123
123
  return await params.run(stagingDir);
124
124
  } finally {
125
- await fs$1.rm(stagingDir, {
125
+ await fsPromises.rm(stagingDir, {
126
126
  recursive: true,
127
127
  force: true
128
128
  }).catch(() => void 0);
@@ -130,13 +130,13 @@ async function withStagedArchiveDestination(params) {
130
130
  }
131
131
  async function mergeExtractedTreeIntoDestination(params) {
132
132
  const walk = async (currentSourceDir) => {
133
- const entries = await fs$1.readdir(currentSourceDir, { withFileTypes: true });
133
+ const entries = await fsPromises.readdir(currentSourceDir, { withFileTypes: true });
134
134
  for (const entry of entries) {
135
135
  const sourcePath = path.join(currentSourceDir, entry.name);
136
136
  const relPath = path.relative(params.sourceDir, sourcePath);
137
137
  const originalPath = relPath.split(path.sep).join("/");
138
138
  const destinationPath = path.join(params.destinationDir, relPath);
139
- const sourceStat = await fs$1.lstat(sourcePath);
139
+ const sourceStat = await fsPromises.lstat(sourcePath);
140
140
  if (sourceStat.isSymbolicLink()) throw symlinkTraversalError$1(originalPath);
141
141
  if (sourceStat.isDirectory()) {
142
142
  await prepareArchiveOutputPath({
@@ -204,9 +204,9 @@ function resolveArchiveKind(filePath) {
204
204
  async function resolvePackedRootDir(extractDir) {
205
205
  const direct = path.join(extractDir, "package");
206
206
  try {
207
- if ((await fs$1.stat(direct)).isDirectory()) return direct;
207
+ if ((await fsPromises.stat(direct)).isDirectory()) return direct;
208
208
  } catch {}
209
- const dirs = (await fs$1.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
209
+ const dirs = (await fsPromises.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
210
210
  if (dirs.length !== 1) throw new Error(`unexpected archive layout (dirs: ${dirs.join(", ")})`);
211
211
  const onlyDir = dirs[0];
212
212
  if (!onlyDir) throw new Error("unexpected archive layout (no package dir found)");
@@ -291,12 +291,12 @@ async function openZipOutputFile(params) {
291
291
  async function cleanupPartialRegularFile(filePath) {
292
292
  let stat;
293
293
  try {
294
- stat = await fs$1.lstat(filePath);
294
+ stat = await fsPromises.lstat(filePath);
295
295
  } catch (err) {
296
296
  if (isNotFoundPathError(err)) return;
297
297
  throw err;
298
298
  }
299
- if (stat.isFile()) await fs$1.unlink(filePath).catch(() => void 0);
299
+ if (stat.isFile()) await fsPromises.unlink(filePath).catch(() => void 0);
300
300
  }
301
301
  function buildArchiveAtomicTempPath(targetPath) {
302
302
  return path.join(path.dirname(targetPath), `.${path.basename(targetPath)}.${process.pid}.${randomUUID()}.tmp`);
@@ -353,20 +353,20 @@ async function writeZipFileEntry(params) {
353
353
  let handleClosedByStream = false;
354
354
  try {
355
355
  tempPath = buildArchiveAtomicTempPath(destinationPath);
356
- tempHandle = await fs$1.open(tempPath, OPEN_WRITE_CREATE_FLAGS, targetMode || 438);
356
+ tempHandle = await fsPromises.open(tempPath, OPEN_WRITE_CREATE_FLAGS, targetMode || 438);
357
357
  const writable = tempHandle.createWriteStream();
358
358
  writable.once("close", () => {
359
359
  handleClosedByStream = true;
360
360
  });
361
361
  await pipeline(readable, createExtractBudgetTransform({ onChunkBytes: params.budget.addBytes }), writable);
362
- tempStat = await fs$1.stat(tempPath);
362
+ tempStat = await fsPromises.stat(tempPath);
363
363
  if (!tempStat) throw new Error("zip temp write did not produce file metadata");
364
364
  if (!handleClosedByStream) {
365
365
  await tempHandle.close().catch(() => void 0);
366
366
  handleClosedByStream = true;
367
367
  }
368
368
  tempHandle = null;
369
- await fs$1.rename(tempPath, destinationPath);
369
+ await fsPromises.rename(tempPath, destinationPath);
370
370
  tempPath = null;
371
371
  const verifiedPath = await verifyZipWriteResult({
372
372
  destinationRealDir: params.destinationRealDir,
@@ -375,10 +375,10 @@ async function writeZipFileEntry(params) {
375
375
  });
376
376
  if (typeof params.entry.unixPermissions === "number") {
377
377
  const mode = params.entry.unixPermissions & 511;
378
- if (mode !== 0) await fs$1.chmod(verifiedPath, mode).catch(() => void 0);
378
+ if (mode !== 0) await fsPromises.chmod(verifiedPath, mode).catch(() => void 0);
379
379
  }
380
380
  } catch (err) {
381
- if (tempPath) await fs$1.rm(tempPath, { force: true }).catch(() => void 0);
381
+ if (tempPath) await fsPromises.rm(tempPath, { force: true }).catch(() => void 0);
382
382
  else await cleanupPartialRegularFile(destinationPath).catch(() => void 0);
383
383
  if (err instanceof SafeOpenError) throw symlinkTraversalError(params.entry.name);
384
384
  throw err;
@@ -389,8 +389,8 @@ async function writeZipFileEntry(params) {
389
389
  async function extractZip(params) {
390
390
  const limits = resolveExtractLimits(params.limits);
391
391
  const destinationRealDir = await prepareArchiveDestinationDir(params.destDir);
392
- if ((await fs$1.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
393
- const buffer = await fs$1.readFile(params.archivePath);
392
+ if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
393
+ const buffer = await fsPromises.readFile(params.archivePath);
394
394
  const zip = await JSZip.loadAsync(buffer);
395
395
  const entries = Object.values(zip.files);
396
396
  const strip = Math.max(0, Math.floor(params.stripComponents ?? 0));
@@ -464,7 +464,7 @@ async function extractArchive(params) {
464
464
  if (kind === "tar") {
465
465
  await withTimeout((async () => {
466
466
  const limits = resolveExtractLimits(params.limits);
467
- if ((await fs$1.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
467
+ if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
468
468
  const destinationRealDir = await prepareArchiveDestinationDir(params.destDir);
469
469
  await withStagedArchiveDestination({
470
470
  destinationRealDir,
@@ -509,14 +509,14 @@ async function extractArchive(params) {
509
509
  }
510
510
  async function fileExists(filePath) {
511
511
  try {
512
- await fs$1.stat(filePath);
512
+ await fsPromises.stat(filePath);
513
513
  return true;
514
514
  } catch {
515
515
  return false;
516
516
  }
517
517
  }
518
518
  async function readJsonFile(filePath) {
519
- const raw = await fs$1.readFile(filePath, "utf-8");
519
+ const raw = await fsPromises.readFile(filePath, "utf-8");
520
520
  return JSON.parse(raw);
521
521
  }
522
522
  //#endregion
@@ -559,13 +559,13 @@ async function assertCanonicalPathWithinBase(params) {
559
559
  const baseDir = path.resolve(params.baseDir);
560
560
  const candidatePath = path.resolve(params.candidatePath);
561
561
  if (!isPathInside(baseDir, candidatePath)) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
562
- const baseLstat = await fs$1.lstat(baseDir);
562
+ const baseLstat = await fsPromises.lstat(baseDir);
563
563
  if (!baseLstat.isDirectory() || baseLstat.isSymbolicLink()) throw new Error(`Invalid ${params.boundaryLabel}: base directory must be a real directory`);
564
- const baseRealPath = await fs$1.realpath(baseDir);
564
+ const baseRealPath = await fsPromises.realpath(baseDir);
565
565
  const validateDirectory = async (dirPath) => {
566
- const dirLstat = await fs$1.lstat(dirPath);
566
+ const dirLstat = await fsPromises.lstat(dirPath);
567
567
  if (!dirLstat.isDirectory() || dirLstat.isSymbolicLink()) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
568
- if (!isPathInside(baseRealPath, await fs$1.realpath(dirPath))) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
568
+ if (!isPathInside(baseRealPath, await fsPromises.realpath(dirPath))) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
569
569
  };
570
570
  try {
571
571
  await validateDirectory(candidatePath);
@@ -1,13 +1,13 @@
1
1
  import { t as CONFIG_DIR, y as resolveUserPath } from "./utils-B8zCe27d.js";
2
2
  import { _ as validateRegistryNpmSpec } from "./env-overrides-BYyMsIvB.js";
3
3
  import { n as isPathInside, t as extensionUsesSkippedScannerPath } from "./scan-paths-B5Yx6Npu.js";
4
- import { C as resolvePackageExtensionEntries, S as loadPluginManifest, _ as discoverOpenClawPlugins } from "./skills-Jz-BSwRd.js";
5
- import { Q as writeFileFromPathWithinRoot } from "./query-expansion-BNb6Vys6.js";
6
- import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, r as safeDirName, u as resolveArchiveKind } from "./install-safe-path-BvwKN_9n.js";
7
- import { a as installPackageDir, c as resolveTimedInstallModeOptions, d as buildNpmResolutionFields, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-DI_0G-Ju.js";
8
- import { t as scanDirectoryWithSummary } from "./skill-scanner-BzjuMMKN.js";
4
+ import { C as resolvePackageExtensionEntries, S as loadPluginManifest, _ as discoverOpenClawPlugins } from "./skills-vhlUaliH.js";
5
+ import { Q as writeFileFromPathWithinRoot } from "./query-expansion-AnOnkIqf.js";
6
+ import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, r as safeDirName, u as resolveArchiveKind } from "./install-safe-path-CnIWvuEU.js";
7
+ import { a as installPackageDir, c as resolveTimedInstallModeOptions, d as buildNpmResolutionFields, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-C7ntuYO8.js";
8
+ import { t as scanDirectoryWithSummary } from "./skill-scanner-DaUNX-tW.js";
9
9
  import path from "node:path";
10
- import fs from "node:fs/promises";
10
+ import fsPromises from "node:fs/promises";
11
11
  //#region src/plugins/install.ts
12
12
  const MISSING_EXTENSIONS_ERROR = "package.json missing openclaw.extensions; update the plugin package to include openclaw.extensions (for example [\"./dist/index.js\"]). See https://docs.openclaw.ai/help/troubleshooting#plugin-install-fails-with-missing-openclaw-extensions";
13
13
  const PLUGIN_INSTALL_ERROR_CODE = {
@@ -236,7 +236,7 @@ async function installPluginFromDir(params) {
236
236
  ok: false,
237
237
  error: `directory not found: ${dirPath}`
238
238
  };
239
- if (!(await fs.stat(dirPath)).isDirectory()) return {
239
+ if (!(await fsPromises.stat(dirPath)).isDirectory()) return {
240
240
  ok: false,
241
241
  error: `not a directory: ${dirPath}`
242
242
  };
@@ -253,7 +253,7 @@ async function installPluginFromFile(params) {
253
253
  error: `file not found: ${filePath}`
254
254
  };
255
255
  const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
256
- await fs.mkdir(extensionsDir, { recursive: true });
256
+ await fsPromises.mkdir(extensionsDir, { recursive: true });
257
257
  const pluginId = path.basename(filePath, path.extname(filePath)) || "plugin";
258
258
  const pluginIdError = validatePluginId(pluginId);
259
259
  if (pluginIdError) return {
@@ -1,4 +1,4 @@
1
- import { D_ as isCanonicalDottedDecimalIPv4, gg as getTailnetHostname, j_ as parseCanonicalIpAddress, k_ as isIpv6Address } from "./reply-Cf5Mm7vB.js";
1
+ import { D_ as isCanonicalDottedDecimalIPv4, gg as getTailnetHostname, j_ as parseCanonicalIpAddress, k_ as isIpv6Address } from "./reply-gX1XTS9Y.js";
2
2
  //#region src/gateway/gateway-config-prompts.shared.ts
3
3
  const TAILSCALE_EXPOSURE_OPTIONS = [
4
4
  {
@@ -1,4 +1,4 @@
1
- import { pv as sanitizeTerminalText } from "./reply-Cf5Mm7vB.js";
1
+ import { pv as sanitizeTerminalText } from "./reply-gX1XTS9Y.js";
2
2
  //#region src/config/issue-format.ts
3
3
  function normalizeConfigIssuePath(path) {
4
4
  if (typeof path !== "string") return "<root>";