@multiplytech/openclaw 2026.2.15-pairing-code.4 → 2026.2.15-pairing-code.5

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 (182) hide show
  1. package/dist/{accounts-CyxQBpl8.js → accounts-Bu2DSNpQ.js} +1 -1
  2. package/dist/{accounts-BvmssTEF.js → accounts-DyinIlq4.js} +1 -1
  3. package/dist/{active-listener-BruG-udz.js → active-listener-BIBYF9eG.js} +1 -1
  4. package/dist/{agent-D0LfsEPF.js → agent-CHHEtTV9.js} +2 -2
  5. package/dist/{agent-BxxBd9wX.js → agent-Zea8l0V4.js} +2 -2
  6. package/dist/{agent-scope-DUn-XVYs.js → agent-scope-BIw4Bz2L.js} +3 -3
  7. package/dist/{agents-jAnRMd-A.js → agents-C3RVyjuy.js} +2 -2
  8. package/dist/{audio-preflight-CbR1q2CT.js → audio-preflight-BHSwqB70.js} +17 -17
  9. package/dist/{auth-choice-B6AdPtCu.js → auth-choice-BL4n2N2D.js} +1 -1
  10. package/dist/{auth-choice-GrNENivg.js → auth-choice-Uz72AGbr.js} +1 -1
  11. package/dist/{banner-D3tgjbUi.js → banner-SSVP1FWh.js} +1 -1
  12. package/dist/build-info.json +3 -3
  13. package/dist/bundled/boot-md/handler.js +38 -38
  14. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  15. package/dist/bundled/command-logger/handler.js +1 -1
  16. package/dist/bundled/session-memory/handler.js +32 -32
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-activity--HqvQlN3.js → channel-activity-C4rZNocg.js} +1 -1
  19. package/dist/{channel-options-CgdgqIte.js → channel-options-BZj8yDQM.js} +1 -1
  20. package/dist/{channel-options-C0ayB7mx.js → channel-options-CW6tO8o9.js} +1 -1
  21. package/dist/{channel-web-BTTW7H_d.js → channel-web-URuEiSie.js} +2 -2
  22. package/dist/{channels-cli-p5hPpQzH.js → channels-cli-BxhcVdVg.js} +4 -4
  23. package/dist/{channels-cli-BcDsE2LA.js → channels-cli-DNfdNX1p.js} +4 -4
  24. package/dist/{chrome-BtogRifc.js → chrome-DlM4kwMc.js} +18 -18
  25. package/dist/{cli-Oxxb4axp.js → cli-BXBLYStc.js} +1 -1
  26. package/dist/{cli-Cwzdze-z.js → cli-BbNg2Udd.js} +1 -1
  27. package/dist/{command-registry-C8q1jb3h.js → command-registry-BliDXGVX.js} +9 -9
  28. package/dist/{common-BJE3S8zA.js → common-BB2PeD4P.js} +2 -2
  29. package/dist/{completion-cli-CIcsx6ic.js → completion-cli-BCKnCxmp.js} +1 -1
  30. package/dist/{completion-cli-DQd6XSG4.js → completion-cli-Cu-1Snpp.js} +2 -2
  31. package/dist/{config-CYlbDcBt.js → config-BA8Xs1ek.js} +34 -34
  32. package/dist/{config-cli-BmW3yfH6.js → config-cli-CVnBnw5y.js} +1 -1
  33. package/dist/{config-cli-CZLDgS2E.js → config-cli-D5ZKAfqw.js} +1 -1
  34. package/dist/{configure-CRaYQ6hS.js → configure-Dg3rt98q.js} +3 -3
  35. package/dist/{configure-B0_p6Z1n.js → configure-DgvISeIJ.js} +3 -3
  36. package/dist/{deliver-BwXnLuWH.js → deliver-CV4a0MBa.js} +16 -16
  37. package/dist/{deps-i6fBS1Dw.js → deps-6dSUgps7.js} +1 -1
  38. package/dist/{doctor-AUivq-af.js → doctor-BUO6pA-b.js} +4 -4
  39. package/dist/{doctor-Cs7rfmA-.js → doctor-CFwtoIem.js} +4 -4
  40. package/dist/{doctor-completion-CtBAIy0Z.js → doctor-completion-Bnz5cgZw.js} +1 -1
  41. package/dist/{doctor-completion-C2PR6GJF.js → doctor-completion-DNqw5VHX.js} +1 -1
  42. package/dist/entry.js +1 -1
  43. package/dist/{exec-C_bNT00b.js → exec-C9rZpEqA.js} +17 -17
  44. package/dist/extensionAPI.js +1 -1
  45. package/dist/{fetch-mr22CaT4.js → fetch-Dyb5pqye.js} +2 -2
  46. package/dist/{frontmatter-BetN20QN.js → frontmatter-Bk_vZq47.js} +2 -2
  47. package/dist/{gateway-cli-M8r3XcpJ.js → gateway-cli-BDf6AIk0.js} +9 -9
  48. package/dist/{gateway-cli-BgGnL3cE.js → gateway-cli-n2Z2-dmf.js} +9 -9
  49. package/dist/{github-copilot-token-U5JrmjNt.js → github-copilot-token-BXEGgIt5.js} +7 -7
  50. package/dist/{health-BqoIIu1u.js → health-5OQ86AsB.js} +2 -2
  51. package/dist/{health-shfUNbPM.js → health-BLNgO5Lg.js} +2 -2
  52. package/dist/{heartbeat-visibility-BEMg5PJB.js → heartbeat-visibility-kOc5LBl6.js} +1 -1
  53. package/dist/{heartbeat-visibility-B_kubgRp.js → heartbeat-visibility-pSnRANG0.js} +1 -1
  54. package/dist/{hooks-cli-99NPDBK1.js → hooks-cli-8vqegwLk.js} +2 -2
  55. package/dist/{hooks-cli-ec5DFn5g.js → hooks-cli-BQvnwV0N.js} +2 -2
  56. package/dist/{image-DN3RgnPr.js → image-DVTZYmDL.js} +4 -4
  57. package/dist/{image-ops-CKPJXWk4.js → image-ops-7EDUjzca.js} +9 -9
  58. package/dist/index.js +9 -9
  59. package/dist/{ir-C-hSqOPD.js → ir-eyTjTBlP.js} +6 -6
  60. package/dist/llm-slug-generator.js +32 -32
  61. package/dist/{login-BFkQgAbM.js → login-BQj4vJAc.js} +1 -1
  62. package/dist/{login-CwQj2jUX.js → login-Bub9YVmf.js} +1 -1
  63. package/dist/{login-CmhHGO4I.js → login-CKe4hvQG.js} +1 -1
  64. package/dist/{login-Dydm4XDa.js → login-DfLZ1ase.js} +3 -3
  65. package/dist/{login-qr-CF5T7Eew.js → login-qr-5lWL8Guw.js} +1 -1
  66. package/dist/{login-qr-BrIxb_5N.js → login-qr-C9eD5pGf.js} +8 -8
  67. package/dist/{login-qr-CEOlIdRe.js → login-qr-Cq7e7xsV.js} +1 -1
  68. package/dist/{login-qr-B_NTKK4T.js → login-qr-MG7FhnKs.js} +1 -1
  69. package/dist/{manager-Ec86Dapd.js → manager-ihPMEKim.js} +10 -10
  70. package/dist/{model-auth-COYibYBO.js → model-auth-BBAJ-iuC.js} +8 -8
  71. package/dist/{models-D688pDKn.js → models-D9P-iylf.js} +2 -2
  72. package/dist/{models-cli-CcHjNOe3.js → models-cli-BhTQK54t.js} +3 -3
  73. package/dist/{models-cli-GWtfGvki.js → models-cli-DCKEfmuF.js} +2 -2
  74. package/dist/{onboard-BmB1TAqN.js → onboard-DGIC3v2L.js} +2 -2
  75. package/dist/{onboard-channels-BATBIQiN.js → onboard-channels-BxI6pALE.js} +1 -1
  76. package/dist/{onboard-channels-BeXdUwL0.js → onboard-channels-yzWQkeRm.js} +1 -1
  77. package/dist/{onboard-C5_njUCe.js → onboard-ovaqc36s.js} +2 -2
  78. package/dist/{onboarding-txZtcVMA.js → onboarding-C6_GQJ3F.js} +3 -3
  79. package/dist/{onboarding-Cjbb0fRA.js → onboarding-ClCcjvNg.js} +3 -3
  80. package/dist/{onboarding.finalize-BI8zTyGF.js → onboarding.finalize-BhPaoWku.js} +6 -6
  81. package/dist/{onboarding.finalize-CSj3Rf0J.js → onboarding.finalize-CXti-VnH.js} +5 -5
  82. package/dist/{outbound-C8YnTFjo.js → outbound-N8cZjkHg.js} +5 -5
  83. package/dist/{outbound-attachment-C8Qf4dh8.js → outbound-attachment-BAu7a9Bk.js} +2 -2
  84. package/dist/{outbound-send-deps-BCi2C-Sb.js → outbound-send-deps-CrIPn6Gv.js} +1 -1
  85. package/dist/{paths-Bbik2tb_.js → paths-CMYSfM3T.js} +2 -2
  86. package/dist/{paths-CkkDESQ2.js → paths-CyR9Pa1R.js} +5 -5
  87. package/dist/{pi-auth-json-MhfZXNOP.js → pi-auth-json-BX0whbu8.js} +6 -6
  88. package/dist/{pi-embedded-wVlKSjNK.js → pi-embedded-B16QA3OJ.js} +120 -120
  89. package/dist/{pi-embedded-8ou24X6D.js → pi-embedded-BhSNemDy.js} +4 -4
  90. package/dist/{pi-embedded-helpers-DmwtjJVo.js → pi-embedded-helpers-DHT11gwA.js} +48 -48
  91. package/dist/{plugin-registry-N4ZFQdQ9.js → plugin-registry-7l0uWKmB.js} +1 -1
  92. package/dist/{plugin-registry-D_bG1PT_.js → plugin-registry-BMw_9a49.js} +1 -1
  93. package/dist/plugin-sdk/{active-listener-CkyAenz6.js → active-listener-CFLZdKRQ.js} +2 -2
  94. package/dist/plugin-sdk/{agent-scope-DWZdK6Cr.js → agent-scope-ip6rBrUD.js} +1 -1
  95. package/dist/plugin-sdk/{audio-preflight-BzSvof9i.js → audio-preflight-C0NlyreL.js} +12 -12
  96. package/dist/plugin-sdk/{channel-web-BXr_pHKk.js → channel-web-B715iUQW.js} +11 -11
  97. package/dist/plugin-sdk/{chrome-BLYh1Ek9.js → chrome-OZ5Ge8PR.js} +1 -1
  98. package/dist/plugin-sdk/{common-STTVkT-Z.js → common-pKa0kElY.js} +2 -2
  99. package/dist/plugin-sdk/{config-iUJxJaTT.js → config-DelXkt58.js} +8 -8
  100. package/dist/plugin-sdk/{deliver-Bkdn7hYJ.js → deliver-ebYNQy_5.js} +6 -6
  101. package/dist/plugin-sdk/{exec-9HIVkGqi.js → exec-C5lqk9X4.js} +2 -2
  102. package/dist/plugin-sdk/{fetch-DjHoyhHv.js → fetch-Cw_7QfME.js} +2 -2
  103. package/dist/plugin-sdk/{image-DolmBtru.js → image-2KL1DOmN.js} +4 -4
  104. package/dist/plugin-sdk/{image-ops-DvO68zWD.js → image-ops-zm4O3fkk.js} +4 -4
  105. package/dist/plugin-sdk/index.js +23 -23
  106. package/dist/plugin-sdk/{ir-D6TOa8wy.js → ir-BEwiHV7R.js} +4 -4
  107. package/dist/plugin-sdk/{login-CGRU_9Nh.js → login-BPMBJ2ja.js} +3 -3
  108. package/dist/plugin-sdk/{login-qr-D6D-dPg-.js → login-qr-gTXEo28v.js} +5 -5
  109. package/dist/plugin-sdk/{manager-DSG4npLd.js → manager-Cqyl7HDP.js} +5 -5
  110. package/dist/plugin-sdk/{model-selection-BfTuBvS4.js → model-selection-DHMRsTNB.js} +2 -2
  111. package/dist/plugin-sdk/{outbound-BuWEi6UJ.js → outbound-DT2nH6dY.js} +4 -4
  112. package/dist/plugin-sdk/{paths-6C0IeDIg.js → paths-wRVSwmkX.js} +1 -1
  113. package/dist/plugin-sdk/{pi-auth-json-CdSpUvvH.js → pi-auth-json-XTF0mVQ6.js} +3 -3
  114. package/dist/plugin-sdk/{pi-embedded-helpers-rNIrRqeN.js → pi-embedded-helpers-C3_rwWkJ.js} +13 -13
  115. package/dist/plugin-sdk/{pw-ai-DHGDCfpy.js → pw-ai-BYr2wRwE.js} +2 -2
  116. package/dist/plugin-sdk/{qmd-manager-D0FXZkrS.js → qmd-manager-CY7j7J3V.js} +4 -4
  117. package/dist/plugin-sdk/{reply-BvOTUN2t.js → reply-BCjRFrxS.js} +35 -35
  118. package/dist/plugin-sdk/{runner-CaaUwzMJ.js → runner-DxPwS4ed.js} +7 -7
  119. package/dist/plugin-sdk/{session-Cjs4HuZk.js → session-CMKy7hKx.js} +3 -3
  120. package/dist/plugin-sdk/{sqlite-QNHsO4bW.js → sqlite-CKrK6KKr.js} +2 -2
  121. package/dist/plugin-sdk/{tool-images-BuctNDly.js → tool-images-C4GaQjrF.js} +2 -2
  122. package/dist/plugin-sdk/web-Dez1c43V.js +30 -0
  123. package/dist/plugin-sdk/{whatsapp-actions-3adtwpVJ.js → whatsapp-actions-C5T64qvX.js} +11 -11
  124. package/dist/{plugins-cli-D2KHK9jR.js → plugins-cli-BsfnFYsL.js} +2 -2
  125. package/dist/{plugins-cli-CFOLjXM-.js → plugins-cli-CNB8Yt37.js} +2 -2
  126. package/dist/{program-B9I5xkOF.js → program-CAd9g5sW.js} +7 -7
  127. package/dist/{program-context-C3C2WLNP.js → program-context-_ii-SbA0.js} +17 -17
  128. package/dist/{provider-auth-helpers-DYPDXQQP.js → provider-auth-helpers-CCnbp35r.js} +1 -1
  129. package/dist/{provider-auth-helpers-DIPDa8Lw.js → provider-auth-helpers-D_lWKYII.js} +1 -1
  130. package/dist/{pw-ai-BCyIw4W4.js → pw-ai-xh9cPTDX.js} +3 -3
  131. package/dist/{qmd-manager-CgC5sB-T.js → qmd-manager-DtmZgEoS.js} +6 -6
  132. package/dist/{register.agent-BedOGhk-.js → register.agent-BSdFQsCq.js} +7 -7
  133. package/dist/{register.agent-JL4_r2Jb.js → register.agent-dQKDHNyK.js} +6 -6
  134. package/dist/{register.configure-U45T1EJ-.js → register.configure-BN9zCFxE.js} +6 -6
  135. package/dist/{register.configure-D_-8trFJ.js → register.configure-Bk2X8wFI.js} +6 -6
  136. package/dist/{register.maintenance-TMdlbc45.js → register.maintenance-COHaTp3w.js} +8 -8
  137. package/dist/{register.maintenance-BNhGCK92.js → register.maintenance-d-1O5gtF.js} +7 -7
  138. package/dist/{register.message-BdQletmJ.js → register.message-CfNc9leD.js} +3 -3
  139. package/dist/{register.message-DKw_hGiP.js → register.message-DUrPTA8L.js} +3 -3
  140. package/dist/{register.onboard-DVHlSfZa.js → register.onboard-DtyoTIKL.js} +4 -4
  141. package/dist/{register.onboard-D5LHgdqV.js → register.onboard-aCV1lrPF.js} +4 -4
  142. package/dist/{register.setup-CAVftQvz.js → register.setup-Bb73DdhE.js} +4 -4
  143. package/dist/{register.setup-Dfhxwzgk.js → register.setup-BgyHWmCs.js} +4 -4
  144. package/dist/{register.status-health-sessions-YCJQ83my.js → register.status-health-sessions-DLABBIKC.js} +3 -3
  145. package/dist/{register.status-health-sessions-ixyM5rDz.js → register.status-health-sessions-OOi_L5uN.js} +3 -3
  146. package/dist/{register.subclis-D-kjKwwz.js → register.subclis-CDZvm5LU.js} +9 -9
  147. package/dist/{reply-d6yV4wB_.js → reply-D9JN_rwA.js} +4 -4
  148. package/dist/{retry-D1bxhFWp.js → retry-B0RhK9tX.js} +1 -1
  149. package/dist/{run-main-D5duEqg3.js → run-main-BnvBDAQk.js} +14 -14
  150. package/dist/{runner-DGYLHL8R.js → runner-nMdrG8eK.js} +7 -7
  151. package/dist/{send-z4yxEOnF.js → send-BMQRcdbF.js} +4 -4
  152. package/dist/{send-CKSrJ7se.js → send-BRIcpOAj.js} +5 -5
  153. package/dist/{send-Df7eglyR.js → send-CNibEQip.js} +6 -6
  154. package/dist/{send-DjP-Miy_.js → send-CWOrEtrR.js} +7 -7
  155. package/dist/{send-DULTJ0oK.js → send-DzhCsWw9.js} +7 -7
  156. package/dist/{server-node-events-BE6fD68d.js → server-node-events-5_nsFo-O.js} +3 -3
  157. package/dist/{server-node-events-C51Bayv9.js → server-node-events-BHXuG6Pd.js} +3 -3
  158. package/dist/{session-B5I8E41_.js → session-CP0yShzI.js} +1 -1
  159. package/dist/{session-2uX9t1PO.js → session-C__ZeV6y.js} +7 -7
  160. package/dist/{session-Bu5MF744.js → session-sO1d78EF.js} +1 -1
  161. package/dist/{session-ZppYapGg.js → session-zCwG7NHS.js} +1 -1
  162. package/dist/{sqlite-CBMbuGLX.js → sqlite-Bfoh6OgV.js} +4 -4
  163. package/dist/{status-8g-vfjfP.js → status-CQB4pZ8j.js} +2 -2
  164. package/dist/{status-NfZ6FkuQ.js → status-Cuj1dGBb.js} +2 -2
  165. package/dist/{status-BRNeaZhV.js → status-Dnim-lZW.js} +1 -1
  166. package/dist/{status-D0P0XQqw.js → status-TVzePU0v.js} +1 -1
  167. package/dist/{store-m4I2z_5t.js → store-B6Y3aOaY.js} +2 -2
  168. package/dist/{subagent-registry-DJBVFvb4.js → subagent-registry-2rHQ_z7c.js} +4 -4
  169. package/dist/{tables-7DihLyDw.js → tables-BhgdJIJu.js} +1 -1
  170. package/dist/{tool-images-hzyBQ0Og.js → tool-images-DRiKq4of.js} +2 -2
  171. package/dist/{update-cli-BZ2fDrwx.js → update-cli-C5qlFKHT.js} +8 -8
  172. package/dist/{update-cli-BOXR9slg.js → update-cli-DKb91txa.js} +7 -7
  173. package/dist/{update-runner-BZFeJzUi.js → update-runner-BOA-zXJF.js} +1 -1
  174. package/dist/{update-runner-B55O98W8.js → update-runner-D6ZdwFLX.js} +1 -1
  175. package/dist/{web-DoaI-RpC.js → web-B-3vMKvG.js} +3 -3
  176. package/dist/{web-C5vqAHQC.js → web-BCAfeY97.js} +36 -36
  177. package/dist/{web-CtSLAgT_.js → web-CRrtqTfC.js} +3 -3
  178. package/dist/{web-By5urMji.js → web-CmgBQX8I.js} +4 -4
  179. package/dist/{whatsapp-actions-C4JR_6XT.js → whatsapp-actions-x16Ismcy.js} +14 -14
  180. package/dist/{workspace-CgGZnIx_.js → workspace-LSLFINSz.js} +5 -5
  181. package/package.json +1 -1
  182. package/dist/plugin-sdk/web-CUrXnjRV.js +0 -30
@@ -1,6 +1,6 @@
1
1
  import { d as resolveIsNixMode, g as resolveStateDir, m as resolveOAuthDir, t as CONFIG_PATH, u as resolveGatewayPort, y as resolveRequiredHomeDir } from "./paths-B4BZAPZh.js";
2
2
  import { C as shortenHomePath, U as getResolvedLoggerSettings, b as resolveUserPath, w as sleep } from "./utils-CFnnyoTP.js";
3
- import { kt as loadOpenClawPlugins } from "./reply-d6yV4wB_.js";
3
+ import { kt as loadOpenClawPlugins } from "./reply-D9JN_rwA.js";
4
4
  import { d as defaultRuntime } from "./subsystem-azPHgTb4.js";
5
5
  import { n as runExec, t as runCommandWithTimeout } from "./exec-V7mqHC8U.js";
6
6
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-CEnmuBUN.js";
@@ -34,15 +34,15 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
34
34
  import { n as renderSystemdUnavailableHints, r as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-D17u0bCX.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-u4E1Oha1.js";
36
36
  import { a as renderGatewayServiceCleanupHints, i as findExtraGatewayServices, n as auditGatewayServiceConfig, r as needsNodeRuntimeMigration, t as SERVICE_AUDIT_CODES } from "./service-audit-DIv4XEdU.js";
37
- import { r as healthCommand } from "./health-BqoIIu1u.js";
37
+ import { r as healthCommand } from "./health-5OQ86AsB.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-BvFVs4xo.js";
39
- import { t as runGatewayUpdate } from "./update-runner-B55O98W8.js";
39
+ import { t as runGatewayUpdate } from "./update-runner-D6ZdwFLX.js";
40
40
  import { n as logConfigUpdated } from "./logging-Bht-XWBM.js";
41
41
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-D1wWOKE2.js";
42
42
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-sQx0FedQ.js";
43
43
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Bzc93pL-.js";
44
44
  import { t as formatHealthCheckFailure } from "./health-format-PRKB0nJ1.js";
45
- import { n as doctorShellCompletion } from "./doctor-completion-C2PR6GJF.js";
45
+ import { n as doctorShellCompletion } from "./doctor-completion-DNqw5VHX.js";
46
46
  import fs from "node:fs";
47
47
  import os from "node:os";
48
48
  import path from "node:path";
@@ -8,7 +8,7 @@ import { t as buildWorkspaceSkillStatus } from "./skills-status-DHWZObxp.js";
8
8
  import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-B4-Vvu6M.js";
9
9
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CeM4F1rK.js";
10
10
  import { l as resolveGatewayBindHost, n as isLoopbackHost } from "./net-Bs2mpSPy.js";
11
- import { h as loadOpenClawPlugins } from "./subagent-registry-DJBVFvb4.js";
11
+ import { h as loadOpenClawPlugins } from "./subagent-registry-2rHQ_z7c.js";
12
12
  import { T as resolveMainSessionKey, i as loadSessionStore } from "./sessions-D-LiJehh.js";
13
13
  import { n as listChannelPlugins } from "./plugins-bX81iDy5.js";
14
14
  import { E as DEFAULT_SANDBOX_IMAGE, T as DEFAULT_SANDBOX_COMMON_IMAGE, d as resolveSandboxScope, w as DEFAULT_SANDBOX_BROWSER_IMAGE } from "./sandbox-DMa7GvJO.js";
@@ -31,15 +31,15 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
31
31
  import { n as renderSystemdUnavailableHints, r as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-DsQLBC_o.js";
32
32
  import { t as readLastGatewayErrorLine } from "./diagnostics-l_Hauu17.js";
33
33
  import { a as renderGatewayServiceCleanupHints, i as findExtraGatewayServices, n as auditGatewayServiceConfig, r as needsNodeRuntimeMigration, t as SERVICE_AUDIT_CODES } from "./service-audit-qdq3Sd69.js";
34
- import { r as healthCommand } from "./health-shfUNbPM.js";
34
+ import { r as healthCommand } from "./health-BLNgO5Lg.js";
35
35
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-DTeWMjr_.js";
36
- import { t as runGatewayUpdate } from "./update-runner-BZFeJzUi.js";
36
+ import { t as runGatewayUpdate } from "./update-runner-BOA-zXJF.js";
37
37
  import { n as logConfigUpdated } from "./logging-DlBaGy5C.js";
38
38
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-CorHkwvD.js";
39
39
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-BADnjHsM.js";
40
40
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-D81JLquf.js";
41
41
  import { t as formatHealthCheckFailure } from "./health-format-DywI-BlJ.js";
42
- import { n as doctorShellCompletion } from "./doctor-completion-CtBAIy0Z.js";
42
+ import { n as doctorShellCompletion } from "./doctor-completion-Bnz5cgZw.js";
43
43
  import { execFile } from "node:child_process";
44
44
  import os from "node:os";
45
45
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-9CR_a0e_.js";
2
2
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-DmH5wLkW.js";
3
3
  import { t as note } from "./note-Ct8WrG6i.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DQd6XSG4.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cu-1Snpp.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-CEnmuBUN.js";
2
2
  import { r as resolveCliName } from "./command-format-ChfKqObn.js";
3
3
  import { t as note } from "./note-DHzyZ-eO.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CIcsx6ic.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BCKnCxmp.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
package/dist/entry.js CHANGED
@@ -2442,7 +2442,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2442
2442
  applyCliProfileEnv({ profile: parsed.profile });
2443
2443
  process$1.argv = parsed.argv;
2444
2444
  }
2445
- import("./run-main-D5duEqg3.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2445
+ import("./run-main-BnvBDAQk.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2446
2446
  console.error("[openclaw] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2447
2447
  process$1.exitCode = 1;
2448
2448
  });
@@ -1,8 +1,8 @@
1
- import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CkkDESQ2.js";
1
+ import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CyR9Pa1R.js";
2
2
  import { createRequire } from "node:module";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
- import fsSync from "node:fs";
5
+ import fs from "node:fs";
6
6
  import { Logger } from "tslog";
7
7
  import JSON5 from "json5";
8
8
  import chalk, { Chalk } from "chalk";
@@ -15,9 +15,9 @@ function isNodeErrorWithCode(err, code) {
15
15
  return typeof err === "object" && err !== null && "code" in err && err.code === code;
16
16
  }
17
17
  function resolvePreferredOpenClawTmpDir(options = {}) {
18
- const accessSync = options.accessSync ?? fsSync.accessSync;
19
- const lstatSync = options.lstatSync ?? fsSync.lstatSync;
20
- const mkdirSync = options.mkdirSync ?? fsSync.mkdirSync;
18
+ const accessSync = options.accessSync ?? fs.accessSync;
19
+ const lstatSync = options.lstatSync ?? fs.lstatSync;
20
+ const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
21
21
  const getuid = options.getuid ?? (() => {
22
22
  try {
23
23
  return typeof process.getuid === "function" ? process.getuid() : void 0;
@@ -41,14 +41,14 @@ function resolvePreferredOpenClawTmpDir(options = {}) {
41
41
  try {
42
42
  const preferred = lstatSync(POSIX_OPENCLAW_TMP_DIR);
43
43
  if (!preferred.isDirectory() || preferred.isSymbolicLink()) return fallback();
44
- accessSync(POSIX_OPENCLAW_TMP_DIR, fsSync.constants.W_OK | fsSync.constants.X_OK);
44
+ accessSync(POSIX_OPENCLAW_TMP_DIR, fs.constants.W_OK | fs.constants.X_OK);
45
45
  if (!isSecureDirForUser(preferred)) return fallback();
46
46
  return POSIX_OPENCLAW_TMP_DIR;
47
47
  } catch (err) {
48
48
  if (!isNodeErrorWithCode(err, "ENOENT")) return fallback();
49
49
  }
50
50
  try {
51
- accessSync("/tmp", fsSync.constants.W_OK | fsSync.constants.X_OK);
51
+ accessSync("/tmp", fs.constants.W_OK | fs.constants.X_OK);
52
52
  mkdirSync(POSIX_OPENCLAW_TMP_DIR, {
53
53
  recursive: true,
54
54
  mode: 448
@@ -71,8 +71,8 @@ function resolvePreferredOpenClawTmpDir(options = {}) {
71
71
  function readLoggingConfig() {
72
72
  const configPath = resolveConfigPath();
73
73
  try {
74
- if (!fsSync.existsSync(configPath)) return;
75
- const raw = fsSync.readFileSync(configPath, "utf-8");
74
+ if (!fs.existsSync(configPath)) return;
75
+ const raw = fs.readFileSync(configPath, "utf-8");
76
76
  const logging = JSON5.parse(raw)?.logging;
77
77
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
78
78
  return logging;
@@ -165,7 +165,7 @@ function isFileLogLevelEnabled(level) {
165
165
  return levelToMinLevel(level) <= levelToMinLevel(settings.level);
166
166
  }
167
167
  function buildLogger(settings) {
168
- fsSync.mkdirSync(path.dirname(settings.file), { recursive: true });
168
+ fs.mkdirSync(path.dirname(settings.file), { recursive: true });
169
169
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
170
170
  const logger = new Logger({
171
171
  name: "openclaw",
@@ -179,7 +179,7 @@ function buildLogger(settings) {
179
179
  ...logObj,
180
180
  time
181
181
  });
182
- fsSync.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
182
+ fs.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
183
183
  } catch {}
184
184
  });
185
185
  for (const transport of externalTransports) attachExternalTransport(logger, transport);
@@ -231,14 +231,14 @@ function isRollingPath(file) {
231
231
  }
232
232
  function pruneOldRollingLogs(dir) {
233
233
  try {
234
- const entries = fsSync.readdirSync(dir, { withFileTypes: true });
234
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
235
235
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
236
236
  for (const entry of entries) {
237
237
  if (!entry.isFile()) continue;
238
238
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
239
239
  const fullPath = path.join(dir, entry.name);
240
240
  try {
241
- if (fsSync.statSync(fullPath).mtimeMs < cutoff) fsSync.rmSync(fullPath, { force: true });
241
+ if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
242
242
  } catch {}
243
243
  }
244
244
  } catch {}
@@ -310,14 +310,14 @@ const danger = theme.error;
310
310
  //#endregion
311
311
  //#region src/utils.ts
312
312
  async function ensureDir(dir) {
313
- await fsSync.promises.mkdir(dir, { recursive: true });
313
+ await fs.promises.mkdir(dir, { recursive: true });
314
314
  }
315
315
  /**
316
316
  * Check if a file or directory exists at the given path.
317
317
  */
318
318
  async function pathExists(targetPath) {
319
319
  try {
320
- await fsSync.promises.access(targetPath);
320
+ await fs.promises.access(targetPath);
321
321
  return true;
322
322
  } catch {
323
323
  return false;
@@ -407,7 +407,7 @@ function readLidReverseMapping(lid, opts) {
407
407
  for (const dir of mappingDirs) {
408
408
  const mappingPath = path.join(dir, mappingFilename);
409
409
  try {
410
- const data = fsSync.readFileSync(mappingPath, "utf8");
410
+ const data = fs.readFileSync(mappingPath, "utf8");
411
411
  const phone = JSON.parse(data);
412
412
  if (phone === null || phone === void 0) continue;
413
413
  return normalizeE164(String(phone));
@@ -491,7 +491,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
491
491
  if (override) return resolveUserPath(override);
492
492
  const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".openclaw");
493
493
  try {
494
- if (fsSync.existsSync(newDir)) return newDir;
494
+ if (fs.existsSync(newDir)) return newDir;
495
495
  } catch {}
496
496
  return newDir;
497
497
  }
@@ -2,7 +2,7 @@ import "./paths-Bp5uKvNR.js";
2
2
  import { r as resolveAgentDir, s as resolveAgentWorkspaceDir, y as ensureAgentWorkspace } from "./agent-scope-CtzoNgNk.js";
3
3
  import "./exec-DgwjzGg-.js";
4
4
  import { X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, f as resolveThinkingDefault } from "./model-selection-Cb6822pn.js";
5
- import { F as resolveAgentTimeoutMs, I as resolveAgentIdentity, t as runEmbeddedPiAgent } from "./pi-embedded-8ou24X6D.js";
5
+ import { F as resolveAgentTimeoutMs, I as resolveAgentIdentity, t as runEmbeddedPiAgent } from "./pi-embedded-BhSNemDy.js";
6
6
  import "./github-copilot-token-DZwwYztr.js";
7
7
  import "./deliver-C7HjLIB7.js";
8
8
  import "./image-ops-B9jnR447.js";
@@ -1,5 +1,5 @@
1
- import { c as logWarn } from "./exec-C_bNT00b.js";
2
- import { T as extensionForMime, c as createPinnedDispatcher, d as resolvePinnedHostnameWithPolicy, o as SsrFBlockedError, s as closeDispatcher, w as detectMime } from "./image-ops-CKPJXWk4.js";
1
+ import { c as logWarn } from "./exec-C9rZpEqA.js";
2
+ import { T as extensionForMime, c as createPinnedDispatcher, d as resolvePinnedHostnameWithPolicy, o as SsrFBlockedError, s as closeDispatcher, w as detectMime } from "./image-ops-7EDUjzca.js";
3
3
  import { t as bindAbortRelay } from "./fetch-timeout-ijQXfnJ1.js";
4
4
  import path from "node:path";
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { t as parseBooleanValue } from "./boolean-Bb19hm9Y.js";
2
2
  import { n as MANIFEST_KEY, t as LEGACY_MANIFEST_KEYS } from "./legacy-names-BTlhTk_5.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
  import JSON5 from "json5";
6
6
  import YAML from "yaml";
7
7
 
@@ -56,7 +56,7 @@ function hasBinary(bin) {
56
56
  for (const part of parts) for (const ext of extensions) {
57
57
  const candidate = path.join(part, bin + ext);
58
58
  try {
59
- fsSync.accessSync(candidate, fsSync.constants.X_OK);
59
+ fs.accessSync(candidate, fs.constants.X_OK);
60
60
  hasBinaryCache.set(bin, true);
61
61
  return true;
62
62
  } catch {}
@@ -19,7 +19,7 @@ import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-CeM4F1rK.
19
19
  import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CZpVDeRr.js";
20
20
  import { c as pickPrimaryLanIPv4, d as resolveGatewayListenHosts, f as resolveHostName, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, p as rawDataToString, r as isPrivateOrLoopbackAddress, t as isLoopbackAddress, u as resolveGatewayClientIp } from "./net-Bs2mpSPy.js";
21
21
  import { i as normalizeInputProvenance } from "./input-provenance-DRrWAEiI.js";
22
- import { $n as stopSubagentsForRequester, $t as primeRemoteSkillsCache, A as createReplyDispatcher, An as DEFAULT_INPUT_FILE_MAX_CHARS, Ar as stopDiagnosticHeartbeat, At as consumeGatewaySigusr1RestartAuthorization, B as readLatestAssistantReply, Bn as extractImageContentFromSource, Br as onAgentEvent, Bt as loadProviderUsageSummary, Cn as applyVerboseOverride, Ct as detectSuspiciousPatterns, Dr as waitForActiveTasks, Dt as persistBrowserProxyFiles, En as isSystemEventContextChanged, Er as setCommandLaneConcurrency, Et as applyBrowserProxyPaths, F as getCliSessionId, Fn as DEFAULT_INPUT_PDF_MAX_PAGES, Ft as scheduleGatewaySigusr1Restart, Hn as estimateBase64DecodedBytes, I as setCliSessionId, In as DEFAULT_INPUT_PDF_MAX_PIXELS, Ir as stripHeartbeatToken, It as setGatewaySigusr1RestartPolicy, Jt as requestHeartbeatNow, L as runCliAgent, Ln as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Lr as clearAgentRunContext, Lt as setPreRestartDeferralCheck, Mn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Mt as emitGatewayRestart, Nn as DEFAULT_INPUT_IMAGE_MIMES, Nt as isGatewaySigusr1RestartExternallyAllowed, Or as CommandLane, P as BARE_SESSION_RESET_PROMPT, Pn as DEFAULT_INPUT_MAX_REDIRECTS, Pt as markGatewaySigusr1RestartHandled, Q as resetDirectoryCache, Qn as isAbortTrigger, Qt as getRemoteSkillEligibility, Rn as DEFAULT_INPUT_TIMEOUT_MS, Rr as emitAgentEvent, Rt as normalizeGroupActivation, Sn as applyModelOverrideToSessionEntry, Sr as getActiveTaskCount, St as buildSafeExternalPrompt, T as buildHistoryContextFromEntries, Tn as enqueueSystemEvent, Tr as resetAllLanes, Tt as isExternalHookSession, U as ensureOutboundSessionEntry, V as resolveAnnounceTargetFromKey, Vn as normalizeMimeList, Vr as registerAgentRunContext, W as resolveOutboundSessionRoute, Wn as resolveAgentTimeoutMs, X as resolveSessionDeliveryTarget, Xt as normalizeSendPolicy, Y as resolveOutboundTarget, Yn as formatZonedTimestamp, Zt as resolveSendPolicy, _ as readJsonBodyWithLimit, _n as resolvePairingPaths, _r as setTtsEnabled, _t as buildDeliveryFromLegacyPayload, a as runSubagentAnnounceFlow, an as approveNodePairing, bn as registerSkillsChangeListener, br as OPENAI_TTS_MODELS, c as abortEmbeddedPiRun, cn as renamePairedNode, cr as resolveUserTimezone, ct as writeRestartSentinel, d as applyToolPolicyPipeline, dn as verifyNodeToken, dr as isTtsProviderConfigured, dt as inferLegacyName, en as recordRemoteNodeInfo, et as runWithModelFallback, f as buildDefaultToolPolicyPipelineSteps, fn as generatePairingToken, fr as resolveTtsApiKey, ft as normalizeOptionalAgentId, g as handleSlackHttpRequest, gn as readJsonFile, gr as resolveTtsProviderOrder, gt as migrateLegacyCronPayload, h as loadOpenClawPlugins, hn as pruneExpiredPending, hr as resolveTtsPrefsPath, ht as normalizeRequiredName, in as setSkillsRemoteRegistry, it as formatRestartSentinelMessage, j as getTotalPendingReplies, jn as DEFAULT_INPUT_FILE_MIMES, jr as isDiagnosticsEnabled, jt as deferGatewayRestartUntilIdle, k as dispatchInboundMessage, kn as DEFAULT_INPUT_FILE_MAX_BYTES, kr as startDiagnosticHeartbeat, l as getActiveEmbeddedRunCount, ln as requestNodePairing, lr as getTtsProvider, lt as normalizeCronJobCreate, m as getPluginToolMeta, mn as createAsyncLock, mr as resolveTtsConfig, mt as normalizePayloadToSystemText, n as initSubagentRegistry, nn as refreshRemoteNodeBins, nr as resolveAgentIdentity, nt as consumeRestartSentinel, o as clearSessionQueues, on as listNodePairing, ot as summarizeRestartSentinel, p as sniffMimeFromBase64, pn as verifyPairingToken, pr as resolveTtsAutoMode, pt as normalizeOptionalText, r as listDescendantRunsForRequester, rn as removeRemoteNodeInfo, rt as formatDoctorNonInteractiveHint, s as runEmbeddedPiAgent, sn as rejectNodePairing, t as countActiveDescendantRuns, tn as refreshRemoteBinsForConnectedNodes, u as waitForEmbeddedPiRunEnd, un as updatePairedNodeMetadata, ur as isTtsEnabled, ut as normalizeCronJobPatch, v as requestBodyErrorToText, vn as writeJsonAtomic, vr as setTtsProvider, vt as hasLegacyDeliveryHints, wn as parseVerboseOverride, wr as getTotalQueueSize, wt as getHookType, x as createReplyPrefixOptions, xr as OPENAI_TTS_VOICES, yn as getSkillsSnapshotVersion, yr as textToSpeech, yt as stripLegacyDeliveryFields, z as createOpenClawTools, zn as extractFileContentFromSource, zr as getAgentRunContext } from "./subagent-registry-DJBVFvb4.js";
22
+ import { $n as stopSubagentsForRequester, $t as primeRemoteSkillsCache, A as createReplyDispatcher, An as DEFAULT_INPUT_FILE_MAX_CHARS, Ar as stopDiagnosticHeartbeat, At as consumeGatewaySigusr1RestartAuthorization, B as readLatestAssistantReply, Bn as extractImageContentFromSource, Br as onAgentEvent, Bt as loadProviderUsageSummary, Cn as applyVerboseOverride, Ct as detectSuspiciousPatterns, Dr as waitForActiveTasks, Dt as persistBrowserProxyFiles, En as isSystemEventContextChanged, Er as setCommandLaneConcurrency, Et as applyBrowserProxyPaths, F as getCliSessionId, Fn as DEFAULT_INPUT_PDF_MAX_PAGES, Ft as scheduleGatewaySigusr1Restart, Hn as estimateBase64DecodedBytes, I as setCliSessionId, In as DEFAULT_INPUT_PDF_MAX_PIXELS, Ir as stripHeartbeatToken, It as setGatewaySigusr1RestartPolicy, Jt as requestHeartbeatNow, L as runCliAgent, Ln as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Lr as clearAgentRunContext, Lt as setPreRestartDeferralCheck, Mn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Mt as emitGatewayRestart, Nn as DEFAULT_INPUT_IMAGE_MIMES, Nt as isGatewaySigusr1RestartExternallyAllowed, Or as CommandLane, P as BARE_SESSION_RESET_PROMPT, Pn as DEFAULT_INPUT_MAX_REDIRECTS, Pt as markGatewaySigusr1RestartHandled, Q as resetDirectoryCache, Qn as isAbortTrigger, Qt as getRemoteSkillEligibility, Rn as DEFAULT_INPUT_TIMEOUT_MS, Rr as emitAgentEvent, Rt as normalizeGroupActivation, Sn as applyModelOverrideToSessionEntry, Sr as getActiveTaskCount, St as buildSafeExternalPrompt, T as buildHistoryContextFromEntries, Tn as enqueueSystemEvent, Tr as resetAllLanes, Tt as isExternalHookSession, U as ensureOutboundSessionEntry, V as resolveAnnounceTargetFromKey, Vn as normalizeMimeList, Vr as registerAgentRunContext, W as resolveOutboundSessionRoute, Wn as resolveAgentTimeoutMs, X as resolveSessionDeliveryTarget, Xt as normalizeSendPolicy, Y as resolveOutboundTarget, Yn as formatZonedTimestamp, Zt as resolveSendPolicy, _ as readJsonBodyWithLimit, _n as resolvePairingPaths, _r as setTtsEnabled, _t as buildDeliveryFromLegacyPayload, a as runSubagentAnnounceFlow, an as approveNodePairing, bn as registerSkillsChangeListener, br as OPENAI_TTS_MODELS, c as abortEmbeddedPiRun, cn as renamePairedNode, cr as resolveUserTimezone, ct as writeRestartSentinel, d as applyToolPolicyPipeline, dn as verifyNodeToken, dr as isTtsProviderConfigured, dt as inferLegacyName, en as recordRemoteNodeInfo, et as runWithModelFallback, f as buildDefaultToolPolicyPipelineSteps, fn as generatePairingToken, fr as resolveTtsApiKey, ft as normalizeOptionalAgentId, g as handleSlackHttpRequest, gn as readJsonFile, gr as resolveTtsProviderOrder, gt as migrateLegacyCronPayload, h as loadOpenClawPlugins, hn as pruneExpiredPending, hr as resolveTtsPrefsPath, ht as normalizeRequiredName, in as setSkillsRemoteRegistry, it as formatRestartSentinelMessage, j as getTotalPendingReplies, jn as DEFAULT_INPUT_FILE_MIMES, jr as isDiagnosticsEnabled, jt as deferGatewayRestartUntilIdle, k as dispatchInboundMessage, kn as DEFAULT_INPUT_FILE_MAX_BYTES, kr as startDiagnosticHeartbeat, l as getActiveEmbeddedRunCount, ln as requestNodePairing, lr as getTtsProvider, lt as normalizeCronJobCreate, m as getPluginToolMeta, mn as createAsyncLock, mr as resolveTtsConfig, mt as normalizePayloadToSystemText, n as initSubagentRegistry, nn as refreshRemoteNodeBins, nr as resolveAgentIdentity, nt as consumeRestartSentinel, o as clearSessionQueues, on as listNodePairing, ot as summarizeRestartSentinel, p as sniffMimeFromBase64, pn as verifyPairingToken, pr as resolveTtsAutoMode, pt as normalizeOptionalText, r as listDescendantRunsForRequester, rn as removeRemoteNodeInfo, rt as formatDoctorNonInteractiveHint, s as runEmbeddedPiAgent, sn as rejectNodePairing, t as countActiveDescendantRuns, tn as refreshRemoteBinsForConnectedNodes, u as waitForEmbeddedPiRunEnd, un as updatePairedNodeMetadata, ur as isTtsEnabled, ut as normalizeCronJobPatch, v as requestBodyErrorToText, vn as writeJsonAtomic, vr as setTtsProvider, vt as hasLegacyDeliveryHints, wn as parseVerboseOverride, wr as getTotalQueueSize, wt as getHookType, x as createReplyPrefixOptions, xr as OPENAI_TTS_VOICES, yn as getSkillsSnapshotVersion, yr as textToSpeech, yt as stripLegacyDeliveryFields, z as createOpenClawTools, zn as extractFileContentFromSource, zr as getAgentRunContext } from "./subagent-registry-2rHQ_z7c.js";
23
23
  import { C as resolveAgentMainSessionKey, E as resolveMainSessionKeyFromConfig, L as deliveryContextFromSession, O as snapshotSessionOrigin, T as resolveMainSessionKey, V as normalizeSessionDeliveryFields, i as loadSessionStore, l as updateSessionStore, t as extractDeliveryInfo, w as resolveExplicitAgentSessionKey, z as mergeDeliveryContext } from "./sessions-D-LiJehh.js";
24
24
  import { D as isSilentReplyText, E as SILENT_REPLY_TOKEN, S as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads, w as runGlobalGatewayStopSafely } from "./deliver-a9TlmfSI.js";
25
25
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-bX81iDy5.js";
@@ -85,7 +85,7 @@ import { n as withProgress } from "./progress-689bGXNC.js";
85
85
  import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-Bfg43UBg.js";
86
86
  import "./prompt-style-Ws1ofeXe.js";
87
87
  import "./pairing-labels-DKrwGHA2.js";
88
- import { c as resolveCronStyleNow, i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-BEMg5PJB.js";
88
+ import { c as resolveCronStyleNow, i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-kOc5LBl6.js";
89
89
  import { t as ensureOpenClawCliOnPath } from "./path-env-DLNEUoxZ.js";
90
90
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools--D0t--r2.js";
91
91
  import { t as buildChannelUiCatalog } from "./catalog-D8aoRgov.js";
@@ -109,21 +109,21 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
109
109
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-B-DBP1Oz.js";
110
110
  import { c as probeGateway, o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-DX2nVepF.js";
111
111
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-xopleWUb.js";
112
- import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-8g-vfjfP.js";
113
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-shfUNbPM.js";
114
- import { n as createDefaultDeps, r as createOutboundSendDeps$1, t as createOutboundSendDeps } from "./outbound-send-deps-BCi2C-Sb.js";
112
+ import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-CQB4pZ8j.js";
113
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-BLNgO5Lg.js";
114
+ import { n as createDefaultDeps, r as createOutboundSendDeps$1, t as createOutboundSendDeps } from "./outbound-send-deps-CrIPn6Gv.js";
115
115
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DTeWMjr_.js";
116
116
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-Dvegvfv5.js";
117
- import { t as runOnboardingWizard } from "./onboarding-Cjbb0fRA.js";
117
+ import { t as runOnboardingWizard } from "./onboarding-ClCcjvNg.js";
118
118
  import { a as setGatewayWsLogStyle, i as summarizeAgentEventForWsLog, n as logWs, r as shouldLogWs, t as formatForLog } from "./ws-log-BZ1XTQ6n.js";
119
119
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-E_306La0.js";
120
120
  import { a as loadAgentIdentity, c as loadAgentIdentityFromWorkspace, i as listAgentEntries, o as pruneAgentConfig, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BYwbrVRy.js";
121
- import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-D0LfsEPF.js";
121
+ import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-CHHEtTV9.js";
122
122
  import "./node-service-C4ybtLhY.js";
123
123
  import "./status.update-MTF_FPqc.js";
124
124
  import { n as validateSystemRunCommandConsistency, t as formatExecCommand } from "./system-run-command-DEYlDTqb.js";
125
125
  import { t as installSkill } from "./skills-install-pX6H8-rM.js";
126
- import { t as runGatewayUpdate } from "./update-runner-BZFeJzUi.js";
126
+ import { t as runGatewayUpdate } from "./update-runner-BOA-zXJF.js";
127
127
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-rtxGnAts.js";
128
128
  import { n as forceFreePortAndWait } from "./ports-CBEgLU1F.js";
129
129
  import { spawn, spawnSync } from "node:child_process";
@@ -11423,7 +11423,7 @@ const nodeHandlers = {
11423
11423
  const p = params;
11424
11424
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
11425
11425
  await respondUnavailableOnThrow(respond, async () => {
11426
- const { handleNodeEvent } = await import("./server-node-events-C51Bayv9.js");
11426
+ const { handleNodeEvent } = await import("./server-node-events-BHXuG6Pd.js");
11427
11427
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
11428
11428
  await handleNodeEvent({
11429
11429
  deps: context.deps,
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-B4BZAPZh.js";
2
2
  import { B as theme, C as shortenHomePath, D as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, U as getResolvedLoggerSettings, V as getChildLogger, b as resolveUserPath, c as ensureDir, d as isPlainObject, r as clamp, t as CONFIG_DIR, z as isRich } from "./utils-CFnnyoTP.js";
3
3
  import { B as formatXHighModelHint, G as normalizeThinkLevel, K as normalizeUsageDisplay, U as normalizeElevatedLevel, W as normalizeReasoningLevel, Y as supportsXHighThinking, q as normalizeVerboseLevel, z as formatThinkingLevels } from "./pi-embedded-helpers-DwIwt1C1.js";
4
- import { $ as isGatewaySigusr1RestartExternallyAllowed, $n as resolveAgentIdentity, $r as extractFileContentFromSource, $t as requestNodePairing, A as resolveSessionModelRef, At as normalizeGroupActivation, B as resolveOutboundSessionRoute, Bn as countActiveDescendantRuns, Br as isSystemEventContextChanged, Cr as setCommandLaneConcurrency, D as loadSessionEntry, Dn as getTotalPendingReplies, Dr as stopDiagnosticHeartbeat, E as loadCombinedSessionStoreForGateway, En as createReplyDispatcher, Er as startDiagnosticHeartbeat, Et as requestHeartbeatNow, F as readSessionPreviewItemsFromTranscript, Gn as readLatestAssistantReply, Gr as DEFAULT_INPUT_FILE_MIMES, Gt as refreshRemoteBinsForConnectedNodes, Hn as listDescendantRunsForRequester, Ht as getRemoteSkillEligibility, I as resolveSessionTranscriptCandidates, In as isAbortTrigger, Ir as applyModelOverrideToSessionEntry, J as runWithModelFallback, Jn as clearAgentRunContext, Jr as DEFAULT_INPUT_MAX_REDIRECTS, Jt as setSkillsRemoteRegistry, K as resetDirectoryCache, Kr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Kt as refreshRemoteNodeBins, L as stripEnvelopeFromMessages, Ln as stopSubagentsForRequester, Lr as applyVerboseOverride, Lt as handleSlackHttpRequest, M as archiveSessionTranscripts, Mt as loadProviderUsageSummary, N as capArrayByJsonBytes, Nn as formatZonedTimestamp, Nr as stripHeartbeatToken, O as pruneLegacyStoreKeys, Or as isDiagnosticsEnabled, Ot as getPluginToolMeta, P as readSessionMessages, Pr as lookupContextTokens, Q as emitGatewayRestart, Qn as registerAgentRunContext, Qr as DEFAULT_INPUT_TIMEOUT_MS, Qt as renamePairedNode, Rr as parseVerboseOverride, Rt as readJsonBodyWithLimit, S as canonicalizeSpawnedByForAgent, Sr as resetAllLanes, T as listSessionsFromStore, Tn as dispatchInboundMessage, Tr as CommandLane, Tt as persistBrowserProxyFiles, U as resolveOutboundTarget, Ur as DEFAULT_INPUT_FILE_MAX_BYTES, Ut as primeRemoteSkillsCache, Vn as initSubagentRegistry, W as resolveSessionDeliveryTarget, Wn as runSubagentAnnounceFlow, Wr as DEFAULT_INPUT_FILE_MAX_CHARS, Wt as recordRemoteNodeInfo, X as consumeGatewaySigusr1RestartAuthorization, Xn as getAgentRunContext, Xr as DEFAULT_INPUT_PDF_MAX_PIXELS, Xt as listNodePairing, Yn as emitAgentEvent, Yr as DEFAULT_INPUT_PDF_MAX_PAGES, Yt as approveNodePairing, Z as deferGatewayRestartUntilIdle, Zn as onAgentEvent, Zr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Zt as rejectNodePairing, _ as applyToolPolicyPipeline, _r as OPENAI_TTS_MODELS, _t as normalizeRequiredName, a as runCliAgent, an as pruneExpiredPending, ar as resolveUserTimezone, at as formatDoctorNonInteractiveHint, b as createOpenClawTools, bt as hasLegacyDeliveryHints, cn as writeJsonAtomic, cr as isTtsProviderConfigured, ct as summarizeRestartSentinel, d as clearSessionQueues, dn as buildSafeExternalPrompt, dr as resolveTtsConfig, dt as normalizeCronJobCreate, ei as extractImageContentFromSource, en as updatePairedNodeMetadata, et as markGatewaySigusr1RestartHandled, f as runEmbeddedPiAgent, fn as detectSuspiciousPatterns, fr as resolveTtsPrefsPath, ft as normalizeCronJobPatch, gr as textToSpeech, gt as normalizePayloadToSystemText, h as waitForEmbeddedPiRunEnd, hn as createReplyPrefixOptions, hr as setTtsProvider, ht as normalizeOptionalText, i as setCliSessionId, ii as resolveAgentTimeoutMs, in as createAsyncLock, it as consumeRestartSentinel, j as archiveFileOnDisk, k as resolveGatewaySessionStoreTarget, kr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, kt as loadOpenClawPlugins, l as normalizeSendPolicy, ln as getSkillsSnapshotVersion, lr as resolveTtsApiKey, m as getActiveEmbeddedRunCount, mn as isExternalHookSession, mr as setTtsEnabled, mt as normalizeOptionalAgentId, n as BARE_SESSION_RESET_PROMPT, ni as estimateBase64DecodedBytes, nn as generatePairingToken, nt as setGatewaySigusr1RestartPolicy, on as readJsonFile, or as getTtsProvider, ot as formatRestartSentinelMessage, p as abortEmbeddedPiRun, pn as getHookType, pr as resolveTtsProviderOrder, pt as inferLegacyName, qr as DEFAULT_INPUT_IMAGE_MIMES, qt as removeRemoteNodeInfo, r as getCliSessionId, rn as verifyPairingToken, rt as setPreRestartDeferralCheck, sn as resolvePairingPaths, sr as isTtsEnabled, ti as normalizeMimeList, tn as verifyNodeToken, tt as scheduleGatewaySigusr1Restart, u as resolveSendPolicy, un as registerSkillsChangeListener, ur as resolveTtsAutoMode, ut as writeRestartSentinel, v as buildDefaultToolPolicyPipelineSteps, vr as OPENAI_TTS_VOICES, vt as migrateLegacyCronPayload, w as listAgentsForGateway, wr as waitForActiveTasks, wt as applyBrowserProxyPaths, x as resolveAnnounceTargetFromKey, xr as getTotalQueueSize, xt as stripLegacyDeliveryFields, y as sniffMimeFromBase64, yn as buildHistoryContextFromEntries, yr as getActiveTaskCount, yt as buildDeliveryFromLegacyPayload, z as ensureOutboundSessionEntry, zr as enqueueSystemEvent, zt as requestBodyErrorToText } from "./reply-d6yV4wB_.js";
4
+ import { $ as isGatewaySigusr1RestartExternallyAllowed, $n as resolveAgentIdentity, $r as extractFileContentFromSource, $t as requestNodePairing, A as resolveSessionModelRef, At as normalizeGroupActivation, B as resolveOutboundSessionRoute, Bn as countActiveDescendantRuns, Br as isSystemEventContextChanged, Cr as setCommandLaneConcurrency, D as loadSessionEntry, Dn as getTotalPendingReplies, Dr as stopDiagnosticHeartbeat, E as loadCombinedSessionStoreForGateway, En as createReplyDispatcher, Er as startDiagnosticHeartbeat, Et as requestHeartbeatNow, F as readSessionPreviewItemsFromTranscript, Gn as readLatestAssistantReply, Gr as DEFAULT_INPUT_FILE_MIMES, Gt as refreshRemoteBinsForConnectedNodes, Hn as listDescendantRunsForRequester, Ht as getRemoteSkillEligibility, I as resolveSessionTranscriptCandidates, In as isAbortTrigger, Ir as applyModelOverrideToSessionEntry, J as runWithModelFallback, Jn as clearAgentRunContext, Jr as DEFAULT_INPUT_MAX_REDIRECTS, Jt as setSkillsRemoteRegistry, K as resetDirectoryCache, Kr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Kt as refreshRemoteNodeBins, L as stripEnvelopeFromMessages, Ln as stopSubagentsForRequester, Lr as applyVerboseOverride, Lt as handleSlackHttpRequest, M as archiveSessionTranscripts, Mt as loadProviderUsageSummary, N as capArrayByJsonBytes, Nn as formatZonedTimestamp, Nr as stripHeartbeatToken, O as pruneLegacyStoreKeys, Or as isDiagnosticsEnabled, Ot as getPluginToolMeta, P as readSessionMessages, Pr as lookupContextTokens, Q as emitGatewayRestart, Qn as registerAgentRunContext, Qr as DEFAULT_INPUT_TIMEOUT_MS, Qt as renamePairedNode, Rr as parseVerboseOverride, Rt as readJsonBodyWithLimit, S as canonicalizeSpawnedByForAgent, Sr as resetAllLanes, T as listSessionsFromStore, Tn as dispatchInboundMessage, Tr as CommandLane, Tt as persistBrowserProxyFiles, U as resolveOutboundTarget, Ur as DEFAULT_INPUT_FILE_MAX_BYTES, Ut as primeRemoteSkillsCache, Vn as initSubagentRegistry, W as resolveSessionDeliveryTarget, Wn as runSubagentAnnounceFlow, Wr as DEFAULT_INPUT_FILE_MAX_CHARS, Wt as recordRemoteNodeInfo, X as consumeGatewaySigusr1RestartAuthorization, Xn as getAgentRunContext, Xr as DEFAULT_INPUT_PDF_MAX_PIXELS, Xt as listNodePairing, Yn as emitAgentEvent, Yr as DEFAULT_INPUT_PDF_MAX_PAGES, Yt as approveNodePairing, Z as deferGatewayRestartUntilIdle, Zn as onAgentEvent, Zr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Zt as rejectNodePairing, _ as applyToolPolicyPipeline, _r as OPENAI_TTS_MODELS, _t as normalizeRequiredName, a as runCliAgent, an as pruneExpiredPending, ar as resolveUserTimezone, at as formatDoctorNonInteractiveHint, b as createOpenClawTools, bt as hasLegacyDeliveryHints, cn as writeJsonAtomic, cr as isTtsProviderConfigured, ct as summarizeRestartSentinel, d as clearSessionQueues, dn as buildSafeExternalPrompt, dr as resolveTtsConfig, dt as normalizeCronJobCreate, ei as extractImageContentFromSource, en as updatePairedNodeMetadata, et as markGatewaySigusr1RestartHandled, f as runEmbeddedPiAgent, fn as detectSuspiciousPatterns, fr as resolveTtsPrefsPath, ft as normalizeCronJobPatch, gr as textToSpeech, gt as normalizePayloadToSystemText, h as waitForEmbeddedPiRunEnd, hn as createReplyPrefixOptions, hr as setTtsProvider, ht as normalizeOptionalText, i as setCliSessionId, ii as resolveAgentTimeoutMs, in as createAsyncLock, it as consumeRestartSentinel, j as archiveFileOnDisk, k as resolveGatewaySessionStoreTarget, kr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, kt as loadOpenClawPlugins, l as normalizeSendPolicy, ln as getSkillsSnapshotVersion, lr as resolveTtsApiKey, m as getActiveEmbeddedRunCount, mn as isExternalHookSession, mr as setTtsEnabled, mt as normalizeOptionalAgentId, n as BARE_SESSION_RESET_PROMPT, ni as estimateBase64DecodedBytes, nn as generatePairingToken, nt as setGatewaySigusr1RestartPolicy, on as readJsonFile, or as getTtsProvider, ot as formatRestartSentinelMessage, p as abortEmbeddedPiRun, pn as getHookType, pr as resolveTtsProviderOrder, pt as inferLegacyName, qr as DEFAULT_INPUT_IMAGE_MIMES, qt as removeRemoteNodeInfo, r as getCliSessionId, rn as verifyPairingToken, rt as setPreRestartDeferralCheck, sn as resolvePairingPaths, sr as isTtsEnabled, ti as normalizeMimeList, tn as verifyNodeToken, tt as scheduleGatewaySigusr1Restart, u as resolveSendPolicy, un as registerSkillsChangeListener, ur as resolveTtsAutoMode, ut as writeRestartSentinel, v as buildDefaultToolPolicyPipelineSteps, vr as OPENAI_TTS_VOICES, vt as migrateLegacyCronPayload, w as listAgentsForGateway, wr as waitForActiveTasks, wt as applyBrowserProxyPaths, x as resolveAnnounceTargetFromKey, xr as getTotalQueueSize, xt as stripLegacyDeliveryFields, y as sniffMimeFromBase64, yn as buildHistoryContextFromEntries, yr as getActiveTaskCount, yt as buildDeliveryFromLegacyPayload, z as ensureOutboundSessionEntry, zr as enqueueSystemEvent, zt as requestBodyErrorToText } from "./reply-D9JN_rwA.js";
5
5
  import { b as isSubagentSessionKey, d as resolveAgentIdFromSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, m as toAgentRequestSessionKey, n as DEFAULT_AGENT_ID, s as classifySessionKeyShape, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as isCronRunSessionKey, x as parseAgentSessionKey } from "./session-key-CZ6OwgSB.js";
6
6
  import { B as triggerInternalHook, E as getActivePluginRegistry, L as clearInternalHooks, R as createInternalHookEvent, a as setConsoleSubsystemFilter, d as defaultRuntime, g as CHANNEL_IDS, k as createEmptyPluginRegistry, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger, v as DEFAULT_CHAT_CHANNEL, z as registerInternalHook } from "./subsystem-azPHgTb4.js";
7
7
  import { a as logDebug, c as logWarn, n as runExec, t as runCommandWithTimeout } from "./exec-V7mqHC8U.js";
@@ -86,8 +86,8 @@ import { n as createBrowserControlContext, r as startBrowserControlServiceFromCo
86
86
  import { t as parseAbsoluteTimeMs } from "./parse-B6Z5uj5w.js";
87
87
  import { n as resolveMessageChannelSelection } from "./channel-selection-CuBUJwMM.js";
88
88
  import "./delivery-queue-BX5ZlJ58.js";
89
- import { c as resolveCronStyleNow, i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-B_kubgRp.js";
90
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-i6fBS1Dw.js";
89
+ import { c as resolveCronStyleNow, i as onHeartbeatEvent, r as getLastHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-pSnRANG0.js";
90
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-6dSUgps7.js";
91
91
  import { t as ensureOpenClawCliOnPath } from "./path-env-vebQw9DE.js";
92
92
  import { t as forceFreePortAndWait } from "./ports-73wWIFYD.js";
93
93
  import { t as buildChannelUiCatalog } from "./catalog-CiILDAoN.js";
@@ -113,21 +113,21 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
113
113
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Dg6OGUEl.js";
114
114
  import { c as probeGateway, o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-rKJDXW1i.js";
115
115
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CLAot7kh.js";
116
- import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-NfZ6FkuQ.js";
117
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, s as setHeartbeatsEnabled, t as formatHealthChannelLines } from "./health-BqoIIu1u.js";
116
+ import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-Cuj1dGBb.js";
117
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, s as setHeartbeatsEnabled, t as formatHealthChannelLines } from "./health-5OQ86AsB.js";
118
118
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BvFVs4xo.js";
119
119
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-Cl-vH3i_.js";
120
- import { t as runOnboardingWizard } from "./onboarding-txZtcVMA.js";
120
+ import { t as runOnboardingWizard } from "./onboarding-C6_GQJ3F.js";
121
121
  import { a as setGatewayWsLogStyle, i as summarizeAgentEventForWsLog, n as logWs, r as shouldLogWs, t as formatForLog } from "./ws-log-AWzf4qDj.js";
122
122
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CNVBYkAm.js";
123
123
  import { t as createOutboundSendDeps$1 } from "./outbound-send-deps-C31Ye6Om.js";
124
124
  import { a as loadAgentIdentity, c as loadAgentIdentityFromWorkspace, i as listAgentEntries, o as pruneAgentConfig, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BYiNoqyi.js";
125
- import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-BxxBd9wX.js";
125
+ import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-Zea8l0V4.js";
126
126
  import "./node-service-B_kTE-4u.js";
127
127
  import "./status.update-DFL_a38I.js";
128
128
  import { n as validateSystemRunCommandConsistency, t as formatExecCommand } from "./system-run-command-CAPoFi-M.js";
129
129
  import { t as installSkill } from "./skills-install-WU2nt37w.js";
130
- import { t as runGatewayUpdate } from "./update-runner-B55O98W8.js";
130
+ import { t as runGatewayUpdate } from "./update-runner-D6ZdwFLX.js";
131
131
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-Dg5-fmVc.js";
132
132
  import { fileURLToPath, pathToFileURL } from "node:url";
133
133
  import * as fsSync from "node:fs";
@@ -11426,7 +11426,7 @@ const nodeHandlers = {
11426
11426
  const p = params;
11427
11427
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
11428
11428
  await respondUnavailableOnThrow(respond, async () => {
11429
- const { handleNodeEvent } = await import("./server-node-events-BE6fD68d.js");
11429
+ const { handleNodeEvent } = await import("./server-node-events-5_nsFo-O.js");
11430
11430
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
11431
11431
  await handleNodeEvent({
11432
11432
  deps: context.deps,
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-CkkDESQ2.js";
2
+ import { s as resolveStateDir } from "./paths-CyR9Pa1R.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
 
6
6
  //#region src/infra/json-file.ts
7
7
  function loadJsonFile(pathname) {
8
8
  try {
9
- if (!fsSync.existsSync(pathname)) return;
10
- const raw = fsSync.readFileSync(pathname, "utf8");
9
+ if (!fs.existsSync(pathname)) return;
10
+ const raw = fs.readFileSync(pathname, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return;
@@ -15,12 +15,12 @@ function loadJsonFile(pathname) {
15
15
  }
16
16
  function saveJsonFile(pathname, data) {
17
17
  const dir = path.dirname(pathname);
18
- if (!fsSync.existsSync(dir)) fsSync.mkdirSync(dir, {
18
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, {
19
19
  recursive: true,
20
20
  mode: 448
21
21
  });
22
- fsSync.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
- fsSync.chmodSync(pathname, 384);
22
+ fs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
+ fs.chmodSync(pathname, 384);
24
24
  }
25
25
 
26
26
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, z as isRich } from "./utils-CFnnyoTP.js";
2
- import { Ar as DEFAULT_HEARTBEAT_EVERY, Dt as setHeartbeatWakeHandler, Et as requestHeartbeatNow, H as resolveHeartbeatSenderContext, Mr as resolveHeartbeatPrompt$1, Nr as stripHeartbeatToken, Tr as CommandLane, V as resolveHeartbeatDeliveryTarget, Vr as peekSystemEventEntries, ar as resolveUserTimezone, br as getQueueSize, er as resolveEffectiveMessagesConfig, jr as isHeartbeatContentEffectivelyEmpty, kr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, t as getReplyFromConfig } from "./reply-d6yV4wB_.js";
2
+ import { Ar as DEFAULT_HEARTBEAT_EVERY, Dt as setHeartbeatWakeHandler, Et as requestHeartbeatNow, H as resolveHeartbeatSenderContext, Mr as resolveHeartbeatPrompt$1, Nr as stripHeartbeatToken, Tr as CommandLane, V as resolveHeartbeatDeliveryTarget, Vr as peekSystemEventEntries, ar as resolveUserTimezone, br as getQueueSize, er as resolveEffectiveMessagesConfig, jr as isHeartbeatContentEffectivelyEmpty, kr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, t as getReplyFromConfig } from "./reply-D9JN_rwA.js";
3
3
  import { d as resolveAgentIdFromSessionKey, h as toAgentStoreSessionKey, l as normalizeAgentId } from "./session-key-CZ6OwgSB.js";
4
4
  import { d as defaultRuntime, t as createSubsystemLogger } from "./subsystem-azPHgTb4.js";
5
5
  import { c as resolveDefaultAgentId, h as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, s as resolveAgentWorkspaceDir } from "./agent-scope-aaTVOkax.js";
@@ -12,7 +12,7 @@ import { c as resolveStorePath } from "./paths-BgQBidWi.js";
12
12
  import { T as HEARTBEAT_TOKEN, t as deliverOutboundPayloads } from "./deliver-CYip1VI8.js";
13
13
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CiVtT1xB.js";
14
14
  import { n as withProgress } from "./progress-DGUSi8NZ.js";
15
- import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, s as appendCronStyleCurrentTimeLine, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-B_kubgRp.js";
15
+ import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, s as appendCronStyleCurrentTimeLine, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-pSnRANG0.js";
16
16
  import { t as resolveChannelDefaultAccountId } from "./helpers-D9sJmea4.js";
17
17
  import path from "node:path";
18
18
  import fs from "node:fs/promises";
@@ -4,14 +4,14 @@ import { d as resolveAgentIdFromSessionKey, h as toAgentStoreSessionKey, l as no
4
4
  import { c as resolveDefaultAgentId, h as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, s as resolveAgentWorkspaceDir } from "./agent-scope-D47kRViK.js";
5
5
  import { _ as parseDurationMs, i as loadConfig } from "./config-B4-Vvu6M.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CeM4F1rK.js";
7
- import { Cr as getQueueSize, Dn as peekSystemEventEntries, Fr as resolveHeartbeatPrompt$1, Ir as stripHeartbeatToken, J as resolveHeartbeatSenderContext, Jt as requestHeartbeatNow, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, N as getReplyFromConfig, Nr as DEFAULT_HEARTBEAT_EVERY, Or as CommandLane, Pr as isHeartbeatContentEffectivelyEmpty, Yt as setHeartbeatWakeHandler, cr as resolveUserTimezone, q as resolveHeartbeatDeliveryTarget, rr as resolveEffectiveMessagesConfig } from "./subagent-registry-DJBVFvb4.js";
7
+ import { Cr as getQueueSize, Dn as peekSystemEventEntries, Fr as resolveHeartbeatPrompt$1, Ir as stripHeartbeatToken, J as resolveHeartbeatSenderContext, Jt as requestHeartbeatNow, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, N as getReplyFromConfig, Nr as DEFAULT_HEARTBEAT_EVERY, Or as CommandLane, Pr as isHeartbeatContentEffectivelyEmpty, Yt as setHeartbeatWakeHandler, cr as resolveUserTimezone, q as resolveHeartbeatDeliveryTarget, rr as resolveEffectiveMessagesConfig } from "./subagent-registry-2rHQ_z7c.js";
8
8
  import { C as resolveAgentMainSessionKey, S as canonicalizeMainSessionAlias, i as loadSessionStore, l as updateSessionStore, s as saveSessionStore } from "./sessions-D-LiJehh.js";
9
9
  import { T as HEARTBEAT_TOKEN, t as deliverOutboundPayloads } from "./deliver-a9TlmfSI.js";
10
10
  import { d as buildChannelAccountBindings, n as listChannelPlugins, p as resolvePreferredAccountId, t as getChannelPlugin } from "./plugins-bX81iDy5.js";
11
11
  import { n as formatErrorMessage } from "./errors-CKaCqKga.js";
12
12
  import { c as resolveStorePath } from "./paths-Db26sT9T.js";
13
13
  import { n as withProgress } from "./progress-689bGXNC.js";
14
- import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, s as appendCronStyleCurrentTimeLine, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-BEMg5PJB.js";
14
+ import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, s as appendCronStyleCurrentTimeLine, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-kOc5LBl6.js";
15
15
  import { t as resolveChannelDefaultAccountId } from "./helpers-DcEFMSmw.js";
16
16
  import path from "node:path";
17
17
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { cr as resolveUserTimezone, or as formatUserTime, sr as resolveUserTimeFormat } from "./subagent-registry-DJBVFvb4.js";
1
+ import { cr as resolveUserTimezone, or as formatUserTime, sr as resolveUserTimeFormat } from "./subagent-registry-2rHQ_z7c.js";
2
2
 
3
3
  //#region src/agents/current-time.ts
4
4
  function resolveCronStyleNow(cfg, nowMs) {
@@ -1,4 +1,4 @@
1
- import { ar as resolveUserTimezone, ir as resolveUserTimeFormat, rr as formatUserTime } from "./reply-d6yV4wB_.js";
1
+ import { ar as resolveUserTimezone, ir as resolveUserTimeFormat, rr as formatUserTime } from "./reply-D9JN_rwA.js";
2
2
 
3
3
  //#region src/agents/current-time.ts
4
4
  function resolveCronStyleNow(cfg, nowMs) {
@@ -1,7 +1,7 @@
1
1
  import "./paths-B4BZAPZh.js";
2
2
  import { B as theme, C as shortenHomePath, b as resolveUserPath, t as CONFIG_DIR } from "./utils-CFnnyoTP.js";
3
3
  import "./pi-embedded-helpers-DwIwt1C1.js";
4
- import "./reply-d6yV4wB_.js";
4
+ import "./reply-D9JN_rwA.js";
5
5
  import { d as defaultRuntime } from "./subsystem-azPHgTb4.js";
6
6
  import { t as runCommandWithTimeout } from "./exec-V7mqHC8U.js";
7
7
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-aaTVOkax.js";
@@ -82,7 +82,7 @@ import { a as installPackageDir, i as unscopedPackageName, n as resolveSafeInsta
82
82
  import { t as renderTable } from "./table-CQy-QAll.js";
83
83
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-Dg5-fmVc.js";
84
84
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BuxRfaJw.js";
85
- import { t as buildPluginStatusReport } from "./status-BRNeaZhV.js";
85
+ import { t as buildPluginStatusReport } from "./status-Dnim-lZW.js";
86
86
  import fs from "node:fs";
87
87
  import os from "node:os";
88
88
  import path from "node:path";
@@ -14,7 +14,7 @@ import { i as loadConfig, l as writeConfigFile } from "./config-B4-Vvu6M.js";
14
14
  import "./client-gZv0X5tz.js";
15
15
  import "./call-CeM4F1rK.js";
16
16
  import "./message-channel-CZpVDeRr.js";
17
- import "./subagent-registry-DJBVFvb4.js";
17
+ import "./subagent-registry-2rHQ_z7c.js";
18
18
  import "./sessions-D-LiJehh.js";
19
19
  import "./deliver-a9TlmfSI.js";
20
20
  import "./plugins-bX81iDy5.js";
@@ -79,7 +79,7 @@ import { a as installPackageDir, i as unscopedPackageName, n as resolveSafeInsta
79
79
  import { t as renderTable } from "./table-BU9JaTpc.js";
80
80
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-rtxGnAts.js";
81
81
  import { t as buildWorkspaceHookStatus } from "./hooks-status-ggzVrsP7.js";
82
- import { t as buildPluginStatusReport } from "./status-D0P0XQqw.js";
82
+ import { t as buildPluginStatusReport } from "./status-TVzePU0v.js";
83
83
  import os from "node:os";
84
84
  import path from "node:path";
85
85
  import fs from "node:fs";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Q as shortenHomeInString, U as isRecord } from "./exec-C_bNT00b.js";
3
- import { F as resolveImplicitCopilotProvider, I as resolveImplicitProviders, N as normalizeProviders, P as resolveImplicitBedrockProvider, U as normalizeSecretInput, _ as resolveOpenClawAgentDir, r as requireApiKey, t as getApiKeyForModel } from "./model-auth-COYibYBO.js";
4
- import { n as loadConfig } from "./config-CYlbDcBt.js";
2
+ import { Q as shortenHomeInString, U as isRecord } from "./exec-C9rZpEqA.js";
3
+ import { F as resolveImplicitCopilotProvider, I as resolveImplicitProviders, N as normalizeProviders, P as resolveImplicitBedrockProvider, U as normalizeSecretInput, _ as resolveOpenClawAgentDir, r as requireApiKey, t as getApiKeyForModel } from "./model-auth-BBAJ-iuC.js";
4
+ import { n as loadConfig } from "./config-BA8Xs1ek.js";
5
5
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Cexg1XRf.js";
6
- import { U as sanitizeUserFacingText } from "./pi-embedded-helpers-DmwtjJVo.js";
6
+ import { U as sanitizeUserFacingText } from "./pi-embedded-helpers-DHT11gwA.js";
7
7
  import { n as redactToolDetail } from "./redact-C1ne-kC_.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -1,11 +1,11 @@
1
- import { C as normalizeAccountId, g as DEFAULT_ACCOUNT_ID, w as normalizeAgentId } from "./workspace-CgGZnIx_.js";
2
- import { C as requireActivePluginRegistry, K as normalizeE164, S as getActivePluginRegistry, g as CHAT_CHANNEL_ORDER, h as CHANNEL_IDS, n as runExec, x as normalizeChatChannelId, y as normalizeAnyChannelId } from "./exec-C_bNT00b.js";
3
- import { c as resolveDefaultAgentId } from "./agent-scope-DUn-XVYs.js";
4
- import { Y as isTruthyEnvValue } from "./model-auth-COYibYBO.js";
1
+ import { C as normalizeAccountId, g as DEFAULT_ACCOUNT_ID, w as normalizeAgentId } from "./workspace-LSLFINSz.js";
2
+ import { C as requireActivePluginRegistry, K as normalizeE164, S as getActivePluginRegistry, g as CHAT_CHANNEL_ORDER, h as CHANNEL_IDS, n as runExec, x as normalizeChatChannelId, y as normalizeAnyChannelId } from "./exec-C9rZpEqA.js";
3
+ import { c as resolveDefaultAgentId } from "./agent-scope-BIw4Bz2L.js";
4
+ import { Y as isTruthyEnvValue } from "./model-auth-BBAJ-iuC.js";
5
5
  import fs from "node:fs/promises";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
- import fsSync from "node:fs";
8
+ import fs$1 from "node:fs";
9
9
  import { fileTypeFromBuffer } from "file-type";
10
10
  import { lookup } from "node:dns";
11
11
  import { lookup as lookup$1 } from "node:dns/promises";
@@ -236,7 +236,7 @@ function resolveTelegramToken(cfg, opts = {}) {
236
236
  const accountCfg = resolveAccountCfg(accountId !== DEFAULT_ACCOUNT_ID ? accountId : DEFAULT_ACCOUNT_ID);
237
237
  const accountTokenFile = accountCfg?.tokenFile?.trim();
238
238
  if (accountTokenFile) {
239
- if (!fsSync.existsSync(accountTokenFile)) {
239
+ if (!fs$1.existsSync(accountTokenFile)) {
240
240
  opts.logMissingFile?.(`channels.telegram.accounts.${accountId}.tokenFile not found: ${accountTokenFile}`);
241
241
  return {
242
242
  token: "",
@@ -244,7 +244,7 @@ function resolveTelegramToken(cfg, opts = {}) {
244
244
  };
245
245
  }
246
246
  try {
247
- const token = fsSync.readFileSync(accountTokenFile, "utf-8").trim();
247
+ const token = fs$1.readFileSync(accountTokenFile, "utf-8").trim();
248
248
  if (token) return {
249
249
  token,
250
250
  source: "tokenFile"
@@ -269,7 +269,7 @@ function resolveTelegramToken(cfg, opts = {}) {
269
269
  const allowEnv = accountId === DEFAULT_ACCOUNT_ID;
270
270
  const tokenFile = telegramCfg?.tokenFile?.trim();
271
271
  if (tokenFile && allowEnv) {
272
- if (!fsSync.existsSync(tokenFile)) {
272
+ if (!fs$1.existsSync(tokenFile)) {
273
273
  opts.logMissingFile?.(`channels.telegram.tokenFile not found: ${tokenFile}`);
274
274
  return {
275
275
  token: "",
@@ -277,7 +277,7 @@ function resolveTelegramToken(cfg, opts = {}) {
277
277
  };
278
278
  }
279
279
  try {
280
- const token = fsSync.readFileSync(tokenFile, "utf-8").trim();
280
+ const token = fs$1.readFileSync(tokenFile, "utf-8").trim();
281
281
  if (token) return {
282
282
  token,
283
283
  source: "tokenFile"