activeclaw 2026.2.12 → 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 +37 -0
- package/dist/{accounts-DbzMEfKN.js → accounts-DCDeFTra.js} +2 -2
- package/dist/{accounts-DimKrt7j.js → accounts-DeqIQjo1.js} +2 -2
- package/dist/{acp-cli-Cs1ai4XO.js → acp-cli-CeYI4XRd.js} +15 -16
- package/dist/{acp-cli-oV2dodPg.js → acp-cli-rNbGXICg.js} +14 -15
- package/dist/{agent-BndgzkUe.js → agent-BvNJF5QL.js} +19 -16
- package/dist/{agent-DZvDwqnd.js → agent-CyMxTyrG.js} +20 -17
- package/dist/{agent-scope-rXQ7WARN.js → agent-scope-BIEhVP4_.js} +1 -1
- package/dist/{agent-scope---6LLHj0.js → agent-scope-CQCus0rI.js} +2 -2
- package/dist/{agent-scope-RCSw6gHy.js → agent-scope-CsRbLH4l.js} +3 -3
- package/dist/{agent-scope-CN8DM4Xb.js → agent-scope-DPIFau3f.js} +1 -1
- package/dist/{audio-preflight-SZRntkxo.js → audio-preflight-BU8W7uxc.js} +10 -10
- package/dist/{audio-preflight-ClVNINDs.js → audio-preflight-CGsumMzb.js} +10 -10
- package/dist/{audio-preflight-txAP3v-C.js → audio-preflight-SLmkJI6-.js} +22 -22
- package/dist/{audio-preflight-BP6s-UPp.js → audio-preflight-jZc5mFCZ.js} +23 -23
- package/dist/{audit-CQzrm61N.js → audit-Dmww_503.js} +70 -18
- package/dist/{audit-DMH3CSXY.js → audit-wPu26VMb.js} +72 -20
- package/dist/{tailscale-DU6DgqVy.js → auth-9x3lqfIY.js} +208 -3
- package/dist/{tailscale-DHfcfRCx.js → auth-CQNl_IaI.js} +190 -3
- package/dist/{auth-health-BB3e3OmN.js → auth-health-C4L4FGBA.js} +1 -1
- package/dist/{auth-health-zZ9dnQGC.js → auth-health-j6epgQbq.js} +1 -1
- package/dist/{auth-profiles-CcJ3hrog.js → auth-profiles-ByNs3eEm.js} +60 -22
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +19 -16
- package/dist/bundled/session-memory/handler.js +16 -15
- package/dist/{call-Yxns4CVq.js → call-DVYCIV8m.js} +5 -5
- package/dist/{call-C9az806y.js → call-SolyGS1r.js} +4 -4
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CjXPwMWu.js → channel-options-BwC2yQcR.js} +4 -4
- package/dist/{channel-options-CX4iYQfR.js → channel-options-Cq9BVDkP.js} +7 -7
- package/dist/{channel-selection-BoQ7GurB.js → channel-selection-D4D6ImhN.js} +2 -2
- package/dist/{channel-selection-C78IwbD-.js → channel-selection-MZAHm4U8.js} +2 -2
- package/dist/{channels-cli-DUHsmX3q.js → channels-cli-9Dsk9Qm7.js} +53 -51
- package/dist/{channels-cli-BXMQPB4x.js → channels-cli-BJUppQll.js} +52 -50
- package/dist/{channels-status-issues-Ca9--azp.js → channels-status-issues-D7GSV1GS.js} +1 -1
- package/dist/{channels-status-issues-CbULFg2X.js → channels-status-issues-DDAWeT-6.js} +1 -1
- package/dist/{chrome-svgmQ8T_.js → chrome-BfB6JdKF.js} +2 -1
- package/dist/{chrome-juQxt0zf.js → chrome-Cvr-57lg.js} +4 -3
- package/dist/{chrome-BCPPeLQ6.js → chrome-DL0avO8n.js} +2 -1
- package/dist/{chrome-yIKmOzCO.js → chrome-foEwx3lN.js} +5 -4
- package/dist/{clack-prompter-Dmvcu3gn.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-FdxAcu_y.js → cli-ZR9ugUBX.js} +42 -40
- package/dist/{cli-By331Q9f.js → cli-miPe4Ujz.js} +42 -40
- package/dist/{client-B0_GiCjB.js → client-BrYfyoDK.js} +52 -3
- package/dist/{client-D7wrC1Ug.js → client-CTwXnRl7.js} +53 -4
- package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
- package/dist/{command-options-BSDiKuyX.js → command-options-BvgxzPbK.js} +4 -4
- package/dist/{commands-BG25qku5.js → commands-BX_OIIVR.js} +4 -4
- package/dist/{completion-cli-C4zxjkC1.js → completion-cli-CR77-jyv.js} +3 -3
- package/dist/{completion-cli-DECEgBWR.js → completion-cli-DnjpxAag.js} +29 -29
- package/dist/{config-B7sno9eI.js → config-Bdhomfei.js} +15 -6
- package/dist/{config-BuF7vm-v.js → config-BvMsmctM.js} +13 -4
- package/dist/{config-D50SQVar.js → config-QYrbd7x7.js} +13 -4
- package/dist/{config-DH9TLUNc.js → config-aFQssWKX.js} +15 -6
- package/dist/{config-guard-DPxxY1iw.js → config-guard-CljaSxJd.js} +39 -39
- package/dist/{configure-BZQ9uSVX.js → configure-BXLiucXo.js} +19 -19
- package/dist/{configure-Cg5IKSUy.js → configure-BYPqXzGZ.js} +19 -19
- package/dist/control-auth-8Cf4WXpR.js +54 -0
- package/dist/control-auth-DBCu3qyv.js +54 -0
- package/dist/{control-service-CBlMVTRu.js → control-service-B5KnPqGP.js} +11 -5
- package/dist/{control-service-B2er20Ke.js → control-service-DKnttEus.js} +10 -4
- package/dist/{cron-cli-B2Zwhy_r.js → cron-cli-D7BRjDv2.js} +17 -17
- package/dist/{cron-cli-EaRUVd0p.js → cron-cli-z1zk_FXQ.js} +16 -16
- package/dist/{daemon-cli-CVNzObIF.js → daemon-cli-BDkU2ocb.js} +18 -18
- package/dist/{daemon-cli-DF6Rxjy6.js → daemon-cli-cNSF93-v.js} +19 -19
- package/dist/{daemon-runtime-BHF5NjQ7.js → daemon-runtime-B0tg_LsX.js} +2 -2
- package/dist/{daemon-runtime-B05PME1z.js → daemon-runtime-Bsjeut6m.js} +3 -3
- package/dist/{deliver-DzcxEcza.js → deliver-CIU9Npgs.js} +306 -12
- package/dist/{deliver-COf5XFo_.js → deliver-DYYCo1G7.js} +302 -8
- package/dist/{deliver-B1jsU2r7.js → deliver-LsxKETro.js} +306 -12
- package/dist/{deliver-CLwC284e.js → deliver-xUU3mGHo.js} +302 -8
- package/dist/{deps-Cva7QM_t.js → deps-QSwGcoNZ.js} +2 -2
- package/dist/{deps-B6602Wid.js → deps-lAAA2zYI.js} +2 -2
- package/dist/{devices-cli-DPg_4aW8.js → devices-cli-BG3-2oqt.js} +13 -13
- package/dist/{devices-cli-D8K3hZR5.js → devices-cli-VIQtOvt_.js} +13 -13
- package/dist/{directory-cli-OGBSVKAZ.js → directory-cli-BCJwjVC0.js} +15 -15
- package/dist/{directory-cli-Bn47fFX7.js → directory-cli-jYzZ02gk.js} +14 -14
- package/dist/{dispatcher-BHsNwFe-.js → dispatcher-DY51b-Zc.js} +2 -2
- package/dist/{dns-cli-DmTHXgwU.js → dns-cli-DHIiMJjS.js} +11 -11
- package/dist/{dns-cli-kk2rysJh.js → dns-cli-pZlv87Ib.js} +11 -11
- package/dist/{docs-cli-CB77CeM4.js → docs-cli-2JDiwfzP.js} +7 -7
- package/dist/{docs-cli-DUcyw0X0.js → docs-cli-BhkYqoIQ.js} +6 -6
- package/dist/{doctor-DwqdkfPa.js → doctor-Bf8EhNtA.js} +33 -33
- package/dist/{doctor-BZfxDGUg.js → doctor-sYG5V4Co.js} +32 -32
- package/dist/entry.js +36 -14
- package/dist/{env-DE9xvYOL.js → env-ONzUVAG2.js} +1 -1
- package/dist/{exec-4WHuOniw.js → exec-B8lXct-k.js} +31 -13
- package/dist/{exec-B8JKbXKW.js → exec-CACT5OAW.js} +1 -1
- package/dist/{exec-D12IZYtJ.js → exec-CJFFoM7H.js} +31 -13
- package/dist/{exec-DXtR2fhb.js → exec-YIosokWE.js} +1 -1
- package/dist/{exec-approvals-cli-GizapOX5.js → exec-approvals-cli-7LH0lwhO.js} +19 -19
- package/dist/{exec-approvals-cli-BWO0Rs-a.js → exec-approvals-cli-apGnQbpj.js} +19 -19
- package/dist/extensionAPI.js +1108 -661
- package/dist/{fetch-CqZP8jwB.js → fetch-DmiOpALK.js} +5 -3
- package/dist/{fetch-timeout-B2KlHXi3.js → fetch-timeout-BEtUjM1S.js} +5 -3
- package/dist/{fetch-timeout-ohY5QmsW.js → fetch-timeout-DEoXG_SF.js} +5 -3
- package/dist/{fetch-timeout-4UKsdtE1.js → fetch-timeout-DTK9vxex.js} +5 -3
- package/dist/{gateway-cli-Bbd1Xbsc.js → gateway-cli-DUdYxlZS.js} +315 -103
- package/dist/{gateway-cli-PR1S0BTe.js → gateway-cli-DbvWmE-9.js} +314 -102
- package/dist/{gateway-rpc-8gue7Qjt.js → gateway-rpc-BByb2Snz.js} +3 -3
- package/dist/{gateway-rpc-DjuxyOm-.js → gateway-rpc-wXSCUZXj.js} +3 -3
- package/dist/{github-copilot-auth-B3chCDfc.js → github-copilot-auth-D7ewvpMd.js} +16 -8
- package/dist/{github-copilot-auth-Cm2SB8Qf.js → github-copilot-auth-DDispnyz.js} +16 -8
- package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-Cfs0Wxr8.js} +1 -1
- package/dist/{gmail-setup-utils-Cgh0ptgA.js → gmail-setup-utils-Cfns8TQx.js} +3 -3
- package/dist/{gmail-setup-utils-WDyf1gTU.js → gmail-setup-utils-DJb-_5kO.js} +4 -4
- package/dist/{health-format-C0C_Apce.js → health-format-KGPokKJH.js} +68 -28
- package/dist/{health-format-gLMfE2wf.js → health-format-LZDxu3rv.js} +67 -27
- package/dist/{help-format-5iAL_46a.js → help-format-C48TXngO.js} +1 -1
- package/dist/{help-format-DUy1KRxq.js → help-format-R5fLToDw.js} +1 -1
- package/dist/{hooks-cli-CEN1h1ya.js → hooks-cli-CT8JCRkH.js} +46 -44
- package/dist/{hooks-cli-DrchIqSi.js → hooks-cli-S1MKumJO.js} +47 -45
- package/dist/{hooks-status-Cgy6AtQk.js → hooks-status-Cw0xD8Lt.js} +3 -3
- package/dist/{hooks-status--xVLpAXz.js → hooks-status-D9MhwHRp.js} +3 -3
- package/dist/{image-Dkawt9Kg.js → image-Brk1sJbw.js} +4 -4
- package/dist/{image-DI9s9eEx.js → image-C4Nn2p3e.js} +5 -5
- package/dist/{image-LxFvu0wL.js → image-DgtfXMcX.js} +5 -5
- package/dist/{image-B4mDPdyz.js → image-RKwc3fsL.js} +4 -4
- package/dist/index.js +83 -83
- package/dist/{installs-NS0VMPN7.js → installs-CrLcWYHe.js} +4 -4
- package/dist/{installs-DA-eSN1B.js → installs-DscWb9b9.js} +5 -5
- package/dist/{links-CV4oki2u.js → links-B8LAzWwg.js} +1 -1
- package/dist/{links-7M-j83As.js → links-Eax1UO3w.js} +1 -1
- package/dist/llm-slug-generator.js +15 -15
- package/dist/{loader-Caow9TPA.js → loader-KjT074JR.js} +1105 -762
- package/dist/{logging-CeHn2itV.js → logging-BAyPwvdH.js} +1 -1
- package/dist/{logging-D0MyqUlV.js → logging-CRq4h04P.js} +2 -2
- package/dist/{login-qr-Xx8yJrSc.js → login-qr-B6ZgAuIf.js} +5 -5
- package/dist/{login-qr-CoskdtvN.js → login-qr-Bua-p0nG.js} +2 -2
- package/dist/{login-qr-CAk9D-FM.js → login-qr-CuvemJj4.js} +6 -6
- package/dist/{login-qr-kUyMWXV1.js → login-qr-Djr1JfIf.js} +2 -2
- package/dist/{logs-cli-B476pzJS.js → logs-cli-9IAV7rWY.js} +15 -15
- package/dist/{logs-cli-BQRUI_PO.js → logs-cli-EiKzUFPa.js} +14 -14
- package/dist/{manager-CBApH7eR.js → manager-BIMh_eSm.js} +5 -5
- package/dist/{manager-CyJH6WMg.js → manager-CwinWQoz.js} +5 -5
- package/dist/{manager-DScY_ZTT.js → manager-DkqF1GiK.js} +7 -7
- package/dist/{manager-DseK7RWj.js → manager-T1XfGchB.js} +8 -8
- package/dist/{manifest-registry-DFckk-L8.js → manifest-registry-CQhdnDBZ.js} +2 -2
- package/dist/{manifest-registry-BTgLN_W2.js → manifest-registry-u0okVSkU.js} +2 -2
- package/dist/{message-channel-0717wOz-.js → message-channel-BLi2a6Yw.js} +1 -1
- package/dist/{message-channel-BlgPSDAh.js → message-channel-C_MmebBt.js} +1 -1
- package/dist/{model-auth-CbqRVYRp.js → model-auth-CabXIF6O.js} +57 -19
- package/dist/{model-selection-unMJyUIE.js → model-selection-BLuqsGVB.js} +59 -21
- package/dist/{model-selection-B9Y7dKQd.js → model-selection-C1GmkTAV.js} +57 -19
- package/dist/{models-cli-B1cLGcRz.js → models-cli-9jmDv-h3.js} +50 -48
- package/dist/{models-cli-D7sChCi6.js → models-cli-zS9rtWz8.js} +48 -46
- package/dist/{node-cli-ic2C1xs2.js → node-cli-CrpTxTTs.js} +26 -24
- package/dist/{node-cli-CS3KwBh1.js → node-cli-wemUMCg-.js} +25 -23
- package/dist/{node-service-D_Cdq1JI.js → node-service-C8DTHTMg.js} +2 -2
- package/dist/{node-service-_vgO5xR-.js → node-service-WQuEKz6W.js} +1 -1
- package/dist/{nodes-cli-CipcvVMc.js → nodes-cli-BaU2SIFw.js} +16 -16
- package/dist/{nodes-cli-B1meaW7S.js → nodes-cli-Dx23D72n.js} +16 -16
- package/dist/{nodes-screen-N-4_0VIu.js → nodes-screen-C0IuBqUL.js} +1 -1
- package/dist/{note-CAM9PbSJ.js → note-BhRSeNeu.js} +2 -2
- package/dist/{note-Ci08TSbV.js → note-hhtubr2j.js} +1 -1
- package/dist/{onboard-channels-DMcOT0dj.js → onboard-channels-C501x8GI.js} +8 -8
- package/dist/{onboard-channels-CsT3E4bT.js → onboard-channels-Dxzroasd.js} +8 -8
- package/dist/{onboard-skills-DoxkpnEU.js → onboard-skills-DV0Qzvjj.js} +19 -19
- package/dist/{onboard-skills-D-BrCoRN.js → onboard-skills-rlBHcu3Q.js} +18 -18
- package/dist/{onboarding-B92952fz.js → onboarding-CN-EDLjd.js} +34 -34
- package/dist/{pairing-cli-BDUJ5VoX.js → pairing-cli-CDHG4xuI.js} +15 -15
- package/dist/{pairing-cli-0wbU1u8d.js → pairing-cli-CQP34Dlx.js} +14 -14
- package/dist/{pairing-labels-3o3QO3Qn.js → pairing-labels-B6CN0SNH.js} +1 -1
- package/dist/{pairing-labels-Bin1K7_f.js → pairing-labels-CgNHnjzT.js} +1 -1
- package/dist/{pairing-store-CL4rJ7m7.js → pairing-store-CmlRVqOz.js} +2 -2
- package/dist/{pairing-store-fIWI3pXG.js → pairing-store-Dp5_JGnG.js} +3 -3
- package/dist/{path-env-CXWUFfFv.js → path-env-CLvYNwtL.js} +1 -1
- package/dist/{path-env-C5FR_Eay.js → path-env-CaYUVIML.js} +2 -2
- package/dist/{paths-DwKNqk_S.js → paths-B0a4ywSO.js} +30 -5
- package/dist/{paths-RITJT4UY.js → paths-B49s6UZQ.js} +30 -5
- package/dist/{paths-CB2fqqbX.js → paths-D0O87MfH.js} +30 -5
- package/dist/{paths-IivnSNkP.js → paths-DLINmNFQ.js} +31 -6
- package/dist/{pi-embedded-DhYItk8O.js → pi-embedded-Ctrt2kz0.js} +1109 -662
- package/dist/{pi-embedded-helpers-CmftU5Zj.js → pi-embedded-helpers-CMKLjW6X.js} +8 -5
- package/dist/{pi-embedded-helpers-CfXnSIFx.js → pi-embedded-helpers-CUzTc1v6.js} +170 -19
- package/dist/{pi-embedded-helpers-Uan-3N1T.js → pi-embedded-helpers-DfwkwPYD.js} +7 -4
- package/dist/{pi-embedded-helpers-Bri9tk9g.js → pi-embedded-helpers-WDwx99UA.js} +170 -19
- package/dist/{pi-tools.policy-CJFi1sny.js → pi-tools.policy-BpsROZbz.js} +4 -4
- package/dist/{plugin-auto-enable-BY4CqJbD.js → plugin-auto-enable-Bqhc3w5n.js} +5 -5
- package/dist/{plugin-auto-enable-DbQrtQjL.js → plugin-auto-enable-PW76g_PJ.js} +5 -5
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -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/usage.d.ts +1 -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/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/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/zod-schema.agents.d.ts +1 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +11 -0
- 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/discord/monitor/allow-list.d.ts +15 -0
- package/dist/plugin-sdk/discord/send.types.d.ts +3 -0
- package/dist/plugin-sdk/gateway/auth.d.ts +36 -0
- package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +6 -0
- package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
- package/dist/plugin-sdk/index.js +295 -99
- package/dist/plugin-sdk/infra/binaries.d.ts +3 -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/logger.d.ts +1 -1
- package/dist/plugin-sdk/media/input-files.d.ts +5 -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/{plugins-3GyCj5KL.js → plugins-4Hqd1WGf.js} +3 -3
- package/dist/{plugins-BL9lIXSA.js → plugins-X7d_tfTE.js} +4 -4
- package/dist/{plugins-cli-Ce7VsvZh.js → plugins-cli-Bgku3EGj.js} +253 -46
- package/dist/{plugins-cli-e9gUebMd.js → plugins-cli-CVToH3if.js} +254 -47
- package/dist/{ports-DupIRXQ0.js → ports-qkt29rdC.js} +2 -2
- package/dist/{program-u22vbFpH.js → program-Cf7lkBur.js} +82 -82
- package/dist/{progress-g9R--HZD.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-lmJDcgtA.js → prompt-style-CIbmaxSa.js} +1 -1
- package/dist/{pw-ai-C43wv1ZF.js → pw-ai-8mdv3h-d.js} +7 -6
- package/dist/{pw-ai-DTZVjndL.js → pw-ai-CM1IsSgZ.js} +5 -5
- package/dist/{pw-ai-zVebjrSG.js → pw-ai-FGoRVblI.js} +3 -3
- package/dist/{pw-ai-CWrnJ98b.js → pw-ai-sS1fRKW_.js} +3 -3
- package/dist/{qmd-manager-NPD5Yh_4.js → qmd-manager-C67Fc8aN.js} +4 -4
- package/dist/{qmd-manager-ozZ933qc.js → qmd-manager-CXVbfg99.js} +7 -7
- package/dist/{qmd-manager-DBCZ1sio.js → qmd-manager-RMRE8Tqt.js} +6 -6
- package/dist/{qmd-manager-a9Bt0405.js → qmd-manager-pyc_MTIe.js} +4 -4
- package/dist/{register.subclis-BpX3ulH1.js → register.subclis-C02e4zuJ.js} +28 -28
- package/dist/{reply-m467_fOC.js → reply-DICXkh_C.js} +911 -568
- package/dist/{routes-82Ywfho6.js → routes-CmOI1hIH.js} +29 -11
- package/dist/{routes-BqxA3ZYr.js → routes-DewK5tq2.js} +29 -12
- package/dist/{rpc-DcGBG-Fp.js → rpc-DHr30euf.js} +3 -3
- package/dist/{rpc-CfdBHlnp.js → rpc-T300F8zI.js} +3 -3
- package/dist/{run-main-aolvSfj3.js → run-main-C5wpthq1.js} +84 -84
- package/dist/{runner-C1G8RFWl.js → runner-CY0nmVme.js} +9 -9
- package/dist/{runner-BCBs8JKA.js → runner-Cfm5nTMc.js} +6 -6
- package/dist/{runner-CInKPsiP.js → runner-D_dujMod.js} +8 -8
- package/dist/{runner-Cwfn-VOM.js → runner-DrGYLH5K.js} +6 -6
- package/dist/{sandbox-B0K9e6Fw.js → sandbox-BKYnhYQH.js} +23 -15
- package/dist/{sandbox-BW8Xnkw1.js → sandbox-Bhjnh1Xg.js} +21 -13
- package/dist/{sandbox-cli-mKCs2J0i.js → sandbox-cli-DBsAjZJN.js} +20 -20
- package/dist/{sandbox-cli-BD5LkZ0B.js → sandbox-cli-rV9LtFeu.js} +19 -19
- package/dist/{security-cli-kgI4soGy.js → security-cli-BIwJM_rs.js} +27 -27
- package/dist/{security-cli-kz8TiyqU.js → security-cli-BRjny8Yu.js} +26 -26
- package/dist/{server-context-fX4xiYRh.js → server-context-BGpGs3qd.js} +7 -7
- package/dist/{server-context-Lb-eUZG_.js → server-context-Cl0U0vE3.js} +5 -5
- package/dist/{server-node-events-Dx18uVrH.js → server-node-events-CBfTbiTA.js} +45 -43
- package/dist/{server-node-events-KqZMN30F.js → server-node-events-QCvh8EgI.js} +45 -43
- package/dist/{service-DZMXgMra.js → service--nPk7DvT.js} +3 -3
- package/dist/{service-DNcIZ5Kp.js → service-99RDXwX4.js} +2 -2
- package/dist/{service-audit-0WLGnoNT.js → service-audit-DnLmRGQt.js} +4 -4
- package/dist/{service-audit-uhZSlxeb.js → service-audit-ckBaRCVC.js} +3 -3
- package/dist/{session-cost-usage-HU4OeRgw.js → session-cost-usage-D7HuoSSD.js} +10 -8
- package/dist/{session-cost-usage-CL8gnHRN.js → session-cost-usage-D9hHANWI.js} +10 -8
- package/dist/{shared-j4Qtr475.js → shared-Bs4vduG4.js} +3 -3
- package/dist/{shared-BBw6F-YC.js → shared-CEY5IkwG.js} +2 -2
- package/dist/{shared-DOZs2SoH.js → shared-DRohONn_.js} +3 -3
- package/dist/{shared-CtP9K-o2.js → shared-ICqOZibV.js} +3 -3
- package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-rHMtUHtP.js} +1 -1
- package/dist/{skills-BvPUNjxo.js → skills-DRjfSQT3.js} +128 -4
- package/dist/{skills-aFOsriMP.js → skills-DprQj9X2.js} +129 -5
- package/dist/{skills-cli-oWaTJzZd.js → skills-cli-9WO-C55s.js} +12 -12
- package/dist/{skills-cli-E6shXpdd.js → skills-cli-B9eej-EW.js} +13 -13
- package/dist/{skills-status-D4vbIMnz.js → skills-status-5U3P3YfJ.js} +3 -3
- package/dist/{skills-status-DJDaA2Ur.js → skills-status-TDIgVd1K.js} +2 -2
- package/dist/{sqlite-B7FPASCO.js → sqlite-BINzs1U0.js} +2 -2
- package/dist/{sqlite-B4Z1_Ioc.js → sqlite-D4w5TejA.js} +2 -2
- package/dist/{sqlite-BkYnxkQO.js → sqlite-DRRHmlug.js} +2 -2
- package/dist/{sqlite-EuQPVXvn.js → sqlite-F6PGkEm1.js} +2 -2
- package/dist/{status-B2Yr-2J5.js → status-BKGkKC_v.js} +3 -3
- package/dist/{status-DW7m5xUN.js → status-CiHtHdaa.js} +4 -4
- package/dist/{status-CxhnUa5J.js → status-DDWoOpeB.js} +33 -33
- package/dist/{subsystem-Bv7dGhES.js → subsystem-BoExtIHo.js} +32 -13
- package/dist/{system-cli-0JXhJNWm.js → system-cli-B6lr60Io.js} +14 -14
- package/dist/{system-cli-D-0OaMtH.js → system-cli-CprW9G3h.js} +14 -14
- package/dist/{systemd-CNTodvCO.js → systemd-C0VZriGM.js} +2 -2
- package/dist/{systemd-CUJJHgHa.js → systemd-DrmBtJ5T.js} +3 -3
- package/dist/{systemd-hints-cmHtrXUl.js → systemd-hints-DZtXiVHa.js} +1 -1
- package/dist/{systemd-linger-CArPbmvv.js → systemd-linger-NC2kl1SC.js} +2 -2
- package/dist/{systemd-linger-XvT9Y9sb.js → systemd-linger-xdn3BdPh.js} +2 -2
- package/dist/{table-DzBBIqHO.js → table-B8dx3v4v.js} +2 -2
- package/dist/{table-oJQPTUL6.js → table-CwulTLQp.js} +1 -1
- package/dist/{tool-display-Na-EVL83.js → tool-display-CZRIDMRm.js} +1 -1
- package/dist/{tool-display-sHJa3kRs.js → tool-display-ClRud3pg.js} +2 -2
- package/dist/{tui-nGp8ltQK.js → tui-CVTQn-dC.js} +9 -9
- package/dist/{tui-Biw7aqPj.js → tui-Lu8FdrlK.js} +9 -9
- package/dist/{tui-cli-C9FEfG7C.js → tui-cli-BLpTj1X9.js} +25 -25
- package/dist/{tui-cli-Dxnu5JGl.js → tui-cli-BLx5kL2I.js} +25 -25
- package/dist/{tui-formatters-BiNTNGwg.js → tui-formatters-CNySEfJN.js} +5 -5
- package/dist/{tui-formatters-C_baVYUz.js → tui-formatters-DePhZK3J.js} +5 -5
- package/dist/{update-C4rsLj2F.js → update-DHVxMTpQ.js} +3 -3
- package/dist/{update-uwUWrKFu.js → update-DU1geolI.js} +3 -3
- package/dist/{update-cli-cNd_G9E6.js → update-cli-C0hUvJWK.js} +66 -66
- package/dist/{update-cli-CBXp-c4C.js → update-cli-Wb1GB3rL.js} +68 -68
- package/dist/{update-runner-BLsqC24J.js → update-runner--ixK4J3W.js} +10 -10
- package/dist/{update-runner-C_FDpmA3.js → update-runner-7Qa1T9y6.js} +9 -9
- package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
- package/dist/{utils-BHPdZE4h.js → utils-Cd9QdCHh.js} +1 -1
- package/dist/{webhooks-cli-BpBKXL7W.js → webhooks-cli-DgcMy7RG.js} +12 -12
- package/dist/{webhooks-cli-wNfhfKqm.js → webhooks-cli-aVzUcJY9.js} +11 -11
- package/dist/{widearea-dns-WVCWJTEb.js → widearea-dns-BaIgNEhY.js} +1 -1
- package/dist/{widearea-dns-BWYPcfby.js → widearea-dns-DzuRdwk5.js} +1 -1
- package/dist/{ws-log-Cafylho7.js → ws-log-CIXbLCka.js} +1 -1
- package/dist/{ws-log-DTUOUVgR.js → ws-log-DcQFZByi.js} +1 -1
- package/dist/{wsl-B-H6Z5wp.js → wsl-BUOkxKJu.js} +2 -2
- package/docs/automation/webhook.md +43 -2
- package/docs/channels/discord.md +29 -1
- package/docs/cli/plugins.md +20 -1
- package/docs/cli/security.md +1 -0
- package/docs/concepts/session-tool.md +1 -0
- package/docs/gateway/configuration-reference.md +11 -0
- package/docs/gateway/configuration.md +3 -0
- 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/installer.md +20 -0
- package/docs/reference/transcript-hygiene.md +18 -0
- package/docs/tools/browser.md +6 -0
- package/extensions/diagnostics-otel/package.json +9 -9
- package/extensions/feishu/package.json +1 -1
- package/extensions/feishu/src/config-schema.ts +6 -0
- 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/irc/src/client.ts +1 -1
- package/extensions/minimax-portal-auth/index.ts +7 -5
- package/extensions/nostr/package.json +1 -1
- package/package.json +13 -13
- package/dist/auth-BcNHFK-i.js +0 -184
- package/dist/auth-jrfLXze7.js +0 -184
- /package/dist/{archive-DqNr5i8b.js → archive-beaSfAzA.js} +0 -0
- /package/dist/{brew-BIrWdDps.js → brew-BUIxHEkn.js} +0 -0
- /package/dist/{brew-6UyogeLe.js → brew-ROHf0-Xp.js} +0 -0
- /package/dist/{constants-DuoCkWRh.js → constants-BvQ6S8j5.js} +0 -0
- /package/dist/{errors-x4NYs-1P.js → errors-DjZBTJJ3.js} +0 -0
- /package/dist/{helpers-BDvtkJjw.js → helpers-HyeZXsnu.js} +0 -0
- /package/dist/{is-main-CE1eOBYb.js → is-main-BWoXGz7p.js} +0 -0
- /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
- /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
- /package/dist/{prompts-BOz5176z.js → prompts-Bg96reub.js} +0 -0
- /package/dist/{redact-DuEEf1p1.js → redact-Br9GfacZ.js} +0 -0
- /package/dist/{skill-scanner-CprFkZib.js → skill-scanner-CucvxYhu.js} +0 -0
- /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-BtNd-j6q.js} +0 -0
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./auth-profiles-
|
|
3
|
-
import { n as replaceCliName, r as resolveCliName, t as formatCliCommand } from "./command-format-
|
|
4
|
-
import { h as pathExists } from "./utils-
|
|
5
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
1
|
+
import { A as theme, Z as resolveStateDir, p as defaultRuntime } from "./entry.js";
|
|
2
|
+
import "./auth-profiles-ByNs3eEm.js";
|
|
3
|
+
import { n as replaceCliName, r as resolveCliName, t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
4
|
+
import { h as pathExists } from "./utils-BLJAc3ZV.js";
|
|
5
|
+
import { t as runCommandWithTimeout } from "./exec-CACT5OAW.js";
|
|
6
6
|
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-BNlEap4i.js";
|
|
7
|
-
import "./agent-scope-
|
|
8
|
-
import "./github-copilot-token-
|
|
7
|
+
import "./agent-scope-CsRbLH4l.js";
|
|
8
|
+
import "./github-copilot-token-Cfs0Wxr8.js";
|
|
9
9
|
import "./pi-model-discovery-DzEIEgHL.js";
|
|
10
|
-
import { c as writeConfigFile, o as readConfigFileSnapshot } from "./config-
|
|
11
|
-
import "./manifest-registry-
|
|
12
|
-
import "./server-context-
|
|
13
|
-
import "./chrome-
|
|
14
|
-
import "./
|
|
15
|
-
import "./
|
|
16
|
-
import "./
|
|
17
|
-
import "./client-
|
|
18
|
-
import "./call-
|
|
19
|
-
import "./message-channel-
|
|
20
|
-
import { t as formatDocsLink } from "./links-
|
|
21
|
-
import "./plugin-auto-enable-
|
|
22
|
-
import "./plugins-
|
|
10
|
+
import { c as writeConfigFile, o as readConfigFileSnapshot } from "./config-Bdhomfei.js";
|
|
11
|
+
import "./manifest-registry-u0okVSkU.js";
|
|
12
|
+
import "./server-context-BGpGs3qd.js";
|
|
13
|
+
import "./chrome-foEwx3lN.js";
|
|
14
|
+
import "./auth-9x3lqfIY.js";
|
|
15
|
+
import "./control-auth-8Cf4WXpR.js";
|
|
16
|
+
import "./control-service-DKnttEus.js";
|
|
17
|
+
import "./client-CTwXnRl7.js";
|
|
18
|
+
import "./call-DVYCIV8m.js";
|
|
19
|
+
import "./message-channel-C_MmebBt.js";
|
|
20
|
+
import { t as formatDocsLink } from "./links-B8LAzWwg.js";
|
|
21
|
+
import "./plugin-auto-enable-Bqhc3w5n.js";
|
|
22
|
+
import "./plugins-4Hqd1WGf.js";
|
|
23
23
|
import "./logging-CfEk_PnX.js";
|
|
24
|
-
import "./accounts-
|
|
25
|
-
import {
|
|
26
|
-
import "./progress-
|
|
27
|
-
import { n as stylePromptMessage, t as stylePromptHint } from "./prompt-style-
|
|
28
|
-
import "./note-
|
|
24
|
+
import "./accounts-DCDeFTra.js";
|
|
25
|
+
import { Fn as trimLogTail } from "./loader-KjT074JR.js";
|
|
26
|
+
import "./progress-DWqhRakV.js";
|
|
27
|
+
import { n as stylePromptMessage, t as stylePromptHint } from "./prompt-style-BFH5D5LN.js";
|
|
28
|
+
import "./note-hhtubr2j.js";
|
|
29
29
|
import "./archive-D0z3LZDK.js";
|
|
30
|
-
import "./skill-scanner-
|
|
31
|
-
import "./installs-
|
|
32
|
-
import "./
|
|
33
|
-
import "./
|
|
34
|
-
import "./
|
|
35
|
-
import "./
|
|
36
|
-
import "./
|
|
37
|
-
import "./
|
|
38
|
-
import "./
|
|
39
|
-
import "./fetch-timeout-
|
|
40
|
-
import "./sandbox-
|
|
41
|
-
import "./tui-formatters-
|
|
42
|
-
import "./wsl-
|
|
43
|
-
import "./skills-
|
|
44
|
-
import "./image-
|
|
30
|
+
import "./skill-scanner-rHMtUHtP.js";
|
|
31
|
+
import "./installs-CrLcWYHe.js";
|
|
32
|
+
import "./deliver-CIU9Npgs.js";
|
|
33
|
+
import "./manager-T1XfGchB.js";
|
|
34
|
+
import "./paths-DLINmNFQ.js";
|
|
35
|
+
import "./sqlite-BINzs1U0.js";
|
|
36
|
+
import "./redact-Br9GfacZ.js";
|
|
37
|
+
import "./routes-DewK5tq2.js";
|
|
38
|
+
import "./pi-embedded-helpers-DfwkwPYD.js";
|
|
39
|
+
import "./fetch-timeout-DTK9vxex.js";
|
|
40
|
+
import "./sandbox-BKYnhYQH.js";
|
|
41
|
+
import "./tui-formatters-DePhZK3J.js";
|
|
42
|
+
import "./wsl-BUOkxKJu.js";
|
|
43
|
+
import "./skills-DRjfSQT3.js";
|
|
44
|
+
import "./image-DgtfXMcX.js";
|
|
45
45
|
import { r as formatDurationPrecise } from "./format-duration-Bo9zNKwO.js";
|
|
46
|
-
import "./tool-display-
|
|
47
|
-
import "./channel-selection-
|
|
48
|
-
import "./session-cost-usage-
|
|
49
|
-
import "./runner-
|
|
50
|
-
import "./commands-
|
|
51
|
-
import "./pairing-store-
|
|
52
|
-
import "./login-qr-
|
|
53
|
-
import "./pairing-labels-
|
|
54
|
-
import "./channels-status-issues-
|
|
55
|
-
import "./register.subclis-
|
|
56
|
-
import { r as installCompletion } from "./completion-cli-
|
|
57
|
-
import "./deps-
|
|
58
|
-
import { g as parseSemver } from "./daemon-runtime-
|
|
59
|
-
import "./service-
|
|
60
|
-
import "./systemd-
|
|
61
|
-
import "./shared-
|
|
62
|
-
import { r as runDaemonRestart } from "./daemon-cli-
|
|
63
|
-
import "./service-audit-
|
|
64
|
-
import { t as renderTable } from "./table-
|
|
65
|
-
import "./health-format-
|
|
66
|
-
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, c as formatUpdateOneLiner, d as checkShellCompletionStatus, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as ensureCompletionCacheExists, r as detectGlobalInstallManagerByPresence, s as formatUpdateAvailableHint, t as runGatewayUpdate, u as resolveUpdateAvailability, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner
|
|
67
|
-
import "./logging-
|
|
68
|
-
import "./skills-status-
|
|
69
|
-
import "./auth-health-
|
|
70
|
-
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-
|
|
71
|
-
import { t as formatHelpExamples } from "./help-format-
|
|
72
|
-
import "./systemd-linger-
|
|
73
|
-
import { t as doctorCommand } from "./doctor-
|
|
46
|
+
import "./tool-display-ClRud3pg.js";
|
|
47
|
+
import "./channel-selection-D4D6ImhN.js";
|
|
48
|
+
import "./session-cost-usage-D9hHANWI.js";
|
|
49
|
+
import "./runner-CY0nmVme.js";
|
|
50
|
+
import "./commands-BX_OIIVR.js";
|
|
51
|
+
import "./pairing-store-Dp5_JGnG.js";
|
|
52
|
+
import "./login-qr-CuvemJj4.js";
|
|
53
|
+
import "./pairing-labels-CgNHnjzT.js";
|
|
54
|
+
import "./channels-status-issues-D7GSV1GS.js";
|
|
55
|
+
import "./register.subclis-C02e4zuJ.js";
|
|
56
|
+
import { r as installCompletion } from "./completion-cli-CR77-jyv.js";
|
|
57
|
+
import "./deps-QSwGcoNZ.js";
|
|
58
|
+
import { g as parseSemver } from "./daemon-runtime-B0tg_LsX.js";
|
|
59
|
+
import "./service-99RDXwX4.js";
|
|
60
|
+
import "./systemd-C0VZriGM.js";
|
|
61
|
+
import "./shared-ICqOZibV.js";
|
|
62
|
+
import { r as runDaemonRestart } from "./daemon-cli-cNSF93-v.js";
|
|
63
|
+
import "./service-audit-ckBaRCVC.js";
|
|
64
|
+
import { t as renderTable } from "./table-CwulTLQp.js";
|
|
65
|
+
import "./health-format-LZDxu3rv.js";
|
|
66
|
+
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, c as formatUpdateOneLiner, d as checkShellCompletionStatus, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as ensureCompletionCacheExists, r as detectGlobalInstallManagerByPresence, s as formatUpdateAvailableHint, t as runGatewayUpdate, u as resolveUpdateAvailability, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner--ixK4J3W.js";
|
|
67
|
+
import "./logging-CRq4h04P.js";
|
|
68
|
+
import "./skills-status-TDIgVd1K.js";
|
|
69
|
+
import "./auth-health-j6epgQbq.js";
|
|
70
|
+
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DU1geolI.js";
|
|
71
|
+
import { t as formatHelpExamples } from "./help-format-R5fLToDw.js";
|
|
72
|
+
import "./systemd-linger-xdn3BdPh.js";
|
|
73
|
+
import { t as doctorCommand } from "./doctor-sYG5V4Co.js";
|
|
74
74
|
import { spawnSync } from "node:child_process";
|
|
75
75
|
import path from "node:path";
|
|
76
76
|
import os from "node:os";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { r as resolveCliName, t as formatCliCommand } from "./command-format-
|
|
2
|
-
import { h as pathExists } from "./utils-
|
|
3
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
1
|
+
import { r as resolveCliName, t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
2
|
+
import { h as pathExists } from "./utils-BLJAc3ZV.js";
|
|
3
|
+
import { t as runCommandWithTimeout } from "./exec-CACT5OAW.js";
|
|
4
4
|
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-BNlEap4i.js";
|
|
5
|
-
import { M as VERSION } from "./config-
|
|
6
|
-
import {
|
|
7
|
-
import { t as note } from "./note-
|
|
8
|
-
import { t as fetchWithTimeout } from "./fetch-timeout-
|
|
9
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
10
|
-
import { g as parseSemver } from "./daemon-runtime-
|
|
11
|
-
import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-
|
|
5
|
+
import { M as VERSION } from "./config-Bdhomfei.js";
|
|
6
|
+
import { Fn as trimLogTail } from "./loader-KjT074JR.js";
|
|
7
|
+
import { t as note } from "./note-hhtubr2j.js";
|
|
8
|
+
import { t as fetchWithTimeout } from "./fetch-timeout-DTK9vxex.js";
|
|
9
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CR77-jyv.js";
|
|
10
|
+
import { g as parseSemver } from "./daemon-runtime-B0tg_LsX.js";
|
|
11
|
+
import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-LZDxu3rv.js";
|
|
12
12
|
import { spawnSync } from "node:child_process";
|
|
13
13
|
import path from "node:path";
|
|
14
14
|
import os from "node:os";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { g as pathExists } from "./utils-
|
|
2
|
-
import { Y as trimLogTail } from "./reply-
|
|
3
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
1
|
+
import { g as pathExists } from "./utils-Cd9QdCHh.js";
|
|
2
|
+
import { Y as trimLogTail } from "./reply-DICXkh_C.js";
|
|
3
|
+
import { t as runCommandWithTimeout } from "./exec-YIosokWE.js";
|
|
4
4
|
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-1VeFrph_.js";
|
|
5
5
|
import { r as resolveCliName, t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
6
|
-
import { M as VERSION } from "./config-
|
|
7
|
-
import { r as fetchWithTimeout } from "./fetch-
|
|
8
|
-
import { _ as parseSemver } from "./daemon-runtime-
|
|
9
|
-
import { t as note } from "./note-
|
|
10
|
-
import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-
|
|
11
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
6
|
+
import { M as VERSION } from "./config-aFQssWKX.js";
|
|
7
|
+
import { r as fetchWithTimeout } from "./fetch-DmiOpALK.js";
|
|
8
|
+
import { _ as parseSemver } from "./daemon-runtime-Bsjeut6m.js";
|
|
9
|
+
import { t as note } from "./note-BhRSeNeu.js";
|
|
10
|
+
import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-KGPokKJH.js";
|
|
11
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DnjpxAag.js";
|
|
12
12
|
import os from "node:os";
|
|
13
13
|
import path from "node:path";
|
|
14
14
|
import fs from "node:fs/promises";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S as logVerbose, T as shouldLogVerbose, Y as resolveOAuthDir, ht as resolveRequiredHomeDir, mt as resolveEffectiveHomeDir, pt as expandHomePrefix } from "./entry.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import fs from "node:fs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as expandHomePrefix, m as resolveOAuthDir, v as resolveEffectiveHomeDir, y as resolveRequiredHomeDir } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { A as logVerbose, N as shouldLogVerbose } from "./subsystem-
|
|
2
|
+
import { A as logVerbose, N as shouldLogVerbose } from "./subsystem-BoExtIHo.js";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./auth-profiles-
|
|
3
|
-
import { t as formatCliCommand } from "./command-format-
|
|
4
|
-
import { a as displayPath } from "./utils-
|
|
5
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./github-copilot-token-
|
|
8
|
-
import { c as writeConfigFile, i as loadConfig, l as validateConfigObjectWithPlugins, o as readConfigFileSnapshot } from "./config-
|
|
9
|
-
import "./manifest-registry-
|
|
10
|
-
import { t as formatDocsLink } from "./links-
|
|
11
|
-
import "./skills-
|
|
12
|
-
import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-
|
|
1
|
+
import { A as theme, G as resolveGatewayPort, I as CONFIG_PATH, p as defaultRuntime, v as danger } from "./entry.js";
|
|
2
|
+
import "./auth-profiles-ByNs3eEm.js";
|
|
3
|
+
import { t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
4
|
+
import { a as displayPath } from "./utils-BLJAc3ZV.js";
|
|
5
|
+
import { t as runCommandWithTimeout } from "./exec-CACT5OAW.js";
|
|
6
|
+
import "./agent-scope-CsRbLH4l.js";
|
|
7
|
+
import "./github-copilot-token-Cfs0Wxr8.js";
|
|
8
|
+
import { c as writeConfigFile, i as loadConfig, l as validateConfigObjectWithPlugins, o as readConfigFileSnapshot } from "./config-Bdhomfei.js";
|
|
9
|
+
import "./manifest-registry-u0okVSkU.js";
|
|
10
|
+
import { t as formatDocsLink } from "./links-B8LAzWwg.js";
|
|
11
|
+
import "./skills-DRjfSQT3.js";
|
|
12
|
+
import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-DJb-_5kO.js";
|
|
13
13
|
import { spawn } from "node:child_process";
|
|
14
14
|
|
|
15
15
|
//#region src/hooks/gmail-ops.ts
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { E as danger, R as theme, c as defaultRuntime } from "./subsystem-
|
|
3
|
-
import { o as displayPath } from "./utils-
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
5
|
-
import "./agent-scope
|
|
6
|
-
import "./model-selection-
|
|
2
|
+
import { E as danger, R as theme, c as defaultRuntime } from "./subsystem-BoExtIHo.js";
|
|
3
|
+
import { o as displayPath } from "./utils-Cd9QdCHh.js";
|
|
4
|
+
import { t as runCommandWithTimeout } from "./exec-YIosokWE.js";
|
|
5
|
+
import "./agent-scope-CQCus0rI.js";
|
|
6
|
+
import "./model-selection-BLuqsGVB.js";
|
|
7
7
|
import "./github-copilot-token-BW-SEg7E.js";
|
|
8
8
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
9
9
|
import "./boolean-BgXe2hyu.js";
|
|
10
|
-
import "./env-
|
|
11
|
-
import { c as writeConfigFile, i as loadConfig, l as validateConfigObjectWithPlugins, o as readConfigFileSnapshot } from "./config-
|
|
12
|
-
import "./manifest-registry-
|
|
13
|
-
import "./skills-
|
|
14
|
-
import { t as formatDocsLink } from "./links-
|
|
15
|
-
import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-
|
|
10
|
+
import "./env-ONzUVAG2.js";
|
|
11
|
+
import { c as writeConfigFile, i as loadConfig, l as validateConfigObjectWithPlugins, o as readConfigFileSnapshot } from "./config-aFQssWKX.js";
|
|
12
|
+
import "./manifest-registry-CQhdnDBZ.js";
|
|
13
|
+
import "./skills-DprQj9X2.js";
|
|
14
|
+
import { t as formatDocsLink } from "./links-Eax1UO3w.js";
|
|
15
|
+
import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-Cfns8TQx.js";
|
|
16
16
|
import { spawn } from "node:child_process";
|
|
17
17
|
|
|
18
18
|
//#region src/hooks/gmail-ops.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { b as isVerbose, d as shouldLogSubsystemToConsole, o as createSubsystemLogger } from "./entry.js";
|
|
2
2
|
import { y as parseAgentSessionKey } from "./session-key-DVvxnFKg.js";
|
|
3
|
-
import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-
|
|
3
|
+
import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-Br9GfacZ.js";
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
|
|
6
6
|
//#region src/gateway/ws-logging.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { O as isVerbose, o as shouldLogSubsystemToConsole, t as createSubsystemLogger } from "./subsystem-
|
|
1
|
+
import { O as isVerbose, o as shouldLogSubsystemToConsole, t as createSubsystemLogger } from "./subsystem-BoExtIHo.js";
|
|
2
2
|
import { y as parseAgentSessionKey } from "./session-key-BWxPj0z_.js";
|
|
3
3
|
import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-BRsnXqwD.js";
|
|
4
4
|
import chalk from "chalk";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as escapeRegExp } from "./utils-
|
|
2
|
-
import { t as registerBrowserRoutes } from "./routes-
|
|
1
|
+
import { c as escapeRegExp } from "./utils-BLJAc3ZV.js";
|
|
2
|
+
import { t as registerBrowserRoutes } from "./routes-DewK5tq2.js";
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import { readFileSync } from "node:fs";
|
|
@@ -37,7 +37,7 @@ Every request must include the hook token. Prefer headers:
|
|
|
37
37
|
|
|
38
38
|
- `Authorization: Bearer <token>` (recommended)
|
|
39
39
|
- `x-openclaw-token: <token>`
|
|
40
|
-
-
|
|
40
|
+
- Query-string tokens are rejected (`?token=...` returns `400`).
|
|
41
41
|
|
|
42
42
|
## Endpoints
|
|
43
43
|
|
|
@@ -80,7 +80,7 @@ Payload:
|
|
|
80
80
|
- `message` **required** (string): The prompt or message for the agent to process.
|
|
81
81
|
- `name` optional (string): Human-readable name for the hook (e.g., "GitHub"), used as a prefix in session summaries.
|
|
82
82
|
- `agentId` optional (string): Route this hook to a specific agent. Unknown IDs fall back to the default agent. When set, the hook runs using the resolved agent's workspace and configuration.
|
|
83
|
-
- `sessionKey` optional (string): The key used to identify the agent's session.
|
|
83
|
+
- `sessionKey` optional (string): The key used to identify the agent's session. By default this field is rejected unless `hooks.allowRequestSessionKey=true`.
|
|
84
84
|
- `wakeMode` optional (`now` | `next-heartbeat`): Whether to trigger an immediate heartbeat (default `now`) or wait for the next periodic check.
|
|
85
85
|
- `deliver` optional (boolean): If `true`, the agent's response will be sent to the messaging channel. Defaults to `true`. Responses that are only heartbeat acknowledgments are automatically skipped.
|
|
86
86
|
- `channel` optional (string): The messaging channel for delivery. One of: `last`, `whatsapp`, `telegram`, `discord`, `slack`, `mattermost` (plugin), `signal`, `imessage`, `msteams`. Defaults to `last`.
|
|
@@ -95,6 +95,40 @@ Effect:
|
|
|
95
95
|
- Always posts a summary into the **main** session
|
|
96
96
|
- If `wakeMode=now`, triggers an immediate heartbeat
|
|
97
97
|
|
|
98
|
+
## Session key policy (breaking change)
|
|
99
|
+
|
|
100
|
+
`/hooks/agent` payload `sessionKey` overrides are disabled by default.
|
|
101
|
+
|
|
102
|
+
- Recommended: set a fixed `hooks.defaultSessionKey` and keep request overrides off.
|
|
103
|
+
- Optional: allow request overrides only when needed, and restrict prefixes.
|
|
104
|
+
|
|
105
|
+
Recommended config:
|
|
106
|
+
|
|
107
|
+
```json5
|
|
108
|
+
{
|
|
109
|
+
hooks: {
|
|
110
|
+
enabled: true,
|
|
111
|
+
token: "${OPENCLAW_HOOKS_TOKEN}",
|
|
112
|
+
defaultSessionKey: "hook:ingress",
|
|
113
|
+
allowRequestSessionKey: false,
|
|
114
|
+
allowedSessionKeyPrefixes: ["hook:"],
|
|
115
|
+
},
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Compatibility config (legacy behavior):
|
|
120
|
+
|
|
121
|
+
```json5
|
|
122
|
+
{
|
|
123
|
+
hooks: {
|
|
124
|
+
enabled: true,
|
|
125
|
+
token: "${OPENCLAW_HOOKS_TOKEN}",
|
|
126
|
+
allowRequestSessionKey: true,
|
|
127
|
+
allowedSessionKeyPrefixes: ["hook:"], // strongly recommended
|
|
128
|
+
},
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
98
132
|
### `POST /hooks/<name>` (mapped)
|
|
99
133
|
|
|
100
134
|
Custom hook names are resolved via `hooks.mappings` (see configuration). A mapping can
|
|
@@ -112,6 +146,9 @@ Mapping options (summary):
|
|
|
112
146
|
(`channel` defaults to `last` and falls back to WhatsApp).
|
|
113
147
|
- `agentId` routes the hook to a specific agent; unknown IDs fall back to the default agent.
|
|
114
148
|
- `hooks.allowedAgentIds` restricts explicit `agentId` routing. Omit it (or include `*`) to allow any agent. Set `[]` to deny explicit `agentId` routing.
|
|
149
|
+
- `hooks.defaultSessionKey` sets the default session for hook agent runs when no explicit key is provided.
|
|
150
|
+
- `hooks.allowRequestSessionKey` controls whether `/hooks/agent` payloads may set `sessionKey` (default: `false`).
|
|
151
|
+
- `hooks.allowedSessionKeyPrefixes` optionally restricts explicit `sessionKey` values from request payloads and mappings.
|
|
115
152
|
- `allowUnsafeExternalContent: true` disables the external content safety wrapper for that hook
|
|
116
153
|
(dangerous; only for trusted internal sources).
|
|
117
154
|
- `openclaw webhooks gmail setup` writes `hooks.gmail` config for `openclaw webhooks gmail run`.
|
|
@@ -122,6 +159,7 @@ Mapping options (summary):
|
|
|
122
159
|
- `200` for `/hooks/wake`
|
|
123
160
|
- `202` for `/hooks/agent` (async run started)
|
|
124
161
|
- `401` on auth failure
|
|
162
|
+
- `429` after repeated auth failures from the same client (check `Retry-After`)
|
|
125
163
|
- `400` on invalid payload
|
|
126
164
|
- `413` on oversized payloads
|
|
127
165
|
|
|
@@ -165,7 +203,10 @@ curl -X POST http://127.0.0.1:18789/hooks/gmail \
|
|
|
165
203
|
|
|
166
204
|
- Keep hook endpoints behind loopback, tailnet, or trusted reverse proxy.
|
|
167
205
|
- Use a dedicated hook token; do not reuse gateway auth tokens.
|
|
206
|
+
- Repeated auth failures are rate-limited per client address to slow brute-force attempts.
|
|
168
207
|
- If you use multi-agent routing, set `hooks.allowedAgentIds` to limit explicit `agentId` selection.
|
|
208
|
+
- Keep `hooks.allowRequestSessionKey=false` unless you require caller-selected sessions.
|
|
209
|
+
- If you enable request `sessionKey`, restrict `hooks.allowedSessionKeyPrefixes` (for example, `["hook:"]`).
|
|
169
210
|
- Avoid including sensitive raw payloads in webhook logs.
|
|
170
211
|
- Hook payloads are treated as untrusted and wrapped with safety boundaries by default.
|
|
171
212
|
If you must disable this for a specific hook, set `allowUnsafeExternalContent: true`
|
package/docs/channels/discord.md
CHANGED
|
@@ -28,7 +28,7 @@ Status: ready for DMs and guild channels via the official Discord gateway.
|
|
|
28
28
|
Create an application in the Discord Developer Portal, add a bot, then enable:
|
|
29
29
|
|
|
30
30
|
- **Message Content Intent**
|
|
31
|
-
- **Server Members Intent** (recommended for name-to-ID
|
|
31
|
+
- **Server Members Intent** (required for role allowlists and role-based routing; recommended for name-to-ID allowlist matching)
|
|
32
32
|
|
|
33
33
|
</Step>
|
|
34
34
|
|
|
@@ -121,6 +121,7 @@ Token resolution is account-aware. Config token values win over env fallback. `D
|
|
|
121
121
|
`allowlist` behavior:
|
|
122
122
|
|
|
123
123
|
- guild must match `channels.discord.guilds` (`id` preferred, slug accepted)
|
|
124
|
+
- optional sender allowlists: `users` (IDs or names) and `roles` (role IDs only); if either is configured, senders are allowed when they match `users` OR `roles`
|
|
124
125
|
- if a guild has `channels` configured, non-listed channels are denied
|
|
125
126
|
- if a guild has no `channels` block, all channels in that allowlisted guild are allowed
|
|
126
127
|
|
|
@@ -135,6 +136,7 @@ Token resolution is account-aware. Config token values win over env fallback. `D
|
|
|
135
136
|
"123456789012345678": {
|
|
136
137
|
requireMention: true,
|
|
137
138
|
users: ["987654321098765432"],
|
|
139
|
+
roles: ["123456789012345678"],
|
|
138
140
|
channels: {
|
|
139
141
|
general: { allow: true },
|
|
140
142
|
help: { allow: true, requireMention: true },
|
|
@@ -169,6 +171,32 @@ Token resolution is account-aware. Config token values win over env fallback. `D
|
|
|
169
171
|
</Tab>
|
|
170
172
|
</Tabs>
|
|
171
173
|
|
|
174
|
+
### Role-based agent routing
|
|
175
|
+
|
|
176
|
+
Use `bindings[].match.roles` to route Discord guild members to different agents by role ID. Role-based bindings accept role IDs only and are evaluated after peer or parent-peer bindings and before guild-only bindings.
|
|
177
|
+
|
|
178
|
+
```json5
|
|
179
|
+
{
|
|
180
|
+
bindings: [
|
|
181
|
+
{
|
|
182
|
+
agentId: "opus",
|
|
183
|
+
match: {
|
|
184
|
+
channel: "discord",
|
|
185
|
+
guildId: "123456789012345678",
|
|
186
|
+
roles: ["111111111111111111"],
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
agentId: "sonnet",
|
|
191
|
+
match: {
|
|
192
|
+
channel: "discord",
|
|
193
|
+
guildId: "123456789012345678",
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
172
200
|
## Developer Portal setup
|
|
173
201
|
|
|
174
202
|
<AccordionGroup>
|
package/docs/cli/plugins.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
summary: "CLI reference for `openclaw plugins` (list, install, enable/disable, doctor)"
|
|
2
|
+
summary: "CLI reference for `openclaw plugins` (list, install, uninstall, enable/disable, doctor)"
|
|
3
3
|
read_when:
|
|
4
4
|
- You want to install or manage in-process Gateway plugins
|
|
5
5
|
- You want to debug plugin load failures
|
|
@@ -23,6 +23,7 @@ openclaw plugins list
|
|
|
23
23
|
openclaw plugins info <id>
|
|
24
24
|
openclaw plugins enable <id>
|
|
25
25
|
openclaw plugins disable <id>
|
|
26
|
+
openclaw plugins uninstall <id>
|
|
26
27
|
openclaw plugins doctor
|
|
27
28
|
openclaw plugins update <id>
|
|
28
29
|
openclaw plugins update --all
|
|
@@ -51,6 +52,24 @@ Use `--link` to avoid copying a local directory (adds to `plugins.load.paths`):
|
|
|
51
52
|
openclaw plugins install -l ./my-plugin
|
|
52
53
|
```
|
|
53
54
|
|
|
55
|
+
### Uninstall
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
openclaw plugins uninstall <id>
|
|
59
|
+
openclaw plugins uninstall <id> --dry-run
|
|
60
|
+
openclaw plugins uninstall <id> --keep-files
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`uninstall` removes plugin records from `plugins.entries`, `plugins.installs`,
|
|
64
|
+
the plugin allowlist, and linked `plugins.load.paths` entries when applicable.
|
|
65
|
+
For active memory plugins, the memory slot resets to `memory-core`.
|
|
66
|
+
|
|
67
|
+
By default, uninstall also removes the plugin install directory under the active
|
|
68
|
+
state dir extensions root (`$OPENCLAW_STATE_DIR/extensions/<id>`). Use
|
|
69
|
+
`--keep-files` to keep files on disk.
|
|
70
|
+
|
|
71
|
+
`--keep-config` is supported as a deprecated alias for `--keep-files`.
|
|
72
|
+
|
|
54
73
|
### Update
|
|
55
74
|
|
|
56
75
|
```bash
|
package/docs/cli/security.md
CHANGED
|
@@ -24,3 +24,4 @@ openclaw security audit --fix
|
|
|
24
24
|
|
|
25
25
|
The audit warns when multiple DM senders share the main session and recommends **secure DM mode**: `session.dmScope="per-channel-peer"` (or `per-account-channel-peer` for multi-account channels) for shared inboxes.
|
|
26
26
|
It also warns when small models (`<=300B`) are used without sandboxing and with web/browser tools enabled.
|
|
27
|
+
For webhook ingress, it warns when `hooks.defaultSessionKey` is unset, when request `sessionKey` overrides are enabled, and when overrides are enabled without `hooks.allowedSessionKeyPrefixes`.
|
|
@@ -94,6 +94,7 @@ Behavior:
|
|
|
94
94
|
- Announce delivery runs after the primary run completes and is best-effort; `status: "ok"` does not guarantee the announce was delivered.
|
|
95
95
|
- Waits via gateway `agent.wait` (server-side) so reconnects don't drop the wait.
|
|
96
96
|
- Agent-to-agent message context is injected for the primary run.
|
|
97
|
+
- Inter-session messages are persisted with `message.provenance.kind = "inter_session"` so transcript readers can distinguish routed agent instructions from external user input.
|
|
97
98
|
- After the primary run completes, OpenClaw runs a **reply-back loop**:
|
|
98
99
|
- Round 2+ alternates between requester and target agents.
|
|
99
100
|
- Reply exactly `REPLY_SKIP` to stop the ping‑pong.
|
|
@@ -1934,6 +1934,10 @@ See [Plugins](/tools/plugin).
|
|
|
1934
1934
|
|
|
1935
1935
|
- Chat Completions: disabled by default. Enable with `gateway.http.endpoints.chatCompletions.enabled: true`.
|
|
1936
1936
|
- Responses API: `gateway.http.endpoints.responses.enabled`.
|
|
1937
|
+
- Responses URL-input hardening:
|
|
1938
|
+
- `gateway.http.endpoints.responses.maxUrlParts`
|
|
1939
|
+
- `gateway.http.endpoints.responses.files.urlAllowlist`
|
|
1940
|
+
- `gateway.http.endpoints.responses.images.urlAllowlist`
|
|
1937
1941
|
|
|
1938
1942
|
### Multi-instance isolation
|
|
1939
1943
|
|
|
@@ -1960,6 +1964,9 @@ See [Multiple Gateways](/gateway/multiple-gateways).
|
|
|
1960
1964
|
token: "shared-secret",
|
|
1961
1965
|
path: "/hooks",
|
|
1962
1966
|
maxBodyBytes: 262144,
|
|
1967
|
+
defaultSessionKey: "hook:ingress",
|
|
1968
|
+
allowRequestSessionKey: false,
|
|
1969
|
+
allowedSessionKeyPrefixes: ["hook:"],
|
|
1963
1970
|
allowedAgentIds: ["hooks", "main"],
|
|
1964
1971
|
presets: ["gmail"],
|
|
1965
1972
|
transformsDir: "~/.openclaw/hooks",
|
|
@@ -1987,6 +1994,7 @@ Auth: `Authorization: Bearer <token>` or `x-openclaw-token: <token>`.
|
|
|
1987
1994
|
|
|
1988
1995
|
- `POST /hooks/wake` → `{ text, mode?: "now"|"next-heartbeat" }`
|
|
1989
1996
|
- `POST /hooks/agent` → `{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }`
|
|
1997
|
+
- `sessionKey` from request payload is accepted only when `hooks.allowRequestSessionKey=true` (default: `false`).
|
|
1990
1998
|
- `POST /hooks/<name>` → resolved via `hooks.mappings`
|
|
1991
1999
|
|
|
1992
2000
|
<Accordion title="Mapping details">
|
|
@@ -1997,6 +2005,9 @@ Auth: `Authorization: Bearer <token>` or `x-openclaw-token: <token>`.
|
|
|
1997
2005
|
- `transform` can point to a JS/TS module returning a hook action.
|
|
1998
2006
|
- `agentId` routes to a specific agent; unknown IDs fall back to default.
|
|
1999
2007
|
- `allowedAgentIds`: restricts explicit routing (`*` or omitted = allow all, `[]` = deny all).
|
|
2008
|
+
- `defaultSessionKey`: optional fixed session key for hook agent runs without explicit `sessionKey`.
|
|
2009
|
+
- `allowRequestSessionKey`: allow `/hooks/agent` callers to set `sessionKey` (default: `false`).
|
|
2010
|
+
- `allowedSessionKeyPrefixes`: optional prefix allowlist for explicit `sessionKey` values (request + mapping), e.g. `["hook:"]`.
|
|
2000
2011
|
- `deliver: true` sends final reply to a channel; `channel` defaults to `last`.
|
|
2001
2012
|
- `model` overrides LLM for this hook run (must be allowed if model catalog is set).
|
|
2002
2013
|
|
|
@@ -262,6 +262,9 @@ When validation fails:
|
|
|
262
262
|
enabled: true,
|
|
263
263
|
token: "shared-secret",
|
|
264
264
|
path: "/hooks",
|
|
265
|
+
defaultSessionKey: "hook:ingress",
|
|
266
|
+
allowRequestSessionKey: false,
|
|
267
|
+
allowedSessionKeyPrefixes: ["hook:"],
|
|
265
268
|
mappings: [
|
|
266
269
|
{
|
|
267
270
|
match: { path: "gmail" },
|
|
@@ -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):
|