@multiplytech/openclaw 2026.2.15-pairing-code.4 → 2026.2.16-pairing-code.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 (189) 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-BxxBd9wX.js → agent-B1HFnlbT.js} +2 -2
  5. package/dist/{agent-D0LfsEPF.js → agent-CVF53E-w.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-CYgZjHoT.js} +2 -2
  8. package/dist/{audio-preflight-CbR1q2CT.js → audio-preflight-18tRQHAJ.js} +17 -17
  9. package/dist/{audio-preflight-kYQdd_bY.js → audio-preflight-CeC5WuRi.js} +4 -4
  10. package/dist/{auth-choice-B6AdPtCu.js → auth-choice-OX4fgYLq.js} +1 -1
  11. package/dist/{auth-choice-GrNENivg.js → auth-choice-YtDBU_-P.js} +1 -1
  12. package/dist/{banner-D3tgjbUi.js → banner-pgb9DZOi.js} +1 -1
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +38 -38
  15. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  16. package/dist/bundled/command-logger/handler.js +1 -1
  17. package/dist/bundled/session-memory/handler.js +32 -32
  18. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  19. package/dist/{channel-activity--HqvQlN3.js → channel-activity-C4rZNocg.js} +1 -1
  20. package/dist/{channel-options-CgdgqIte.js → channel-options-BIs-a5YL.js} +1 -1
  21. package/dist/{channel-options-C0ayB7mx.js → channel-options-ERSTdCGf.js} +1 -1
  22. package/dist/{channel-web-BTTW7H_d.js → channel-web-BuMQEIKB.js} +2 -2
  23. package/dist/{channels-cli-BcDsE2LA.js → channels-cli-BI94x7p0.js} +4 -4
  24. package/dist/{channels-cli-p5hPpQzH.js → channels-cli-nEAmL1_C.js} +4 -4
  25. package/dist/{chrome-B2PpxswT.js → chrome-BR14_3nU.js} +7 -7
  26. package/dist/{chrome-BtogRifc.js → chrome-DBVAzVv0.js} +11 -11
  27. package/dist/{cli-Oxxb4axp.js → cli-CY-qypJ3.js} +1 -1
  28. package/dist/{cli-Cwzdze-z.js → cli-DkciTrn3.js} +1 -1
  29. package/dist/{command-registry-C8q1jb3h.js → command-registry-CFV0RS72.js} +9 -9
  30. package/dist/{common-BJE3S8zA.js → common-BB2PeD4P.js} +2 -2
  31. package/dist/{completion-cli-DQd6XSG4.js → completion-cli-5S2B7SZ5.js} +2 -2
  32. package/dist/{completion-cli-CIcsx6ic.js → completion-cli-C0e1BYDl.js} +1 -1
  33. package/dist/{config-CYlbDcBt.js → config-BA8Xs1ek.js} +34 -34
  34. package/dist/{config-cli-BmW3yfH6.js → config-cli-BJuDLo1q.js} +1 -1
  35. package/dist/{config-cli-CZLDgS2E.js → config-cli-Dlo5RLGS.js} +1 -1
  36. package/dist/{configure-CRaYQ6hS.js → configure-D3MBjAI8.js} +3 -3
  37. package/dist/{configure-B0_p6Z1n.js → configure-jyLcDqEp.js} +3 -3
  38. package/dist/{deliver-BwXnLuWH.js → deliver-BDm1hy0O.js} +16 -16
  39. package/dist/{deliver-C7HjLIB7.js → deliver-DOrBYvPC.js} +1 -1
  40. package/dist/{deps-i6fBS1Dw.js → deps-Dhfew8Ve.js} +1 -1
  41. package/dist/{doctor-AUivq-af.js → doctor-CJ9Ocy-t.js} +4 -4
  42. package/dist/{doctor-Cs7rfmA-.js → doctor-aj-FftXC.js} +4 -4
  43. package/dist/{doctor-completion-CtBAIy0Z.js → doctor-completion-DxzuFFWl.js} +1 -1
  44. package/dist/{doctor-completion-C2PR6GJF.js → doctor-completion-tFb503l_.js} +1 -1
  45. package/dist/entry.js +1 -1
  46. package/dist/{exec-C_bNT00b.js → exec-C9rZpEqA.js} +17 -17
  47. package/dist/extensionAPI.js +6 -6
  48. package/dist/{fetch-mr22CaT4.js → fetch-Dyb5pqye.js} +2 -2
  49. package/dist/{frontmatter-BetN20QN.js → frontmatter-Bk_vZq47.js} +2 -2
  50. package/dist/{gateway-cli-BgGnL3cE.js → gateway-cli-CYR_B1BL.js} +9 -9
  51. package/dist/{gateway-cli-M8r3XcpJ.js → gateway-cli-D5a0Zf65.js} +9 -9
  52. package/dist/{github-copilot-token-U5JrmjNt.js → github-copilot-token-BXEGgIt5.js} +7 -7
  53. package/dist/{health-shfUNbPM.js → health-C6qMpkdp.js} +2 -2
  54. package/dist/{health-BqoIIu1u.js → health-CeEDedbp.js} +2 -2
  55. package/dist/{heartbeat-visibility-B_kubgRp.js → heartbeat-visibility-BUie23xh.js} +1 -1
  56. package/dist/{heartbeat-visibility-BEMg5PJB.js → heartbeat-visibility-DmpahYoS.js} +1 -1
  57. package/dist/{hooks-cli-99NPDBK1.js → hooks-cli-BdbLUgUR.js} +2 -2
  58. package/dist/{hooks-cli-ec5DFn5g.js → hooks-cli-DXeggrXW.js} +2 -2
  59. package/dist/{image-CRFk69Io.js → image-CIO7-OG5.js} +1 -1
  60. package/dist/{image-DN3RgnPr.js → image-Dv7bJ1hC.js} +4 -4
  61. package/dist/{image-ops-CKPJXWk4.js → image-ops-7EDUjzca.js} +9 -9
  62. package/dist/index.js +9 -9
  63. package/dist/{ir-C-hSqOPD.js → ir-eyTjTBlP.js} +6 -6
  64. package/dist/llm-slug-generator.js +32 -32
  65. package/dist/{login-BFkQgAbM.js → login-CAK_t7Bo.js} +1 -1
  66. package/dist/{login-Dydm4XDa.js → login-DCWvNOhj.js} +3 -3
  67. package/dist/{login-CwQj2jUX.js → login-VGpbFNYL.js} +1 -1
  68. package/dist/{login-CmhHGO4I.js → login-YYYcm5Zn.js} +1 -1
  69. package/dist/{login-qr-B_NTKK4T.js → login-qr-Bx_-IO9f.js} +1 -1
  70. package/dist/{login-qr-CEOlIdRe.js → login-qr-DhcuKQzs.js} +1 -1
  71. package/dist/{login-qr-CF5T7Eew.js → login-qr-DtC5kglF.js} +1 -1
  72. package/dist/{login-qr-BrIxb_5N.js → login-qr-DvE_xWA4.js} +8 -8
  73. package/dist/{manager-Ec86Dapd.js → manager-ihPMEKim.js} +10 -10
  74. package/dist/{model-auth-COYibYBO.js → model-auth-BBAJ-iuC.js} +8 -8
  75. package/dist/{models-cli-CcHjNOe3.js → models-cli-B8e7B2HA.js} +3 -3
  76. package/dist/{models-cli-GWtfGvki.js → models-cli-BzLTEYWJ.js} +2 -2
  77. package/dist/{models-D688pDKn.js → models-tBP-3BZ2.js} +2 -2
  78. package/dist/{onboard-BmB1TAqN.js → onboard-Btn0TaX3.js} +2 -2
  79. package/dist/{onboard-C5_njUCe.js → onboard-C5GH9pBq.js} +2 -2
  80. package/dist/{onboard-channels-BeXdUwL0.js → onboard-channels-B1uY37xj.js} +1 -1
  81. package/dist/{onboard-channels-BATBIQiN.js → onboard-channels-BgeNCQ9Z.js} +1 -1
  82. package/dist/{onboarding-Cjbb0fRA.js → onboarding-C_AT4K1q.js} +3 -3
  83. package/dist/{onboarding-txZtcVMA.js → onboarding-qztaeKn4.js} +3 -3
  84. package/dist/{onboarding.finalize-CSj3Rf0J.js → onboarding.finalize-BYVUM3lN.js} +5 -5
  85. package/dist/{onboarding.finalize-BI8zTyGF.js → onboarding.finalize-SK8NEQi0.js} +6 -6
  86. package/dist/{outbound-C8YnTFjo.js → outbound-N8cZjkHg.js} +5 -5
  87. package/dist/{outbound-attachment-C8Qf4dh8.js → outbound-attachment-BAu7a9Bk.js} +2 -2
  88. package/dist/{outbound-send-deps-BCi2C-Sb.js → outbound-send-deps-BQLotqwM.js} +1 -1
  89. package/dist/{paths-Bbik2tb_.js → paths-CMYSfM3T.js} +2 -2
  90. package/dist/{paths-CkkDESQ2.js → paths-CyR9Pa1R.js} +5 -5
  91. package/dist/{pi-auth-json-MhfZXNOP.js → pi-auth-json-BX0whbu8.js} +6 -6
  92. package/dist/{pi-embedded-8ou24X6D.js → pi-embedded-BEV23LBl.js} +18 -18
  93. package/dist/{pi-embedded-wVlKSjNK.js → pi-embedded-BG60ofaK.js} +116 -116
  94. package/dist/{pi-embedded-helpers-DmwtjJVo.js → pi-embedded-helpers-CpicJuB_.js} +48 -48
  95. package/dist/{pi-embedded-helpers-Dow6Qreh.js → pi-embedded-helpers-D3YxFr03.js} +4 -4
  96. package/dist/{plugin-registry-N4ZFQdQ9.js → plugin-registry-ByZhZsny.js} +1 -1
  97. package/dist/{plugin-registry-D_bG1PT_.js → plugin-registry-D6az21kB.js} +1 -1
  98. package/dist/plugin-sdk/{active-listener-CkyAenz6.js → active-listener-CFLZdKRQ.js} +2 -2
  99. package/dist/plugin-sdk/{agent-scope-DWZdK6Cr.js → agent-scope-ip6rBrUD.js} +1 -1
  100. package/dist/plugin-sdk/{audio-preflight-BzSvof9i.js → audio-preflight-C0NlyreL.js} +12 -12
  101. package/dist/plugin-sdk/{channel-web-BXr_pHKk.js → channel-web-C8lkrsJJ.js} +11 -11
  102. package/dist/plugin-sdk/{chrome-BLYh1Ek9.js → chrome-OZ5Ge8PR.js} +1 -1
  103. package/dist/plugin-sdk/{common-STTVkT-Z.js → common-pKa0kElY.js} +2 -2
  104. package/dist/plugin-sdk/{config-iUJxJaTT.js → config-DelXkt58.js} +8 -8
  105. package/dist/plugin-sdk/{deliver-Bkdn7hYJ.js → deliver-ebYNQy_5.js} +6 -6
  106. package/dist/plugin-sdk/{exec-9HIVkGqi.js → exec-C5lqk9X4.js} +2 -2
  107. package/dist/plugin-sdk/{fetch-DjHoyhHv.js → fetch-Cw_7QfME.js} +2 -2
  108. package/dist/plugin-sdk/{image-DolmBtru.js → image-2KL1DOmN.js} +4 -4
  109. package/dist/plugin-sdk/{image-ops-DvO68zWD.js → image-ops-zm4O3fkk.js} +4 -4
  110. package/dist/plugin-sdk/index.js +23 -23
  111. package/dist/plugin-sdk/{ir-D6TOa8wy.js → ir-BEwiHV7R.js} +4 -4
  112. package/dist/plugin-sdk/{login-CGRU_9Nh.js → login-CPdKgyMQ.js} +3 -3
  113. package/dist/plugin-sdk/{login-qr-D6D-dPg-.js → login-qr-zw2bFF9s.js} +5 -5
  114. package/dist/plugin-sdk/{manager-DSG4npLd.js → manager-Cqyl7HDP.js} +5 -5
  115. package/dist/plugin-sdk/{model-selection-BfTuBvS4.js → model-selection-DHMRsTNB.js} +2 -2
  116. package/dist/plugin-sdk/{outbound-BuWEi6UJ.js → outbound-DT2nH6dY.js} +4 -4
  117. package/dist/plugin-sdk/{paths-6C0IeDIg.js → paths-wRVSwmkX.js} +1 -1
  118. package/dist/plugin-sdk/{pi-auth-json-CdSpUvvH.js → pi-auth-json-XTF0mVQ6.js} +3 -3
  119. package/dist/plugin-sdk/{pi-embedded-helpers-rNIrRqeN.js → pi-embedded-helpers-C3_rwWkJ.js} +13 -13
  120. package/dist/plugin-sdk/{pw-ai-DHGDCfpy.js → pw-ai-BYr2wRwE.js} +2 -2
  121. package/dist/plugin-sdk/{qmd-manager-D0FXZkrS.js → qmd-manager-CY7j7J3V.js} +4 -4
  122. package/dist/plugin-sdk/{reply-BvOTUN2t.js → reply-BvDwtXEi.js} +35 -35
  123. package/dist/plugin-sdk/{runner-CaaUwzMJ.js → runner-DxPwS4ed.js} +7 -7
  124. package/dist/plugin-sdk/{session-Cjs4HuZk.js → session-mrbTMi6z.js} +6 -4
  125. package/dist/plugin-sdk/{sqlite-QNHsO4bW.js → sqlite-CKrK6KKr.js} +2 -2
  126. package/dist/plugin-sdk/{tool-images-BuctNDly.js → tool-images-C4GaQjrF.js} +2 -2
  127. package/dist/plugin-sdk/web-WsAcU1r8.js +30 -0
  128. package/dist/plugin-sdk/{whatsapp-actions-3adtwpVJ.js → whatsapp-actions-C5T64qvX.js} +11 -11
  129. package/dist/{plugins-cli-CFOLjXM-.js → plugins-cli-CYoJdEuV.js} +2 -2
  130. package/dist/{plugins-cli-D2KHK9jR.js → plugins-cli-CiBuw8Zv.js} +2 -2
  131. package/dist/{program-B9I5xkOF.js → program-1eDr2FR_.js} +7 -7
  132. package/dist/{program-context-C3C2WLNP.js → program-context-N3J0BGQI.js} +17 -17
  133. package/dist/{provider-auth-helpers-DIPDa8Lw.js → provider-auth-helpers-CTuNzb_a.js} +1 -1
  134. package/dist/{provider-auth-helpers-DYPDXQQP.js → provider-auth-helpers-D4N9N1AE.js} +1 -1
  135. package/dist/{pw-ai-Bbd79y0r.js → pw-ai-QsOEPS_1.js} +1 -1
  136. package/dist/{pw-ai-BCyIw4W4.js → pw-ai-lO0pe-hZ.js} +3 -3
  137. package/dist/{qmd-manager-CgC5sB-T.js → qmd-manager-DtmZgEoS.js} +6 -6
  138. package/dist/{register.agent-BedOGhk-.js → register.agent-D7S5FyBd.js} +7 -7
  139. package/dist/{register.agent-JL4_r2Jb.js → register.agent-KuwqFNdR.js} +6 -6
  140. package/dist/{register.configure-D_-8trFJ.js → register.configure-CUpPUJKy.js} +6 -6
  141. package/dist/{register.configure-U45T1EJ-.js → register.configure-ngkqJgFn.js} +6 -6
  142. package/dist/{register.maintenance-TMdlbc45.js → register.maintenance-0hqli_fU.js} +8 -8
  143. package/dist/{register.maintenance-BNhGCK92.js → register.maintenance-d9lEM27i.js} +7 -7
  144. package/dist/{register.message-DKw_hGiP.js → register.message-DivW2ola.js} +3 -3
  145. package/dist/{register.message-BdQletmJ.js → register.message-DwcLKYtP.js} +3 -3
  146. package/dist/{register.onboard-D5LHgdqV.js → register.onboard-BhI7jVMI.js} +4 -4
  147. package/dist/{register.onboard-DVHlSfZa.js → register.onboard-D88aLvtV.js} +4 -4
  148. package/dist/{register.setup-CAVftQvz.js → register.setup-BIpsZ-cV.js} +4 -4
  149. package/dist/{register.setup-Dfhxwzgk.js → register.setup-DK4breVp.js} +4 -4
  150. package/dist/{register.status-health-sessions-YCJQ83my.js → register.status-health-sessions-3uxsZQK4.js} +3 -3
  151. package/dist/{register.status-health-sessions-ixyM5rDz.js → register.status-health-sessions-9LWqHf0P.js} +3 -3
  152. package/dist/{register.subclis-D-kjKwwz.js → register.subclis-DO1CTPrk.js} +9 -9
  153. package/dist/{reply-d6yV4wB_.js → reply-DPuntYEn.js} +4 -4
  154. package/dist/{retry-D1bxhFWp.js → retry-B0RhK9tX.js} +1 -1
  155. package/dist/{run-main-D5duEqg3.js → run-main-CJzTRHIe.js} +14 -14
  156. package/dist/{runner-DGYLHL8R.js → runner-D2IJZlUb.js} +7 -7
  157. package/dist/{runner-oDUAvejt.js → runner-DED-FFOX.js} +1 -1
  158. package/dist/{send-z4yxEOnF.js → send-BMQRcdbF.js} +4 -4
  159. package/dist/{send-CKSrJ7se.js → send-BRIcpOAj.js} +5 -5
  160. package/dist/{send-Df7eglyR.js → send-CNibEQip.js} +6 -6
  161. package/dist/{send-DjP-Miy_.js → send-CWOrEtrR.js} +7 -7
  162. package/dist/{send-DULTJ0oK.js → send-DzhCsWw9.js} +7 -7
  163. package/dist/{server-node-events-BE6fD68d.js → server-node-events-DKKdyG8g.js} +3 -3
  164. package/dist/{server-node-events-C51Bayv9.js → server-node-events-Oa711I7p.js} +3 -3
  165. package/dist/{session-2uX9t1PO.js → session-B8WbAuC_.js} +10 -8
  166. package/dist/{session-Bu5MF744.js → session-BPiBYyL9.js} +4 -2
  167. package/dist/{session-ZppYapGg.js → session-CA_RZh3D.js} +4 -2
  168. package/dist/{session-B5I8E41_.js → session-D6tofP8g.js} +4 -2
  169. package/dist/{sqlite-CBMbuGLX.js → sqlite-Bfoh6OgV.js} +4 -4
  170. package/dist/{status-BRNeaZhV.js → status-BeL6rvfW.js} +1 -1
  171. package/dist/{status-D0P0XQqw.js → status-CQP-T2Oc.js} +1 -1
  172. package/dist/{status-NfZ6FkuQ.js → status-D4aJ43h4.js} +2 -2
  173. package/dist/{status-8g-vfjfP.js → status-iQbmSBZR.js} +2 -2
  174. package/dist/{store-m4I2z_5t.js → store-B6Y3aOaY.js} +2 -2
  175. package/dist/{subagent-registry-DJBVFvb4.js → subagent-registry-BYrvQHQf.js} +4 -4
  176. package/dist/{tables-7DihLyDw.js → tables-BhgdJIJu.js} +1 -1
  177. package/dist/{tool-images-hzyBQ0Og.js → tool-images-DRiKq4of.js} +2 -2
  178. package/dist/{update-cli-BZ2fDrwx.js → update-cli-B6rFMJdG.js} +8 -8
  179. package/dist/{update-cli-BOXR9slg.js → update-cli-BXc8MIoS.js} +7 -7
  180. package/dist/{update-runner-B55O98W8.js → update-runner-ALrJtrDn.js} +1 -1
  181. package/dist/{update-runner-BZFeJzUi.js → update-runner-Ce2Dt8Tg.js} +1 -1
  182. package/dist/{web-CtSLAgT_.js → web-B5sEb7LB.js} +3 -3
  183. package/dist/{web-By5urMji.js → web-CNHISkJk.js} +4 -4
  184. package/dist/{web-DoaI-RpC.js → web-WZUPUd6x.js} +8 -8
  185. package/dist/{web-C5vqAHQC.js → web-k_mMj-9K.js} +36 -36
  186. package/dist/{whatsapp-actions-C4JR_6XT.js → whatsapp-actions-x16Ismcy.js} +14 -14
  187. package/dist/{workspace-CgGZnIx_.js → workspace-LSLFINSz.js} +5 -5
  188. package/package.json +1 -1
  189. package/dist/plugin-sdk/web-CUrXnjRV.js +0 -30
@@ -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-BYrvQHQf.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-C6qMpkdp.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-Ce2Dt8Tg.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-DxzuFFWl.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-5S2B7SZ5.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-C0e1BYDl.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-CJzTRHIe.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,17 +2,17 @@ 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-BEV23LBl.js";
6
6
  import "./github-copilot-token-DZwwYztr.js";
7
- import "./deliver-C7HjLIB7.js";
7
+ import "./deliver-DOrBYvPC.js";
8
8
  import "./image-ops-B9jnR447.js";
9
9
  import "./config-Ejc5JKGl.js";
10
- import { $ as saveSessionStore, X as loadSessionStore } from "./pi-embedded-helpers-Dow6Qreh.js";
10
+ import { $ as saveSessionStore, X as loadSessionStore } from "./pi-embedded-helpers-D3YxFr03.js";
11
11
  import "./pi-model-discovery-DWTTaAgY.js";
12
- import "./chrome-B2PpxswT.js";
12
+ import "./chrome-BR14_3nU.js";
13
13
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-CdHoK26P.js";
14
14
  import "./tool-images-IRIIkjuN.js";
15
- import "./image-CRFk69Io.js";
15
+ import "./image-CIO7-OG5.js";
16
16
  import "./manager-CyBrtpKf.js";
17
17
  import "./sqlite-CUiUMvKy.js";
18
18
  import "./redact-DO22U0Pj.js";
@@ -20,7 +20,7 @@ import "./common-Cc-WjVcX.js";
20
20
  import "./ir-DtbNyKoK.js";
21
21
  import "./fetch-CE6hQpN5.js";
22
22
  import "./active-listener-B5CpzLkd.js";
23
- import "./runner-oDUAvejt.js";
23
+ import "./runner-DED-FFOX.js";
24
24
  import "./proxy-_LH9fwZb.js";
25
25
 
26
26
  export { DEFAULT_MODEL, DEFAULT_PROVIDER, ensureAgentWorkspace, loadSessionStore, resolveAgentDir, resolveAgentIdentity, resolveAgentTimeoutMs, resolveAgentWorkspaceDir, resolveSessionFilePath, resolveStorePath, resolveThinkingDefault, runEmbeddedPiAgent, saveSessionStore };
@@ -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 {}
@@ -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-DPuntYEn.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-BUie23xh.js";
90
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-Dhfew8Ve.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-D4aJ43h4.js";
117
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, s as setHeartbeatsEnabled, t as formatHealthChannelLines } from "./health-CeEDedbp.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-qztaeKn4.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-B1HFnlbT.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-ALrJtrDn.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-DKKdyG8g.js");
11430
11430
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
11431
11431
  await handleNodeEvent({
11432
11432
  deps: context.deps,
@@ -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-BYrvQHQf.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-DmpahYoS.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-iQbmSBZR.js";
113
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-C6qMpkdp.js";
114
+ import { n as createDefaultDeps, r as createOutboundSendDeps$1, t as createOutboundSendDeps } from "./outbound-send-deps-BQLotqwM.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-C_AT4K1q.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-CVF53E-w.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-Ce2Dt8Tg.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-Oa711I7p.js");
11427
11427
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
11428
11428
  await handleNodeEvent({
11429
11429
  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
@@ -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-BYrvQHQf.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-DmpahYoS.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,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-DPuntYEn.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-BUie23xh.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";
@@ -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-DPuntYEn.js";
2
2
 
3
3
  //#region src/agents/current-time.ts
4
4
  function resolveCronStyleNow(cfg, nowMs) {
@@ -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-BYrvQHQf.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-DPuntYEn.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-BeL6rvfW.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-BYrvQHQf.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-CQP-T2Oc.js";
83
83
  import os from "node:os";
84
84
  import path from "node:path";
85
85
  import fs from "node:fs";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { V as isRecord, X as shortenHomeInString } from "./exec-DgwjzGg-.js";
3
3
  import { K as normalizeSecretInput, S as requireApiKey, U as resolveOpenClawAgentDir, _ as resolveImplicitProviders, b as getApiKeyForModel, g as resolveImplicitCopilotProvider, h as resolveImplicitBedrockProvider, m as normalizeProviders } from "./model-selection-Cb6822pn.js";
4
4
  import { n as loadConfig } from "./config-Ejc5JKGl.js";
5
- import { U as sanitizeUserFacingText } from "./pi-embedded-helpers-Dow6Qreh.js";
5
+ import { U as sanitizeUserFacingText } from "./pi-embedded-helpers-D3YxFr03.js";
6
6
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DWTTaAgY.js";
7
7
  import { n as redactToolDetail } from "./redact-DO22U0Pj.js";
8
8
  import path from "node:path";
@@ -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-CpicJuB_.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"