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.
- package/CHANGELOG.md +106 -0
- package/dist/{accounts-DbzMEfKN.js → accounts-DCDeFTra.js} +2 -2
- package/dist/{accounts-C2elk6PC.js → accounts-DeqIQjo1.js} +2 -2
- package/dist/{acp-cli-CVFTdsQY.js → acp-cli-CeYI4XRd.js} +15 -16
- package/dist/{acp-cli-BpJwIyLl.js → acp-cli-rNbGXICg.js} +14 -15
- package/dist/{agent-Bz1r5O8q.js → agent-BvNJF5QL.js} +19 -15
- package/dist/{agent-22-R4bNS.js → agent-CyMxTyrG.js} +20 -16
- package/dist/{agent-scope-D8miw9q_.js → agent-scope-BIEhVP4_.js} +172 -4
- package/dist/{agent-scope-CGmuusG9.js → agent-scope-CQCus0rI.js} +3 -3
- package/dist/{agent-scope-DQuy3dwI.js → agent-scope-CsRbLH4l.js} +4 -4
- package/dist/{agent-scope-BEf5crnU.js → agent-scope-DPIFau3f.js} +5 -1
- package/dist/audio-preflight-BU8W7uxc.js +60 -0
- package/dist/audio-preflight-CGsumMzb.js +60 -0
- package/dist/audio-preflight-SLmkJI6-.js +74 -0
- package/dist/audio-preflight-jZc5mFCZ.js +71 -0
- package/dist/{audit-C4wLaF0D.js → audit-Dmww_503.js} +71 -19
- package/dist/{audit-CY-yopxa.js → audit-wPu26VMb.js} +72 -20
- package/dist/{tailscale-DU6DgqVy.js → auth-9x3lqfIY.js} +208 -3
- package/dist/{tailscale-Cu-2HNvU.js → auth-CQNl_IaI.js} +190 -3
- package/dist/{auth-health-BFKUoCwJ.js → auth-health-C4L4FGBA.js} +1 -1
- package/dist/{auth-health-d7BMZlWG.js → auth-health-j6epgQbq.js} +1 -1
- package/dist/{auth-profiles-Bv1AEm-Y.js → auth-profiles-ByNs3eEm.js} +87 -31
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +28 -22
- package/dist/bundled/session-memory/handler.js +33 -22
- package/dist/{call-7yrB6v4I.js → call-DVYCIV8m.js} +5 -5
- package/dist/{call-Bek1xlgk.js → call-SolyGS1r.js} +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-3mdYN0C_.js → channel-options-BwC2yQcR.js} +4 -4
- package/dist/{channel-options-DJ0b1m7B.js → channel-options-Cq9BVDkP.js} +12 -7
- package/dist/{channel-selection-RZimme3j.js → channel-selection-D4D6ImhN.js} +2 -2
- package/dist/{channel-selection-B9b7Kuit.js → channel-selection-MZAHm4U8.js} +2 -2
- package/dist/{channels-cli-CYbK2Dku.js → channels-cli-9Dsk9Qm7.js} +57 -53
- package/dist/{channels-cli-BFznbGOs.js → channels-cli-BJUppQll.js} +59 -55
- package/dist/{channels-status-issues-B3KkflfR.js → channels-status-issues-D7GSV1GS.js} +1 -1
- package/dist/{channels-status-issues-DQkRaZts.js → channels-status-issues-DDAWeT-6.js} +1 -1
- package/dist/{chrome-Db7w64LF.js → chrome-BfB6JdKF.js} +4 -4
- package/dist/{chrome-Dm-EgOjJ.js → chrome-Cvr-57lg.js} +6 -5
- package/dist/{chrome-CF16STk9.js → chrome-DL0avO8n.js} +2 -1
- package/dist/{chrome-yIKmOzCO.js → chrome-foEwx3lN.js} +5 -4
- package/dist/{clack-prompter-BCiBkJVr.js → clack-prompter-Bz3Mmcl-.js} +5 -5
- package/dist/{clack-prompter-DuBVnTKy.js → clack-prompter-ChCGXfyt.js} +4 -4
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Cl3PdJei.js → cli-ZR9ugUBX.js} +42 -38
- package/dist/cli-miPe4Ujz.js +93 -0
- package/dist/{client-6xKrRC-1.js → client-BrYfyoDK.js} +54 -5
- package/dist/{client-DMloFP_O.js → client-CTwXnRl7.js} +54 -5
- package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
- package/dist/{command-options-BTAzyqqb.js → command-options-BvgxzPbK.js} +9 -4
- package/dist/{commands-CjEGXOZ_.js → commands-BX_OIIVR.js} +4 -4
- package/dist/{completion-cli-DrJGfJGl.js → completion-cli-CR77-jyv.js} +3 -3
- package/dist/{completion-cli-DOec3E2Z.js → completion-cli-DnjpxAag.js} +30 -30
- package/dist/{config-B00lvFac.js → config-Bdhomfei.js} +21 -7
- package/dist/{config-XBdA0ciN.js → config-BvMsmctM.js} +83 -9
- package/dist/{config-BqGVMf1y.js → config-QYrbd7x7.js} +60 -6
- package/dist/{config--NUdpACy.js → config-aFQssWKX.js} +21 -7
- package/dist/{config-guard-4kCO_rnQ.js → config-guard-CljaSxJd.js} +160 -51
- package/dist/{configure-B69emwZv.js → configure-BXLiucXo.js} +28 -25
- package/dist/{configure-sMhpLzFf.js → configure-BYPqXzGZ.js} +28 -25
- package/dist/control-auth-8Cf4WXpR.js +54 -0
- package/dist/control-auth-DBCu3qyv.js +54 -0
- package/dist/{control-service-Db_1V-KY.js → control-service-B5KnPqGP.js} +11 -5
- package/dist/{control-service-IRAmbcbN.js → control-service-DKnttEus.js} +10 -4
- package/dist/control-ui/assets/{index-CnB9IO4a.js → index-B4LPvte9.js} +369 -369
- package/dist/control-ui/assets/index-B4LPvte9.js.map +1 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/{cron-cli-Cum2324v.js → cron-cli-D7BRjDv2.js} +20 -20
- package/dist/{cron-cli-DhUWcYdk.js → cron-cli-z1zk_FXQ.js} +19 -19
- package/dist/{daemon-cli-q7nkEF5-.js → daemon-cli-BDkU2ocb.js} +60 -21
- package/dist/{daemon-cli-CTC2CHci.js → daemon-cli-cNSF93-v.js} +59 -20
- package/dist/{daemon-runtime-c0uXH4Dl.js → daemon-runtime-B0tg_LsX.js} +3 -3
- package/dist/{daemon-runtime-UsK-tOty.js → daemon-runtime-Bsjeut6m.js} +3 -3
- package/dist/{deliver-hf-WKyWd.js → deliver-CIU9Npgs.js} +373 -281
- package/dist/{deliver-CT6KiDqO.js → deliver-DYYCo1G7.js} +369 -278
- package/dist/{deliver-T9d44OpZ.js → deliver-LsxKETro.js} +371 -279
- package/dist/{deliver-CPy8jYj9.js → deliver-xUU3mGHo.js} +369 -277
- package/dist/{deps-Bv1kLtwo.js → deps-QSwGcoNZ.js} +2 -2
- package/dist/{deps-DFQdAWQc.js → deps-lAAA2zYI.js} +2 -2
- package/dist/{devices-cli-Cm7U1py9.js → devices-cli-BG3-2oqt.js} +14 -14
- package/dist/{devices-cli-ZpjlfK-e.js → devices-cli-VIQtOvt_.js} +14 -14
- package/dist/{directory-cli-B14TUSJA.js → directory-cli-BCJwjVC0.js} +16 -16
- package/dist/{directory-cli-67kzd4I5.js → directory-cli-jYzZ02gk.js} +14 -14
- package/dist/{dispatcher-3ElQWGVI.js → dispatcher-DY51b-Zc.js} +2 -2
- package/dist/{dns-cli-CU-xfhTN.js → dns-cli-DHIiMJjS.js} +12 -12
- package/dist/{dns-cli-Dqj7O6Q_.js → dns-cli-pZlv87Ib.js} +11 -11
- package/dist/{docs-cli-CamBqzb5.js → docs-cli-2JDiwfzP.js} +8 -8
- package/dist/{docs-cli-Cj3L5oqB.js → docs-cli-BhkYqoIQ.js} +7 -7
- package/dist/{doctor-BV1kvbMm.js → doctor-Bf8EhNtA.js} +36 -35
- package/dist/{doctor-BJirShBi.js → doctor-sYG5V4Co.js} +34 -33
- package/dist/entry.js +56 -18
- package/dist/{env-BxRc6wWv.js → env-ONzUVAG2.js} +1 -1
- package/dist/{exec-CijMSZd9.js → exec-B8lXct-k.js} +503 -14
- package/dist/{exec-B8JKbXKW.js → exec-CACT5OAW.js} +1 -1
- package/dist/{exec-57A8Rlc8.js → exec-CJFFoM7H.js} +32 -13
- package/dist/{exec-Cv_Ofd1m.js → exec-YIosokWE.js} +1 -1
- package/dist/{exec-approvals-cli-DEzz9Iai.js → exec-approvals-cli-7LH0lwhO.js} +21 -21
- package/dist/{exec-approvals-cli-DhXj3hQX.js → exec-approvals-cli-apGnQbpj.js} +21 -21
- package/dist/extensionAPI.js +7733 -8746
- package/dist/fetch-DmiOpALK.js +274 -0
- package/dist/fetch-timeout-BEtUjM1S.js +274 -0
- package/dist/fetch-timeout-DEoXG_SF.js +274 -0
- package/dist/fetch-timeout-DTK9vxex.js +274 -0
- package/dist/{gateway-cli-D1EdIq8I.js → gateway-cli-DUdYxlZS.js} +491 -136
- package/dist/{gateway-cli-B_xDUDy2.js → gateway-cli-DbvWmE-9.js} +495 -140
- package/dist/{gateway-rpc-3B5y445n.js → gateway-rpc-BByb2Snz.js} +3 -3
- package/dist/{gateway-rpc-BoL2vinh.js → gateway-rpc-wXSCUZXj.js} +3 -3
- package/dist/{github-copilot-auth-Omqrto0J.js → github-copilot-auth-D7ewvpMd.js} +205 -17
- package/dist/{github-copilot-auth-CZxurvdz.js → github-copilot-auth-DDispnyz.js} +205 -17
- package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-Cfs0Wxr8.js} +1 -1
- package/dist/{gmail-setup-utils-BXQKsLtI.js → gmail-setup-utils-Cfns8TQx.js} +3 -3
- package/dist/{gmail-setup-utils-CHcssBOA.js → gmail-setup-utils-DJb-_5kO.js} +4 -4
- package/dist/{health-format-Dy1caGsq.js → health-format-KGPokKJH.js} +97 -42
- package/dist/{health-format-DrGFg8bx.js → health-format-LZDxu3rv.js} +95 -40
- package/dist/{help-format-DAj7l5uV.js → help-format-C48TXngO.js} +1 -1
- package/dist/{help-format-CUnac_bT.js → help-format-R5fLToDw.js} +1 -1
- package/dist/{hooks-cli-ptEf6TIM.js → hooks-cli-CT8JCRkH.js} +51 -46
- package/dist/{hooks-cli-Bhf5VRp1.js → hooks-cli-S1MKumJO.js} +49 -44
- package/dist/{hooks-status-Br-2bK2G.js → hooks-status-Cw0xD8Lt.js} +3 -3
- package/dist/{hooks-status-DNQJSa4B.js → hooks-status-D9MhwHRp.js} +3 -3
- package/dist/{image-rOFfK3PJ.js → image-Brk1sJbw.js} +10 -7
- package/dist/{image-fUwR7slg.js → image-C4Nn2p3e.js} +10 -7
- package/dist/{image-Ds4NLGPR.js → image-DgtfXMcX.js} +9 -6
- package/dist/{image-Dnnxt82I.js → image-RKwc3fsL.js} +8 -5
- package/dist/index.js +208 -97
- package/dist/{installs-CRSjQxbR.js → installs-CrLcWYHe.js} +8 -7
- package/dist/{installs-89zeUsVn.js → installs-DscWb9b9.js} +8 -7
- package/dist/{links-7M-j83As.js → links-B8LAzWwg.js} +1 -1
- package/dist/{links-C591fM9M.js → links-Eax1UO3w.js} +1 -1
- package/dist/llm-slug-generator.js +18 -19
- package/dist/{loader-wXwp4rZJ.js → loader-KjT074JR.js} +5722 -6888
- package/dist/{logging-MMRGFxGI.js → logging-BAyPwvdH.js} +1 -1
- package/dist/{logging-DuK6YXuK.js → logging-CRq4h04P.js} +2 -2
- package/dist/{login-qr-wM8BnKJh.js → login-qr-B6ZgAuIf.js} +5 -5
- package/dist/{login-qr-CPEsT6dN.js → login-qr-Bua-p0nG.js} +3 -4
- package/dist/{login-qr-CGEu5TU-.js → login-qr-CuvemJj4.js} +6 -6
- package/dist/{login-qr-DH150tTp.js → login-qr-Djr1JfIf.js} +2 -2
- package/dist/{logs-cli-ClgkHnfT.js → logs-cli-9IAV7rWY.js} +38 -22
- package/dist/{logs-cli-CmfINsOj.js → logs-cli-EiKzUFPa.js} +37 -21
- package/dist/{manager-DYo4PlVM.js → manager-BIMh_eSm.js} +7 -8
- package/dist/{manager-D6EbxDV4.js → manager-CwinWQoz.js} +5 -5
- package/dist/{manager-BbnHek5T.js → manager-DkqF1GiK.js} +9 -9
- package/dist/{manager-CcVYv0N5.js → manager-T1XfGchB.js} +8 -8
- package/dist/{manifest-registry-3It8Z8yN.js → manifest-registry-CQhdnDBZ.js} +40 -2
- package/dist/{manifest-registry-D5SiA3xq.js → manifest-registry-u0okVSkU.js} +40 -2
- package/dist/{message-channel-Cu61-7H6.js → message-channel-BLi2a6Yw.js} +1 -1
- package/dist/{message-channel-BlgPSDAh.js → message-channel-C_MmebBt.js} +1 -1
- package/dist/{model-auth-ioeR_zLX.js → model-auth-CabXIF6O.js} +116 -34
- package/dist/{model-selection-BK7DuyH8.js → model-selection-BLuqsGVB.js} +86 -30
- package/dist/{model-selection-CezC36lH.js → model-selection-C1GmkTAV.js} +84 -28
- package/dist/{models-cli-C3uGdOrd.js → models-cli-9jmDv-h3.js} +52 -48
- package/dist/{models-cli-CUIVPgXE.js → models-cli-zS9rtWz8.js} +53 -49
- package/dist/{node-cli-BxBGSuPE.js → node-cli-CrpTxTTs.js} +28 -26
- package/dist/{node-cli-CdYAsuQQ.js → node-cli-wemUMCg-.js} +28 -26
- package/dist/{node-service-u8g85nD3.js → node-service-C8DTHTMg.js} +2 -2
- package/dist/{node-service-CM5vkdIo.js → node-service-WQuEKz6W.js} +2 -2
- package/dist/{nodes-cli-By6yeCTB.js → nodes-cli-BaU2SIFw.js} +20 -20
- package/dist/{nodes-cli-BaVMTAPc.js → nodes-cli-Dx23D72n.js} +20 -20
- package/dist/{nodes-screen-Dvl_ohUY.js → nodes-screen-C0IuBqUL.js} +1 -1
- package/dist/{note-5WqioBRA.js → note-BhRSeNeu.js} +2 -2
- package/dist/{note-Ci08TSbV.js → note-hhtubr2j.js} +1 -1
- package/dist/{onboard-channels-DxXvp8og.js → onboard-channels-C501x8GI.js} +8 -8
- package/dist/{onboard-channels-CXhnVy4E.js → onboard-channels-Dxzroasd.js} +8 -8
- package/dist/{onboard-skills-CBxsRGyf.js → onboard-skills-DV0Qzvjj.js} +440 -136
- package/dist/{onboard-skills-DQwOQ6Ry.js → onboard-skills-rlBHcu3Q.js} +439 -135
- package/dist/{onboarding-Du_7qEng.js → onboarding-CN-EDLjd.js} +38 -38
- package/dist/{openclaw-root-JLDMp6ux.js → openclaw-root-1VeFrph_.js} +4 -0
- package/dist/{openclaw-root-Dw6gumSU.js → openclaw-root-BNlEap4i.js} +4 -0
- package/dist/{pairing-cli-CRQDpj8f.js → pairing-cli-CDHG4xuI.js} +15 -15
- package/dist/{pairing-cli-Cng1KFWw.js → pairing-cli-CQP34Dlx.js} +15 -15
- package/dist/{pairing-labels-Ciu3Zoxj.js → pairing-labels-B6CN0SNH.js} +1 -1
- package/dist/{pairing-labels-CWFEtSc3.js → pairing-labels-CgNHnjzT.js} +1 -1
- package/dist/{pairing-store-c-QQ2u8p.js → pairing-store-CmlRVqOz.js} +2 -2
- package/dist/{pairing-store-CgXR3ZWJ.js → pairing-store-Dp5_JGnG.js} +3 -3
- package/dist/{path-env-CXWUFfFv.js → path-env-CLvYNwtL.js} +1 -1
- package/dist/{path-env-BgLvMbz_.js → path-env-CaYUVIML.js} +2 -2
- package/dist/{paths-MnZaxqPw.js → paths-B0a4ywSO.js} +30 -5
- package/dist/{paths-Bkhd_qY8.js → paths-B49s6UZQ.js} +30 -5
- package/dist/{paths-DL6EIRTw.js → paths-D0O87MfH.js} +30 -5
- package/dist/{paths-IivnSNkP.js → paths-DLINmNFQ.js} +31 -6
- package/dist/{pi-embedded-CgPTEqlB.js → pi-embedded-Ctrt2kz0.js} +8759 -9600
- package/dist/{pi-embedded-helpers-DYH6OWft.js → pi-embedded-helpers-CMKLjW6X.js} +68 -9
- package/dist/{pi-embedded-helpers-y1_Se0yq.js → pi-embedded-helpers-CUzTc1v6.js} +241 -24
- package/dist/{pi-embedded-helpers-Bkpd4fTr.js → pi-embedded-helpers-DfwkwPYD.js} +67 -8
- package/dist/{pi-embedded-helpers-BbWRSUnc.js → pi-embedded-helpers-WDwx99UA.js} +347 -32
- package/dist/{pi-tools.policy-akYsGFiA.js → pi-tools.policy-BpsROZbz.js} +4 -4
- package/dist/{plugin-auto-enable-lZwe2yX5.js → plugin-auto-enable-Bqhc3w5n.js} +5 -5
- package/dist/{plugin-auto-enable-AOSOJ-v1.js → plugin-auto-enable-PW76g_PJ.js} +5 -5
- package/dist/plugin-sdk/agents/bash-process-registry.d.ts +1 -0
- package/dist/plugin-sdk/agents/models-config.providers.d.ts +10 -0
- package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +5 -1
- package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +1 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +1 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +15 -0
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +2 -0
- package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +2 -0
- package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +2 -0
- package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +4 -0
- package/dist/plugin-sdk/agents/tools/agent-step.d.ts +3 -0
- package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
- package/dist/plugin-sdk/agents/tools/web-search.d.ts +10 -1
- package/dist/plugin-sdk/agents/usage.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +1 -1
- package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +1 -0
- package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +3 -0
- package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +1 -1
- package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
- package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +8 -0
- package/dist/plugin-sdk/auto-reply/types.d.ts +2 -0
- package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
- package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +1 -0
- package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
- package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
- package/dist/plugin-sdk/commands/onboard-types.d.ts +7 -1
- package/dist/plugin-sdk/config/sessions/paths.d.ts +7 -2
- package/dist/plugin-sdk/config/types.agents.d.ts +2 -0
- package/dist/plugin-sdk/config/types.discord.d.ts +5 -0
- package/dist/plugin-sdk/config/types.gateway.d.ts +15 -0
- package/dist/plugin-sdk/config/types.hooks.d.ts +15 -0
- package/dist/plugin-sdk/config/types.memory.d.ts +2 -0
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +13 -1
- package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +1 -1
- package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +9 -0
- package/dist/plugin-sdk/config/zod-schema.providers.d.ts +4 -0
- package/dist/plugin-sdk/cron/service/jobs.d.ts +8 -0
- package/dist/plugin-sdk/cron/service/state.d.ts +1 -0
- package/dist/plugin-sdk/cron/types.d.ts +2 -0
- package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +15 -0
- package/dist/plugin-sdk/discord/send.types.d.ts +5 -0
- package/dist/plugin-sdk/gateway/auth.d.ts +36 -0
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +0 -3
- package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +7 -1
- package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
- package/dist/plugin-sdk/index.js +935 -660
- package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
- package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
- package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +1 -0
- package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +1 -0
- package/dist/plugin-sdk/infra/net/ssrf.d.ts +1 -0
- package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
- package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +10 -0
- package/dist/plugin-sdk/logging/console.d.ts +1 -0
- package/dist/plugin-sdk/logging/logger.d.ts +1 -1
- package/dist/plugin-sdk/logging/state.d.ts +1 -0
- package/dist/plugin-sdk/markdown/ir.d.ts +1 -1
- package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
- package/dist/plugin-sdk/media/input-files.d.ts +5 -0
- package/dist/plugin-sdk/media-understanding/audio-preflight.d.ts +16 -0
- package/dist/plugin-sdk/media-understanding/types.d.ts +1 -0
- package/dist/plugin-sdk/memory/backend-config.d.ts +2 -1
- package/dist/plugin-sdk/memory/qmd-manager.d.ts +2 -0
- package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
- package/dist/plugin-sdk/process/command-queue.d.ts +16 -0
- package/dist/plugin-sdk/routing/resolve-route.d.ts +3 -1
- package/dist/plugin-sdk/security/external-content.d.ts +1 -1
- package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
- package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
- package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +8 -0
- package/dist/plugin-sdk/signal/monitor/mentions.d.ts +2 -0
- package/dist/plugin-sdk/slack/monitor/commands.d.ts +5 -0
- package/dist/plugin-sdk/telegram/bot-message-context.d.ts +2 -1
- package/dist/plugin-sdk/telegram/send.d.ts +3 -0
- package/dist/plugin-sdk/web/media.d.ts +2 -0
- package/dist/{plugins-Db5BiELK.js → plugins-4Hqd1WGf.js} +3 -3
- package/dist/{plugins-CNaHNND_.js → plugins-X7d_tfTE.js} +4 -4
- package/dist/{plugins-cli-8G-hQPCu.js → plugins-cli-Bgku3EGj.js} +253 -44
- package/dist/{plugins-cli-CDiocaDE.js → plugins-cli-CVToH3if.js} +257 -48
- package/dist/{ports-BeebfNCb.js → ports-qkt29rdC.js} +2 -2
- package/dist/{program-0Cj9YxRN.js → program-Cf7lkBur.js} +82 -80
- package/dist/{progress-DIQJt9Va.js → progress-C9kngsTD.js} +1 -1
- package/dist/{progress-Da1ehW-x.js → progress-DWqhRakV.js} +1 -1
- package/dist/{prompt-style-Dc0C5HC9.js → prompt-style-BFH5D5LN.js} +1 -1
- package/dist/{prompt-style-CjQRlDx4.js → prompt-style-CIbmaxSa.js} +1 -1
- package/dist/{pw-ai-C43wv1ZF.js → pw-ai-8mdv3h-d.js} +7 -6
- package/dist/{pw-ai-COWYvUfG.js → pw-ai-CM1IsSgZ.js} +6 -6
- package/dist/{pw-ai-BxJ-KCIy.js → pw-ai-FGoRVblI.js} +5 -6
- package/dist/{pw-ai-CsvaObGM.js → pw-ai-sS1fRKW_.js} +3 -3
- package/dist/{qmd-manager-CpsjQyaZ.js → qmd-manager-C67Fc8aN.js} +79 -26
- package/dist/{qmd-manager-C9YWFeG6.js → qmd-manager-CXVbfg99.js} +81 -26
- package/dist/{qmd-manager-C02E8ixK.js → qmd-manager-RMRE8Tqt.js} +81 -26
- package/dist/{qmd-manager-BzY2LQTT.js → qmd-manager-pyc_MTIe.js} +78 -23
- package/dist/{register.subclis-DUkirdHn.js → register.subclis-C02e4zuJ.js} +29 -29
- package/dist/{reply--b7BsXGP.js → reply-DICXkh_C.js} +7289 -8455
- package/dist/{routes-DUkEKAc1.js → routes-CmOI1hIH.js} +29 -11
- package/dist/{routes-B4QQiFju.js → routes-DewK5tq2.js} +29 -12
- package/dist/{rpc-CuMtxrRT.js → rpc-DHr30euf.js} +3 -3
- package/dist/{rpc-Blt6MJ4F.js → rpc-T300F8zI.js} +3 -3
- package/dist/{run-main-XZcPA23b.js → run-main-C5wpthq1.js} +84 -82
- package/dist/runner-CY0nmVme.js +1886 -0
- package/dist/runner-Cfm5nTMc.js +1785 -0
- package/dist/runner-D_dujMod.js +1886 -0
- package/dist/runner-DrGYLH5K.js +1785 -0
- package/dist/{sandbox-Aks-9EcZ.js → sandbox-BKYnhYQH.js} +24 -17
- package/dist/{sandbox-DqUO2K83.js → sandbox-Bhjnh1Xg.js} +23 -16
- package/dist/{sandbox-cli-C99Thxi8.js → sandbox-cli-DBsAjZJN.js} +21 -21
- package/dist/{sandbox-cli-CJqRM4V6.js → sandbox-cli-rV9LtFeu.js} +21 -21
- package/dist/{security-cli-iqYLMOz3.js → security-cli-BIwJM_rs.js} +27 -27
- package/dist/{security-cli-DW3lCz-o.js → security-cli-BRjny8Yu.js} +27 -27
- package/dist/{server-context-fX4xiYRh.js → server-context-BGpGs3qd.js} +7 -7
- package/dist/{server-context-8Qt35QdF.js → server-context-Cl0U0vE3.js} +7 -7
- package/dist/{server-node-events-CHWXfb_T.js → server-node-events-CBfTbiTA.js} +48 -44
- package/dist/{server-node-events-BzrEnKLX.js → server-node-events-QCvh8EgI.js} +45 -41
- package/dist/{service-Cd4BxKuo.js → service--nPk7DvT.js} +8 -4
- package/dist/{service-DDPRbf8a.js → service-99RDXwX4.js} +8 -4
- package/dist/{service-audit-CCFxuvKs.js → service-audit-DnLmRGQt.js} +4 -4
- package/dist/{service-audit-x6jCN-6a.js → service-audit-ckBaRCVC.js} +4 -4
- package/dist/{session-cost-usage-CcCEQNuc.js → session-cost-usage-D7HuoSSD.js} +12 -10
- package/dist/{session-cost-usage-PvyVZz-g.js → session-cost-usage-D9hHANWI.js} +12 -10
- package/dist/{shared-ILguacOr.js → shared-Bs4vduG4.js} +3 -3
- package/dist/{shared-CagUDdmp.js → shared-CEY5IkwG.js} +3 -3
- package/dist/{shared-gOyV38rM.js → shared-DRohONn_.js} +4 -4
- package/dist/{shared-BDk_zC9p.js → shared-ICqOZibV.js} +4 -4
- package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-CucvxYhu.js} +1 -1
- package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-rHMtUHtP.js} +1 -1
- package/dist/{skills-D5UZZZSY.js → skills-DRjfSQT3.js} +141 -6
- package/dist/{skills-ccAgQ3Ad.js → skills-DprQj9X2.js} +142 -7
- package/dist/{skills-cli-DQilTG3n.js → skills-cli-9WO-C55s.js} +12 -12
- package/dist/{skills-cli-ggyLBtAY.js → skills-cli-B9eej-EW.js} +13 -13
- package/dist/{skills-status-BosMnzIs.js → skills-status-5U3P3YfJ.js} +3 -3
- package/dist/{skills-status-DjtPPMnY.js → skills-status-TDIgVd1K.js} +2 -2
- package/dist/{sqlite-B7FPASCO.js → sqlite-BINzs1U0.js} +2 -2
- package/dist/{sqlite-Btrgi7-j.js → sqlite-D4w5TejA.js} +3 -3
- package/dist/{sqlite-BrQ9tw8B.js → sqlite-DRRHmlug.js} +3 -3
- package/dist/{sqlite-HepBVDoX.js → sqlite-F6PGkEm1.js} +2 -2
- package/dist/{status-BByCntWS.js → status-BKGkKC_v.js} +3 -3
- package/dist/{status-Dt7RE_Yy.js → status-CiHtHdaa.js} +4 -4
- package/dist/{status-zfL4Yej7.js → status-DDWoOpeB.js} +37 -37
- package/dist/{subsystem-Bh1Y_6Uv.js → subsystem-BoExtIHo.js} +52 -17
- package/dist/{system-cli-DwuUkdkH.js → system-cli-B6lr60Io.js} +14 -14
- package/dist/{system-cli-Clqsx8U5.js → system-cli-CprW9G3h.js} +14 -14
- package/dist/{systemd-BEWwfwn0.js → systemd-C0VZriGM.js} +3 -3
- package/dist/{systemd-D6wTPnHi.js → systemd-DrmBtJ5T.js} +3 -3
- package/dist/{systemd-hints-zi4ohCOY.js → systemd-hints-DZtXiVHa.js} +1 -1
- package/dist/{systemd-linger-CDo2UbHM.js → systemd-linger-NC2kl1SC.js} +2 -2
- package/dist/{systemd-linger-BxjTrgoH.js → systemd-linger-xdn3BdPh.js} +2 -2
- package/dist/{table-DEnmtvl5.js → table-B8dx3v4v.js} +2 -2
- package/dist/{table-cCoGqLsk.js → table-CwulTLQp.js} +1 -1
- package/dist/{tool-display-DskiU8Kt.js → tool-display-CZRIDMRm.js} +2 -2
- package/dist/{tool-display-o-dDAlqF.js → tool-display-ClRud3pg.js} +2 -2
- package/dist/{tui-BdJWZdto.js → tui-CVTQn-dC.js} +14 -13
- package/dist/{tui-Bc7XUQGP.js → tui-Lu8FdrlK.js} +13 -14
- package/dist/{tui-cli-BGYh0UL0.js → tui-cli-BLpTj1X9.js} +27 -27
- package/dist/{tui-cli-D3n-O9zB.js → tui-cli-BLx5kL2I.js} +26 -26
- package/dist/{tui-formatters-CA85v4U2.js → tui-formatters-CNySEfJN.js} +6 -6
- package/dist/{tui-formatters-C3NarH24.js → tui-formatters-DePhZK3J.js} +6 -6
- package/dist/{update-JB16aPIY.js → update-DHVxMTpQ.js} +3 -3
- package/dist/{update-Ct9sqJC_.js → update-DU1geolI.js} +3 -3
- package/dist/{update-cli-wWKDS3cm.js → update-cli-C0hUvJWK.js} +89 -71
- package/dist/{update-cli-DDXp_N9B.js → update-cli-Wb1GB3rL.js} +88 -70
- package/dist/{update-runner-ChTf6O6p.js → update-runner--ixK4J3W.js} +11 -11
- package/dist/{update-runner-CmE6cHdn.js → update-runner-7Qa1T9y6.js} +10 -10
- package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
- package/dist/{utils-es4ygvQ-.js → utils-Cd9QdCHh.js} +1 -1
- package/dist/{webhooks-cli-CVIE9TtX.js → webhooks-cli-DgcMy7RG.js} +12 -12
- package/dist/{webhooks-cli-BmKSiQQC.js → webhooks-cli-aVzUcJY9.js} +11 -11
- package/dist/{widearea-dns-2ah0bkAj.js → widearea-dns-BaIgNEhY.js} +3 -3
- package/dist/{widearea-dns-CMIG6-74.js → widearea-dns-DzuRdwk5.js} +3 -3
- package/dist/{ws-DtDKpbLR.js → ws-CHCQHs0F.js} +1 -1
- package/dist/{ws-log-BP3z_g6Z.js → ws-log-CIXbLCka.js} +1 -1
- package/dist/{ws-log-D7MkvKhg.js → ws-log-DcQFZByi.js} +2 -2
- package/dist/{wsl-Cwo7X0Un.js → wsl-BUOkxKJu.js} +2 -2
- package/docs/assets/install-script.svg +1 -0
- package/docs/automation/hooks.md +1 -38
- package/docs/automation/webhook.md +43 -2
- package/docs/channels/discord.md +389 -381
- package/docs/channels/imessage.md +229 -218
- package/docs/channels/slack.md +294 -415
- package/docs/channels/telegram.md +401 -505
- package/docs/channels/whatsapp.md +338 -310
- package/docs/ci.md +0 -12
- package/docs/cli/hooks.md +1 -14
- package/docs/cli/index.md +6 -1
- package/docs/cli/logs.md +4 -0
- package/docs/cli/onboard.md +30 -0
- package/docs/cli/plugins.md +20 -1
- package/docs/cli/security.md +1 -0
- package/docs/concepts/memory.md +7 -4
- package/docs/concepts/session-tool.md +1 -0
- package/docs/docs.json +11 -11
- package/docs/gateway/configuration-examples.md +9 -2
- package/docs/gateway/configuration-reference.md +2329 -0
- package/docs/gateway/configuration.md +338 -3304
- package/docs/gateway/index.md +162 -238
- package/docs/gateway/openresponses-http-api.md +15 -0
- package/docs/gateway/security/index.md +3 -0
- package/docs/help/faq.md +9 -0
- package/docs/install/hetzner.md +21 -0
- package/docs/install/installer.md +20 -0
- package/docs/nodes/audio.md +19 -0
- package/docs/platforms/mac/release.md +7 -7
- package/docs/providers/glm.md +3 -3
- package/docs/providers/index.md +1 -0
- package/docs/providers/litellm.md +153 -0
- package/docs/providers/zai.md +2 -2
- package/docs/reference/templates/AGENTS.md +26 -26
- package/docs/reference/templates/HEARTBEAT.md +31 -2
- package/docs/reference/templates/SOUL.md +14 -8
- package/docs/reference/transcript-hygiene.md +18 -0
- package/docs/start/getting-started.md +5 -0
- package/docs/start/wizard-cli-automation.md +17 -0
- package/docs/start/wizard-cli-reference.md +12 -0
- package/docs/tools/browser.md +6 -0
- package/docs/zh-CN/automation/hooks.md +1 -38
- package/docs/zh-CN/cli/hooks.md +1 -14
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/bluebubbles/src/monitor.test.ts +40 -28
- package/extensions/bluebubbles/src/monitor.ts +0 -4
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +10 -10
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +2 -5
- package/extensions/feishu/src/bot.checkBotMentioned.test.ts +64 -0
- package/extensions/feishu/src/bot.ts +1 -1
- package/extensions/feishu/src/channel.test.ts +48 -0
- package/extensions/feishu/src/channel.ts +1 -3
- package/extensions/feishu/src/config-schema.ts +6 -0
- package/extensions/feishu/src/docx.ts +14 -4
- package/extensions/feishu/src/media.test.ts +151 -0
- package/extensions/feishu/src/media.ts +27 -13
- package/extensions/feishu/src/reply-dispatcher.test.ts +116 -0
- package/extensions/feishu/src/reply-dispatcher.ts +124 -67
- package/extensions/feishu/src/streaming-card.ts +223 -0
- package/extensions/feishu/src/targets.test.ts +16 -0
- package/extensions/feishu/src/targets.ts +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/irc/src/client.ts +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +2 -2
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/index.ts +6 -2
- package/extensions/memory-lancedb/package.json +2 -2
- package/extensions/minimax-portal-auth/index.ts +7 -5
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +2 -2
- package/extensions/open-prose/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/media-stream.ts +7 -1
- package/extensions/voice-call/src/providers/twilio.test.ts +5 -3
- package/extensions/voice-call/src/providers/twilio.ts +12 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +26 -22
- package/dist/auth-BcNHFK-i.js +0 -184
- package/dist/auth-BvIPpm7G.js +0 -184
- package/dist/boolean-M-esQJt6.js +0 -30
- package/dist/bundled/soul-evil/HOOK.md +0 -71
- package/dist/bundled/soul-evil/handler.js +0 -194
- package/dist/cli-DJbWJ9aB.js +0 -89
- package/dist/config-CI7EpvlP.js +0 -15
- package/dist/control-ui/assets/index-CnB9IO4a.js.map +0 -1
- package/dist/date-time-c6HTX6IW.js +0 -187
- package/dist/frontmatter-xwTm0734.js +0 -105
- package/dist/parse-duration-De_tAQSe.js +0 -24
- package/dist/session-key-nXYQSv-a.js +0 -167
- package/dist/utils-dp_OM900.js +0 -476
- package/docs/hooks/soul-evil.md +0 -69
- package/docs/zh-CN/hooks/soul-evil.md +0 -72
- /package/dist/{archive-CXhvR9nU.js → archive-beaSfAzA.js} +0 -0
- /package/dist/{brew-BIrWdDps.js → brew-BUIxHEkn.js} +0 -0
- /package/dist/{brew-B7YK4ZoL.js → brew-ROHf0-Xp.js} +0 -0
- /package/dist/{cli-utils-PlLcDZlM.js → cli-utils-CRhVAaLV.js} +0 -0
- /package/dist/{cli-utils-R-ECs5cY.js → cli-utils-LcHOt63h.js} +0 -0
- /package/dist/{command-format-BUxhT1xL.js → command-format-qUVxzqYm.js} +0 -0
- /package/dist/{constants-CNTiY-ZN.js → constants-BvQ6S8j5.js} +0 -0
- /package/dist/{constants-DuoCkWRh.js → constants-JPeoOZnw.js} +0 -0
- /package/dist/{errors-D3tYRJWG.js → errors-B91HIDPD.js} +0 -0
- /package/dist/{errors-B0eT3jVv.js → errors-Bv81hF2P.js} +0 -0
- /package/dist/{errors-x4NYs-1P.js → errors-DjZBTJJ3.js} +0 -0
- /package/dist/{exec-approvals-DGPTjO0N.js → exec-approvals-Cb4ZLukq.js} +0 -0
- /package/dist/{exec-approvals-DhmKpiIo.js → exec-approvals-DQ8TVVmj.js} +0 -0
- /package/dist/{format-CaxeRcue.js → format-CNU-Zkrz.js} +0 -0
- /package/dist/{format-DLOJPZmo.js → format-DcfK-dwd.js} +0 -0
- /package/dist/{format-duration-Be5Z7JdJ.js → format-duration-84n6_DgO.js} +0 -0
- /package/dist/{format-duration-CEmFWLyX.js → format-duration-Bo9zNKwO.js} +0 -0
- /package/dist/{format-relative-79_Y1n2Y.js → format-relative-CZOlQ2pA.js} +0 -0
- /package/dist/{format-relative-Db7eqEu8.js → format-relative-cegC_FF5.js} +0 -0
- /package/dist/{github-copilot-token-C9IJh2Pn.js → github-copilot-token-DkiRbJdR.js} +0 -0
- /package/dist/{helpers-CQI-5xS9.js → helpers-8O7IVGO-.js} +0 -0
- /package/dist/{helpers-CRzoyyXS.js → helpers-D_jqdWkd.js} +0 -0
- /package/dist/{helpers-C89IG08W.js → helpers-HyeZXsnu.js} +0 -0
- /package/dist/{is-main-WWuz28Ip.js → is-main-BWoXGz7p.js} +0 -0
- /package/dist/{logging-BzvBIA3Y.js → logging-fywhKCmE.js} +0 -0
- /package/dist/{nodes-screen-lykd2cny.js → nodes-screen-CdCWeiwy.js} +0 -0
- /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
- /package/dist/{parse-DqAvJRIf.js → parse-ioZhOtha.js} +0 -0
- /package/dist/{parse-log-line-CUrpqe1w.js → parse-log-line-BoDqomM4.js} +0 -0
- /package/dist/{parse-log-line-D2UGw0wR.js → parse-log-line-DPxH1XZx.js} +0 -0
- /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
- /package/dist/{parse-timeout-DV8NQQWk.js → parse-timeout-DMW-z4Iz.js} +0 -0
- /package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-DqgqUyAv.js} +0 -0
- /package/dist/{pi-model-discovery-DzFOAbQt.js → pi-model-discovery-EwKVHlZB.js} +0 -0
- /package/dist/{prompts--d-6l5Ln.js → prompts-Bg96reub.js} +0 -0
- /package/dist/{redact-DAKeu7PA.js → redact-BRsnXqwD.js} +0 -0
- /package/dist/{redact-DuEEf1p1.js → redact-Br9GfacZ.js} +0 -0
- /package/dist/{redact-BOIof271.js → redact-BrXLgslJ.js} +0 -0
- /package/dist/{status-Cv36yYdi.js → status-BRZfQbJ2.js} +0 -0
- /package/dist/{status-Drziap9H.js → status-CoAy6bEC.js} +0 -0
- /package/dist/{systemd-hints-CH4pbCFD.js → systemd-hints-CXNtLw9Q.js} +0 -0
- /package/dist/{tailnet-DGRSvYuQ.js → tailnet-DATIFSsY.js} +0 -0
- /package/dist/{transcript-events-BlIONGVn.js → transcript-events-BHS7QoRl.js} +0 -0
- /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
- /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-BtNd-j6q.js} +0 -0
- /package/dist/{usage-format-6Uar63S0.js → usage-format-C4JfTbSp.js} +0 -0
- /package/dist/{usage-format-hd37en6b.js → usage-format-CpORtVCG.js} +0 -0
package/docs/gateway/index.md
CHANGED
|
@@ -5,326 +5,250 @@ read_when:
|
|
|
5
5
|
title: "Gateway Runbook"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Gateway
|
|
8
|
+
# Gateway runbook
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Use this page for day-1 startup and day-2 operations of the Gateway service.
|
|
11
11
|
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
|
|
23
|
+
<Steps>
|
|
24
|
+
<Step title="Start the Gateway">
|
|
19
25
|
|
|
20
26
|
```bash
|
|
21
27
|
openclaw gateway --port 18789
|
|
22
|
-
#
|
|
28
|
+
# debug/trace mirrored to stdio
|
|
23
29
|
openclaw gateway --port 18789 --verbose
|
|
24
|
-
#
|
|
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
|
-
|
|
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
|
-
|
|
36
|
+
<Step title="Verify service health">
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
openclaw gateway status
|
|
40
|
+
openclaw status
|
|
41
|
+
openclaw logs --follow
|
|
42
|
+
```
|
|
50
43
|
|
|
51
|
-
|
|
44
|
+
Healthy baseline: `Runtime: running` and `RPC probe: ok`.
|
|
52
45
|
|
|
53
|
-
|
|
54
|
-
ssh -N -L 18789:127.0.0.1:18789 user@host
|
|
55
|
-
```
|
|
46
|
+
</Step>
|
|
56
47
|
|
|
57
|
-
|
|
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
|
-
|
|
50
|
+
```bash
|
|
51
|
+
openclaw channels status --probe
|
|
52
|
+
```
|
|
61
53
|
|
|
62
|
-
|
|
54
|
+
</Step>
|
|
55
|
+
</Steps>
|
|
63
56
|
|
|
64
|
-
|
|
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
|
-
|
|
62
|
+
## Runtime model
|
|
67
63
|
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
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
|
-
|
|
72
|
+
### Port and bind precedence
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
79
|
+
### Hot reload modes
|
|
79
80
|
|
|
80
|
-
|
|
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
|
-
|
|
88
|
+
## Operator command set
|
|
83
89
|
|
|
84
90
|
```bash
|
|
85
|
-
openclaw
|
|
86
|
-
openclaw
|
|
87
|
-
|
|
88
|
-
openclaw
|
|
89
|
-
openclaw
|
|
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
|
-
|
|
101
|
+
## Remote access
|
|
93
102
|
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
106
|
+
```bash
|
|
107
|
+
ssh -N -L 18789:127.0.0.1:18789 user@host
|
|
108
|
+
```
|
|
102
109
|
|
|
103
|
-
|
|
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
|
-
|
|
112
|
+
<Warning>
|
|
113
|
+
If gateway auth is configured, clients still must send auth (`token`/`password`) even over SSH tunnels.
|
|
114
|
+
</Warning>
|
|
109
115
|
|
|
110
|
-
|
|
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
|
-
|
|
118
|
+
## Supervision and service lifecycle
|
|
117
119
|
|
|
118
|
-
|
|
119
|
-
openclaw --profile main gateway install
|
|
120
|
-
openclaw --profile rescue gateway install
|
|
121
|
-
```
|
|
120
|
+
Use supervised runs for production-like reliability.
|
|
122
121
|
|
|
123
|
-
|
|
122
|
+
<Tabs>
|
|
123
|
+
<Tab title="macOS (launchd)">
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
openclaw gateway install
|
|
127
|
+
openclaw gateway status
|
|
128
|
+
openclaw gateway restart
|
|
129
|
+
openclaw gateway stop
|
|
128
130
|
```
|
|
129
131
|
|
|
130
|
-
|
|
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
|
-
|
|
134
|
+
</Tab>
|
|
142
135
|
|
|
143
|
-
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
|
|
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
|
-
|
|
146
|
+
```bash
|
|
147
|
+
sudo loginctl enable-linger <user>
|
|
148
|
+
```
|
|
170
149
|
|
|
171
|
-
|
|
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
|
-
|
|
152
|
+
<Tab title="Linux (system service)">
|
|
178
153
|
|
|
179
|
-
|
|
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
|
-
|
|
156
|
+
```bash
|
|
157
|
+
sudo systemctl daemon-reload
|
|
158
|
+
sudo systemctl enable --now openclaw-gateway[-<profile>].service
|
|
159
|
+
```
|
|
183
160
|
|
|
184
|
-
|
|
185
|
-
|
|
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
|
-
##
|
|
164
|
+
## Multiple gateways on one host
|
|
192
165
|
|
|
193
|
-
|
|
194
|
-
|
|
166
|
+
Most setups should run **one** Gateway.
|
|
167
|
+
Use multiple only for strict isolation/redundancy (for example a rescue profile).
|
|
195
168
|
|
|
196
|
-
|
|
169
|
+
Checklist per instance:
|
|
197
170
|
|
|
198
|
-
-
|
|
171
|
+
- Unique `gateway.port`
|
|
172
|
+
- Unique `OPENCLAW_CONFIG_PATH`
|
|
173
|
+
- Unique `OPENCLAW_STATE_DIR`
|
|
174
|
+
- Unique `agents.defaults.workspace`
|
|
199
175
|
|
|
200
|
-
|
|
176
|
+
Example:
|
|
201
177
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
-
|
|
183
|
+
See: [Multiple gateways](/gateway/multiple-gateways).
|
|
214
184
|
|
|
215
|
-
|
|
185
|
+
### Dev profile quick path
|
|
216
186
|
|
|
217
187
|
```bash
|
|
218
|
-
openclaw
|
|
219
|
-
openclaw gateway
|
|
220
|
-
openclaw
|
|
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
|
-
|
|
193
|
+
Defaults include isolated state/config and base gateway port `19001`.
|
|
226
194
|
|
|
227
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
204
|
+
1. Immediate accepted ack (`status:"accepted"`)
|
|
205
|
+
2. Final completion response (`status:"ok"|"error"`), with streamed `agent` events in between.
|
|
250
206
|
|
|
251
|
-
|
|
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
|
-
|
|
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
|
-
|
|
211
|
+
### Liveness
|
|
279
212
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
```
|
|
213
|
+
- Open WS and send `connect`.
|
|
214
|
+
- Expect `hello-ok` response with snapshot.
|
|
283
215
|
|
|
284
|
-
|
|
285
|
-
Then enable the service:
|
|
216
|
+
### Readiness
|
|
286
217
|
|
|
287
|
-
```
|
|
288
|
-
|
|
218
|
+
```bash
|
|
219
|
+
openclaw gateway status
|
|
220
|
+
openclaw channels status --probe
|
|
221
|
+
openclaw health
|
|
289
222
|
```
|
|
290
223
|
|
|
291
|
-
|
|
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
|
-
##
|
|
228
|
+
## Common failure signatures
|
|
302
229
|
|
|
303
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
314
|
-
-
|
|
315
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
247
|
+
Related:
|
|
328
248
|
|
|
329
|
-
-
|
|
330
|
-
-
|
|
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
|
package/docs/install/hetzner.md
CHANGED
|
@@ -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>
|