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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,104 @@
|
|
|
2
2
|
|
|
3
3
|
Docs: https://docs.openclaw.ai
|
|
4
4
|
|
|
5
|
+
## 2026.2.13 (Unreleased)
|
|
6
|
+
|
|
7
|
+
### Fixes
|
|
8
|
+
|
|
9
|
+
- Onboarding/CLI: restore terminal state without resuming paused `stdin`, so onboarding exits cleanly after choosing Web UI and the installer returns instead of appearing stuck.
|
|
10
|
+
|
|
11
|
+
## 2026.2.12
|
|
12
|
+
|
|
13
|
+
### Changes
|
|
14
|
+
|
|
15
|
+
- CLI/Plugins: add `openclaw plugins uninstall <id>` with `--dry-run`, `--force`, and `--keep-files` options, including safe uninstall path handling and plugin uninstall docs. (#5985) Thanks @JustasMonkev.
|
|
16
|
+
- CLI: add `openclaw logs --local-time` to display log timestamps in local timezone. (#13818) Thanks @xialonglee.
|
|
17
|
+
- Telegram: render blockquotes as native `<blockquote>` tags instead of stripping them. (#14608)
|
|
18
|
+
- Telegram: expose `/compact` in the native command menu. (#10352) Thanks @akramcodez.
|
|
19
|
+
- Discord: add role-based allowlists and role-based agent routing. (#10650) Thanks @Minidoracat.
|
|
20
|
+
- Config: avoid redacting `maxTokens`-like fields during config snapshot redaction, preventing round-trip validation failures in `/config`. (#14006) Thanks @constansino.
|
|
21
|
+
|
|
22
|
+
### Breaking
|
|
23
|
+
|
|
24
|
+
- Hooks: `POST /hooks/agent` now rejects payload `sessionKey` overrides by default. To keep fixed hook context, set `hooks.defaultSessionKey` (recommended with `hooks.allowedSessionKeyPrefixes: ["hook:"]`). If you need legacy behavior, explicitly set `hooks.allowRequestSessionKey: true`. Thanks @alpernae for reporting.
|
|
25
|
+
|
|
26
|
+
### Fixes
|
|
27
|
+
|
|
28
|
+
- Gateway/OpenResponses: harden URL-based `input_file`/`input_image` handling with explicit SSRF deny policy, hostname allowlists (`files.urlAllowlist` / `images.urlAllowlist`), per-request URL input caps (`maxUrlParts`), blocked-fetch audit logging, and regression coverage/docs updates.
|
|
29
|
+
- Security: fix unauthenticated Nostr profile API remote config tampering. (#13719) Thanks @coygeek.
|
|
30
|
+
- Security: remove bundled soul-evil hook. (#14757) Thanks @Imccccc.
|
|
31
|
+
- Security/Audit: add hook session-routing hardening checks (`hooks.defaultSessionKey`, `hooks.allowRequestSessionKey`, and prefix allowlists), and warn when HTTP API endpoints allow explicit session-key routing.
|
|
32
|
+
- Security/Sandbox: confine mirrored skill sync destinations to the sandbox `skills/` root and stop using frontmatter-controlled skill names as filesystem destination paths. Thanks @1seal.
|
|
33
|
+
- Security/Web tools: treat browser/web content as untrusted by default (wrapped outputs for browser snapshot/tabs/console and structured external-content metadata for web tools), and strip `toolResult.details` from model-facing transcript/compaction inputs to reduce prompt-injection replay risk.
|
|
34
|
+
- Security/Hooks: harden webhook and device token verification with shared constant-time secret comparison, and add per-client auth-failure throttling for hook endpoints (`429` + `Retry-After`). Thanks @akhmittra.
|
|
35
|
+
- Security/Browser: require auth for loopback browser control HTTP routes, auto-generate `gateway.auth.token` when browser control starts without auth, and add a security-audit check for unauthenticated browser control. Thanks @tcusolle.
|
|
36
|
+
- Sessions/Gateway: harden transcript path resolution and reject unsafe session IDs/file paths so session operations stay within agent sessions directories. Thanks @akhmittra.
|
|
37
|
+
- Gateway: raise WS payload/buffer limits so 5,000,000-byte image attachments work reliably. (#14486) Thanks @0xRaini.
|
|
38
|
+
- Logging/CLI: use local timezone timestamps for console prefixing, and include `±HH:MM` offsets when using `openclaw logs --local-time` to avoid ambiguity. (#14771) Thanks @0xRaini.
|
|
39
|
+
- Gateway: drain active turns before restart to prevent message loss. (#13931) Thanks @0xRaini.
|
|
40
|
+
- Gateway: auto-generate auth token during install to prevent launchd restart loops. (#13813) Thanks @cathrynlavery.
|
|
41
|
+
- Gateway: prevent `undefined`/missing token in auth config. (#13809) Thanks @asklee-klawd.
|
|
42
|
+
- Gateway: handle async `EPIPE` on stdout/stderr during shutdown. (#13414) Thanks @keshav55.
|
|
43
|
+
- Gateway/Control UI: resolve missing dashboard assets when `openclaw` is installed globally via symlink-based Node managers (nvm/fnm/n/Homebrew). (#14919) Thanks @aynorica.
|
|
44
|
+
- Cron: use requested `agentId` for isolated job auth resolution. (#13983) Thanks @0xRaini.
|
|
45
|
+
- Cron: prevent cron jobs from skipping execution when `nextRunAtMs` advances. (#14068) Thanks @WalterSumbon.
|
|
46
|
+
- Cron: pass `agentId` to `runHeartbeatOnce` for main-session jobs. (#14140) Thanks @ishikawa-pro.
|
|
47
|
+
- Cron: re-arm timers when `onTimer` fires while a job is still executing. (#14233) Thanks @tomron87.
|
|
48
|
+
- Cron: prevent duplicate fires when multiple jobs trigger simultaneously. (#14256) Thanks @xinhuagu.
|
|
49
|
+
- Cron: isolate scheduler errors so one bad job does not break all jobs. (#14385) Thanks @MarvinDontPanic.
|
|
50
|
+
- Cron: prevent one-shot `at` jobs from re-firing on restart after skipped/errored runs. (#13878) Thanks @lailoo.
|
|
51
|
+
- Heartbeat: prevent scheduler stalls on unexpected run errors and avoid immediate rerun loops after `requests-in-flight` skips. (#14901) Thanks @joeykrug.
|
|
52
|
+
- Cron: honor stored session model overrides for isolated-agent runs while preserving `hooks.gmail.model` precedence for Gmail hook sessions. (#14983) Thanks @shtse8.
|
|
53
|
+
- Logging/Browser: fall back to `os.tmpdir()/openclaw` for default log, browser trace, and browser download temp paths when `/tmp/openclaw` is unavailable.
|
|
54
|
+
- WhatsApp: convert Markdown bold/strikethrough to WhatsApp formatting. (#14285) Thanks @Raikan10.
|
|
55
|
+
- WhatsApp: allow media-only sends and normalize leading blank payloads. (#14408) Thanks @karimnaguib.
|
|
56
|
+
- WhatsApp: default MIME type for voice messages when Baileys omits it. (#14444) Thanks @mcaxtr.
|
|
57
|
+
- Telegram: handle no-text message in model picker editMessageText. (#14397) Thanks @0xRaini.
|
|
58
|
+
- Telegram: surface REACTION_INVALID as non-fatal warning. (#14340) Thanks @0xRaini.
|
|
59
|
+
- BlueBubbles: fix webhook auth bypass via loopback proxy trust. (#13787) Thanks @coygeek.
|
|
60
|
+
- Slack: change default replyToMode from "off" to "all". (#14364) Thanks @nm-de.
|
|
61
|
+
- Slack: detect control commands when channel messages start with bot mention prefixes (for example, `@Bot /new`). (#14142) Thanks @beefiker.
|
|
62
|
+
- Signal: enforce E.164 validation for the Signal bot account prompt so mistyped numbers are caught early. (#15063) Thanks @Duartemartins.
|
|
63
|
+
- Discord: process DM reactions instead of silently dropping them. (#10418) Thanks @mcaxtr.
|
|
64
|
+
- Discord: treat Administrator as full permissions in channel permission checks. Thanks @thewilloftheshadow.
|
|
65
|
+
- Discord: respect replyToMode in threads. (#11062) Thanks @cordx56.
|
|
66
|
+
- Browser: add Chrome launch flag `--disable-blink-features=AutomationControlled` to reduce `navigator.webdriver` automation detection issues on reCAPTCHA-protected sites. (#10735) Thanks @Milofax.
|
|
67
|
+
- Heartbeat: filter noise-only system events so scheduled reminder notifications do not fire when cron runs carry only heartbeat markers. (#13317) Thanks @pvtclawn.
|
|
68
|
+
- Signal: render mention placeholders as `@uuid`/`@phone` so mention gating and Clawdbot targeting work. (#2013) Thanks @alexgleason.
|
|
69
|
+
- Discord: omit empty content fields for media-only messages while preserving caption whitespace. (#9507) Thanks @leszekszpunar.
|
|
70
|
+
- Onboarding/Providers: add Z.AI endpoint-specific auth choices (`zai-coding-global`, `zai-coding-cn`, `zai-global`, `zai-cn`) and expand default Z.AI model wiring. (#13456) Thanks @tomsun28.
|
|
71
|
+
- Onboarding/Providers: update MiniMax API default/recommended models from M2.1 to M2.5, add M2.5/M2.5-Lightning model entries, and include `minimax-m2.5` in modern model filtering. (#14865) Thanks @adao-max.
|
|
72
|
+
- Ollama: use configured `models.providers.ollama.baseUrl` for model discovery and normalize `/v1` endpoints to the native Ollama API root. (#14131) Thanks @shtse8.
|
|
73
|
+
- Voice Call: pass Twilio stream auth token via `<Parameter>` instead of query string. (#14029) Thanks @mcwigglesmcgee.
|
|
74
|
+
- Feishu: pass `Buffer` directly to the Feishu SDK upload APIs instead of `Readable.from(...)` to avoid form-data upload failures. (#10345) Thanks @youngerstyle.
|
|
75
|
+
- Feishu: trigger mention-gated group handling only when the bot itself is mentioned (not just any mention). (#11088) Thanks @openperf.
|
|
76
|
+
- Feishu: probe status uses the resolved account context for multi-account credential checks. (#11233) Thanks @onevcat.
|
|
77
|
+
- Feishu: add streaming card replies via Card Kit API and preserve `renderMode=auto` fallback behavior for plain-text responses. (#10379) Thanks @xzq-xu.
|
|
78
|
+
- Feishu DocX: preserve top-level converted block order using `firstLevelBlockIds` when writing/appending documents. (#13994) Thanks @Cynosure159.
|
|
79
|
+
- Feishu plugin packaging: remove `workspace:*` `openclaw` dependency from `extensions/feishu` and sync lockfile for install compatibility. (#14423) Thanks @jackcooper2015.
|
|
80
|
+
- CLI/Wizard: exit with code 1 when `configure`, `agents add`, or interactive `onboard` wizards are canceled, so `set -e` automation stops correctly. (#14156) Thanks @0xRaini.
|
|
81
|
+
- Media: strip `MEDIA:` lines with local paths instead of leaking as visible text. (#14399) Thanks @0xRaini.
|
|
82
|
+
- Config/Cron: exclude `maxTokens` from config redaction and honor `deleteAfterRun` on skipped cron jobs. (#13342) Thanks @niceysam.
|
|
83
|
+
- Config: ignore `meta` field changes in config file watcher. (#13460) Thanks @brandonwise.
|
|
84
|
+
- Cron: use requested `agentId` for isolated job auth resolution. (#13983) Thanks @0xRaini.
|
|
85
|
+
- Cron: pass `agentId` to `runHeartbeatOnce` for main-session jobs. (#14140) Thanks @ishikawa-pro.
|
|
86
|
+
- Cron: prevent cron jobs from skipping execution when `nextRunAtMs` advances. (#14068) Thanks @WalterSumbon.
|
|
87
|
+
- Cron: re-arm timers when `onTimer` fires while a job is still executing. (#14233) Thanks @tomron87.
|
|
88
|
+
- Cron: prevent duplicate fires when multiple jobs trigger simultaneously. (#14256) Thanks @xinhuagu.
|
|
89
|
+
- Cron: isolate scheduler errors so one bad job does not break all jobs. (#14385) Thanks @MarvinDontPanic.
|
|
90
|
+
- Cron: prevent one-shot `at` jobs from re-firing on restart after skipped/errored runs. (#13878) Thanks @lailoo.
|
|
91
|
+
- Daemon: suppress `EPIPE` error when restarting LaunchAgent. (#14343) Thanks @0xRaini.
|
|
92
|
+
- Antigravity: add opus 4.6 forward-compat model and bypass thinking signature sanitization. (#14218) Thanks @jg-noncelogic.
|
|
93
|
+
- Agents: prevent file descriptor leaks in child process cleanup. (#13565) Thanks @KyleChen26.
|
|
94
|
+
- Agents: prevent double compaction caused by cache TTL bypassing guard. (#13514) Thanks @taw0002.
|
|
95
|
+
- Agents: use last API call's cache tokens for context display instead of accumulated sum. (#13805) Thanks @akari-musubi.
|
|
96
|
+
- Agents: keep followup-runner session `totalTokens` aligned with post-compaction context by using last-call usage and shared token-accounting logic. (#14979) Thanks @shtse8.
|
|
97
|
+
- Hooks/Plugins: wire 9 previously unwired plugin lifecycle hooks into core runtime paths (session, compaction, gateway, and outbound message hooks). (#14882) Thanks @shtse8.
|
|
98
|
+
- Hooks/Tools: dispatch `before_tool_call` and `after_tool_call` hooks from both tool execution paths with rebased conflict fixes. (#15012) Thanks @Patrick-Barletta, @Takhoffman.
|
|
99
|
+
- Discord: allow channel-edit to archive/lock threads and set auto-archive duration. (#5542) Thanks @stumct.
|
|
100
|
+
- Discord tests: use a partial @buape/carbon mock in slash command coverage. (#13262) Thanks @arosstale.
|
|
101
|
+
- Tests: update thread ID handling in Slack message collection tests. (#14108) Thanks @swizzmagik.
|
|
102
|
+
|
|
5
103
|
## 2026.2.9
|
|
6
104
|
|
|
7
105
|
### Added
|
|
@@ -24,6 +122,7 @@ Docs: https://docs.openclaw.ai
|
|
|
24
122
|
|
|
25
123
|
### Fixes
|
|
26
124
|
|
|
125
|
+
- Cron: prevent one-shot `at` jobs from re-firing on gateway restart when previously skipped or errored. (#13845)
|
|
27
126
|
- Discord: add exec approval cleanup option to delete DMs after approval/denial/timeout. (#13205) Thanks @thewilloftheshadow.
|
|
28
127
|
- Sessions: prune stale entries, cap session store size, rotate large stores, accept duration/size thresholds, default to warn-only maintenance, and prune cron run sessions after retention windows. (#13083) Thanks @skyfallsin, @Glucksberg, @gumadeiras.
|
|
29
128
|
- CI: Implement pipeline and workflow order. Thanks @quotentiroler.
|
|
@@ -37,11 +136,14 @@ Docs: https://docs.openclaw.ai
|
|
|
37
136
|
- Telegram: match DM `allowFrom` against sender user id (fallback to chat id) and clarify pairing logs. (#12779) Thanks @liuxiaopai-ai.
|
|
38
137
|
- Pairing/Telegram: include the actual pairing code in approve commands, route Telegram pairing replies through the shared pairing message builder, and add regression checks to prevent `<code>` placeholder drift.
|
|
39
138
|
- Onboarding: QuickStart now auto-installs shell completion (prompt only in Manual).
|
|
139
|
+
- Onboarding/Providers: add LiteLLM provider onboarding and preserve custom LiteLLM proxy base URLs while enforcing API-key auth mode. (#12823) Thanks @ryan-crabbe.
|
|
40
140
|
- Docker: make `docker-setup.sh` compatible with macOS Bash 3.2 and empty extra mounts. (#9441) Thanks @mateusz-michalik.
|
|
41
141
|
- Auth: strip embedded line breaks from pasted API keys and tokens before storing/resolving credentials.
|
|
42
142
|
- Agents: strip reasoning tags and downgraded tool markers from messaging tool and streaming output to prevent leakage. (#11053, #13453) Thanks @liebertar, @meaadore1221-afk, @gumadeiras.
|
|
43
143
|
- Browser: prevent stuck `act:evaluate` from wedging the browser tool, and make cancellation stop waiting promptly. (#13498) Thanks @onutc.
|
|
144
|
+
- Security/Gateway: default-deny missing connect `scopes` (no implicit `operator.admin`).
|
|
44
145
|
- Web UI: make chat refresh smoothly scroll to the latest messages and suppress new-messages badge flash during manual refresh.
|
|
146
|
+
- Web UI: coerce Form Editor values to schema types before `config.set` and `config.apply`, preventing numeric and boolean fields from being serialized as strings. (#13468) Thanks @mcaxtr.
|
|
45
147
|
- Tools/web_search: include provider-specific settings in the web search cache key, and pass `inlineCitations` for Grok. (#12419) Thanks @tmchow.
|
|
46
148
|
- Tools/web_search: fix Grok response parsing for xAI Responses API output blocks. (#13049) Thanks @ereid7.
|
|
47
149
|
- Tools/web_search: normalize direct Perplexity model IDs while keeping OpenRouter model IDs unchanged. (#12795) Thanks @cdorsey.
|
|
@@ -53,11 +155,13 @@ Docs: https://docs.openclaw.ai
|
|
|
53
155
|
- Gateway: fix multi-agent sessions.usage discovery. (#11523) Thanks @Takhoffman.
|
|
54
156
|
- Agents: recover from context overflow caused by oversized tool results (pre-emptive capping + fallback truncation). (#11579) Thanks @tyler6204.
|
|
55
157
|
- Subagents/compaction: stabilize announce timing and preserve compaction metrics across retries. (#11664) Thanks @tyler6204.
|
|
158
|
+
- Subagents: report timeout-aborted runs as timed out instead of completed successfully in parent-session announcements. (#13996) Thanks @dario-github.
|
|
56
159
|
- Cron: share isolated announce flow and harden scheduling/delivery reliability. (#11641) Thanks @tyler6204.
|
|
57
160
|
- Cron tool: recover flat params when LLM omits the `job` wrapper for add requests. (#12124) Thanks @tyler6204.
|
|
58
161
|
- Gateway/CLI: when `gateway.bind=lan`, use a LAN IP for probe URLs and Control UI links. (#11448) Thanks @AnonO6.
|
|
59
162
|
- CLI: make `openclaw plugins list` output scannable by hoisting source roots and shortening bundled/global/workspace plugin paths.
|
|
60
163
|
- Hooks: fix bundled hooks broken since 2026.2.2 (tsdown migration). (#9295) Thanks @patrickshao.
|
|
164
|
+
- Security/Plugins: install plugin and hook dependencies with `--ignore-scripts` to prevent lifecycle script execution.
|
|
61
165
|
- Routing: refresh bindings per message by loading config at route resolution so binding changes apply without restart. (#11372) Thanks @juanpablodlc.
|
|
62
166
|
- Exec approvals: render forwarded commands in monospace for safer approval scanning. (#11937) Thanks @sebslight.
|
|
63
167
|
- Config: clamp `maxTokens` to `contextWindow` to prevent invalid model configs. (#5516) Thanks @lailoo.
|
|
@@ -71,6 +175,8 @@ Docs: https://docs.openclaw.ai
|
|
|
71
175
|
- Memory/QMD: run boot refresh in background by default, add configurable QMD maintenance timeouts, retry QMD after fallback failures, and scope QMD queries to OpenClaw-managed collections. (#9690, #9705, #10042) Thanks @vignesh07.
|
|
72
176
|
- Memory/QMD: initialize QMD backend on gateway startup so background update timers restart after process reloads. (#10797) Thanks @vignesh07.
|
|
73
177
|
- Config/Memory: auto-migrate legacy top-level `memorySearch` settings into `agents.defaults.memorySearch`. (#11278, #9143) Thanks @vignesh07.
|
|
178
|
+
- Memory/QMD: treat plain-text `No results found` output from QMD as an empty result instead of throwing invalid JSON errors. (#9824)
|
|
179
|
+
- Memory/QMD: add `memory.qmd.searchMode` to choose `query`, `search`, or `vsearch` recall mode. (#9967, #10084)
|
|
74
180
|
- Media understanding: recognize `.caf` audio attachments for transcription. (#10982) Thanks @succ985.
|
|
75
181
|
- State dir: honor `OPENCLAW_STATE_DIR` for default device identity and canvas storage paths. (#4824) Thanks @kossoy.
|
|
76
182
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as success, Y as resolveOAuthDir, j as getChildLogger, p as defaultRuntime, y as info } from "./entry.js";
|
|
2
2
|
import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DVvxnFKg.js";
|
|
3
|
-
import { p as jidToE164, y as resolveUserPath } from "./utils-
|
|
3
|
+
import { p as jidToE164, y as resolveUserPath } from "./utils-BLJAc3ZV.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import fs from "node:fs";
|
|
6
6
|
import fs$1 from "node:fs/promises";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { m as resolveOAuthDir } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { D as info, P as success, c as defaultRuntime, z as getChildLogger } from "./subsystem-
|
|
3
|
-
import { b as resolveUserPath, m as jidToE164 } from "./utils-
|
|
2
|
+
import { D as info, P as success, c as defaultRuntime, z as getChildLogger } from "./subsystem-BoExtIHo.js";
|
|
3
|
+
import { b as resolveUserPath, m as jidToE164 } from "./utils-Cd9QdCHh.js";
|
|
4
4
|
import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-BWxPj0z_.js";
|
|
5
5
|
import fs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import "./paths-DVBShlw6.js";
|
|
2
|
-
import { R as theme, c as defaultRuntime } from "./subsystem-
|
|
3
|
-
import "./utils-
|
|
4
|
-
import "./exec-
|
|
5
|
-
import "./agent-scope-
|
|
6
|
-
import "./model-selection-
|
|
2
|
+
import { R as theme, c as defaultRuntime } from "./subsystem-BoExtIHo.js";
|
|
3
|
+
import "./utils-Cd9QdCHh.js";
|
|
4
|
+
import "./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 "./boolean-BgXe2hyu.js";
|
|
9
|
-
import "./env-
|
|
10
|
-
import { M as VERSION, i as loadConfig } from "./config
|
|
11
|
-
import "./manifest-registry-
|
|
12
|
-
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-
|
|
13
|
-
import { t as GatewayClient } from "./client-
|
|
14
|
-
import { t as buildGatewayConnectionDetails } from "./call-
|
|
15
|
-
import { t as formatDocsLink } from "./links-
|
|
16
|
-
import "./
|
|
17
|
-
import { t as isMainModule } from "./is-main-
|
|
18
|
-
import { t as ensureOpenClawCliOnPath } from "./path-env-
|
|
19
|
-
import { i as resolveGatewayAuth } from "./auth-BvIPpm7G.js";
|
|
9
|
+
import "./env-ONzUVAG2.js";
|
|
10
|
+
import { M as VERSION, i as loadConfig } from "./config-aFQssWKX.js";
|
|
11
|
+
import "./manifest-registry-CQhdnDBZ.js";
|
|
12
|
+
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-BLi2a6Yw.js";
|
|
13
|
+
import { t as GatewayClient } from "./client-BrYfyoDK.js";
|
|
14
|
+
import { t as buildGatewayConnectionDetails } from "./call-SolyGS1r.js";
|
|
15
|
+
import { t as formatDocsLink } from "./links-Eax1UO3w.js";
|
|
16
|
+
import { i as resolveGatewayAuth } from "./auth-CQNl_IaI.js";
|
|
17
|
+
import { t as isMainModule } from "./is-main-BWoXGz7p.js";
|
|
18
|
+
import { t as ensureOpenClawCliOnPath } from "./path-env-CaYUVIML.js";
|
|
20
19
|
import { fileURLToPath } from "node:url";
|
|
21
20
|
import { spawn } from "node:child_process";
|
|
22
21
|
import { randomUUID } from "node:crypto";
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./auth-profiles-
|
|
3
|
-
import "./utils-
|
|
4
|
-
import "./exec-
|
|
5
|
-
import "./agent-scope-
|
|
6
|
-
import "./github-copilot-token-
|
|
7
|
-
import { M as VERSION, i as loadConfig } from "./config-
|
|
8
|
-
import "./manifest-registry-
|
|
9
|
-
import {
|
|
10
|
-
import "./
|
|
11
|
-
import {
|
|
12
|
-
import { t as
|
|
13
|
-
import {
|
|
14
|
-
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-BlgPSDAh.js";
|
|
1
|
+
import { A as theme, p as defaultRuntime } from "./entry.js";
|
|
2
|
+
import "./auth-profiles-ByNs3eEm.js";
|
|
3
|
+
import "./utils-BLJAc3ZV.js";
|
|
4
|
+
import "./exec-CACT5OAW.js";
|
|
5
|
+
import "./agent-scope-CsRbLH4l.js";
|
|
6
|
+
import "./github-copilot-token-Cfs0Wxr8.js";
|
|
7
|
+
import { M as VERSION, i as loadConfig } from "./config-Bdhomfei.js";
|
|
8
|
+
import "./manifest-registry-u0okVSkU.js";
|
|
9
|
+
import { i as resolveGatewayAuth } from "./auth-9x3lqfIY.js";
|
|
10
|
+
import { t as ensureOpenClawCliOnPath } from "./path-env-CLvYNwtL.js";
|
|
11
|
+
import { t as GatewayClient } from "./client-CTwXnRl7.js";
|
|
12
|
+
import { t as buildGatewayConnectionDetails } from "./call-DVYCIV8m.js";
|
|
13
|
+
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C_MmebBt.js";
|
|
15
14
|
import { t as isMainModule } from "./is-main-qJ675wPV.js";
|
|
16
|
-
import { t as formatDocsLink } from "./links-
|
|
15
|
+
import { t as formatDocsLink } from "./links-B8LAzWwg.js";
|
|
17
16
|
import { spawn } from "node:child_process";
|
|
18
17
|
import { fileURLToPath } from "node:url";
|
|
19
18
|
import { randomUUID } from "node:crypto";
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL } from "./subsystem-
|
|
2
|
-
import {
|
|
3
|
-
import { $t as getSkillsSnapshotVersion, Bt as getRemoteSkillEligibility, Cr as
|
|
1
|
+
import { c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL } from "./subsystem-BoExtIHo.js";
|
|
2
|
+
import { J as supportsXHighThinking, K as normalizeVerboseLevel, R as formatThinkingLevels, W as normalizeThinkLevel, z as formatXHighModelHint } from "./pi-embedded-helpers-CMKLjW6X.js";
|
|
3
|
+
import { $t as getSkillsSnapshotVersion, Bt as getRemoteSkillEligibility, Cr as clearSessionAuthProfileOverride, In as registerAgentRunContext, L as runWithModelFallback, M as resolveOutboundTarget, Mn as clearAgentRunContext, N as resolveSessionDeliveryTarget, Nn as emitAgentEvent, Sr as lookupContextTokens, Tr as applyVerboseOverride, Ur as resolveAgentTimeoutMs, i as runCliAgent, jn as AGENT_LANE_NESTED, l as runEmbeddedPiAgent, n as getCliSessionId, r as setCliSessionId, s as resolveSendPolicy, wr as applyModelOverrideToSessionEntry } from "./reply-DICXkh_C.js";
|
|
4
4
|
import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normalizeMainKey } from "./session-key-BWxPj0z_.js";
|
|
5
|
-
import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-
|
|
6
|
-
import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, a as isCliProvider, d as resolveConfiguredModelRef, h as resolveThinkingDefault, ht as ensureAuthProfileStore, o as modelKey, t as buildAllowedModelSet } from "./model-selection-
|
|
5
|
+
import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-CQCus0rI.js";
|
|
6
|
+
import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, a as isCliProvider, d as resolveConfiguredModelRef, h as resolveThinkingDefault, ht as ensureAuthProfileStore, o as modelKey, t as buildAllowedModelSet } from "./model-selection-BLuqsGVB.js";
|
|
7
7
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
8
|
-
import { i as loadConfig } from "./config
|
|
9
|
-
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-
|
|
10
|
-
import { A as resolveSessionResetPolicy, D as resolveSessionKey, I as resolveExplicitAgentSessionKey, O as evaluateSessionFreshness, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, j as resolveSessionResetType, k as resolveChannelResetConfig } from "./sandbox-
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { n as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
8
|
+
import { i as loadConfig } from "./config-aFQssWKX.js";
|
|
9
|
+
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-X7d_tfTE.js";
|
|
10
|
+
import { A as resolveSessionResetPolicy, D as resolveSessionKey, I as resolveExplicitAgentSessionKey, O as evaluateSessionFreshness, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, j as resolveSessionResetType, k as resolveChannelResetConfig } from "./sandbox-Bhjnh1Xg.js";
|
|
11
|
+
import { s as loadModelCatalog } from "./runner-D_dujMod.js";
|
|
12
|
+
import { r as buildWorkspaceSkillSnapshot } from "./skills-DprQj9X2.js";
|
|
13
|
+
import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-BLi2a6Yw.js";
|
|
14
|
+
import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-B49s6UZQ.js";
|
|
15
|
+
import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-LsxKETro.js";
|
|
16
|
+
import { l as deriveSessionTotalTokens, u as hasNonzeroUsage } from "./session-cost-usage-D7HuoSSD.js";
|
|
17
|
+
import { t as createDefaultDeps } from "./deps-lAAA2zYI.js";
|
|
17
18
|
import crypto from "node:crypto";
|
|
18
19
|
|
|
19
20
|
//#region src/cli/outbound-send-deps.ts
|
|
@@ -249,6 +250,7 @@ function resolveAgentRunContext(opts) {
|
|
|
249
250
|
async function updateSessionStoreAfterAgentRun(params) {
|
|
250
251
|
const { cfg, sessionId, sessionKey, storePath, sessionStore, defaultProvider, defaultModel, fallbackProvider, fallbackModel, result } = params;
|
|
251
252
|
const usage = result.meta.agentMeta?.usage;
|
|
253
|
+
const promptTokens = result.meta.agentMeta?.promptTokens;
|
|
252
254
|
const compactionsThisRun = Math.max(0, result.meta.agentMeta?.compactionCount ?? 0);
|
|
253
255
|
const modelUsed = result.meta.agentMeta?.model ?? fallbackModel ?? defaultModel;
|
|
254
256
|
const providerUsed = result.meta.agentMeta?.provider ?? fallbackProvider ?? defaultProvider;
|
|
@@ -277,7 +279,8 @@ async function updateSessionStoreAfterAgentRun(params) {
|
|
|
277
279
|
next.outputTokens = output;
|
|
278
280
|
next.totalTokens = deriveSessionTotalTokens({
|
|
279
281
|
usage,
|
|
280
|
-
contextTokens
|
|
282
|
+
contextTokens,
|
|
283
|
+
promptTokens
|
|
281
284
|
}) ?? input;
|
|
282
285
|
}
|
|
283
286
|
if (compactionsThisRun > 0) next.compactionCount = (entry.compactionCount ?? 0) + compactionsThisRun;
|
|
@@ -642,6 +645,7 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
|
|
|
642
645
|
lane: opts.lane,
|
|
643
646
|
abortSignal: opts.abortSignal,
|
|
644
647
|
extraSystemPrompt: opts.extraSystemPrompt,
|
|
648
|
+
inputProvenance: opts.inputProvenance,
|
|
645
649
|
streamParams: opts.streamParams,
|
|
646
650
|
agentDir,
|
|
647
651
|
onAgentEvent: (evt) => {
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { C as buildAllowedModelSet, Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProvider, L as resolveThinkingDefault, N as resolveConfiguredModelRef, O as modelKey, Tt as DEFAULT_PROVIDER, _ as ensureAuthProfileStore, wt as DEFAULT_MODEL } from "./auth-profiles-
|
|
3
|
-
import { t as formatCliCommand } from "./command-format-
|
|
1
|
+
import { p as defaultRuntime, tt as DEFAULT_CHAT_CHANNEL } from "./entry.js";
|
|
2
|
+
import { C as buildAllowedModelSet, Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProvider, L as resolveThinkingDefault, N as resolveConfiguredModelRef, O as modelKey, Tt as DEFAULT_PROVIDER, _ as ensureAuthProfileStore, wt as DEFAULT_MODEL } from "./auth-profiles-ByNs3eEm.js";
|
|
3
|
+
import { t as formatCliCommand } from "./command-format-Bxe0mWee.js";
|
|
4
4
|
import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normalizeMainKey } from "./session-key-DVvxnFKg.js";
|
|
5
|
-
import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-
|
|
6
|
-
import { i as loadConfig } from "./config-
|
|
7
|
-
import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-
|
|
8
|
-
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { A as resolveSessionResetType, D as evaluateSessionFreshness, E as resolveSessionKey, F as resolveExplicitAgentSessionKey, O as resolveChannelResetConfig, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, k as resolveSessionResetPolicy } from "./sandbox-
|
|
14
|
-
import { r as buildWorkspaceSkillSnapshot } from "./skills-
|
|
15
|
-
import { l as deriveSessionTotalTokens, u as hasNonzeroUsage } from "./session-cost-usage-
|
|
16
|
-
import {
|
|
5
|
+
import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-CsRbLH4l.js";
|
|
6
|
+
import { i as loadConfig } from "./config-Bdhomfei.js";
|
|
7
|
+
import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-C_MmebBt.js";
|
|
8
|
+
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-4Hqd1WGf.js";
|
|
9
|
+
import { At as runEmbeddedPiAgent, Cn as runWithModelFallback, G as setCliSessionId, Gt as applyModelOverrideToSessionEntry, It as resolveAgentTimeoutMs, K as runCliAgent, Lt as clearAgentRunContext, Rt as emitAgentEvent, Vt as registerAgentRunContext, W as getCliSessionId, Wt as AGENT_LANE_NESTED, X as getRemoteSkillEligibility, Y as resolveSendPolicy, dt as clearSessionAuthProfileOverride, ft as applyVerboseOverride, ln as lookupContextTokens, lt as getSkillsSnapshotVersion, vn as resolveOutboundTarget, yn as resolveSessionDeliveryTarget } from "./loader-KjT074JR.js";
|
|
10
|
+
import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-CIU9Npgs.js";
|
|
11
|
+
import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DLINmNFQ.js";
|
|
12
|
+
import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-DfwkwPYD.js";
|
|
13
|
+
import { A as resolveSessionResetType, D as evaluateSessionFreshness, E as resolveSessionKey, F as resolveExplicitAgentSessionKey, O as resolveChannelResetConfig, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, k as resolveSessionResetPolicy } from "./sandbox-BKYnhYQH.js";
|
|
14
|
+
import { r as buildWorkspaceSkillSnapshot } from "./skills-DRjfSQT3.js";
|
|
15
|
+
import { l as deriveSessionTotalTokens, u as hasNonzeroUsage } from "./session-cost-usage-D9hHANWI.js";
|
|
16
|
+
import { _ as loadModelCatalog } from "./runner-CY0nmVme.js";
|
|
17
|
+
import { t as createDefaultDeps } from "./deps-QSwGcoNZ.js";
|
|
17
18
|
import crypto from "node:crypto";
|
|
18
19
|
|
|
19
20
|
//#region src/cli/outbound-send-deps.ts
|
|
@@ -249,6 +250,7 @@ function resolveAgentRunContext(opts) {
|
|
|
249
250
|
async function updateSessionStoreAfterAgentRun(params) {
|
|
250
251
|
const { cfg, sessionId, sessionKey, storePath, sessionStore, defaultProvider, defaultModel, fallbackProvider, fallbackModel, result } = params;
|
|
251
252
|
const usage = result.meta.agentMeta?.usage;
|
|
253
|
+
const promptTokens = result.meta.agentMeta?.promptTokens;
|
|
252
254
|
const compactionsThisRun = Math.max(0, result.meta.agentMeta?.compactionCount ?? 0);
|
|
253
255
|
const modelUsed = result.meta.agentMeta?.model ?? fallbackModel ?? defaultModel;
|
|
254
256
|
const providerUsed = result.meta.agentMeta?.provider ?? fallbackProvider ?? defaultProvider;
|
|
@@ -277,7 +279,8 @@ async function updateSessionStoreAfterAgentRun(params) {
|
|
|
277
279
|
next.outputTokens = output;
|
|
278
280
|
next.totalTokens = deriveSessionTotalTokens({
|
|
279
281
|
usage,
|
|
280
|
-
contextTokens
|
|
282
|
+
contextTokens,
|
|
283
|
+
promptTokens
|
|
281
284
|
}) ?? input;
|
|
282
285
|
}
|
|
283
286
|
if (compactionsThisRun > 0) next.compactionCount = (entry.compactionCount ?? 0) + compactionsThisRun;
|
|
@@ -642,6 +645,7 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
|
|
|
642
645
|
lane: opts.lane,
|
|
643
646
|
abortSignal: opts.abortSignal,
|
|
644
647
|
extraSystemPrompt: opts.extraSystemPrompt,
|
|
648
|
+
inputProvenance: opts.inputProvenance,
|
|
645
649
|
streamParams: opts.streamParams,
|
|
646
650
|
agentDir,
|
|
647
651
|
onAgentEvent: (evt) => {
|
|
@@ -1,13 +1,177 @@
|
|
|
1
1
|
import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-BZtyHNCi.js";
|
|
2
|
-
import {
|
|
3
|
-
import { g as resolveUserPath, p as pathExists } from "./utils-dp_OM900.js";
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-CijMSZd9.js";
|
|
2
|
+
import { I as pathExists, t as runCommandWithTimeout, z as resolveUserPath } from "./exec-B8lXct-k.js";
|
|
5
3
|
import fs from "node:fs/promises";
|
|
6
4
|
import os from "node:os";
|
|
7
5
|
import path from "node:path";
|
|
8
6
|
import fs$1 from "node:fs";
|
|
9
7
|
import { fileURLToPath } from "node:url";
|
|
10
8
|
|
|
9
|
+
//#region src/sessions/session-key-utils.ts
|
|
10
|
+
function parseAgentSessionKey(sessionKey) {
|
|
11
|
+
const raw = (sessionKey ?? "").trim();
|
|
12
|
+
if (!raw) return null;
|
|
13
|
+
const parts = raw.split(":").filter(Boolean);
|
|
14
|
+
if (parts.length < 3) return null;
|
|
15
|
+
if (parts[0] !== "agent") return null;
|
|
16
|
+
const agentId = parts[1]?.trim();
|
|
17
|
+
const rest = parts.slice(2).join(":");
|
|
18
|
+
if (!agentId || !rest) return null;
|
|
19
|
+
return {
|
|
20
|
+
agentId,
|
|
21
|
+
rest
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function isSubagentSessionKey(sessionKey) {
|
|
25
|
+
const raw = (sessionKey ?? "").trim();
|
|
26
|
+
if (!raw) return false;
|
|
27
|
+
if (raw.toLowerCase().startsWith("subagent:")) return true;
|
|
28
|
+
const parsed = parseAgentSessionKey(raw);
|
|
29
|
+
return Boolean((parsed?.rest ?? "").toLowerCase().startsWith("subagent:"));
|
|
30
|
+
}
|
|
31
|
+
function isAcpSessionKey(sessionKey) {
|
|
32
|
+
const raw = (sessionKey ?? "").trim();
|
|
33
|
+
if (!raw) return false;
|
|
34
|
+
if (raw.toLowerCase().startsWith("acp:")) return true;
|
|
35
|
+
const parsed = parseAgentSessionKey(raw);
|
|
36
|
+
return Boolean((parsed?.rest ?? "").toLowerCase().startsWith("acp:"));
|
|
37
|
+
}
|
|
38
|
+
const THREAD_SESSION_MARKERS = [":thread:", ":topic:"];
|
|
39
|
+
function resolveThreadParentSessionKey(sessionKey) {
|
|
40
|
+
const raw = (sessionKey ?? "").trim();
|
|
41
|
+
if (!raw) return null;
|
|
42
|
+
const normalized = raw.toLowerCase();
|
|
43
|
+
let idx = -1;
|
|
44
|
+
for (const marker of THREAD_SESSION_MARKERS) {
|
|
45
|
+
const candidate = normalized.lastIndexOf(marker);
|
|
46
|
+
if (candidate > idx) idx = candidate;
|
|
47
|
+
}
|
|
48
|
+
if (idx <= 0) return null;
|
|
49
|
+
const parent = raw.slice(0, idx).trim();
|
|
50
|
+
return parent ? parent : null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/routing/session-key.ts
|
|
55
|
+
const DEFAULT_AGENT_ID = "main";
|
|
56
|
+
const DEFAULT_MAIN_KEY = "main";
|
|
57
|
+
const DEFAULT_ACCOUNT_ID = "default";
|
|
58
|
+
const VALID_ID_RE = /^[a-z0-9][a-z0-9_-]{0,63}$/i;
|
|
59
|
+
const INVALID_CHARS_RE = /[^a-z0-9_-]+/g;
|
|
60
|
+
const LEADING_DASH_RE = /^-+/;
|
|
61
|
+
const TRAILING_DASH_RE = /-+$/;
|
|
62
|
+
function normalizeToken(value) {
|
|
63
|
+
return (value ?? "").trim().toLowerCase();
|
|
64
|
+
}
|
|
65
|
+
function normalizeMainKey(value) {
|
|
66
|
+
const trimmed = (value ?? "").trim();
|
|
67
|
+
return trimmed ? trimmed.toLowerCase() : DEFAULT_MAIN_KEY;
|
|
68
|
+
}
|
|
69
|
+
function resolveAgentIdFromSessionKey(sessionKey) {
|
|
70
|
+
return normalizeAgentId(parseAgentSessionKey(sessionKey)?.agentId ?? DEFAULT_AGENT_ID);
|
|
71
|
+
}
|
|
72
|
+
function classifySessionKeyShape(sessionKey) {
|
|
73
|
+
const raw = (sessionKey ?? "").trim();
|
|
74
|
+
if (!raw) return "missing";
|
|
75
|
+
if (parseAgentSessionKey(raw)) return "agent";
|
|
76
|
+
return raw.toLowerCase().startsWith("agent:") ? "malformed_agent" : "legacy_or_alias";
|
|
77
|
+
}
|
|
78
|
+
function normalizeAgentId(value) {
|
|
79
|
+
const trimmed = (value ?? "").trim();
|
|
80
|
+
if (!trimmed) return DEFAULT_AGENT_ID;
|
|
81
|
+
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
82
|
+
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_AGENT_ID;
|
|
83
|
+
}
|
|
84
|
+
function sanitizeAgentId(value) {
|
|
85
|
+
const trimmed = (value ?? "").trim();
|
|
86
|
+
if (!trimmed) return DEFAULT_AGENT_ID;
|
|
87
|
+
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
88
|
+
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_AGENT_ID;
|
|
89
|
+
}
|
|
90
|
+
function normalizeAccountId(value) {
|
|
91
|
+
const trimmed = (value ?? "").trim();
|
|
92
|
+
if (!trimmed) return DEFAULT_ACCOUNT_ID;
|
|
93
|
+
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
94
|
+
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_ACCOUNT_ID;
|
|
95
|
+
}
|
|
96
|
+
function buildAgentMainSessionKey(params) {
|
|
97
|
+
return `agent:${normalizeAgentId(params.agentId)}:${normalizeMainKey(params.mainKey)}`;
|
|
98
|
+
}
|
|
99
|
+
function buildAgentPeerSessionKey(params) {
|
|
100
|
+
const peerKind = params.peerKind ?? "direct";
|
|
101
|
+
if (peerKind === "direct") {
|
|
102
|
+
const dmScope = params.dmScope ?? "main";
|
|
103
|
+
let peerId = (params.peerId ?? "").trim();
|
|
104
|
+
const linkedPeerId = dmScope === "main" ? null : resolveLinkedPeerId({
|
|
105
|
+
identityLinks: params.identityLinks,
|
|
106
|
+
channel: params.channel,
|
|
107
|
+
peerId
|
|
108
|
+
});
|
|
109
|
+
if (linkedPeerId) peerId = linkedPeerId;
|
|
110
|
+
peerId = peerId.toLowerCase();
|
|
111
|
+
if (dmScope === "per-account-channel-peer" && peerId) {
|
|
112
|
+
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
113
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
114
|
+
return `agent:${normalizeAgentId(params.agentId)}:${channel}:${accountId}:direct:${peerId}`;
|
|
115
|
+
}
|
|
116
|
+
if (dmScope === "per-channel-peer" && peerId) {
|
|
117
|
+
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
118
|
+
return `agent:${normalizeAgentId(params.agentId)}:${channel}:direct:${peerId}`;
|
|
119
|
+
}
|
|
120
|
+
if (dmScope === "per-peer" && peerId) return `agent:${normalizeAgentId(params.agentId)}:direct:${peerId}`;
|
|
121
|
+
return buildAgentMainSessionKey({
|
|
122
|
+
agentId: params.agentId,
|
|
123
|
+
mainKey: params.mainKey
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
127
|
+
const peerId = ((params.peerId ?? "").trim() || "unknown").toLowerCase();
|
|
128
|
+
return `agent:${normalizeAgentId(params.agentId)}:${channel}:${peerKind}:${peerId}`;
|
|
129
|
+
}
|
|
130
|
+
function resolveLinkedPeerId(params) {
|
|
131
|
+
const identityLinks = params.identityLinks;
|
|
132
|
+
if (!identityLinks) return null;
|
|
133
|
+
const peerId = params.peerId.trim();
|
|
134
|
+
if (!peerId) return null;
|
|
135
|
+
const candidates = /* @__PURE__ */ new Set();
|
|
136
|
+
const rawCandidate = normalizeToken(peerId);
|
|
137
|
+
if (rawCandidate) candidates.add(rawCandidate);
|
|
138
|
+
const channel = normalizeToken(params.channel);
|
|
139
|
+
if (channel) {
|
|
140
|
+
const scopedCandidate = normalizeToken(`${channel}:${peerId}`);
|
|
141
|
+
if (scopedCandidate) candidates.add(scopedCandidate);
|
|
142
|
+
}
|
|
143
|
+
if (candidates.size === 0) return null;
|
|
144
|
+
for (const [canonical, ids] of Object.entries(identityLinks)) {
|
|
145
|
+
const canonicalName = canonical.trim();
|
|
146
|
+
if (!canonicalName) continue;
|
|
147
|
+
if (!Array.isArray(ids)) continue;
|
|
148
|
+
for (const id of ids) {
|
|
149
|
+
const normalized = normalizeToken(id);
|
|
150
|
+
if (normalized && candidates.has(normalized)) return canonicalName;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
function buildGroupHistoryKey(params) {
|
|
156
|
+
const channel = normalizeToken(params.channel) || "unknown";
|
|
157
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
158
|
+
const peerId = params.peerId.trim().toLowerCase() || "unknown";
|
|
159
|
+
return `${channel}:${accountId}:${params.peerKind}:${peerId}`;
|
|
160
|
+
}
|
|
161
|
+
function resolveThreadSessionKeys(params) {
|
|
162
|
+
const threadId = (params.threadId ?? "").trim();
|
|
163
|
+
if (!threadId) return {
|
|
164
|
+
sessionKey: params.baseSessionKey,
|
|
165
|
+
parentSessionKey: void 0
|
|
166
|
+
};
|
|
167
|
+
const normalizedThreadId = threadId.toLowerCase();
|
|
168
|
+
return {
|
|
169
|
+
sessionKey: params.useSuffix ?? true ? `${params.baseSessionKey}:thread:${normalizedThreadId}` : params.baseSessionKey,
|
|
170
|
+
parentSessionKey: params.parentSessionKey
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
//#endregion
|
|
11
175
|
//#region src/infra/openclaw-root.ts
|
|
12
176
|
const CORE_PACKAGE_NAMES = new Set(["openclaw", "activeclaw"]);
|
|
13
177
|
async function readPackageName(dir) {
|
|
@@ -53,6 +217,10 @@ function findPackageRootSync(startDir, maxDepth = 12) {
|
|
|
53
217
|
function candidateDirsFromArgv1(argv1) {
|
|
54
218
|
const normalized = path.resolve(argv1);
|
|
55
219
|
const candidates = [path.dirname(normalized)];
|
|
220
|
+
try {
|
|
221
|
+
const resolved = fs$1.realpathSync(normalized);
|
|
222
|
+
if (resolved !== normalized) candidates.push(path.dirname(resolved));
|
|
223
|
+
} catch {}
|
|
56
224
|
const parts = normalized.split(path.sep);
|
|
57
225
|
const binIndex = parts.lastIndexOf(".bin");
|
|
58
226
|
if (binIndex > 0 && parts[binIndex - 1] === "node_modules") {
|
|
@@ -439,4 +607,4 @@ function resolveAgentDir(cfg, agentId) {
|
|
|
439
607
|
}
|
|
440
608
|
|
|
441
609
|
//#endregion
|
|
442
|
-
export { resolveOpenClawPackageRootSync as C, resolveOpenClawPackageRoot as S, DEFAULT_TOOLS_FILENAME as _, resolveAgentModelPrimary as a, filterBootstrapFilesForSession as b, resolveDefaultAgentId as c, DEFAULT_AGENTS_FILENAME as d, DEFAULT_AGENT_WORKSPACE_DIR as f, DEFAULT_SOUL_FILENAME as g, DEFAULT_IDENTITY_FILENAME as h, resolveAgentModelFallbacksOverride as i, resolveSessionAgentId as l, DEFAULT_HEARTBEAT_FILENAME as m, resolveAgentConfig as n, resolveAgentSkillsFilter as o, DEFAULT_BOOTSTRAP_FILENAME as p, resolveAgentDir as r, resolveAgentWorkspaceDir as s, listAgentIds as t, resolveSessionAgentIds as u, DEFAULT_USER_FILENAME as v, loadWorkspaceBootstrapFiles as x, ensureAgentWorkspace as y };
|
|
610
|
+
export { classifySessionKeyShape as A, resolveThreadParentSessionKey as B, resolveOpenClawPackageRootSync as C, buildAgentMainSessionKey as D, DEFAULT_MAIN_KEY as E, resolveThreadSessionKeys as F, sanitizeAgentId as I, isAcpSessionKey as L, normalizeAgentId as M, normalizeMainKey as N, buildAgentPeerSessionKey as O, resolveAgentIdFromSessionKey as P, isSubagentSessionKey as R, resolveOpenClawPackageRoot as S, DEFAULT_AGENT_ID as T, DEFAULT_TOOLS_FILENAME as _, resolveAgentModelPrimary as a, filterBootstrapFilesForSession as b, resolveDefaultAgentId as c, DEFAULT_AGENTS_FILENAME as d, DEFAULT_AGENT_WORKSPACE_DIR as f, DEFAULT_SOUL_FILENAME as g, DEFAULT_IDENTITY_FILENAME as h, resolveAgentModelFallbacksOverride as i, normalizeAccountId as j, buildGroupHistoryKey as k, resolveSessionAgentId as l, DEFAULT_HEARTBEAT_FILENAME as m, resolveAgentConfig as n, resolveAgentSkillsFilter as o, DEFAULT_BOOTSTRAP_FILENAME as p, resolveAgentDir as r, resolveAgentWorkspaceDir as s, listAgentIds as t, resolveSessionAgentIds as u, DEFAULT_USER_FILENAME as v, DEFAULT_ACCOUNT_ID as w, loadWorkspaceBootstrapFiles as x, ensureAgentWorkspace as y, parseAgentSessionKey as z };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { g as resolveStateDir, y as resolveRequiredHomeDir } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { b as resolveUserPath, g as pathExists } from "./utils-
|
|
2
|
+
import { b as resolveUserPath, g as pathExists } from "./utils-Cd9QdCHh.js";
|
|
3
3
|
import { l as normalizeAgentId, n as DEFAULT_AGENT_ID, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BWxPj0z_.js";
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
5
|
-
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
4
|
+
import { t as runCommandWithTimeout } from "./exec-YIosokWE.js";
|
|
5
|
+
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-1VeFrph_.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import os from "node:os";
|
|
8
8
|
import path from "node:path";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Z as resolveStateDir, ht as resolveRequiredHomeDir } from "./entry.js";
|
|
2
2
|
import { l as normalizeAgentId, n as DEFAULT_AGENT_ID, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-DVvxnFKg.js";
|
|
3
|
-
import { h as pathExists, y as resolveUserPath } from "./utils-
|
|
4
|
-
import { t as runCommandWithTimeout } from "./exec-
|
|
5
|
-
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
3
|
+
import { h as pathExists, y as resolveUserPath } from "./utils-BLJAc3ZV.js";
|
|
4
|
+
import { t as runCommandWithTimeout } from "./exec-CACT5OAW.js";
|
|
5
|
+
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-BNlEap4i.js";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import os from "node:os";
|
|
8
8
|
import fs from "node:fs/promises";
|