activeclaw 2026.2.11 → 2026.2.13

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 (531) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/dist/{accounts-DbzMEfKN.js → accounts-DCDeFTra.js} +2 -2
  3. package/dist/{accounts-C2elk6PC.js → accounts-DeqIQjo1.js} +2 -2
  4. package/dist/{acp-cli-CVFTdsQY.js → acp-cli-CeYI4XRd.js} +15 -16
  5. package/dist/{acp-cli-BpJwIyLl.js → acp-cli-rNbGXICg.js} +14 -15
  6. package/dist/{agent-Bz1r5O8q.js → agent-BvNJF5QL.js} +19 -15
  7. package/dist/{agent-22-R4bNS.js → agent-CyMxTyrG.js} +20 -16
  8. package/dist/{agent-scope-D8miw9q_.js → agent-scope-BIEhVP4_.js} +172 -4
  9. package/dist/{agent-scope-CGmuusG9.js → agent-scope-CQCus0rI.js} +3 -3
  10. package/dist/{agent-scope-DQuy3dwI.js → agent-scope-CsRbLH4l.js} +4 -4
  11. package/dist/{agent-scope-BEf5crnU.js → agent-scope-DPIFau3f.js} +5 -1
  12. package/dist/audio-preflight-BU8W7uxc.js +60 -0
  13. package/dist/audio-preflight-CGsumMzb.js +60 -0
  14. package/dist/audio-preflight-SLmkJI6-.js +74 -0
  15. package/dist/audio-preflight-jZc5mFCZ.js +71 -0
  16. package/dist/{audit-C4wLaF0D.js → audit-Dmww_503.js} +71 -19
  17. package/dist/{audit-CY-yopxa.js → audit-wPu26VMb.js} +72 -20
  18. package/dist/{tailscale-DU6DgqVy.js → auth-9x3lqfIY.js} +208 -3
  19. package/dist/{tailscale-Cu-2HNvU.js → auth-CQNl_IaI.js} +190 -3
  20. package/dist/{auth-health-BFKUoCwJ.js → auth-health-C4L4FGBA.js} +1 -1
  21. package/dist/{auth-health-d7BMZlWG.js → auth-health-j6epgQbq.js} +1 -1
  22. package/dist/{auth-profiles-Bv1AEm-Y.js → auth-profiles-ByNs3eEm.js} +87 -31
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/boot-md/handler.js +28 -22
  25. package/dist/bundled/session-memory/handler.js +33 -22
  26. package/dist/{call-7yrB6v4I.js → call-DVYCIV8m.js} +5 -5
  27. package/dist/{call-Bek1xlgk.js → call-SolyGS1r.js} +6 -6
  28. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  29. package/dist/{channel-options-3mdYN0C_.js → channel-options-BwC2yQcR.js} +4 -4
  30. package/dist/{channel-options-DJ0b1m7B.js → channel-options-Cq9BVDkP.js} +12 -7
  31. package/dist/{channel-selection-RZimme3j.js → channel-selection-D4D6ImhN.js} +2 -2
  32. package/dist/{channel-selection-B9b7Kuit.js → channel-selection-MZAHm4U8.js} +2 -2
  33. package/dist/{channels-cli-CYbK2Dku.js → channels-cli-9Dsk9Qm7.js} +57 -53
  34. package/dist/{channels-cli-BFznbGOs.js → channels-cli-BJUppQll.js} +59 -55
  35. package/dist/{channels-status-issues-B3KkflfR.js → channels-status-issues-D7GSV1GS.js} +1 -1
  36. package/dist/{channels-status-issues-DQkRaZts.js → channels-status-issues-DDAWeT-6.js} +1 -1
  37. package/dist/{chrome-Db7w64LF.js → chrome-BfB6JdKF.js} +4 -4
  38. package/dist/{chrome-Dm-EgOjJ.js → chrome-Cvr-57lg.js} +6 -5
  39. package/dist/{chrome-CF16STk9.js → chrome-DL0avO8n.js} +2 -1
  40. package/dist/{chrome-yIKmOzCO.js → chrome-foEwx3lN.js} +5 -4
  41. package/dist/{clack-prompter-BCiBkJVr.js → clack-prompter-Bz3Mmcl-.js} +5 -5
  42. package/dist/{clack-prompter-DuBVnTKy.js → clack-prompter-ChCGXfyt.js} +4 -4
  43. package/dist/cli/daemon-cli.js +1 -1
  44. package/dist/{cli-Cl3PdJei.js → cli-ZR9ugUBX.js} +42 -38
  45. package/dist/cli-miPe4Ujz.js +93 -0
  46. package/dist/{client-6xKrRC-1.js → client-BrYfyoDK.js} +54 -5
  47. package/dist/{client-DMloFP_O.js → client-CTwXnRl7.js} +54 -5
  48. package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
  49. package/dist/{command-options-BTAzyqqb.js → command-options-BvgxzPbK.js} +9 -4
  50. package/dist/{commands-CjEGXOZ_.js → commands-BX_OIIVR.js} +4 -4
  51. package/dist/{completion-cli-DrJGfJGl.js → completion-cli-CR77-jyv.js} +3 -3
  52. package/dist/{completion-cli-DOec3E2Z.js → completion-cli-DnjpxAag.js} +30 -30
  53. package/dist/{config-B00lvFac.js → config-Bdhomfei.js} +21 -7
  54. package/dist/{config-XBdA0ciN.js → config-BvMsmctM.js} +83 -9
  55. package/dist/{config-BqGVMf1y.js → config-QYrbd7x7.js} +60 -6
  56. package/dist/{config--NUdpACy.js → config-aFQssWKX.js} +21 -7
  57. package/dist/{config-guard-4kCO_rnQ.js → config-guard-CljaSxJd.js} +160 -51
  58. package/dist/{configure-B69emwZv.js → configure-BXLiucXo.js} +28 -25
  59. package/dist/{configure-sMhpLzFf.js → configure-BYPqXzGZ.js} +28 -25
  60. package/dist/control-auth-8Cf4WXpR.js +54 -0
  61. package/dist/control-auth-DBCu3qyv.js +54 -0
  62. package/dist/{control-service-Db_1V-KY.js → control-service-B5KnPqGP.js} +11 -5
  63. package/dist/{control-service-IRAmbcbN.js → control-service-DKnttEus.js} +10 -4
  64. package/dist/control-ui/assets/{index-CnB9IO4a.js → index-B4LPvte9.js} +369 -369
  65. package/dist/control-ui/assets/index-B4LPvte9.js.map +1 -0
  66. package/dist/control-ui/index.html +1 -1
  67. package/dist/{cron-cli-Cum2324v.js → cron-cli-D7BRjDv2.js} +20 -20
  68. package/dist/{cron-cli-DhUWcYdk.js → cron-cli-z1zk_FXQ.js} +19 -19
  69. package/dist/{daemon-cli-q7nkEF5-.js → daemon-cli-BDkU2ocb.js} +60 -21
  70. package/dist/{daemon-cli-CTC2CHci.js → daemon-cli-cNSF93-v.js} +59 -20
  71. package/dist/{daemon-runtime-c0uXH4Dl.js → daemon-runtime-B0tg_LsX.js} +3 -3
  72. package/dist/{daemon-runtime-UsK-tOty.js → daemon-runtime-Bsjeut6m.js} +3 -3
  73. package/dist/{deliver-hf-WKyWd.js → deliver-CIU9Npgs.js} +373 -281
  74. package/dist/{deliver-CT6KiDqO.js → deliver-DYYCo1G7.js} +369 -278
  75. package/dist/{deliver-T9d44OpZ.js → deliver-LsxKETro.js} +371 -279
  76. package/dist/{deliver-CPy8jYj9.js → deliver-xUU3mGHo.js} +369 -277
  77. package/dist/{deps-Bv1kLtwo.js → deps-QSwGcoNZ.js} +2 -2
  78. package/dist/{deps-DFQdAWQc.js → deps-lAAA2zYI.js} +2 -2
  79. package/dist/{devices-cli-Cm7U1py9.js → devices-cli-BG3-2oqt.js} +14 -14
  80. package/dist/{devices-cli-ZpjlfK-e.js → devices-cli-VIQtOvt_.js} +14 -14
  81. package/dist/{directory-cli-B14TUSJA.js → directory-cli-BCJwjVC0.js} +16 -16
  82. package/dist/{directory-cli-67kzd4I5.js → directory-cli-jYzZ02gk.js} +14 -14
  83. package/dist/{dispatcher-3ElQWGVI.js → dispatcher-DY51b-Zc.js} +2 -2
  84. package/dist/{dns-cli-CU-xfhTN.js → dns-cli-DHIiMJjS.js} +12 -12
  85. package/dist/{dns-cli-Dqj7O6Q_.js → dns-cli-pZlv87Ib.js} +11 -11
  86. package/dist/{docs-cli-CamBqzb5.js → docs-cli-2JDiwfzP.js} +8 -8
  87. package/dist/{docs-cli-Cj3L5oqB.js → docs-cli-BhkYqoIQ.js} +7 -7
  88. package/dist/{doctor-BV1kvbMm.js → doctor-Bf8EhNtA.js} +36 -35
  89. package/dist/{doctor-BJirShBi.js → doctor-sYG5V4Co.js} +34 -33
  90. package/dist/entry.js +56 -18
  91. package/dist/{env-BxRc6wWv.js → env-ONzUVAG2.js} +1 -1
  92. package/dist/{exec-CijMSZd9.js → exec-B8lXct-k.js} +503 -14
  93. package/dist/{exec-B8JKbXKW.js → exec-CACT5OAW.js} +1 -1
  94. package/dist/{exec-57A8Rlc8.js → exec-CJFFoM7H.js} +32 -13
  95. package/dist/{exec-Cv_Ofd1m.js → exec-YIosokWE.js} +1 -1
  96. package/dist/{exec-approvals-cli-DEzz9Iai.js → exec-approvals-cli-7LH0lwhO.js} +21 -21
  97. package/dist/{exec-approvals-cli-DhXj3hQX.js → exec-approvals-cli-apGnQbpj.js} +21 -21
  98. package/dist/extensionAPI.js +7733 -8746
  99. package/dist/fetch-DmiOpALK.js +274 -0
  100. package/dist/fetch-timeout-BEtUjM1S.js +274 -0
  101. package/dist/fetch-timeout-DEoXG_SF.js +274 -0
  102. package/dist/fetch-timeout-DTK9vxex.js +274 -0
  103. package/dist/{gateway-cli-D1EdIq8I.js → gateway-cli-DUdYxlZS.js} +491 -136
  104. package/dist/{gateway-cli-B_xDUDy2.js → gateway-cli-DbvWmE-9.js} +495 -140
  105. package/dist/{gateway-rpc-3B5y445n.js → gateway-rpc-BByb2Snz.js} +3 -3
  106. package/dist/{gateway-rpc-BoL2vinh.js → gateway-rpc-wXSCUZXj.js} +3 -3
  107. package/dist/{github-copilot-auth-Omqrto0J.js → github-copilot-auth-D7ewvpMd.js} +205 -17
  108. package/dist/{github-copilot-auth-CZxurvdz.js → github-copilot-auth-DDispnyz.js} +205 -17
  109. package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-Cfs0Wxr8.js} +1 -1
  110. package/dist/{gmail-setup-utils-BXQKsLtI.js → gmail-setup-utils-Cfns8TQx.js} +3 -3
  111. package/dist/{gmail-setup-utils-CHcssBOA.js → gmail-setup-utils-DJb-_5kO.js} +4 -4
  112. package/dist/{health-format-Dy1caGsq.js → health-format-KGPokKJH.js} +97 -42
  113. package/dist/{health-format-DrGFg8bx.js → health-format-LZDxu3rv.js} +95 -40
  114. package/dist/{help-format-DAj7l5uV.js → help-format-C48TXngO.js} +1 -1
  115. package/dist/{help-format-CUnac_bT.js → help-format-R5fLToDw.js} +1 -1
  116. package/dist/{hooks-cli-ptEf6TIM.js → hooks-cli-CT8JCRkH.js} +51 -46
  117. package/dist/{hooks-cli-Bhf5VRp1.js → hooks-cli-S1MKumJO.js} +49 -44
  118. package/dist/{hooks-status-Br-2bK2G.js → hooks-status-Cw0xD8Lt.js} +3 -3
  119. package/dist/{hooks-status-DNQJSa4B.js → hooks-status-D9MhwHRp.js} +3 -3
  120. package/dist/{image-rOFfK3PJ.js → image-Brk1sJbw.js} +10 -7
  121. package/dist/{image-fUwR7slg.js → image-C4Nn2p3e.js} +10 -7
  122. package/dist/{image-Ds4NLGPR.js → image-DgtfXMcX.js} +9 -6
  123. package/dist/{image-Dnnxt82I.js → image-RKwc3fsL.js} +8 -5
  124. package/dist/index.js +208 -97
  125. package/dist/{installs-CRSjQxbR.js → installs-CrLcWYHe.js} +8 -7
  126. package/dist/{installs-89zeUsVn.js → installs-DscWb9b9.js} +8 -7
  127. package/dist/{links-7M-j83As.js → links-B8LAzWwg.js} +1 -1
  128. package/dist/{links-C591fM9M.js → links-Eax1UO3w.js} +1 -1
  129. package/dist/llm-slug-generator.js +18 -19
  130. package/dist/{loader-wXwp4rZJ.js → loader-KjT074JR.js} +5722 -6888
  131. package/dist/{logging-MMRGFxGI.js → logging-BAyPwvdH.js} +1 -1
  132. package/dist/{logging-DuK6YXuK.js → logging-CRq4h04P.js} +2 -2
  133. package/dist/{login-qr-wM8BnKJh.js → login-qr-B6ZgAuIf.js} +5 -5
  134. package/dist/{login-qr-CPEsT6dN.js → login-qr-Bua-p0nG.js} +3 -4
  135. package/dist/{login-qr-CGEu5TU-.js → login-qr-CuvemJj4.js} +6 -6
  136. package/dist/{login-qr-DH150tTp.js → login-qr-Djr1JfIf.js} +2 -2
  137. package/dist/{logs-cli-ClgkHnfT.js → logs-cli-9IAV7rWY.js} +38 -22
  138. package/dist/{logs-cli-CmfINsOj.js → logs-cli-EiKzUFPa.js} +37 -21
  139. package/dist/{manager-DYo4PlVM.js → manager-BIMh_eSm.js} +7 -8
  140. package/dist/{manager-D6EbxDV4.js → manager-CwinWQoz.js} +5 -5
  141. package/dist/{manager-BbnHek5T.js → manager-DkqF1GiK.js} +9 -9
  142. package/dist/{manager-CcVYv0N5.js → manager-T1XfGchB.js} +8 -8
  143. package/dist/{manifest-registry-3It8Z8yN.js → manifest-registry-CQhdnDBZ.js} +40 -2
  144. package/dist/{manifest-registry-D5SiA3xq.js → manifest-registry-u0okVSkU.js} +40 -2
  145. package/dist/{message-channel-Cu61-7H6.js → message-channel-BLi2a6Yw.js} +1 -1
  146. package/dist/{message-channel-BlgPSDAh.js → message-channel-C_MmebBt.js} +1 -1
  147. package/dist/{model-auth-ioeR_zLX.js → model-auth-CabXIF6O.js} +116 -34
  148. package/dist/{model-selection-BK7DuyH8.js → model-selection-BLuqsGVB.js} +86 -30
  149. package/dist/{model-selection-CezC36lH.js → model-selection-C1GmkTAV.js} +84 -28
  150. package/dist/{models-cli-C3uGdOrd.js → models-cli-9jmDv-h3.js} +52 -48
  151. package/dist/{models-cli-CUIVPgXE.js → models-cli-zS9rtWz8.js} +53 -49
  152. package/dist/{node-cli-BxBGSuPE.js → node-cli-CrpTxTTs.js} +28 -26
  153. package/dist/{node-cli-CdYAsuQQ.js → node-cli-wemUMCg-.js} +28 -26
  154. package/dist/{node-service-u8g85nD3.js → node-service-C8DTHTMg.js} +2 -2
  155. package/dist/{node-service-CM5vkdIo.js → node-service-WQuEKz6W.js} +2 -2
  156. package/dist/{nodes-cli-By6yeCTB.js → nodes-cli-BaU2SIFw.js} +20 -20
  157. package/dist/{nodes-cli-BaVMTAPc.js → nodes-cli-Dx23D72n.js} +20 -20
  158. package/dist/{nodes-screen-Dvl_ohUY.js → nodes-screen-C0IuBqUL.js} +1 -1
  159. package/dist/{note-5WqioBRA.js → note-BhRSeNeu.js} +2 -2
  160. package/dist/{note-Ci08TSbV.js → note-hhtubr2j.js} +1 -1
  161. package/dist/{onboard-channels-DxXvp8og.js → onboard-channels-C501x8GI.js} +8 -8
  162. package/dist/{onboard-channels-CXhnVy4E.js → onboard-channels-Dxzroasd.js} +8 -8
  163. package/dist/{onboard-skills-CBxsRGyf.js → onboard-skills-DV0Qzvjj.js} +440 -136
  164. package/dist/{onboard-skills-DQwOQ6Ry.js → onboard-skills-rlBHcu3Q.js} +439 -135
  165. package/dist/{onboarding-Du_7qEng.js → onboarding-CN-EDLjd.js} +38 -38
  166. package/dist/{openclaw-root-JLDMp6ux.js → openclaw-root-1VeFrph_.js} +4 -0
  167. package/dist/{openclaw-root-Dw6gumSU.js → openclaw-root-BNlEap4i.js} +4 -0
  168. package/dist/{pairing-cli-CRQDpj8f.js → pairing-cli-CDHG4xuI.js} +15 -15
  169. package/dist/{pairing-cli-Cng1KFWw.js → pairing-cli-CQP34Dlx.js} +15 -15
  170. package/dist/{pairing-labels-Ciu3Zoxj.js → pairing-labels-B6CN0SNH.js} +1 -1
  171. package/dist/{pairing-labels-CWFEtSc3.js → pairing-labels-CgNHnjzT.js} +1 -1
  172. package/dist/{pairing-store-c-QQ2u8p.js → pairing-store-CmlRVqOz.js} +2 -2
  173. package/dist/{pairing-store-CgXR3ZWJ.js → pairing-store-Dp5_JGnG.js} +3 -3
  174. package/dist/{path-env-CXWUFfFv.js → path-env-CLvYNwtL.js} +1 -1
  175. package/dist/{path-env-BgLvMbz_.js → path-env-CaYUVIML.js} +2 -2
  176. package/dist/{paths-MnZaxqPw.js → paths-B0a4ywSO.js} +30 -5
  177. package/dist/{paths-Bkhd_qY8.js → paths-B49s6UZQ.js} +30 -5
  178. package/dist/{paths-DL6EIRTw.js → paths-D0O87MfH.js} +30 -5
  179. package/dist/{paths-IivnSNkP.js → paths-DLINmNFQ.js} +31 -6
  180. package/dist/{pi-embedded-CgPTEqlB.js → pi-embedded-Ctrt2kz0.js} +8759 -9600
  181. package/dist/{pi-embedded-helpers-DYH6OWft.js → pi-embedded-helpers-CMKLjW6X.js} +68 -9
  182. package/dist/{pi-embedded-helpers-y1_Se0yq.js → pi-embedded-helpers-CUzTc1v6.js} +241 -24
  183. package/dist/{pi-embedded-helpers-Bkpd4fTr.js → pi-embedded-helpers-DfwkwPYD.js} +67 -8
  184. package/dist/{pi-embedded-helpers-BbWRSUnc.js → pi-embedded-helpers-WDwx99UA.js} +347 -32
  185. package/dist/{pi-tools.policy-akYsGFiA.js → pi-tools.policy-BpsROZbz.js} +4 -4
  186. package/dist/{plugin-auto-enable-lZwe2yX5.js → plugin-auto-enable-Bqhc3w5n.js} +5 -5
  187. package/dist/{plugin-auto-enable-AOSOJ-v1.js → plugin-auto-enable-PW76g_PJ.js} +5 -5
  188. package/dist/plugin-sdk/agents/bash-process-registry.d.ts +1 -0
  189. package/dist/plugin-sdk/agents/models-config.providers.d.ts +10 -0
  190. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +5 -1
  191. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
  192. package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +1 -0
  193. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -0
  194. package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +1 -0
  195. package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +2 -0
  196. package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +15 -0
  197. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +1 -1
  198. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +2 -0
  199. package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +2 -0
  200. package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +2 -0
  201. package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +4 -0
  202. package/dist/plugin-sdk/agents/tools/agent-step.d.ts +3 -0
  203. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
  204. package/dist/plugin-sdk/agents/tools/web-search.d.ts +10 -1
  205. package/dist/plugin-sdk/agents/usage.d.ts +1 -0
  206. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +1 -1
  207. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -0
  208. package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +1 -0
  209. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +3 -0
  210. package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +1 -1
  211. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
  212. package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +8 -0
  213. package/dist/plugin-sdk/auto-reply/types.d.ts +2 -0
  214. package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
  215. package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +1 -0
  216. package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
  217. package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
  218. package/dist/plugin-sdk/commands/onboard-types.d.ts +7 -1
  219. package/dist/plugin-sdk/config/sessions/paths.d.ts +7 -2
  220. package/dist/plugin-sdk/config/types.agents.d.ts +2 -0
  221. package/dist/plugin-sdk/config/types.discord.d.ts +5 -0
  222. package/dist/plugin-sdk/config/types.gateway.d.ts +15 -0
  223. package/dist/plugin-sdk/config/types.hooks.d.ts +15 -0
  224. package/dist/plugin-sdk/config/types.memory.d.ts +2 -0
  225. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
  226. package/dist/plugin-sdk/config/zod-schema.d.ts +13 -1
  227. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +1 -1
  228. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +9 -0
  229. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +4 -0
  230. package/dist/plugin-sdk/cron/service/jobs.d.ts +8 -0
  231. package/dist/plugin-sdk/cron/service/state.d.ts +1 -0
  232. package/dist/plugin-sdk/cron/types.d.ts +2 -0
  233. package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +15 -0
  234. package/dist/plugin-sdk/discord/send.types.d.ts +5 -0
  235. package/dist/plugin-sdk/gateway/auth.d.ts +36 -0
  236. package/dist/plugin-sdk/gateway/protocol/index.d.ts +0 -3
  237. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +7 -1
  238. package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
  239. package/dist/plugin-sdk/index.js +935 -660
  240. package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
  241. package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
  242. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +1 -0
  243. package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +1 -0
  244. package/dist/plugin-sdk/infra/net/ssrf.d.ts +1 -0
  245. package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
  246. package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +10 -0
  247. package/dist/plugin-sdk/logging/console.d.ts +1 -0
  248. package/dist/plugin-sdk/logging/logger.d.ts +1 -1
  249. package/dist/plugin-sdk/logging/state.d.ts +1 -0
  250. package/dist/plugin-sdk/markdown/ir.d.ts +1 -1
  251. package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
  252. package/dist/plugin-sdk/media/input-files.d.ts +5 -0
  253. package/dist/plugin-sdk/media-understanding/audio-preflight.d.ts +16 -0
  254. package/dist/plugin-sdk/media-understanding/types.d.ts +1 -0
  255. package/dist/plugin-sdk/memory/backend-config.d.ts +2 -1
  256. package/dist/plugin-sdk/memory/qmd-manager.d.ts +2 -0
  257. package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
  258. package/dist/plugin-sdk/process/command-queue.d.ts +16 -0
  259. package/dist/plugin-sdk/routing/resolve-route.d.ts +3 -1
  260. package/dist/plugin-sdk/security/external-content.d.ts +1 -1
  261. package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
  262. package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
  263. package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +8 -0
  264. package/dist/plugin-sdk/signal/monitor/mentions.d.ts +2 -0
  265. package/dist/plugin-sdk/slack/monitor/commands.d.ts +5 -0
  266. package/dist/plugin-sdk/telegram/bot-message-context.d.ts +2 -1
  267. package/dist/plugin-sdk/telegram/send.d.ts +3 -0
  268. package/dist/plugin-sdk/web/media.d.ts +2 -0
  269. package/dist/{plugins-Db5BiELK.js → plugins-4Hqd1WGf.js} +3 -3
  270. package/dist/{plugins-CNaHNND_.js → plugins-X7d_tfTE.js} +4 -4
  271. package/dist/{plugins-cli-8G-hQPCu.js → plugins-cli-Bgku3EGj.js} +253 -44
  272. package/dist/{plugins-cli-CDiocaDE.js → plugins-cli-CVToH3if.js} +257 -48
  273. package/dist/{ports-BeebfNCb.js → ports-qkt29rdC.js} +2 -2
  274. package/dist/{program-0Cj9YxRN.js → program-Cf7lkBur.js} +82 -80
  275. package/dist/{progress-DIQJt9Va.js → progress-C9kngsTD.js} +1 -1
  276. package/dist/{progress-Da1ehW-x.js → progress-DWqhRakV.js} +1 -1
  277. package/dist/{prompt-style-Dc0C5HC9.js → prompt-style-BFH5D5LN.js} +1 -1
  278. package/dist/{prompt-style-CjQRlDx4.js → prompt-style-CIbmaxSa.js} +1 -1
  279. package/dist/{pw-ai-C43wv1ZF.js → pw-ai-8mdv3h-d.js} +7 -6
  280. package/dist/{pw-ai-COWYvUfG.js → pw-ai-CM1IsSgZ.js} +6 -6
  281. package/dist/{pw-ai-BxJ-KCIy.js → pw-ai-FGoRVblI.js} +5 -6
  282. package/dist/{pw-ai-CsvaObGM.js → pw-ai-sS1fRKW_.js} +3 -3
  283. package/dist/{qmd-manager-CpsjQyaZ.js → qmd-manager-C67Fc8aN.js} +79 -26
  284. package/dist/{qmd-manager-C9YWFeG6.js → qmd-manager-CXVbfg99.js} +81 -26
  285. package/dist/{qmd-manager-C02E8ixK.js → qmd-manager-RMRE8Tqt.js} +81 -26
  286. package/dist/{qmd-manager-BzY2LQTT.js → qmd-manager-pyc_MTIe.js} +78 -23
  287. package/dist/{register.subclis-DUkirdHn.js → register.subclis-C02e4zuJ.js} +29 -29
  288. package/dist/{reply--b7BsXGP.js → reply-DICXkh_C.js} +7289 -8455
  289. package/dist/{routes-DUkEKAc1.js → routes-CmOI1hIH.js} +29 -11
  290. package/dist/{routes-B4QQiFju.js → routes-DewK5tq2.js} +29 -12
  291. package/dist/{rpc-CuMtxrRT.js → rpc-DHr30euf.js} +3 -3
  292. package/dist/{rpc-Blt6MJ4F.js → rpc-T300F8zI.js} +3 -3
  293. package/dist/{run-main-XZcPA23b.js → run-main-C5wpthq1.js} +84 -82
  294. package/dist/runner-CY0nmVme.js +1886 -0
  295. package/dist/runner-Cfm5nTMc.js +1785 -0
  296. package/dist/runner-D_dujMod.js +1886 -0
  297. package/dist/runner-DrGYLH5K.js +1785 -0
  298. package/dist/{sandbox-Aks-9EcZ.js → sandbox-BKYnhYQH.js} +24 -17
  299. package/dist/{sandbox-DqUO2K83.js → sandbox-Bhjnh1Xg.js} +23 -16
  300. package/dist/{sandbox-cli-C99Thxi8.js → sandbox-cli-DBsAjZJN.js} +21 -21
  301. package/dist/{sandbox-cli-CJqRM4V6.js → sandbox-cli-rV9LtFeu.js} +21 -21
  302. package/dist/{security-cli-iqYLMOz3.js → security-cli-BIwJM_rs.js} +27 -27
  303. package/dist/{security-cli-DW3lCz-o.js → security-cli-BRjny8Yu.js} +27 -27
  304. package/dist/{server-context-fX4xiYRh.js → server-context-BGpGs3qd.js} +7 -7
  305. package/dist/{server-context-8Qt35QdF.js → server-context-Cl0U0vE3.js} +7 -7
  306. package/dist/{server-node-events-CHWXfb_T.js → server-node-events-CBfTbiTA.js} +48 -44
  307. package/dist/{server-node-events-BzrEnKLX.js → server-node-events-QCvh8EgI.js} +45 -41
  308. package/dist/{service-Cd4BxKuo.js → service--nPk7DvT.js} +8 -4
  309. package/dist/{service-DDPRbf8a.js → service-99RDXwX4.js} +8 -4
  310. package/dist/{service-audit-CCFxuvKs.js → service-audit-DnLmRGQt.js} +4 -4
  311. package/dist/{service-audit-x6jCN-6a.js → service-audit-ckBaRCVC.js} +4 -4
  312. package/dist/{session-cost-usage-CcCEQNuc.js → session-cost-usage-D7HuoSSD.js} +12 -10
  313. package/dist/{session-cost-usage-PvyVZz-g.js → session-cost-usage-D9hHANWI.js} +12 -10
  314. package/dist/{shared-ILguacOr.js → shared-Bs4vduG4.js} +3 -3
  315. package/dist/{shared-CagUDdmp.js → shared-CEY5IkwG.js} +3 -3
  316. package/dist/{shared-gOyV38rM.js → shared-DRohONn_.js} +4 -4
  317. package/dist/{shared-BDk_zC9p.js → shared-ICqOZibV.js} +4 -4
  318. package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-CucvxYhu.js} +1 -1
  319. package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-rHMtUHtP.js} +1 -1
  320. package/dist/{skills-D5UZZZSY.js → skills-DRjfSQT3.js} +141 -6
  321. package/dist/{skills-ccAgQ3Ad.js → skills-DprQj9X2.js} +142 -7
  322. package/dist/{skills-cli-DQilTG3n.js → skills-cli-9WO-C55s.js} +12 -12
  323. package/dist/{skills-cli-ggyLBtAY.js → skills-cli-B9eej-EW.js} +13 -13
  324. package/dist/{skills-status-BosMnzIs.js → skills-status-5U3P3YfJ.js} +3 -3
  325. package/dist/{skills-status-DjtPPMnY.js → skills-status-TDIgVd1K.js} +2 -2
  326. package/dist/{sqlite-B7FPASCO.js → sqlite-BINzs1U0.js} +2 -2
  327. package/dist/{sqlite-Btrgi7-j.js → sqlite-D4w5TejA.js} +3 -3
  328. package/dist/{sqlite-BrQ9tw8B.js → sqlite-DRRHmlug.js} +3 -3
  329. package/dist/{sqlite-HepBVDoX.js → sqlite-F6PGkEm1.js} +2 -2
  330. package/dist/{status-BByCntWS.js → status-BKGkKC_v.js} +3 -3
  331. package/dist/{status-Dt7RE_Yy.js → status-CiHtHdaa.js} +4 -4
  332. package/dist/{status-zfL4Yej7.js → status-DDWoOpeB.js} +37 -37
  333. package/dist/{subsystem-Bh1Y_6Uv.js → subsystem-BoExtIHo.js} +52 -17
  334. package/dist/{system-cli-DwuUkdkH.js → system-cli-B6lr60Io.js} +14 -14
  335. package/dist/{system-cli-Clqsx8U5.js → system-cli-CprW9G3h.js} +14 -14
  336. package/dist/{systemd-BEWwfwn0.js → systemd-C0VZriGM.js} +3 -3
  337. package/dist/{systemd-D6wTPnHi.js → systemd-DrmBtJ5T.js} +3 -3
  338. package/dist/{systemd-hints-zi4ohCOY.js → systemd-hints-DZtXiVHa.js} +1 -1
  339. package/dist/{systemd-linger-CDo2UbHM.js → systemd-linger-NC2kl1SC.js} +2 -2
  340. package/dist/{systemd-linger-BxjTrgoH.js → systemd-linger-xdn3BdPh.js} +2 -2
  341. package/dist/{table-DEnmtvl5.js → table-B8dx3v4v.js} +2 -2
  342. package/dist/{table-cCoGqLsk.js → table-CwulTLQp.js} +1 -1
  343. package/dist/{tool-display-DskiU8Kt.js → tool-display-CZRIDMRm.js} +2 -2
  344. package/dist/{tool-display-o-dDAlqF.js → tool-display-ClRud3pg.js} +2 -2
  345. package/dist/{tui-BdJWZdto.js → tui-CVTQn-dC.js} +14 -13
  346. package/dist/{tui-Bc7XUQGP.js → tui-Lu8FdrlK.js} +13 -14
  347. package/dist/{tui-cli-BGYh0UL0.js → tui-cli-BLpTj1X9.js} +27 -27
  348. package/dist/{tui-cli-D3n-O9zB.js → tui-cli-BLx5kL2I.js} +26 -26
  349. package/dist/{tui-formatters-CA85v4U2.js → tui-formatters-CNySEfJN.js} +6 -6
  350. package/dist/{tui-formatters-C3NarH24.js → tui-formatters-DePhZK3J.js} +6 -6
  351. package/dist/{update-JB16aPIY.js → update-DHVxMTpQ.js} +3 -3
  352. package/dist/{update-Ct9sqJC_.js → update-DU1geolI.js} +3 -3
  353. package/dist/{update-cli-wWKDS3cm.js → update-cli-C0hUvJWK.js} +89 -71
  354. package/dist/{update-cli-DDXp_N9B.js → update-cli-Wb1GB3rL.js} +88 -70
  355. package/dist/{update-runner-ChTf6O6p.js → update-runner--ixK4J3W.js} +11 -11
  356. package/dist/{update-runner-CmE6cHdn.js → update-runner-7Qa1T9y6.js} +10 -10
  357. package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
  358. package/dist/{utils-es4ygvQ-.js → utils-Cd9QdCHh.js} +1 -1
  359. package/dist/{webhooks-cli-CVIE9TtX.js → webhooks-cli-DgcMy7RG.js} +12 -12
  360. package/dist/{webhooks-cli-BmKSiQQC.js → webhooks-cli-aVzUcJY9.js} +11 -11
  361. package/dist/{widearea-dns-2ah0bkAj.js → widearea-dns-BaIgNEhY.js} +3 -3
  362. package/dist/{widearea-dns-CMIG6-74.js → widearea-dns-DzuRdwk5.js} +3 -3
  363. package/dist/{ws-DtDKpbLR.js → ws-CHCQHs0F.js} +1 -1
  364. package/dist/{ws-log-BP3z_g6Z.js → ws-log-CIXbLCka.js} +1 -1
  365. package/dist/{ws-log-D7MkvKhg.js → ws-log-DcQFZByi.js} +2 -2
  366. package/dist/{wsl-Cwo7X0Un.js → wsl-BUOkxKJu.js} +2 -2
  367. package/docs/assets/install-script.svg +1 -0
  368. package/docs/automation/hooks.md +1 -38
  369. package/docs/automation/webhook.md +43 -2
  370. package/docs/channels/discord.md +389 -381
  371. package/docs/channels/imessage.md +229 -218
  372. package/docs/channels/slack.md +294 -415
  373. package/docs/channels/telegram.md +401 -505
  374. package/docs/channels/whatsapp.md +338 -310
  375. package/docs/ci.md +0 -12
  376. package/docs/cli/hooks.md +1 -14
  377. package/docs/cli/index.md +6 -1
  378. package/docs/cli/logs.md +4 -0
  379. package/docs/cli/onboard.md +30 -0
  380. package/docs/cli/plugins.md +20 -1
  381. package/docs/cli/security.md +1 -0
  382. package/docs/concepts/memory.md +7 -4
  383. package/docs/concepts/session-tool.md +1 -0
  384. package/docs/docs.json +11 -11
  385. package/docs/gateway/configuration-examples.md +9 -2
  386. package/docs/gateway/configuration-reference.md +2329 -0
  387. package/docs/gateway/configuration.md +338 -3304
  388. package/docs/gateway/index.md +162 -238
  389. package/docs/gateway/openresponses-http-api.md +15 -0
  390. package/docs/gateway/security/index.md +3 -0
  391. package/docs/help/faq.md +9 -0
  392. package/docs/install/hetzner.md +21 -0
  393. package/docs/install/installer.md +20 -0
  394. package/docs/nodes/audio.md +19 -0
  395. package/docs/platforms/mac/release.md +7 -7
  396. package/docs/providers/glm.md +3 -3
  397. package/docs/providers/index.md +1 -0
  398. package/docs/providers/litellm.md +153 -0
  399. package/docs/providers/zai.md +2 -2
  400. package/docs/reference/templates/AGENTS.md +26 -26
  401. package/docs/reference/templates/HEARTBEAT.md +31 -2
  402. package/docs/reference/templates/SOUL.md +14 -8
  403. package/docs/reference/transcript-hygiene.md +18 -0
  404. package/docs/start/getting-started.md +5 -0
  405. package/docs/start/wizard-cli-automation.md +17 -0
  406. package/docs/start/wizard-cli-reference.md +12 -0
  407. package/docs/tools/browser.md +6 -0
  408. package/docs/zh-CN/automation/hooks.md +1 -38
  409. package/docs/zh-CN/cli/hooks.md +1 -14
  410. package/extensions/bluebubbles/package.json +1 -1
  411. package/extensions/bluebubbles/src/monitor.test.ts +40 -28
  412. package/extensions/bluebubbles/src/monitor.ts +0 -4
  413. package/extensions/copilot-proxy/package.json +1 -1
  414. package/extensions/diagnostics-otel/package.json +10 -10
  415. package/extensions/discord/package.json +1 -1
  416. package/extensions/feishu/package.json +2 -5
  417. package/extensions/feishu/src/bot.checkBotMentioned.test.ts +64 -0
  418. package/extensions/feishu/src/bot.ts +1 -1
  419. package/extensions/feishu/src/channel.test.ts +48 -0
  420. package/extensions/feishu/src/channel.ts +1 -3
  421. package/extensions/feishu/src/config-schema.ts +6 -0
  422. package/extensions/feishu/src/docx.ts +14 -4
  423. package/extensions/feishu/src/media.test.ts +151 -0
  424. package/extensions/feishu/src/media.ts +27 -13
  425. package/extensions/feishu/src/reply-dispatcher.test.ts +116 -0
  426. package/extensions/feishu/src/reply-dispatcher.ts +124 -67
  427. package/extensions/feishu/src/streaming-card.ts +223 -0
  428. package/extensions/feishu/src/targets.test.ts +16 -0
  429. package/extensions/feishu/src/targets.ts +1 -1
  430. package/extensions/google-antigravity-auth/package.json +1 -1
  431. package/extensions/google-gemini-cli-auth/package.json +1 -1
  432. package/extensions/googlechat/package.json +1 -1
  433. package/extensions/imessage/package.json +1 -1
  434. package/extensions/irc/package.json +1 -1
  435. package/extensions/irc/src/client.ts +1 -1
  436. package/extensions/line/package.json +1 -1
  437. package/extensions/llm-task/package.json +1 -1
  438. package/extensions/lobster/package.json +1 -1
  439. package/extensions/matrix/CHANGELOG.md +6 -0
  440. package/extensions/matrix/package.json +2 -2
  441. package/extensions/mattermost/package.json +1 -1
  442. package/extensions/memory-core/package.json +1 -1
  443. package/extensions/memory-lancedb/index.ts +6 -2
  444. package/extensions/memory-lancedb/package.json +2 -2
  445. package/extensions/minimax-portal-auth/index.ts +7 -5
  446. package/extensions/minimax-portal-auth/package.json +1 -1
  447. package/extensions/msteams/CHANGELOG.md +6 -0
  448. package/extensions/msteams/package.json +1 -1
  449. package/extensions/nextcloud-talk/package.json +1 -1
  450. package/extensions/nostr/CHANGELOG.md +6 -0
  451. package/extensions/nostr/package.json +2 -2
  452. package/extensions/open-prose/package.json +1 -1
  453. package/extensions/signal/package.json +1 -1
  454. package/extensions/slack/package.json +1 -1
  455. package/extensions/telegram/package.json +1 -1
  456. package/extensions/tlon/package.json +1 -1
  457. package/extensions/twitch/CHANGELOG.md +6 -0
  458. package/extensions/twitch/package.json +1 -1
  459. package/extensions/voice-call/CHANGELOG.md +6 -0
  460. package/extensions/voice-call/package.json +1 -1
  461. package/extensions/voice-call/src/media-stream.ts +7 -1
  462. package/extensions/voice-call/src/providers/twilio.test.ts +5 -3
  463. package/extensions/voice-call/src/providers/twilio.ts +12 -1
  464. package/extensions/whatsapp/package.json +1 -1
  465. package/extensions/zalo/CHANGELOG.md +6 -0
  466. package/extensions/zalo/package.json +1 -1
  467. package/extensions/zalouser/CHANGELOG.md +6 -0
  468. package/extensions/zalouser/package.json +1 -1
  469. package/package.json +26 -22
  470. package/dist/auth-BcNHFK-i.js +0 -184
  471. package/dist/auth-BvIPpm7G.js +0 -184
  472. package/dist/boolean-M-esQJt6.js +0 -30
  473. package/dist/bundled/soul-evil/HOOK.md +0 -71
  474. package/dist/bundled/soul-evil/handler.js +0 -194
  475. package/dist/cli-DJbWJ9aB.js +0 -89
  476. package/dist/config-CI7EpvlP.js +0 -15
  477. package/dist/control-ui/assets/index-CnB9IO4a.js.map +0 -1
  478. package/dist/date-time-c6HTX6IW.js +0 -187
  479. package/dist/frontmatter-xwTm0734.js +0 -105
  480. package/dist/parse-duration-De_tAQSe.js +0 -24
  481. package/dist/session-key-nXYQSv-a.js +0 -167
  482. package/dist/utils-dp_OM900.js +0 -476
  483. package/docs/hooks/soul-evil.md +0 -69
  484. package/docs/zh-CN/hooks/soul-evil.md +0 -72
  485. /package/dist/{archive-CXhvR9nU.js → archive-beaSfAzA.js} +0 -0
  486. /package/dist/{brew-BIrWdDps.js → brew-BUIxHEkn.js} +0 -0
  487. /package/dist/{brew-B7YK4ZoL.js → brew-ROHf0-Xp.js} +0 -0
  488. /package/dist/{cli-utils-PlLcDZlM.js → cli-utils-CRhVAaLV.js} +0 -0
  489. /package/dist/{cli-utils-R-ECs5cY.js → cli-utils-LcHOt63h.js} +0 -0
  490. /package/dist/{command-format-BUxhT1xL.js → command-format-qUVxzqYm.js} +0 -0
  491. /package/dist/{constants-CNTiY-ZN.js → constants-BvQ6S8j5.js} +0 -0
  492. /package/dist/{constants-DuoCkWRh.js → constants-JPeoOZnw.js} +0 -0
  493. /package/dist/{errors-D3tYRJWG.js → errors-B91HIDPD.js} +0 -0
  494. /package/dist/{errors-B0eT3jVv.js → errors-Bv81hF2P.js} +0 -0
  495. /package/dist/{errors-x4NYs-1P.js → errors-DjZBTJJ3.js} +0 -0
  496. /package/dist/{exec-approvals-DGPTjO0N.js → exec-approvals-Cb4ZLukq.js} +0 -0
  497. /package/dist/{exec-approvals-DhmKpiIo.js → exec-approvals-DQ8TVVmj.js} +0 -0
  498. /package/dist/{format-CaxeRcue.js → format-CNU-Zkrz.js} +0 -0
  499. /package/dist/{format-DLOJPZmo.js → format-DcfK-dwd.js} +0 -0
  500. /package/dist/{format-duration-Be5Z7JdJ.js → format-duration-84n6_DgO.js} +0 -0
  501. /package/dist/{format-duration-CEmFWLyX.js → format-duration-Bo9zNKwO.js} +0 -0
  502. /package/dist/{format-relative-79_Y1n2Y.js → format-relative-CZOlQ2pA.js} +0 -0
  503. /package/dist/{format-relative-Db7eqEu8.js → format-relative-cegC_FF5.js} +0 -0
  504. /package/dist/{github-copilot-token-C9IJh2Pn.js → github-copilot-token-DkiRbJdR.js} +0 -0
  505. /package/dist/{helpers-CQI-5xS9.js → helpers-8O7IVGO-.js} +0 -0
  506. /package/dist/{helpers-CRzoyyXS.js → helpers-D_jqdWkd.js} +0 -0
  507. /package/dist/{helpers-C89IG08W.js → helpers-HyeZXsnu.js} +0 -0
  508. /package/dist/{is-main-WWuz28Ip.js → is-main-BWoXGz7p.js} +0 -0
  509. /package/dist/{logging-BzvBIA3Y.js → logging-fywhKCmE.js} +0 -0
  510. /package/dist/{nodes-screen-lykd2cny.js → nodes-screen-CdCWeiwy.js} +0 -0
  511. /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
  512. /package/dist/{parse-DqAvJRIf.js → parse-ioZhOtha.js} +0 -0
  513. /package/dist/{parse-log-line-CUrpqe1w.js → parse-log-line-BoDqomM4.js} +0 -0
  514. /package/dist/{parse-log-line-D2UGw0wR.js → parse-log-line-DPxH1XZx.js} +0 -0
  515. /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
  516. /package/dist/{parse-timeout-DV8NQQWk.js → parse-timeout-DMW-z4Iz.js} +0 -0
  517. /package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-DqgqUyAv.js} +0 -0
  518. /package/dist/{pi-model-discovery-DzFOAbQt.js → pi-model-discovery-EwKVHlZB.js} +0 -0
  519. /package/dist/{prompts--d-6l5Ln.js → prompts-Bg96reub.js} +0 -0
  520. /package/dist/{redact-DAKeu7PA.js → redact-BRsnXqwD.js} +0 -0
  521. /package/dist/{redact-DuEEf1p1.js → redact-Br9GfacZ.js} +0 -0
  522. /package/dist/{redact-BOIof271.js → redact-BrXLgslJ.js} +0 -0
  523. /package/dist/{status-Cv36yYdi.js → status-BRZfQbJ2.js} +0 -0
  524. /package/dist/{status-Drziap9H.js → status-CoAy6bEC.js} +0 -0
  525. /package/dist/{systemd-hints-CH4pbCFD.js → systemd-hints-CXNtLw9Q.js} +0 -0
  526. /package/dist/{tailnet-DGRSvYuQ.js → tailnet-DATIFSsY.js} +0 -0
  527. /package/dist/{transcript-events-BlIONGVn.js → transcript-events-BHS7QoRl.js} +0 -0
  528. /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
  529. /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-BtNd-j6q.js} +0 -0
  530. /package/dist/{usage-format-6Uar63S0.js → usage-format-C4JfTbSp.js} +0 -0
  531. /package/dist/{usage-format-hd37en6b.js → usage-format-CpORtVCG.js} +0 -0
@@ -5,326 +5,250 @@ read_when:
5
5
  title: "Gateway Runbook"
6
6
  ---
7
7
 
8
- # Gateway service runbook
8
+ # Gateway runbook
9
9
 
10
- Last updated: 2025-12-09
10
+ Use this page for day-1 startup and day-2 operations of the Gateway service.
11
11
 
12
- ## What it is
12
+ <CardGroup cols={2}>
13
+ <Card title="Deep troubleshooting" icon="siren" href="/gateway/troubleshooting">
14
+ Symptom-first diagnostics with exact command ladders and log signatures.
15
+ </Card>
16
+ <Card title="Configuration" icon="sliders" href="/gateway/configuration">
17
+ Task-oriented setup guide + full configuration reference.
18
+ </Card>
19
+ </CardGroup>
13
20
 
14
- - The always-on process that owns the single Baileys/Telegram connection and the control/event plane.
15
- - Replaces the legacy `gateway` command. CLI entry point: `openclaw gateway`.
16
- - Runs until stopped; exits non-zero on fatal errors so the supervisor restarts it.
21
+ ## 5-minute local startup
17
22
 
18
- ## How to run (local)
23
+ <Steps>
24
+ <Step title="Start the Gateway">
19
25
 
20
26
  ```bash
21
27
  openclaw gateway --port 18789
22
- # for full debug/trace logs in stdio:
28
+ # debug/trace mirrored to stdio
23
29
  openclaw gateway --port 18789 --verbose
24
- # if the port is busy, terminate listeners then start:
30
+ # force-kill listener on selected port, then start
25
31
  openclaw gateway --force
26
- # dev loop (auto-reload on TS changes):
27
- pnpm gateway:watch
28
32
  ```
29
33
 
30
- - Config hot reload watches `~/.openclaw/openclaw.json` (or `OPENCLAW_CONFIG_PATH`).
31
- - Default mode: `gateway.reload.mode="hybrid"` (hot-apply safe changes, restart on critical).
32
- - Hot reload uses in-process restart via **SIGUSR1** when needed.
33
- - Disable with `gateway.reload.mode="off"`.
34
- - Binds WebSocket control plane to `127.0.0.1:<port>` (default 18789).
35
- - The same port also serves HTTP (control UI, hooks, A2UI). Single-port multiplex.
36
- - OpenAI Chat Completions (HTTP): [`/v1/chat/completions`](/gateway/openai-http-api).
37
- - OpenResponses (HTTP): [`/v1/responses`](/gateway/openresponses-http-api).
38
- - Tools Invoke (HTTP): [`/tools/invoke`](/gateway/tools-invoke-http-api).
39
- - Starts a Canvas file server by default on `canvasHost.port` (default `18793`), serving `http://<gateway-host>:18793/__openclaw__/canvas/` from `~/.openclaw/workspace/canvas`. Disable with `canvasHost.enabled=false` or `OPENCLAW_SKIP_CANVAS_HOST=1`.
40
- - Logs to stdout; use launchd/systemd to keep it alive and rotate logs.
41
- - Pass `--verbose` to mirror debug logging (handshakes, req/res, events) from the log file into stdio when troubleshooting.
42
- - `--force` uses `lsof` to find listeners on the chosen port, sends SIGTERM, logs what it killed, then starts the gateway (fails fast if `lsof` is missing).
43
- - If you run under a supervisor (launchd/systemd/mac app child-process mode), a stop/restart typically sends **SIGTERM**; older builds may surface this as `pnpm` `ELIFECYCLE` exit code **143** (SIGTERM), which is a normal shutdown, not a crash.
44
- - **SIGUSR1** triggers an in-process restart when authorized (gateway tool/config apply/update, or enable `commands.restart` for manual restarts).
45
- - Gateway auth is required by default: set `gateway.auth.token` (or `OPENCLAW_GATEWAY_TOKEN`) or `gateway.auth.password`. Clients must send `connect.params.auth.token/password` unless using Tailscale Serve identity.
46
- - The wizard now generates a token by default, even on loopback.
47
- - Port precedence: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > default `18789`.
34
+ </Step>
48
35
 
49
- ## Remote access
36
+ <Step title="Verify service health">
37
+
38
+ ```bash
39
+ openclaw gateway status
40
+ openclaw status
41
+ openclaw logs --follow
42
+ ```
50
43
 
51
- - Tailscale/VPN preferred; otherwise SSH tunnel:
44
+ Healthy baseline: `Runtime: running` and `RPC probe: ok`.
52
45
 
53
- ```bash
54
- ssh -N -L 18789:127.0.0.1:18789 user@host
55
- ```
46
+ </Step>
56
47
 
57
- - Clients then connect to `ws://127.0.0.1:18789` through the tunnel.
58
- - If a token is configured, clients must include it in `connect.params.auth.token` even over the tunnel.
48
+ <Step title="Validate channel readiness">
59
49
 
60
- ## Multiple gateways (same host)
50
+ ```bash
51
+ openclaw channels status --probe
52
+ ```
61
53
 
62
- Usually unnecessary: one Gateway can serve multiple messaging channels and agents. Use multiple Gateways only for redundancy or strict isolation (ex: rescue bot).
54
+ </Step>
55
+ </Steps>
63
56
 
64
- Supported if you isolate state + config and use unique ports. Full guide: [Multiple gateways](/gateway/multiple-gateways).
57
+ <Note>
58
+ Gateway config reload watches the active config file path (resolved from profile/state defaults, or `OPENCLAW_CONFIG_PATH` when set).
59
+ Default mode is `gateway.reload.mode="hybrid"`.
60
+ </Note>
65
61
 
66
- Service names are profile-aware:
62
+ ## Runtime model
67
63
 
68
- - macOS: `bot.molt.<profile>` (legacy `com.openclaw.*` may still exist)
69
- - Linux: `openclaw-gateway-<profile>.service`
70
- - Windows: `OpenClaw Gateway (<profile>)`
64
+ - One always-on process for routing, control plane, and channel connections.
65
+ - Single multiplexed port for:
66
+ - WebSocket control/RPC
67
+ - HTTP APIs (OpenAI-compatible, Responses, tools invoke)
68
+ - Control UI and hooks
69
+ - Default bind mode: `loopback`.
70
+ - Auth is required by default (`gateway.auth.token` / `gateway.auth.password`, or `OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD`).
71
71
 
72
- Install metadata is embedded in the service config:
72
+ ### Port and bind precedence
73
73
 
74
- - `OPENCLAW_SERVICE_MARKER=openclaw`
75
- - `OPENCLAW_SERVICE_KIND=gateway`
76
- - `OPENCLAW_SERVICE_VERSION=<version>`
74
+ | Setting | Resolution order |
75
+ | ------------ | ------------------------------------------------------------- |
76
+ | Gateway port | `--port` → `OPENCLAW_GATEWAY_PORT` → `gateway.port` → `18789` |
77
+ | Bind mode | CLI/override → `gateway.bind` → `loopback` |
77
78
 
78
- Rescue-Bot Pattern: keep a second Gateway isolated with its own profile, state dir, workspace, and base port spacing. Full guide: [Rescue-bot guide](/gateway/multiple-gateways#rescue-bot-guide).
79
+ ### Hot reload modes
79
80
 
80
- ### Dev profile (`--dev`)
81
+ | `gateway.reload.mode` | Behavior |
82
+ | --------------------- | ------------------------------------------ |
83
+ | `off` | No config reload |
84
+ | `hot` | Apply only hot-safe changes |
85
+ | `restart` | Restart on reload-required changes |
86
+ | `hybrid` (default) | Hot-apply when safe, restart when required |
81
87
 
82
- Fast path: run a fully-isolated dev instance (config/state/workspace) without touching your primary setup.
88
+ ## Operator command set
83
89
 
84
90
  ```bash
85
- openclaw --dev setup
86
- openclaw --dev gateway --allow-unconfigured
87
- # then target the dev instance:
88
- openclaw --dev status
89
- openclaw --dev health
91
+ openclaw gateway status
92
+ openclaw gateway status --deep
93
+ openclaw gateway status --json
94
+ openclaw gateway install
95
+ openclaw gateway restart
96
+ openclaw gateway stop
97
+ openclaw logs --follow
98
+ openclaw doctor
90
99
  ```
91
100
 
92
- Defaults (can be overridden via env/flags/config):
101
+ ## Remote access
93
102
 
94
- - `OPENCLAW_STATE_DIR=~/.openclaw-dev`
95
- - `OPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.json`
96
- - `OPENCLAW_GATEWAY_PORT=19001` (Gateway WS + HTTP)
97
- - browser control service port = `19003` (derived: `gateway.port+2`, loopback only)
98
- - `canvasHost.port=19005` (derived: `gateway.port+4`)
99
- - `agents.defaults.workspace` default becomes `~/.openclaw/workspace-dev` when you run `setup`/`onboard` under `--dev`.
103
+ Preferred: Tailscale/VPN.
104
+ Fallback: SSH tunnel.
100
105
 
101
- Derived ports (rules of thumb):
106
+ ```bash
107
+ ssh -N -L 18789:127.0.0.1:18789 user@host
108
+ ```
102
109
 
103
- - Base port = `gateway.port` (or `OPENCLAW_GATEWAY_PORT` / `--port`)
104
- - browser control service port = base + 2 (loopback only)
105
- - `canvasHost.port = base + 4` (or `OPENCLAW_CANVAS_HOST_PORT` / config override)
106
- - Browser profile CDP ports auto-allocate from `browser.controlPort + 9 .. + 108` (persisted per profile).
110
+ Then connect clients to `ws://127.0.0.1:18789` locally.
107
111
 
108
- Checklist per instance:
112
+ <Warning>
113
+ If gateway auth is configured, clients still must send auth (`token`/`password`) even over SSH tunnels.
114
+ </Warning>
109
115
 
110
- - unique `gateway.port`
111
- - unique `OPENCLAW_CONFIG_PATH`
112
- - unique `OPENCLAW_STATE_DIR`
113
- - unique `agents.defaults.workspace`
114
- - separate WhatsApp numbers (if using WA)
116
+ See: [Remote Gateway](/gateway/remote), [Authentication](/gateway/authentication), [Tailscale](/gateway/tailscale).
115
117
 
116
- Service install per profile:
118
+ ## Supervision and service lifecycle
117
119
 
118
- ```bash
119
- openclaw --profile main gateway install
120
- openclaw --profile rescue gateway install
121
- ```
120
+ Use supervised runs for production-like reliability.
122
121
 
123
- Example:
122
+ <Tabs>
123
+ <Tab title="macOS (launchd)">
124
124
 
125
125
  ```bash
126
- OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001
127
- OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
126
+ openclaw gateway install
127
+ openclaw gateway status
128
+ openclaw gateway restart
129
+ openclaw gateway stop
128
130
  ```
129
131
 
130
- ## Protocol (operator view)
131
-
132
- - Full docs: [Gateway protocol](/gateway/protocol) and [Bridge protocol (legacy)](/gateway/bridge-protocol).
133
- - Mandatory first frame from client: `req {type:"req", id, method:"connect", params:{minProtocol,maxProtocol,client:{id,displayName?,version,platform,deviceFamily?,modelIdentifier?,mode,instanceId?}, caps, auth?, locale?, userAgent? } }`.
134
- - Gateway replies `res {type:"res", id, ok:true, payload:hello-ok }` (or `ok:false` with an error, then closes).
135
- - After handshake:
136
- - Requests: `{type:"req", id, method, params}` → `{type:"res", id, ok, payload|error}`
137
- - Events: `{type:"event", event, payload, seq?, stateVersion?}`
138
- - Structured presence entries: `{host, ip, version, platform?, deviceFamily?, modelIdentifier?, mode, lastInputSeconds?, ts, reason?, tags?[], instanceId? }` (for WS clients, `instanceId` comes from `connect.client.instanceId`).
139
- - `agent` responses are two-stage: first `res` ack `{runId,status:"accepted"}`, then a final `res` `{runId,status:"ok"|"error",summary}` after the run finishes; streamed output arrives as `event:"agent"`.
132
+ LaunchAgent labels are `ai.openclaw.gateway` (default) or `ai.openclaw.<profile>` (named profile). `openclaw doctor` audits and repairs service config drift.
140
133
 
141
- ## Methods (initial set)
134
+ </Tab>
142
135
 
143
- - `health` — full health snapshot (same shape as `openclaw health --json`).
144
- - `status` — short summary.
145
- - `system-presence` — current presence list.
146
- - `system-event` — post a presence/system note (structured).
147
- - `send` — send a message via the active channel(s).
148
- - `agent` — run an agent turn (streams events back on same connection).
149
- - `node.list` — list paired + currently-connected nodes (includes `caps`, `deviceFamily`, `modelIdentifier`, `paired`, `connected`, and advertised `commands`).
150
- - `node.describe` — describe a node (capabilities + supported `node.invoke` commands; works for paired nodes and for currently-connected unpaired nodes).
151
- - `node.invoke` — invoke a command on a node (e.g. `canvas.*`, `camera.*`).
152
- - `node.pair.*` — pairing lifecycle (`request`, `list`, `approve`, `reject`, `verify`).
136
+ <Tab title="Linux (systemd user)">
153
137
 
154
- See also: [Presence](/concepts/presence) for how presence is produced/deduped and why a stable `client.instanceId` matters.
155
-
156
- ## Events
157
-
158
- - `agent` — streamed tool/output events from the agent run (seq-tagged).
159
- - `presence` — presence updates (deltas with stateVersion) pushed to all connected clients.
160
- - `tick` — periodic keepalive/no-op to confirm liveness.
161
- - `shutdown` — Gateway is exiting; payload includes `reason` and optional `restartExpectedMs`. Clients should reconnect.
162
-
163
- ## WebChat integration
138
+ ```bash
139
+ openclaw gateway install
140
+ systemctl --user enable --now openclaw-gateway[-<profile>].service
141
+ openclaw gateway status
142
+ ```
164
143
 
165
- - WebChat is a native SwiftUI UI that talks directly to the Gateway WebSocket for history, sends, abort, and events.
166
- - Remote use goes through the same SSH/Tailscale tunnel; if a gateway token is configured, the client includes it during `connect`.
167
- - macOS app connects via a single WS (shared connection); it hydrates presence from the initial snapshot and listens for `presence` events to update the UI.
144
+ For persistence after logout, enable lingering:
168
145
 
169
- ## Typing and validation
146
+ ```bash
147
+ sudo loginctl enable-linger <user>
148
+ ```
170
149
 
171
- - Server validates every inbound frame with AJV against JSON Schema emitted from the protocol definitions.
172
- - Clients (TS/Swift) consume generated types (TS directly; Swift via the repo’s generator).
173
- - Protocol definitions are the source of truth; regenerate schema/models with:
174
- - `pnpm protocol:gen`
175
- - `pnpm protocol:gen:swift`
150
+ </Tab>
176
151
 
177
- ## Connection snapshot
152
+ <Tab title="Linux (system service)">
178
153
 
179
- - `hello-ok` includes a `snapshot` with `presence`, `health`, `stateVersion`, and `uptimeMs` plus `policy {maxPayload,maxBufferedBytes,tickIntervalMs}` so clients can render immediately without extra requests.
180
- - `health`/`system-presence` remain available for manual refresh, but are not required at connect time.
154
+ Use a system unit for multi-user/always-on hosts.
181
155
 
182
- ## Error codes (res.error shape)
156
+ ```bash
157
+ sudo systemctl daemon-reload
158
+ sudo systemctl enable --now openclaw-gateway[-<profile>].service
159
+ ```
183
160
 
184
- - Errors use `{ code, message, details?, retryable?, retryAfterMs? }`.
185
- - Standard codes:
186
- - `NOT_LINKED` — WhatsApp not authenticated.
187
- - `AGENT_TIMEOUT` — agent did not respond within the configured deadline.
188
- - `INVALID_REQUEST` — schema/param validation failed.
189
- - `UNAVAILABLE` — Gateway is shutting down or a dependency is unavailable.
161
+ </Tab>
162
+ </Tabs>
190
163
 
191
- ## Keepalive behavior
164
+ ## Multiple gateways on one host
192
165
 
193
- - `tick` events (or WS ping/pong) are emitted periodically so clients know the Gateway is alive even when no traffic occurs.
194
- - Send/agent acknowledgements remain separate responses; do not overload ticks for sends.
166
+ Most setups should run **one** Gateway.
167
+ Use multiple only for strict isolation/redundancy (for example a rescue profile).
195
168
 
196
- ## Replay / gaps
169
+ Checklist per instance:
197
170
 
198
- - Events are not replayed. Clients detect seq gaps and should refresh (`health` + `system-presence`) before continuing. WebChat and macOS clients now auto-refresh on gap.
171
+ - Unique `gateway.port`
172
+ - Unique `OPENCLAW_CONFIG_PATH`
173
+ - Unique `OPENCLAW_STATE_DIR`
174
+ - Unique `agents.defaults.workspace`
199
175
 
200
- ## Supervision (macOS example)
176
+ Example:
201
177
 
202
- - Use launchd to keep the service alive:
203
- - Program: path to `openclaw`
204
- - Arguments: `gateway`
205
- - KeepAlive: true
206
- - StandardOut/Err: file paths or `syslog`
207
- - On failure, launchd restarts; fatal misconfig should keep exiting so the operator notices.
208
- - LaunchAgents are per-user and require a logged-in session; for headless setups use a custom LaunchDaemon (not shipped).
209
- - `openclaw gateway install` writes `~/Library/LaunchAgents/bot.molt.gateway.plist`
210
- (or `bot.molt.<profile>.plist`; legacy `com.openclaw.*` is cleaned up).
211
- - `openclaw doctor` audits the LaunchAgent config and can update it to current defaults.
178
+ ```bash
179
+ OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001
180
+ OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
181
+ ```
212
182
 
213
- ## Gateway service management (CLI)
183
+ See: [Multiple gateways](/gateway/multiple-gateways).
214
184
 
215
- Use the Gateway CLI for install/start/stop/restart/status:
185
+ ### Dev profile quick path
216
186
 
217
187
  ```bash
218
- openclaw gateway status
219
- openclaw gateway install
220
- openclaw gateway stop
221
- openclaw gateway restart
222
- openclaw logs --follow
188
+ openclaw --dev setup
189
+ openclaw --dev gateway --allow-unconfigured
190
+ openclaw --dev status
223
191
  ```
224
192
 
225
- Notes:
193
+ Defaults include isolated state/config and base gateway port `19001`.
226
194
 
227
- - `gateway status` probes the Gateway RPC by default using the service’s resolved port/config (override with `--url`).
228
- - `gateway status --deep` adds system-level scans (LaunchDaemons/system units).
229
- - `gateway status --no-probe` skips the RPC probe (useful when networking is down).
230
- - `gateway status --json` is stable for scripts.
231
- - `gateway status` reports **supervisor runtime** (launchd/systemd running) separately from **RPC reachability** (WS connect + status RPC).
232
- - `gateway status` prints config path + probe target to avoid “localhost vs LAN bind” confusion and profile mismatches.
233
- - `gateway status` includes the last gateway error line when the service looks running but the port is closed.
234
- - `logs` tails the Gateway file log via RPC (no manual `tail`/`grep` needed).
235
- - If other gateway-like services are detected, the CLI warns unless they are OpenClaw profile services.
236
- We still recommend **one gateway per machine** for most setups; use isolated profiles/ports for redundancy or a rescue bot. See [Multiple gateways](/gateway/multiple-gateways).
237
- - Cleanup: `openclaw gateway uninstall` (current service) and `openclaw doctor` (legacy migrations).
238
- - `gateway install` is a no-op when already installed; use `openclaw gateway install --force` to reinstall (profile/env/path changes).
195
+ ## Protocol quick reference (operator view)
239
196
 
240
- Bundled mac app:
197
+ - First client frame must be `connect`.
198
+ - Gateway returns `hello-ok` snapshot (`presence`, `health`, `stateVersion`, `uptimeMs`, limits/policy).
199
+ - Requests: `req(method, params)` → `res(ok/payload|error)`.
200
+ - Common events: `connect.challenge`, `agent`, `chat`, `presence`, `tick`, `health`, `heartbeat`, `shutdown`.
241
201
 
242
- - OpenClaw.app can bundle a Node-based gateway relay and install a per-user LaunchAgent labeled
243
- `bot.molt.gateway` (or `bot.molt.<profile>`; legacy `com.openclaw.*` labels still unload cleanly).
244
- - To stop it cleanly, use `openclaw gateway stop` (or `launchctl bootout gui/$UID/bot.molt.gateway`).
245
- - To restart, use `openclaw gateway restart` (or `launchctl kickstart -k gui/$UID/bot.molt.gateway`).
246
- - `launchctl` only works if the LaunchAgent is installed; otherwise use `openclaw gateway install` first.
247
- - Replace the label with `bot.molt.<profile>` when running a named profile.
202
+ Agent runs are two-stage:
248
203
 
249
- ## Supervision (systemd user unit)
204
+ 1. Immediate accepted ack (`status:"accepted"`)
205
+ 2. Final completion response (`status:"ok"|"error"`), with streamed `agent` events in between.
250
206
 
251
- OpenClaw installs a **systemd user service** by default on Linux/WSL2. We
252
- recommend user services for single-user machines (simpler env, per-user config).
253
- Use a **system service** for multi-user or always-on servers (no lingering
254
- required, shared supervision).
207
+ See full protocol docs: [Gateway Protocol](/gateway/protocol).
255
208
 
256
- `openclaw gateway install` writes the user unit. `openclaw doctor` audits the
257
- unit and can update it to match the current recommended defaults.
258
-
259
- Create `~/.config/systemd/user/openclaw-gateway[-<profile>].service`:
260
-
261
- ```
262
- [Unit]
263
- Description=OpenClaw Gateway (profile: <profile>, v<version>)
264
- After=network-online.target
265
- Wants=network-online.target
266
-
267
- [Service]
268
- ExecStart=/usr/local/bin/openclaw gateway --port 18789
269
- Restart=always
270
- RestartSec=5
271
- Environment=OPENCLAW_GATEWAY_TOKEN=
272
- WorkingDirectory=/home/youruser
273
-
274
- [Install]
275
- WantedBy=default.target
276
- ```
209
+ ## Operational checks
277
210
 
278
- Enable lingering (required so the user service survives logout/idle):
211
+ ### Liveness
279
212
 
280
- ```
281
- sudo loginctl enable-linger youruser
282
- ```
213
+ - Open WS and send `connect`.
214
+ - Expect `hello-ok` response with snapshot.
283
215
 
284
- Onboarding runs this on Linux/WSL2 (may prompt for sudo; writes `/var/lib/systemd/linger`).
285
- Then enable the service:
216
+ ### Readiness
286
217
 
287
- ```
288
- systemctl --user enable --now openclaw-gateway[-<profile>].service
218
+ ```bash
219
+ openclaw gateway status
220
+ openclaw channels status --probe
221
+ openclaw health
289
222
  ```
290
223
 
291
- **Alternative (system service)** - for always-on or multi-user servers, you can
292
- install a systemd **system** unit instead of a user unit (no lingering needed).
293
- Create `/etc/systemd/system/openclaw-gateway[-<profile>].service` (copy the unit above,
294
- switch `WantedBy=multi-user.target`, set `User=` + `WorkingDirectory=`), then:
224
+ ### Gap recovery
295
225
 
296
- ```
297
- sudo systemctl daemon-reload
298
- sudo systemctl enable --now openclaw-gateway[-<profile>].service
299
- ```
226
+ Events are not replayed. On sequence gaps, refresh state (`health`, `system-presence`) before continuing.
300
227
 
301
- ## Windows (WSL2)
228
+ ## Common failure signatures
302
229
 
303
- Windows installs should use **WSL2** and follow the Linux systemd section above.
230
+ | Signature | Likely issue |
231
+ | -------------------------------------------------------------- | ---------------------------------------- |
232
+ | `refusing to bind gateway ... without auth` | Non-loopback bind without token/password |
233
+ | `another gateway instance is already listening` / `EADDRINUSE` | Port conflict |
234
+ | `Gateway start blocked: set gateway.mode=local` | Config set to remote mode |
235
+ | `unauthorized` during connect | Auth mismatch between client and gateway |
304
236
 
305
- ## Operational checks
306
-
307
- - Liveness: open WS and send `req:connect` → expect `res` with `payload.type="hello-ok"` (with snapshot).
308
- - Readiness: call `health` → expect `ok: true` and a linked channel in `linkChannel` (when applicable).
309
- - Debug: subscribe to `tick` and `presence` events; ensure `status` shows linked/auth age; presence entries show Gateway host and connected clients.
237
+ For full diagnosis ladders, use [Gateway Troubleshooting](/gateway/troubleshooting).
310
238
 
311
239
  ## Safety guarantees
312
240
 
313
- - Assume one Gateway per host by default; if you run multiple profiles, isolate ports/state and target the right instance.
314
- - No fallback to direct Baileys connections; if the Gateway is down, sends fail fast.
315
- - Non-connect first frames or malformed JSON are rejected and the socket is closed.
316
- - Graceful shutdown: emit `shutdown` event before closing; clients must handle close + reconnect.
241
+ - Gateway protocol clients fail fast when Gateway is unavailable (no implicit direct-channel fallback).
242
+ - Invalid/non-connect first frames are rejected and closed.
243
+ - Graceful shutdown emits `shutdown` event before socket close.
317
244
 
318
- ## CLI helpers
319
-
320
- - `openclaw gateway health|status` — request health/status over the Gateway WS.
321
- - `openclaw message send --target <num> --message "hi" [--media ...]` — send via Gateway (idempotent for WhatsApp).
322
- - `openclaw agent --message "hi" --to <num>` — run an agent turn (waits for final by default).
323
- - `openclaw gateway call <method> --params '{"k":"v"}'` — raw method invoker for debugging.
324
- - `openclaw gateway stop|restart` — stop/restart the supervised gateway service (launchd/systemd).
325
- - Gateway helper subcommands assume a running gateway on `--url`; they no longer auto-spawn one.
245
+ ---
326
246
 
327
- ## Migration guidance
247
+ Related:
328
248
 
329
- - Retire uses of `openclaw gateway` and the legacy TCP control port.
330
- - Update clients to speak the WS protocol with mandatory connect and structured presence.
249
+ - [Troubleshooting](/gateway/troubleshooting)
250
+ - [Background Process](/gateway/background-process)
251
+ - [Configuration](/gateway/configuration)
252
+ - [Health](/gateway/health)
253
+ - [Doctor](/gateway/doctor)
254
+ - [Authentication](/gateway/authentication)
@@ -186,7 +186,11 @@ URL fetch defaults:
186
186
 
187
187
  - `files.allowUrl`: `true`
188
188
  - `images.allowUrl`: `true`
189
+ - `maxUrlParts`: `8` (total URL-based `input_file` + `input_image` parts per request)
189
190
  - Requests are guarded (DNS resolution, private IP blocking, redirect caps, timeouts).
191
+ - Optional hostname allowlists are supported per input type (`files.urlAllowlist`, `images.urlAllowlist`).
192
+ - Exact host: `"cdn.example.com"`
193
+ - Wildcard subdomains: `"*.assets.example.com"` (does not match apex)
190
194
 
191
195
  ## File + image limits (config)
192
196
 
@@ -200,8 +204,10 @@ Defaults can be tuned under `gateway.http.endpoints.responses`:
200
204
  responses: {
201
205
  enabled: true,
202
206
  maxBodyBytes: 20000000,
207
+ maxUrlParts: 8,
203
208
  files: {
204
209
  allowUrl: true,
210
+ urlAllowlist: ["cdn.example.com", "*.assets.example.com"],
205
211
  allowedMimes: [
206
212
  "text/plain",
207
213
  "text/markdown",
@@ -222,6 +228,7 @@ Defaults can be tuned under `gateway.http.endpoints.responses`:
222
228
  },
223
229
  images: {
224
230
  allowUrl: true,
231
+ urlAllowlist: ["images.example.com"],
225
232
  allowedMimes: ["image/jpeg", "image/png", "image/gif", "image/webp"],
226
233
  maxBytes: 10485760,
227
234
  maxRedirects: 3,
@@ -237,6 +244,7 @@ Defaults can be tuned under `gateway.http.endpoints.responses`:
237
244
  Defaults when omitted:
238
245
 
239
246
  - `maxBodyBytes`: 20MB
247
+ - `maxUrlParts`: 8
240
248
  - `files.maxBytes`: 5MB
241
249
  - `files.maxChars`: 200k
242
250
  - `files.maxRedirects`: 3
@@ -248,6 +256,13 @@ Defaults when omitted:
248
256
  - `images.maxRedirects`: 3
249
257
  - `images.timeoutMs`: 10s
250
258
 
259
+ Security note:
260
+
261
+ - URL allowlists are enforced before fetch and on redirect hops.
262
+ - Allowlisting a hostname does not bypass private/internal IP blocking.
263
+ - For internet-exposed gateways, apply network egress controls in addition to app-level guards.
264
+ See [Security](/gateway/security).
265
+
251
266
  ## Streaming (SSE)
252
267
 
253
268
  Set `stream: true` to receive Server-Sent Events (SSE):
@@ -265,6 +265,9 @@ tool calls. Reduce the blast radius by:
265
265
  - Using a read-only or tool-disabled **reader agent** to summarize untrusted content,
266
266
  then pass the summary to your main agent.
267
267
  - Keeping `web_search` / `web_fetch` / `browser` off for tool-enabled agents unless needed.
268
+ - For OpenResponses URL inputs (`input_file` / `input_image`), set tight
269
+ `gateway.http.endpoints.responses.files.urlAllowlist` and
270
+ `gateway.http.endpoints.responses.images.urlAllowlist`, and keep `maxUrlParts` low.
268
271
  - Enabling sandboxing and strict tool allowlists for any agent that touches untrusted input.
269
272
  - Keeping secrets out of prompts; pass them via env/config on the gateway host instead.
270
273
 
package/docs/help/faq.md CHANGED
@@ -546,6 +546,15 @@ For a hackable (git) install:
546
546
  curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --verbose
547
547
  ```
548
548
 
549
+ Windows (PowerShell) equivalent:
550
+
551
+ ```powershell
552
+ # install.ps1 has no dedicated -Verbose flag yet.
553
+ Set-PSDebug -Trace 1
554
+ & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
555
+ Set-PSDebug -Trace 0
556
+ ```
557
+
549
558
  More options: [Installer flags](/install/installer).
550
559
 
551
560
  ### Windows install says git not found or openclaw not recognized
@@ -329,3 +329,24 @@ All long-lived state must survive restarts, rebuilds, and reboots.
329
329
  | Node runtime | Container filesystem | Docker image | Rebuilt every image build |
330
330
  | OS packages | Container filesystem | Docker image | Do not install at runtime |
331
331
  | Docker container | Ephemeral | Restartable | Safe to destroy |
332
+
333
+ ---
334
+
335
+ ## Infrastructure as Code (Terraform)
336
+
337
+ For teams preferring infrastructure-as-code workflows, a community-maintained Terraform setup provides:
338
+
339
+ - Modular Terraform configuration with remote state management
340
+ - Automated provisioning via cloud-init
341
+ - Deployment scripts (bootstrap, deploy, backup/restore)
342
+ - Security hardening (firewall, UFW, SSH-only access)
343
+ - SSH tunnel configuration for gateway access
344
+
345
+ **Repositories:**
346
+
347
+ - Infrastructure: [openclaw-terraform-hetzner](https://github.com/andreesg/openclaw-terraform-hetzner)
348
+ - Docker config: [openclaw-docker-config](https://github.com/andreesg/openclaw-docker-config)
349
+
350
+ This approach complements the Docker setup above with reproducible deployments, version-controlled infrastructure, and automated disaster recovery.
351
+
352
+ > **Note:** Community-maintained. For issues or contributions, see the repository links above.
@@ -286,6 +286,14 @@ Designed for environments where you want everything under a local prefix (defaul
286
286
  & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -DryRun
287
287
  ```
288
288
  </Tab>
289
+ <Tab title="Debug trace">
290
+ ```powershell
291
+ # install.ps1 has no dedicated -Verbose flag yet.
292
+ Set-PSDebug -Trace 1
293
+ & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
294
+ Set-PSDebug -Trace 0
295
+ ```
296
+ </Tab>
289
297
  </Tabs>
290
298
 
291
299
  <AccordionGroup>
@@ -379,6 +387,18 @@ Use non-interactive flags/env vars for predictable runs.
379
387
  Run `npm config get prefix`, append `\bin`, add that directory to user PATH, then reopen PowerShell.
380
388
  </Accordion>
381
389
 
390
+ <Accordion title="Windows: how to get verbose installer output">
391
+ `install.ps1` does not currently expose a `-Verbose` switch.
392
+ Use PowerShell tracing for script-level diagnostics:
393
+
394
+ ```powershell
395
+ Set-PSDebug -Trace 1
396
+ & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
397
+ Set-PSDebug -Trace 0
398
+ ```
399
+
400
+ </Accordion>
401
+
382
402
  <Accordion title="openclaw not found after install">
383
403
  Usually a PATH issue. See [Node.js troubleshooting](/install/node#troubleshooting).
384
404
  </Accordion>