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
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
|
|
3
|
-
//#region src/hooks/internal-hooks.ts
|
|
4
|
-
/** Registry of hook handlers by event key */
|
|
5
|
-
const handlers = /* @__PURE__ */ new Map();
|
|
6
|
-
/**
|
|
7
|
-
* Register a hook handler for a specific event type or event:action combination
|
|
8
|
-
*
|
|
9
|
-
* @param eventKey - Event type (e.g., 'command') or specific action (e.g., 'command:new')
|
|
10
|
-
* @param handler - Function to call when the event is triggered
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* // Listen to all command events
|
|
15
|
-
* registerInternalHook('command', async (event) => {
|
|
16
|
-
* console.log('Command:', event.action);
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* // Listen only to /new commands
|
|
20
|
-
* registerInternalHook('command:new', async (event) => {
|
|
21
|
-
* await saveSessionToMemory(event);
|
|
22
|
-
* });
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
function registerInternalHook(eventKey, handler) {
|
|
26
|
-
if (!handlers.has(eventKey)) handlers.set(eventKey, []);
|
|
27
|
-
handlers.get(eventKey).push(handler);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Trigger a hook event
|
|
31
|
-
*
|
|
32
|
-
* Calls all handlers registered for:
|
|
33
|
-
* 1. The general event type (e.g., 'command')
|
|
34
|
-
* 2. The specific event:action combination (e.g., 'command:new')
|
|
35
|
-
*
|
|
36
|
-
* Handlers are called in registration order. Errors are caught and logged
|
|
37
|
-
* but don't prevent other handlers from running.
|
|
38
|
-
*
|
|
39
|
-
* @param event - The event to trigger
|
|
40
|
-
*/
|
|
41
|
-
async function triggerInternalHook(event) {
|
|
42
|
-
const typeHandlers = handlers.get(event.type) ?? [];
|
|
43
|
-
const specificHandlers = handlers.get(`${event.type}:${event.action}`) ?? [];
|
|
44
|
-
const allHandlers = [...typeHandlers, ...specificHandlers];
|
|
45
|
-
if (allHandlers.length === 0) return;
|
|
46
|
-
for (const handler of allHandlers) try {
|
|
47
|
-
await handler(event);
|
|
48
|
-
} catch (err) {
|
|
49
|
-
console.error(`Hook error [${event.type}:${event.action}]:`, err instanceof Error ? err.message : String(err));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Create a hook event with common fields filled in
|
|
54
|
-
*
|
|
55
|
-
* @param type - The event type
|
|
56
|
-
* @param action - The action within that type
|
|
57
|
-
* @param sessionKey - The session key
|
|
58
|
-
* @param context - Additional context
|
|
59
|
-
*/
|
|
60
|
-
function createInternalHookEvent(type, action, sessionKey, context = {}) {
|
|
61
|
-
return {
|
|
62
|
-
type,
|
|
63
|
-
action,
|
|
64
|
-
sessionKey,
|
|
65
|
-
context,
|
|
66
|
-
timestamp: /* @__PURE__ */ new Date(),
|
|
67
|
-
messages: []
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function isAgentBootstrapEvent(event) {
|
|
71
|
-
if (event.type !== "agent" || event.action !== "bootstrap") return false;
|
|
72
|
-
const context = event.context;
|
|
73
|
-
if (!context || typeof context !== "object") return false;
|
|
74
|
-
if (typeof context.workspaceDir !== "string") return false;
|
|
75
|
-
return Array.isArray(context.bootstrapFiles);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
//#endregion
|
|
79
|
-
//#region src/agents/date-time.ts
|
|
80
|
-
let cachedTimeFormat;
|
|
81
|
-
function resolveUserTimezone(configured) {
|
|
82
|
-
const trimmed = configured?.trim();
|
|
83
|
-
if (trimmed) try {
|
|
84
|
-
new Intl.DateTimeFormat("en-US", { timeZone: trimmed }).format(/* @__PURE__ */ new Date());
|
|
85
|
-
return trimmed;
|
|
86
|
-
} catch {}
|
|
87
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() || "UTC";
|
|
88
|
-
}
|
|
89
|
-
function resolveUserTimeFormat(preference) {
|
|
90
|
-
if (preference === "12" || preference === "24") return preference;
|
|
91
|
-
if (cachedTimeFormat) return cachedTimeFormat;
|
|
92
|
-
cachedTimeFormat = detectSystemTimeFormat() ? "24" : "12";
|
|
93
|
-
return cachedTimeFormat;
|
|
94
|
-
}
|
|
95
|
-
function normalizeTimestamp(raw) {
|
|
96
|
-
if (raw == null) return;
|
|
97
|
-
let timestampMs;
|
|
98
|
-
if (raw instanceof Date) timestampMs = raw.getTime();
|
|
99
|
-
else if (typeof raw === "number" && Number.isFinite(raw)) timestampMs = raw < 0xe8d4a51000 ? Math.round(raw * 1e3) : Math.round(raw);
|
|
100
|
-
else if (typeof raw === "string") {
|
|
101
|
-
const trimmed = raw.trim();
|
|
102
|
-
if (!trimmed) return;
|
|
103
|
-
if (/^\d+(\.\d+)?$/.test(trimmed)) {
|
|
104
|
-
const num = Number(trimmed);
|
|
105
|
-
if (Number.isFinite(num)) if (trimmed.includes(".")) timestampMs = Math.round(num * 1e3);
|
|
106
|
-
else if (trimmed.length >= 13) timestampMs = Math.round(num);
|
|
107
|
-
else timestampMs = Math.round(num * 1e3);
|
|
108
|
-
} else {
|
|
109
|
-
const parsed = Date.parse(trimmed);
|
|
110
|
-
if (!Number.isNaN(parsed)) timestampMs = parsed;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (timestampMs === void 0 || !Number.isFinite(timestampMs)) return;
|
|
114
|
-
return {
|
|
115
|
-
timestampMs,
|
|
116
|
-
timestampUtc: new Date(timestampMs).toISOString()
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
function withNormalizedTimestamp(value, rawTimestamp) {
|
|
120
|
-
const normalized = normalizeTimestamp(rawTimestamp);
|
|
121
|
-
if (!normalized) return value;
|
|
122
|
-
return {
|
|
123
|
-
...value,
|
|
124
|
-
timestampMs: typeof value.timestampMs === "number" && Number.isFinite(value.timestampMs) ? value.timestampMs : normalized.timestampMs,
|
|
125
|
-
timestampUtc: typeof value.timestampUtc === "string" && value.timestampUtc.trim() ? value.timestampUtc : normalized.timestampUtc
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
function detectSystemTimeFormat() {
|
|
129
|
-
if (process.platform === "darwin") try {
|
|
130
|
-
const result = execSync("defaults read -g AppleICUForce24HourTime 2>/dev/null", {
|
|
131
|
-
encoding: "utf8",
|
|
132
|
-
timeout: 500
|
|
133
|
-
}).trim();
|
|
134
|
-
if (result === "1") return true;
|
|
135
|
-
if (result === "0") return false;
|
|
136
|
-
} catch {}
|
|
137
|
-
if (process.platform === "win32") try {
|
|
138
|
-
const result = execSync("powershell -Command \"(Get-Culture).DateTimeFormat.ShortTimePattern\"", {
|
|
139
|
-
encoding: "utf8",
|
|
140
|
-
timeout: 1e3
|
|
141
|
-
}).trim();
|
|
142
|
-
if (result.startsWith("H")) return true;
|
|
143
|
-
if (result.startsWith("h")) return false;
|
|
144
|
-
} catch {}
|
|
145
|
-
try {
|
|
146
|
-
const sample = new Date(2e3, 0, 1, 13, 0);
|
|
147
|
-
return new Intl.DateTimeFormat(void 0, { hour: "numeric" }).format(sample).includes("13");
|
|
148
|
-
} catch {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
function ordinalSuffix(day) {
|
|
153
|
-
if (day >= 11 && day <= 13) return "th";
|
|
154
|
-
switch (day % 10) {
|
|
155
|
-
case 1: return "st";
|
|
156
|
-
case 2: return "nd";
|
|
157
|
-
case 3: return "rd";
|
|
158
|
-
default: return "th";
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
function formatUserTime(date, timeZone, format) {
|
|
162
|
-
const use24Hour = format === "24";
|
|
163
|
-
try {
|
|
164
|
-
const parts = new Intl.DateTimeFormat("en-US", {
|
|
165
|
-
timeZone,
|
|
166
|
-
weekday: "long",
|
|
167
|
-
year: "numeric",
|
|
168
|
-
month: "long",
|
|
169
|
-
day: "numeric",
|
|
170
|
-
hour: use24Hour ? "2-digit" : "numeric",
|
|
171
|
-
minute: "2-digit",
|
|
172
|
-
hourCycle: use24Hour ? "h23" : "h12"
|
|
173
|
-
}).formatToParts(date);
|
|
174
|
-
const map = {};
|
|
175
|
-
for (const part of parts) if (part.type !== "literal") map[part.type] = part.value;
|
|
176
|
-
if (!map.weekday || !map.year || !map.month || !map.day || !map.hour || !map.minute) return;
|
|
177
|
-
const dayNum = parseInt(map.day, 10);
|
|
178
|
-
const suffix = ordinalSuffix(dayNum);
|
|
179
|
-
const timePart = use24Hour ? `${map.hour}:${map.minute}` : `${map.hour}:${map.minute} ${map.dayPeriod ?? ""}`.trim();
|
|
180
|
-
return `${map.weekday}, ${map.month} ${dayNum}${suffix}, ${map.year} — ${timePart}`;
|
|
181
|
-
} catch {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
//#endregion
|
|
187
|
-
export { createInternalHookEvent as a, triggerInternalHook as c, withNormalizedTimestamp as i, resolveUserTimeFormat as n, isAgentBootstrapEvent as o, resolveUserTimezone as r, registerInternalHook as s, formatUserTime as t };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import YAML from "yaml";
|
|
2
|
-
|
|
3
|
-
//#region src/markdown/frontmatter.ts
|
|
4
|
-
function stripQuotes(value) {
|
|
5
|
-
if (value.startsWith("\"") && value.endsWith("\"") || value.startsWith("'") && value.endsWith("'")) return value.slice(1, -1);
|
|
6
|
-
return value;
|
|
7
|
-
}
|
|
8
|
-
function coerceFrontmatterValue(value) {
|
|
9
|
-
if (value === null || value === void 0) return;
|
|
10
|
-
if (typeof value === "string") return value.trim();
|
|
11
|
-
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
12
|
-
if (typeof value === "object") try {
|
|
13
|
-
return JSON.stringify(value);
|
|
14
|
-
} catch {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function parseYamlFrontmatter(block) {
|
|
19
|
-
try {
|
|
20
|
-
const parsed = YAML.parse(block);
|
|
21
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return null;
|
|
22
|
-
const result = {};
|
|
23
|
-
for (const [rawKey, value] of Object.entries(parsed)) {
|
|
24
|
-
const key = rawKey.trim();
|
|
25
|
-
if (!key) continue;
|
|
26
|
-
const coerced = coerceFrontmatterValue(value);
|
|
27
|
-
if (coerced === void 0) continue;
|
|
28
|
-
result[key] = coerced;
|
|
29
|
-
}
|
|
30
|
-
return result;
|
|
31
|
-
} catch {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function extractMultiLineValue(lines, startIndex) {
|
|
36
|
-
const match = lines[startIndex].match(/^([\w-]+):\s*(.*)$/);
|
|
37
|
-
if (!match) return {
|
|
38
|
-
value: "",
|
|
39
|
-
linesConsumed: 1
|
|
40
|
-
};
|
|
41
|
-
const inlineValue = match[2].trim();
|
|
42
|
-
if (inlineValue) return {
|
|
43
|
-
value: inlineValue,
|
|
44
|
-
linesConsumed: 1
|
|
45
|
-
};
|
|
46
|
-
const valueLines = [];
|
|
47
|
-
let i = startIndex + 1;
|
|
48
|
-
while (i < lines.length) {
|
|
49
|
-
const line = lines[i];
|
|
50
|
-
if (line.length > 0 && !line.startsWith(" ") && !line.startsWith(" ")) break;
|
|
51
|
-
valueLines.push(line);
|
|
52
|
-
i++;
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
value: valueLines.join("\n").trim(),
|
|
56
|
-
linesConsumed: i - startIndex
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function parseLineFrontmatter(block) {
|
|
60
|
-
const frontmatter = {};
|
|
61
|
-
const lines = block.split("\n");
|
|
62
|
-
let i = 0;
|
|
63
|
-
while (i < lines.length) {
|
|
64
|
-
const match = lines[i].match(/^([\w-]+):\s*(.*)$/);
|
|
65
|
-
if (!match) {
|
|
66
|
-
i++;
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
const key = match[1];
|
|
70
|
-
const inlineValue = match[2].trim();
|
|
71
|
-
if (!key) {
|
|
72
|
-
i++;
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (!inlineValue && i + 1 < lines.length) {
|
|
76
|
-
const nextLine = lines[i + 1];
|
|
77
|
-
if (nextLine.startsWith(" ") || nextLine.startsWith(" ")) {
|
|
78
|
-
const { value, linesConsumed } = extractMultiLineValue(lines, i);
|
|
79
|
-
if (value) frontmatter[key] = value;
|
|
80
|
-
i += linesConsumed;
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const value = stripQuotes(inlineValue);
|
|
85
|
-
if (value) frontmatter[key] = value;
|
|
86
|
-
i++;
|
|
87
|
-
}
|
|
88
|
-
return frontmatter;
|
|
89
|
-
}
|
|
90
|
-
function parseFrontmatterBlock(content) {
|
|
91
|
-
const normalized = content.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
92
|
-
if (!normalized.startsWith("---")) return {};
|
|
93
|
-
const endIndex = normalized.indexOf("\n---", 3);
|
|
94
|
-
if (endIndex === -1) return {};
|
|
95
|
-
const block = normalized.slice(4, endIndex);
|
|
96
|
-
const lineParsed = parseLineFrontmatter(block);
|
|
97
|
-
const yamlParsed = parseYamlFrontmatter(block);
|
|
98
|
-
if (yamlParsed === null) return lineParsed;
|
|
99
|
-
const merged = { ...yamlParsed };
|
|
100
|
-
for (const [key, value] of Object.entries(lineParsed)) if (value.startsWith("{") || value.startsWith("[")) merged[key] = value;
|
|
101
|
-
return merged;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
//#endregion
|
|
105
|
-
export { parseFrontmatterBlock as t };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//#region src/compat/legacy-names.ts
|
|
2
|
-
const PROJECT_NAME = "openclaw";
|
|
3
|
-
const LEGACY_PROJECT_NAMES = [];
|
|
4
|
-
const MANIFEST_KEY = PROJECT_NAME;
|
|
5
|
-
const LEGACY_MANIFEST_KEYS = LEGACY_PROJECT_NAMES;
|
|
6
|
-
|
|
7
|
-
//#endregion
|
|
8
|
-
//#region src/cli/parse-duration.ts
|
|
9
|
-
function parseDurationMs(raw, opts) {
|
|
10
|
-
const trimmed = String(raw ?? "").trim().toLowerCase();
|
|
11
|
-
if (!trimmed) throw new Error("invalid duration (empty)");
|
|
12
|
-
const m = /^(\d+(?:\.\d+)?)(ms|s|m|h|d)?$/.exec(trimmed);
|
|
13
|
-
if (!m) throw new Error(`invalid duration: ${raw}`);
|
|
14
|
-
const value = Number(m[1]);
|
|
15
|
-
if (!Number.isFinite(value) || value < 0) throw new Error(`invalid duration: ${raw}`);
|
|
16
|
-
const unit = m[2] ?? opts?.defaultUnit ?? "ms";
|
|
17
|
-
const multiplier = unit === "ms" ? 1 : unit === "s" ? 1e3 : unit === "m" ? 6e4 : unit === "h" ? 36e5 : 864e5;
|
|
18
|
-
const ms = Math.round(value * multiplier);
|
|
19
|
-
if (!Number.isFinite(ms)) throw new Error(`invalid duration: ${raw}`);
|
|
20
|
-
return ms;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
export { LEGACY_MANIFEST_KEYS as n, MANIFEST_KEY as r, parseDurationMs as t };
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
//#region src/sessions/session-key-utils.ts
|
|
2
|
-
function parseAgentSessionKey(sessionKey) {
|
|
3
|
-
const raw = (sessionKey ?? "").trim();
|
|
4
|
-
if (!raw) return null;
|
|
5
|
-
const parts = raw.split(":").filter(Boolean);
|
|
6
|
-
if (parts.length < 3) return null;
|
|
7
|
-
if (parts[0] !== "agent") return null;
|
|
8
|
-
const agentId = parts[1]?.trim();
|
|
9
|
-
const rest = parts.slice(2).join(":");
|
|
10
|
-
if (!agentId || !rest) return null;
|
|
11
|
-
return {
|
|
12
|
-
agentId,
|
|
13
|
-
rest
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function isSubagentSessionKey(sessionKey) {
|
|
17
|
-
const raw = (sessionKey ?? "").trim();
|
|
18
|
-
if (!raw) return false;
|
|
19
|
-
if (raw.toLowerCase().startsWith("subagent:")) return true;
|
|
20
|
-
const parsed = parseAgentSessionKey(raw);
|
|
21
|
-
return Boolean((parsed?.rest ?? "").toLowerCase().startsWith("subagent:"));
|
|
22
|
-
}
|
|
23
|
-
function isAcpSessionKey(sessionKey) {
|
|
24
|
-
const raw = (sessionKey ?? "").trim();
|
|
25
|
-
if (!raw) return false;
|
|
26
|
-
if (raw.toLowerCase().startsWith("acp:")) return true;
|
|
27
|
-
const parsed = parseAgentSessionKey(raw);
|
|
28
|
-
return Boolean((parsed?.rest ?? "").toLowerCase().startsWith("acp:"));
|
|
29
|
-
}
|
|
30
|
-
const THREAD_SESSION_MARKERS = [":thread:", ":topic:"];
|
|
31
|
-
function resolveThreadParentSessionKey(sessionKey) {
|
|
32
|
-
const raw = (sessionKey ?? "").trim();
|
|
33
|
-
if (!raw) return null;
|
|
34
|
-
const normalized = raw.toLowerCase();
|
|
35
|
-
let idx = -1;
|
|
36
|
-
for (const marker of THREAD_SESSION_MARKERS) {
|
|
37
|
-
const candidate = normalized.lastIndexOf(marker);
|
|
38
|
-
if (candidate > idx) idx = candidate;
|
|
39
|
-
}
|
|
40
|
-
if (idx <= 0) return null;
|
|
41
|
-
const parent = raw.slice(0, idx).trim();
|
|
42
|
-
return parent ? parent : null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
//#endregion
|
|
46
|
-
//#region src/routing/session-key.ts
|
|
47
|
-
const DEFAULT_AGENT_ID = "main";
|
|
48
|
-
const DEFAULT_MAIN_KEY = "main";
|
|
49
|
-
const DEFAULT_ACCOUNT_ID = "default";
|
|
50
|
-
const VALID_ID_RE = /^[a-z0-9][a-z0-9_-]{0,63}$/i;
|
|
51
|
-
const INVALID_CHARS_RE = /[^a-z0-9_-]+/g;
|
|
52
|
-
const LEADING_DASH_RE = /^-+/;
|
|
53
|
-
const TRAILING_DASH_RE = /-+$/;
|
|
54
|
-
function normalizeToken(value) {
|
|
55
|
-
return (value ?? "").trim().toLowerCase();
|
|
56
|
-
}
|
|
57
|
-
function normalizeMainKey(value) {
|
|
58
|
-
const trimmed = (value ?? "").trim();
|
|
59
|
-
return trimmed ? trimmed.toLowerCase() : DEFAULT_MAIN_KEY;
|
|
60
|
-
}
|
|
61
|
-
function resolveAgentIdFromSessionKey(sessionKey) {
|
|
62
|
-
return normalizeAgentId(parseAgentSessionKey(sessionKey)?.agentId ?? DEFAULT_AGENT_ID);
|
|
63
|
-
}
|
|
64
|
-
function classifySessionKeyShape(sessionKey) {
|
|
65
|
-
const raw = (sessionKey ?? "").trim();
|
|
66
|
-
if (!raw) return "missing";
|
|
67
|
-
if (parseAgentSessionKey(raw)) return "agent";
|
|
68
|
-
return raw.toLowerCase().startsWith("agent:") ? "malformed_agent" : "legacy_or_alias";
|
|
69
|
-
}
|
|
70
|
-
function normalizeAgentId(value) {
|
|
71
|
-
const trimmed = (value ?? "").trim();
|
|
72
|
-
if (!trimmed) return DEFAULT_AGENT_ID;
|
|
73
|
-
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
74
|
-
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_AGENT_ID;
|
|
75
|
-
}
|
|
76
|
-
function sanitizeAgentId(value) {
|
|
77
|
-
const trimmed = (value ?? "").trim();
|
|
78
|
-
if (!trimmed) return DEFAULT_AGENT_ID;
|
|
79
|
-
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
80
|
-
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_AGENT_ID;
|
|
81
|
-
}
|
|
82
|
-
function normalizeAccountId(value) {
|
|
83
|
-
const trimmed = (value ?? "").trim();
|
|
84
|
-
if (!trimmed) return DEFAULT_ACCOUNT_ID;
|
|
85
|
-
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
|
|
86
|
-
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_ACCOUNT_ID;
|
|
87
|
-
}
|
|
88
|
-
function buildAgentMainSessionKey(params) {
|
|
89
|
-
return `agent:${normalizeAgentId(params.agentId)}:${normalizeMainKey(params.mainKey)}`;
|
|
90
|
-
}
|
|
91
|
-
function buildAgentPeerSessionKey(params) {
|
|
92
|
-
const peerKind = params.peerKind ?? "direct";
|
|
93
|
-
if (peerKind === "direct") {
|
|
94
|
-
const dmScope = params.dmScope ?? "main";
|
|
95
|
-
let peerId = (params.peerId ?? "").trim();
|
|
96
|
-
const linkedPeerId = dmScope === "main" ? null : resolveLinkedPeerId({
|
|
97
|
-
identityLinks: params.identityLinks,
|
|
98
|
-
channel: params.channel,
|
|
99
|
-
peerId
|
|
100
|
-
});
|
|
101
|
-
if (linkedPeerId) peerId = linkedPeerId;
|
|
102
|
-
peerId = peerId.toLowerCase();
|
|
103
|
-
if (dmScope === "per-account-channel-peer" && peerId) {
|
|
104
|
-
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
105
|
-
const accountId = normalizeAccountId(params.accountId);
|
|
106
|
-
return `agent:${normalizeAgentId(params.agentId)}:${channel}:${accountId}:direct:${peerId}`;
|
|
107
|
-
}
|
|
108
|
-
if (dmScope === "per-channel-peer" && peerId) {
|
|
109
|
-
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
110
|
-
return `agent:${normalizeAgentId(params.agentId)}:${channel}:direct:${peerId}`;
|
|
111
|
-
}
|
|
112
|
-
if (dmScope === "per-peer" && peerId) return `agent:${normalizeAgentId(params.agentId)}:direct:${peerId}`;
|
|
113
|
-
return buildAgentMainSessionKey({
|
|
114
|
-
agentId: params.agentId,
|
|
115
|
-
mainKey: params.mainKey
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
const channel = (params.channel ?? "").trim().toLowerCase() || "unknown";
|
|
119
|
-
const peerId = ((params.peerId ?? "").trim() || "unknown").toLowerCase();
|
|
120
|
-
return `agent:${normalizeAgentId(params.agentId)}:${channel}:${peerKind}:${peerId}`;
|
|
121
|
-
}
|
|
122
|
-
function resolveLinkedPeerId(params) {
|
|
123
|
-
const identityLinks = params.identityLinks;
|
|
124
|
-
if (!identityLinks) return null;
|
|
125
|
-
const peerId = params.peerId.trim();
|
|
126
|
-
if (!peerId) return null;
|
|
127
|
-
const candidates = /* @__PURE__ */ new Set();
|
|
128
|
-
const rawCandidate = normalizeToken(peerId);
|
|
129
|
-
if (rawCandidate) candidates.add(rawCandidate);
|
|
130
|
-
const channel = normalizeToken(params.channel);
|
|
131
|
-
if (channel) {
|
|
132
|
-
const scopedCandidate = normalizeToken(`${channel}:${peerId}`);
|
|
133
|
-
if (scopedCandidate) candidates.add(scopedCandidate);
|
|
134
|
-
}
|
|
135
|
-
if (candidates.size === 0) return null;
|
|
136
|
-
for (const [canonical, ids] of Object.entries(identityLinks)) {
|
|
137
|
-
const canonicalName = canonical.trim();
|
|
138
|
-
if (!canonicalName) continue;
|
|
139
|
-
if (!Array.isArray(ids)) continue;
|
|
140
|
-
for (const id of ids) {
|
|
141
|
-
const normalized = normalizeToken(id);
|
|
142
|
-
if (normalized && candidates.has(normalized)) return canonicalName;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
function buildGroupHistoryKey(params) {
|
|
148
|
-
const channel = normalizeToken(params.channel) || "unknown";
|
|
149
|
-
const accountId = normalizeAccountId(params.accountId);
|
|
150
|
-
const peerId = params.peerId.trim().toLowerCase() || "unknown";
|
|
151
|
-
return `${channel}:${accountId}:${params.peerKind}:${peerId}`;
|
|
152
|
-
}
|
|
153
|
-
function resolveThreadSessionKeys(params) {
|
|
154
|
-
const threadId = (params.threadId ?? "").trim();
|
|
155
|
-
if (!threadId) return {
|
|
156
|
-
sessionKey: params.baseSessionKey,
|
|
157
|
-
parentSessionKey: void 0
|
|
158
|
-
};
|
|
159
|
-
const normalizedThreadId = threadId.toLowerCase();
|
|
160
|
-
return {
|
|
161
|
-
sessionKey: params.useSuffix ?? true ? `${params.baseSessionKey}:thread:${normalizedThreadId}` : params.baseSessionKey,
|
|
162
|
-
parentSessionKey: params.parentSessionKey
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
//#endregion
|
|
167
|
-
export { resolveThreadParentSessionKey as _, buildAgentPeerSessionKey as a, normalizeAccountId as c, resolveAgentIdFromSessionKey as d, resolveThreadSessionKeys as f, parseAgentSessionKey as g, isSubagentSessionKey as h, buildAgentMainSessionKey as i, normalizeAgentId as l, isAcpSessionKey as m, DEFAULT_AGENT_ID as n, buildGroupHistoryKey as o, sanitizeAgentId as p, DEFAULT_MAIN_KEY as r, classifySessionKeyShape as s, DEFAULT_ACCOUNT_ID as t, normalizeMainKey as u };
|