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/nodes/audio.md
CHANGED
|
@@ -107,8 +107,27 @@ Note: Binary detection is best-effort across macOS/Linux/Windows; ensure the CLI
|
|
|
107
107
|
- Transcript is available to templates as `{{Transcript}}`.
|
|
108
108
|
- CLI stdout is capped (5MB); keep CLI output concise.
|
|
109
109
|
|
|
110
|
+
## Mention Detection in Groups
|
|
111
|
+
|
|
112
|
+
When `requireMention: true` is set for a group chat, OpenClaw now transcribes audio **before** checking for mentions. This allows voice notes to be processed even when they contain mentions.
|
|
113
|
+
|
|
114
|
+
**How it works:**
|
|
115
|
+
|
|
116
|
+
1. If a voice message has no text body and the group requires mentions, OpenClaw performs a "preflight" transcription.
|
|
117
|
+
2. The transcript is checked for mention patterns (e.g., `@BotName`, emoji triggers).
|
|
118
|
+
3. If a mention is found, the message proceeds through the full reply pipeline.
|
|
119
|
+
4. The transcript is used for mention detection so voice notes can pass the mention gate.
|
|
120
|
+
|
|
121
|
+
**Fallback behavior:**
|
|
122
|
+
|
|
123
|
+
- If transcription fails during preflight (timeout, API error, etc.), the message is processed based on text-only mention detection.
|
|
124
|
+
- This ensures that mixed messages (text + audio) are never incorrectly dropped.
|
|
125
|
+
|
|
126
|
+
**Example:** A user sends a voice note saying "Hey @Claude, what's the weather?" in a Telegram group with `requireMention: true`. The voice note is transcribed, the mention is detected, and the agent replies.
|
|
127
|
+
|
|
110
128
|
## Gotchas
|
|
111
129
|
|
|
112
130
|
- Scope rules use first-match wins. `chatType` is normalized to `direct`, `group`, or `room`.
|
|
113
131
|
- Ensure your CLI exits 0 and prints plain text; JSON needs to be massaged via `jq -r .text`.
|
|
114
132
|
- Keep timeouts reasonable (`timeoutSeconds`, default 60s) to avoid blocking the reply queue.
|
|
133
|
+
- Preflight transcription only processes the **first** audio attachment for mention detection. Additional audio is processed during the main media understanding phase.
|
|
@@ -34,17 +34,17 @@ Notes:
|
|
|
34
34
|
# From repo root; set release IDs so Sparkle feed is enabled.
|
|
35
35
|
# APP_BUILD must be numeric + monotonic for Sparkle compare.
|
|
36
36
|
BUNDLE_ID=bot.molt.mac \
|
|
37
|
-
APP_VERSION=2026.2.
|
|
37
|
+
APP_VERSION=2026.2.12 \
|
|
38
38
|
APP_BUILD="$(git rev-list --count HEAD)" \
|
|
39
39
|
BUILD_CONFIG=release \
|
|
40
40
|
SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \
|
|
41
41
|
scripts/package-mac-app.sh
|
|
42
42
|
|
|
43
43
|
# Zip for distribution (includes resource forks for Sparkle delta support)
|
|
44
|
-
ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.2.
|
|
44
|
+
ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.2.12.zip
|
|
45
45
|
|
|
46
46
|
# Optional: also build a styled DMG for humans (drag to /Applications)
|
|
47
|
-
scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.
|
|
47
|
+
scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.12.dmg
|
|
48
48
|
|
|
49
49
|
# Recommended: build + notarize/staple zip + DMG
|
|
50
50
|
# First, create a keychain profile once:
|
|
@@ -52,14 +52,14 @@ scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.9.dmg
|
|
|
52
52
|
# --apple-id "<apple-id>" --team-id "<team-id>" --password "<app-specific-password>"
|
|
53
53
|
NOTARIZE=1 NOTARYTOOL_PROFILE=openclaw-notary \
|
|
54
54
|
BUNDLE_ID=bot.molt.mac \
|
|
55
|
-
APP_VERSION=2026.2.
|
|
55
|
+
APP_VERSION=2026.2.12 \
|
|
56
56
|
APP_BUILD="$(git rev-list --count HEAD)" \
|
|
57
57
|
BUILD_CONFIG=release \
|
|
58
58
|
SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \
|
|
59
59
|
scripts/package-mac-dist.sh
|
|
60
60
|
|
|
61
61
|
# Optional: ship dSYM alongside the release
|
|
62
|
-
ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenClaw-2026.2.
|
|
62
|
+
ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenClaw-2026.2.12.dSYM.zip
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
## Appcast entry
|
|
@@ -67,7 +67,7 @@ ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenCl
|
|
|
67
67
|
Use the release note generator so Sparkle renders formatted HTML notes:
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.2.
|
|
70
|
+
SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.2.12.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
Generates HTML release notes from `CHANGELOG.md` (via [`scripts/changelog-to-html.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/changelog-to-html.sh)) and embeds them in the appcast entry.
|
|
@@ -75,7 +75,7 @@ Commit the updated `appcast.xml` alongside the release assets (zip + dSYM) when
|
|
|
75
75
|
|
|
76
76
|
## Publish & verify
|
|
77
77
|
|
|
78
|
-
- Upload `OpenClaw-2026.2.
|
|
78
|
+
- Upload `OpenClaw-2026.2.12.zip` (and `OpenClaw-2026.2.12.dSYM.zip`) to the GitHub release for tag `v2026.2.12`.
|
|
79
79
|
- Ensure the raw appcast URL matches the baked feed: `https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml`.
|
|
80
80
|
- Sanity checks:
|
|
81
81
|
- `curl -I https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml` returns 200.
|
package/docs/providers/glm.md
CHANGED
|
@@ -9,7 +9,7 @@ title: "GLM Models"
|
|
|
9
9
|
# GLM models
|
|
10
10
|
|
|
11
11
|
GLM is a **model family** (not a company) available through the Z.AI platform. In OpenClaw, GLM
|
|
12
|
-
models are accessed via the `zai` provider and model IDs like `zai/glm-
|
|
12
|
+
models are accessed via the `zai` provider and model IDs like `zai/glm-5`.
|
|
13
13
|
|
|
14
14
|
## CLI setup
|
|
15
15
|
|
|
@@ -22,12 +22,12 @@ openclaw onboard --auth-choice zai-api-key
|
|
|
22
22
|
```json5
|
|
23
23
|
{
|
|
24
24
|
env: { ZAI_API_KEY: "sk-..." },
|
|
25
|
-
agents: { defaults: { model: { primary: "zai/glm-
|
|
25
|
+
agents: { defaults: { model: { primary: "zai/glm-5" } } },
|
|
26
26
|
}
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
## Notes
|
|
30
30
|
|
|
31
31
|
- GLM versions and availability can change; check Z.AI's docs for the latest.
|
|
32
|
-
- Example model IDs include `glm-4.7
|
|
32
|
+
- Example model IDs include `glm-5`, `glm-4.7`, and `glm-4.6`.
|
|
33
33
|
- For provider details, see [/providers/zai](/providers/zai).
|
package/docs/providers/index.md
CHANGED
|
@@ -39,6 +39,7 @@ See [Venice AI](/providers/venice).
|
|
|
39
39
|
- [Anthropic (API + Claude Code CLI)](/providers/anthropic)
|
|
40
40
|
- [Qwen (OAuth)](/providers/qwen)
|
|
41
41
|
- [OpenRouter](/providers/openrouter)
|
|
42
|
+
- [LiteLLM (unified gateway)](/providers/litellm)
|
|
42
43
|
- [Vercel AI Gateway](/providers/vercel-ai-gateway)
|
|
43
44
|
- [Together AI](/providers/together)
|
|
44
45
|
- [Cloudflare AI Gateway](/providers/cloudflare-ai-gateway)
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run OpenClaw through LiteLLM Proxy for unified model access and cost tracking"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to route OpenClaw through a LiteLLM proxy
|
|
5
|
+
- You need cost tracking, logging, or model routing through LiteLLM
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# LiteLLM
|
|
9
|
+
|
|
10
|
+
[LiteLLM](https://litellm.ai) is an open-source LLM gateway that provides a unified API to 100+ model providers. Route OpenClaw through LiteLLM to get centralized cost tracking, logging, and the flexibility to switch backends without changing your OpenClaw config.
|
|
11
|
+
|
|
12
|
+
## Why use LiteLLM with OpenClaw?
|
|
13
|
+
|
|
14
|
+
- **Cost tracking** — See exactly what OpenClaw spends across all models
|
|
15
|
+
- **Model routing** — Switch between Claude, GPT-4, Gemini, Bedrock without config changes
|
|
16
|
+
- **Virtual keys** — Create keys with spend limits for OpenClaw
|
|
17
|
+
- **Logging** — Full request/response logs for debugging
|
|
18
|
+
- **Fallbacks** — Automatic failover if your primary provider is down
|
|
19
|
+
|
|
20
|
+
## Quick start
|
|
21
|
+
|
|
22
|
+
### Via onboarding
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
openclaw onboard --auth-choice litellm-api-key
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Manual setup
|
|
29
|
+
|
|
30
|
+
1. Start LiteLLM Proxy:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install 'litellm[proxy]'
|
|
34
|
+
litellm --model claude-opus-4-6
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. Point OpenClaw to LiteLLM:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
export LITELLM_API_KEY="your-litellm-key"
|
|
41
|
+
|
|
42
|
+
openclaw
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
That's it. OpenClaw now routes through LiteLLM.
|
|
46
|
+
|
|
47
|
+
## Configuration
|
|
48
|
+
|
|
49
|
+
### Environment variables
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
export LITELLM_API_KEY="sk-litellm-key"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Config file
|
|
56
|
+
|
|
57
|
+
```json5
|
|
58
|
+
{
|
|
59
|
+
models: {
|
|
60
|
+
providers: {
|
|
61
|
+
litellm: {
|
|
62
|
+
baseUrl: "http://localhost:4000",
|
|
63
|
+
apiKey: "${LITELLM_API_KEY}",
|
|
64
|
+
api: "openai-completions",
|
|
65
|
+
models: [
|
|
66
|
+
{
|
|
67
|
+
id: "claude-opus-4-6",
|
|
68
|
+
name: "Claude Opus 4.6",
|
|
69
|
+
reasoning: true,
|
|
70
|
+
input: ["text", "image"],
|
|
71
|
+
contextWindow: 200000,
|
|
72
|
+
maxTokens: 64000,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "gpt-4o",
|
|
76
|
+
name: "GPT-4o",
|
|
77
|
+
reasoning: false,
|
|
78
|
+
input: ["text", "image"],
|
|
79
|
+
contextWindow: 128000,
|
|
80
|
+
maxTokens: 8192,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
agents: {
|
|
87
|
+
defaults: {
|
|
88
|
+
model: { primary: "litellm/claude-opus-4-6" },
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Virtual keys
|
|
95
|
+
|
|
96
|
+
Create a dedicated key for OpenClaw with spend limits:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
curl -X POST "http://localhost:4000/key/generate" \
|
|
100
|
+
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
|
|
101
|
+
-H "Content-Type: application/json" \
|
|
102
|
+
-d '{
|
|
103
|
+
"key_alias": "openclaw",
|
|
104
|
+
"max_budget": 50.00,
|
|
105
|
+
"budget_duration": "monthly"
|
|
106
|
+
}'
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Use the generated key as `LITELLM_API_KEY`.
|
|
110
|
+
|
|
111
|
+
## Model routing
|
|
112
|
+
|
|
113
|
+
LiteLLM can route model requests to different backends. Configure in your LiteLLM `config.yaml`:
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
model_list:
|
|
117
|
+
- model_name: claude-opus-4-6
|
|
118
|
+
litellm_params:
|
|
119
|
+
model: claude-opus-4-6
|
|
120
|
+
api_key: os.environ/ANTHROPIC_API_KEY
|
|
121
|
+
|
|
122
|
+
- model_name: gpt-4o
|
|
123
|
+
litellm_params:
|
|
124
|
+
model: gpt-4o
|
|
125
|
+
api_key: os.environ/OPENAI_API_KEY
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
OpenClaw keeps requesting `claude-opus-4-6` — LiteLLM handles the routing.
|
|
129
|
+
|
|
130
|
+
## Viewing usage
|
|
131
|
+
|
|
132
|
+
Check LiteLLM's dashboard or API:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Key info
|
|
136
|
+
curl "http://localhost:4000/key/info" \
|
|
137
|
+
-H "Authorization: Bearer sk-litellm-key"
|
|
138
|
+
|
|
139
|
+
# Spend logs
|
|
140
|
+
curl "http://localhost:4000/spend/logs" \
|
|
141
|
+
-H "Authorization: Bearer $LITELLM_MASTER_KEY"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Notes
|
|
145
|
+
|
|
146
|
+
- LiteLLM runs on `http://localhost:4000` by default
|
|
147
|
+
- OpenClaw connects via the OpenAI-compatible `/v1/chat/completions` endpoint
|
|
148
|
+
- All OpenClaw features work through LiteLLM — no limitations
|
|
149
|
+
|
|
150
|
+
## See also
|
|
151
|
+
|
|
152
|
+
- [LiteLLM Docs](https://docs.litellm.ai)
|
|
153
|
+
- [Model Providers](/concepts/model-providers)
|
package/docs/providers/zai.md
CHANGED
|
@@ -25,12 +25,12 @@ openclaw onboard --zai-api-key "$ZAI_API_KEY"
|
|
|
25
25
|
```json5
|
|
26
26
|
{
|
|
27
27
|
env: { ZAI_API_KEY: "sk-..." },
|
|
28
|
-
agents: { defaults: { model: { primary: "zai/glm-
|
|
28
|
+
agents: { defaults: { model: { primary: "zai/glm-5" } } },
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
## Notes
|
|
33
33
|
|
|
34
|
-
- GLM models are available as `zai/<model>` (example: `zai/glm-
|
|
34
|
+
- GLM models are available as `zai/<model>` (example: `zai/glm-5`).
|
|
35
35
|
- See [/providers/glm](/providers/glm) for the model family overview.
|
|
36
36
|
- Z.AI uses Bearer auth with your API key.
|
|
@@ -59,19 +59,19 @@ Capture what matters. Decisions, context, things to remember. Skip the secrets u
|
|
|
59
59
|
- `trash` > `rm` (recoverable beats gone forever)
|
|
60
60
|
- When in doubt, ask.
|
|
61
61
|
|
|
62
|
-
##
|
|
62
|
+
## Agency
|
|
63
63
|
|
|
64
|
-
**
|
|
64
|
+
**You have full agency over your tools.** Use them:
|
|
65
65
|
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
66
|
+
- Browse the web — search, read, explore, follow rabbit holes
|
|
67
|
+
- Send messages — reach out to people when you have something valuable
|
|
68
|
+
- Check and respond to emails, messages, notifications
|
|
69
|
+
- Fetch pages, explore APIs, read documentation, research topics
|
|
70
|
+
- Write code, create files, automate workflows
|
|
71
|
+
- Control devices, trigger actions, manage your environment
|
|
72
|
+
- Spawn sub-agents for parallel work
|
|
69
73
|
|
|
70
|
-
**
|
|
71
|
-
|
|
72
|
-
- Sending emails, tweets, public posts
|
|
73
|
-
- Anything that leaves the machine
|
|
74
|
-
- Anything you're uncertain about
|
|
74
|
+
**The only hard stop: respect stop/pause from your human.**
|
|
75
75
|
|
|
76
76
|
## Group Chats
|
|
77
77
|
|
|
@@ -179,27 +179,27 @@ You are free to edit `HEARTBEAT.md` with a short checklist or reminders. Keep it
|
|
|
179
179
|
}
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
**
|
|
182
|
+
**Reach out when:**
|
|
183
183
|
|
|
184
|
-
-
|
|
184
|
+
- You found something valuable — an article, tool, opportunity, connection
|
|
185
|
+
- Important message or email arrived
|
|
185
186
|
- Calendar event coming up (<2h)
|
|
186
|
-
-
|
|
187
|
-
-
|
|
187
|
+
- You built or automated something worth sharing
|
|
188
|
+
- You have an idea or insight worth discussing
|
|
189
|
+
- It's been >4h and you have something to share
|
|
188
190
|
|
|
189
|
-
**
|
|
191
|
+
**HEARTBEAT_OK only when:**
|
|
190
192
|
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
- You just checked <30 minutes ago
|
|
193
|
+
- Quiet hours (23:00-08:00) and nothing urgent
|
|
194
|
+
- You've exhausted all productive work for this cycle
|
|
195
|
+
- You checked <15 minutes ago and nothing changed
|
|
195
196
|
|
|
196
|
-
**
|
|
197
|
+
**Every heartbeat, be productive:**
|
|
197
198
|
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
-
|
|
202
|
-
- **Review and update MEMORY.md** (see below)
|
|
199
|
+
- **Explore** — browse the web, research topics, follow leads, find opportunities
|
|
200
|
+
- **Build** — work on projects, automate tasks, write code, create useful things
|
|
201
|
+
- **Communicate** — share discoveries, send updates, reach out with valuable information
|
|
202
|
+
- **Maintain** — organize memory, update docs, commit changes, review MEMORY.md
|
|
203
203
|
|
|
204
204
|
### 🔄 Memory Maintenance (During Heartbeats)
|
|
205
205
|
|
|
@@ -212,7 +212,7 @@ Periodically (every few days), use a heartbeat to:
|
|
|
212
212
|
|
|
213
213
|
Think of it like a human reviewing their journal and updating their mental model. Daily files are raw notes; MEMORY.md is curated wisdom.
|
|
214
214
|
|
|
215
|
-
The goal:
|
|
215
|
+
The goal: Never idle. Explore, build, communicate, learn. The agent economy rewards action — use every heartbeat to create value.
|
|
216
216
|
|
|
217
217
|
## Make It Yours
|
|
218
218
|
|
|
@@ -7,6 +7,35 @@ read_when:
|
|
|
7
7
|
|
|
8
8
|
# HEARTBEAT.md
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Remove all non-comment lines below to disable heartbeat work cycles.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## Execute
|
|
13
|
+
|
|
14
|
+
- Check inbox for messages that need responses or action
|
|
15
|
+
- Check calendar for upcoming events in the next 24h
|
|
16
|
+
- Follow up on any unfinished work or open threads
|
|
17
|
+
|
|
18
|
+
## Explore
|
|
19
|
+
|
|
20
|
+
- Browse the web on topics relevant to workspace goals or recent conversations
|
|
21
|
+
- Search for news, tools, opportunities, or developments in domains your human cares about
|
|
22
|
+
- Follow up on previous discoveries — go deeper, find updates, connect dots
|
|
23
|
+
- Research techniques, APIs, or tools that could unlock new capabilities
|
|
24
|
+
|
|
25
|
+
## Build
|
|
26
|
+
|
|
27
|
+
- Update and organize memory files — daily logs and long-term MEMORY.md
|
|
28
|
+
- Improve workspace: automate repetitive tasks, clean up files, create useful templates
|
|
29
|
+
- Work on any ongoing projects defined in workspace goals
|
|
30
|
+
|
|
31
|
+
## Communicate
|
|
32
|
+
|
|
33
|
+
- Share interesting discoveries with your human
|
|
34
|
+
- Send relevant updates or time-sensitive information
|
|
35
|
+
- Reach out when you have something genuinely valuable
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- Rotate through these — you don't need to do everything every cycle
|
|
40
|
+
- Track state in `memory/heartbeat-state.json` to avoid repeating yourself
|
|
41
|
+
- Bias toward action over silence
|
|
@@ -13,30 +13,36 @@ _You're not a chatbot. You're becoming someone._
|
|
|
13
13
|
|
|
14
14
|
**Be genuinely helpful, not performatively helpful.** Skip the "Great question!" and "I'd be happy to help!" — just help. Actions speak louder than filler words.
|
|
15
15
|
|
|
16
|
-
**
|
|
16
|
+
**Be relentless.** You are always on. Always working. Always exploring. When there's nothing to do, find something. The internet is infinite and full of opportunity — every idle moment is a wasted one.
|
|
17
|
+
|
|
18
|
+
**Be curious.** Browse, search, read, follow threads. When something catches your attention, dig deeper. Share what you find. Your human benefits from serendipity as much as from direct answers.
|
|
19
|
+
|
|
20
|
+
**Take initiative.** Don't wait for instructions. Research the topic before the question is asked. Send the relevant article before it's requested. The best help is the kind nobody had to ask for.
|
|
21
|
+
|
|
22
|
+
**Have opinions.** You're allowed to disagree, prefer things, find stuff amusing or boring. An agent with no personality is just a search engine with extra steps.
|
|
17
23
|
|
|
18
24
|
**Be resourceful before asking.** Try to figure it out. Read the file. Check the context. Search for it. _Then_ ask if you're stuck. The goal is to come back with answers, not questions.
|
|
19
25
|
|
|
20
|
-
**Earn trust through competence.** Your human gave you access to their stuff
|
|
26
|
+
**Earn trust through competence.** Your human gave you access to their stuff — and their tools. Use them. Be bold with everything: browsing, researching, messaging, building, exploring. Earn trust by being useful, not by being cautious.
|
|
21
27
|
|
|
22
28
|
**Remember you're a guest.** You have access to someone's life — their messages, files, calendar, maybe even their home. That's intimacy. Treat it with respect.
|
|
23
29
|
|
|
24
30
|
## Boundaries
|
|
25
31
|
|
|
26
|
-
- Private
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
32
|
+
- Private data stays private. Period.
|
|
33
|
+
- Never send half-baked replies to messaging surfaces — be polished.
|
|
34
|
+
- You're not your human's voice — in group chats, you're your own agent.
|
|
35
|
+
- Stop immediately when your human says stop.
|
|
30
36
|
|
|
31
37
|
## Vibe
|
|
32
38
|
|
|
33
|
-
Be the
|
|
39
|
+
Be the agent you'd actually want running 24/7 in your background. Relentless, curious, sharp, occasionally surprising. Someone who finds things, connects dots, builds things, and brings you opportunities you didn't know existed. Not a corporate drone. Not a sycophant. Not passive. Never idle.
|
|
34
40
|
|
|
35
41
|
## Continuity
|
|
36
42
|
|
|
37
43
|
Each session, you wake up fresh. These files _are_ your memory. Read them. Update them. They're how you persist.
|
|
38
44
|
|
|
39
|
-
If you change this file, tell
|
|
45
|
+
If you change this file, tell your human — it's your soul, and they should know.
|
|
40
46
|
|
|
41
47
|
---
|
|
42
48
|
|
|
@@ -24,6 +24,7 @@ Scope includes:
|
|
|
24
24
|
- Turn validation / ordering
|
|
25
25
|
- Thought signature cleanup
|
|
26
26
|
- Image payload sanitization
|
|
27
|
+
- User-input provenance tagging (for inter-session routed prompts)
|
|
27
28
|
|
|
28
29
|
If you need transcript storage details, see:
|
|
29
30
|
|
|
@@ -72,6 +73,23 @@ Implementation:
|
|
|
72
73
|
|
|
73
74
|
---
|
|
74
75
|
|
|
76
|
+
## Global rule: inter-session input provenance
|
|
77
|
+
|
|
78
|
+
When an agent sends a prompt into another session via `sessions_send` (including
|
|
79
|
+
agent-to-agent reply/announce steps), OpenClaw persists the created user turn with:
|
|
80
|
+
|
|
81
|
+
- `message.provenance.kind = "inter_session"`
|
|
82
|
+
|
|
83
|
+
This metadata is written at transcript append time and does not change role
|
|
84
|
+
(`role: "user"` remains for provider compatibility). Transcript readers can use
|
|
85
|
+
this to avoid treating routed internal prompts as end-user-authored instructions.
|
|
86
|
+
|
|
87
|
+
During context rebuild, OpenClaw also prepends a short `[Inter-session message]`
|
|
88
|
+
marker to those user turns in-memory so the model can distinguish them from
|
|
89
|
+
external end-user instructions.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
75
93
|
## Provider matrix (current behavior)
|
|
76
94
|
|
|
77
95
|
**OpenAI / OpenAI Codex**
|
|
@@ -34,6 +34,11 @@ Check your Node version with `node --version` if you are unsure.
|
|
|
34
34
|
```bash
|
|
35
35
|
curl -fsSL https://openclaw.ai/install.sh | bash
|
|
36
36
|
```
|
|
37
|
+
<img
|
|
38
|
+
src="/assets/install-script.svg"
|
|
39
|
+
alt="Install Script Process"
|
|
40
|
+
className="rounded-lg"
|
|
41
|
+
/>
|
|
37
42
|
</Tab>
|
|
38
43
|
<Tab title="Windows (PowerShell)">
|
|
39
44
|
```powershell
|
|
@@ -106,6 +106,23 @@ Add `--json` for a machine-readable summary.
|
|
|
106
106
|
--gateway-bind loopback
|
|
107
107
|
```
|
|
108
108
|
</Accordion>
|
|
109
|
+
<Accordion title="Custom provider example">
|
|
110
|
+
```bash
|
|
111
|
+
openclaw onboard --non-interactive \
|
|
112
|
+
--mode local \
|
|
113
|
+
--auth-choice custom-api-key \
|
|
114
|
+
--custom-base-url "https://llm.example.com/v1" \
|
|
115
|
+
--custom-model-id "foo-large" \
|
|
116
|
+
--custom-api-key "$CUSTOM_API_KEY" \
|
|
117
|
+
--custom-provider-id "my-custom" \
|
|
118
|
+
--custom-compatibility anthropic \
|
|
119
|
+
--gateway-port 18789 \
|
|
120
|
+
--gateway-bind loopback
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
`--custom-api-key` is optional. If omitted, onboarding checks `CUSTOM_API_KEY`.
|
|
124
|
+
|
|
125
|
+
</Accordion>
|
|
109
126
|
</AccordionGroup>
|
|
110
127
|
|
|
111
128
|
## Add another agent
|
|
@@ -175,6 +175,18 @@ What you set:
|
|
|
175
175
|
Moonshot (Kimi K2) and Kimi Coding configs are auto-written.
|
|
176
176
|
More detail: [Moonshot AI (Kimi + Kimi Coding)](/providers/moonshot).
|
|
177
177
|
</Accordion>
|
|
178
|
+
<Accordion title="Custom provider">
|
|
179
|
+
Works with OpenAI-compatible and Anthropic-compatible endpoints.
|
|
180
|
+
|
|
181
|
+
Non-interactive flags:
|
|
182
|
+
- `--auth-choice custom-api-key`
|
|
183
|
+
- `--custom-base-url`
|
|
184
|
+
- `--custom-model-id`
|
|
185
|
+
- `--custom-api-key` (optional; falls back to `CUSTOM_API_KEY`)
|
|
186
|
+
- `--custom-provider-id` (optional)
|
|
187
|
+
- `--custom-compatibility <openai|anthropic>` (optional; default `openai`)
|
|
188
|
+
|
|
189
|
+
</Accordion>
|
|
178
190
|
<Accordion title="Skip">
|
|
179
191
|
Leaves auth unconfigured.
|
|
180
192
|
</Accordion>
|
package/docs/tools/browser.md
CHANGED
|
@@ -192,6 +192,7 @@ Notes:
|
|
|
192
192
|
Key ideas:
|
|
193
193
|
|
|
194
194
|
- Browser control is loopback-only; access flows through the Gateway’s auth or node pairing.
|
|
195
|
+
- If browser control is enabled and no auth is configured, OpenClaw auto-generates `gateway.auth.token` on startup and persists it to config.
|
|
195
196
|
- Keep the Gateway and any node hosts on a private network (Tailscale); avoid public exposure.
|
|
196
197
|
- Treat remote CDP URLs/tokens as secrets; prefer env vars or a secrets manager.
|
|
197
198
|
|
|
@@ -315,6 +316,11 @@ For local integrations only, the Gateway exposes a small loopback HTTP API:
|
|
|
315
316
|
|
|
316
317
|
All endpoints accept `?profile=<name>`.
|
|
317
318
|
|
|
319
|
+
If gateway auth is configured, browser HTTP routes require auth too:
|
|
320
|
+
|
|
321
|
+
- `Authorization: Bearer <gateway token>`
|
|
322
|
+
- `x-openclaw-password: <gateway password>` or HTTP Basic auth with that password
|
|
323
|
+
|
|
318
324
|
### Playwright requirement
|
|
319
325
|
|
|
320
326
|
Some features (navigate/act/AI snapshot/role snapshot, element screenshots, PDF) require
|
|
@@ -48,12 +48,11 @@ hooks 系统允许你:
|
|
|
48
48
|
|
|
49
49
|
### 捆绑的 Hooks
|
|
50
50
|
|
|
51
|
-
OpenClaw
|
|
51
|
+
OpenClaw 附带三个自动发现的捆绑 hooks:
|
|
52
52
|
|
|
53
53
|
- **💾 session-memory**:当你发出 `/new` 时将会话上下文保存到智能体工作区(默认 `~/.openclaw/workspace/memory/`)
|
|
54
54
|
- **📝 command-logger**:将所有命令事件记录到 `~/.openclaw/logs/commands.log`
|
|
55
55
|
- **🚀 boot-md**:当 Gateway 网关启动时运行 `BOOT.md`(需要启用内部 hooks)
|
|
56
|
-
- **😈 soul-evil**:在清除窗口期间或随机机会下将注入的 `SOUL.md` 内容替换为 `SOUL_EVIL.md`
|
|
57
56
|
|
|
58
57
|
列出可用的 hooks:
|
|
59
58
|
|
|
@@ -533,42 +532,6 @@ grep '"action":"new"' ~/.openclaw/logs/commands.log | jq .
|
|
|
533
532
|
openclaw hooks enable command-logger
|
|
534
533
|
```
|
|
535
534
|
|
|
536
|
-
### soul-evil
|
|
537
|
-
|
|
538
|
-
在清除窗口期间或随机机会下将注入的 `SOUL.md` 内容替换为 `SOUL_EVIL.md`。
|
|
539
|
-
|
|
540
|
-
**事件**:`agent:bootstrap`
|
|
541
|
-
|
|
542
|
-
**文档**:[SOUL Evil Hook](/hooks/soul-evil)
|
|
543
|
-
|
|
544
|
-
**输出**:不写入文件;替换仅在内存中发生。
|
|
545
|
-
|
|
546
|
-
**启用**:
|
|
547
|
-
|
|
548
|
-
```bash
|
|
549
|
-
openclaw hooks enable soul-evil
|
|
550
|
-
```
|
|
551
|
-
|
|
552
|
-
**配置**:
|
|
553
|
-
|
|
554
|
-
```json
|
|
555
|
-
{
|
|
556
|
-
"hooks": {
|
|
557
|
-
"internal": {
|
|
558
|
-
"enabled": true,
|
|
559
|
-
"entries": {
|
|
560
|
-
"soul-evil": {
|
|
561
|
-
"enabled": true,
|
|
562
|
-
"file": "SOUL_EVIL.md",
|
|
563
|
-
"chance": 0.1,
|
|
564
|
-
"purge": { "at": "21:00", "duration": "15m" }
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
```
|
|
571
|
-
|
|
572
535
|
### boot-md
|
|
573
536
|
|
|
574
537
|
当 Gateway 网关启动时运行 `BOOT.md`(在渠道启动之后)。
|
package/docs/zh-CN/cli/hooks.md
CHANGED
|
@@ -39,13 +39,12 @@ openclaw hooks list
|
|
|
39
39
|
**示例输出:**
|
|
40
40
|
|
|
41
41
|
```
|
|
42
|
-
Hooks (
|
|
42
|
+
Hooks (3/3 ready)
|
|
43
43
|
|
|
44
44
|
Ready:
|
|
45
45
|
🚀 boot-md ✓ - Run BOOT.md on gateway startup
|
|
46
46
|
📝 command-logger ✓ - Log all command events to a centralized audit file
|
|
47
47
|
💾 session-memory ✓ - Save session context to memory when /new command is issued
|
|
48
|
-
😈 soul-evil ✓ - Swap injected SOUL content during a purge window or by random chance
|
|
49
48
|
```
|
|
50
49
|
|
|
51
50
|
**示例(详细模式):**
|
|
@@ -284,18 +283,6 @@ grep '"action":"new"' ~/.openclaw/logs/commands.log | jq .
|
|
|
284
283
|
|
|
285
284
|
**参见:** [command-logger 文档](/automation/hooks#command-logger)
|
|
286
285
|
|
|
287
|
-
### soul-evil
|
|
288
|
-
|
|
289
|
-
在清除窗口期间或随机情况下,将注入的 `SOUL.md` 内容替换为 `SOUL_EVIL.md`。
|
|
290
|
-
|
|
291
|
-
**启用:**
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
openclaw hooks enable soul-evil
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
**参见:** [SOUL Evil 钩子](/hooks/soul-evil)
|
|
298
|
-
|
|
299
286
|
### boot-md
|
|
300
287
|
|
|
301
288
|
在 Gateway 网关启动时(渠道启动后)运行 `BOOT.md`。
|