@qqbrowser/openclaw-qbot 0.0.139 โ 0.0.142
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/dist/account-lookup-CW-_CL7y.js +1 -0
- package/dist/acp-cli-BaslDuk6.js +1 -0
- package/dist/acp-cli-f5-uI85a.js +1 -0
- package/dist/active-listener-Cce5tcPa.js +1 -0
- package/dist/active-listener-D8VOdVx3.js +1 -0
- package/dist/active-listener-DeKRt_UV.js +1 -0
- package/dist/active-listener-Dle9QX40.js +1 -0
- package/dist/agent-scope-DAWJwFfl.js +1 -0
- package/dist/agent-scope-DXZc3eNT.js +1 -0
- package/dist/agents-Bpp_F5In.js +1 -0
- package/dist/agents.config-B6LRG9eP.js +1 -0
- package/dist/agents.config-DfIJAGcd.js +1 -0
- package/dist/allow-from-B6dI7oz8.js +1 -0
- package/dist/allow-from-DEeVIPKS.js +1 -0
- package/dist/api-BeG0ObSq.js +1 -0
- package/dist/api-Dx8x1KTs.js +1 -0
- package/dist/api-key-rotation-BRt-vnRV.js +1 -0
- package/dist/api-key-rotation-CCH1wYVU.js +1 -0
- package/dist/api-key-rotation-D0QU-kQ9.js +1 -0
- package/dist/api-key-rotation-Di6QgXx7.js +1 -0
- package/dist/arg-split-BOqSMBuf.js +1 -0
- package/dist/arg-split-DE5RqDHq.js +1 -0
- package/dist/audio-preflight-B5o7P9qi.js +1 -0
- package/dist/audio-preflight-CxD7VCHW.js +1 -0
- package/dist/audio-preflight-DKSCBKRb.js +1 -0
- package/dist/audio-preflight-Dpk8-Bmk.js +1 -0
- package/dist/audio-transcription-runner-Bd1OZC6K.js +1 -0
- package/dist/audio-transcription-runner-D4Bp6MM7.js +1 -0
- package/dist/audio-transcription-runner-DPwmBYQj.js +1 -0
- package/dist/audio-transcription-runner-DSr6OIz1.js +1 -0
- package/dist/audit-C7RP7G_g.js +1 -0
- package/dist/audit-jkdcAUep.js +1 -0
- package/dist/audit-membership-runtime-BpRsMj5-.js +1 -0
- package/dist/audit-membership-runtime-BsfLZNBj.js +1 -0
- package/dist/audit-membership-runtime-DRHirRmx.js +1 -0
- package/dist/audit-membership-runtime-g0dEWJTp.js +1 -0
- package/dist/audit-membership-runtime-kdyToskD.js +1 -0
- package/dist/auth-choice-B7LSoXZ_.js +1 -0
- package/dist/auth-choice-CxMH4c-u.js +1 -0
- package/dist/auth-choice-DvTApGhx.js +1 -0
- package/dist/auth-choice-EQdNd7jO.js +1 -0
- package/dist/auth-choice-options-B3WQyS7I.js +1 -0
- package/dist/auth-choice-options-Dw14noox.js +1 -0
- package/dist/auth-choice-prompt-uegl56cf.js +1 -0
- package/dist/auth-choice-prompt-xYj13czb.js +1 -0
- package/dist/auth-choice.apply-helpers-B7S-PcH_.js +1 -0
- package/dist/auth-choice.apply-helpers-gaL-oSft.js +1 -0
- package/dist/auth-profiles-T8DuH3ax.js +1 -0
- package/dist/auth-token-9OTF1FmL.js +1 -0
- package/dist/auth-token-kGltuM6S.js +1 -0
- package/dist/banner-9u45RL26.js +1 -0
- package/dist/bonjour-discovery-CFZXPega.js +1 -0
- package/dist/bonjour-discovery-CjivQOxi.js +1 -0
- package/dist/boolean-Ch3DfXPy.js +1 -0
- package/dist/boolean-D15s2V33.js +1 -0
- package/dist/boolean-DypnRoRK.js +1 -0
- package/dist/brew-COcDl8CB.js +1 -0
- package/dist/brew-DDPm_HfE.js +1 -0
- package/dist/browser-cli-DQHE2iPY.js +1 -0
- package/dist/browser-cli-Dt0ds-an.js +1 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -0
- package/dist/bundled/bootstrap-extra-files/handler.js +1 -0
- package/dist/bundled/command-logger/handler.js +1 -0
- package/dist/bundled/session-memory/handler.js +1 -0
- package/dist/call-B8Fb4_oh.js +1 -0
- package/dist/call-CqoMqP5b.js +1 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +1705 -2
- package/dist/channel-account-context-BMPAMZEv.js +1 -0
- package/dist/channel-account-context-DAcarnqW.js +1 -0
- package/dist/channel-activity-B04WbrrK.js +1 -0
- package/dist/channel-activity-BBrgoad1.js +1 -0
- package/dist/channel-activity-CgbOWaay.js +1 -0
- package/dist/channel-activity-YIMhOAUo.js +1 -0
- package/dist/channel-activity-YjYNzCpJ.js +1 -0
- package/dist/channel-options-CEIzjOno.js +1 -0
- package/dist/channel-options-D2syI791.js +1 -0
- package/dist/channel-selection-BBeE1TmB.js +1 -0
- package/dist/channel-selection-CbNtbAEf.js +1 -0
- package/dist/channel-web-BrElpZAc.js +1 -0
- package/dist/channel-web-CxHbET4B.js +1 -0
- package/dist/channels/plugins/actions/discord.js +1 -0
- package/dist/channels/plugins/actions/signal.js +1 -0
- package/dist/channels/plugins/actions/telegram.js +1 -0
- package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -0
- package/dist/channels-cli-BmAJuuRs.js +1 -0
- package/dist/channels-cli-Dgosczr6.js +1 -0
- package/dist/channels-status-issues-8eFrGKyf.js +1 -0
- package/dist/channels-status-issues-PRgOT90w.js +1 -0
- package/dist/chat-envelope-Bznn2SoS.js +1 -0
- package/dist/chat-envelope-HVpKusFc.js +1 -0
- package/dist/clack-prompter-DBPdGdqp.js +1 -0
- package/dist/clack-prompter-Dq0aY6iM.js +1 -0
- package/dist/clawbot-cli-CgS7TkEx.js +1 -0
- package/dist/clawbot-cli-DZ2K0OTk.js +1 -0
- package/dist/cleanup-utils-BWm70DoD.js +1 -0
- package/dist/cleanup-utils-D-RhEX6F.js +1 -0
- package/dist/cli-BcnoCo4z.js +1 -0
- package/dist/cli-D8T2tphD.js +1 -0
- package/dist/cli-utils-BY7dLMFy.js +1 -0
- package/dist/cli-utils-BleB1eys.js +1 -0
- package/dist/clipboard-Bk8cviBt.js +1 -0
- package/dist/clipboard-CKT_VIkG.js +1 -0
- package/dist/cmd-argv-BBT5l8AV.js +1 -0
- package/dist/cmd-argv-Bh-KpaZ0.js +1 -0
- package/dist/command-format-BbDT1tlm.js +1 -0
- package/dist/command-format-CLxIPuLR.js +1 -0
- package/dist/command-options-BpOUDl2S.js +1 -0
- package/dist/command-options-Bq5nQxz6.js +1 -0
- package/dist/command-poll-backoff-BZLHYB2k.js +1 -0
- package/dist/command-poll-backoff-Cww_r-24.js +1 -0
- package/dist/command-poll-backoff-Df6cOQrX.js +1 -0
- package/dist/command-poll-backoff-endAPdwn.js +1 -0
- package/dist/command-registry-CfuXCRwV.js +1 -0
- package/dist/command-secret-targets-BVN3kiT9.js +1 -0
- package/dist/command-secret-targets-BlN-J_fA.js +1 -0
- package/dist/commands-CGpM84iR.js +1 -0
- package/dist/commands-Dy7duWlt.js +1 -0
- package/dist/commands-registry-B1x54ukc.js +1 -0
- package/dist/commands-registry-Cpl4QnG4.js +1 -0
- package/dist/commands-registry-D40KqYOm.js +1 -0
- package/dist/commands-registry-SeddSmFK.js +1 -0
- package/dist/compact-Dg66DXx_.js +1 -0
- package/dist/completion-cli-BZi4nuQb.js +1 -0
- package/dist/completion-cli-C40TWdsv.js +1 -0
- package/dist/config-BqW5S1xL.js +1 -0
- package/dist/config-D12ZLKqh.js +1 -0
- package/dist/config-cli-1ojSLwAj.js +1 -0
- package/dist/config-cli-CBte2b1h.js +1 -0
- package/dist/config-guard-BTNXbWoO.js +1 -0
- package/dist/config-guard-sYYx9zEF.js +1 -0
- package/dist/config-validation-C1La_IZU.js +1 -0
- package/dist/config-validation-DviYxW8Y.js +1 -0
- package/dist/configure-DJrNDEpR.js +1 -0
- package/dist/configure-kod4tmZa.js +1 -0
- package/dist/connection-auth-B_Uk6Vk8.js +1 -0
- package/dist/connection-auth-C8iru0UB.js +1 -0
- package/dist/context-window-guard-7crlatf9.js +1 -0
- package/dist/context-window-guard-CPChk363.js +1 -0
- package/dist/control-ui-assets-BIa0GGDg.js +1 -0
- package/dist/control-ui-assets-CTHGGgaX.js +1 -0
- package/dist/cron-cli-Dha16Lo-.js +1 -0
- package/dist/cron-cli-QHS2pKZ_.js +1 -0
- package/dist/daemon-cli-BuXTzSnU.js +1 -0
- package/dist/daemon-cli-DOTKuS7d.js +1 -0
- package/dist/daemon-cli.js +1 -0
- package/dist/daemon-install-C30rBssi.js +1 -0
- package/dist/daemon-install-HrqlOCrc.js +1 -0
- package/dist/daemon-install-plan.shared-CfA37Ut_.js +1 -0
- package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -0
- package/dist/daemon-runtime-DHiDbRuC.js +1 -0
- package/dist/daemon-runtime-VcpeBRJV.js +1 -0
- package/dist/dangerous-name-matching-BOmvAibz.js +1 -0
- package/dist/dangerous-name-matching-DtllRqBD.js +1 -0
- package/dist/dangerous-tools-CFRYQJ6V.js +1 -0
- package/dist/dangerous-tools-oYCu5wfC.js +1 -0
- package/dist/deliver-56mQkDw3.js +1 -0
- package/dist/deliver-BFQ4Zx9z.js +1 -0
- package/dist/deliver-BHuhHfkH.js +1 -0
- package/dist/deliver-ClBkV2eD.js +1 -0
- package/dist/delivery-queue-CKbauSFq.js +1 -0
- package/dist/delivery-queue-nkPJu0fY.js +1 -0
- package/dist/device-pairing-CTFpaTrD.js +1 -0
- package/dist/device-pairing-QTK0dod3.js +1 -0
- package/dist/devices-cli-Ckxd0k0I.js +1 -0
- package/dist/devices-cli-Db36mBHq.js +1 -0
- package/dist/diagnostic-BrE4lMIf.js +1 -0
- package/dist/diagnostic-CDxNevIQ.js +1 -0
- package/dist/diagnostic-DOzHPnht.js +1 -0
- package/dist/diagnostic-DQq4Bwrs.js +1 -0
- package/dist/diagnostics-BgbeL9KE.js +1 -0
- package/dist/diagnostics-Cdctg9K_.js +1 -0
- package/dist/directory-cli-DDTaUkjW.js +1 -0
- package/dist/directory-cli-_gTFSHMW.js +1 -0
- package/dist/dns-cli--4PwtR2Y.js +1 -0
- package/dist/dns-cli-C4DwKquN.js +1 -0
- package/dist/docs-cli-Cdw9Iz9a.js +1 -0
- package/dist/docs-cli-ClD2UyX1.js +1 -0
- package/dist/doctor-completion-BJ6steqx.js +1 -0
- package/dist/doctor-completion-DMJhfrtC.js +1 -0
- package/dist/doctor-config-flow-D4F3mz4h.js +1 -0
- package/dist/doctor-config-flow-DnOyVZhQ.js +1 -0
- package/dist/enable-BhD84GhD.js +1 -0
- package/dist/enable-Ccf9wSM8.js +1 -0
- package/dist/entry-status-CCwwKO43.js +1 -0
- package/dist/entry-status-CoXkbJcX.js +1 -0
- package/dist/entry.js +1 -0
- package/dist/env-D7wNuBx1.js +1 -0
- package/dist/env-overrides-DHtB4kK3.js +1 -0
- package/dist/env-overrides-DXJbFrwI.js +1 -0
- package/dist/errors-6SQWM9dj.js +1 -0
- package/dist/errors-Bunti32V.js +1 -0
- package/dist/exec-B3eleY5O.js +1 -0
- package/dist/exec-DHqLtFYt.js +1 -0
- package/dist/exec-approvals-BXO9Cezj.js +1 -0
- package/dist/exec-approvals-BpBNEy6i.js +1 -0
- package/dist/exec-approvals-allowlist-CE3nYh0K.js +1 -0
- package/dist/exec-approvals-allowlist-D8mN7nxV.js +1 -0
- package/dist/exec-approvals-cli-CUcuN63y.js +1 -0
- package/dist/exec-approvals-cli-CxUGD08t.js +1 -0
- package/dist/exec-safe-bin-runtime-policy-Dt0GchLp.js +1 -0
- package/dist/exec-safe-bin-runtime-policy-dcCS_Adf.js +1 -0
- package/dist/fetch-B9tORjG8.js +1 -0
- package/dist/fetch-BJT3BrkJ.js +1 -0
- package/dist/fetch-B_wRifvZ.js +1 -0
- package/dist/fetch-Bn0mWg6a.js +1 -0
- package/dist/fetch-CQaNr5J1.js +1 -0
- package/dist/fetch-Ce-scEU-.js +1 -0
- package/dist/fetch-D0rZDHKO.js +1 -0
- package/dist/fetch-DHo17YmK.js +1 -0
- package/dist/fetch-Dh-apy46.js +1 -0
- package/dist/fetch-Dikjvc5M.js +1 -0
- package/dist/fetch-DsjPfQlp.js +1 -0
- package/dist/fetch-_g8lZ8K8.js +1 -0
- package/dist/fetch-guard-BrTtJw7h.js +1 -0
- package/dist/fetch-guard-D10s0raB.js +1 -0
- package/dist/fetch-guard-DPdY0NXR.js +1 -0
- package/dist/fetch-guard-cu7DGSRF.js +1 -0
- package/dist/fetch-hy0JKSsm.js +1 -0
- package/dist/fetch-timeout-CdYxWG9w.js +1 -0
- package/dist/fetch-timeout-Cj8_oAls.js +1 -0
- package/dist/fetch-timeout-DoOI_izT.js +1 -0
- package/dist/fetch-timeout-u8g99Ax0.js +1 -0
- package/dist/format-Bn1bwJKX.js +1 -0
- package/dist/format-Ce7I7s-k.js +1 -0
- package/dist/format-duration-C8AzNqKh.js +1 -0
- package/dist/format-duration-D5AMtmHa.js +1 -0
- package/dist/format-relative-B9pSIdGe.js +1 -0
- package/dist/format-relative-DkMjYy7z.js +1 -0
- package/dist/frontmatter-BkZkwkVO.js +1 -0
- package/dist/frontmatter-C7mzDNxd.js +1 -0
- package/dist/frontmatter-CzpfPBFl.js +1 -0
- package/dist/gateway-cli-CKu0FA7D.js +1 -0
- package/dist/gateway-cli-C_s9eMlC.js +1 -0
- package/dist/gateway-install-token-BCnuZeh1.js +1 -0
- package/dist/gateway-install-token-DiDvDPJQ.js +1 -0
- package/dist/gateway-rpc-iFvDyHYd.js +1 -0
- package/dist/gateway-rpc-tEEvY0kH.js +1 -0
- package/dist/github-copilot-token-C79yeDKS.js +1 -0
- package/dist/github-copilot-token-DGYAlOmV.js +1 -0
- package/dist/github-copilot-token-DePP-lIf.js +1 -0
- package/dist/github-copilot-token-wm6mbypz.js +1 -0
- package/dist/gmail-setup-utils-CYOH3zzx.js +1 -0
- package/dist/gmail-setup-utils-S-MyEGuj.js +1 -0
- package/dist/group-access-BHKVOhrj.js +1 -0
- package/dist/group-access-D2DOYMfr.js +1 -0
- package/dist/health-BgOggK9k.js +1 -0
- package/dist/health-PaRHFItm.js +1 -0
- package/dist/health-format-B1nj3Wfn.js +1 -0
- package/dist/health-format-VBr6LEpt.js +1 -0
- package/dist/heartbeat-visibility-BQ_esv2m.js +1 -0
- package/dist/heartbeat-visibility-q74UdY8O.js +1 -0
- package/dist/help-format-B4aEI7V9.js +1 -0
- package/dist/help-format-BRbF_INg.js +1 -0
- package/dist/helpers-COz1ghcB.js +1 -0
- package/dist/helpers-Cp8gcO6u.js +1 -0
- package/dist/hooks-cli-BzyzTNBx.js +1 -0
- package/dist/hooks-cli-CsBrScq0.js +1 -0
- package/dist/hooks-status-BHt-Xvh4.js +1 -0
- package/dist/hooks-status-CRJ4J0ZW.js +1 -0
- package/dist/image-BkWwI54C.js +1 -0
- package/dist/image-CcVQg-YN.js +1 -0
- package/dist/image-Cm1RUBqD.js +1 -0
- package/dist/image-DsoO5VP5.js +1 -0
- package/dist/index.js +1 -0
- package/dist/inspect-BKV-I1UE.js +1 -0
- package/dist/inspect-z59cgmYc.js +1 -0
- package/dist/install-safe-path-C6kc_8NW.js +1 -0
- package/dist/install-safe-path-iesxijn2.js +1 -0
- package/dist/installs-BNeI_oML.js +1 -0
- package/dist/installs-C1xQLuby.js +1 -0
- package/dist/ipv4-BOuNtoGn.js +1 -0
- package/dist/ipv4-CWdaEiVH.js +1 -0
- package/dist/ir-BF0M2kGp.js +1 -0
- package/dist/ir-D8Hh84ab.js +1 -0
- package/dist/ir-DBWscfBd.js +1 -0
- package/dist/ir-Dk7OQ4bA.js +1 -0
- package/dist/is-main-DG5ueqhF.js +1 -0
- package/dist/issue-format-BT7cQEt3.js +1 -0
- package/dist/issue-format-C_lNzrKa.js +1 -0
- package/dist/kill-tree-B3g7HrAO.js +1 -0
- package/dist/lifecycle-core-D9KNCvxY.js +1 -0
- package/dist/lifecycle-core-LM5UUUB1.js +1 -0
- package/dist/line/accounts.js +1 -0
- package/dist/line/send.js +1 -0
- package/dist/line/template-messages.js +1 -0
- package/dist/links-CBnmRP9D.js +1 -0
- package/dist/links-CySwdMcF.js +1 -0
- package/dist/llm-slug-generator.js +1 -0
- package/dist/load-options-BsOW74dp.js +1 -0
- package/dist/load-options-C7dLuybp.js +1 -0
- package/dist/load-options-DV4j6Aqb.js +1 -0
- package/dist/load-options-Dwt0CeEg.js +1 -0
- package/dist/local-roots-6waH0SZ0.js +1 -0
- package/dist/logger-5W0OocJW.js +1 -0
- package/dist/logger-Bl8URnrW.js +1 -0
- package/dist/logger-DwWqfo66.js +1 -0
- package/dist/logger-kQAOe3qp.js +1 -0
- package/dist/logging-Dqe9dxSX.js +1 -0
- package/dist/logging-tYw1NbJd.js +1 -0
- package/dist/login-BOlqRyr0.js +1 -0
- package/dist/login-CkWesqf_.js +1 -0
- package/dist/login-Do_NA1Je.js +1 -0
- package/dist/login-op9S8yqv.js +1 -0
- package/dist/login-qr-B6rxvoTS.js +1 -0
- package/dist/login-qr-BGH9zmhw.js +1 -0
- package/dist/login-qr-CiENvgog.js +1 -0
- package/dist/login-qr-DsV-lxFd.js +1 -0
- package/dist/login-qr-QcDMg23y.js +1 -0
- package/dist/logs-cli-B4eUg_87.js +1 -0
- package/dist/logs-cli-BA3Aso8a.js +1 -0
- package/dist/manager-4Y9fRgdw.js +1 -0
- package/dist/manager-C2YW7Hkq.js +1 -0
- package/dist/manager-Dtd_loL8.js +1 -0
- package/dist/manager-M1GKhLUC.js +1 -0
- package/dist/memory-cli-XaxtBQm1.js +1 -0
- package/dist/memory-cli-jhzJ3as7.js +1 -0
- package/dist/model-catalog-C1kpjR75.js +1 -0
- package/dist/model-catalog-COVzoZD9.js +1 -0
- package/dist/model-param-b-B0r2cPDw.js +1 -0
- package/dist/model-param-b-BqIr5rY5.js +1 -0
- package/dist/model-picker-D3ZSpr0i.js +1 -0
- package/dist/model-picker-bZNuI66U.js +1 -0
- package/dist/model-selection-B5JsBS9D.js +1 -0
- package/dist/model-selection-BlC_rXAN.js +1 -0
- package/dist/model-selection-vfhBuN9O.js +1 -0
- package/dist/models-C_Vg3Cty.js +1 -0
- package/dist/models-cli-CDZliTXq.js +1 -0
- package/dist/models-cli-bGr8jwAb.js +1 -0
- package/dist/models-config-CdMhNxKV.js +1 -0
- package/dist/models-config-_htt7eY5.js +1 -0
- package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -0
- package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -0
- package/dist/node-cli-5lYbDZ70.js +1 -0
- package/dist/node-cli-Br04Qmqo.js +1 -0
- package/dist/node-command-policy-CejeQemH.js +1 -0
- package/dist/node-command-policy-CqXhdnHh.js +1 -0
- package/dist/node-commands-8GBOiktk.js +1 -0
- package/dist/node-commands-DdkziOTx.js +1 -0
- package/dist/node-resolve-B3BJbmQX.js +1 -0
- package/dist/node-resolve-DLZf3-1V.js +1 -0
- package/dist/node-service-BRfrNp8l.js +1 -0
- package/dist/node-service-C0bl7jcZ.js +1 -0
- package/dist/node-shell-DyOfwHrh.js +1 -0
- package/dist/nodes-cli-8By8--bW.js +1 -0
- package/dist/nodes-cli-zq41EwJN.js +1 -0
- package/dist/nodes-screen-DECgxo6A.js +1 -0
- package/dist/note-D4GAwgha.js +1 -0
- package/dist/note-Dp-d_utk.js +1 -0
- package/dist/npm-pack-install-B23L-AtF.js +1 -0
- package/dist/npm-pack-install-C0te3Oap.js +1 -0
- package/dist/npm-resolution-BnJGLwhi.js +1 -0
- package/dist/npm-resolution-DWPloph4.js +1 -0
- package/dist/oauth-env-DAamJ1oz.js +1 -0
- package/dist/oauth-env-DSLBTWb1.js +1 -0
- package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -0
- package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -0
- package/dist/ollama-setup-BMEKWyIE.js +1 -0
- package/dist/ollama-setup-DlwS6Gl-.js +1 -0
- package/dist/onboard-B0BNCQaO.js +1 -0
- package/dist/onboard-CjVhdaiR.js +1 -0
- package/dist/onboard-channels-BMIOddLN.js +1 -0
- package/dist/onboard-channels-CZK_7xMR.js +1 -0
- package/dist/onboard-config-B7U20YRw.js +1 -0
- package/dist/onboard-config-DS9dUv8M.js +1 -0
- package/dist/onboard-custom-B03SlEHB.js +1 -0
- package/dist/onboard-custom-Bl0y8c-g.js +1 -0
- package/dist/onboard-helpers-PGl5bVPE.js +1 -0
- package/dist/onboard-helpers-zwybUJWu.js +1 -0
- package/dist/onboard-hooks-CERzXObm.js +1 -0
- package/dist/onboard-hooks-gQ3sxBNi.js +1 -0
- package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -0
- package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -0
- package/dist/onboard-remote-BOpIRdDu.js +1 -0
- package/dist/onboard-remote-DPU-H_2O.js +1 -0
- package/dist/onboard-search-f2tJD4hg.js +1 -0
- package/dist/onboard-search-fslKKhyg.js +1 -0
- package/dist/onboard-skills-BMAJs6ly.js +1 -0
- package/dist/onboard-skills-CMSQc2Mm.js +1 -0
- package/dist/onboarding-B6ixWwgp.js +1 -0
- package/dist/onboarding-ouEqUuUr.js +1 -0
- package/dist/onboarding.finalize-Bgat5Npc.js +1 -0
- package/dist/onboarding.finalize-DsMVlTcH.js +1 -0
- package/dist/onboarding.gateway-config-BtLDJWJ2.js +1 -0
- package/dist/onboarding.gateway-config-y3pqsL9i.js +1 -0
- package/dist/onboarding.secret-input-BsBgh8Tc.js +1 -0
- package/dist/onboarding.secret-input-kO5OzYC7.js +1 -0
- package/dist/openai-codex-model-default-DuE2_wN7.js +1 -0
- package/dist/openai-codex-model-default-yVfRw-Mm.js +1 -0
- package/dist/openai-model-default-Bl8MHPb6.js +1 -0
- package/dist/openai-model-default-DJObMvLJ.js +1 -0
- package/dist/openclaw-exec-env-BWbOu_YC.js +1 -0
- package/dist/openclaw-root-CnsBf6ZU.js +1 -0
- package/dist/openclaw-root-D_0Q6--h.js +1 -0
- package/dist/outbound-BOSIEiEY.js +1 -0
- package/dist/outbound-BtUeDLjU.js +1 -0
- package/dist/outbound-Bx2Z2aYK.js +1 -0
- package/dist/outbound-Bz8bbrMI.js +1 -0
- package/dist/outbound-attachment-B7wMxwj6.js +1 -0
- package/dist/outbound-attachment-BgAe99RM.js +1 -0
- package/dist/outbound-attachment-Dds8xirj.js +1 -0
- package/dist/outbound-attachment-DqEKghQp.js +1 -0
- package/dist/pairing-cli-Bya9M-I_.js +1 -0
- package/dist/pairing-cli-D2JEhufv.js +1 -0
- package/dist/pairing-labels-BUU_-70B.js +1 -0
- package/dist/pairing-labels-D-kzQEL2.js +1 -0
- package/dist/pairing-store-BH-FTYkn.js +1 -0
- package/dist/pairing-store-Cg2UxreQ.js +1 -0
- package/dist/pairing-token-BjYBuREl.js +1 -0
- package/dist/pairing-token-DAR7V7FJ.js +1 -0
- package/dist/parse-duration-XTjMKl8s.js +1 -0
- package/dist/parse-finite-number-DqzUM-_s.js +1 -0
- package/dist/parse-finite-number-dBmDLLKL.js +1 -0
- package/dist/parse-log-line-CsYLg7Qu.js +1 -0
- package/dist/parse-log-line-NV-cipB_.js +1 -0
- package/dist/parse-port-Bv1Y9Wk5.js +1 -0
- package/dist/parse-port-JVwkxcZ8.js +1 -0
- package/dist/parse-timeout-DWSGfCkQ.js +1 -0
- package/dist/parse-timeout-Dx4QnVzo.js +1 -0
- package/dist/path-alias-guards-kY_ZbWs-.js +1 -0
- package/dist/path-alias-guards-mvyLCPlN.js +1 -0
- package/dist/path-env-BPd1Yd-i.js +1 -0
- package/dist/path-env-emdAQejM.js +1 -0
- package/dist/path-safety-BukYK8Kd.js +1 -0
- package/dist/path-safety-DaaMJFdt.js +1 -0
- package/dist/paths-B4IRk3wi.js +1 -0
- package/dist/paths-BfjJY2VL.js +1 -0
- package/dist/paths-BjD3T_xq.js +1 -0
- package/dist/paths-BpQOWYiT.js +1 -0
- package/dist/paths-CChBdtE8.js +1 -0
- package/dist/paths-CrCoPIVK.js +1 -0
- package/dist/paths-piJASC5k.js +1 -0
- package/dist/paths-yLEk_25I.js +1 -0
- package/dist/pi-embedded-BZSn84Bh.js +1 -0
- package/dist/pi-embedded-Dsz7p3MF.js +1 -0
- package/dist/pi-model-discovery-BbD1YJNx.js +1 -0
- package/dist/pi-model-discovery-CpjYoBQf.js +1 -0
- package/dist/pi-model-discovery-DeQdHV8O.js +1 -0
- package/dist/pi-model-discovery-Dps1PPWz.js +1 -0
- package/dist/pi-tools.before-tool-call.runtime-DseAq0gm.js +1 -0
- package/dist/pi-tools.before-tool-call.runtime-KKGILAuK.js +1 -0
- package/dist/pi-tools.before-tool-call.runtime-Pck2WdIO.js +1 -0
- package/dist/pi-tools.before-tool-call.runtime-ZzMJQ1BP.js +1 -0
- package/dist/pi-tools.policy-D40r0HmD.js +1 -0
- package/dist/plugin-auto-enable-DpVL6-ES.js +1 -0
- package/dist/plugin-auto-enable-NzmNh4oU.js +1 -0
- package/dist/plugin-install-plan-BobX0y9S.js +1 -0
- package/dist/plugin-install-plan-NvDGp0d8.js +1 -0
- package/dist/plugin-registry-C6dY-Et7.js +1 -0
- package/dist/plugin-registry-CIBiHZH1.js +1 -0
- package/dist/plugin-sdk/account-id.cjs +1 -0
- package/dist/plugin-sdk/account-id.js +1 -0
- package/dist/plugin-sdk/acpx.cjs +1 -0
- package/dist/plugin-sdk/acpx.js +1 -0
- package/dist/plugin-sdk/active-listener-BApFQlQn.js +1 -0
- package/dist/plugin-sdk/active-listener-BETopzG5.cjs +1 -0
- package/dist/plugin-sdk/active-listener-BEcmvyxh.cjs +1 -0
- package/dist/plugin-sdk/active-listener-BZPPbsNy.cjs +1 -0
- package/dist/plugin-sdk/active-listener-B_Mxemq7.cjs +1 -0
- package/dist/plugin-sdk/active-listener-BgW_qfd3.js +1 -0
- package/dist/plugin-sdk/active-listener-Coet66pF.cjs +1 -0
- package/dist/plugin-sdk/active-listener-CvML9qVF.js +1 -0
- package/dist/plugin-sdk/active-listener-DuO6KMXJ.js +1 -0
- package/dist/plugin-sdk/active-listener-DymzfmOG.cjs +1 -0
- package/dist/plugin-sdk/active-listener-ILBdBHMv.js +1 -0
- package/dist/plugin-sdk/active-listener-gRRIfN1q.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-Bj1A9Slo.cjs +1 -0
- package/dist/plugin-sdk/api-key-rotation-CFPNzksf.cjs +1 -0
- package/dist/plugin-sdk/api-key-rotation-CXY0AyM1.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-ClIwV8yq.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-D5Nr1xl3.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-DDCwA0KM.cjs +1 -0
- package/dist/plugin-sdk/api-key-rotation-DHMvXm70.cjs +1 -0
- package/dist/plugin-sdk/api-key-rotation-DaFFZfk5.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-DcREl_0x.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-X-5Fb7av.cjs +1 -0
- package/dist/plugin-sdk/api-key-rotation-_VfXYfHS.js +1 -0
- package/dist/plugin-sdk/api-key-rotation-wFUVOOfM.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-B1MP5_bc.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-BETx142T.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-BGRLhCLc.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-BNICfOY5.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-BV3Cav8M.js +1 -0
- package/dist/plugin-sdk/audio-preflight-BmO72Cqr.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-BpE8wFQc.js +1 -0
- package/dist/plugin-sdk/audio-preflight-CTAafaiH.js +1 -0
- package/dist/plugin-sdk/audio-preflight-D82aewIt.js +1 -0
- package/dist/plugin-sdk/audio-preflight-DmzxEaq3.cjs +1 -0
- package/dist/plugin-sdk/audio-preflight-DrSIYRnD.js +1 -0
- package/dist/plugin-sdk/audio-preflight-SZZoA2Ff.js +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-B54MyF1_.js +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-BIqM5H5q.js +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-BLAxZL-U.js +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-BVmaaA2k.js +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-BdY-TMcc.js +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-By3lSLub.cjs +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-CH5CoZrF.cjs +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-CMsp7bhn.cjs +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-ClGibmMi.cjs +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-QfEC19vE.cjs +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-g7L0m-Z5.cjs +1 -0
- package/dist/plugin-sdk/audio-transcription-runner-pVTD93vq.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -0
- package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -0
- package/dist/plugin-sdk/bluebubbles.cjs +1 -0
- package/dist/plugin-sdk/bluebubbles.js +1 -0
- package/dist/plugin-sdk/channel-activity-BGK-Bj2_.cjs +1 -0
- package/dist/plugin-sdk/channel-activity-BRHvpV0C.js +1 -0
- package/dist/plugin-sdk/channel-activity-CKfWFchu.js +1 -0
- package/dist/plugin-sdk/channel-activity-CLUi31fX.cjs +1 -0
- package/dist/plugin-sdk/channel-activity-CVOp-PL4.cjs +1 -0
- package/dist/plugin-sdk/channel-activity-CgXnZ0GC.cjs +1 -0
- package/dist/plugin-sdk/channel-activity-CmYpOPAn.js +1 -0
- package/dist/plugin-sdk/channel-activity-CwaMf9qT.cjs +1 -0
- package/dist/plugin-sdk/channel-activity-D5D5tBWf.cjs +1 -0
- package/dist/plugin-sdk/channel-activity-D7tpmatp.js +1 -0
- package/dist/plugin-sdk/channel-activity-DpxSOlXF.js +1 -0
- package/dist/plugin-sdk/channel-activity-spvDzlTl.js +1 -0
- package/dist/plugin-sdk/channel-web-4ZQVqsrt.js +1 -0
- package/dist/plugin-sdk/channel-web-9zn1Itpg.cjs +1 -0
- package/dist/plugin-sdk/channel-web-BrB00HKH.js +1 -0
- package/dist/plugin-sdk/channel-web-DN5La-Ol.cjs +1 -0
- package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -0
- package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -0
- package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -0
- package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -0
- package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -0
- package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-5lStNoKW.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-C8wnXqNa.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-Cnr6PvIw.js +1 -0
- package/dist/plugin-sdk/commands-registry-CtYCWfuM.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-D2gv242l.js +1 -0
- package/dist/plugin-sdk/commands-registry-DI2vPscP.js +1 -0
- package/dist/plugin-sdk/commands-registry-DcBvmwSU.js +1 -0
- package/dist/plugin-sdk/commands-registry-DkUhCIDk.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-DsMbmie-.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-MCsWR5Vf.js +1 -0
- package/dist/plugin-sdk/commands-registry-SHZVq_qf.cjs +1 -0
- package/dist/plugin-sdk/commands-registry-kRjFifgj.js +1 -0
- package/dist/plugin-sdk/common-B4iFXuoZ.cjs +1 -0
- package/dist/plugin-sdk/common-B6fDMl_i.js +1 -0
- package/dist/plugin-sdk/compat.cjs +1 -0
- package/dist/plugin-sdk/compat.js +1 -0
- package/dist/plugin-sdk/config-ByA2hluR.js +1 -0
- package/dist/plugin-sdk/config-rBz8C_Hi.cjs +1 -0
- package/dist/plugin-sdk/copilot-proxy.cjs +1 -0
- package/dist/plugin-sdk/copilot-proxy.js +1 -0
- package/dist/plugin-sdk/core.cjs +1 -0
- package/dist/plugin-sdk/core.js +1 -0
- package/dist/plugin-sdk/deliver-B0fB4hAV.js +1 -0
- package/dist/plugin-sdk/deliver-BOLmjIJ3.js +1 -0
- package/dist/plugin-sdk/deliver-BrfVwkYz.cjs +1 -0
- package/dist/plugin-sdk/deliver-C-tChWTI.cjs +1 -0
- package/dist/plugin-sdk/deliver-CjQPkWS-.cjs +1 -0
- package/dist/plugin-sdk/deliver-D1P0FNTu.js +1 -0
- package/dist/plugin-sdk/deliver-DCrO9mvv.cjs +1 -0
- package/dist/plugin-sdk/deliver-DQLekoj2.cjs +1 -0
- package/dist/plugin-sdk/deliver-DkfCVM78.js +1 -0
- package/dist/plugin-sdk/deliver-Dkh3lqXR.js +1 -0
- package/dist/plugin-sdk/deliver-DsFtXFyr.cjs +1 -0
- package/dist/plugin-sdk/deliver-vYe_sYOL.js +1 -0
- package/dist/plugin-sdk/device-pair.cjs +1 -0
- package/dist/plugin-sdk/device-pair.js +1 -0
- package/dist/plugin-sdk/diagnostic-8iX73nz_.cjs +1 -0
- package/dist/plugin-sdk/diagnostic-CLUtpxAp.js +1 -0
- package/dist/plugin-sdk/diagnostic-CVS4k9hh.cjs +1 -0
- package/dist/plugin-sdk/diagnostic-CkePwN5F.js +1 -0
- package/dist/plugin-sdk/diagnostic-Cu1PGj0E.cjs +1 -0
- package/dist/plugin-sdk/diagnostic-D0oCfBju.cjs +1 -0
- package/dist/plugin-sdk/diagnostic-D7A9cQYf.cjs +1 -0
- package/dist/plugin-sdk/diagnostic-DGLX0zXU.js +1 -0
- package/dist/plugin-sdk/diagnostic-DXscFT8t.cjs +1 -0
- package/dist/plugin-sdk/diagnostic-Efe4b81B.js +1 -0
- package/dist/plugin-sdk/diagnostic-EqHqw9xo.js +1 -0
- package/dist/plugin-sdk/diagnostic-vsjHZ_fY.js +1 -0
- package/dist/plugin-sdk/diagnostics-otel.cjs +1 -0
- package/dist/plugin-sdk/diagnostics-otel.js +1 -0
- package/dist/plugin-sdk/diffs.cjs +1 -0
- package/dist/plugin-sdk/diffs.js +1 -0
- package/dist/plugin-sdk/discord.cjs +1 -0
- package/dist/plugin-sdk/discord.js +1 -0
- package/dist/plugin-sdk/dispatch-5v3v8zzA.js +1 -0
- package/dist/plugin-sdk/dispatch-B6UbZCpL.cjs +1 -0
- package/dist/plugin-sdk/dispatch-BYlcmJ9u.js +1 -0
- package/dist/plugin-sdk/dispatch-C2YTqGlf.js +1 -0
- package/dist/plugin-sdk/dispatch-CNy3g9ma.cjs +1 -0
- package/dist/plugin-sdk/dispatch-DCSwqteL.js +1 -0
- package/dist/plugin-sdk/dispatch-DHbSBeFJ.js +1 -0
- package/dist/plugin-sdk/dispatch-DK5ub8qa.cjs +1 -0
- package/dist/plugin-sdk/dispatch-SWyfAZT0.cjs +1 -0
- package/dist/plugin-sdk/dispatch-mR2vLkGa.cjs +1 -0
- package/dist/plugin-sdk/feishu.cjs +1 -0
- package/dist/plugin-sdk/feishu.js +1 -0
- package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -0
- package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -0
- package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -0
- package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -0
- package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -0
- package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -0
- package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -0
- package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -0
- package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -0
- package/dist/plugin-sdk/fetch-BtZY623f.js +1 -0
- package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -0
- package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -0
- package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -0
- package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -0
- package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -0
- package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -0
- package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -0
- package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -0
- package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -0
- package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -0
- package/dist/plugin-sdk/fetch-guard-8I7EHbDM.cjs +1 -0
- package/dist/plugin-sdk/fetch-guard-CIJUkBIL.cjs +1 -0
- package/dist/plugin-sdk/fetch-guard-CY03i4gu.js +1 -0
- package/dist/plugin-sdk/fetch-guard-Cz-cgYmR.cjs +1 -0
- package/dist/plugin-sdk/fetch-guard-DB85MORy.cjs +1 -0
- package/dist/plugin-sdk/fetch-guard-DE9BslxX.js +1 -0
- package/dist/plugin-sdk/fetch-guard-DLNzldn9.cjs +1 -0
- package/dist/plugin-sdk/fetch-guard-DSvAbvSx.js +1 -0
- package/dist/plugin-sdk/fetch-guard-DXe8oqEE.js +1 -0
- package/dist/plugin-sdk/fetch-guard-DY9jpsXo.cjs +1 -0
- package/dist/plugin-sdk/fetch-guard-DbOZYxyN.js +1 -0
- package/dist/plugin-sdk/fetch-guard-_fifU0fX.js +1 -0
- package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -0
- package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -0
- package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -0
- package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -0
- package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -0
- package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -0
- package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -0
- package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -0
- package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -0
- package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -0
- package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -0
- package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -0
- package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -0
- package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -0
- package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -0
- package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -0
- package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -0
- package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -0
- package/dist/plugin-sdk/googlechat.cjs +1 -0
- package/dist/plugin-sdk/googlechat.js +1 -0
- package/dist/plugin-sdk/image-B6HEHWlJ.js +1 -0
- package/dist/plugin-sdk/image-Bte8cr4F.js +1 -0
- package/dist/plugin-sdk/image-BxafJgQ6.cjs +1 -0
- package/dist/plugin-sdk/image-CDI5SqeR.js +1 -0
- package/dist/plugin-sdk/image-CTgwucug.cjs +1 -0
- package/dist/plugin-sdk/image-CWnsS03L.js +1 -0
- package/dist/plugin-sdk/image-CoksjGBL.cjs +1 -0
- package/dist/plugin-sdk/image-CuOIoxl2.cjs +1 -0
- package/dist/plugin-sdk/image-DJyEMzkq.cjs +1 -0
- package/dist/plugin-sdk/image-DegWnAZU.cjs +1 -0
- package/dist/plugin-sdk/image-TCSQZpr6.js +1 -0
- package/dist/plugin-sdk/image-aG-5S1vd.js +1 -0
- package/dist/plugin-sdk/imessage.cjs +1 -0
- package/dist/plugin-sdk/imessage.js +1 -0
- package/dist/plugin-sdk/index.cjs +1 -0
- package/dist/plugin-sdk/index.js +1 -0
- package/dist/plugin-sdk/ir-8rDh7div.js +1 -0
- package/dist/plugin-sdk/ir-Bh6lKGdS.js +1 -0
- package/dist/plugin-sdk/ir-C3VNqnc2.cjs +1 -0
- package/dist/plugin-sdk/ir-CZOtKajq.cjs +1 -0
- package/dist/plugin-sdk/ir-CveCWs8q.cjs +1 -0
- package/dist/plugin-sdk/ir-DAxY-7c1.cjs +1 -0
- package/dist/plugin-sdk/ir-DSuLr2UE.cjs +1 -0
- package/dist/plugin-sdk/ir-DanxCjD-.cjs +1 -0
- package/dist/plugin-sdk/ir-Dgc6qZMX.js +1 -0
- package/dist/plugin-sdk/ir-OBi5zaEW.js +1 -0
- package/dist/plugin-sdk/ir-hQ6EW92h.js +1 -0
- package/dist/plugin-sdk/ir-ynWQeZD9.js +1 -0
- package/dist/plugin-sdk/irc.cjs +1 -0
- package/dist/plugin-sdk/irc.js +1 -0
- package/dist/plugin-sdk/keyed-async-queue.cjs +1 -0
- package/dist/plugin-sdk/keyed-async-queue.js +1 -0
- package/dist/plugin-sdk/line.cjs +1 -0
- package/dist/plugin-sdk/line.js +1 -0
- package/dist/plugin-sdk/llm-task.cjs +1 -0
- package/dist/plugin-sdk/llm-task.js +1 -0
- package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -0
- package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -0
- package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -0
- package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -0
- package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -0
- package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -0
- package/dist/plugin-sdk/lobster.cjs +1 -0
- package/dist/plugin-sdk/lobster.js +1 -0
- package/dist/plugin-sdk/local-roots-5udQUs81.js +1 -0
- package/dist/plugin-sdk/local-roots-BmhNPIJm.cjs +1 -0
- package/dist/plugin-sdk/local-roots-C5UoE741.cjs +1 -0
- package/dist/plugin-sdk/local-roots-Ca8KoAAp.js +1 -0
- package/dist/plugin-sdk/local-roots-CeAYfmPb.cjs +1 -0
- package/dist/plugin-sdk/local-roots-Cu7YCpql.cjs +1 -0
- package/dist/plugin-sdk/local-roots-D0yN794S.js +1 -0
- package/dist/plugin-sdk/local-roots-D4i3H0UG.cjs +1 -0
- package/dist/plugin-sdk/local-roots-DGe-SRNu.js +1 -0
- package/dist/plugin-sdk/local-roots-bWA2msT0.js +1 -0
- package/dist/plugin-sdk/local-roots-tee85Q-1.js +1 -0
- package/dist/plugin-sdk/local-roots-wTkpE7go.cjs +1 -0
- package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -0
- package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -0
- package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -0
- package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -0
- package/dist/plugin-sdk/logger-C210xuWx.js +1 -0
- package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -0
- package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -0
- package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -0
- package/dist/plugin-sdk/logger-DwWqfo66.js +1 -0
- package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -0
- package/dist/plugin-sdk/login-B5IwNcl4.cjs +1 -0
- package/dist/plugin-sdk/login-BIbt7ZL_.js +1 -0
- package/dist/plugin-sdk/login-CxnDKwXC.js +1 -0
- package/dist/plugin-sdk/login-D5iTWowo.cjs +1 -0
- package/dist/plugin-sdk/login-DHE1rzB1.js +1 -0
- package/dist/plugin-sdk/login-DIPBcPQc.cjs +1 -0
- package/dist/plugin-sdk/login-DtDOozuU.js +1 -0
- package/dist/plugin-sdk/login-UrWNtI80.cjs +1 -0
- package/dist/plugin-sdk/login-VviMkBU2.js +1 -0
- package/dist/plugin-sdk/login-jQwwt6C-.js +1 -0
- package/dist/plugin-sdk/login-mGjCzJzb.cjs +1 -0
- package/dist/plugin-sdk/login-pZnnpj38.cjs +1 -0
- package/dist/plugin-sdk/login-qr-BexuTIDJ.cjs +1 -0
- package/dist/plugin-sdk/login-qr-C366Qlh-.cjs +1 -0
- package/dist/plugin-sdk/login-qr-CQY4ty0o.js +1 -0
- package/dist/plugin-sdk/login-qr-CSabEb-n.cjs +1 -0
- package/dist/plugin-sdk/login-qr-CUgNKijx.js +1 -0
- package/dist/plugin-sdk/login-qr-C_LEw1Bi.js +1 -0
- package/dist/plugin-sdk/login-qr-CcPvldsG.js +1 -0
- package/dist/plugin-sdk/login-qr-CnNGKwDR.cjs +1 -0
- package/dist/plugin-sdk/login-qr-DQm50pXk.js +1 -0
- package/dist/plugin-sdk/login-qr-DayvAWkx.js +1 -0
- package/dist/plugin-sdk/login-qr-eodIsL9V.cjs +1 -0
- package/dist/plugin-sdk/login-qr-yIJE7MmY.cjs +1 -0
- package/dist/plugin-sdk/manager-932XljTT.js +1 -0
- package/dist/plugin-sdk/manager-CGHd5p2T.js +1 -0
- package/dist/plugin-sdk/manager-CbGA_JDa.js +1 -0
- package/dist/plugin-sdk/manager-CdD7HaGW.cjs +1 -0
- package/dist/plugin-sdk/manager-CmAH_a7A.cjs +1 -0
- package/dist/plugin-sdk/manager-DIS4ywpb.cjs +1 -0
- package/dist/plugin-sdk/manager-DQ2C-2IU.cjs +1 -0
- package/dist/plugin-sdk/manager-DdvFnsT7.cjs +1 -0
- package/dist/plugin-sdk/manager-DfdDglld.js +1 -0
- package/dist/plugin-sdk/manager-MR9stU_p.js +1 -0
- package/dist/plugin-sdk/manager-WwW37IUu.js +1 -0
- package/dist/plugin-sdk/manager-gE9187gu.cjs +1 -0
- package/dist/plugin-sdk/matrix.cjs +1 -0
- package/dist/plugin-sdk/matrix.js +1 -0
- package/dist/plugin-sdk/mattermost.cjs +1 -0
- package/dist/plugin-sdk/mattermost.js +1 -0
- package/dist/plugin-sdk/memory-core.cjs +1 -0
- package/dist/plugin-sdk/memory-core.js +1 -0
- package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -0
- package/dist/plugin-sdk/minimax-portal-auth.js +1 -0
- package/dist/plugin-sdk/model-auth-BpS4IWDi.cjs +1 -0
- package/dist/plugin-sdk/model-auth-BwajGuoF.cjs +1 -0
- package/dist/plugin-sdk/model-auth-C1YL9HcW.js +1 -0
- package/dist/plugin-sdk/model-auth-Cc-8H6Cu.js +1 -0
- package/dist/plugin-sdk/model-auth-Cw3fuhm_.js +1 -0
- package/dist/plugin-sdk/model-auth-CycDtQl-.js +1 -0
- package/dist/plugin-sdk/model-auth-D-7xiXhK.cjs +1 -0
- package/dist/plugin-sdk/model-auth-TFUxaK0f.cjs +1 -0
- package/dist/plugin-sdk/model-selection-BADTZM9n.cjs +1 -0
- package/dist/plugin-sdk/model-selection-DUAudCtL.js +1 -0
- package/dist/plugin-sdk/msteams.cjs +1 -0
- package/dist/plugin-sdk/msteams.js +1 -0
- package/dist/plugin-sdk/nextcloud-talk.cjs +1 -0
- package/dist/plugin-sdk/nextcloud-talk.js +1 -0
- package/dist/plugin-sdk/nostr.cjs +1 -0
- package/dist/plugin-sdk/nostr.js +1 -0
- package/dist/plugin-sdk/outbound-2Lo6mZEY.js +1 -0
- package/dist/plugin-sdk/outbound-9XFlZzaF.cjs +1 -0
- package/dist/plugin-sdk/outbound-BlWsUmjQ.js +1 -0
- package/dist/plugin-sdk/outbound-Bs2rUcWZ.cjs +1 -0
- package/dist/plugin-sdk/outbound-C18nEOFP.js +1 -0
- package/dist/plugin-sdk/outbound-CW3o4Eng.cjs +1 -0
- package/dist/plugin-sdk/outbound-CzsdW5sy.js +1 -0
- package/dist/plugin-sdk/outbound-DcP22VOo.cjs +1 -0
- package/dist/plugin-sdk/outbound-QhOJAEO8.cjs +1 -0
- package/dist/plugin-sdk/outbound-attachment-1pf06Oiu.cjs +1 -0
- package/dist/plugin-sdk/outbound-attachment-B8-ZVX2i.cjs +1 -0
- package/dist/plugin-sdk/outbound-attachment-BDwI_tn0.cjs +1 -0
- package/dist/plugin-sdk/outbound-attachment-BXhbJils.js +1 -0
- package/dist/plugin-sdk/outbound-attachment-Bgf1pCh8.js +1 -0
- package/dist/plugin-sdk/outbound-attachment-COgf85S8.cjs +1 -0
- package/dist/plugin-sdk/outbound-attachment-CfN9OvMC.js +1 -0
- package/dist/plugin-sdk/outbound-attachment-CftilZWd.js +1 -0
- package/dist/plugin-sdk/outbound-attachment-Cujprd6T.cjs +1 -0
- package/dist/plugin-sdk/outbound-attachment-CvSHb9ci.js +1 -0
- package/dist/plugin-sdk/outbound-attachment-DQYtdTUw.js +1 -0
- package/dist/plugin-sdk/outbound-attachment-FqWC0WJx.cjs +1 -0
- package/dist/plugin-sdk/outbound-dTvIiFIZ.js +1 -0
- package/dist/plugin-sdk/outbound-fZ1WJGfe.cjs +1 -0
- package/dist/plugin-sdk/outbound-oHoWYWxf.js +1 -0
- package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -0
- package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -0
- package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -0
- package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -0
- package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -0
- package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -0
- package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -0
- package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -0
- package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -0
- package/dist/plugin-sdk/paths-CtrEseGU.js +1 -0
- package/dist/plugin-sdk/paths-D55o_j8-.js +1 -0
- package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -0
- package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -0
- package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -0
- package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -0
- package/dist/plugin-sdk/paths-Do0djuaj.js +1 -0
- package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -0
- package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -0
- package/dist/plugin-sdk/paths-piJASC5k.js +1 -0
- package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-B9boErNZ.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-BJ8wTgFH.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-Bb2vCP6M.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-Bor7jHYd.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-BrTw1qE2.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-BuEMyAsU.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-CV9NTjC4.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-D5tLf04u.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-D5xlUS2J.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-DGoPUzBj.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-DMrqvV1O.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-DoY7qnlI.cjs +1 -0
- package/dist/plugin-sdk/pi-model-discovery-Dqq9Vm8o.js +1 -0
- package/dist/plugin-sdk/pi-model-discovery-zCuISPPq.js +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-4238P8NF.js +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BEoqzgFe.cjs +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BGPjibRD.js +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BJ_amISU.cjs +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BX2r_qPT.cjs +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CGLHFxSr.js +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CsNn_Lv8.js +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CsiKBTHg.cjs +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CuXQQk4F.cjs +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DNatrz-3.cjs +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-PApjB0tY.js +1 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-xsXDBYNq.js +1 -0
- package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -0
- package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -0
- package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -0
- package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -0
- package/dist/plugin-sdk/polls-PGxiE05J.js +1 -0
- package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -0
- package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -0
- package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -0
- package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -0
- package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -0
- package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -0
- package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -0
- package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -0
- package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -0
- package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -0
- package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -0
- package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -0
- package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-B0_rvdfF.js +1 -0
- package/dist/plugin-sdk/pw-ai-BqdrA15F.js +1 -0
- package/dist/plugin-sdk/pw-ai-CDzxu5B3.js +1 -0
- package/dist/plugin-sdk/pw-ai-CJIogpwF.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-CL_gU5PJ.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-Ca4aZTaG.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-CrfYxLI8.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-DCiFlwP8.js +1 -0
- package/dist/plugin-sdk/pw-ai-DSqXNmNZ.js +1 -0
- package/dist/plugin-sdk/pw-ai-Dh55xTz1.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-DxAvipyK.cjs +1 -0
- package/dist/plugin-sdk/pw-ai-U9nPHH-0.js +1 -0
- package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -0
- package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -0
- package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -0
- package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -0
- package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -0
- package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -0
- package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -0
- package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -0
- package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -0
- package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -0
- package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -0
- package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -0
- package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -0
- package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -0
- package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -0
- package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -0
- package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -0
- package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -0
- package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -0
- package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -0
- package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -0
- package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -0
- package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -0
- package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -0
- package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -0
- package/dist/plugin-sdk/qwen-portal-auth.js +1 -0
- package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -0
- package/dist/plugin-sdk/render-CBsnn-2A.js +1 -0
- package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -0
- package/dist/plugin-sdk/render-DGmfCIRG.js +1 -0
- package/dist/plugin-sdk/render-DhTJXP1U.js +1 -0
- package/dist/plugin-sdk/render-Djx15dPh.js +1 -0
- package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -0
- package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -0
- package/dist/plugin-sdk/reply-0zCEbT4w.cjs +1 -0
- package/dist/plugin-sdk/reply-D-f2bbXy.js +1 -0
- package/dist/plugin-sdk/resolve-outbound-target-CrQGbaua.js +1 -0
- package/dist/plugin-sdk/resolve-outbound-target-H7Q9HcfW.js +1 -0
- package/dist/plugin-sdk/resolve-outbound-target-MS6Xpp17.cjs +1 -0
- package/dist/plugin-sdk/resolve-outbound-target-cDxjy3TL.cjs +1 -0
- package/dist/plugin-sdk/send-3VNTSIhr.js +1 -0
- package/dist/plugin-sdk/send-61GHLNYP.cjs +1 -0
- package/dist/plugin-sdk/send-6q4owAw0.js +1 -0
- package/dist/plugin-sdk/send-A2s5sPTd.js +1 -0
- package/dist/plugin-sdk/send-B2qa7CSk.js +1 -0
- package/dist/plugin-sdk/send-B3aEYvqG.cjs +1 -0
- package/dist/plugin-sdk/send-BAoqP09M.cjs +1 -0
- package/dist/plugin-sdk/send-BNBJ4CF8.js +1 -0
- package/dist/plugin-sdk/send-BTE2rI1E.js +1 -0
- package/dist/plugin-sdk/send-BlWuQHYB.js +1 -0
- package/dist/plugin-sdk/send-Bnvt7ZUE.cjs +1 -0
- package/dist/plugin-sdk/send-Bq6Mqs9G.cjs +1 -0
- package/dist/plugin-sdk/send-Bq787fi_.js +1 -0
- package/dist/plugin-sdk/send-BrAHLYBR.js +1 -0
- package/dist/plugin-sdk/send-Bt2eFBk2.js +1 -0
- package/dist/plugin-sdk/send-C4ZFbUux.js +1 -0
- package/dist/plugin-sdk/send-C4cyMW4S.cjs +1 -0
- package/dist/plugin-sdk/send-C8f5H4XV.cjs +1 -0
- package/dist/plugin-sdk/send-CDwTrbgT.cjs +1 -0
- package/dist/plugin-sdk/send-CEfs0Fsr.js +1 -0
- package/dist/plugin-sdk/send-CFuJjCNB.cjs +1 -0
- package/dist/plugin-sdk/send-CJGLeSJ8.cjs +1 -0
- package/dist/plugin-sdk/send-CL0W7jLW.js +1 -0
- package/dist/plugin-sdk/send-CLl490Gb.cjs +1 -0
- package/dist/plugin-sdk/send-CQtITZ7k.cjs +1 -0
- package/dist/plugin-sdk/send-CSGh_GVr.cjs +1 -0
- package/dist/plugin-sdk/send-CicLiXB4.js +1 -0
- package/dist/plugin-sdk/send-Cm7bEwx-.cjs +1 -0
- package/dist/plugin-sdk/send-CmO9z2-b.js +1 -0
- package/dist/plugin-sdk/send-Co_Wy2kT.cjs +1 -0
- package/dist/plugin-sdk/send-Cox_iyYB.cjs +1 -0
- package/dist/plugin-sdk/send-CuX4LcJ3.cjs +1 -0
- package/dist/plugin-sdk/send-CxMiTtxI.cjs +1 -0
- package/dist/plugin-sdk/send-CyyzWwDr.js +1 -0
- package/dist/plugin-sdk/send-D-HZnehy.cjs +1 -0
- package/dist/plugin-sdk/send-D-qD7BCb.js +1 -0
- package/dist/plugin-sdk/send-D3imkSlz.cjs +1 -0
- package/dist/plugin-sdk/send-D5UwpCoU.cjs +1 -0
- package/dist/plugin-sdk/send-D75OGJco.js +1 -0
- package/dist/plugin-sdk/send-DB4i1kUy.cjs +1 -0
- package/dist/plugin-sdk/send-DBjzdBda.cjs +1 -0
- package/dist/plugin-sdk/send-DPgRTM8s.js +1 -0
- package/dist/plugin-sdk/send-DPpBLiL4.js +1 -0
- package/dist/plugin-sdk/send-DV_afQnj.cjs +1 -0
- package/dist/plugin-sdk/send-DWuChr46.js +1 -0
- package/dist/plugin-sdk/send-DZ4szmEa.cjs +1 -0
- package/dist/plugin-sdk/send-DZr98eqE.cjs +1 -0
- package/dist/plugin-sdk/send-D_1K0zmx.cjs +1 -0
- package/dist/plugin-sdk/send-DaLB9Lca.js +1 -0
- package/dist/plugin-sdk/send-De4qiprb.js +1 -0
- package/dist/plugin-sdk/send-DeU-T5ps.js +1 -0
- package/dist/plugin-sdk/send-DtjJM0LO.js +1 -0
- package/dist/plugin-sdk/send-DvDCmTQf.js +1 -0
- package/dist/plugin-sdk/send-EvcsiFBC.cjs +1 -0
- package/dist/plugin-sdk/send-GuISe9C82.js +1 -0
- package/dist/plugin-sdk/send-IoGcE0w2.js +1 -0
- package/dist/plugin-sdk/send-JVdUTsN1.cjs +1 -0
- package/dist/plugin-sdk/send-NpNVFRmY.js +1 -0
- package/dist/plugin-sdk/send-XMOZsJcs.js +1 -0
- package/dist/plugin-sdk/send-h--iKoQE.cjs +1 -0
- package/dist/plugin-sdk/session-8BcB905y.cjs +1 -0
- package/dist/plugin-sdk/session-B2oURX5K.js +1 -0
- package/dist/plugin-sdk/session-BJhNqIOi.js +1 -0
- package/dist/plugin-sdk/session-BRgGsw96.cjs +1 -0
- package/dist/plugin-sdk/session-Be_7rXAz.js +1 -0
- package/dist/plugin-sdk/session-C66IXbE-.js +1 -0
- package/dist/plugin-sdk/session-CCYDbcyV.js +1 -0
- package/dist/plugin-sdk/session-CHu3C2m0.cjs +1 -0
- package/dist/plugin-sdk/session-DUlmK2IL.cjs +1 -0
- package/dist/plugin-sdk/session-DxTRZTnu.js +1 -0
- package/dist/plugin-sdk/session-DzhI0nj-.cjs +1 -0
- package/dist/plugin-sdk/session-WRCBgAzG.cjs +1 -0
- package/dist/plugin-sdk/sessions-DxXXAfdI.js +1 -0
- package/dist/plugin-sdk/sessions-Dz5JUL8j.cjs +1 -0
- package/dist/plugin-sdk/signal.cjs +1 -0
- package/dist/plugin-sdk/signal.js +1 -0
- package/dist/plugin-sdk/skill-commands-B4wI8ETo.cjs +1 -0
- package/dist/plugin-sdk/skill-commands-BoTeA376.cjs +1 -0
- package/dist/plugin-sdk/skill-commands-BwrYJu7Z.js +1 -0
- package/dist/plugin-sdk/skill-commands-BzkMuA58.cjs +1 -0
- package/dist/plugin-sdk/skill-commands-CIAf9cWN.cjs +1 -0
- package/dist/plugin-sdk/skill-commands-CKc7JO_c.cjs +1 -0
- package/dist/plugin-sdk/skill-commands-Cvb6oXym.js +1 -0
- package/dist/plugin-sdk/skill-commands-DWDtyCtB.js +1 -0
- package/dist/plugin-sdk/skill-commands-Hmuw0PPK.js +1 -0
- package/dist/plugin-sdk/skill-commands-KyN0FGaC.cjs +1 -0
- package/dist/plugin-sdk/skill-commands-KzwEqk5p.js +1 -0
- package/dist/plugin-sdk/skill-commands-Ny38ZFIC.js +1 -0
- package/dist/plugin-sdk/slack.cjs +1 -0
- package/dist/plugin-sdk/slack.js +1 -0
- package/dist/plugin-sdk/synology-chat.cjs +1 -0
- package/dist/plugin-sdk/synology-chat.js +1 -0
- package/dist/plugin-sdk/tables-BIDWwpX8.js +1 -0
- package/dist/plugin-sdk/tables-Bk8lHaPx.cjs +1 -0
- package/dist/plugin-sdk/tables-BlNIkMV8.js +1 -0
- package/dist/plugin-sdk/tables-Bp0a2WRP.cjs +1 -0
- package/dist/plugin-sdk/tables-BtVUf77b.cjs +1 -0
- package/dist/plugin-sdk/tables-C4j5Bar_.js +1 -0
- package/dist/plugin-sdk/tables-CZGtYzDC.cjs +1 -0
- package/dist/plugin-sdk/tables-CnrHab5d.cjs +1 -0
- package/dist/plugin-sdk/tables-DtslIPYw.js +1 -0
- package/dist/plugin-sdk/tables-NrdtIJGp.cjs +1 -0
- package/dist/plugin-sdk/tables-XYb3T-vE.js +1 -0
- package/dist/plugin-sdk/tables-lbv-0tl3.js +1 -0
- package/dist/plugin-sdk/target-errors-9cdJA1L2.cjs +1 -0
- package/dist/plugin-sdk/target-errors-BEkhKWCq.cjs +1 -0
- package/dist/plugin-sdk/target-errors-BZRN-lPd.js +1 -0
- package/dist/plugin-sdk/target-errors-BrwqillR.cjs +1 -0
- package/dist/plugin-sdk/target-errors-Buo5pfom.js +1 -0
- package/dist/plugin-sdk/target-errors-CFzzcffg.js +1 -0
- package/dist/plugin-sdk/target-errors-DFmK5loi.js +1 -0
- package/dist/plugin-sdk/target-errors-DXqwykNX.js +1 -0
- package/dist/plugin-sdk/target-errors-Dd6CopYF.cjs +1 -0
- package/dist/plugin-sdk/target-errors-DeNJ10ks.cjs +1 -0
- package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -0
- package/dist/plugin-sdk/targets-BSkiizml.js +1 -0
- package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -0
- package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -0
- package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -0
- package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -0
- package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -0
- package/dist/plugin-sdk/targets-CrkJkzil.js +1 -0
- package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -0
- package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -0
- package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -0
- package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -0
- package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -0
- package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -0
- package/dist/plugin-sdk/telegram.cjs +1 -0
- package/dist/plugin-sdk/telegram.js +1 -0
- package/dist/plugin-sdk/test-utils.cjs +1 -0
- package/dist/plugin-sdk/test-utils.js +1 -0
- package/dist/plugin-sdk/tlon.cjs +1 -0
- package/dist/plugin-sdk/tlon.js +1 -0
- package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -0
- package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -0
- package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -0
- package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -0
- package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -0
- package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -0
- package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -0
- package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -0
- package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -0
- package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -0
- package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -0
- package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -0
- package/dist/plugin-sdk/twitch.cjs +1 -0
- package/dist/plugin-sdk/twitch.js +1 -0
- package/dist/plugin-sdk/utils-BJtJR72k.js +1 -0
- package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -0
- package/dist/plugin-sdk/voice-call.cjs +1 -0
- package/dist/plugin-sdk/voice-call.js +1 -0
- package/dist/plugin-sdk/web-B-QDcVRv.cjs +1 -0
- package/dist/plugin-sdk/web-B2PwjHsu.cjs +1 -0
- package/dist/plugin-sdk/web-BdnQzLgF.js +1 -0
- package/dist/plugin-sdk/web-C9T7tf6w.js +1 -0
- package/dist/plugin-sdk/web-CODD4ksc.cjs +1 -0
- package/dist/plugin-sdk/web-CkdCvvR-.js +1 -0
- package/dist/plugin-sdk/web-_tj8xNZE.js +1 -0
- package/dist/plugin-sdk/web-pcTha_l7.cjs +1 -0
- package/dist/plugin-sdk/weixin.cjs +1 -0
- package/dist/plugin-sdk/weixin.js +1 -0
- package/dist/plugin-sdk/whatsapp-actions-Bhz2j1uz.cjs +1 -0
- package/dist/plugin-sdk/whatsapp-actions-Bm2UyRYg.cjs +1 -0
- package/dist/plugin-sdk/whatsapp-actions-Bolz0jl5.js +1 -0
- package/dist/plugin-sdk/whatsapp-actions-CJ3LDpaG.js +1 -0
- package/dist/plugin-sdk/whatsapp-actions-CL1Gmkb0.js +1 -0
- package/dist/plugin-sdk/whatsapp-actions-D-bZRT7s.js +1 -0
- package/dist/plugin-sdk/whatsapp-actions-DSGTTE8M.cjs +1 -0
- package/dist/plugin-sdk/whatsapp-actions-DjQxgMpW.cjs +1 -0
- package/dist/plugin-sdk/whatsapp-actions-DrPBBi5t.cjs +1 -0
- package/dist/plugin-sdk/whatsapp-actions-DtK657CZ.cjs +1 -0
- package/dist/plugin-sdk/whatsapp-actions-Xwev51_N.js +1 -0
- package/dist/plugin-sdk/whatsapp-actions-m7vLtNAA.js +1 -0
- package/dist/plugin-sdk/whatsapp.cjs +1 -0
- package/dist/plugin-sdk/whatsapp.js +1 -0
- package/dist/plugin-sdk/zalo.cjs +1 -0
- package/dist/plugin-sdk/zalo.js +1 -0
- package/dist/plugin-sdk/zalouser.cjs +1 -0
- package/dist/plugin-sdk/zalouser.js +1 -0
- package/dist/plugins-CYLrFT4h.js +1 -0
- package/dist/plugins-DNlgeTTc.js +1 -0
- package/dist/plugins-cli-BbjMbzJU.js +1 -0
- package/dist/plugins-cli-BiVMAr5T.js +1 -0
- package/dist/polls-BIVz6a4F.js +1 -0
- package/dist/polls-Bh5wc9-6.js +1 -0
- package/dist/polls-C_XSFz3d.js +1 -0
- package/dist/polls-DKJOFSzJ.js +1 -0
- package/dist/ports-B0XdGTfS.js +1 -0
- package/dist/ports-BR0PLRtq.js +1 -0
- package/dist/probe-auth-BMA0yM94.js +1 -0
- package/dist/probe-auth-VI96zmTK.js +1 -0
- package/dist/profile-utils-CWmra1aY.js +1 -0
- package/dist/program-BrAZTwFr.js +1 -0
- package/dist/program-context-B9ydtPje.js +1 -0
- package/dist/program-context-CH9p6anW.js +1 -0
- package/dist/progress-LNttnI-y.js +1 -0
- package/dist/progress-d1m2sqR1.js +1 -0
- package/dist/prompt-select-styled-BeJNbzSa.js +1 -0
- package/dist/prompt-select-styled-DIOWLjl0.js +1 -0
- package/dist/prompt-style-BThRSQJR.js +1 -0
- package/dist/prompt-style-CXKekIBY.js +1 -0
- package/dist/prompts-CMzglboN.js +1 -0
- package/dist/prompts-wv-lfVrJ.js +1 -0
- package/dist/provider-auth-helpers-1lU43eTW.js +1 -0
- package/dist/provider-auth-helpers-pBVCjBj9.js +1 -0
- package/dist/provider-env-vars-D8p6Ohpj.js +1 -0
- package/dist/provider-env-vars-Dt0Q29Su.js +1 -0
- package/dist/proxy-env-BNhTHkd_.js +1 -0
- package/dist/proxy-env-DcmW_urA.js +1 -0
- package/dist/proxy-env-DrC3TIGh.js +1 -0
- package/dist/proxy-env-FJr5nlvs.js +1 -0
- package/dist/proxy-fetch-BADsUK4d.js +1 -0
- package/dist/proxy-fetch-BZ9O8Dvj.js +1 -0
- package/dist/proxy-fetch-DnjU1fEB.js +1 -0
- package/dist/proxy-fetch-gWETR3cl.js +1 -0
- package/dist/push-apns-BGUOmD5M.js +1 -0
- package/dist/push-apns-B_a2MBJ4.js +1 -0
- package/dist/pw-ai-C-Ffkwai.js +1 -0
- package/dist/pw-ai-CV1H1Vrs.js +1 -0
- package/dist/pw-ai-D_MB1lrR.js +1 -0
- package/dist/pw-ai-_l9lVice.js +1 -0
- package/dist/qmd-manager-C_e04BNg.js +1 -0
- package/dist/qmd-manager-DSQ_mDCl.js +1 -0
- package/dist/qmd-manager-DcBYbt_V.js +1 -0
- package/dist/qmd-manager-NLI0R6kp.js +1 -0
- package/dist/qr-cli-3aG6CB6K.js +1 -0
- package/dist/qr-cli-fiJxD5M4.js +1 -0
- package/dist/query-expansion-0OxEb1Io.js +1 -0
- package/dist/query-expansion-BUUx_oWg.js +1 -0
- package/dist/query-expansion-r_iXkNzt.js +1 -0
- package/dist/reaction-level-DVPHL14p.js +1 -0
- package/dist/reaction-message-id-BEEe7X3D.js +1 -0
- package/dist/read-only-account-inspect-DBwAwB3_.js +1 -0
- package/dist/redact-3_CiXMY6.js +1 -0
- package/dist/redact-CnRxK70G.js +1 -0
- package/dist/register.agent-CX78s_X9.js +1 -0
- package/dist/register.agent-DLDKQENq.js +1 -0
- package/dist/register.backup-DkFoTcuT.js +1 -0
- package/dist/register.backup-PzF5rmeU.js +1 -0
- package/dist/register.configure-BA5u9hT3.js +1 -0
- package/dist/register.configure-BhPtf3Qo.js +1 -0
- package/dist/register.maintenance-BhsBepKS.js +1 -0
- package/dist/register.maintenance-r_MzNK3-.js +1 -0
- package/dist/register.message-CTF--Z2a.js +1 -0
- package/dist/register.message-jcZ875be.js +1 -0
- package/dist/register.onboard-C3yL50_c.js +1 -0
- package/dist/register.onboard-CNwnStUk.js +1 -0
- package/dist/register.setup-BRJMzgfU.js +1 -0
- package/dist/register.setup-BvsS-zgm.js +1 -0
- package/dist/register.status-health-sessions-DVc__2pc.js +1 -0
- package/dist/register.status-health-sessions-Dqmkw820.js +1 -0
- package/dist/register.subclis-D-24j83X.js +1 -0
- package/dist/registry-BptzrW8D.js +1 -0
- package/dist/registry-hFAtCSWG.js +1 -0
- package/dist/render-BXEUPIHe.js +1 -0
- package/dist/render-CBsnn-2A.js +1 -0
- package/dist/render-D8OWO2hT.js +1 -0
- package/dist/render-DrrPmnMI.js +1 -0
- package/dist/reply-l-Y47HP4.js +1 -0
- package/dist/restart-CHXEHdSC.js +1 -0
- package/dist/rpc-B3ReBNXG.js +1 -0
- package/dist/rpc-DumDLalJ.js +1 -0
- package/dist/run-main-B_YBE_TN.js +1 -0
- package/dist/runtime-BC5Ep2pJ.js +1 -0
- package/dist/runtime-Dlg2-Omq.js +1 -0
- package/dist/runtime-guard-DFYBaYZS.js +1 -0
- package/dist/runtime-guard-DX2Ie4ri.js +1 -0
- package/dist/runtime-status-CqFBmdRd.js +1 -0
- package/dist/runtime-status-DszMjvJK.js +1 -0
- package/dist/runtime-web-tools-D8fms06-.js +1 -0
- package/dist/runtime-web-tools-bz76ZaRc.js +1 -0
- package/dist/sandbox-cli-BDorUBm-.js +1 -0
- package/dist/sandbox-cli-Bq40R5Vs.js +1 -0
- package/dist/scan-paths-C13EseXp.js +1 -0
- package/dist/scan-paths-CWtvWW40.js +1 -0
- package/dist/search-manager-Bp9x20r6.js +1 -0
- package/dist/secret-file-C7JffiM_.js +1 -0
- package/dist/secret-file-D60EFEOe.js +1 -0
- package/dist/secret-file-DuWm26jS.js +1 -0
- package/dist/secrets-cli-Bo6PC32U.js +1 -0
- package/dist/secrets-cli-CoXJv3Jp.js +1 -0
- package/dist/secure-random-D7JQgiK-.js +1 -0
- package/dist/security-cli-CgZL2KKh.js +1 -0
- package/dist/security-cli-DVOfhwAP.js +1 -0
- package/dist/send-B7sHR38c2.js +1 -0
- package/dist/send-Bx2Qr7VH.js +1 -0
- package/dist/send-C-AP01PR.js +1 -0
- package/dist/send-C1CJ-GHU.js +1 -0
- package/dist/send-C48Y9SAq.js +1 -0
- package/dist/send-CVplsJpw.js +1 -0
- package/dist/send-CW81y5Wz.js +1 -0
- package/dist/send-CYgHok1p.js +1 -0
- package/dist/send-Cgd_VJHR.js +1 -0
- package/dist/send-Chz0YMoJ.js +1 -0
- package/dist/send-D9hVVn7p2.js +1 -0
- package/dist/send-DKrzj_Ts.js +1 -0
- package/dist/send-DRLSCwCk.js +1 -0
- package/dist/send-DavpkzhH.js +1 -0
- package/dist/send-DbeEC2a3.js +1 -0
- package/dist/send-DkiKKUkt.js +1 -0
- package/dist/send-DlfVd5mL.js +1 -0
- package/dist/send-JYgM9Sm-2.js +1 -0
- package/dist/send-hZFDcGLM.js +1 -0
- package/dist/send-vthbs31u.js +1 -0
- package/dist/server-DpyBukwA.js +1 -0
- package/dist/server-IgiSKzXH.js +1 -0
- package/dist/server-node-events-CFSY_-4t.js +1 -0
- package/dist/server-node-events-ZFwmPwQ-.js +1 -0
- package/dist/service-BtB9epJk.js +1 -0
- package/dist/service-DZ9EbS15.js +1 -0
- package/dist/session-C9TDmUS7.js +1 -0
- package/dist/session-CUUGjiV3.js +1 -0
- package/dist/session-DA-i5xQ-.js +1 -0
- package/dist/session-bk3gFwO4.js +1 -0
- package/dist/session-cost-usage-BgqKixv0.js +1 -0
- package/dist/session-cost-usage-CHtVgnE8.js +1 -0
- package/dist/session-key-C7F_iqYg.js +1 -0
- package/dist/session-key-D3P0tf5P.js +1 -0
- package/dist/session-utils-8acNlxwP.js +1 -0
- package/dist/sessions-BsxT0V2m.js +1 -0
- package/dist/shared-9x5sqYRb.js +1 -0
- package/dist/shared-BKWhOp64.js +1 -0
- package/dist/shared-GesXrZzd.js +1 -0
- package/dist/skill-commands-BWW6mc6t.js +1 -0
- package/dist/skill-commands-CSF6wVPU.js +1 -0
- package/dist/skill-commands-Db232ZRp.js +1 -0
- package/dist/skill-commands-HJHHZqt6.js +1 -0
- package/dist/skill-scanner-CUUF3Fvo.js +1 -0
- package/dist/skill-scanner-CkxXNioD.js +1 -0
- package/dist/skills-CKTicUKS.js +1 -0
- package/dist/skills-DHbOKEGc.js +1 -0
- package/dist/skills-cli-9Ls94z5H.js +1 -0
- package/dist/skills-cli-BY7OhJzj.js +1 -0
- package/dist/skills-install-CIdGCXSy.js +1 -0
- package/dist/skills-install-DIdiVt9Y.js +1 -0
- package/dist/skills-status-BWIugRCz.js +1 -0
- package/dist/skills-status-DswSl5aD.js +1 -0
- package/dist/sqlite-CILF3z9U.js +1 -0
- package/dist/stagger-DmFYysrJ.js +1 -0
- package/dist/stagger-DxzgG2jd.js +1 -0
- package/dist/status-C-9fSiMn.js +1 -0
- package/dist/status-CeBGmSAz.js +1 -0
- package/dist/status-DYqPF0rB.js +1 -0
- package/dist/status-JIPeVrsc.js +1 -0
- package/dist/status.update-B_8Gumuc.js +1 -0
- package/dist/status.update-DoSzHu2F.js +1 -0
- package/dist/string-normalization-BrUPaXaM.js +1 -0
- package/dist/string-normalization-DJT5zuUF.js +1 -0
- package/dist/subsystem-BLbY429l.js +1 -0
- package/dist/subsystem-Bc2XrjUz.js +1 -0
- package/dist/subsystem-C5XF2Fy5.js +1 -0
- package/dist/system-cli-CeZfoVPN.js +1 -0
- package/dist/system-cli-DZkTYB9d.js +1 -0
- package/dist/system-run-command-BKfMiqQM.js +1 -0
- package/dist/system-run-command-DEWnZE0r.js +1 -0
- package/dist/systemd-D7odsu4K.js +1 -0
- package/dist/systemd-DbevZh65.js +1 -0
- package/dist/systemd-hints-C0DKDl35.js +1 -0
- package/dist/systemd-hints-lXpMy-kY.js +1 -0
- package/dist/systemd-linger-C2MJD6KG.js +1 -0
- package/dist/systemd-linger-cWKbFNpu.js +1 -0
- package/dist/table-CR7TFMew.js +1 -0
- package/dist/table-CY440fI1.js +1 -0
- package/dist/tables-Brc2lNcB.js +1 -0
- package/dist/tables-CrXdLc_6.js +1 -0
- package/dist/tables-Oieq7UbT.js +1 -0
- package/dist/tables-btcG3yFT.js +1 -0
- package/dist/target-errors-CRlevJJ5.js +1 -0
- package/dist/target-errors-CgWAJOam.js +1 -0
- package/dist/target-errors-CpKXh2RS.js +1 -0
- package/dist/target-errors-a35Md15n.js +1 -0
- package/dist/targets-4EaxWBal.js +1 -0
- package/dist/targets-BJTo7bqu.js +1 -0
- package/dist/targets-BYVMrXDf.js +1 -0
- package/dist/targets-Bq6rS6-Z.js +1 -0
- package/dist/targets-CL5fYQi7.js +1 -0
- package/dist/targets-fozeWOOg.js +1 -0
- package/dist/targets-m_41k_Mv.js +1 -0
- package/dist/telegram/audit.js +1 -0
- package/dist/text-format-CvrvBBre.js +1 -0
- package/dist/text-format-DEWK6oCT.js +1 -0
- package/dist/token-DnTmiyJu.js +1 -0
- package/dist/tokens-B2fq-rL6.js +1 -0
- package/dist/tokens-CL2fSjGl.js +1 -0
- package/dist/tokens-DRM8vzJx.js +1 -0
- package/dist/tokens-XGbQGn67.js +1 -0
- package/dist/tool-display-DJDtttQg.js +1 -0
- package/dist/tool-display-DjuSUUbH.js +1 -0
- package/dist/tui-B506apla.js +1 -0
- package/dist/tui-CJUkUxHb.js +1 -0
- package/dist/tui-cli-BEdGHmhc.js +1 -0
- package/dist/tui-cli-Cq_eXDAV.js +1 -0
- package/dist/types.secrets-C-5U96pc.js +1 -0
- package/dist/types.secrets-D4tbc3Wq.js +1 -0
- package/dist/update-BGrxUIyz.js +1 -0
- package/dist/update-CwTy5DPl.js +1 -0
- package/dist/update-cli-BwBMOeP0.js +1 -0
- package/dist/update-cli-YrBbmw4f.js +1 -0
- package/dist/update-runner-BvtyRBD2.js +1 -0
- package/dist/update-runner-DYamgo1V.js +1 -0
- package/dist/usage-format-BWD8FJFL.js +1 -0
- package/dist/usage-format-yPwal8Iz.js +1 -0
- package/dist/utils-CGdo13HV.js +1 -0
- package/dist/utils-D3t-vPka.js +1 -0
- package/dist/utils-R-mFyVJi.js +1 -0
- package/dist/utils-UGOV_184.js +1 -0
- package/dist/version-q3SkUw2K.js +1 -0
- package/dist/warning-filter.js +1 -0
- package/dist/web-Cq3xWCaD.js +1 -0
- package/dist/web-DwcxsgH0.js +1 -0
- package/dist/webhooks-cli-CIeyainW.js +1 -0
- package/dist/webhooks-cli-DSNAve_D.js +1 -0
- package/dist/whatsapp-actions-B6gt1KeB.js +1 -0
- package/dist/whatsapp-actions-DACoH7qd.js +1 -0
- package/dist/whatsapp-actions-iQhIeMya.js +1 -0
- package/dist/whatsapp-actions-tmjID75a.js +1 -0
- package/dist/widearea-dns-BDx7vkV2.js +1 -0
- package/dist/widearea-dns-BFjqKXu_.js +1 -0
- package/dist/windows-spawn-7oINn5ao.js +1 -0
- package/dist/windows-spawn-AB7ItGAE.js +1 -0
- package/dist/with-timeout-WveKxvFV.js +1 -0
- package/dist/with-timeout-c1CzdShT.js +1 -0
- package/dist/workspace-B0ZQeHXg.js +1 -0
- package/dist/workspace-C45T1Cxg.js +1 -0
- package/dist/workspace-dirs-A8Vib9_B.js +1 -0
- package/dist/workspace-dirs-BhF1Dzxt.js +1 -0
- package/dist/workspace-xNEpaJvu.js +1 -0
- package/dist/wsl-DHxB2Ew_.js +1 -0
- package/dist/wsl-Ok7GaSJ6.js +1 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +2 -2
- package/node_modules/@aws-sdk/token-providers/package.json +1 -1
- package/node_modules/@grammyjs/types/package.json +1 -1
- package/node_modules/@line/bot-sdk/dist/channel-access-token/api/channelAccessTokenClient.js +49 -3
- package/node_modules/@line/bot-sdk/dist/cjs/channel-access-token/api/channelAccessTokenClient.js +49 -3
- package/node_modules/@line/bot-sdk/dist/cjs/client.js +636 -0
- package/node_modules/@line/bot-sdk/dist/cjs/endpoints.js +7 -0
- package/node_modules/@line/bot-sdk/dist/cjs/exceptions.js +15 -1
- package/node_modules/@line/bot-sdk/dist/cjs/http-axios.js +2 -6
- package/node_modules/@line/bot-sdk/dist/cjs/http-fetch.js +5 -13
- package/node_modules/@line/bot-sdk/dist/cjs/index.js +3 -1
- package/node_modules/@line/bot-sdk/dist/cjs/insight/api/insightClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/liff/api/liffClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.factory.generated.js +66 -0
- package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.js +1999 -0
- package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.js +61 -0
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceBlobClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiBlobClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/module/api/lineModuleClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/module-attach/api/lineModuleAttachClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/shop/api/shopClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/cjs/utils.js +10 -0
- package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
- package/node_modules/@line/bot-sdk/dist/client.js +636 -0
- package/node_modules/@line/bot-sdk/dist/endpoints.js +7 -0
- package/node_modules/@line/bot-sdk/dist/exceptions.js +15 -1
- package/node_modules/@line/bot-sdk/dist/http-axios.js +2 -6
- package/node_modules/@line/bot-sdk/dist/http-fetch.js +5 -13
- package/node_modules/@line/bot-sdk/dist/index.js +1 -0
- package/node_modules/@line/bot-sdk/dist/insight/api/insightClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/liff/api/liffClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/line-bot-client.factory.generated.js +63 -0
- package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.js +1995 -0
- package/node_modules/@line/bot-sdk/dist/line-bot-client.js +58 -0
- package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceBlobClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiBlobClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/module/api/lineModuleClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/module-attach/api/lineModuleAttachClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/shop/api/shopClient.js +3 -0
- package/node_modules/@line/bot-sdk/dist/utils.js +9 -0
- package/node_modules/@line/bot-sdk/dist/version.js +1 -1
- package/node_modules/@line/bot-sdk/package.json +10 -7
- package/node_modules/@mariozechner/clipboard-linux-x64-gnu/clipboard.linux-x64-gnu.node +0 -0
- package/node_modules/@mariozechner/clipboard-linux-x64-gnu/package.json +25 -0
- package/node_modules/@mariozechner/clipboard-linux-x64-musl/clipboard.linux-x64-musl.node +0 -0
- package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
- package/node_modules/@slack/bolt/dist/App.js +22 -30
- package/node_modules/@slack/bolt/dist/Assistant.js +21 -37
- package/node_modules/@slack/bolt/dist/CustomFunction.js +1 -43
- package/node_modules/@slack/bolt/dist/context/create-function-complete.js +23 -0
- package/node_modules/@slack/bolt/dist/context/create-function-fail.js +23 -0
- package/node_modules/@slack/bolt/dist/context/create-respond.js +11 -0
- package/node_modules/@slack/bolt/dist/context/create-say-stream.js +16 -0
- package/node_modules/@slack/bolt/dist/context/create-say.js +17 -0
- package/node_modules/@slack/bolt/dist/context/create-set-status.js +21 -0
- package/node_modules/@slack/bolt/dist/context/index.js +16 -0
- package/node_modules/@slack/bolt/dist/helpers.js +79 -3
- package/node_modules/@slack/bolt/dist/index.js +10 -8
- package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js +5 -1
- package/node_modules/@slack/bolt/dist/types/events/index.js +0 -4
- package/node_modules/@slack/bolt/package.json +7 -7
- package/node_modules/@smithy/config-resolver/package.json +10 -11
- package/node_modules/@smithy/core/dist-cjs/getSmithyContext.js +6 -0
- package/node_modules/@smithy/core/dist-cjs/index.js +1 -1
- package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +21 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +21 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +46 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/index.js +6 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/resolveAuthOptions.js +24 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/getHttpSigningMiddleware.js +19 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +27 -0
- package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/index.js +5 -0
- package/node_modules/@smithy/core/dist-cjs/normalizeProvider.js +10 -0
- package/node_modules/@smithy/core/dist-cjs/pagination/createPaginator.js +44 -0
- package/node_modules/@smithy/core/dist-cjs/request-builder/requestBuilder.js +5 -0
- package/node_modules/@smithy/core/dist-cjs/setFeature.js +14 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +17 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +38 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +15 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/index.js +6 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/noAuth.js +9 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/index.js +6 -0
- package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/memoizeIdentityProvider.js +61 -0
- package/node_modules/@smithy/core/package.json +15 -16
- package/node_modules/@smithy/credential-provider-imds/package.json +9 -10
- package/node_modules/@smithy/eventstream-codec/dist-cjs/index.js +13 -0
- package/node_modules/@smithy/eventstream-codec/package.json +6 -7
- package/node_modules/@smithy/eventstream-serde-browser/package.json +7 -8
- package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +7 -8
- package/node_modules/@smithy/eventstream-serde-node/package.json +7 -8
- package/node_modules/@smithy/eventstream-serde-universal/package.json +9 -10
- package/node_modules/@smithy/fetch-http-handler/package.json +12 -13
- package/node_modules/@smithy/hash-node/package.json +6 -7
- package/node_modules/@smithy/invalid-dependency/package.json +6 -7
- package/node_modules/@smithy/middleware-content-length/package.json +7 -8
- package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +2 -2
- package/node_modules/@smithy/middleware-endpoint/package.json +13 -14
- package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +70 -29
- package/node_modules/@smithy/middleware-retry/dist-es/index.js +5 -4
- package/node_modules/@smithy/middleware-retry/dist-es/longPollMiddleware.js +15 -0
- package/node_modules/@smithy/middleware-retry/dist-es/parseRetryAfterHeader.js +49 -0
- package/node_modules/@smithy/middleware-retry/dist-es/{StandardRetryStrategy.js โ retry-pre-sra-deprecated/StandardRetryStrategy.js} +1 -1
- package/node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js +13 -20
- package/node_modules/@smithy/middleware-retry/package.json +16 -16
- package/node_modules/@smithy/middleware-serde/package.json +10 -11
- package/node_modules/@smithy/middleware-stack/package.json +7 -8
- package/node_modules/@smithy/node-config-provider/package.json +8 -9
- package/node_modules/@smithy/node-http-handler/package.json +10 -11
- package/node_modules/@smithy/property-provider/package.json +6 -7
- package/node_modules/@smithy/protocol-http/package.json +6 -7
- package/node_modules/@smithy/querystring-builder/package.json +6 -7
- package/node_modules/@smithy/querystring-parser/package.json +6 -7
- package/node_modules/@smithy/service-error-classification/package.json +6 -7
- package/node_modules/@smithy/shared-ini-file-loader/package.json +7 -8
- package/node_modules/@smithy/signature-v4/dist-cjs/index.js +13 -0
- package/node_modules/@smithy/signature-v4/package.json +9 -10
- package/node_modules/@smithy/smithy-client/dist-cjs/index.js +1 -1
- package/node_modules/@smithy/smithy-client/package.json +14 -15
- package/node_modules/@smithy/types/package.json +7 -8
- package/node_modules/@smithy/url-parser/package.json +7 -8
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +8 -9
- package/node_modules/@smithy/util-defaults-mode-node/package.json +11 -12
- package/node_modules/@smithy/util-endpoints/package.json +9 -10
- package/node_modules/@smithy/util-middleware/package.json +6 -7
- package/node_modules/@smithy/util-retry/dist-cjs/index.js +123 -76
- package/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js +7 -4
- package/node_modules/@smithy/util-retry/dist-es/ConfiguredRetryStrategy.js +2 -2
- package/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js +24 -25
- package/node_modules/@smithy/util-retry/dist-es/DefaultRetryBackoffStrategy.js +14 -0
- package/node_modules/@smithy/util-retry/dist-es/DefaultRetryToken.js +25 -0
- package/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js +39 -26
- package/node_modules/@smithy/util-retry/dist-es/index.js +1 -0
- package/node_modules/@smithy/util-retry/dist-es/retries-2026-config.js +18 -0
- package/node_modules/@smithy/util-retry/package.json +10 -11
- package/node_modules/@smithy/util-stream/package.json +12 -13
- package/node_modules/@snazzah/davey-linux-x64-gnu/davey.linux-x64-gnu.node +0 -0
- package/node_modules/@snazzah/davey-linux-x64-gnu/package.json +43 -0
- package/node_modules/@snazzah/davey-linux-x64-musl/davey.linux-x64-musl.node +0 -0
- package/node_modules/@snazzah/davey-linux-x64-musl/package.json +43 -0
- package/node_modules/dotenv/lib/main.js +1 -1
- package/node_modules/dotenv/package.json +1 -1
- package/node_modules/dotenv/skills/dotenv/SKILL.md +32 -52
- package/node_modules/dotenv/skills/dotenvx/SKILL.md +57 -273
- package/node_modules/grammy/out/bot.js +1 -0
- package/node_modules/grammy/out/context.js +35 -0
- package/node_modules/grammy/out/convenience/keyboard.js +30 -2
- package/node_modules/grammy/out/core/api.js +34 -0
- package/node_modules/grammy/out/filter.js +6 -2
- package/node_modules/grammy/out/web.mjs +58 -10
- package/node_modules/grammy/package.json +2 -2
- package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +12 -0
- package/node_modules/lru-cache/dist/commonjs/index.js +227 -130
- package/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
- package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
- package/node_modules/lru-cache/dist/esm/diagnostics-channel.js +17 -0
- package/node_modules/lru-cache/dist/esm/index.js +227 -130
- package/node_modules/lru-cache/dist/esm/index.min.js +1 -1
- package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.mts.map +1 -0
- package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +8 -0
- package/node_modules/lru-cache/dist/esm/node/index.js +1688 -0
- package/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
- package/node_modules/lru-cache/package.json +29 -9
- package/node_modules/netmask/dist/netmask.js +58 -0
- package/node_modules/netmask/dist/netmask4.js +189 -0
- package/node_modules/netmask/dist/netmask6.js +187 -0
- package/node_modules/netmask/package.json +15 -6
- package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
- package/node_modules/path-expression-matcher/lib/pem.d.cts +93 -0
- package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
- package/node_modules/path-expression-matcher/package.json +1 -1
- package/node_modules/path-expression-matcher/src/ExpressionSet.js +189 -0
- package/node_modules/path-expression-matcher/src/Matcher.js +50 -20
- package/node_modules/path-expression-matcher/src/index.js +3 -2
- package/node_modules/strnum/package.json +1 -1
- package/package.json +1 -1
- package/preset-config.json +12 -0
- package/node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js +0 -14
- package/node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js +0 -11
- package/node_modules/netmask/CREDITS.md +0 -30
- package/node_modules/netmask/lib/netmask.coffee +0 -167
- package/node_modules/netmask/lib/netmask.js +0 -208
- package/node_modules/strnum/.github/SECURITY.md +0 -5
- package/node_modules/strnum/.vscode/launch.json +0 -25
- package/node_modules/strnum/algo.stflow +0 -84
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
- /package/node_modules/@smithy/middleware-retry/dist-es/{AdaptiveRetryStrategy.js โ retry-pre-sra-deprecated/AdaptiveRetryStrategy.js} +0 -0
- /package/node_modules/@smithy/middleware-retry/dist-es/{defaultRetryQuota.js โ retry-pre-sra-deprecated/defaultRetryQuota.js} +0 -0
- /package/node_modules/@smithy/middleware-retry/dist-es/{delayDecider.js โ retry-pre-sra-deprecated/delayDecider.js} +0 -0
- /package/node_modules/@smithy/middleware-retry/dist-es/{retryDecider.js โ retry-pre-sra-deprecated/retryDecider.js} +0 -0
- /package/node_modules/@smithy/middleware-retry/dist-es/{types.js โ retry-pre-sra-deprecated/types.js} +0 -0
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{lt as e}from"./plugins-CYLrFT4h.js";import{t}from"./exec-DHqLtFYt.js";import{n}from"./fetch-timeout-u8g99Ax0.js";import r from"node:path";import i from"node:fs/promises";const a=`stable`,o=`main`;function s(e){if(!e)return null;let t=e.trim().toLowerCase();return t===`stable`||t===`beta`||t===`dev`?t:null}function c(e){return e===`beta`?`beta`:e===`dev`?`dev`:`latest`}function l(e){return/(?:^|[.-])beta(?:[.-]|$)/i.test(e)}function u(e){return!l(e)}function d(e){if(e.configChannel)return{channel:e.configChannel,source:`config`};if(e.installKind===`git`){let t=e.git?.tag;if(t)return{channel:l(t)?`beta`:`stable`,source:`git-tag`};let n=e.git?.branch;return n&&n!==`HEAD`?{channel:`dev`,source:`git-branch`}:{channel:`dev`,source:`default`}}return e.installKind,{channel:a,source:`default`}}function f(e){return e.source===`config`?`${e.channel} (config)`:e.source===`git-tag`?e.gitTag?`${e.channel} (${e.gitTag})`:`${e.channel} (tag)`:e.source===`git-branch`?e.gitBranch?`${e.channel} (${e.gitBranch})`:`${e.channel} (branch)`:`${e.channel} (default)`}function p(e){let t=d({configChannel:e.configChannel,installKind:e.installKind,git:e.gitTag||e.gitBranch?{tag:e.gitTag??null,branch:e.gitBranch??null}:void 0});return{channel:t.channel,source:t.source,label:f({channel:t.channel,source:t.source,gitTag:e.gitTag??null,gitBranch:e.gitBranch??null})}}async function m(e){try{let t=await i.readFile(r.join(e,`package.json`),`utf-8`),n=JSON.parse(t)?.packageManager?.split(`@`)[0]?.trim();if(n===`pnpm`||n===`bun`||n===`npm`)return n}catch{}let t=await i.readdir(e).catch(()=>[]);return t.includes(`pnpm-lock.yaml`)?`pnpm`:t.includes(`bun.lockb`)?`bun`:t.includes(`package-lock.json`)?`npm`:null}function h(e){if(e.installKind!==`git`)return null;let t=e.git?.sha?e.git.sha.slice(0,8):null,n=e.git?.branch&&e.git.branch!==`HEAD`?e.git.branch:null,r=e.git?.tag??null;return[n??(r?`detached`:`git`),r?`tag ${r}`:null,t?`@ ${t}`:null].filter(Boolean).join(` ยท `)}async function g(e){try{return await i.access(e),!0}catch{return!1}}async function _(e){return await m(e)??`unknown`}async function v(e){let n=await t([`git`,`-C`,e,`rev-parse`,`--show-toplevel`],{timeoutMs:4e3}).catch(()=>null);if(!n||n.code!==0)return null;let i=n.stdout.trim();return i?r.resolve(i):null}async function y(e){let n=e.timeoutMs??6e3,i=r.resolve(e.root),a={root:i,sha:null,tag:null,branch:null,upstream:null,dirty:null,ahead:null,behind:null,fetchOk:null},o=await t([`git`,`-C`,i,`rev-parse`,`--abbrev-ref`,`HEAD`],{timeoutMs:n}).catch(()=>null);if(!o||o.code!==0)return{...a,error:o?.stderr?.trim()||`git unavailable`};let s=o.stdout.trim()||null,c=await t([`git`,`-C`,i,`rev-parse`,`HEAD`],{timeoutMs:n}).catch(()=>null),l=c&&c.code===0?c.stdout.trim():null,u=await t([`git`,`-C`,i,`describe`,`--tags`,`--exact-match`],{timeoutMs:n}).catch(()=>null),d=u&&u.code===0?u.stdout.trim():null,f=await t([`git`,`-C`,i,`rev-parse`,`--abbrev-ref`,`@{upstream}`],{timeoutMs:n}).catch(()=>null),p=f&&f.code===0?f.stdout.trim():null,m=await t([`git`,`-C`,i,`status`,`--porcelain`,`--`,`:!dist/control-ui/`],{timeoutMs:n}).catch(()=>null),h=m&&m.code===0?m.stdout.trim().length>0:null,g=e.fetch?await t([`git`,`-C`,i,`fetch`,`--quiet`,`--prune`],{timeoutMs:n}).then(e=>e.code===0).catch(()=>!1):null,_=p&&p.length>0?await t([`git`,`-C`,i,`rev-list`,`--left-right`,`--count`,`HEAD...${p}`],{timeoutMs:n}).catch(()=>null):null,v=_&&_.code===0?(e=>{let t=e.trim().split(/\s+/);if(t.length<2)return null;let n=Number.parseInt(t[0]??``,10),r=Number.parseInt(t[1]??``,10);return!Number.isFinite(n)||!Number.isFinite(r)?null:{ahead:n,behind:r}})(_.stdout):null;return{root:i,sha:l,tag:d,branch:s,upstream:p,dirty:h,ahead:v?.ahead??null,behind:v?.behind??null,fetchOk:g}}async function b(e){try{return(await i.stat(e)).mtimeMs}catch{return null}}function x(e){let t=e.root;return e.manager===`pnpm`?{lockfilePath:r.join(t,`pnpm-lock.yaml`),markerPath:r.join(t,`node_modules`,`.modules.yaml`)}:e.manager===`bun`?{lockfilePath:r.join(t,`bun.lockb`),markerPath:r.join(t,`node_modules`)}:e.manager===`npm`?{lockfilePath:r.join(t,`package-lock.json`),markerPath:r.join(t,`node_modules`)}:{lockfilePath:null,markerPath:null}}async function S(e){let{lockfilePath:t,markerPath:n}=x({root:r.resolve(e.root),manager:e.manager});if(!t||!n)return{manager:e.manager,status:`unknown`,lockfilePath:t,markerPath:n,reason:`unknown package manager`};let i=await g(t),a=await g(n);if(!i)return{manager:e.manager,status:`unknown`,lockfilePath:t,markerPath:n,reason:`lockfile missing`};if(!a)return{manager:e.manager,status:`missing`,lockfilePath:t,markerPath:n,reason:`node_modules marker missing`};let o=await b(t),s=await b(n);return!o||!s?{manager:e.manager,status:`unknown`,lockfilePath:t,markerPath:n}:o>s+1e3?{manager:e.manager,status:`stale`,lockfilePath:t,markerPath:n,reason:`lockfile newer than install marker`}:{manager:e.manager,status:`ok`,lockfilePath:t,markerPath:n}}async function C(e){let t=await w({tag:`latest`,timeoutMs:e?.timeoutMs});return{latestVersion:t.version,error:t.error}}async function w(e){let t=e?.timeoutMs??3500,r=e.tag;try{let e=await n(`https://registry.npmjs.org/openclaw/${encodeURIComponent(r)}`,{},Math.max(250,t));if(!e.ok)return{tag:r,version:null,error:`HTTP ${e.status}`};let i=await e.json();return{tag:r,version:typeof i?.version==`string`?i.version:null}}catch(e){return{tag:r,version:null,error:String(e)}}}async function T(e){let t=c(e.channel),n=await w({tag:t,timeoutMs:e.timeoutMs});if(e.channel!==`beta`)return{tag:t,version:n.version};let r=await w({tag:`latest`,timeoutMs:e.timeoutMs});if(!r.version)return{tag:t,version:n.version};if(!n.version)return{tag:`latest`,version:r.version};let i=E(n.version,r.version);return i!=null&&i<0?{tag:`latest`,version:r.version}:{tag:t,version:n.version}}function E(e,t){let n=D(e),r=D(t);return!n||!r?null:n.major===r.major?n.minor===r.minor?n.patch===r.patch?k(n.prerelease,r.prerelease):n.patch<r.patch?-1:1:n.minor<r.minor?-1:1:n.major<r.major?-1:1}function D(e){if(!e)return null;let t=O(e.trim()),n=/^v?([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(t);if(!n)return null;let[,r,i,a,o]=n;return!r||!i||!a?null:{major:Number.parseInt(r,10),minor:Number.parseInt(i,10),patch:Number.parseInt(a,10),prerelease:o?o.split(`.`).filter(Boolean):null}}function O(e){let t=e.trim(),n=/^([vV]?[0-9]+\.[0-9]+\.[0-9]+)\.beta(?:\.([0-9A-Za-z.-]+))?$/.exec(t);if(!n)return t;let r=n[1],i=n[2];return i?`${r}-beta.${i}`:`${r}-beta`}function k(e,t){if(!e?.length&&!t?.length)return 0;if(!e?.length)return 1;if(!t?.length)return-1;let n=Math.max(e.length,t.length);for(let r=0;r<n;r+=1){let n=e[r],i=t[r];if(n==null&&i==null)return 0;if(n==null)return-1;if(i==null)return 1;if(n===i)continue;let a=/^[0-9]+$/.test(n),o=/^[0-9]+$/.test(i);return a&&o?Number.parseInt(n,10)<Number.parseInt(i,10)?-1:1:a&&!o?-1:!a&&o?1:n<i?-1:1}return 0}async function A(e){let t=e.timeoutMs??6e3,n=e.root?r.resolve(e.root):null;if(!n)return{root:null,installKind:`unknown`,packageManager:`unknown`,registry:e.includeRegistry?await C({timeoutMs:t}):void 0};let i=await _(n),a=await v(n),o=a&&r.resolve(a)===n;return{root:n,installKind:o?`git`:`package`,packageManager:i,git:o?await y({root:n,timeoutMs:t,fetch:!!e.fetchGit}):void 0,deps:await S({root:n,manager:i}),registry:e.includeRegistry?await C({timeoutMs:t}):void 0}}async function j(t,n){let r=t.config.listAccountIds(n),i=e({plugin:t,cfg:n,accountIds:r}),a=t.config.resolveAccount(n,i);return{accountIds:r,defaultAccountId:i,account:a,enabled:t.config.isEnabled?t.config.isEnabled(a,n):!0,configured:t.config.isConfigured?await t.config.isConfigured(a,n):!0}}export{h as a,a as c,f as d,l as f,p as g,d as h,w as i,o as l,s as m,A as n,T as o,u as p,E as r,m as s,j as t,c as u};
|
|
2
|
+
//# sourceMappingURL=channel-account-context-BMPAMZEv.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{lt as e}from"./plugins-DNlgeTTc.js";import{t}from"./exec-B3eleY5O.js";import{n}from"./fetch-timeout-CdYxWG9w.js";import r from"node:path";import i from"node:fs/promises";const a=`stable`,o=`main`;function s(e){if(!e)return null;let t=e.trim().toLowerCase();return t===`stable`||t===`beta`||t===`dev`?t:null}function c(e){return e===`beta`?`beta`:e===`dev`?`dev`:`latest`}function l(e){return/(?:^|[.-])beta(?:[.-]|$)/i.test(e)}function u(e){return!l(e)}function d(e){if(e.configChannel)return{channel:e.configChannel,source:`config`};if(e.installKind===`git`){let t=e.git?.tag;if(t)return{channel:l(t)?`beta`:`stable`,source:`git-tag`};let n=e.git?.branch;return n&&n!==`HEAD`?{channel:`dev`,source:`git-branch`}:{channel:`dev`,source:`default`}}return e.installKind,{channel:a,source:`default`}}function f(e){return e.source===`config`?`${e.channel} (config)`:e.source===`git-tag`?e.gitTag?`${e.channel} (${e.gitTag})`:`${e.channel} (tag)`:e.source===`git-branch`?e.gitBranch?`${e.channel} (${e.gitBranch})`:`${e.channel} (branch)`:`${e.channel} (default)`}function p(e){let t=d({configChannel:e.configChannel,installKind:e.installKind,git:e.gitTag||e.gitBranch?{tag:e.gitTag??null,branch:e.gitBranch??null}:void 0});return{channel:t.channel,source:t.source,label:f({channel:t.channel,source:t.source,gitTag:e.gitTag??null,gitBranch:e.gitBranch??null})}}async function m(e){try{let t=await i.readFile(r.join(e,`package.json`),`utf-8`),n=JSON.parse(t)?.packageManager?.split(`@`)[0]?.trim();if(n===`pnpm`||n===`bun`||n===`npm`)return n}catch{}let t=await i.readdir(e).catch(()=>[]);return t.includes(`pnpm-lock.yaml`)?`pnpm`:t.includes(`bun.lockb`)?`bun`:t.includes(`package-lock.json`)?`npm`:null}function h(e){if(e.installKind!==`git`)return null;let t=e.git?.sha?e.git.sha.slice(0,8):null,n=e.git?.branch&&e.git.branch!==`HEAD`?e.git.branch:null,r=e.git?.tag??null;return[n??(r?`detached`:`git`),r?`tag ${r}`:null,t?`@ ${t}`:null].filter(Boolean).join(` ยท `)}async function g(e){try{return await i.access(e),!0}catch{return!1}}async function _(e){return await m(e)??`unknown`}async function v(e){let n=await t([`git`,`-C`,e,`rev-parse`,`--show-toplevel`],{timeoutMs:4e3}).catch(()=>null);if(!n||n.code!==0)return null;let i=n.stdout.trim();return i?r.resolve(i):null}async function y(e){let n=e.timeoutMs??6e3,i=r.resolve(e.root),a={root:i,sha:null,tag:null,branch:null,upstream:null,dirty:null,ahead:null,behind:null,fetchOk:null},o=await t([`git`,`-C`,i,`rev-parse`,`--abbrev-ref`,`HEAD`],{timeoutMs:n}).catch(()=>null);if(!o||o.code!==0)return{...a,error:o?.stderr?.trim()||`git unavailable`};let s=o.stdout.trim()||null,c=await t([`git`,`-C`,i,`rev-parse`,`HEAD`],{timeoutMs:n}).catch(()=>null),l=c&&c.code===0?c.stdout.trim():null,u=await t([`git`,`-C`,i,`describe`,`--tags`,`--exact-match`],{timeoutMs:n}).catch(()=>null),d=u&&u.code===0?u.stdout.trim():null,f=await t([`git`,`-C`,i,`rev-parse`,`--abbrev-ref`,`@{upstream}`],{timeoutMs:n}).catch(()=>null),p=f&&f.code===0?f.stdout.trim():null,m=await t([`git`,`-C`,i,`status`,`--porcelain`,`--`,`:!dist/control-ui/`],{timeoutMs:n}).catch(()=>null),h=m&&m.code===0?m.stdout.trim().length>0:null,g=e.fetch?await t([`git`,`-C`,i,`fetch`,`--quiet`,`--prune`],{timeoutMs:n}).then(e=>e.code===0).catch(()=>!1):null,_=p&&p.length>0?await t([`git`,`-C`,i,`rev-list`,`--left-right`,`--count`,`HEAD...${p}`],{timeoutMs:n}).catch(()=>null):null,v=_&&_.code===0?(e=>{let t=e.trim().split(/\s+/);if(t.length<2)return null;let n=Number.parseInt(t[0]??``,10),r=Number.parseInt(t[1]??``,10);return!Number.isFinite(n)||!Number.isFinite(r)?null:{ahead:n,behind:r}})(_.stdout):null;return{root:i,sha:l,tag:d,branch:s,upstream:p,dirty:h,ahead:v?.ahead??null,behind:v?.behind??null,fetchOk:g}}async function b(e){try{return(await i.stat(e)).mtimeMs}catch{return null}}function x(e){let t=e.root;return e.manager===`pnpm`?{lockfilePath:r.join(t,`pnpm-lock.yaml`),markerPath:r.join(t,`node_modules`,`.modules.yaml`)}:e.manager===`bun`?{lockfilePath:r.join(t,`bun.lockb`),markerPath:r.join(t,`node_modules`)}:e.manager===`npm`?{lockfilePath:r.join(t,`package-lock.json`),markerPath:r.join(t,`node_modules`)}:{lockfilePath:null,markerPath:null}}async function S(e){let{lockfilePath:t,markerPath:n}=x({root:r.resolve(e.root),manager:e.manager});if(!t||!n)return{manager:e.manager,status:`unknown`,lockfilePath:t,markerPath:n,reason:`unknown package manager`};let i=await g(t),a=await g(n);if(!i)return{manager:e.manager,status:`unknown`,lockfilePath:t,markerPath:n,reason:`lockfile missing`};if(!a)return{manager:e.manager,status:`missing`,lockfilePath:t,markerPath:n,reason:`node_modules marker missing`};let o=await b(t),s=await b(n);return!o||!s?{manager:e.manager,status:`unknown`,lockfilePath:t,markerPath:n}:o>s+1e3?{manager:e.manager,status:`stale`,lockfilePath:t,markerPath:n,reason:`lockfile newer than install marker`}:{manager:e.manager,status:`ok`,lockfilePath:t,markerPath:n}}async function C(e){let t=await w({tag:`latest`,timeoutMs:e?.timeoutMs});return{latestVersion:t.version,error:t.error}}async function w(e){let t=e?.timeoutMs??3500,r=e.tag;try{let e=await n(`https://registry.npmjs.org/openclaw/${encodeURIComponent(r)}`,{},Math.max(250,t));if(!e.ok)return{tag:r,version:null,error:`HTTP ${e.status}`};let i=await e.json();return{tag:r,version:typeof i?.version==`string`?i.version:null}}catch(e){return{tag:r,version:null,error:String(e)}}}async function T(e){let t=c(e.channel),n=await w({tag:t,timeoutMs:e.timeoutMs});if(e.channel!==`beta`)return{tag:t,version:n.version};let r=await w({tag:`latest`,timeoutMs:e.timeoutMs});if(!r.version)return{tag:t,version:n.version};if(!n.version)return{tag:`latest`,version:r.version};let i=E(n.version,r.version);return i!=null&&i<0?{tag:`latest`,version:r.version}:{tag:t,version:n.version}}function E(e,t){let n=D(e),r=D(t);return!n||!r?null:n.major===r.major?n.minor===r.minor?n.patch===r.patch?k(n.prerelease,r.prerelease):n.patch<r.patch?-1:1:n.minor<r.minor?-1:1:n.major<r.major?-1:1}function D(e){if(!e)return null;let t=O(e.trim()),n=/^v?([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(t);if(!n)return null;let[,r,i,a,o]=n;return!r||!i||!a?null:{major:Number.parseInt(r,10),minor:Number.parseInt(i,10),patch:Number.parseInt(a,10),prerelease:o?o.split(`.`).filter(Boolean):null}}function O(e){let t=e.trim(),n=/^([vV]?[0-9]+\.[0-9]+\.[0-9]+)\.beta(?:\.([0-9A-Za-z.-]+))?$/.exec(t);if(!n)return t;let r=n[1],i=n[2];return i?`${r}-beta.${i}`:`${r}-beta`}function k(e,t){if(!e?.length&&!t?.length)return 0;if(!e?.length)return 1;if(!t?.length)return-1;let n=Math.max(e.length,t.length);for(let r=0;r<n;r+=1){let n=e[r],i=t[r];if(n==null&&i==null)return 0;if(n==null)return-1;if(i==null)return 1;if(n===i)continue;let a=/^[0-9]+$/.test(n),o=/^[0-9]+$/.test(i);return a&&o?Number.parseInt(n,10)<Number.parseInt(i,10)?-1:1:a&&!o?-1:!a&&o?1:n<i?-1:1}return 0}async function A(e){let t=e.timeoutMs??6e3,n=e.root?r.resolve(e.root):null;if(!n)return{root:null,installKind:`unknown`,packageManager:`unknown`,registry:e.includeRegistry?await C({timeoutMs:t}):void 0};let i=await _(n),a=await v(n),o=a&&r.resolve(a)===n;return{root:n,installKind:o?`git`:`package`,packageManager:i,git:o?await y({root:n,timeoutMs:t,fetch:!!e.fetchGit}):void 0,deps:await S({root:n,manager:i}),registry:e.includeRegistry?await C({timeoutMs:t}):void 0}}async function j(t,n){let r=t.config.listAccountIds(n),i=e({plugin:t,cfg:n,accountIds:r}),a=t.config.resolveAccount(n,i);return{accountIds:r,defaultAccountId:i,account:a,enabled:t.config.isEnabled?t.config.isEnabled(a,n):!0,configured:t.config.isConfigured?await t.config.isConfigured(a,n):!0}}export{h as a,a as c,f as d,l as f,p as g,d as h,w as i,o as l,s as m,A as n,T as o,u as p,E as r,m as s,j as t,c as u};
|
|
2
|
+
//# sourceMappingURL=channel-account-context-DAcarnqW.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
const e=new Map;function t(e,t){return`${e}:${t||`default`}`}function n(n,r){let i=t(n,r),a=e.get(i);if(a)return a;let o={inboundAt:null,outboundAt:null};return e.set(i,o),o}function r(e){let t=typeof e.at==`number`?e.at:Date.now(),r=e.accountId?.trim()||`default`,i=n(e.channel,r);e.direction===`inbound`&&(i.inboundAt=t),e.direction===`outbound`&&(i.outboundAt=t)}export{r as t};
|
|
2
|
+
//# sourceMappingURL=channel-activity-B04WbrrK.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{t as e}from"./subsystem-BLbY429l.js";import{Ll as t,Rl as n}from"./auth-profiles-T8DuH3ax.js";import{r}from"./errors-6SQWM9dj.js";import{RateLimitError as i}from"@buape/carbon";const a={attempts:3,minDelayMs:500,maxDelayMs:3e4,jitter:.1},o={attempts:3,minDelayMs:400,maxDelayMs:3e4,jitter:.1},s=/429|timeout|connect|reset|closed|unavailable|temporarily/i,c=e(`retry-policy`);function l(e){return e.shouldRetry?e.strictShouldRetry?e.shouldRetry:t=>e.shouldRetry?.(t)||s.test(r(t)):e=>s.test(r(e))}function u(e){if(!e||typeof e!=`object`)return;let t=`parameters`in e&&e.parameters&&typeof e.parameters==`object`?e.parameters.retry_after:`response`in e&&e.response&&typeof e.response==`object`&&`parameters`in e.response?e.response.parameters?.retry_after:`error`in e&&e.error&&typeof e.error==`object`&&`parameters`in e.error?e.error.parameters?.retry_after:void 0;return typeof t==`number`&&Number.isFinite(t)?t*1e3:void 0}function d(e){let r=t(a,{...e.configRetry,...e.retry});return(t,a)=>n(t,{...r,label:a,shouldRetry:e=>e instanceof i,retryAfterMs:e=>e instanceof i?e.retryAfter*1e3:void 0,onRetry:e.verbose?e=>{let t=e.label??`request`,n=Math.max(1,e.maxAttempts-1);c.warn(`discord ${t} rate limited, retry ${e.attempt}/${n} in ${e.delayMs}ms`)}:void 0})}function f(e){let i=t(o,{...e.configRetry,...e.retry}),a=l(e);return(t,o)=>n(t,{...i,label:o,shouldRetry:a,retryAfterMs:u,onRetry:e.verbose?e=>{let t=Math.max(1,e.maxAttempts-1);c.warn(`telegram send retry ${e.attempt}/${t} for ${e.label??o??`request`} in ${e.delayMs}ms: ${r(e.err)}`)}:void 0})}const p=new Map;function m(e,t){return`${e}:${t||`default`}`}function h(e,t){let n=m(e,t),r=p.get(n);if(r)return r;let i={inboundAt:null,outboundAt:null};return p.set(n,i),i}function g(e){let t=typeof e.at==`number`?e.at:Date.now(),n=e.accountId?.trim()||`default`,r=h(e.channel,n);e.direction===`inbound`&&(r.inboundAt=t),e.direction===`outbound`&&(r.outboundAt=t)}function _(e){let t=e.accountId?.trim()||`default`;return p.get(m(e.channel,t))??{inboundAt:null,outboundAt:null}}export{f as i,g as n,d as r,_ as t};
|
|
2
|
+
//# sourceMappingURL=channel-activity-BBrgoad1.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{t as e}from"./subsystem-Bc2XrjUz.js";import{E as t,T as n,zi as r}from"./model-selection-B5JsBS9D.js";import{RateLimitError as i}from"@buape/carbon";const a={attempts:3,minDelayMs:500,maxDelayMs:3e4,jitter:.1},o={attempts:3,minDelayMs:400,maxDelayMs:3e4,jitter:.1},s=/429|timeout|connect|reset|closed|unavailable|temporarily/i,c=e(`retry-policy`);function l(e){return e.shouldRetry?e.strictShouldRetry?e.shouldRetry:t=>e.shouldRetry?.(t)||s.test(r(t)):e=>s.test(r(e))}function u(e){if(!e||typeof e!=`object`)return;let t=`parameters`in e&&e.parameters&&typeof e.parameters==`object`?e.parameters.retry_after:`response`in e&&e.response&&typeof e.response==`object`&&`parameters`in e.response?e.response.parameters?.retry_after:`error`in e&&e.error&&typeof e.error==`object`&&`parameters`in e.error?e.error.parameters?.retry_after:void 0;return typeof t==`number`&&Number.isFinite(t)?t*1e3:void 0}function d(e){let r=n(a,{...e.configRetry,...e.retry});return(n,a)=>t(n,{...r,label:a,shouldRetry:e=>e instanceof i,retryAfterMs:e=>e instanceof i?e.retryAfter*1e3:void 0,onRetry:e.verbose?e=>{let t=e.label??`request`,n=Math.max(1,e.maxAttempts-1);c.warn(`discord ${t} rate limited, retry ${e.attempt}/${n} in ${e.delayMs}ms`)}:void 0})}function f(e){let i=n(o,{...e.configRetry,...e.retry}),a=l(e);return(n,o)=>t(n,{...i,label:o,shouldRetry:a,retryAfterMs:u,onRetry:e.verbose?e=>{let t=Math.max(1,e.maxAttempts-1);c.warn(`telegram send retry ${e.attempt}/${t} for ${e.label??o??`request`} in ${e.delayMs}ms: ${r(e.err)}`)}:void 0})}const p=new Map;function m(e,t){return`${e}:${t||`default`}`}function h(e,t){let n=m(e,t),r=p.get(n);if(r)return r;let i={inboundAt:null,outboundAt:null};return p.set(n,i),i}function g(e){let t=typeof e.at==`number`?e.at:Date.now(),n=e.accountId?.trim()||`default`,r=h(e.channel,n);e.direction===`inbound`&&(r.inboundAt=t),e.direction===`outbound`&&(r.outboundAt=t)}function _(e){let t=e.accountId?.trim()||`default`;return p.get(m(e.channel,t))??{inboundAt:null,outboundAt:null}}export{f as i,g as n,d as r,_ as t};
|
|
2
|
+
//# sourceMappingURL=channel-activity-CgbOWaay.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{O as e}from"./logger-DwWqfo66.js";import{T as t,w as n,zi as r}from"./model-selection-vfhBuN9O.js";import{RateLimitError as i}from"@buape/carbon";const a={attempts:3,minDelayMs:500,maxDelayMs:3e4,jitter:.1},o={attempts:3,minDelayMs:400,maxDelayMs:3e4,jitter:.1},s=/429|timeout|connect|reset|closed|unavailable|temporarily/i,c=e(`retry-policy`);function l(e){return e.shouldRetry?e.strictShouldRetry?e.shouldRetry:t=>e.shouldRetry?.(t)||s.test(r(t)):e=>s.test(r(e))}function u(e){if(!e||typeof e!=`object`)return;let t=`parameters`in e&&e.parameters&&typeof e.parameters==`object`?e.parameters.retry_after:`response`in e&&e.response&&typeof e.response==`object`&&`parameters`in e.response?e.response.parameters?.retry_after:`error`in e&&e.error&&typeof e.error==`object`&&`parameters`in e.error?e.error.parameters?.retry_after:void 0;return typeof t==`number`&&Number.isFinite(t)?t*1e3:void 0}function d(e){let r=n(a,{...e.configRetry,...e.retry});return(n,a)=>t(n,{...r,label:a,shouldRetry:e=>e instanceof i,retryAfterMs:e=>e instanceof i?e.retryAfter*1e3:void 0,onRetry:e.verbose?e=>{let t=e.label??`request`,n=Math.max(1,e.maxAttempts-1);c.warn(`discord ${t} rate limited, retry ${e.attempt}/${n} in ${e.delayMs}ms`)}:void 0})}function f(e){let i=n(o,{...e.configRetry,...e.retry}),a=l(e);return(n,o)=>t(n,{...i,label:o,shouldRetry:a,retryAfterMs:u,onRetry:e.verbose?e=>{let t=Math.max(1,e.maxAttempts-1);c.warn(`telegram send retry ${e.attempt}/${t} for ${e.label??o??`request`} in ${e.delayMs}ms: ${r(e.err)}`)}:void 0})}const p=new Map;function m(e,t){return`${e}:${t||`default`}`}function h(e,t){let n=m(e,t),r=p.get(n);if(r)return r;let i={inboundAt:null,outboundAt:null};return p.set(n,i),i}function g(e){let t=typeof e.at==`number`?e.at:Date.now(),n=e.accountId?.trim()||`default`,r=h(e.channel,n);e.direction===`inbound`&&(r.inboundAt=t),e.direction===`outbound`&&(r.outboundAt=t)}function _(e){let t=e.accountId?.trim()||`default`;return p.get(m(e.channel,t))??{inboundAt:null,outboundAt:null}}export{f as i,g as n,d as r,_ as t};
|
|
2
|
+
//# sourceMappingURL=channel-activity-YIMhOAUo.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{t as e}from"./subsystem-C5XF2Fy5.js";import{$ as t,et as n}from"./model-selection-BlC_rXAN.js";import{r}from"./errors-Bunti32V.js";import{RateLimitError as i}from"@buape/carbon";const a={attempts:3,minDelayMs:500,maxDelayMs:3e4,jitter:.1},o={attempts:3,minDelayMs:400,maxDelayMs:3e4,jitter:.1},s=/429|timeout|connect|reset|closed|unavailable|temporarily/i,c=e(`retry-policy`);function l(e){return e.shouldRetry?e.strictShouldRetry?e.shouldRetry:t=>e.shouldRetry?.(t)||s.test(r(t)):e=>s.test(r(e))}function u(e){if(!e||typeof e!=`object`)return;let t=`parameters`in e&&e.parameters&&typeof e.parameters==`object`?e.parameters.retry_after:`response`in e&&e.response&&typeof e.response==`object`&&`parameters`in e.response?e.response.parameters?.retry_after:`error`in e&&e.error&&typeof e.error==`object`&&`parameters`in e.error?e.error.parameters?.retry_after:void 0;return typeof t==`number`&&Number.isFinite(t)?t*1e3:void 0}function d(e){let r=t(a,{...e.configRetry,...e.retry});return(t,a)=>n(t,{...r,label:a,shouldRetry:e=>e instanceof i,retryAfterMs:e=>e instanceof i?e.retryAfter*1e3:void 0,onRetry:e.verbose?e=>{let t=e.label??`request`,n=Math.max(1,e.maxAttempts-1);c.warn(`discord ${t} rate limited, retry ${e.attempt}/${n} in ${e.delayMs}ms`)}:void 0})}function f(e){let i=t(o,{...e.configRetry,...e.retry}),a=l(e);return(t,o)=>n(t,{...i,label:o,shouldRetry:a,retryAfterMs:u,onRetry:e.verbose?e=>{let t=Math.max(1,e.maxAttempts-1);c.warn(`telegram send retry ${e.attempt}/${t} for ${e.label??o??`request`} in ${e.delayMs}ms: ${r(e.err)}`)}:void 0})}const p=new Map;function m(e,t){return`${e}:${t||`default`}`}function h(e,t){let n=m(e,t),r=p.get(n);if(r)return r;let i={inboundAt:null,outboundAt:null};return p.set(n,i),i}function g(e){let t=typeof e.at==`number`?e.at:Date.now(),n=e.accountId?.trim()||`default`,r=h(e.channel,n);e.direction===`inbound`&&(r.inboundAt=t),e.direction===`outbound`&&(r.outboundAt=t)}function _(e){let t=e.accountId?.trim()||`default`;return p.get(m(e.channel,t))??{inboundAt:null,outboundAt:null}}export{f as i,g as n,d as r,_ as t};
|
|
2
|
+
//# sourceMappingURL=channel-activity-YjYNzCpJ.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{t as e}from"./env-D7wNuBx1.js";import{n as t}from"./registry-hFAtCSWG.js";import{n}from"./plugins-CYLrFT4h.js";import{a as r}from"./plugin-auto-enable-DpVL6-ES.js";import{t as i}from"./plugin-registry-CIBiHZH1.js";import{fileURLToPath as a}from"node:url";import o from"node:fs";import s from"node:path";function c(e){let t=new Set,n=[];for(let r of e)!r||t.has(r)||(t.add(r),n.push(r));return n}let l;function u(){if(l!==void 0)return l;try{let e=s.resolve(s.dirname(a(import.meta.url)),`..`,`cli-startup-metadata.json`),t=o.readFileSync(e,`utf8`),n=JSON.parse(t);if(Array.isArray(n.channelOptions))return l=c(n.channelOptions.filter(e=>typeof e==`string`)),l}catch{}return l=null,null}function d(){if(e(process.env.OPENCLAW_EAGER_CHANNEL_OPTIONS)){let e=r().map(e=>e.id),a=c([...t,...e]);i();let o=n().map(e=>e.id);return c([...a,...o])}let a=u(),o=r().map(e=>e.id);return c(a?[...a,...o]:[...t,...o])}function f(e=[]){return[...e,...d()].join(`|`)}export{d as n,f as t};
|
|
2
|
+
//# sourceMappingURL=channel-options-CEIzjOno.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{i as e}from"./entry.js";import{n as t}from"./registry-BptzrW8D.js";import{n}from"./plugins-DNlgeTTc.js";import{a as r}from"./plugin-auto-enable-NzmNh4oU.js";import{t as i}from"./plugin-registry-C6dY-Et7.js";import{fileURLToPath as a}from"node:url";import o from"node:path";import s from"node:fs";function c(e){let t=new Set,n=[];for(let r of e)!r||t.has(r)||(t.add(r),n.push(r));return n}let l;function u(){if(l!==void 0)return l;try{let e=o.resolve(o.dirname(a(import.meta.url)),`..`,`cli-startup-metadata.json`),t=s.readFileSync(e,`utf8`),n=JSON.parse(t);if(Array.isArray(n.channelOptions))return l=c(n.channelOptions.filter(e=>typeof e==`string`)),l}catch{}return l=null,null}function d(){if(e(process.env.OPENCLAW_EAGER_CHANNEL_OPTIONS)){let e=r().map(e=>e.id),a=c([...t,...e]);i();let o=n().map(e=>e.id);return c([...a,...o])}let a=u(),o=r().map(e=>e.id);return c(a?[...a,...o]:[...t,...o])}function f(e=[]){return[...e,...d()].join(`|`)}export{d as n,f as t};
|
|
2
|
+
//# sourceMappingURL=channel-options-D2syI791.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{Zn as e,ir as t,rr as n}from"./auth-profiles-T8DuH3ax.js";import{n as r}from"./plugins-DNlgeTTc.js";const i=()=>n();function a(e){return i().includes(e)}function o(n){let r=t(n);if(r&&e(r)&&a(r))return r}function s(e){return!e||typeof e!=`object`?!0:e.enabled!==!1}async function c(e,t){let n=e.config.listAccountIds(t);if(n.length===0)return!1;for(let r of n){let n=e.config.resolveAccount(t,r);if((e.config.isEnabled?e.config.isEnabled(n,t):s(n))&&(!e.config.isConfigured||await e.config.isConfigured(n,t)))return!0}return!1}async function l(e){let t=[];for(let n of r())a(n.id)&&await c(n,e)&&t.push(n.id);return t}async function u(e){let n=t(e.channel);if(n){if(!a(n)){let t=o(e.fallbackChannel);if(t)return{channel:t,configured:await l(e.cfg),source:`tool-context-fallback`};throw Error(`Unknown channel: ${String(n)}`)}return{channel:n,configured:await l(e.cfg),source:`explicit`}}let r=o(e.fallbackChannel);if(r)return{channel:r,configured:await l(e.cfg),source:`tool-context-fallback`};let i=await l(e.cfg);if(i.length===1)return{channel:i[0],configured:i,source:`single-configured`};throw i.length===0?Error(`Channel is required (no configured channels detected).`):Error(`Channel is required when multiple channels are configured: ${i.join(`, `)}`)}export{u as n,l as t};
|
|
2
|
+
//# sourceMappingURL=channel-selection-BBeE1TmB.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{gi as e,hi as t,li as n}from"./model-selection-BlC_rXAN.js";import{n as r}from"./plugins-CYLrFT4h.js";const i=()=>t();function a(e){return i().includes(e)}function o(t){let r=e(t);if(r&&n(r)&&a(r))return r}function s(e){return!e||typeof e!=`object`?!0:e.enabled!==!1}async function c(e,t){let n=e.config.listAccountIds(t);if(n.length===0)return!1;for(let r of n){let n=e.config.resolveAccount(t,r);if((e.config.isEnabled?e.config.isEnabled(n,t):s(n))&&(!e.config.isConfigured||await e.config.isConfigured(n,t)))return!0}return!1}async function l(e){let t=[];for(let n of r())a(n.id)&&await c(n,e)&&t.push(n.id);return t}async function u(t){let n=e(t.channel);if(n){if(!a(n)){let e=o(t.fallbackChannel);if(e)return{channel:e,configured:await l(t.cfg),source:`tool-context-fallback`};throw Error(`Unknown channel: ${String(n)}`)}return{channel:n,configured:await l(t.cfg),source:`explicit`}}let r=o(t.fallbackChannel);if(r)return{channel:r,configured:await l(t.cfg),source:`tool-context-fallback`};let i=await l(t.cfg);if(i.length===1)return{channel:i[0],configured:i,source:`single-configured`};throw i.length===0?Error(`Channel is required (no configured channels detected).`):Error(`Channel is required when multiple channels are configured: ${i.join(`, `)}`)}export{u as n,l as t};
|
|
2
|
+
//# sourceMappingURL=channel-selection-CbNtbAEf.js.map
|
|
@@ -3,3 +3,4 @@ import{S as e,T as t,j as n,p as r,t as i}from"./subsystem-BLbY429l.js";import{H
|
|
|
3
3
|
`),a={...t,body:i,mentionedJids:n.size>0?Array.from(n):void 0};await r.onMessage(a)},onError:e=>{a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}}),g=new Map,_=300*1e3,v=s.signalRepository?.lidMapping,b=async e=>y(e,{authDir:r.authDir,lidLookup:v}),S=async t=>{let n=g.get(t);if(n&&n.expires>Date.now())return n;try{let e=await s.groupMetadata(t),n=(await Promise.all(e.participants?.map(async e=>await b(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:e.subject,participants:n,expires:Date.now()+_};return g.set(t,r),r}catch(n){return e(`Failed to fetch group metadata for ${t}: ${String(n)}`),{expires:Date.now()+_}}},C=async e=>{let t=e.key?.id??void 0,n=e.key?.remoteJid;if(!n||n.endsWith(`@status`)||n.endsWith(`@broadcast`))return null;let i=We(n)===!0;if(t&&Qe(`${r.accountId}:${n}:${t}`))return null;let a=e.key?.participant??void 0,o=i?n:await b(n);if(!o)return null;let l=i?a?await b(a):null:o,u,d;if(i){let e=await S(n);u=e.subject,d=e.participants}let f=e.messageTimestamp?Number(e.messageTimestamp)*1e3:void 0,p=await yt({accountId:r.accountId,from:o,selfE164:m,senderE164:l,group:i,pushName:e.pushName??void 0,isFromMe:!!e.key?.fromMe,messageTimestampMs:f,connectedAtMs:c,sock:{sendMessage:(e,t)=>s.sendMessage(e,t)},remoteJid:n});return p.allowed?{id:t,remoteJid:n,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},w=async n=>{let{id:i,remoteJid:a,participantJid:o,access:c}=n;if(i&&!c.isSelfChat&&r.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:a,id:i,participant:o,fromMe:!1}]),t()&&e(`Marked message ${i} as read for ${a}${o?` (participant ${o})`:``}`)}catch(t){e(`Failed to mark message ${i} read: ${String(t)}`)}else i&&c.isSelfChat&&t()&&e(`Self-chat mode: skipping read receipt for ${i}`)},ee=async t=>{let n=gt(t.message??void 0),i=n?K(n):void 0,a=st(t.message??void 0);if(i&&(a=[a,i].filter(Boolean).join(`
|
|
4
4
|
`).trim()),!a&&(a=ct(t.message??void 0),!a))return null;let o=_t(t.message),c,l,d;try{let e=await St(t,s);if(e){let t=(typeof r.mediaMaxMb==`number`&&r.mediaMaxMb>0?r.mediaMaxMb:50)*1024*1024;c=(await u(e.buffer,e.mimetype,`inbound`,t,e.fileName)).path,l=e.mimetype,d=e.fileName}}catch(t){e(`Inbound media download failed: ${String(t)}`)}return{body:a,location:n??void 0,replyContext:o,mediaPath:c,mediaType:l,mediaFileName:d}},T=async(t,n,r)=>{let i=n.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,i)}catch(t){e(`Presence update failed: ${String(t)}`)}},l=async e=>{await s.sendMessage(i,{text:e})},u=async e=>{await s.sendMessage(i,e)},d=n.messageTimestampMs,f=ot(t.message),g=t.pushName??void 0;a.info({from:n.from,to:m??`me`,body:r.body,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName,timestamp:d},`inbound message`);let _={id:n.id,from:n.from,conversationId:n.from,to:m??`me`,accountId:n.access.resolvedAccountId,body:r.body,pushName:g,timestamp:d,chatType:n.group?`group`:`direct`,chatId:n.remoteJid,senderJid:n.participantJid,senderE164:n.senderE164??void 0,senderName:g,replyToId:r.replyContext?.id,replyToBody:r.replyContext?.body,replyToSender:r.replyContext?.sender,replyToSenderJid:r.replyContext?.senderJid,replyToSenderE164:r.replyContext?.senderE164,groupSubject:n.groupSubject,groupParticipants:n.groupParticipants,mentionedJids:f??void 0,selfJid:p,selfE164:m,fromMe:!!t.key?.fromMe,location:r.location??void 0,sendComposing:c,reply:l,sendMedia:u,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName};try{Promise.resolve(h.enqueue(_)).catch(e=>{a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}},E=async e=>{if(!(e.type!==`notify`&&e.type!==`append`))for(let t of e.messages??[]){Ae({channel:`whatsapp`,accountId:r.accountId,direction:`inbound`});let n=await C(t);if(!n||(await w(n),e.type===`append`))continue;let i=await ee(t);i&&await T(t,n,i)}};s.ev.on(`messages.upsert`,E);let D=e=>{try{if(e.connection===`close`){let t=Le(e.lastDisconnect?.error);f({status:t,isLoggedOut:t===Be.loggedOut,error:e.lastDisconnect?.error})}}catch(e){a.error({error:String(e)},`connection.update handler error`),f({status:void 0,isLoggedOut:!1,error:e})}};return s.ev.on(`connection.update`,D),{close:async()=>{try{let e=s.ev,t=E,n=D;typeof e.off==`function`?(e.off(`messages.upsert`,t),e.off(`connection.update`,n)):typeof e.removeListener==`function`&&(e.removeListener(`messages.upsert`,t),e.removeListener(`connection.update`,n)),s.ws?.close()}catch(t){e(`Socket close failed: ${String(t)}`)}},onClose:d,signalClose:e=>{f(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Tt({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:r.accountId})}}function Dt(e,t){return{mentionRegexes:I(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Ot(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>x(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?x(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function kt(e,t,n){let r=e=>L(e),i=b(n.selfE164,t.allowFrom);if((e.mentionedJids?.length??0)>0&&!i)return!!(n.selfE164&&n.normalizedMentions.includes(n.selfE164)||n.selfJid&&n.normalizedMentions.includes(n.selfJid));let a=r(e.body);if(t.mentionRegexes.some(e=>e.test(a)))return!0;if(n.selfE164){let t=n.selfE164.replace(/\D/g,``);if(t){if(a.replace(/[^\d]/g,``).includes(t))return!0;let n=e.body.replace(/[\s-]/g,``);if(RegExp(`\\+?${t}`,`i`).test(n))return!0}}return!1}function At(e,t,n){let r=Ot(e,n);return{wasMentioned:kt(e,t,r),details:{from:e.from,body:e.body,bodyClean:L(e.body),mentionedJids:e.mentionedJids??null,normalizedMentionedJids:r.normalizedMentions.length?r.normalizedMentions:null,selfJid:e.selfJid??null,selfJidBare:r.selfJid,selfE164:e.selfE164??null,resolvedSelfE164:r.selfE164}}}function jt(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>C(e)).filter(e=>!!e)}function Mt(e){let t=new Set,n=Math.max(1,e.maxItems??100),r=e=>`combined:${e.sessionKey}:${e.combinedBody}`,i=()=>{for(;t.size>n;){let e=t.values().next().value;if(!e)break;t.delete(e)}};return{rememberText:(n,a)=>{n&&(t.add(n),a.combinedBody&&a.combinedBodySessionKey&&t.add(r({sessionKey:a.combinedBodySessionKey,combinedBody:a.combinedBody})),a.logVerboseMessage&&e.logVerbose?.(`Added to echo detection set (size now: ${t.size}): ${n.substring(0,50)}...`),i())},has:e=>t.has(e),forget:e=>{t.delete(e)},buildCombinedKey:r}}function Nt(e){let t=H({agentId:e.agentId,channel:`whatsapp`,accountId:e.route.accountId,peer:{kind:e.msg.chatType===`group`?`group`:`direct`,id:e.peerId},dmScope:e.cfg.session?.dmScope,identityLinks:e.cfg.session?.identityLinks}),n=_({agentId:e.agentId,mainKey:g});return{sessionKey:t,mainSessionKey:n,lastRoutePolicy:B({sessionKey:t,mainSessionKey:n})}}async function Pt(e){let t=e.cfg.broadcast?.[e.peerId];if(!t||!Array.isArray(t)||t.length===0)return!1;let n=e.cfg.broadcast?.strategy||`parallel`;X.info(`Broadcasting message to ${t.length} agents (${n})`);let r=e.cfg.agents?.list?.map(e=>h(e.id)),i=(r?.length??0)>0,a=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,o=async t=>{let n=h(t);if(i&&!r?.includes(n))return X.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let o=Nt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:n}),s={...e.route,agentId:n,...o};try{return await e.processMessage(e.msg,s,e.groupHistoryKey,{groupHistory:a,suppressGroupHistoryClear:!0})}catch(e){return X.error(`Broadcast agent ${t} failed: ${q(e)}`),!1}};if(n===`sequential`)for(let e of t)await o(e);else await Promise.allSettled(t.map(o));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function Ft(e,t,n){let r=e;for(let e of t)r=r.replace(e,` `);if(n){let e=n.replace(/\D/g,``);if(e){let t=RegExp(`\\+?${e}`,`g`);r=r.replace(t,` `)}}return r.replace(/\s+/g,` `).trim()}function It(e,t){let n=l({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return a({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Lt(e,t){let n=l({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return c({cfg:e,channel:`whatsapp`,groupId:n??t})}function Rt(e){let t=f(G(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Lt(e.cfg,e.conversationId)?`mention`:`always`;return U(t?.groupActivation)??n}function zt(e,t,n){for(let r of e){let e=C(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Bt(e,t,n,r){if(!n||!r)return;let i=C(n)??n;if(!i)return;let a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(i,r)}function Vt(e){let{participants:t,roster:n,fallbackE164:r}=e,i=new Set,a=[];if(t?.length&&zt(t,i,a),n&&zt(n.keys(),i,a),a.length===0&&r){let e=C(r)??r;e&&a.push(e)}if(a.length!==0)return a.map(e=>{let t=n?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function Ht(e,t){let n=C(t.senderE164??``);return n?jt(e,t.selfE164??void 0).includes(n):!1}function Ut(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;O({historyMap:e.groupHistories,historyKey:e.groupHistoryKey,limit:e.groupHistoryLimit,entry:{sender:t,body:e.msg.body,timestamp:e.msg.timestamp,id:e.msg.id,senderJid:e.msg.senderJid}})}function Wt(e,t){return e.logVerbose(t),Ut({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Gt(e){let t=It(e.cfg,e.conversationId);if(t.allowlistEnabled&&!t.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};Bt(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let n=Dt(e.cfg,e.agentId),r=Ft(e.msg.body,n.mentionRegexes,e.msg.selfE164),i=z(r),a=Ht(e.baseMentionConfig,e.msg),o=a&&de(r,e.cfg);if(i.hasCommand&&!a)return Wt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let s=At(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:s.wasMentioned,...s.details},`group mention debug`);let c=s.wasMentioned,l=Rt({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:e.conversationId})!==`always`,u=e.msg.selfJid?.replace(/:\\d+/,``),d=e.msg.replyToSenderJid?.replace(/:\\d+/,``),f=e.msg.selfE164?C(e.msg.selfE164):null,p=e.msg.replyToSenderE164?C(e.msg.replyToSenderE164):null,m=P({requireMention:l,canDetectMention:!0,wasMentioned:c,implicitMention:!!(u&&d&&u===d||f&&p&&f===p),shouldBypassMention:o});return e.msg.wasMentioned=m.effectiveWasMentioned,!o&&l&&m.shouldSkip?Wt(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Kt(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function qt(e){let t=G(e.cfg.session?.store,{agentId:e.storeAgentId}),n=o({storePath:t,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(n=>{e.warn({error:q(n),storePath:t,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Kt(e.backgroundTasks,n)}function Jt(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?C(e.senderE164)??e.senderE164:e.from.includes(`@`)?x(e.from)??e.from:C(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}โฆ (truncated ${e.length-t} chars)`}function Yt(e){let t=(e instanceof Error?`${e.message}\n${e.stack??``}`:(e=>{if(e==null)return``;if(typeof e==`string`)return e;if(e instanceof Error)return`${e.message}\n${e.stack??``}`;if(typeof e==`object`)try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}return typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?String(e):typeof e==`symbol`?e.description??e.toString():typeof e==`function`?e.name?`[function ${e.name}]`:`[function]`:Object.prototype.toString.call(e)})(e)).toLowerCase();return t.includes(`unsupported state or unable to authenticate data`)||t.includes(`bad mac`)?t.includes(`@whiskeysockets/baileys`)||t.includes(`baileys`)||t.includes(`noise-handler`)||t.includes(`aesdecryptgcm`):!1}function Xt(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Zt(n){let{replyResult:r,msg:i,maxMediaBytes:a,textLimit:o,replyLogger:s,connectionId:c,skipLog:l}=n,u=Date.now();if(Xt(r)){Z.debug(`Suppressed reasoning payload to ${i.from}`);return}let d=n.tableMode??`code`,f=n.chunkMode??`length`,p=ge(Pe(je(r.text||``,d)),o,f),m=r.mediaUrls?.length?r.mediaUrls:r.mediaUrl?[r.mediaUrl]:[],h=async(t,n,r=3)=>{let a;for(let o=1;o<=r;o++)try{return await t()}catch(t){a=t;let s=q(t),c=o===r;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw t;let l=500*o;e(`Retrying ${n} to ${i.from} after failure (${o}/${r-1}) in ${l}ms: ${s}`),await v(l)}throw a};if(m.length===0&&p.length){let e=p.length;for(let[t,n]of p.entries()){let r=Date.now();if(await h(()=>i.reply(n),`text`),!l){let n=Date.now()-r;Z.debug(`Sent chunk ${t+1}/${e} to ${i.from} (${n.toFixed(0)}ms)`)}}s.info({correlationId:i.id??J(),connectionId:c??null,to:i.from,from:i.to,text:$(r.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-u},`auto-reply sent (text)`);return}let g=[...p];for(let[r,o]of m.entries()){let l=r===0&&g.shift()||void 0;try{let r=await he(o,{maxBytes:a,localRoots:n.mediaLocalRoots});if(t()&&(e(`Web auto-reply media size: ${(r.buffer.length/(1024*1024)).toFixed(2)}MB`),e(`Web auto-reply media source: ${o} (kind ${r.kind})`)),r.kind===`image`)await h(()=>i.sendMedia({image:r.buffer,caption:l,mimetype:r.contentType}),`media:image`);else if(r.kind===`audio`)await h(()=>i.sendMedia({audio:r.buffer,ptt:!0,mimetype:r.contentType,caption:l}),`media:audio`);else if(r.kind===`video`)await h(()=>i.sendMedia({video:r.buffer,caption:l,mimetype:r.contentType}),`media:video`);else{let e=r.fileName??o.split(`/`).pop()??`file`,t=r.contentType??`application/octet-stream`;await h(()=>i.sendMedia({document:r.buffer,fileName:e,caption:l,mimetype:t}),`media:document`)}Z.info(`Sent media reply to ${i.from} (${(r.buffer.length/(1024*1024)).toFixed(2)}MB)`),s.info({correlationId:i.id??J(),connectionId:c??null,to:i.from,from:i.to,text:l??null,mediaUrl:o,mediaSizeBytes:r.buffer.length,mediaKind:r.kind,durationMs:Date.now()-u},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${i.from}: ${q(e)}`),s.warn({err:e,mediaUrl:o},`failed to send web media reply`),r===0){let t=e instanceof Error?`โ ๏ธ Media failed: ${e.message}`:`โ ๏ธ Media failed.`,n=[g.shift()??l??``,t].filter(Boolean).join(`
|
|
5
5
|
`);n&&(Z.warn(`Media skipped; sent text-only to ${i.from}`),await i.reply(n))}}}for(let e of g)await i.reply(e)}function Qt(t){if(!t.msg.id)return;let n=t.cfg.channels?.whatsapp?.ackReaction,r=(n?.emoji??``).trim(),i=n?.direct??!0,a=n?.group??`mentions`,o=t.msg.conversationId??t.msg.from,s=t.msg.chatType===`group`?Rt({cfg:t.cfg,agentId:t.agentId,sessionKey:t.sessionKey,conversationId:o}):null;F({emoji:r,isDirect:t.msg.chatType===`direct`,isGroup:t.msg.chatType===`group`,directEnabled:i,groupMode:a,wasMentioned:t.msg.wasMentioned===!0,groupActivated:s===`always`})&&(t.info({chatId:t.msg.chatId,messageId:t.msg.id,emoji:r},`sending ack reaction`),Fe(t.msg.chatId,t.msg.id,r,{verbose:t.verbose,fromMe:!1,participant:t.msg.senderJid,accountId:t.accountId}).catch(n=>{t.warn({error:q(n),chatId:t.msg.chatId,messageId:t.msg.id},`failed to send ack reaction`),e(`WhatsApp ack reaction failed for chat ${t.msg.chatId}: ${q(n)}`)}))}function $t(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function en(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:i,envelope:a}=e,o=N(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),s=o?`${o} `:``,c=$t(n),l=`${s}${n.body}${c?`\n\n${c}`:``}`;return A({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:l,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:i,envelope:a,fromMe:n.fromMe})}async function tn(e){let t=e.cfg.commands?.useAccessGroups!==!1;if(!t)return!0;let n=e.msg.chatType===`group`,r=C(n?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!r)return!1;let i=E({cfg:e.cfg,accountId:e.msg.accountId}),a=i.dmPolicy??`pairing`,o=i.groupPolicy??`allowlist`,s=i.allowFrom??[],c=i.groupAllowFrom??(s.length>0?s:void 0),l=n?[]:await we({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:a});return Se({isGroup:n,dmPolicy:a,groupPolicy:o,allowFrom:s.length>0?s:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:c,storeAllowFrom:l,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>C(String(e))).filter(e=>!!e).includes(r),command:{useAccessGroups:t,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function nn(e){let t=E({cfg:e.cfg,accountId:e.msg.accountId});return Te({dmScope:e.cfg.session?.dmScope,allowFrom:t.allowFrom,normalizeEntry:e=>C(e)})}async function rn(n){let r=n.msg.conversationId??n.msg.from,{storePath:i,envelopeOptions:a,previousTimestamp:o}=R({cfg:n.cfg,agentId:n.route.agentId,sessionKey:n.route.sessionKey}),c=en({cfg:n.cfg,msg:n.msg,agentId:n.route.agentId,previousTimestamp:o,envelope:a}),l=!1;if(n.msg.chatType===`group`){let e=n.groupHistory??n.groupHistories.get(n.groupHistoryKey)??[];e.length>0&&(c=W({entries:e.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:c,excludeLast:!1,formatEntry:e=>A({channel:`WhatsApp`,from:r,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:a})})),l=!(n.suppressGroupHistoryClear??!1)}let u=n.buildCombinedEchoKey({sessionKey:n.route.sessionKey,combinedBody:c});if(n.echoHas(u))return e(`Skipping auto-reply: detected echo for combined message`),n.echoForget(u),!1;Qt({cfg:n.cfg,msg:n.msg,agentId:n.route.agentId,sessionKey:n.route.sessionKey,conversationId:r,verbose:n.verbose,accountId:n.route.accountId,info:n.replyLogger.info.bind(n.replyLogger),warn:n.replyLogger.warn.bind(n.replyLogger)});let d=n.msg.id??J();n.replyLogger.info({connectionId:n.connectionId,correlationId:d,from:n.msg.chatType===`group`?r:n.msg.from,to:n.msg.to,body:$(c,240),mediaType:n.msg.mediaType??null,mediaPath:n.msg.mediaPath??null},`inbound web message`);let f=n.msg.chatType===`group`?r:n.msg.from,p=n.msg.mediaType?`, ${n.msg.mediaType}`:``;X.info(`Inbound message ${f} -> ${n.msg.to} (${n.msg.chatType}${p}, ${c.length} chars)`),t()&&X.debug(`Inbound body: ${$(c,400)}`);let m=n.msg.chatType===`group`?void 0:n.msg.senderE164?C(n.msg.senderE164):n.msg.from.includes(`@`)?x(n.msg.from):C(n.msg.from),h=n.maxMediaTextChunkLimit??_e(n.cfg,`whatsapp`),g=ve(n.cfg,`whatsapp`,n.route.accountId),_=ye({cfg:n.cfg,channel:`whatsapp`,accountId:n.route.accountId}),v=pe(n.cfg,n.route.agentId),y=!1,b=!1,S=te(n.msg.body,n.cfg)?await tn({cfg:n.cfg,msg:n.msg}):void 0,w=n.cfg.messages?.responsePrefix,{onModelSelected:ee,...T}=ie({cfg:n.cfg,agentId:n.route.agentId,channel:`whatsapp`,accountId:n.route.accountId}),E=n.msg.chatType!==`group`&&!!n.msg.selfE164&&C(n.msg.from)===C(n.msg.selfE164??``),D=T.responsePrefix??(w===void 0&&E?V(n.cfg,n.route.agentId):void 0),O=n.msg.chatType===`group`?(n.groupHistory??n.groupHistories.get(n.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,k=ne({Body:c,BodyForAgent:n.msg.body,InboundHistory:O,RawBody:n.msg.body,CommandBody:n.msg.body,From:n.msg.from,To:n.msg.to,SessionKey:n.route.sessionKey,AccountId:n.route.accountId,MessageSid:n.msg.id,ReplyToId:n.msg.replyToId,ReplyToBody:n.msg.replyToBody,ReplyToSender:n.msg.replyToSender,MediaPath:n.msg.mediaPath,MediaUrl:n.msg.mediaUrl,MediaType:n.msg.mediaType,ChatType:n.msg.chatType,ConversationLabel:n.msg.chatType===`group`?r:n.msg.from,GroupSubject:n.msg.groupSubject,GroupMembers:Vt({participants:n.msg.groupParticipants,roster:n.groupMemberNames.get(n.groupHistoryKey),fallbackE164:n.msg.senderE164}),SenderName:n.msg.senderName,SenderId:n.msg.senderJid?.trim()||n.msg.senderE164,SenderE164:n.msg.senderE164,CommandAuthorized:S,WasMentioned:n.msg.wasMentioned,...n.msg.location?fe(n.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:n.msg.from}),j=nn({cfg:n.cfg,msg:n.msg}),M=!j||j===m,N=oe({route:n.route,sessionKey:n.route.sessionKey});m&&N===n.route.mainSessionKey&&M?qt({cfg:n.cfg,backgroundTasks:n.backgroundTasks,storeAgentId:n.route.agentId,sessionKey:n.route.mainSessionKey,channel:`whatsapp`,to:m,accountId:n.route.accountId,ctx:k,warn:n.replyLogger.warn.bind(n.replyLogger)}):m&&N===n.route.mainSessionKey&&j&&e(`Skipping main-session last route update for ${m} (pinned owner ${j})`);let P=s({storePath:i,sessionKey:n.route.sessionKey,ctx:k}).catch(e=>{n.replyLogger.warn({error:q(e),storePath:i,sessionKey:n.route.sessionKey},`failed updating session meta`)});Kt(n.backgroundTasks,P);let{queuedFinal:re}=await ae({ctx:k,cfg:n.cfg,replyResolver:n.replyResolver,dispatcherOptions:{...T,responsePrefix:D,onHeartbeatStrip:()=>{y||(y=!0,e(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(e,i)=>{if(i.kind!==`final`)return;await Zt({replyResult:e,msg:n.msg,mediaLocalRoots:v,maxMediaBytes:n.maxMediaBytes,textLimit:h,chunkMode:g,replyLogger:n.replyLogger,connectionId:n.connectionId,skipLog:!1,tableMode:_}),b=!0;let a=e.text?!0:void 0;n.rememberSentText(e.text,{combinedBody:c,combinedBodySessionKey:n.route.sessionKey,logVerboseMessage:a});let o=n.msg.chatType===`group`?r:n.msg.from??`unknown`,s=!!(e.mediaUrl||e.mediaUrls?.length);if(Z.info(`Auto-replied to ${o}${s?` (media)`:``}`),t()){let t=e.text==null?`<media>`:$(e.text,400);Z.debug(`Reply body: ${t}${s?` (media)`:``}`)}},onError:(e,t)=>{let i=t.kind===`tool`?`tool update`:t.kind===`block`?`block update`:`auto-reply`;Z.error(`Failed sending web ${i} to ${n.msg.from??r}: ${q(e)}`)},onReplyStart:n.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:ee}});return re?(l&&n.groupHistories.set(n.groupHistoryKey,[]),b):(l&&n.groupHistories.set(n.groupHistoryKey,[]),e(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function an(t){let n=async(e,n,r,i)=>rn({cfg:t.cfg,msg:e,route:n,groupHistoryKey:r,groupHistories:t.groupHistories,groupMemberNames:t.groupMemberNames,connectionId:t.connectionId,verbose:t.verbose,maxMediaBytes:t.maxMediaBytes,replyResolver:t.replyResolver,replyLogger:t.replyLogger,backgroundTasks:t.backgroundTasks,rememberSentText:t.echoTracker.rememberText,echoHas:t.echoTracker.has,echoForget:t.echoTracker.forget,buildCombinedEchoKey:t.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async r=>{let i=r.conversationId??r.from,a=Jt(r),o=ce({cfg:d(),channel:`whatsapp`,accountId:r.accountId,peer:{kind:r.chatType===`group`?`group`:`direct`,id:a}}),s=r.chatType===`group`?m({channel:`whatsapp`,accountId:o.accountId,peerKind:`group`,peerId:a}):o.sessionKey;if(r.from===r.to&&e(`๐ฑ Same-phone mode detected (from === to: ${r.from})`),t.echoTracker.has(r.body)){e(`Skipping auto-reply: detected echo (message matches recently sent text)`),t.echoTracker.forget(r.body);return}if(r.chatType===`group`){let n={From:r.from,To:r.to,SessionKey:o.sessionKey,AccountId:o.accountId,ChatType:r.chatType,ConversationLabel:i,GroupSubject:r.groupSubject,SenderName:r.senderName,SenderId:r.senderJid?.trim()||r.senderE164,SenderE164:r.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:i};if(qt({cfg:t.cfg,backgroundTasks:t.backgroundTasks,storeAgentId:o.agentId,sessionKey:o.sessionKey,channel:`whatsapp`,to:i,accountId:o.accountId,ctx:n,warn:t.replyLogger.warn.bind(t.replyLogger)}),!Gt({cfg:t.cfg,msg:r,conversationId:i,groupHistoryKey:s,agentId:o.agentId,sessionKey:o.sessionKey,baseMentionConfig:t.baseMentionConfig,authDir:t.account.authDir,groupHistories:t.groupHistories,groupHistoryLimit:t.groupHistoryLimit,groupMemberNames:t.groupMemberNames,logVerbose:e,replyLogger:t.replyLogger}).shouldProcess)return}else !r.senderE164&&a&&a.startsWith(`+`)&&(r.senderE164=C(a)??r.senderE164);await Pt({cfg:t.cfg,msg:r,peerId:a,route:o,groupHistoryKey:s,groupHistories:t.groupHistories,processMessage:n})||await n(r,o,s)}}function on(e){return e===440}async function sn(t,i=Et,a=!0,o=re,s=r,c,l={}){let u=J(),f=n({module:`web-auto-reply`,runId:u}),m=n({module:`web-heartbeat`,runId:u}),h=n({module:`web-reconnect`,runId:u}),g={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},_=()=>{l.statusSink?.({...g,lastDisconnect:g.lastDisconnect?{...g.lastDisconnect}:null})};_();let v=d(),y=E({cfg:v,accountId:l.accountId}),b={...v,channels:{...v.channels,whatsapp:{...v.channels?.whatsapp,ackReaction:y.ackReaction,messagePrefix:y.messagePrefix,allowFrom:y.allowFrom,groupAllowFrom:y.groupAllowFrom,groupPolicy:y.groupPolicy,textChunkLimit:y.textChunkLimit,chunkMode:y.chunkMode,mediaMaxMb:y.mediaMaxMb,blockStreaming:y.blockStreaming,groups:y.groups}}},x=T(y),S=qe(b,l.heartbeatSeconds),C=Je(b,l.reconnect),w=Dt(b),O=b.channels?.whatsapp?.accounts?.[l.accountId??``]?.historyLimit??b.channels?.whatsapp?.historyLimit??b.messages?.groupChat?.historyLimit??50,te=new Map,ne=new Map,A=Mt({maxItems:100,logVerbose:e}),j=l.sleep??((e,t)=>xe(e,t??c)),M=()=>c?.aborted===!0,N=c&&new Promise(e=>c.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),P=process.getMaxListeners?.()??10;process.setMaxListeners&&P<50&&process.setMaxListeners(50);let ie=!1,F=()=>{ie=!0};process.once(`SIGINT`,F);let I=0;for(;!M();){let n=J(),r=Date.now(),u=null,d=null,v=null,T=0,E=null,P=l.messageTimeoutMs??1800*1e3,ae=l.watchdogCheckMs??60*1e3,L=new Set,oe=an({cfg:b,verbose:t,connectionId:n,maxMediaBytes:x,groupHistoryLimit:O,groupHistories:te,groupMemberNames:ne,echoTracker:A,backgroundTasks:L,replyResolver:o??re,replyLogger:f,baseMentionConfig:w,account:y}),se=ue({cfg:b,channel:`whatsapp`}),R=await(i??Et)({verbose:t,accountId:y.accountId,authDir:y.authDir,mediaMaxMb:y.mediaMaxMb,sendReadReceipts:y.sendReadReceipts,debounceMs:se,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!de(e.body,b),onMessage:async e=>{T+=1,v=Date.now(),g.lastMessageAt=v,g.lastEventAt=v,_(),await oe(e)}});Object.assign(g,le()),g.lastError=null,_();let{e164:z}=ee(y.authDir),B=ce({cfg:b,channel:`whatsapp`,accountId:y.accountId});k(`WhatsApp gateway connected${z?` as ${z}`:``}.`,{sessionKey:B.sessionKey}),Ne(y.accountId,R),E=me(e=>{if(!Yt(e))return!1;let t=q(e);return h.warn({connectionId:n,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),R.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let V=async()=>{Ne(y.accountId,null),E&&=(E(),null),u&&clearInterval(u),d&&clearInterval(d),L.size>0&&(await Promise.allSettled(L),L.clear());try{await R.close()}catch(t){e(`Socket close failed: ${q(t)}`)}};if(a&&(u=setInterval(()=>{let e=D(y.authDir),t=v?Math.floor((Date.now()-v)/6e4):null,i={connectionId:n,reconnectAttempts:I,messagesHandled:T,lastMessageAt:v,authAgeMs:e,uptimeMs:Date.now()-r,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?m.warn(i,`โ ๏ธ web gateway heartbeat - no messages in 30+ minutes`):m.info(i,`web gateway heartbeat`)},S*1e3),d=setInterval(()=>{if(!v)return;let t=Date.now()-v;if(t<=P)return;let r=Math.floor(t/6e4);m.warn({connectionId:n,minutesSinceLastMessage:r,lastMessageAt:new Date(v),messagesHandled:T},`Message timeout detected - forcing reconnect`),Ye.warn(`No messages received in ${r}m - restarting connection`),V().catch(t=>{e(`Close listener failed: ${q(t)}`)}),R.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},ae)),Y.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&Y.raw(`Ctrl+C to stop.`),!a){await V(),process.removeListener(`SIGINT`,F);return}let H=await Promise.race([R.onClose?.catch(e=>(h.error({error:q(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??Xe(),N??Xe()]);if(Date.now()-r>S*1e3&&(I=0),g.reconnectAttempts=I,_(),M()||ie||H===`aborted`){await V();break}let U=(typeof H==`object`&&H&&`status`in H?H.status:void 0)??`unknown`,W=typeof H==`object`&&H&&`isLoggedOut`in H&&H.isLoggedOut,G=q(H);if(g.connected=!1,g.lastEventAt=Date.now(),g.lastDisconnect={at:g.lastEventAt,status:typeof U==`number`?U:void 0,error:G,loggedOut:!!W},g.lastError=G,g.reconnectAttempts=I,_(),h.info({connectionId:n,status:U,loggedOut:W,reconnectAttempts:I,error:G},`web reconnect: connection closed`),k(`WhatsApp gateway disconnected (status ${U??`unknown`})`,{sessionKey:B.sessionKey}),W){s.error(`WhatsApp session logged out. Run \`${p(`openclaw channels login --channel web`)}\` to relink.`),await V();break}if(on(U)){h.warn({connectionId:n,status:U,error:G},`web reconnect: non-retryable close status; stopping monitor`),s.error(`WhatsApp Web connection closed (status ${U}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${p(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await V();break}if(I+=1,g.reconnectAttempts=I,_(),C.maxAttempts>0&&I>=C.maxAttempts){h.warn({connectionId:n,status:U,reconnectAttempts:I,maxAttempts:C.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),s.error(`WhatsApp Web reconnect: max attempts reached (${I}/${C.maxAttempts}). Stopping web monitoring.`),await V();break}let K=be(C,I);h.info({connectionId:n,status:U,reconnectAttempts:I,maxAttempts:C.maxAttempts||`unlimited`,delayMs:K},`web reconnect: scheduling retry`),s.error(`WhatsApp Web connection closed (status ${U}). Retry ${I}/${C.maxAttempts||`โ`} in ${Me(K)}โฆ (${G})`),await V();try{await j(K,c)}catch{break}}g.running=!1,g.connected=!1,g.lastEventAt=Date.now(),_(),process.removeListener(`SIGINT`,F)}export{Et as n,sn as t};
|
|
6
|
+
//# sourceMappingURL=channel-web-BrElpZAc.js.map
|
|
@@ -3,3 +3,4 @@ import{S as e,T as t,j as n,p as r,t as i}from"./subsystem-C5XF2Fy5.js";import{C
|
|
|
3
3
|
`),a={...t,body:i,mentionedJids:n.size>0?Array.from(n):void 0};await r.onMessage(a)},onError:e=>{a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}}),v=new Map,y=300*1e3,b=s.signalRepository?.lidMapping,x=async e=>d(e,{authDir:r.authDir,lidLookup:b}),S=async t=>{let n=v.get(t);if(n&&n.expires>Date.now())return n;try{let e=await s.groupMetadata(t),n=(await Promise.all(e.participants?.map(async e=>await x(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:e.subject,participants:n,expires:Date.now()+y};return v.set(t,r),r}catch(n){return e(`Failed to fetch group metadata for ${t}: ${String(n)}`),{expires:Date.now()+y}}},ee=async e=>{let t=e.key?.id??void 0,n=e.key?.remoteJid;if(!n||n.endsWith(`@status`)||n.endsWith(`@broadcast`))return null;let i=We(n)===!0;if(t&&Qe(`${r.accountId}:${n}:${t}`))return null;let a=e.key?.participant??void 0,o=i?n:await x(n);if(!o)return null;let l=i?a?await x(a):null:o,u,d;if(i){let e=await S(n);u=e.subject,d=e.participants}let f=e.messageTimestamp?Number(e.messageTimestamp)*1e3:void 0,p=await yt({accountId:r.accountId,from:o,selfE164:g,senderE164:l,group:i,pushName:e.pushName??void 0,isFromMe:!!e.key?.fromMe,messageTimestampMs:f,connectedAtMs:c,sock:{sendMessage:(e,t)=>s.sendMessage(e,t)},remoteJid:n});return p.allowed?{id:t,remoteJid:n,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},C=async n=>{let{id:i,remoteJid:a,participantJid:o,access:c}=n;if(i&&!c.isSelfChat&&r.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:a,id:i,participant:o,fromMe:!1}]),t()&&e(`Marked message ${i} as read for ${a}${o?` (participant ${o})`:``}`)}catch(t){e(`Failed to mark message ${i} read: ${String(t)}`)}else i&&c.isSelfChat&&t()&&e(`Self-chat mode: skipping read receipt for ${i}`)},w=async t=>{let n=gt(t.message??void 0),i=n?ye(n):void 0,a=st(t.message??void 0);if(i&&(a=[a,i].filter(Boolean).join(`
|
|
4
4
|
`).trim()),!a&&(a=ct(t.message??void 0),!a))return null;let o=_t(t.message),c,l,u;try{let e=await St(t,s);if(e){let t=(typeof r.mediaMaxMb==`number`&&r.mediaMaxMb>0?r.mediaMaxMb:50)*1024*1024;c=(await m(e.buffer,e.mimetype,`inbound`,t,e.fileName)).path,l=e.mimetype,u=e.fileName}}catch(t){e(`Inbound media download failed: ${String(t)}`)}return{body:a,location:n??void 0,replyContext:o,mediaPath:c,mediaType:l,mediaFileName:u}},T=async(t,n,r)=>{let i=n.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,i)}catch(t){e(`Presence update failed: ${String(t)}`)}},l=async e=>{await s.sendMessage(i,{text:e})},u=async e=>{await s.sendMessage(i,e)},d=n.messageTimestampMs,f=ot(t.message),p=t.pushName??void 0;a.info({from:n.from,to:g??`me`,body:r.body,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName,timestamp:d},`inbound message`);let m={id:n.id,from:n.from,conversationId:n.from,to:g??`me`,accountId:n.access.resolvedAccountId,body:r.body,pushName:p,timestamp:d,chatType:n.group?`group`:`direct`,chatId:n.remoteJid,senderJid:n.participantJid,senderE164:n.senderE164??void 0,senderName:p,replyToId:r.replyContext?.id,replyToBody:r.replyContext?.body,replyToSender:r.replyContext?.sender,replyToSenderJid:r.replyContext?.senderJid,replyToSenderE164:r.replyContext?.senderE164,groupSubject:n.groupSubject,groupParticipants:n.groupParticipants,mentionedJids:f??void 0,selfJid:h,selfE164:g,fromMe:!!t.key?.fromMe,location:r.location??void 0,sendComposing:c,reply:l,sendMedia:u,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName};try{Promise.resolve(_.enqueue(m)).catch(e=>{a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}},E=async e=>{if(!(e.type!==`notify`&&e.type!==`append`))for(let t of e.messages??[]){Ae({channel:`whatsapp`,accountId:r.accountId,direction:`inbound`});let n=await ee(t);if(!n||(await C(n),e.type===`append`))continue;let i=await w(t);i&&await T(t,n,i)}};s.ev.on(`messages.upsert`,E);let D=e=>{try{if(e.connection===`close`){let t=Le(e.lastDisconnect?.error);p({status:t,isLoggedOut:t===Be.loggedOut,error:e.lastDisconnect?.error})}}catch(e){a.error({error:String(e)},`connection.update handler error`),p({status:void 0,isLoggedOut:!1,error:e})}};return s.ev.on(`connection.update`,D),{close:async()=>{try{let e=s.ev,t=E,n=D;typeof e.off==`function`?(e.off(`messages.upsert`,t),e.off(`connection.update`,n)):typeof e.removeListener==`function`&&(e.removeListener(`messages.upsert`,t),e.removeListener(`connection.update`,n)),s.ws?.close()}catch(t){e(`Socket close failed: ${String(t)}`)}},onClose:f,signalClose:e=>{p(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Tt({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:r.accountId})}}function Dt(e,t){return{mentionRegexes:F(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Ot(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>l(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?l(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function kt(e,t,n){let r=e=>A(e),i=s(n.selfE164,t.allowFrom);if((e.mentionedJids?.length??0)>0&&!i)return!!(n.selfE164&&n.normalizedMentions.includes(n.selfE164)||n.selfJid&&n.normalizedMentions.includes(n.selfJid));let a=r(e.body);if(t.mentionRegexes.some(e=>e.test(a)))return!0;if(n.selfE164){let t=n.selfE164.replace(/\D/g,``);if(t){if(a.replace(/[^\d]/g,``).includes(t))return!0;let n=e.body.replace(/[\s-]/g,``);if(RegExp(`\\+?${t}`,`i`).test(n))return!0}}return!1}function At(e,t,n){let r=Ot(e,n);return{wasMentioned:kt(e,t,r),details:{from:e.from,body:e.body,bodyClean:A(e.body),mentionedJids:e.mentionedJids??null,normalizedMentionedJids:r.normalizedMentions.length?r.normalizedMentions:null,selfJid:e.selfJid??null,selfJidBare:r.selfJid,selfE164:e.selfE164??null,resolvedSelfE164:r.selfE164}}}function jt(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>c(e)).filter(e=>!!e)}function Mt(e){let t=new Set,n=Math.max(1,e.maxItems??100),r=e=>`combined:${e.sessionKey}:${e.combinedBody}`,i=()=>{for(;t.size>n;){let e=t.values().next().value;if(!e)break;t.delete(e)}};return{rememberText:(n,a)=>{n&&(t.add(n),a.combinedBody&&a.combinedBodySessionKey&&t.add(r({sessionKey:a.combinedBodySessionKey,combinedBody:a.combinedBody})),a.logVerboseMessage&&e.logVerbose?.(`Added to echo detection set (size now: ${t.size}): ${n.substring(0,50)}...`),i())},has:e=>t.has(e),forget:e=>{t.delete(e)},buildCombinedKey:r}}function Nt(e){let t=z({agentId:e.agentId,channel:`whatsapp`,accountId:e.route.accountId,peer:{kind:e.msg.chatType===`group`?`group`:`direct`,id:e.peerId},dmScope:e.cfg.session?.dmScope,identityLinks:e.cfg.session?.identityLinks}),n=U({agentId:e.agentId,mainKey:H});return{sessionKey:t,mainSessionKey:n,lastRoutePolicy:C({sessionKey:t,mainSessionKey:n})}}async function Pt(e){let t=e.cfg.broadcast?.[e.peerId];if(!t||!Array.isArray(t)||t.length===0)return!1;let n=e.cfg.broadcast?.strategy||`parallel`;X.info(`Broadcasting message to ${t.length} agents (${n})`);let r=e.cfg.agents?.list?.map(e=>V(e.id)),i=(r?.length??0)>0,a=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,o=async t=>{let n=V(t);if(i&&!r?.includes(n))return X.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let o=Nt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:n}),s={...e.route,agentId:n,...o};try{return await e.processMessage(e.msg,s,e.groupHistoryKey,{groupHistory:a,suppressGroupHistoryClear:!0})}catch(e){return X.error(`Broadcast agent ${t} failed: ${q(e)}`),!1}};if(n===`sequential`)for(let e of t)await o(e);else await Promise.allSettled(t.map(o));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function Ft(e,t,n){let r=e;for(let e of t)r=r.replace(e,` `);if(n){let e=n.replace(/\D/g,``);if(e){let t=RegExp(`\\+?${e}`,`g`);r=r.replace(t,` `)}}return r.replace(/\s+/g,` `).trim()}function It(e,t){let n=v({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return h({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Lt(e,t){let n=v({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return y({cfg:e,channel:`whatsapp`,groupId:n??t})}function Rt(e){let t=f(K(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Lt(e.cfg,e.conversationId)?`mention`:`always`;return se(t?.groupActivation)??n}function zt(e,t,n){for(let r of e){let e=c(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Bt(e,t,n,r){if(!n||!r)return;let i=c(n)??n;if(!i)return;let a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(i,r)}function Vt(e){let{participants:t,roster:n,fallbackE164:r}=e,i=new Set,a=[];if(t?.length&&zt(t,i,a),n&&zt(n.keys(),i,a),a.length===0&&r){let e=c(r)??r;e&&a.push(e)}if(a.length!==0)return a.map(e=>{let t=n?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function Ht(e,t){let n=c(t.senderE164??``);return n?jt(e,t.selfE164??void 0).includes(n):!1}function Ut(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;R({historyMap:e.groupHistories,historyKey:e.groupHistoryKey,limit:e.groupHistoryLimit,entry:{sender:t,body:e.msg.body,timestamp:e.msg.timestamp,id:e.msg.id,senderJid:e.msg.senderJid}})}function Wt(e,t){return e.logVerbose(t),Ut({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Gt(e){let t=It(e.cfg,e.conversationId);if(t.allowlistEnabled&&!t.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};Bt(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let n=Dt(e.cfg,e.agentId),r=Ft(e.msg.body,n.mentionRegexes,e.msg.selfE164),i=ie(r),a=Ht(e.baseMentionConfig,e.msg),o=a&&b(r,e.cfg);if(i.hasCommand&&!a)return Wt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let s=At(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:s.wasMentioned,...s.details},`group mention debug`);let l=s.wasMentioned,u=Rt({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:e.conversationId})!==`always`,d=e.msg.selfJid?.replace(/:\\d+/,``),f=e.msg.replyToSenderJid?.replace(/:\\d+/,``),p=e.msg.selfE164?c(e.msg.selfE164):null,m=e.msg.replyToSenderE164?c(e.msg.replyToSenderE164):null,h=re({requireMention:u,canDetectMention:!0,wasMentioned:l,implicitMention:!!(d&&f&&d===f||p&&m&&p===m),shouldBypassMention:o});return e.msg.wasMentioned=h.effectiveWasMentioned,!o&&u&&h.shouldSkip?Wt(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Kt(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function qt(e){let t=K(e.cfg.session?.store,{agentId:e.storeAgentId}),n=g({storePath:t,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(n=>{e.warn({error:q(n),storePath:t,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Kt(e.backgroundTasks,n)}function Jt(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?c(e.senderE164)??e.senderE164:e.from.includes(`@`)?l(e.from)??e.from:c(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}โฆ (truncated ${e.length-t} chars)`}function Yt(e){let t=(e instanceof Error?`${e.message}\n${e.stack??``}`:(e=>{if(e==null)return``;if(typeof e==`string`)return e;if(e instanceof Error)return`${e.message}\n${e.stack??``}`;if(typeof e==`object`)try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}return typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?String(e):typeof e==`symbol`?e.description??e.toString():typeof e==`function`?e.name?`[function ${e.name}]`:`[function]`:Object.prototype.toString.call(e)})(e)).toLowerCase();return t.includes(`unsupported state or unable to authenticate data`)||t.includes(`bad mac`)?t.includes(`@whiskeysockets/baileys`)||t.includes(`baileys`)||t.includes(`noise-handler`)||t.includes(`aesdecryptgcm`):!1}function Xt(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Zt(n){let{replyResult:r,msg:i,maxMediaBytes:o,textLimit:s,replyLogger:c,connectionId:l,skipLog:u}=n,d=Date.now();if(Xt(r)){Z.debug(`Suppressed reasoning payload to ${i.from}`);return}let f=n.tableMode??`code`,p=n.chunkMode??`length`,m=Se(Pe(je(r.text||``,f)),s,p),h=r.mediaUrls?.length?r.mediaUrls:r.mediaUrl?[r.mediaUrl]:[],g=async(t,n,r=3)=>{let o;for(let s=1;s<=r;s++)try{return await t()}catch(t){o=t;let c=q(t),l=s===r;if(!/closed|reset|timed\s*out|disconnect/i.test(c)||l)throw t;let u=500*s;e(`Retrying ${n} to ${i.from} after failure (${s}/${r-1}) in ${u}ms: ${c}`),await a(u)}throw o};if(h.length===0&&m.length){let e=m.length;for(let[t,n]of m.entries()){let r=Date.now();if(await g(()=>i.reply(n),`text`),!u){let n=Date.now()-r;Z.debug(`Sent chunk ${t+1}/${e} to ${i.from} (${n.toFixed(0)}ms)`)}}c.info({correlationId:i.id??J(),connectionId:l??null,to:i.from,from:i.to,text:$(r.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let _=[...m];for(let[r,a]of h.entries()){let s=r===0&&_.shift()||void 0;try{let r=await xe(a,{maxBytes:o,localRoots:n.mediaLocalRoots});if(t()&&(e(`Web auto-reply media size: ${(r.buffer.length/(1024*1024)).toFixed(2)}MB`),e(`Web auto-reply media source: ${a} (kind ${r.kind})`)),r.kind===`image`)await g(()=>i.sendMedia({image:r.buffer,caption:s,mimetype:r.contentType}),`media:image`);else if(r.kind===`audio`)await g(()=>i.sendMedia({audio:r.buffer,ptt:!0,mimetype:r.contentType,caption:s}),`media:audio`);else if(r.kind===`video`)await g(()=>i.sendMedia({video:r.buffer,caption:s,mimetype:r.contentType}),`media:video`);else{let e=r.fileName??a.split(`/`).pop()??`file`,t=r.contentType??`application/octet-stream`;await g(()=>i.sendMedia({document:r.buffer,fileName:e,caption:s,mimetype:t}),`media:document`)}Z.info(`Sent media reply to ${i.from} (${(r.buffer.length/(1024*1024)).toFixed(2)}MB)`),c.info({correlationId:i.id??J(),connectionId:l??null,to:i.from,from:i.to,text:s??null,mediaUrl:a,mediaSizeBytes:r.buffer.length,mediaKind:r.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${i.from}: ${q(e)}`),c.warn({err:e,mediaUrl:a},`failed to send web media reply`),r===0){let t=e instanceof Error?`โ ๏ธ Media failed: ${e.message}`:`โ ๏ธ Media failed.`,n=[_.shift()??s??``,t].filter(Boolean).join(`
|
|
5
5
|
`);n&&(Z.warn(`Media skipped; sent text-only to ${i.from}`),await i.reply(n))}}}for(let e of _)await i.reply(e)}function Qt(t){if(!t.msg.id)return;let n=t.cfg.channels?.whatsapp?.ackReaction,r=(n?.emoji??``).trim(),i=n?.direct??!0,a=n?.group??`mentions`,o=t.msg.conversationId??t.msg.from,s=t.msg.chatType===`group`?Rt({cfg:t.cfg,agentId:t.agentId,sessionKey:t.sessionKey,conversationId:o}):null;T({emoji:r,isDirect:t.msg.chatType===`direct`,isGroup:t.msg.chatType===`group`,directEnabled:i,groupMode:a,wasMentioned:t.msg.wasMentioned===!0,groupActivated:s===`always`})&&(t.info({chatId:t.msg.chatId,messageId:t.msg.id,emoji:r},`sending ack reaction`),Fe(t.msg.chatId,t.msg.id,r,{verbose:t.verbose,fromMe:!1,participant:t.msg.senderJid,accountId:t.accountId}).catch(n=>{t.warn({error:q(n),chatId:t.msg.chatId,messageId:t.msg.id},`failed to send ack reaction`),e(`WhatsApp ack reaction failed for chat ${t.msg.chatId}: ${q(n)}`)}))}function $t(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function en(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:i,envelope:a}=e,o=M(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),s=o?`${o} `:``,c=$t(n),l=`${s}${n.body}${c?`\n\n${c}`:``}`;return j({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:l,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:i,envelope:a,fromMe:n.fromMe})}async function tn(e){let t=e.cfg.commands?.useAccessGroups!==!1;if(!t)return!0;let n=e.msg.chatType===`group`,r=c(n?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!r)return!1;let i=G({cfg:e.cfg,accountId:e.msg.accountId}),a=i.dmPolicy??`pairing`,o=i.groupPolicy??`allowlist`,s=i.allowFrom??[],l=i.groupAllowFrom??(s.length>0?s:void 0),u=n?[]:await De({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:a});return Ee({isGroup:n,dmPolicy:a,groupPolicy:o,allowFrom:s.length>0?s:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:l,storeAllowFrom:u,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>c(String(e))).filter(e=>!!e).includes(r),command:{useAccessGroups:t,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function nn(e){let t=G({cfg:e.cfg,accountId:e.msg.accountId});return ke({dmScope:e.cfg.session?.dmScope,allowFrom:t.allowFrom,normalizeEntry:e=>c(e)})}async function rn(n){let r=n.msg.conversationId??n.msg.from,{storePath:i,envelopeOptions:a,previousTimestamp:o}=le({cfg:n.cfg,agentId:n.route.agentId,sessionKey:n.route.sessionKey}),s=en({cfg:n.cfg,msg:n.msg,agentId:n.route.agentId,previousTimestamp:o,envelope:a}),u=!1;if(n.msg.chatType===`group`){let e=n.groupHistory??n.groupHistories.get(n.groupHistoryKey)??[];e.length>0&&(s=L({entries:e.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:s,excludeLast:!1,formatEntry:e=>j({channel:`WhatsApp`,from:r,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:a})})),u=!(n.suppressGroupHistoryClear??!1)}let d=n.buildCombinedEchoKey({sessionKey:n.route.sessionKey,combinedBody:s});if(n.echoHas(d))return e(`Skipping auto-reply: detected echo for combined message`),n.echoForget(d),!1;Qt({cfg:n.cfg,msg:n.msg,agentId:n.route.agentId,sessionKey:n.route.sessionKey,conversationId:r,verbose:n.verbose,accountId:n.route.accountId,info:n.replyLogger.info.bind(n.replyLogger),warn:n.replyLogger.warn.bind(n.replyLogger)});let f=n.msg.id??J();n.replyLogger.info({connectionId:n.connectionId,correlationId:f,from:n.msg.chatType===`group`?r:n.msg.from,to:n.msg.to,body:$(s,240),mediaType:n.msg.mediaType??null,mediaPath:n.msg.mediaPath??null},`inbound web message`);let m=n.msg.chatType===`group`?r:n.msg.from,h=n.msg.mediaType?`, ${n.msg.mediaType}`:``;X.info(`Inbound message ${m} -> ${n.msg.to} (${n.msg.chatType}${h}, ${s.length} chars)`),t()&&X.debug(`Inbound body: ${$(s,400)}`);let g=n.msg.chatType===`group`?void 0:n.msg.senderE164?c(n.msg.senderE164):n.msg.from.includes(`@`)?l(n.msg.from):c(n.msg.from),_=n.maxMediaTextChunkLimit??Ce(n.cfg,`whatsapp`),v=we(n.cfg,`whatsapp`,n.route.accountId),y=Te({cfg:n.cfg,channel:`whatsapp`,accountId:n.route.accountId}),b=me(n.cfg,n.route.agentId),x=!1,S=!1,C=ae(n.msg.body,n.cfg)?await tn({cfg:n.cfg,msg:n.msg}):void 0,T=n.cfg.messages?.responsePrefix,{onModelSelected:D,...O}=te({cfg:n.cfg,agentId:n.route.agentId,channel:`whatsapp`,accountId:n.route.accountId}),re=n.msg.chatType!==`group`&&!!n.msg.selfE164&&c(n.msg.from)===c(n.msg.selfE164??``),ie=O.responsePrefix??(T===void 0&&re?ee(n.cfg,n.route.agentId):void 0),k=n.msg.chatType===`group`?(n.groupHistory??n.groupHistories.get(n.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,A=ne({Body:s,BodyForAgent:n.msg.body,InboundHistory:k,RawBody:n.msg.body,CommandBody:n.msg.body,From:n.msg.from,To:n.msg.to,SessionKey:n.route.sessionKey,AccountId:n.route.accountId,MessageSid:n.msg.id,ReplyToId:n.msg.replyToId,ReplyToBody:n.msg.replyToBody,ReplyToSender:n.msg.replyToSender,MediaPath:n.msg.mediaPath,MediaUrl:n.msg.mediaUrl,MediaType:n.msg.mediaType,ChatType:n.msg.chatType,ConversationLabel:n.msg.chatType===`group`?r:n.msg.from,GroupSubject:n.msg.groupSubject,GroupMembers:Vt({participants:n.msg.groupParticipants,roster:n.groupMemberNames.get(n.groupHistoryKey),fallbackE164:n.msg.senderE164}),SenderName:n.msg.senderName,SenderId:n.msg.senderJid?.trim()||n.msg.senderE164,SenderE164:n.msg.senderE164,CommandAuthorized:C,WasMentioned:n.msg.wasMentioned,...n.msg.location?be(n.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:n.msg.from}),M=nn({cfg:n.cfg,msg:n.msg}),N=!M||M===g,P=E({route:n.route,sessionKey:n.route.sessionKey});g&&P===n.route.mainSessionKey&&N?qt({cfg:n.cfg,backgroundTasks:n.backgroundTasks,storeAgentId:n.route.agentId,sessionKey:n.route.mainSessionKey,channel:`whatsapp`,to:g,accountId:n.route.accountId,ctx:A,warn:n.replyLogger.warn.bind(n.replyLogger)}):g&&P===n.route.mainSessionKey&&M&&e(`Skipping main-session last route update for ${g} (pinned owner ${M})`);let F=p({storePath:i,sessionKey:n.route.sessionKey,ctx:A}).catch(e=>{n.replyLogger.warn({error:q(e),storePath:i,sessionKey:n.route.sessionKey},`failed updating session meta`)});Kt(n.backgroundTasks,F);let{queuedFinal:I}=await w({ctx:A,cfg:n.cfg,replyResolver:n.replyResolver,dispatcherOptions:{...O,responsePrefix:ie,onHeartbeatStrip:()=>{x||(x=!0,e(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(e,i)=>{if(i.kind!==`final`)return;await Zt({replyResult:e,msg:n.msg,mediaLocalRoots:b,maxMediaBytes:n.maxMediaBytes,textLimit:_,chunkMode:v,replyLogger:n.replyLogger,connectionId:n.connectionId,skipLog:!1,tableMode:y}),S=!0;let a=e.text?!0:void 0;n.rememberSentText(e.text,{combinedBody:s,combinedBodySessionKey:n.route.sessionKey,logVerboseMessage:a});let o=n.msg.chatType===`group`?r:n.msg.from??`unknown`,c=!!(e.mediaUrl||e.mediaUrls?.length);if(Z.info(`Auto-replied to ${o}${c?` (media)`:``}`),t()){let t=e.text==null?`<media>`:$(e.text,400);Z.debug(`Reply body: ${t}${c?` (media)`:``}`)}},onError:(e,t)=>{let i=t.kind===`tool`?`tool update`:t.kind===`block`?`block update`:`auto-reply`;Z.error(`Failed sending web ${i} to ${n.msg.from??r}: ${q(e)}`)},onReplyStart:n.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:D}});return I?(u&&n.groupHistories.set(n.groupHistoryKey,[]),S):(u&&n.groupHistories.set(n.groupHistoryKey,[]),e(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function an(t){let n=async(e,n,r,i)=>rn({cfg:t.cfg,msg:e,route:n,groupHistoryKey:r,groupHistories:t.groupHistories,groupMemberNames:t.groupMemberNames,connectionId:t.connectionId,verbose:t.verbose,maxMediaBytes:t.maxMediaBytes,replyResolver:t.replyResolver,replyLogger:t.replyLogger,backgroundTasks:t.backgroundTasks,rememberSentText:t.echoTracker.rememberText,echoHas:t.echoTracker.has,echoForget:t.echoTracker.forget,buildCombinedEchoKey:t.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async r=>{let i=r.conversationId??r.from,a=Jt(r),o=O({cfg:_(),channel:`whatsapp`,accountId:r.accountId,peer:{kind:r.chatType===`group`?`group`:`direct`,id:a}}),s=r.chatType===`group`?B({channel:`whatsapp`,accountId:o.accountId,peerKind:`group`,peerId:a}):o.sessionKey;if(r.from===r.to&&e(`๐ฑ Same-phone mode detected (from === to: ${r.from})`),t.echoTracker.has(r.body)){e(`Skipping auto-reply: detected echo (message matches recently sent text)`),t.echoTracker.forget(r.body);return}if(r.chatType===`group`){let n={From:r.from,To:r.to,SessionKey:o.sessionKey,AccountId:o.accountId,ChatType:r.chatType,ConversationLabel:i,GroupSubject:r.groupSubject,SenderName:r.senderName,SenderId:r.senderJid?.trim()||r.senderE164,SenderE164:r.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:i};if(qt({cfg:t.cfg,backgroundTasks:t.backgroundTasks,storeAgentId:o.agentId,sessionKey:o.sessionKey,channel:`whatsapp`,to:i,accountId:o.accountId,ctx:n,warn:t.replyLogger.warn.bind(t.replyLogger)}),!Gt({cfg:t.cfg,msg:r,conversationId:i,groupHistoryKey:s,agentId:o.agentId,sessionKey:o.sessionKey,baseMentionConfig:t.baseMentionConfig,authDir:t.account.authDir,groupHistories:t.groupHistories,groupHistoryLimit:t.groupHistoryLimit,groupMemberNames:t.groupMemberNames,logVerbose:e,replyLogger:t.replyLogger}).shouldProcess)return}else !r.senderE164&&a&&a.startsWith(`+`)&&(r.senderE164=c(a)??r.senderE164);await Pt({cfg:t.cfg,msg:r,peerId:a,route:o,groupHistoryKey:s,groupHistories:t.groupHistories,processMessage:n})||await n(r,o,s)}}function on(e){return e===440}async function sn(t,i=Et,a=!0,o=oe,s=r,c,l={}){let u=J(),d=n({module:`web-auto-reply`,runId:u}),f=n({module:`web-heartbeat`,runId:u}),p=n({module:`web-reconnect`,runId:u}),m={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},h=()=>{l.statusSink?.({...m,lastDisconnect:m.lastDisconnect?{...m.lastDisconnect}:null})};h();let g=_(),v=G({cfg:g,accountId:l.accountId}),y={...g,channels:{...g.channels,whatsapp:{...g.channels?.whatsapp,ackReaction:v.ackReaction,messagePrefix:v.messagePrefix,allowFrom:v.allowFrom,groupAllowFrom:v.groupAllowFrom,groupPolicy:v.groupPolicy,textChunkLimit:v.textChunkLimit,chunkMode:v.chunkMode,mediaMaxMb:v.mediaMaxMb,blockStreaming:v.blockStreaming,groups:v.groups}}},ee=W(v),C=qe(y,l.heartbeatSeconds),w=Je(y,l.reconnect),T=Dt(y),E=y.channels?.whatsapp?.accounts?.[l.accountId??``]?.historyLimit??y.channels?.whatsapp?.historyLimit??y.messages?.groupChat?.historyLimit??50,te=new Map,ne=new Map,re=Mt({maxItems:100,logVerbose:e}),ie=l.sleep??((e,t)=>k(e,t??c)),ae=()=>c?.aborted===!0,A=c&&new Promise(e=>c.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),j=process.getMaxListeners?.()??10;process.setMaxListeners&&j<50&&process.setMaxListeners(50);let M=!1,N=()=>{M=!0};process.once(`SIGINT`,N);let F=0;for(;!ae();){let n=J(),r=Date.now(),u=null,g=null,_=null,k=0,j=null,I=l.messageTimeoutMs??1800*1e3,se=l.watchdogCheckMs??60*1e3,L=new Set,ce=an({cfg:y,verbose:t,connectionId:n,maxMediaBytes:ee,groupHistoryLimit:E,groupHistories:te,groupMemberNames:ne,echoTracker:re,backgroundTasks:L,replyResolver:o??oe,replyLogger:d,baseMentionConfig:T,account:v}),le=S({cfg:y,channel:`whatsapp`}),R=await(i??Et)({verbose:t,accountId:v.accountId,authDir:v.authDir,mediaMaxMb:v.mediaMaxMb,sendReadReceipts:v.sendReadReceipts,debounceMs:le,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!b(e.body,y),onMessage:async e=>{k+=1,_=Date.now(),m.lastMessageAt=_,m.lastEventAt=_,h(),await ce(e)}});Object.assign(m,x()),m.lastError=null,h();let{e164:z}=de(v.authDir),B=O({cfg:y,channel:`whatsapp`,accountId:v.accountId});D(`WhatsApp gateway connected${z?` as ${z}`:``}.`,{sessionKey:B.sessionKey}),Ne(v.accountId,R),j=pe(e=>{if(!Yt(e))return!1;let t=q(e);return p.warn({connectionId:n,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),R.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let V=async()=>{Ne(v.accountId,null),j&&=(j(),null),u&&clearInterval(u),g&&clearInterval(g),L.size>0&&(await Promise.allSettled(L),L.clear());try{await R.close()}catch(t){e(`Socket close failed: ${q(t)}`)}};if(a&&(u=setInterval(()=>{let e=fe(v.authDir),t=_?Math.floor((Date.now()-_)/6e4):null,i={connectionId:n,reconnectAttempts:F,messagesHandled:k,lastMessageAt:_,authAgeMs:e,uptimeMs:Date.now()-r,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?f.warn(i,`โ ๏ธ web gateway heartbeat - no messages in 30+ minutes`):f.info(i,`web gateway heartbeat`)},C*1e3),g=setInterval(()=>{if(!_)return;let t=Date.now()-_;if(t<=I)return;let r=Math.floor(t/6e4);f.warn({connectionId:n,minutesSinceLastMessage:r,lastMessageAt:new Date(_),messagesHandled:k},`Message timeout detected - forcing reconnect`),Ye.warn(`No messages received in ${r}m - restarting connection`),V().catch(t=>{e(`Close listener failed: ${q(t)}`)}),R.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},se)),Y.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&Y.raw(`Ctrl+C to stop.`),!a){await V(),process.removeListener(`SIGINT`,N);return}let H=await Promise.race([R.onClose?.catch(e=>(p.error({error:q(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??Xe(),A??Xe()]);if(Date.now()-r>C*1e3&&(F=0),m.reconnectAttempts=F,h(),ae()||M||H===`aborted`){await V();break}let U=(typeof H==`object`&&H&&`status`in H?H.status:void 0)??`unknown`,W=typeof H==`object`&&H&&`isLoggedOut`in H&&H.isLoggedOut,G=q(H);if(m.connected=!1,m.lastEventAt=Date.now(),m.lastDisconnect={at:m.lastEventAt,status:typeof U==`number`?U:void 0,error:G,loggedOut:!!W},m.lastError=G,m.reconnectAttempts=F,h(),p.info({connectionId:n,status:U,loggedOut:W,reconnectAttempts:F,error:G},`web reconnect: connection closed`),D(`WhatsApp gateway disconnected (status ${U??`unknown`})`,{sessionKey:B.sessionKey}),W){s.error(`WhatsApp session logged out. Run \`${ue(`openclaw channels login --channel web`)}\` to relink.`),await V();break}if(on(U)){p.warn({connectionId:n,status:U,error:G},`web reconnect: non-retryable close status; stopping monitor`),s.error(`WhatsApp Web connection closed (status ${U}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${ue(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await V();break}if(F+=1,m.reconnectAttempts=F,h(),w.maxAttempts>0&&F>=w.maxAttempts){p.warn({connectionId:n,status:U,reconnectAttempts:F,maxAttempts:w.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),s.error(`WhatsApp Web reconnect: max attempts reached (${F}/${w.maxAttempts}). Stopping web monitoring.`),await V();break}let K=P(w,F);p.info({connectionId:n,status:U,reconnectAttempts:F,maxAttempts:w.maxAttempts||`unlimited`,delayMs:K},`web reconnect: scheduling retry`),s.error(`WhatsApp Web connection closed (status ${U}). Retry ${F}/${w.maxAttempts||`โ`} in ${Me(K)}โฆ (${G})`),await V();try{await ie(K,c)}catch{break}}m.running=!1,m.connected=!1,m.lastEventAt=Date.now(),h(),process.removeListener(`SIGINT`,N)}export{Et as n,Xe as r,sn as t};
|
|
6
|
+
//# sourceMappingURL=channel-web-CxHbET4B.js.map
|
|
@@ -5,3 +5,4 @@ import{$ as e,J as t,R as n,et as r,it as i,nt as a,o,rt as s,s as c,t as l,tt a
|
|
|
5
5
|
`:``}${t}`,i=s.length+r.length,a=c+(n?0:1);(i>m||a>h)&&s.length>0&&u(),s.length>0?(s+=r,n||(c+=1)):(s=t,c=1)}l=a}if(s.length){let e=Ze(s,l);e.trim().length&&o.push(e)}return tt(e,o)}function et(e,t){if((t.chunkMode??`length`)!==`newline`)return $e(e,t);let n=ue(e,Math.max(1,Math.floor(t.maxChars??Ke)),`newline`),r=[];for(let e of n){let n=$e(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function tt(e,t){if(t.length<=1||!(e.startsWith(`Reasoning:
|
|
6
6
|
_`)&&e.trimEnd().endsWith(`_`)))return t;let n=[...t];for(let e=0;e<n.length;e++){let t=e===n.length-1,r=n[e];if(r.trimEnd().endsWith(`_`)||(n[e]=`${r}_`),t)break;let i=n[e+1],a=i.length-i.trimStart().length,o=i.slice(0,a),s=i.slice(a);s.startsWith(`_`)||(n[e+1]=`${o}_${s}`)}return n}function nt(e){let t=i(e.fallbackToken,`channels.discord.token`);if(!t)throw Error(`Discord bot token missing for account "${e.accountId}" (set discord.accounts.${e.accountId}.token or DISCORD_BOT_TOKEN for default).`);return t}function rt(e,t){return t??new De(e)}function it(e){let t=d(e.accountId),n=a(e.cfg,t),r=e.cfg.channels?.discord?.enabled!==!1,i=n.enabled!==!1;return{accountId:t,enabled:r&&i,name:n.name?.trim()||void 0,token:``,tokenSource:`none`,config:n}}function at(e,t){let n=e.cfg??t??l(),r=i(e.token,`channels.discord.token`),a=r?it({cfg:n,accountId:e.accountId}):s({cfg:n,accountId:e.accountId}),o=r??nt({accountId:a.accountId,fallbackToken:a.token});return{token:o,rest:rt(o,e.rest),account:a}}function P(e,t){let{token:n,rest:r,account:i}=at(e,e.cfg??t);return{token:n,rest:r,request:x({retry:e.retry,configRetry:i.config.retry,verbose:e.verbose})}}function F(e){return at(e,e.cfg).rest}const ot=Object.entries(E).filter(([,e])=>typeof e==`bigint`),st=ot.reduce((e,[,t])=>e|t,0n),ct=E.Administrator;function I(e,t){return t?e|BigInt(t):e}function lt(e,t){return t?e&~BigInt(t):e}function ut(e){return ot.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function dt(e){return(e&ct)===ct}function ft(e,t){return(e&t)===t}function pt(e){return e===T.GuildNewsThread||e===T.GuildPublicThread||e===T.GuildPrivateThread}async function mt(e){let t=await e.get(D.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function ht(e,t,n={}){let r=F(n);try{let[n,i]=await Promise.all([r.get(D.guild(e)),r.get(D.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=I(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=I(s,t.permissions))}return s}catch{return null}}async function gt(e,t,n,r,i={}){let a=await ht(e,t,i);return a===null?!1:dt(a)?!0:r(a,n)}async function _t(e,t,n,r={}){return await gt(e,t,n,(e,t)=>t.some(t=>ft(e,t)),r)}async function vt(e,t={}){let n=F(t),r=await n.get(D.channel(e)),i=`type`in r?r.type:void 0,a=`guild_id`in r?r.guild_id:void 0;if(!a)return{channelId:e,permissions:[],raw:`0`,isDm:!0,channelType:i};let o=await mt(n),[s,c]=await Promise.all([n.get(D.guild(a)),n.get(D.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=I(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=I(d,t.permissions))}if(dt(d))return{channelId:e,guildId:a,permissions:ut(st),raw:st.toString(),isDm:!1,channelType:i};let f=d,p=`permission_overwrites`in r?r.permission_overwrites??[]:[];for(let e of p)e.id===a&&(f=lt(f,e.deny??`0`),f=I(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=lt(f,e.deny??`0`),f=I(f,e.allow??`0`));for(let e of p)e.id===o&&(f=lt(f,e.deny??`0`),f=I(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:ut(f),raw:f.toString(),isDm:!1,channelType:i}}var yt=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const bt=/#\d{4}$/,xt=new Map;function St(e){return d(e??`default`)||`default`}function Ct(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function wt(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function Tt(e){let t=St(e),n=xt.get(t);if(n)return n;let r=new Map;return xt.set(t,r),r}function Et(e,t,n){if(e.has(t)&&e.delete(t),e.set(t,n),e.size<=4e3)return;let r=e.keys().next();r.done||e.delete(r.value)}function Dt(e){let t=Ct(e.userId);if(!t)return;let n=Tt(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=wt(r);if(!e)continue;Et(n,e,t);let i=e.replace(bt,``);i&&i!==e&&Et(n,i,t)}}function Ot(e){let t=xt.get(St(e.accountId));if(!t)return;let n=wt(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(bt,``);if(!(!i||i===n))return t.get(i)}const kt={attempts:3,minDelayMs:500,maxDelayMs:3e4,jitter:.1};function At(e){let t=e.trim();if(!t.startsWith(`{`)||!t.endsWith(`}`))return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`)return e}catch{return null}return null}function jt(e,t){let n=At(e),r=n&&typeof n.retry_after==`number`&&Number.isFinite(n.retry_after)?n.retry_after:void 0;if(r!==void 0)return r;let i=t.headers.get(`Retry-After`);if(!i)return;let a=Number(i);return Number.isFinite(a)?a:void 0}function Mt(e){if(!(e===void 0||!Number.isFinite(e)||e<0))return`${e<10?e.toFixed(1):Math.round(e).toString()}s`}function Nt(e){let t=e.trim();if(!t)return;let n=At(t);if(!n)return t.startsWith(`{`)&&t.endsWith(`}`)?`unknown error`:t;let r=typeof n.message==`string`&&n.message.trim()?n.message.trim():`unknown error`,i=Mt(typeof n.retry_after==`number`?n.retry_after:void 0);return i?`${r} (retry after ${i})`:r}var Pt=class extends Error{constructor(e,t,n){super(e),this.status=t,this.retryAfter=n}};async function Ft(e,t,n=fetch,r){let i=fe(n);if(!i)throw Error(`fetch is not available`);return c(async()=>{let n=await i(`https://discord.com/api/v10${e}`,{headers:{Authorization:`Bot ${t}`}});if(!n.ok){let t=await n.text().catch(()=>``),r=Nt(t),i=r?`: ${r}`:``,a=n.status===429?jt(t,n):void 0;throw new Pt(`Discord API ${e} failed (${n.status})${i}`,n.status,a)}return await n.json()},{...o(kt,r?.retry),label:r?.label??e,shouldRetry:e=>e instanceof Pt&&e.status===429,retryAfterMs:e=>e instanceof Pt&&typeof e.retryAfter==`number`?e.retryAfter*1e3:void 0})}function It(e){return e?.trim().toLowerCase()??``}function Lt(e){return e.bot?0:1}function Rt(e){let t=i(s({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:It(e.query)}:null}async function zt(e){return(await Ft(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function Bt(e){let t=Rt(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await zt(n),a=[],o=typeof e.limit==`number`&&e.limit>0?e.limit:25;for(let t of i){let i=new URLSearchParams({query:r,limit:String(Math.min(o,100))}),s=await Ft(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;Dt({accountId:e.accountId,userId:n.id,handles:[n.username,n.global_name,t.nick,n.username?`@${n.username}`:null]});let r=t.nick?.trim()||n.global_name?.trim()||n.username?.trim();if(a.push({kind:`user`,id:`user:${n.id}`,name:r||void 0,handle:n.username?`@${n.username}`:void 0,rank:Lt(n),raw:t}),a.length>=o)return a}}return a}function L(e,t={}){let n=e.trim();if(!n)return;let r=We({raw:n,mentionPattern:/^<@!?(\d+)>$/,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`discord:`,kind:`user`}],atUserPattern:/^\d+$/,atUserErrorMessage:`Discord DMs require a user id (use user:<id> or a <@id> mention)`});if(r)return r;if(/^\d+$/.test(n)){if(t.defaultKind)return N(t.defaultKind,n,n);throw Error(t.ambiguousMessage??`Ambiguous Discord recipient "${n}". Use "user:${n}" for DMs or "channel:${n}" for channel messages.`)}return N(`channel`,n,n)}function Vt(e){return Ge({platform:`Discord`,target:L(e,{defaultKind:`channel`}),kind:`channel`})}async function Ht(e,t,n={}){let r=e.trim();if(!r)return;let i=Gt(r),a=Wt(r,n)||i,o=Ut(r,n);if(o&&o.kind!==`channel`&&!i)return o;if(!a)return o??L(r,n);try{let e=(await Bt({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return Dt({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),N(`user`,n,r)}}catch{}return L(r,n)}function Ut(e,t){try{return L(e,t)}catch{return}}function Wt(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function Gt(e){return!/^(user:|channel:|discord:|@|<@!?)|[\d]+$/.test(e)}function Kt(e){let t=e.trim();if(!t)throw Error(`emoji required`);let n=t.match(/^<a?:([^:>]+):(\d+)>$/),r=n?`${n[1]}:${n[2]}`:t.replace(/[\uFE0E\uFE0F]/g,``);return encodeURIComponent(r)}async function R(e,t,n){let r=n??l(),i=s({cfg:r,accountId:t}),a=e.trim(),o={ambiguousMessage:`Ambiguous Discord recipient "${a}". Use "user:${a}" for DMs or "channel:${a}" for channel messages.`},c=await Ht(e,{cfg:r,accountId:i.accountId},o);if(c)return{kind:c.kind,id:c.id};let u=L(e,o);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function qt(e){let t=e.map(e=>e.trim()).filter(Boolean);if(t.length===0)throw Error(`At least one sticker id is required`);if(t.length>3)throw Error(`Discord supports up to 3 stickers per message`);return t}function z(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function Jt(e){let t=ne(e,{maxOptions:10}),n=re(t.durationHours,{defaultHours:24,maxHours:768});return{question:{text:t.question},answers:t.options.map(e=>({poll_media:{text:e}})),duration:n,allow_multiselect:t.maxSelections>1,layout_type:Pe.Default}}function Yt(e){if(!e||typeof e!=`object`)return;let t=`code`in e&&e.code!==void 0?e.code:`rawError`in e&&e.rawError&&typeof e.rawError==`object`?e.rawError.code:void 0;if(typeof t==`number`)return t;if(typeof t==`string`&&/^\d+$/.test(t))return Number(t)}async function B(e,t){if(e instanceof yt)return e;let n=Yt(e);if(n===50007)return new yt(`discord dm failed: user blocks dms or privacy settings disallow it`,{kind:`dm-blocked`});if(n!==50013)return e;let r=[];try{let e=await vt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];pt(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new yt(`${r.length?`missing permissions in channel ${t.channelId}: ${r.join(`, `)}`:`missing permissions in channel ${t.channelId}`}. bot might be muted or blocked by role/channel overrides`,{kind:`missing-permissions`,channelId:t.channelId,missingPermissions:r})}async function V(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(D.userChannels(),{body:{recipient_id:t.id}}),`dm-channel`);if(!r?.id)throw Error(`Failed to create Discord DM channel`);return{channelId:r.id,dm:!0}}async function Xt(e,t){try{return(await e.get(D.channel(t)))?.type}catch{return}}const H=4096;function Zt(e,t={}){if(!e)return[];let n=et(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function Qt(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function $t(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function en(e){if(e?.length)return e.map(e=>e instanceof xe?e:new xe(e))}function tn(e){if(!(!e.embeds||!e.isFirst))return en(e.embeds)}function nn(e){let t={},n=Qt(e.components),r=e.text.trim();return!n&&r&&(t.content=e.text),e.components?.length&&(t.components=e.components),!n&&e.embeds?.length&&(t.embeds=e.embeds),e.flags!==void 0&&(t.flags=e.flags),e.files?.length&&(t.files=e.files),t}function U(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function rn(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function an(e,t,n,r,i,a,o,s,c,l){if(!n.trim())throw Error(`Message must be non-empty for Discord sends`);let u=r?{message_id:r,fail_if_not_exists:!1}:void 0,d=l?H:void 0,f=Zt(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=U({...A(nn({text:n,components:$t({components:o,text:n,isFirst:r}),embeds:tn({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(D.channelMessages(t),{body:a}),`text`)};if(f.length===1)return await p(f[0],!0);let m=null;for(let[e,t]of f.entries())m=await p(t,e===0);if(!m)throw Error(`Discord send failed (empty chunk result)`);return m}async function on(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=await te(r,de({maxBytes:a,mediaLocalRoots:i})),m=n?Zt(n,{maxLinesPerMessage:c,chunkMode:d}):[],h=m[0]??``,g=o?{message_id:o,fail_if_not_exists:!1}:void 0,_=f?H:void 0,v=rn(p.buffer),y=nn({text:h,components:$t({components:l,text:h,isFirst:!0}),embeds:tn({embeds:u,isFirst:!0}),flags:_,files:[{data:v,name:p.fileName??`upload`}]}),b=await s(()=>e.post(D.channelMessages(t),{body:U({...A(y),...g?{message_reference:g}:{}})}),`media`);for(let n of m.slice(1))n.trim()&&await an(e,t,n,o,s,c,void 0,void 0,d,f);return b}function sn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function cn(e){return sn(e)}async function W(e,t={}){let n=F(t),r={name:e.name};return e.type!==void 0&&(r.type=e.type),e.parentId&&(r.parent_id=e.parentId),e.topic&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.nsfw!==void 0&&(r.nsfw=e.nsfw),await n.post(D.guildChannels(e.guildId),{body:r})}async function G(e,t={}){let n=F(t),r={};return e.name!==void 0&&(r.name=e.name),e.topic!==void 0&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.parentId!==void 0&&(r.parent_id=e.parentId),e.nsfw!==void 0&&(r.nsfw=e.nsfw),e.rateLimitPerUser!==void 0&&(r.rate_limit_per_user=e.rateLimitPerUser),e.archived!==void 0&&(r.archived=e.archived),e.locked!==void 0&&(r.locked=e.locked),e.autoArchiveDuration!==void 0&&(r.auto_archive_duration=e.autoArchiveDuration),e.availableTags!==void 0&&(r.available_tags=e.availableTags.map(e=>({...e.id!==void 0&&{id:e.id},name:e.name,...e.moderated!==void 0&&{moderated:e.moderated},...e.emoji_id!==void 0&&{emoji_id:e.emoji_id},...e.emoji_name!==void 0&&{emoji_name:e.emoji_name}}))),await n.patch(D.channel(e.channelId),{body:r})}async function K(e,t={}){return await F(t).delete(D.channel(e)),{ok:!0,channelId:e}}async function ln(e,t={}){let n=F(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(D.guildChannels(e.guildId),{body:r}),{ok:!0}}async function un(e,t={}){let n=F(t),r={type:e.targetType};return e.allow!==void 0&&(r.allow=e.allow),e.deny!==void 0&&(r.deny=e.deny),await n.put(`/channels/${e.channelId}/permissions/${e.targetId}`,{body:r}),{ok:!0}}async function dn(e,t,n={}){return await F(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function fn(e,t={}){return await F(t).get(D.guildEmojis(e))}async function pn(e,t={}){let n=F(t),r=await se(e.mediaUrl,262144),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/jpeg`,`image/jpg`,`image/gif`].includes(i))throw Error(`Discord emoji uploads require a PNG, JPG, or GIF image`);let a=`data:${i};base64,${r.buffer.toString(`base64`)}`,o=(e.roleIds??[]).map(e=>e.trim()).filter(Boolean);return await n.post(D.guildEmojis(e.guildId),{body:{name:z(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function mn(e,t={}){let n=F(t),r=await se(e.mediaUrl,524288),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/apng`,`application/json`].includes(i))throw Error(`Discord sticker uploads require a PNG, APNG, or Lottie JSON file`);return await n.post(D.guildStickers(e.guildId),{body:{name:z(e.name,`Sticker name`),description:z(e.description,`Sticker description`),tags:z(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function hn(e,t,n={}){return await F(n).get(D.guildMember(e,t))}async function gn(e,t={}){return await F(t).get(D.guildRoles(e))}async function _n(e,t={}){return await F(t).put(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function vn(e,t={}){return await F(t).delete(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function yn(e,t={}){return await F(t).get(D.channel(e))}async function bn(e,t={}){return await F(t).get(D.guildChannels(e))}async function xn(e,t,n={}){return await F(n).get(D.guildVoiceState(e,t))}async function Sn(e,t={}){return await F(t).get(D.guildScheduledEvents(e))}async function Cn(e,t,n={}){return await F(n).post(D.guildScheduledEvents(e),{body:t})}async function wn(e,t={}){let n=F(t),r=e.until;if(!r&&e.durationMinutes){let t=e.durationMinutes*60*1e3;r=new Date(Date.now()+t).toISOString()}return await n.patch(D.guildMember(e.guildId,e.userId),{body:{communication_disabled_until:r??null},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0})}async function Tn(e,t={}){return await F(t).delete(D.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function En(e,t={}){let n=F(t),r=typeof e.deleteMessageDays==`number`&&Number.isFinite(e.deleteMessageDays)?Math.min(Math.max(Math.floor(e.deleteMessageDays),0),7):void 0;return await n.put(D.guildBan(e.guildId,e.userId),{body:r===void 0?void 0:{delete_message_days:r},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Dn(e,t={},n={}){let r=F(n),i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.min(Math.max(Math.floor(t.limit),1),100):void 0,a={};return i&&(a.limit=i),t.before&&(a.before=t.before),t.after&&(a.after=t.after),t.around&&(a.around=t.around),await r.get(D.channelMessages(e),a)}async function On(e,t,n={}){return await F(n).get(D.channelMessage(e,t))}async function kn(e,t,n,r={}){return await F(r).patch(D.channelMessage(e,t),{body:{content:n.content}})}async function An(e,t,n={}){return await F(n).delete(D.channelMessage(e,t)),{ok:!0}}async function jn(e,t,n={}){return await F(n).put(D.channelPin(e,t)),{ok:!0}}async function Mn(e,t,n={}){return await F(n).delete(D.channelPin(e,t)),{ok:!0}}async function Nn(e,t={}){return await F(t).get(D.channelPins(e))}async function Pn(e,t,n={}){let r=F(n),i={name:t.name};t.autoArchiveMinutes&&(i.auto_archive_duration=t.autoArchiveMinutes),!t.messageId&&t.type!==void 0&&(i.type=t.type);let a;if(!t.messageId)try{a=(await r.get(D.channel(e)))?.type}catch{a=void 0}let o=a===T.GuildForum||a===T.GuildMedia;o&&(i.message={content:t.content?.trim()?t.content:t.name},t.appliedTags?.length&&(i.applied_tags=t.appliedTags)),!t.messageId&&!o&&i.type===void 0&&(i.type=T.PublicThread);let s=t.messageId?D.threads(e,t.messageId):D.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(D.channelMessages(c.id),{body:{content:t.content}}),c}async function Fn(e,t={}){let n=F(t);if(e.includeArchived){if(!e.channelId)throw Error(`channelId required to list archived threads`);let t={};return e.before&&(t.before=e.before),e.limit&&(t.limit=e.limit),await n.get(D.channelThreads(e.channelId,`public`),t)}return await n.get(D.guildActiveThreads(e.guildId))}async function In(e,t={}){let n=F(t),r=new URLSearchParams;if(r.set(`content`,e.content),e.channelIds?.length)for(let t of e.channelIds)r.append(`channel_id`,t);if(e.authorIds?.length)for(let t of e.authorIds)r.append(`author_id`,t);if(e.limit){let t=Math.min(Math.max(Math.floor(e.limit),1),25);r.set(`limit`,String(t))}return await n.get(`/guilds/${e.guildId}/messages/search?${r.toString()}`)}const Ln={bold:{open:`**`,close:`**`},italic:{open:`_`,close:`_`},strikethrough:{open:`~~`,close:`~~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}};function Rn(e,t){if(!e||t===`off`)return e;let{ir:n,hasTables:r}=oe(e,{linkify:!1,autolink:!1,headingStyle:`none`,blockquotePrefix:``,tableMode:t});return r?ie(n,{styleMarkers:Ln,escapeText:e=>e,buildLink:(e,t)=>{let n=e.href.trim();return!n||!t.slice(e.start,e.end)?null:{start:e.start,end:e.end,open:`[`,close:`](${n})`}}}):e}async function zn(e){if(e)try{await me.unlink(e)}catch{}}const Bn=/```[\s\S]*?```|`[^`\n]*`/g,Vn=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,Hn=new Set([`everyone`,`here`]);function Un(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function Wn(e){let t=e.userId==null?null:Un(e.userId),n=e.roleId==null?null:Un(e.roleId),r=e.channelId==null?null:Un(e.channelId),i=[t?{kind:`user`,id:t}:null,n?{kind:`role`,id:n}:null,r?{kind:`channel`,id:r}:null].filter(e=>!!e);if(i.length!==1)throw Error(`formatMention requires exactly one of userId, roleId, or channelId`);let a=i[0];return a.kind===`user`?`<@${a.id}>`:a.kind===`role`?`<@&${a.id}>`:`<#${a.id}>`}function Gn(e,t){return e.includes(`@`)?e.replace(Vn,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(Hn.has(a))return e;let o=Ot({accountId:t,handle:i});return o?`${String(n??``)}${Wn({userId:o})}`:e}):e}function Kn(e,t){if(!e.includes(`@`))return e;let n=``,r=0;Bn.lastIndex=0;for(let i of e.matchAll(Bn)){let a=i.index??0;n+=Gn(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=Gn(e.slice(r),t.accountId),n}const qn=he(ge);function Jn(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function Yn(e,t){let{stdout:n}=await qn(`ffprobe`,e,Jn(1e4,t));return n.toString()}async function Xn(e,t){let{stdout:n}=await qn(`ffmpeg`,e,Jn(45e3,t));return n.toString()}function Zn(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function Qn(e){let[t,n]=Zn(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const $n=8192;async function er(e){try{let t=await Yn([`-v`,`error`,`-show_entries`,`format=duration`,`-of`,`csv=p=0`,e]),n=parseFloat(t.trim());if(isNaN(n))throw Error(`Could not parse duration`);return Math.round(n*100)/100}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to get audio duration: ${t}`,{cause:e})}}async function tr(e){try{return await nr(e)}catch{return rr()}}async function nr(e){let t=f(),n=C.join(t,`waveform-${j.randomUUID()}.raw`);try{await Xn([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,n]);let t=await me.readFile(n),r=new Int16Array(t.buffer,t.byteOffset,t.byteLength/2),i=Math.max(1,Math.floor(r.length/256)),a=[];for(let e=0;e<256&&e*i<r.length;e++){let t=0,n=0;for(let a=0;a<i&&e*i+a<r.length;a++)t+=Math.abs(r[e*i+a]),n++;let o=n>0?t/n:0,s=Math.min(255,Math.round(o/32767*255));a.push(s)}for(;a.length<256;)a.push(0);return Buffer.from(a).toString(`base64`)}finally{await zn(n)}}function rr(){let e=[];for(let t=0;t<256;t++){let n=Math.round(128+64*Math.sin(t/256*Math.PI*8));e.push(Math.min(255,Math.max(0,n)))}return Buffer.from(e).toString(`base64`)}async function ir(e){let t=e.trim();if(/^[a-z][a-z0-9+.-]*:\/\//i.test(t))throw Error(`Voice message conversion requires a local file path; received a URL/protocol source: ${t}`);if(C.extname(e).toLowerCase()===`.ogg`)try{let{codec:t,sampleRateHz:n}=Qn(await Yn([`-v`,`error`,`-select_streams`,`a:0`,`-show_entries`,`stream=codec_name,sample_rate`,`-of`,`csv=p=0`,e]));if(t===`opus`&&n===48e3)return{path:e,cleanup:!1}}catch{}let n=f(),r=C.join(n,`voice-${j.randomUUID()}.ogg`);return await Xn([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,r]),{path:r,cleanup:!0}}async function ar(e){let[t,n]=await Promise.all([er(e),tr(e)]);return{durationSecs:t,waveform:n}}async function or(e,t,n,r,i,a,o,s){let c=`voice-message.ogg`,l=n.byteLength,u=s;if(!u)throw Error(`Discord bot token is required for voice message upload`);let d=await a(async()=>{let n=`${e.options?.baseUrl??`https://discord.com/api`}/channels/${t}/attachments`,r=await fetch(n,{method:`POST`,headers:{Authorization:`Bot ${u}`,"Content-Type":`application/json`},body:JSON.stringify({files:[{filename:c,file_size:l,id:`0`}]})});if(!r.ok){if(r.status===429){let e=await r.json().catch(()=>({}));throw new Ee(r,{message:e.message??`You are being rate limited.`,retry_after:e.retry_after??1,global:e.global??!1})}let e=await r.json().catch(()=>null),t=Error(`Upload URL request failed: ${r.status} ${e?.message??``}`);throw e?.code!==void 0&&(t.code=e.code),t}return await r.json()},`voice-upload-url`);if(!d.attachments?.[0])throw Error(`Failed to get upload URL for voice message`);let{upload_url:f,upload_filename:p}=d.attachments[0],m=await fetch(f,{method:`PUT`,headers:{"Content-Type":`audio/ogg`},body:new Uint8Array(n)});if(!m.ok)throw Error(`Failed to upload voice message: ${m.status}`);let h={flags:o?$n|4096:$n,attachments:[{id:`0`,filename:c,uploaded_filename:p,duration_secs:r.durationSecs,waveform:r.waveform}]};return i&&(h.message_reference={message_id:i,fail_if_not_exists:!1}),await a(()=>e.post(`/channels/${t}/messages`,{body:h}),`voice-message`)}async function sr(e){for(let t of e.chunks)await an(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function cr(e){return(e.split(`
|
|
7
7
|
`).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function lr(e){return e===T.GuildForum||e===T.GuildMedia}function q(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function ur(e,t){let n=t.cfg??l(),{rest:r,request:i}=P(t,n),{channelId:a}=await V(r,await R(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function dr(e,t,n={}){let r=n.cfg??l(),i=s({cfg:r,accountId:n.accountId}),a=ce({cfg:r,channel:`discord`,accountId:i.accountId}),o=ee(r,`discord`,i.accountId),c=typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb*1024*1024:8*1024*1024,u=Rn(t??``,a),d=Kn(u,{accountId:i.accountId}),{token:f,rest:p,request:m}=P(n,r),{channelId:h}=await V(p,await R(e,n.accountId,r),m);if(lr(await Xt(p,h))){let e=cr(u),t=Zt(d,{maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:o}),r=t[0]?.trim()?t[0]:e,a=nn({text:r,components:$t({components:n.components,text:r,isFirst:!0}),embeds:tn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),s;try{s=await m(()=>p.post(D.threads(h),{body:{name:e,message:U(A(a))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}let l=s.id,g=s.message?.id??l,_=s.message?.channel_id??l,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await on(p,l,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,m,i.config.maxLinesPerMessage,void 0,void 0,o,n.silent),await sr({rest:p,threadId:l,chunks:t,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:o,silent:n.silent})}else await sr({rest:p,threadId:l,chunks:v,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:o,silent:n.silent})}catch(e){throw await B(e,{channelId:l,rest:p,token:f,hasMedia:!!n.mediaUrl})}return pe({channel:`discord`,accountId:i.accountId,direction:`outbound`}),q({id:g,channel_id:_},h)}let g;try{g=n.mediaUrl?await on(p,h,d,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,o,n.silent):await an(p,h,d,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,o,n.silent)}catch(e){throw await B(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}return pe({channel:`discord`,accountId:i.accountId,direction:`outbound`}),q(g,h)}async function fr(e,t,n={}){let{rest:r,request:i,channelId:a}=await ur(e,n),o=n.content?.trim(),s=o?Kn(o,{accountId:n.accountId}):void 0,c=qt(t);return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function pr(e,t,n={}){let{rest:r,request:i,channelId:a}=await ur(e,n),o=n.content?.trim(),s=o?Kn(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=Jt(t),l=n.silent?H:void 0;return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function mr(n){let r=await se(n,e(`audio`)),i=r.fileName?C.extname(r.fileName):``,a=r.contentType?t(r.contentType):``,o=i||a||`.bin`,s=f(),c=C.join(s,`voice-src-${j.randomUUID()}${o}`);return await me.writeFile(c,r.buffer,{mode:384}),{filePath:c}}async function hr(e,t,n={}){let{filePath:r}=await mr(t),i=null,a=!1,o,c,u;try{let t=n.cfg??l(),d=s({cfg:t,accountId:n.accountId}),f=P(n,t);o=f.token,c=f.rest;let p=f.request,m=await R(e,n.accountId,t);u=(await V(c,m,p)).channelId;let h=await ir(r);i=h.path,a=h.cleanup;let g=await ar(i),_=await me.readFile(i),v=await or(c,u,_,g,n.replyTo,p,n.silent,o);return pe({channel:`discord`,accountId:d.accountId,direction:`outbound`}),q(v,u)}catch(e){throw u&&c&&o?await B(e,{channelId:u,rest:c,token:o,hasMedia:!0}):e}finally{await zn(a?i:null),await zn(r)}}const gr=new Map,_r=new Map;function vr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function yr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=vr({...r,messageId:e.messageId??r.messageId},t,n);gr.set(r.id,i)}for(let r of e.modals){let i=vr({...r,messageId:e.messageId??r.messageId},t,n);_r.set(r.id,i)}}const br=`attachment://`,xr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function J(e){return`${e}${j.randomBytes(6).toString(`base64url`)}`}function Y(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function X(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Z(e){return typeof e==`string`&&e.trim()||void 0}function Sr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);if(e.length!==0)return e.map((e,n)=>X(e,`${t}[${n}]`))}}function Q(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function Cr(e,t){return e?.trim()||`field_${t+1}`}function wr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${br}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${br}${r}`}function Tr(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${br}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function Er(e){switch((e??`primary`).toLowerCase()){case`secondary`:return w.Secondary;case`success`:return w.Success;case`danger`:return w.Danger;case`link`:return w.Link;default:return w.Primary}}function Dr(e){let t=e.trim().toLowerCase();return xr.get(t)??t}function Or(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=Y(e,`${t}[${n}]`);return{label:X(r.label,`${t}[${n}].label`),value:X(r.value,`${t}[${n}].value`),description:Z(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:X(r.emoji.name,`${t}[${n}].emoji.name`),id:Z(r.emoji.id),animated:typeof r.emoji.animated==`boolean`?r.emoji.animated:void 0}:void 0,default:typeof r.default==`boolean`?r.default:void 0}})}}function kr(e,t){let n=Y(e,t),r=Z(n.style),i=Z(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:X(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:X(n.emoji.name,`${t}.emoji.name`),id:Z(n.emoji.id),animated:typeof n.emoji.animated==`boolean`?n.emoji.animated:void 0}:void 0,disabled:typeof n.disabled==`boolean`?n.disabled:void 0,allowedUsers:Sr(n.allowedUsers,`${t}.allowedUsers`)}}function Ar(e,t){let n=Y(e,t),r=Z(n.type),i=[`string`,`user`,`role`,`mentionable`,`channel`];if(r&&!i.includes(r))throw Error(`${t}.type must be one of ${i.join(`, `)}`);return{type:r,placeholder:Z(n.placeholder),minValues:Q(n.minValues),maxValues:Q(n.maxValues),options:Or(n.options,`${t}.options`)}}function jr(e,t,n){let r=Y(e,t),i=X(r.type,`${t}.type`).toLowerCase(),a=[`text`,`checkbox`,`radio`,`select`,`role-select`,`user-select`];if(!a.includes(i))throw Error(`${t}.type must be one of ${a.join(`, `)}`);let o=Or(r.options,`${t}.options`);if([`checkbox`,`radio`,`select`].includes(i)&&(!o||o.length===0))throw Error(`${t}.options is required for ${i} fields`);return{type:i,name:Cr(Z(r.name),n),label:X(r.label,`${t}.label`),description:Z(r.description),placeholder:Z(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:Q(r.minValues),maxValues:Q(r.maxValues),minLength:Q(r.minLength),maxLength:Q(r.maxLength),style:Z(r.style)}}function Mr(e,t){let n=Y(e,t);switch(Dr(X(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:X(n.text,`${t}.text`)};case`section`:{let e=Z(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>X(e,`${t}.texts[${n}]`)):void 0;if(!e&&(!i||i.length===0))throw Error(`${t}.text or ${t}.texts is required for section blocks`);let a;if(n.accessory!==void 0){let e=Y(n.accessory,`${t}.accessory`),r=X(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:X(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:kr(e.button,`${t}.accessory.button`)};else throw Error(`${t}.accessory.type must be "thumbnail" or "button"`)}return{type:`section`,text:e,texts:i,accessory:a}}case`separator`:{let e=n.spacing,r;if(e===`small`||e===`large`)r=e;else if(e===1||e===2)r=e;else if(e!==void 0)throw Error(`${t}.spacing must be "small", "large", 1, or 2`);let i=typeof n.divider==`boolean`?n.divider:void 0;return{type:`separator`,spacing:r,divider:i}}case`actions`:{let e=n.buttons,r=Array.isArray(e)?e.map((e,n)=>kr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?Ar(n.select,`${t}.select`):void 0;if((!r||r.length===0)&&!i)throw Error(`${t} requires buttons or select`);if(r&&i)throw Error(`${t} cannot include both buttons and select`);return{type:`actions`,buttons:r,select:i}}case`media-gallery`:{let e=n.items;if(!Array.isArray(e)||e.length===0)throw Error(`${t}.items must be a non-empty array`);return{type:`media-gallery`,items:e.map((e,n)=>{let r=Y(e,`${t}.items[${n}]`);return{url:X(r.url,`${t}.items[${n}].url`),description:Z(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:wr(X(n.file,`${t}.file`),`${t}.file`),spoiler:typeof n.spoiler==`boolean`?n.spoiler:void 0};default:throw Error(`${t}.type must be a supported component block`)}}function Nr(e){if(e==null)return null;let t=Y(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>Mr(e,`components.blocks[${t}]`)):void 0,i=t.modal,a=typeof t.reusable==`boolean`?t.reusable:void 0,o;if(i!==void 0){let e=Y(i,`components.modal`),t=e.fields;if(!Array.isArray(t)||t.length===0)throw Error(`components.modal.fields must be a non-empty array`);if(t.length>5)throw Error(`components.modal.fields supports up to 5 inputs`);let n=t.map((e,t)=>jr(e,`components.modal.fields[${t}]`,t));o={title:X(e.title,`components.modal.title`),triggerLabel:Z(e.triggerLabel),triggerStyle:Z(e.triggerStyle),fields:n}}return{text:Z(t.text),reusable:a,container:typeof t.container==`object`&&t.container&&!Array.isArray(t.container)?{accentColor:t.container.accentColor,spoiler:typeof t.container.spoiler==`boolean`?t.container.spoiler:void 0}:void 0,blocks:r,modal:o}}function Pr(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function Fr(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function Ir(e){let t=Er(e.spec.style);if(t===w.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends Ce{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??J(`btn_`),r=Pr({componentId:n,modalId:e.modalId});class i extends ve{constructor(...n){super(...n),this.label=e.spec.label,this.customId=r,this.style=t,this.emoji=e.spec.emoji,this.disabled=e.spec.disabled??!1}}return{component:new i,entry:{id:n,kind:e.modalId?`modal-trigger`:`button`,label:e.spec.label,modalId:e.modalId,allowedUsers:e.spec.allowedUsers}}}function Lr(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??J(`sel_`),r=Pr({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends je{constructor(...n){super(...n),this.customId=r,this.options=t,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`select`,selectType:`string`,options:t.map(e=>({value:e.value,label:e.label}))}}}if(t===`user`){class t extends Ne{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`user select`,selectType:`user`}}}if(t===`role`){class t extends Oe{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`role select`,selectType:`role`}}}if(t===`mentionable`){class t extends Te{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`mentionable select`,selectType:`mentionable`}}}class i extends ye{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`channel select`,selectType:`channel`}}}function Rr(e){return e instanceof je||e instanceof Ne||e instanceof Oe||e instanceof Te||e instanceof ye}function zr(e){let t=[],n=[],r=[],i=[],a=n=>{t.push({...n,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:n.reusable??e.spec.reusable})},o=e.spec.text??e.fallbackText;o&&i.push(new k(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new k(t.text));continue}if(t.type===`section`){let e=Fr(t.text,t.texts);if(e.length>3)throw Error(`Section blocks support up to 3 text displays`);let n;if(t.accessory?.type===`thumbnail`)n=new Me(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=Ir({spec:t.accessory.button});n=e,r&&a(r)}i.push(new ke(e,n));continue}if(t.type===`separator`){i.push(new Ae({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new we(t.items));continue}if(t.type===`file`){i.push(new Se(t.file,t.spoiler));continue}if(t.type===`actions`){let e=[];if(t.buttons){if(t.buttons.length>5)throw Error(`Action rows support up to 5 buttons`);for(let n of t.buttons){let{component:t,entry:r}=Ir({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=Lr({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=J(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:J(`fld_`),name:Cr(e.name,t),label:e.label,type:e.type,description:e.description,placeholder:e.placeholder,required:e.required,options:e.options,minValues:e.minValues,maxValues:e.maxValues,minLength:e.minLength,maxLength:e.maxLength,style:e.style}));n.push({id:t,title:e.spec.modal.title,fields:r,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:e.spec.reusable});let{component:o,entry:s}=Ir({spec:{label:e.spec.modal.triggerLabel??`Open form`,style:e.spec.modal.triggerStyle??`primary`},modalId:t});s&&a(s);let c=i.at(-1);if(c instanceof O){let e=c,t=e.components.some(e=>Rr(e));e.components.length<5&&!t?e.addComponent(o):i.push(new O([o]))}else i.push(new O([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new be(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Br(e){return e.some(e=>e.isV2)?_e.IsComponentsV2:void 0}const Vr=new Set([T.GuildForum,T.GuildMedia]);function Hr(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Tr(n.file));return t}async function Ur(e,t,n={}){let r=n.cfg??l(),i=s({cfg:r,accountId:n.accountId}),{token:a,rest:o,request:c}=P(n,r),{channelId:u}=await V(o,await R(e,n.accountId,r),c),d=await Xt(o,u);if(d&&Vr.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=zr({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:i.accountId}),p=Br(f.components),m=n.silent?(p??0)|H:p??void 0,h=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,g=Hr(t),_=[...new Set(g)];if(_.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let v=_[0],y;if(n.mediaUrl){let e=await te(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(v&&v!==t)throw Error(`Component file block expects attachment "${v}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);y=[{data:rn(e.buffer),name:t}]}else if(v)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let b=U({...A({components:f.components,...m?{flags:m}:{},...y?{files:y}:{}}),...h?{message_reference:h}:{}}),x;try{x=await c(()=>o.post(D.channelMessages(u),{body:b}),`components`)}catch(e){throw await B(e,{channelId:u,rest:o,token:a,hasMedia:!!y?.length})}return yr({entries:f.entries,modals:f.modals,messageId:x.id}),pe({channel:`discord`,accountId:i.accountId,direction:`outbound`}),{messageId:x.id??`unknown`,channelId:x.channel_id??u}}async function Wr(e,t,n,r={}){let{rest:i,request:a}=P(r,r.cfg??l()),o=Kt(n);return await a(()=>i.put(D.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function Gr(e,t,n,r={}){let{rest:i}=P(r,r.cfg??l()),a=Kt(n);return await i.delete(D.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Kr(e,t,n={}){let{rest:r}=P(n,n.cfg??l()),i=await r.get(D.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=sn(e.emoji);t&&a.add(t)}if(a.size===0)return{ok:!0,removed:[]};let o=[];return await Promise.allSettled(Array.from(a,n=>(o.push(n),r.delete(D.channelMessageOwnReaction(e,t,Kt(n)))))),{ok:!0,removed:o}}async function qr(e,t,n={}){let{rest:r}=P(n,n.cfg??l()),i=(await r.get(D.channelMessage(e,t))).reactions??[];if(i.length===0)return[];let a=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,o=[];for(let n of i){let i=sn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(D.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:cn(n.emoji)},count:n.count,users:c.map(e=>({id:e.id,username:e.username,tag:e.username&&e.discriminator?`${e.username}#${e.discriminator}`:e.username}))})}return o}async function Jr(e){let t=h(e.values,`guildId`,{required:!0}),n=h(e.values,`userId`,{required:!0}),r=h(e.values,`roleId`,{required:!0});if(e.accountId){await e.mutate({guildId:t,userId:n,roleId:r},{accountId:e.accountId});return}await e.mutate({guildId:t,userId:n,roleId:r})}async function Yr(e,t,n){let r=h(t,`accountId`);switch(e){case`memberInfo`:{if(!n(`memberInfo`))throw Error(`Discord member info is disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`userId`,{required:!0}),a=r?await hn(e,i,{accountId:r}):await hn(e,i),o=Le(r,i),s=o?.activities??void 0,c=o?.status??void 0;return _({ok:!0,member:a,...o?{status:c,activities:s}:{}})}case`roleInfo`:{if(!n(`roleInfo`))throw Error(`Discord role info is disabled.`);let e=h(t,`guildId`,{required:!0});return _({ok:!0,roles:r?await gn(e,{accountId:r}):await gn(e)})}case`emojiList`:{if(!n(`reactions`))throw Error(`Discord reactions are disabled.`);let e=h(t,`guildId`,{required:!0});return _({ok:!0,emojis:r?await fn(e,{accountId:r}):await fn(e)})}case`emojiUpload`:{if(!n(`emojiUploads`))throw Error(`Discord emoji uploads are disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`name`,{required:!0}),a=h(t,`mediaUrl`,{required:!0}),o=v(t,`roleIds`);return _({ok:!0,emoji:r?await pn({guildId:e,name:i,mediaUrl:a,roleIds:o?.length?o:void 0},{accountId:r}):await pn({guildId:e,name:i,mediaUrl:a,roleIds:o?.length?o:void 0})})}case`stickerUpload`:{if(!n(`stickerUploads`))throw Error(`Discord sticker uploads are disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`name`,{required:!0}),a=h(t,`description`,{required:!0}),o=h(t,`tags`,{required:!0}),s=h(t,`mediaUrl`,{required:!0});return _({ok:!0,sticker:r?await mn({guildId:e,name:i,description:a,tags:o,mediaUrl:s},{accountId:r}):await mn({guildId:e,name:i,description:a,tags:o,mediaUrl:s})})}case`roleAdd`:if(!n(`roles`,!1))throw Error(`Discord role changes are disabled.`);return await Jr({accountId:r,values:t,mutate:_n}),_({ok:!0});case`roleRemove`:if(!n(`roles`,!1))throw Error(`Discord role changes are disabled.`);return await Jr({accountId:r,values:t,mutate:vn}),_({ok:!0});case`channelInfo`:{if(!n(`channelInfo`))throw Error(`Discord channel info is disabled.`);let e=h(t,`channelId`,{required:!0});return _({ok:!0,channel:r?await yn(e,{accountId:r}):await yn(e)})}case`channelList`:{if(!n(`channelInfo`))throw Error(`Discord channel info is disabled.`);let e=h(t,`guildId`,{required:!0});return _({ok:!0,channels:r?await bn(e,{accountId:r}):await bn(e)})}case`voiceStatus`:{if(!n(`voiceStatus`))throw Error(`Discord voice status is disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`userId`,{required:!0});return _({ok:!0,voice:r?await xn(e,i,{accountId:r}):await xn(e,i)})}case`eventList`:{if(!n(`events`))throw Error(`Discord events are disabled.`);let e=h(t,`guildId`,{required:!0});return _({ok:!0,events:r?await Sn(e,{accountId:r}):await Sn(e)})}case`eventCreate`:{if(!n(`events`))throw Error(`Discord events are disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`name`,{required:!0}),a=h(t,`startTime`,{required:!0}),o=h(t,`endTime`),s=h(t,`description`),c=h(t,`channelId`),l=h(t,`location`),u=h(t,`entityType`),d=u===`stage`?1:u===`external`?3:2,f={name:i,description:s,scheduled_start_time:a,scheduled_end_time:o,entity_type:d,channel_id:c,entity_metadata:d===3&&l?{location:l}:void 0,privacy_level:2};return _({ok:!0,event:r?await Cn(e,f,{accountId:r}):await Cn(e,f)})}case`channelCreate`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`name`,{required:!0}),a=p(t,`type`,{integer:!0}),o=M(t),s=h(t,`topic`),c=p(t,`position`,{integer:!0}),l=t.nsfw;return _({ok:!0,channel:r?await W({guildId:e,name:i,type:a??void 0,parentId:o??void 0,topic:s??void 0,position:c??void 0,nsfw:l},{accountId:r}):await W({guildId:e,name:i,type:a??void 0,parentId:o??void 0,topic:s??void 0,position:c??void 0,nsfw:l})})}case`channelEdit`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`channelId`,{required:!0}),i=h(t,`name`),a=h(t,`topic`),o=p(t,`position`,{integer:!0}),s=M(t),c=t.nsfw,l=p(t,`rateLimitPerUser`,{integer:!0}),u=typeof t.archived==`boolean`?t.archived:void 0,d=typeof t.locked==`boolean`?t.locked:void 0,f=p(t,`autoArchiveDuration`,{integer:!0}),g=m(t.availableTags),v={channelId:e,name:i??void 0,topic:a??void 0,position:o??void 0,parentId:s,nsfw:c,rateLimitPerUser:l??void 0,archived:u,locked:d,autoArchiveDuration:f??void 0,availableTags:g};return _({ok:!0,channel:r?await G(v,{accountId:r}):await G(v)})}case`channelDelete`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`channelId`,{required:!0});return _(r?await K(e,{accountId:r}):await K(e))}case`channelMove`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`channelId`,{required:!0}),a=M(t),o=p(t,`position`,{integer:!0});return r?await ln({guildId:e,channelId:i,parentId:a,position:o??void 0},{accountId:r}):await ln({guildId:e,channelId:i,parentId:a,position:o??void 0}),_({ok:!0})}case`categoryCreate`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`guildId`,{required:!0}),i=h(t,`name`,{required:!0}),a=p(t,`position`,{integer:!0});return _({ok:!0,category:r?await W({guildId:e,name:i,type:4,position:a??void 0},{accountId:r}):await W({guildId:e,name:i,type:4,position:a??void 0})})}case`categoryEdit`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`categoryId`,{required:!0}),i=h(t,`name`),a=p(t,`position`,{integer:!0});return _({ok:!0,category:r?await G({channelId:e,name:i??void 0,position:a??void 0},{accountId:r}):await G({channelId:e,name:i??void 0,position:a??void 0})})}case`categoryDelete`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`categoryId`,{required:!0});return _(r?await K(e,{accountId:r}):await K(e))}case`channelPermissionSet`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`channelId`,{required:!0}),i=h(t,`targetId`,{required:!0}),a=h(t,`targetType`,{required:!0})===`member`?1:0,o=h(t,`allow`),s=h(t,`deny`);return r?await un({channelId:e,targetId:i,targetType:a,allow:o??void 0,deny:s??void 0},{accountId:r}):await un({channelId:e,targetId:i,targetType:a,allow:o??void 0,deny:s??void 0}),_({ok:!0})}case`channelPermissionRemove`:{if(!n(`channels`))throw Error(`Discord channel management is disabled.`);let e=h(t,`channelId`,{required:!0}),i=h(t,`targetId`,{required:!0});return r?await dn(e,i,{accountId:r}):await dn(e,i),_({ok:!0})}default:throw Error(`Unknown action: ${e}`)}}function Xr(e){if(e==null)return;let t;if(e instanceof Date)t=e.getTime();else if(typeof e==`number`&&Number.isFinite(e))t=e<0xe8d4a51000?Math.round(e*1e3):Math.round(e);else if(typeof e==`string`){let n=e.trim();if(!n)return;if(/^\d+(\.\d+)?$/.test(n)){let e=Number(n);Number.isFinite(e)&&(t=n.includes(`.`)?Math.round(e*1e3):n.length>=13?Math.round(e):Math.round(e*1e3))}else{let e=Date.parse(n);Number.isNaN(e)||(t=e)}}if(!(t===void 0||!Number.isFinite(t)))return{timestampMs:t,timestampUtc:new Date(t).toISOString()}}function Zr(e,t){let n=Xr(t);return n?{...e,timestampMs:typeof e.timestampMs==`number`&&Number.isFinite(e.timestampMs)?e.timestampMs:n.timestampMs,timestampUtc:typeof e.timestampUtc==`string`&&e.timestampUtc.trim()?e.timestampUtc:n.timestampUtc}:e}function Qr(e){let t=e.trim().match(/^(?:https?:\/\/)?(?:ptb\.|canary\.)?discord(?:app)?\.com\/channels\/(\d+)\/(\d+)\/(\d+)(?:\/?|\?.*)$/i);if(!t)throw Error(`Invalid Discord message link. Expected https://discord.com/channels/<guildId>/<channelId>/<messageId>.`);return{guildId:t[1],channelId:t[2],messageId:t[3]}}async function $r(e,t,r,i,a){let o=()=>Vt(h(t,`channelId`,{required:!0})),s=h(t,`accountId`),c=a?{cfg:a}:{},l=e=>!e||typeof e!=`object`?e:Zr(e,e.timestamp);switch(e){case`react`:{if(!r(`reactions`))throw Error(`Discord reactions are disabled.`);let e=o(),n=h(t,`messageId`,{required:!0}),{emoji:i,remove:a,isEmpty:l}=g(t,{removeErrorMessage:`Emoji is required to remove a Discord reaction.`});return a?(s?await Gr(e,n,i,{...c,accountId:s}):await Gr(e,n,i,c),_({ok:!0,removed:i})):l?_({ok:!0,removed:(s?await Kr(e,n,{...c,accountId:s}):await Kr(e,n,c)).removed}):(s?await Wr(e,n,i,{...c,accountId:s}):await Wr(e,n,i,c),_({ok:!0,added:i}))}case`reactions`:{if(!r(`reactions`))throw Error(`Discord reactions are disabled.`);let e=o(),n=h(t,`messageId`,{required:!0}),i=p(t,`limit`);return _({ok:!0,reactions:await qr(e,n,{...c,...s?{accountId:s}:{},limit:i})})}case`sticker`:{if(!r(`stickers`))throw Error(`Discord stickers are disabled.`);let e=h(t,`to`,{required:!0}),n=h(t,`content`);return await fr(e,v(t,`stickerIds`,{required:!0,label:`stickerIds`}),{...c,...s?{accountId:s}:{},content:n}),_({ok:!0})}case`poll`:{if(!r(`polls`))throw Error(`Discord polls are disabled.`);let e=h(t,`to`,{required:!0}),n=h(t,`content`),i=h(t,`question`,{required:!0}),a=v(t,`answers`,{required:!0,label:`answers`}),o=S(t,`allowMultiselect`),l=p(t,`durationHours`);return await pr(e,{question:i,options:a,maxSelections:b(a.length,o),durationHours:l},{...c,...s?{accountId:s}:{},content:n}),_({ok:!0})}case`permissions`:{if(!r(`permissions`))throw Error(`Discord permissions are disabled.`);let e=o();return _({ok:!0,permissions:s?await vt(e,{accountId:s}):await vt(e)})}case`fetchMessage`:{if(!r(`messages`))throw Error(`Discord message reads are disabled.`);let e=h(t,`messageLink`),n=h(t,`guildId`),i=h(t,`channelId`),a=h(t,`messageId`);if(e){let t=Qr(e);n=t.guildId,i=t.channelId,a=t.messageId}if(!n||!i||!a)throw Error(`Discord message fetch requires guildId, channelId, and messageId (or a valid messageLink).`);return _({ok:!0,message:l(s?await On(i,a,{accountId:s}):await On(i,a)),guildId:n,channelId:i,messageId:a})}case`readMessages`:{if(!r(`messages`))throw Error(`Discord message reads are disabled.`);let e=o(),n={limit:p(t,`limit`),before:h(t,`before`),after:h(t,`after`),around:h(t,`around`)};return _({ok:!0,messages:(s?await Dn(e,n,{accountId:s}):await Dn(e,n)).map(e=>l(e))})}case`sendMessage`:{if(!r(`messages`))throw Error(`Discord message sends are disabled.`);let e=h(t,`to`,{required:!0}),a=t.asVoice===!0,o=t.silent===!0,l=t.components,u=l&&typeof l==`object`&&!Array.isArray(l)?Nr(l):null,d=Array.isArray(l)||typeof l==`function`?l:void 0,f=h(t,`content`,{required:!a&&!u&&!d,allowEmpty:!0}),p=h(t,`mediaUrl`,{trim:!1})??h(t,`path`,{trim:!1})??h(t,`filePath`,{trim:!1}),m=h(t,`filename`),g=h(t,`replyTo`),v=t.embeds,y=Array.isArray(v)?v:void 0,b=h(t,`__sessionKey`),x=h(t,`__agentId`);if(u){if(a)throw Error(`Discord components cannot be sent as voice messages.`);if(y?.length)throw Error(`Discord components cannot include embeds.`);let t=f?.trim()?f:void 0;return _({ok:!0,result:await Ur(e,u.text?u:{...u,text:t},{...c,...s?{accountId:s}:{},silent:o,replyTo:g??void 0,sessionKey:b??void 0,agentId:x??void 0,mediaUrl:p??void 0,filename:m??void 0}),components:!0})}if(a){if(!p)throw Error(`Voice messages require a media file reference (mediaUrl, path, or filePath).`);if(f&&f.trim())throw Error(`Voice messages cannot include text content (Discord limitation). Remove the content parameter.`);return n(p),_({ok:!0,result:await hr(e,p,{...c,...s?{accountId:s}:{},replyTo:g,silent:o}),voiceMessage:!0})}return _({ok:!0,result:await dr(e,f??``,{...c,...s?{accountId:s}:{},mediaUrl:p,mediaLocalRoots:i?.mediaLocalRoots,replyTo:g,components:d,embeds:y,silent:o})})}case`editMessage`:{if(!r(`messages`))throw Error(`Discord message edits are disabled.`);let e=o(),n=h(t,`messageId`,{required:!0}),i=h(t,`content`,{required:!0});return _({ok:!0,message:s?await kn(e,n,{content:i},{accountId:s}):await kn(e,n,{content:i})})}case`deleteMessage`:{if(!r(`messages`))throw Error(`Discord message deletes are disabled.`);let e=o(),n=h(t,`messageId`,{required:!0});return s?await An(e,n,{accountId:s}):await An(e,n),_({ok:!0})}case`threadCreate`:{if(!r(`threads`))throw Error(`Discord threads are disabled.`);let e=o(),n=h(t,`name`,{required:!0}),i=h(t,`messageId`),a=h(t,`content`),c={name:n,messageId:i,autoArchiveMinutes:p(t,`autoArchiveMinutes`),content:a,appliedTags:v(t,`appliedTags`)??void 0};return _({ok:!0,thread:s?await Pn(e,c,{accountId:s}):await Pn(e,c)})}case`threadList`:{if(!r(`threads`))throw Error(`Discord threads are disabled.`);let e=h(t,`guildId`,{required:!0}),n=h(t,`channelId`),i=S(t,`includeArchived`),a=h(t,`before`),o=p(t,`limit`);return _({ok:!0,threads:s?await Fn({guildId:e,channelId:n,includeArchived:i,before:a,limit:o},{accountId:s}):await Fn({guildId:e,channelId:n,includeArchived:i,before:a,limit:o})})}case`threadReply`:{if(!r(`threads`))throw Error(`Discord threads are disabled.`);let e=o(),n=h(t,`content`,{required:!0}),a=h(t,`mediaUrl`),l=h(t,`replyTo`);return _({ok:!0,result:await dr(`channel:${e}`,n,{...c,...s?{accountId:s}:{},mediaUrl:a,mediaLocalRoots:i?.mediaLocalRoots,replyTo:l})})}case`pinMessage`:{if(!r(`pins`))throw Error(`Discord pins are disabled.`);let e=o(),n=h(t,`messageId`,{required:!0});return s?await jn(e,n,{accountId:s}):await jn(e,n),_({ok:!0})}case`unpinMessage`:{if(!r(`pins`))throw Error(`Discord pins are disabled.`);let e=o(),n=h(t,`messageId`,{required:!0});return s?await Mn(e,n,{accountId:s}):await Mn(e,n),_({ok:!0})}case`listPins`:{if(!r(`pins`))throw Error(`Discord pins are disabled.`);let e=o();return _({ok:!0,pins:(s?await Nn(e,{accountId:s}):await Nn(e)).map(e=>l(e))})}case`searchMessages`:{if(!r(`search`))throw Error(`Discord search is disabled.`);let e=h(t,`guildId`,{required:!0}),n=h(t,`content`,{required:!0}),i=h(t,`channelId`),a=v(t,`channelIds`),o=h(t,`authorId`),c=v(t,`authorIds`),u=p(t,`limit`),d=[...a??[],...i?[i]:[]],f=[...c??[],...o?[o]:[]],m=s?await In({guildId:e,content:n,channelIds:d.length?d:void 0,authorIds:f.length?f:void 0,limit:u},{accountId:s}):await In({guildId:e,content:n,channelIds:d.length?d:void 0,authorIds:f.length?f:void 0,limit:u});if(!m||typeof m!=`object`)return _({ok:!0,results:m});let g=m,y=g.messages,b=Array.isArray(y)?y.map(e=>Array.isArray(e)?e.map(e=>l(e)):e):y;return _({ok:!0,results:{...g,messages:b}})}default:throw Error(`Unknown action: ${e}`)}}const ei={timeout:E.ModerateMembers,kick:E.KickMembers,ban:E.BanMembers};function ti(e){return e===`timeout`||e===`kick`||e===`ban`}function ni(e){return ei[e]}function ri(e,t){if(!ti(e))throw Error(`Unsupported Discord moderation action: ${e}`);return{action:e,guildId:h(t,`guildId`,{required:!0}),userId:h(t,`userId`,{required:!0}),durationMinutes:p(t,`durationMinutes`,{integer:!0}),until:h(t,`until`),reason:h(t,`reason`),deleteMessageDays:p(t,`deleteMessageDays`,{integer:!0})}}async function ii(e){if(e.senderUserId&&!await _t(e.guildId,e.senderUserId,[e.requiredPermission],e.accountId?{accountId:e.accountId}:void 0))throw Error(`Sender does not have required permissions for this moderation action.`)}async function ai(e,t,n){if(!ti(e))throw Error(`Unknown action: ${e}`);if(!n(`moderation`,!1))throw Error(`Discord moderation is disabled.`);let r=ri(e,t),i=h(t,`accountId`),a=h(t,`senderUserId`);switch(await ii({guildId:r.guildId,senderUserId:a,requiredPermission:ni(r.action),accountId:i}),r.action){case`timeout`:return _({ok:!0,member:i?await wn({guildId:r.guildId,userId:r.userId,durationMinutes:r.durationMinutes,until:r.until,reason:r.reason},{accountId:i}):await wn({guildId:r.guildId,userId:r.userId,durationMinutes:r.durationMinutes,until:r.until,reason:r.reason})});case`kick`:return i?await Tn({guildId:r.guildId,userId:r.userId,reason:r.reason},{accountId:i}):await Tn({guildId:r.guildId,userId:r.userId,reason:r.reason}),_({ok:!0});case`ban`:return i?await En({guildId:r.guildId,userId:r.userId,reason:r.reason,deleteMessageDays:r.deleteMessageDays},{accountId:i}):await En({guildId:r.guildId,userId:r.userId,reason:r.reason,deleteMessageDays:r.deleteMessageDays}),_({ok:!0})}}const oi=new Map;function si(e){return e??`\0__default__`}function ci(e){return oi.get(si(e))}const li={playing:0,streaming:1,listening:2,watching:3,custom:4,competing:5},ui=new Set([`online`,`dnd`,`idle`,`invisible`]);async function di(e,t,n){if(e!==`setPresence`)throw Error(`Unknown presence action: ${e}`);if(!n(`presence`,!1))throw Error(`Discord presence changes are disabled.`);let r=h(t,`accountId`),i=ci(r);if(!i)throw Error(`Discord gateway not available${r?` for account "${r}"`:``}. The bot may not be connected.`);if(!i.isConnected)throw Error(`Discord gateway is not connected${r?` for account "${r}"`:``}.`);let a=h(t,`status`)??`online`;if(!ui.has(a))throw Error(`Invalid status "${a}". Must be one of: ${[...ui].join(`, `)}`);let o=a,s=h(t,`activityType`),c=h(t,`activityName`),l=[];if(s||c){if(!s)throw Error(`activityType is required when activityName is provided. Valid types: ${Object.keys(li).join(`, `)}`);let e=li[s.toLowerCase()];if(e===void 0)throw Error(`Invalid activityType "${s}". Must be one of: ${Object.keys(li).join(`, `)}`);let n={name:c??``,type:e};if(e===1){let e=h(t,`activityUrl`);e&&(n.url=e)}let r=h(t,`activityState`);r&&(n.state=r),l.push(n)}let u={since:null,activities:l,status:o,afk:!1};return i.updatePresence(u),_({ok:!0,status:o,activities:l.map(e=>({type:e.type,name:e.name,...e.url?{url:e.url}:{},...e.state?{state:e.state}:{}}))})}const fi=new Set([`react`,`reactions`,`sticker`,`poll`,`permissions`,`fetchMessage`,`readMessages`,`sendMessage`,`editMessage`,`deleteMessage`,`threadCreate`,`threadList`,`threadReply`,`pinMessage`,`unpinMessage`,`listPins`,`searchMessages`]),pi=new Set([`memberInfo`,`roleInfo`,`emojiList`,`emojiUpload`,`stickerUpload`,`roleAdd`,`roleRemove`,`channelInfo`,`channelList`,`voiceStatus`,`eventList`,`eventCreate`,`channelCreate`,`channelEdit`,`channelDelete`,`channelMove`,`categoryCreate`,`categoryEdit`,`categoryDelete`,`channelPermissionSet`,`channelPermissionRemove`]),mi=new Set([`timeout`,`kick`,`ban`]),hi=new Set([`setPresence`]);async function $(e,t,n){let i=h(e,`action`,{required:!0}),a=r({cfg:t,accountId:h(e,`accountId`)});if(fi.has(i))return await $r(i,e,a,n,t);if(pi.has(i))return await Yr(i,e,a);if(mi.has(i))return await ai(i,e,a);if(hi.has(i))return await di(i,e,a);throw Error(`Unknown action: ${i}`)}async function gi(e){let{ctx:t,resolveChannelId:n,readParentIdParam:r}=e,{action:i,params:a,cfg:o}=t,s=t.accountId??h(a,`accountId`);if(i===`member-info`){let e=h(a,`userId`,{required:!0}),t=h(a,`guildId`,{required:!0});return await $({action:`memberInfo`,accountId:s??void 0,guildId:t,userId:e},o)}if(i===`role-info`){let e=h(a,`guildId`,{required:!0});return await $({action:`roleInfo`,accountId:s??void 0,guildId:e},o)}if(i===`emoji-list`){let e=h(a,`guildId`,{required:!0});return await $({action:`emojiList`,accountId:s??void 0,guildId:e},o)}if(i===`emoji-upload`){let e=h(a,`guildId`,{required:!0}),t=h(a,`emojiName`,{required:!0}),n=h(a,`media`,{required:!0,trim:!1}),r=v(a,`roleIds`);return await $({action:`emojiUpload`,accountId:s??void 0,guildId:e,name:t,mediaUrl:n,roleIds:r},o)}if(i===`sticker-upload`){let e=h(a,`guildId`,{required:!0}),t=h(a,`stickerName`,{required:!0}),n=h(a,`stickerDesc`,{required:!0}),r=h(a,`stickerTags`,{required:!0}),i=h(a,`media`,{required:!0,trim:!1});return await $({action:`stickerUpload`,accountId:s??void 0,guildId:e,name:t,description:n,tags:r,mediaUrl:i},o)}if(i===`role-add`||i===`role-remove`){let e=h(a,`guildId`,{required:!0}),t=h(a,`userId`,{required:!0}),n=h(a,`roleId`,{required:!0});return await $({action:i===`role-add`?`roleAdd`:`roleRemove`,accountId:s??void 0,guildId:e,userId:t,roleId:n},o)}if(i===`channel-info`){let e=h(a,`channelId`,{required:!0});return await $({action:`channelInfo`,accountId:s??void 0,channelId:e},o)}if(i===`channel-list`){let e=h(a,`guildId`,{required:!0});return await $({action:`channelList`,accountId:s??void 0,guildId:e},o)}if(i===`channel-create`){let e=h(a,`guildId`,{required:!0}),t=h(a,`name`,{required:!0}),n=p(a,`type`,{integer:!0}),i=r(a),c=h(a,`topic`),l=p(a,`position`,{integer:!0}),u=typeof a.nsfw==`boolean`?a.nsfw:void 0;return await $({action:`channelCreate`,accountId:s??void 0,guildId:e,name:t,type:n??void 0,parentId:i??void 0,topic:c??void 0,position:l??void 0,nsfw:u},o)}if(i===`channel-edit`){let e=h(a,`channelId`,{required:!0}),t=h(a,`name`),n=h(a,`topic`),i=p(a,`position`,{integer:!0}),c=r(a),l=typeof a.nsfw==`boolean`?a.nsfw:void 0,u=p(a,`rateLimitPerUser`,{integer:!0}),d=typeof a.archived==`boolean`?a.archived:void 0,f=typeof a.locked==`boolean`?a.locked:void 0,g=p(a,`autoArchiveDuration`,{integer:!0}),_=m(a.availableTags);return await $({action:`channelEdit`,accountId:s??void 0,channelId:e,name:t??void 0,topic:n??void 0,position:i??void 0,parentId:c===void 0?void 0:c,nsfw:l,rateLimitPerUser:u??void 0,archived:d,locked:f,autoArchiveDuration:g??void 0,availableTags:_},o)}if(i===`channel-delete`){let e=h(a,`channelId`,{required:!0});return await $({action:`channelDelete`,accountId:s??void 0,channelId:e},o)}if(i===`channel-move`){let e=h(a,`guildId`,{required:!0}),t=h(a,`channelId`,{required:!0}),n=r(a),i=p(a,`position`,{integer:!0});return await $({action:`channelMove`,accountId:s??void 0,guildId:e,channelId:t,parentId:n===void 0?void 0:n,position:i??void 0},o)}if(i===`category-create`){let e=h(a,`guildId`,{required:!0}),t=h(a,`name`,{required:!0}),n=p(a,`position`,{integer:!0});return await $({action:`categoryCreate`,accountId:s??void 0,guildId:e,name:t,position:n??void 0},o)}if(i===`category-edit`){let e=h(a,`categoryId`,{required:!0}),t=h(a,`name`),n=p(a,`position`,{integer:!0});return await $({action:`categoryEdit`,accountId:s??void 0,categoryId:e,name:t??void 0,position:n??void 0},o)}if(i===`category-delete`){let e=h(a,`categoryId`,{required:!0});return await $({action:`categoryDelete`,accountId:s??void 0,categoryId:e},o)}if(i===`voice-status`){let e=h(a,`guildId`,{required:!0}),t=h(a,`userId`,{required:!0});return await $({action:`voiceStatus`,accountId:s??void 0,guildId:e,userId:t},o)}if(i===`event-list`){let e=h(a,`guildId`,{required:!0});return await $({action:`eventList`,accountId:s??void 0,guildId:e},o)}if(i===`event-create`){let e=h(a,`guildId`,{required:!0}),t=h(a,`eventName`,{required:!0}),n=h(a,`startTime`,{required:!0}),r=h(a,`endTime`),i=h(a,`desc`),c=h(a,`channelId`),l=h(a,`location`),u=h(a,`eventType`);return await $({action:`eventCreate`,accountId:s??void 0,guildId:e,name:t,startTime:n,endTime:r,description:i,channelId:c,location:l,entityType:u},o)}if(ti(i)){let e=ri(i,{...a,durationMinutes:p(a,`durationMin`,{integer:!0}),deleteMessageDays:p(a,`deleteDays`,{integer:!0})}),n=t.requesterSenderId?.trim()||void 0;return await $({action:e.action,accountId:s??void 0,guildId:e.guildId,userId:e.userId,durationMinutes:e.durationMinutes,until:e.until,reason:e.reason,deleteMessageDays:e.deleteMessageDays,senderUserId:n},o)}if(i===`thread-list`){let e=h(a,`guildId`,{required:!0}),t=h(a,`channelId`),n=typeof a.includeArchived==`boolean`?a.includeArchived:void 0,r=h(a,`before`),i=p(a,`limit`,{integer:!0});return await $({action:`threadList`,accountId:s??void 0,guildId:e,channelId:t,includeArchived:n,before:r,limit:i},o)}if(i===`thread-reply`){let e=h(a,`message`,{required:!0}),t=h(a,`media`,{trim:!1}),r=h(a,`replyTo`),i=h(a,`threadId`)??n();return await $({action:`threadReply`,accountId:s??void 0,channelId:i,content:e,mediaUrl:t??void 0,replyTo:r??void 0},o)}if(i===`search`){let e=h(a,`guildId`,{required:!0}),t=h(a,`query`,{required:!0});return await $({action:`searchMessages`,accountId:s??void 0,guildId:e,content:t,channelId:h(a,`channelId`),channelIds:v(a,`channelIds`),authorId:h(a,`authorId`),authorIds:v(a,`authorIds`),limit:p(a,`limit`,{integer:!0})},o)}}async function _i(e){let{action:t,params:n,cfg:r}=e,i=e.accountId??h(n,`accountId`),a={mediaLocalRoots:e.mediaLocalRoots},o=()=>Vt(h(n,`channelId`)??h(n,`to`,{required:!0}));if(t===`send`){let e=h(n,`to`,{required:!0}),t=S(n,`asVoice`)===!0,o=n.components,s=!!o&&(typeof o==`function`||typeof o==`object`),c=s?o:void 0,l=h(n,`message`,{required:!t&&!s,allowEmpty:!0}),u=h(n,`media`,{trim:!1})??h(n,`path`,{trim:!1})??h(n,`filePath`,{trim:!1}),d=h(n,`filename`),f=h(n,`replyTo`),p=n.embeds,m=Array.isArray(p)?p:void 0,g=S(n,`silent`)===!0,_=h(n,`__sessionKey`),v=h(n,`__agentId`);return await $({action:`sendMessage`,accountId:i??void 0,to:e,content:l,mediaUrl:u??void 0,filename:d??void 0,replyTo:f??void 0,components:c,embeds:m,asVoice:t,silent:g,__sessionKey:_??void 0,__agentId:v??void 0},r,a)}if(t===`poll`){let e=h(n,`to`,{required:!0}),t=h(n,`pollQuestion`,{required:!0}),o=v(n,`pollOption`,{required:!0}),s=S(n,`pollMulti`),c=p(n,`pollDurationHours`,{integer:!0,strict:!0});return await $({action:`poll`,accountId:i??void 0,to:e,question:t,answers:o,allowMultiselect:s,durationHours:c??void 0,content:h(n,`message`)},r,a)}if(t===`react`){let t=y({args:n,toolContext:e.toolContext}),s=t==null?``:String(t).trim();if(!s)throw Error(`messageId required. Provide messageId explicitly or react to the current inbound message.`);let c=h(n,`emoji`,{allowEmpty:!0}),l=S(n,`remove`);return await $({action:`react`,accountId:i??void 0,channelId:o(),messageId:s,emoji:c,remove:l},r,a)}if(t===`reactions`){let e=h(n,`messageId`,{required:!0}),t=p(n,`limit`,{integer:!0});return await $({action:`reactions`,accountId:i??void 0,channelId:o(),messageId:e,limit:t},r,a)}if(t===`read`){let e=p(n,`limit`,{integer:!0});return await $({action:`readMessages`,accountId:i??void 0,channelId:o(),limit:e,before:h(n,`before`),after:h(n,`after`),around:h(n,`around`)},r,a)}if(t===`edit`){let e=h(n,`messageId`,{required:!0}),t=h(n,`message`,{required:!0});return await $({action:`editMessage`,accountId:i??void 0,channelId:o(),messageId:e,content:t},r,a)}if(t===`delete`){let e=h(n,`messageId`,{required:!0});return await $({action:`deleteMessage`,accountId:i??void 0,channelId:o(),messageId:e},r,a)}if(t===`pin`||t===`unpin`||t===`list-pins`){let e=t===`list-pins`?void 0:h(n,`messageId`,{required:!0});return await $({action:t===`pin`?`pinMessage`:t===`unpin`?`unpinMessage`:`listPins`,accountId:i??void 0,channelId:o(),messageId:e},r,a)}if(t===`permissions`)return await $({action:`permissions`,accountId:i??void 0,channelId:o()},r,a);if(t===`thread-create`){let e=h(n,`threadName`,{required:!0}),t=h(n,`messageId`),s=h(n,`message`),c=p(n,`autoArchiveMin`,{integer:!0}),l=v(n,`appliedTags`);return await $({action:`threadCreate`,accountId:i??void 0,channelId:o(),name:e,messageId:t,content:s,autoArchiveMinutes:c,appliedTags:l??void 0},r,a)}if(t===`sticker`){let e=v(n,`stickerId`,{required:!0,label:`sticker-id`})??[];return await $({action:`sticker`,accountId:i??void 0,to:h(n,`to`,{required:!0}),stickerIds:e,content:h(n,`message`)},r,a)}if(t===`set-presence`)return await $({action:`setPresence`,accountId:i??void 0,status:h(n,`status`),activityType:h(n,`activityType`),activityName:h(n,`activityName`),activityUrl:h(n,`activityUrl`),activityState:h(n,`activityState`)},r,a);let s=await gi({ctx:e,resolveChannelId:o,readParentIdParam:M});if(s!==void 0)return s;throw Error(`Action ${String(t)} is not supported for provider discord.`)}const vi={listActions:({cfg:e})=>{let t=ae(u(e));if(t.length===0)return[];let n=le(t,t=>r({cfg:e,accountId:t.accountId})),i=(e,t=!0)=>n(e,t),a=new Set([`send`]);return i(`polls`)&&a.add(`poll`),i(`reactions`)&&(a.add(`react`),a.add(`reactions`)),i(`messages`)&&(a.add(`read`),a.add(`edit`),a.add(`delete`)),i(`pins`)&&(a.add(`pin`),a.add(`unpin`),a.add(`list-pins`)),i(`permissions`)&&a.add(`permissions`),i(`threads`)&&(a.add(`thread-create`),a.add(`thread-list`),a.add(`thread-reply`)),i(`search`)&&a.add(`search`),i(`stickers`)&&a.add(`sticker`),i(`memberInfo`)&&a.add(`member-info`),i(`roleInfo`)&&a.add(`role-info`),i(`reactions`)&&a.add(`emoji-list`),i(`emojiUploads`)&&a.add(`emoji-upload`),i(`stickerUploads`)&&a.add(`sticker-upload`),i(`roles`,!1)&&(a.add(`role-add`),a.add(`role-remove`)),i(`channelInfo`)&&(a.add(`channel-info`),a.add(`channel-list`)),i(`channels`)&&(a.add(`channel-create`),a.add(`channel-edit`),a.add(`channel-delete`),a.add(`channel-move`),a.add(`category-create`),a.add(`category-edit`),a.add(`category-delete`)),i(`voiceStatus`)&&a.add(`voice-status`),i(`events`)&&(a.add(`event-list`),a.add(`event-create`)),i(`moderation`,!1)&&(a.add(`timeout`),a.add(`kick`),a.add(`ban`)),i(`presence`,!1)&&a.add(`set-presence`),Array.from(a)},extractToolSend:({args:e})=>{let t=typeof e.action==`string`?e.action.trim():``;if(t===`sendMessage`){let t=typeof e.to==`string`?e.to:void 0;return t?{to:t}:null}if(t===`threadReply`){let t=typeof e.channelId==`string`?e.channelId.trim():``;return t?{to:`channel:${t}`}:null}return null},handleAction:async({action:e,params:t,cfg:n,accountId:r,requesterSenderId:i,toolContext:a,mediaLocalRoots:o})=>await _i({action:e,params:t,cfg:n,accountId:r,requesterSenderId:i,toolContext:a,mediaLocalRoots:o})};export{vi as discordMessageActions};
|
|
8
|
+
//# sourceMappingURL=discord.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{E as e,h as t,m as n,t as r}from"../../../config-D12ZLKqh.js";import"../../../secret-file-DuWm26jS.js";import"../../../token-DnTmiyJu.js";import"../../../utils-R-mFyVJi.js";import"../../../proxy-env-DrC3TIGh.js";import{l as i,n as a,r as o,t as s}from"../../../reaction-message-id-BEEe7X3D.js";import{r as c,t as l}from"../../../fetch-D0rZDHKO.js";import{t as u}from"../../../reaction-level-DVPHL14p.js";function d(e){return u({value:t({cfg:e.cfg,accountId:e.accountId}).config.reactionLevel,defaultLevel:`minimal`,invalidFallback:`minimal`})}function f(e){let t=e.trim();if(!t)throw Error(`Signal base URL is required`);return/^https?:\/\//i.test(t)?t.replace(/\/+$/,``):`http://${t}`.replace(/\/+$/,``)}function p(){let e=l();if(!e)throw Error(`fetch is not available`);return e}function m(e,t){let n;try{n=JSON.parse(e)}catch(e){throw Error(`Signal RPC returned malformed JSON (status ${t})`,{cause:e})}if(!n||typeof n!=`object`)throw Error(`Signal RPC returned invalid response envelope (status ${t})`);let r=n,i=Object.hasOwn(r,`result`);if(!r.error&&!i)throw Error(`Signal RPC returned invalid response envelope (status ${t})`);return r}async function h(t,n,r){let i=f(r.baseUrl),a=e(),o=JSON.stringify({jsonrpc:`2.0`,method:t,params:n,id:a}),s=await c(`${i}/api/v1/rpc`,{method:`POST`,headers:{"Content-Type":`application/json`},body:o},r.timeoutMs??1e4,p());if(s.status===201)return;let l=await s.text();if(!l)throw Error(`Signal RPC empty response (status ${s.status})`);let u=m(l,s.status);if(u.error){let e=u.error.code??`unknown`,t=u.error.message??`Signal RPC error`;throw Error(`Signal RPC ${e}: ${t}`)}return u.result}function g(e,n){let i=!!e.baseUrl?.trim(),a=!!e.account?.trim(),o=n||(!i||!a?t({cfg:r(),accountId:e.accountId}):void 0),s=e.baseUrl?.trim()||o?.baseUrl;if(!s)throw Error(`Signal base URL is required`);return{baseUrl:s,account:e.account?.trim()||o?.config.account?.trim()}}function _(e){let t=e.trim();return t?t.replace(/^signal:/i,``).trim():``}function v(e){let t=_(e);return t?t.toLowerCase().startsWith(`uuid:`)?t.slice(5).trim():t:``}function y(e){let t=[e.targetAuthor,e.targetAuthorUuid,e.fallback];for(let e of t){let t=e?.trim();if(!t)continue;let n=v(t);if(n)return{targetAuthor:n}}return{}}async function b(e){let n=t({cfg:e.opts.cfg??r(),accountId:e.opts.accountId}),{baseUrl:i,account:a}=g(e.opts,n),o=v(e.recipient),s=e.opts.groupId?.trim();if(!o&&!s)throw Error(e.errors.missingRecipient);if(!Number.isFinite(e.targetTimestamp)||e.targetTimestamp<=0)throw Error(e.errors.invalidTargetTimestamp);let c=e.emoji?.trim();if(!c)throw Error(e.errors.missingEmoji);let l=y({targetAuthor:e.opts.targetAuthor,targetAuthorUuid:e.opts.targetAuthorUuid,fallback:o});if(s&&!l.targetAuthor)throw Error(e.errors.missingTargetAuthor);let u={emoji:c,targetTimestamp:e.targetTimestamp,...e.remove?{remove:!0}:{},...l};return o&&(u.recipients=[o]),s&&(u.groupIds=[s]),a&&(u.account=a),{ok:!0,timestamp:(await h(`sendReaction`,u,{baseUrl:i,timeoutMs:e.opts.timeoutMs}))?.timestamp}}async function x(e,t,n,r={}){return await b({recipient:e,targetTimestamp:t,emoji:n,remove:!1,opts:r,errors:{missingRecipient:`Recipient or groupId is required for Signal reaction`,invalidTargetTimestamp:`Valid targetTimestamp is required for Signal reaction`,missingEmoji:`Emoji is required for Signal reaction`,missingTargetAuthor:`targetAuthor is required for group reactions`}})}async function S(e,t,n,r={}){return await b({recipient:e,targetTimestamp:t,emoji:n,remove:!0,opts:r,errors:{missingRecipient:`Recipient or groupId is required for Signal reaction removal`,invalidTargetTimestamp:`Valid targetTimestamp is required for Signal reaction removal`,missingEmoji:`Emoji is required for Signal reaction removal`,missingTargetAuthor:`targetAuthor is required for group reaction removal`}})}function C(e){let t=e.trim();if(!t)return t;let n=t.replace(/^signal:/i,``).trim();return n&&(n.toLowerCase().startsWith(`uuid:`)?n.slice(5).trim():n)}function w(e){let t=e.trim();if(!t)return{};let n=t.replace(/^signal:/i,``).trim();if(!n)return{};if(n.toLowerCase().startsWith(`group:`)){let e=n.slice(6).trim();return e?{groupId:e}:{}}return{recipient:C(n)}}async function T(e){let t={cfg:e.cfg,accountId:e.accountId,groupId:e.target.groupId,targetAuthor:e.targetAuthor,targetAuthorUuid:e.targetAuthorUuid};return e.remove?(await S(e.target.recipient??``,e.timestamp,e.emoji,t),o({ok:!0,removed:e.emoji})):(await x(e.target.recipient??``,e.timestamp,e.emoji,t),o({ok:!0,added:e.emoji}))}const E={listActions:({cfg:e})=>{let t=n(e);if(t.length===0)return[];let r=t.filter(e=>e.configured);if(r.length===0)return[];let i=new Set([`send`]);return r.some(e=>a(e.config.actions)(`reactions`))&&i.add(`react`),Array.from(i)},supportsAction:({action:e})=>e!==`send`,handleAction:async({action:e,params:n,cfg:r,accountId:o,toolContext:c})=>{if(e===`send`)throw Error(`Send should be handled by outbound, not actions handler.`);if(e===`react`){let e=d({cfg:r,accountId:o??void 0});if(!e.agentReactionsEnabled)throw Error(`Signal agent reactions disabled (reactionLevel="${e.level}"). Set channels.signal.reactionLevel to "minimal" or "extensive" to enable.`);let l=t({cfg:r,accountId:o}).config.actions;if(!a(l)(`reactions`))throw Error(`Signal reactions are disabled via actions.reactions.`);let u=w(i(n,`recipient`)??i(n,`to`,{required:!0,label:`recipient (UUID, phone number, or group)`}));if(!u.recipient&&!u.groupId)throw Error(`recipient or group required`);let f=s({args:n,toolContext:c}),p=f==null?void 0:String(f);if(!p)throw Error(`messageId (timestamp) required. Provide messageId explicitly or react to the current inbound message.`);let m=i(n,`targetAuthor`),h=i(n,`targetAuthorUuid`);if(u.groupId&&!m&&!h)throw Error(`targetAuthor or targetAuthorUuid required for group reactions.`);let g=i(n,`emoji`,{allowEmpty:!0}),_=typeof n.remove==`boolean`?n.remove:void 0,v=parseInt(p,10);if(!Number.isFinite(v))throw Error(`Invalid messageId: ${p}. Expected numeric timestamp.`);if(_){if(!g)throw Error(`Emoji required to remove reaction.`);return await T({cfg:r,accountId:o??void 0,target:u,timestamp:v,emoji:g,remove:!0,targetAuthor:m,targetAuthorUuid:h})}if(!g)throw Error(`Emoji required to add reaction.`);return await T({cfg:r,accountId:o??void 0,target:u,timestamp:v,emoji:g,remove:!1,targetAuthor:m,targetAuthorUuid:h})}throw Error(`Action ${e} not supported for signal.`)}};export{E as signalMessageActions};
|
|
2
|
+
//# sourceMappingURL=signal.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
import{A as e,M as t,N as n,Q as r,V as i,X as a,Y as o,Z as s,a as c,d as l,f as u,i as d,j as f,k as p,l as m,n as h,p as g,r as _,t as v,u as y,z as b}from"../../../config-D12ZLKqh.js";import"../../../secret-file-DuWm26jS.js";import{t as x}from"../../../token-DnTmiyJu.js";import{P as S,f as C,k as w,l as T,t as ee}from"../../../utils-R-mFyVJi.js";import{c as E}from"../../../proxy-env-DrC3TIGh.js";import{a as D,c as O,l as k,o as te,r as A,s as j,t as M}from"../../../reaction-message-id-BEEe7X3D.js";import{_ as ne,a as re,f as ie,g as ae,i as oe,l as se,m as ce,n as le,r as N,s as ue,t as de,v as fe}from"../../../shared-GesXrZzd.js";import"../../../fetch-D0rZDHKO.js";import{t as P}from"../../../channel-activity-B04WbrrK.js";import{t as pe}from"../../../reaction-level-DVPHL14p.js";import{n as me,t as he}from"../../../fetch-DsjPfQlp.js";import"node:fs/promises";import F from"node:path";import I from"node:fs";import"node:os";import ge from"json5";import"node:process";import{randomBytes as _e}from"node:crypto";import"node:url";import"@mariozechner/pi-ai";import{Bot as ve,HttpError as ye,InputFile as be}from"grammy";const xe=/^-?\d+$/,Se=/^[A-Za-z0-9_]{5,}$/i;function Ce(e){let t=e.trim(),n=!1;for(;;){let e=/^(telegram|tg):/i.test(t)?(n=!0,t.replace(/^(telegram|tg):/i,``).trim()):n&&/^group:/i.test(t)?t.replace(/^group:/i,``).trim():t;if(e===t)return t;t=e}}function we(e){let t=Ce(e);if(t&&xe.test(t))return t}function Te(e){return xe.test(e.trim())}function Ee(e){let t=Ce(e);if(!t)return;if(Te(t))return t;let n=/^(?:https?:\/\/)?t\.me\/([A-Za-z0-9_]+)$/i.exec(t);if(n?.[1])return`@${n[1]}`;if(t.startsWith(`@`)){let e=t.slice(1);return!e||!Se.test(e)?void 0:`@${e}`}if(Se.test(t))return`@${t}`}function De(e){let t=e.trim();return t&&Te(t)?t.startsWith(`-`)?`group`:`direct`:`unknown`}function L(e){let t=Ce(e),n=/^(.+?):topic:(\d+)$/.exec(t);if(n)return{chatId:n[1],messageThreadId:Number.parseInt(n[2],10),chatType:De(n[1])};let r=/^(.+):(\d+)$/.exec(t);return r?{chatId:r[1],messageThreadId:Number.parseInt(r[2],10),chatType:De(r[1])}:{chatId:t,chatType:De(t)}}function Oe(e){return L(e).chatType}const ke=`allowlist`;function Ae(e){if(typeof e!=`string`)return;let t=e.trim().toLowerCase();if(t===`off`||t===`dm`||t===`group`||t===`all`||t===`allowlist`)return t}function je(e){if(!e)return ke;if(Array.isArray(e))return e.some(e=>String(e).trim().toLowerCase()===`inlinebuttons`)?`all`:`off`;if(typeof e==`object`){let t=e.inlineButtons;return Ae(t)??ke}return ke}function R(e){return je(u({cfg:e.cfg,accountId:e.accountId}).config.capabilities)}function Me(e){if(e.accountId)return R(e)!==`off`;let t=l(e.cfg);return t.length===0?R(e)!==`off`:t.some(t=>R({cfg:e.cfg,accountId:t})!==`off`)}function Ne(e){return pe({value:u({cfg:e.cfg,accountId:e.accountId}).config.reactionLevel,defaultLevel:`minimal`,invalidFallback:`ack`})}function z(e){return e.trim().toLowerCase()}function Pe(e){if(!e)return[];let t=e.trim();if(!t)return[];let n=t.toLowerCase();return[`0`,`false`,`off`,`none`].includes(n)?[]:[`1`,`true`,`all`,`*`].includes(n)?[`*`]:t.split(/[,\s]+/).map(z).filter(Boolean)}function Fe(e){let t=new Set,n=[];for(let r of e){let e=z(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function Ie(e,t=process.env){let n=Array.isArray(e?.diagnostics?.flags)?e?.diagnostics?.flags:[],r=Pe(t.OPENCLAW_DIAGNOSTICS);return Fe([...n,...r])}function Le(e,t){let n=z(e);if(!n)return!1;for(let e of t){let t=z(e);if(t){if(t===`*`||t===`all`)return!0;if(t.endsWith(`.*`)){let e=t.slice(0,-2);if(n===e||n.startsWith(`${e}.`))return!0}if(t.endsWith(`*`)){let e=t.slice(0,-1);if(n.startsWith(e))return!0}if(t===n)return!0}}return!1}function Re(e,t,n=process.env){return Le(e,Ie(t,n))}const ze=E(`telegram/api`);function Be(e,t){return t||(e?.error?e.error:e=>ze.error(e))}async function Ve({operation:e,fn:t,runtime:n,logger:r,shouldLog:i}){try{return await t()}catch(t){if(!i||i(t)){let i=f(t);Be(n,r)(T(`telegram ${e} failed: ${i}`))}throw t}}E(`telegram/bot-access`);function He(e){if(e?.id==null)return;let t=Math.trunc(e.id);if(e.scope===`dm`)return t>0?{message_thread_id:t}:void 0;if(t!==1)return{message_thread_id:t}}function Ue(e){let t=e?.trim()??``;return t?t.length>1024?{caption:void 0,followUpText:t}:{caption:t,followUpText:void 0}:{caption:void 0,followUpText:void 0}}function B(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}function We(e){return B(e).replace(/"/g,`"`)}const Ge=new Set([`md`,`go`,`py`,`pl`,`sh`,`am`,`at`,`be`,`cc`]);function Ke(e,t){if(e.replace(/^https?:\/\//i,``)!==t)return!1;let n=t.lastIndexOf(`.`);if(n<1)return!1;let r=t.slice(n+1).toLowerCase();if(!Ge.has(r))return!1;let i=t.split(`/`);if(i.length>1){for(let e=0;e<i.length-1;e++)if(i[e].includes(`.`))return!1}return!0}function qe(e,t){let n=e.href.trim();if(!n||e.start===e.end||Ke(n,t.slice(e.start,e.end)))return null;let r=We(n);return{start:e.start,end:e.end,open:`<a href="${r}">`,close:`</a>`}}function Je(e){return oe(e,{styleMarkers:{bold:{open:`<b>`,close:`</b>`},italic:{open:`<i>`,close:`</i>`},strikethrough:{open:`<s>`,close:`</s>`},code:{open:`<code>`,close:`</code>`},code_block:{open:`<pre><code>`,close:`</code></pre>`},spoiler:{open:`<tg-spoiler>`,close:`</tg-spoiler>`},blockquote:{open:`<blockquote>`,close:`</blockquote>`}},escapeText:B,buildLink:qe})}function Ye(e,t={}){let n=Je(re(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:t.tableMode}));return t.wrapFileRefs===!1?n:rt(n)}function Xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const Ze=Array.from(Ge).map(Xe).join(`|`),Qe=/<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi,$e=RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${Ze}))(?=$|[^a-zA-Z0-9_\\-/])`,`gi`),et=RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${Ze}))(?=[^a-zA-Z0-9/]|$)`,`g`),V=/(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;function tt(e,t,n){return n.startsWith(`//`)||/https?:\/\/$/i.test(t)?e:`${t}<code>${B(n)}</code>`}function nt(e,t,n,r){return!e||t>0||n>0||r>0?e:e.replace($e,tt).replace(et,(e,t,n)=>t===`>`?e:`${t}<code>${B(n)}</code>`)}function rt(e){Qe.lastIndex=0;let t=e.replace(Qe,(e,t)=>Ke(`http://${t}`,t)?`<code>${B(t)}</code>`:e),n=0,r=0,i=0,a=``,o=0;V.lastIndex=0;let s;for(;(s=V.exec(t))!==null;){let e=s.index,c=V.lastIndex,l=s[1]===`</`,u=s[2].toLowerCase(),d=t.slice(o,e);a+=nt(d,n,r,i),u===`code`?n=l?Math.max(0,n-1):n+1:u===`pre`?r=l?Math.max(0,r-1):r+1:u===`a`&&(i=l?Math.max(0,i-1):i+1),a+=t.slice(e,c),o=c}let c=t.slice(o);return a+=nt(c,n,r,i),a}function it(e,t={}){return(t.textMode??`markdown`)===`html`?e:Ye(e,{tableMode:t.tableMode})}const at=new Set([`br`]);function ot(e){return e.map(e=>e.openTag).join(``)}function st(e){return e.slice().toReversed().map(e=>e.closeTag).join(``)}function ct(e){return e.reduce((e,t)=>e+t.closeTag.length,0)}function lt(e,t){if(e[t]!==`&`)return-1;let n=t+1;if(n>=e.length)return-1;if(e[n]===`#`){if(n+=1,n>=e.length)return-1;if(e[n]===`x`||e[n]===`X`){n+=1;let t=n;for(;/[0-9A-Fa-f]/.test(e[n]??``);)n+=1;if(n===t)return-1}else{let t=n;for(;/[0-9]/.test(e[n]??``);)n+=1;if(n===t)return-1}}else{let t=n;for(;/[A-Za-z0-9]/.test(e[n]??``);)n+=1;if(n===t)return-1}return e[n]===`;`?n:-1}function ut(e,t){if(e.length<=t)return e.length;let n=Math.max(1,Math.floor(t)),r=e.lastIndexOf(`&`,n-1);if(r===-1||r<e.lastIndexOf(`;`,n-1))return n;let i=lt(e,r);return i===-1||i<n?n:r}function dt(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]?.name===t){e.splice(n,1);return}}function ft(e,t){if(!e)return[];let n=Math.max(1,Math.floor(t));if(e.length<=n)return[e];let r=[],i=[],a=``,o=!1,s=()=>{a=ot(i),o=!1},c=()=>{o&&(r.push(`${a}${st(i)}`),s())},l=e=>{let t=e;for(;t.length>0;){let e=n-a.length-ct(i);if(e<=0){if(!o)throw Error(`Telegram HTML chunk limit exceeded by tag overhead (limit=${n})`);c();continue}if(t.length<=e){a+=t,o=!0;break}let r=ut(t,e);if(r<=0){if(!o)throw Error(`Telegram HTML chunk limit exceeded by leading entity (limit=${n})`);c();continue}a+=t.slice(0,r),o=!0,t=t.slice(r),c()}};s(),V.lastIndex=0;let u=0,d;for(;(d=V.exec(e))!==null;){let t=d.index,r=V.lastIndex;l(e.slice(u,t));let s=d[0],f=d[1]===`</`,p=d[2].toLowerCase(),m=!f&&(at.has(p)||s.trimEnd().endsWith(`/>`));if(!f){let e=m?0:`</${p}>`.length;o&&a.length+s.length+ct(i)+e>n&&c()}a+=s,m&&(o=!0),f?dt(i,p):m||i.push({name:p,openTag:s,closeTag:`</${p}>`}),u=r}return l(e.slice(u)),c(),r.length>0?r:[e]}const pt=new Set([`ECONNRESET`,`ECONNREFUSED`,`EPIPE`,`ETIMEDOUT`,`ESOCKETTIMEDOUT`,`ENETUNREACH`,`EHOSTUNREACH`,`ENOTFOUND`,`EAI_AGAIN`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`,`UND_ERR_SOCKET`,`UND_ERR_ABORTED`,`ECONNABORTED`,`ERR_NETWORK`]),mt=new Set([`ECONNREFUSED`,`ENOTFOUND`,`EAI_AGAIN`,`ENETUNREACH`,`EHOSTUNREACH`]),ht=new Set([`AbortError`,`TimeoutError`,`ConnectTimeoutError`,`HeadersTimeoutError`,`BodyTimeoutError`]),gt=new Set([`fetch failed`,`typeerror: fetch failed`]),_t=/^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i,vt=[`undici`,`network error`,`network request`,`client network socket disconnected`,`socket hang up`,`getaddrinfo`,`timeout`,`timed out`];function yt(e){return p(e,e=>{let t=[e.cause,e.reason];return Array.isArray(e.errors)&&t.push(...e.errors),n(e)===`HttpError`&&t.push(e.error),t})}function bt(e){return e?.trim().toUpperCase()??``}function xt(t){let n=e(t);if(n)return n;if(!t||typeof t!=`object`)return;let r=t.errno;if(typeof r==`string`)return r;if(typeof r==`number`)return String(r)}function St(e){if(!e)return!1;for(let t of yt(e)){let e=bt(xt(t));if(e&&mt.has(e))return!0}return!1}function Ct(e,t){for(let n of yt(e)){if(!n||typeof n!=`object`||!(`error_code`in n))continue;let e=n.error_code;if(typeof e==`number`&&t(e))return!0}return!1}function wt(e){return Ct(e,e=>e>=500)}function Tt(e,t={}){if(!e)return!1;let r=typeof t.allowMessageMatch==`boolean`?t.allowMessageMatch:t.context!==`send`;for(let t of yt(e)){let e=bt(xt(t));if(e&&pt.has(e))return!0;let i=n(t);if(i&&ht.has(i))return!0;let a=f(t).trim().toLowerCase();if(a&>.has(a)||a&&_t.test(a)||r&&a&&vt.some(e=>a.includes(e)))return!0}return!1}const Et=new Map;function Dt(e){return String(e)}function Ot(e){let t=Date.now();for(let[n,r]of e.timestamps)t-r>864e5&&e.timestamps.delete(n)}function H(e,t){let n=Dt(e),r=Et.get(n);r||(r={timestamps:new Map},Et.set(n,r)),r.timestamps.set(t,Date.now()),r.timestamps.size>100&&Ot(r)}const kt=F.join(ee,`cron`),At=F.join(kt,`jobs.json`),U=new Map;function jt(e){if(e?.trim()){let t=e.trim();return t.startsWith(`~`)?F.resolve(S(t)):F.resolve(t)}return At}async function Mt(e){try{let t=await I.promises.readFile(e,`utf-8`),n;try{n=ge.parse(t)}catch(t){throw Error(`Failed to parse cron store at ${e}: ${String(t)}`,{cause:t})}let r=n&&typeof n==`object`&&!Array.isArray(n)?n:{},i={version:1,jobs:(Array.isArray(r.jobs)?r.jobs:[]).filter(Boolean)};return U.set(e,JSON.stringify(i,null,2)),i}catch(t){if(t?.code===`ENOENT`)return U.delete(e),{version:1,jobs:[]};throw t}}async function Nt(e){await I.promises.chmod(e,384).catch(()=>void 0)}async function Pt(e,t,n){let r=F.dirname(e);await I.promises.mkdir(r,{recursive:!0,mode:448}),await I.promises.chmod(r,448).catch(()=>void 0);let i=JSON.stringify(t,null,2),a=U.get(e);if(a===i)return;let o=a??null;if(o===null)try{o=await I.promises.readFile(e,`utf-8`)}catch(e){if(e.code!==`ENOENT`)throw e}if(o===i){U.set(e,i);return}let s=`${e}.${process.pid}.${_e(8).toString(`hex`)}.tmp`;if(await I.promises.writeFile(s,i,{encoding:`utf-8`,mode:384}),await Nt(s),o!==null&&!n?.skipBackup)try{let t=`${e}.bak`;await I.promises.copyFile(e,t),await Nt(t)}catch{}await Ft(s,e),await Nt(e),U.set(e,i)}async function Ft(e,t){for(let n=0;n<=3;n++)try{await I.promises.rename(e,t);return}catch(r){let i=r.code;if(i===`EBUSY`&&n<3){await new Promise(e=>setTimeout(e,50*2**n));continue}if(i===`EPERM`||i===`EEXIST`){await I.promises.copyFile(e,t),await I.promises.unlink(e).catch(()=>{});return}throw r}}const W=E(`telegram/target-writeback`);function It(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function Lt(e){let t=Ee(e);if(t)return t.startsWith(`@`)?t.toLowerCase():t}function Rt(e){let t=L(e),n=Lt(t.chatId);if(n)return`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`}function zt(e){let{raw:t,parsed:n,resolvedChatId:r}=e;return n.messageThreadId==null?r:t.includes(`:topic:`)?`${r}:topic:${n.messageThreadId}`:`${r}:${n.messageThreadId}`}function Bt(e){let t=L(e.raw);if(we(t.chatId))return null;let n=Lt(t.chatId);return n?{matchKey:`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`,resolvedTarget:zt({raw:e.raw,parsed:t,resolvedChatId:e.resolvedChatId})}:null}function Vt(e){if(typeof e.rawValue!=`string`&&typeof e.rawValue!=`number`)return null;let t=String(e.rawValue).trim();return!t||Rt(t)!==e.matchKey?null:e.resolvedTarget}function Ht(e){let t=!1,n=It(e.cfg.channels?.telegram);if(!n)return t;let r=(n,r)=>{let i=Vt({rawValue:n[r],matchKey:e.matchKey,resolvedTarget:e.resolvedTarget});i&&(n[r]=i,t=!0)};r(n,`defaultTo`);let i=It(n.accounts);if(!i)return t;for(let e of Object.keys(i)){let t=It(i[e]);t&&r(t,`defaultTo`)}return t}async function Ut(e){let t=e.rawTarget.trim();if(!t)return;let n=Bt({raw:t,resolvedChatId:e.resolvedChatId});if(!n)return;let{matchKey:r,resolvedTarget:i}=n;try{let{snapshot:n,writeOptions:a}=await h(),o=structuredClone(n.config??{});Ht({cfg:o,matchKey:r,resolvedTarget:i})&&(await _(o,a),e.verbose&&W.warn(`resolved Telegram defaultTo target ${t} -> ${i}`))}catch(n){e.verbose&&W.warn(`failed to persist Telegram defaultTo target ${t}: ${String(n)}`)}try{let n=jt(e.cfg.cron?.store),a=await Mt(n),o=!1;for(let e of a.jobs){if(e.delivery?.channel!==`telegram`)continue;let t=Vt({rawValue:e.delivery.to,matchKey:r,resolvedTarget:i});t&&(e.delivery.to=t,o=!0)}o&&(await Pt(n,a),e.verbose&&W.warn(`resolved Telegram cron delivery target ${t} -> ${i}`))}catch(n){e.verbose&&W.warn(`failed to persist Telegram cron target ${t}: ${String(n)}`)}}const Wt=new Set([`.oga`,`.ogg`,`.opus`,`.mp3`,`.m4a`]),Gt=new Set([`audio/ogg`,`audio/opus`,`audio/mpeg`,`audio/mp3`,`audio/mp4`,`audio/x-m4a`,`audio/m4a`]);function Kt(e){let t=r(e.contentType);if(t&&Gt.has(t))return!0;let n=e.fileName?.trim();if(!n)return!1;let i=o(n);return i?Wt.has(i):!1}function qt(e){return e.wantsVoice?Kt(e)?{useVoice:!0}:{useVoice:!1,reason:`media is ${e.contentType??`unknown`} (${e.fileName??`unknown`})`}:{useVoice:!1}}function Jt(e){let t=qt(e);return t.reason&&e.logFallback&&e.logFallback(`Telegram voice requested but ${t.reason}; sending as audio file instead.`),{useVoice:t.useVoice}}function G(e,t){if(typeof e?.message_id==`number`&&Number.isFinite(e.message_id))return Math.trunc(e.message_id);throw Error(`Telegram ${t} returned no message_id`)}function Yt(e,t){if(!e)return[];let n=Math.max(1,Math.floor(t)),r=[];for(let t=0;t<e.length;t+=n)r.push(e.slice(t,t+n));return r}function Xt(e,t,n){if(!e)return[];let r=Math.max(1,Math.floor(n)),i=Yt(e,r);if(t<=1||i.length>=t)return i;let a=[],o=0;for(let n=0;n<t;n+=1){let i=e.length-o,s=t-n,c=s===1?i:Math.min(r,Math.ceil(i/s));a.push(e.slice(o,o+c)),o+=c}return a}const Zt=/can't parse entities|parse entities|find end of the entity/i,Qt=/400:\s*Bad Request:\s*message thread not found/i,$t=/400:\s*Bad Request:\s*message is not modified|MESSAGE_NOT_MODIFIED/i,en=/400: Bad Request: chat not found/i,tn=E(`telegram/send`),nn=E(`telegram/diagnostic`),K=new Map;function rn(e){return Re(`telegram.http`,e)?(e,n)=>{if(!(n instanceof ye))return;let r=b(t(n.error??n));nn.warn(`telegram http error (${e}): ${r}`)}:()=>{}}function an(){return!process.env.VITEST&&!0}function on(e){let t=e.account.config.proxy?.trim()??``,n=e.account.config.network?.autoSelectFamily,r=typeof n==`boolean`?String(n):`default`,i=e.account.config.network?.dnsResultOrder??`default`,a=typeof e.timeoutSeconds==`number`?String(e.timeoutSeconds):`default`;return`${e.account.accountId}::${t}::${r}::${i}::${a}`}function sn(e,t){if(K.set(e,t),K.size>64){let e=K.keys().next().value;e!==void 0&&K.delete(e)}return t}function cn(e){let t=typeof e.config.timeoutSeconds==`number`&&Number.isFinite(e.config.timeoutSeconds)?Math.max(1,Math.floor(e.config.timeoutSeconds)):void 0,n=an()?on({account:e,timeoutSeconds:t}):null;if(n&&K.has(n))return K.get(n);let r=e.config.proxy?.trim(),i=he(r?me(r):void 0,{network:e.config.network}),a=i||t?{...i?{fetch:i}:{},...t?{timeoutSeconds:t}:{}}:void 0;return n?sn(n,a):a}function ln(e,t){if(e?.trim())return e.trim();if(!t.token)throw Error(`Telegram bot token missing for account "${t.accountId}" (set channels.telegram.accounts.${t.accountId}.botToken/tokenFile or TELEGRAM_BOT_TOKEN for default).`);return t.token.trim()}async function un(e,t){let n=we(e);if(n)return n;let r=Ee(e),i=t.api.getChat;if(!r||typeof i!=`function`)throw Error(`Telegram recipient must be a numeric chat ID`);try{let e=await i.call(t.api,r),n=we(String(e?.id??``));if(!n)throw Error(`resolved chat id is not numeric (${String(e?.id??``)})`);return t.verbose&&tn.warn(`telegram recipient ${r} resolved to numeric chat id ${n}`),n}catch(e){let t=f(e);throw Error(`Telegram recipient ${r} could not be resolved to a numeric chat ID (${t})`,{cause:e})}}async function q(e){let t=await un(e.lookupTarget,{api:e.api,verbose:e.verbose});return await Ut({cfg:e.cfg,rawTarget:e.persistTarget,resolvedChatId:t,verbose:e.verbose}),t}function dn(e){if(typeof e==`number`&&Number.isFinite(e))return Math.trunc(e);if(typeof e==`string`){let t=e.trim();if(!t)throw Error(`Message id is required for Telegram actions`);let n=Number.parseInt(t,10);if(Number.isFinite(n))return n}throw Error(`Message id is required for Telegram actions`)}function fn(e){return Qt.test(f(e))}function pn(e){return $t.test(f(e))}function mn(e){if(!e)return!1;let t=e.message_thread_id;return typeof t==`number`?Number.isFinite(t):typeof t==`string`?t.trim().length>0:!1}function hn(e){if(!e||!mn(e))return e;let t={...e};return delete t.message_thread_id,Object.keys(t).length>0?t:void 0}function gn(e){return Zt.test(f(e))}function _n(e){let t=e.messageThreadId==null?e.targetMessageThreadId:e.messageThreadId,n=e.chatType===`direct`?`dm`:`forum`,r=He(t==null?void 0:{id:t,scope:n}),i=r?{...r}:{};if(e.replyToMessageId!=null){let t=Math.trunc(e.replyToMessageId);e.quoteText?.trim()?i.reply_parameters={message_id:t,quote:e.quoteText.trim()}:i.reply_to_message_id=t}return i}async function vn(e){try{return await e.requestHtml(e.label)}catch(t){if(!gn(t))throw t;return e.verbose&&tn.warn(`telegram ${e.label} failed with HTML parse error, retrying as plain text: ${f(t)}`),await e.requestPlain(`${e.label}-plain`)}}function J(e){let t=e.cfg??v(),n=u({cfg:t,accountId:e.accountId}),r=ln(e.token,n),i=cn(n);return{cfg:t,account:n,api:e.api??new ve(r,i?{client:i}:void 0).api}}function Y(e){let t=se({retry:e.retry,configRetry:e.account.config.retry,verbose:e.verbose,...e.shouldRetry?{shouldRetry:e.shouldRetry}:{},...e.strictShouldRetry?{strictShouldRetry:!0}:{}}),n=rn(e.cfg);return(r,i,a)=>{let o=()=>t(r,i);return(e.useApiErrorLogging===!1?o():Ve({operation:i??`request`,fn:o,...a?.shouldLog?{shouldLog:a.shouldLog}:{}})).catch(e=>{throw n(i??`request`,e),e})}}function yn(e,t){return en.test(f(e))?Error([`Telegram send failed: chat not found (chat_id=${t.chatId}).`,`Likely: bot not started in DM, bot removed from group/channel, group migrated (new -100โฆ id), or wrong bot token.`,`Input was: ${JSON.stringify(t.input)}.`].join(` `)):e}async function X(e,t,n,r){try{return await r(e,t)}catch(i){if(!mn(e)||!fn(i))throw i;return n&&tn.warn(`telegram ${t} failed with message_thread_id, retrying without thread: ${f(i)}`),await r(hn(e),`${t}-threadless`)}}function bn(e){return async(t,n)=>e.requestWithDiag(t,n).catch(t=>{throw yn(t,{chatId:e.chatId,input:e.input})})}function xn(e){return Y({cfg:e.cfg,account:e.account,retry:e.retry,verbose:e.verbose,useApiErrorLogging:e.useApiErrorLogging,shouldRetry:e=>St(e),strictShouldRetry:!0})}function Sn(e){if(!e?.length)return;let t=e.map(e=>e.filter(e=>e?.text&&e?.callback_data).map(e=>({text:e.text,callback_data:e.callback_data,...e.style?{style:e.style}:{}}))).filter(e=>e.length>0);if(t.length!==0)return{inline_keyboard:t}}async function Cn(e,t,n={}){let{cfg:r,account:i,api:o}=J(n),c=L(e),l=await q({cfg:r,api:o,lookupTarget:c.chatId,persistTarget:e,verbose:n.verbose}),u=n.mediaUrl?.trim(),d=n.maxBytes??(typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb:100)*1024*1024,p=Sn(n.buttons),m=_n({targetMessageThreadId:c.messageThreadId,messageThreadId:n.messageThreadId,chatType:c.chatType,replyToMessageId:n.replyToMessageId,quoteText:n.quoteText}),h=Object.keys(m).length>0,g=bn({requestWithDiag:xn({cfg:r,account:i,retry:n.retry,verbose:n.verbose}),chatId:l,input:e}),_=n.textMode??`markdown`,v=ue({cfg:r,channel:`telegram`,accountId:i.accountId}),y=e=>it(e,{textMode:_,tableMode:v}),b=i.config.linkPreview??!0?void 0:{is_disabled:!0},x=async(e,t)=>await X(t,`message`,n.verbose,async(t,r)=>{let i=t?{...t}:{};b&&(i.link_preview_options=b);let a={...i,...n.silent===!0?{disable_notification:!0}:{}},s=Object.keys(a).length>0,c=t=>g(()=>s?o.sendMessage(l,e.plainText,a):o.sendMessage(l,e.plainText),t);if(!e.htmlText)return await c(r);let u=e.htmlText,d={parse_mode:`HTML`,...a};return await vn({label:r,verbose:n.verbose,requestHtml:e=>g(()=>o.sendMessage(l,u,d),e),requestPlain:c})}),S=e=>h||e&&p?{...m,...e&&p?{reply_markup:p}:{}}:void 0,w=async(e,t)=>{let n=``,r=l;for(let i=0;i<e.length;i+=1){let a=e[i];if(!a)continue;let o=await x(a,S(i===e.length-1)),s=G(o,t);H(l,s),n=String(s),r=String(o?.chat?.id??l)}return{messageId:n,chatId:r}},T=(e,t)=>{let r=n.plainText??e,i;try{i=ft(e,4e3)}catch(e){return C(`telegram ${t} failed HTML chunk planning, retrying as plain text: ${f(e)}`),Yt(r,4e3).map(e=>({plainText:e}))}let a=Yt(r,4e3);if(a.length>i.length)return C(`telegram ${t} plain-text fallback needs more chunks than HTML; sending plain text`),a.map(e=>({plainText:e}));let o=Xt(r,i.length,4e3);return i.map((e,t)=>({htmlText:e,plainText:o[t]??e}))},ee=async(e,t)=>await w(T(e,t),t);if(u){let e=await ie(u,fe({maxBytes:d,mediaLocalRoots:n.mediaLocalRoots})),r=s(e.contentType??void 0),c=a({contentType:e.contentType,fileName:e.fileName}),f=r===`video`&&n.asVideoNote===!0,v=e.fileName??(c?`animation.gif`:Dn(r??`document`))??`file`,b=new be(e.buffer,v),x,S;if(f)x=void 0,S=t.trim()?t:void 0;else{let e=Ue(t);x=e.caption,S=e.followUpText}let T=x?y(x):void 0,E=!!S,D={...h?m:{},...!E&&p?{reply_markup:p}:{}},O={...T?{caption:T,parse_mode:`HTML`}:{},...D,...n.silent===!0?{disable_notification:!0}:{}},k=async(e,t)=>await X(O,e,n.verbose,async(e,n)=>g(()=>t(e),n)),te=(()=>{if(c)return{label:`animation`,sender:e=>o.sendAnimation(l,b,e)};if(r===`image`)return{label:`photo`,sender:e=>o.sendPhoto(l,b,e)};if(r===`video`)return f?{label:`video_note`,sender:e=>o.sendVideoNote(l,b,e)}:{label:`video`,sender:e=>o.sendVideo(l,b,e)};if(r===`audio`){let{useVoice:t}=Jt({wantsVoice:n.asVoice===!0,contentType:e.contentType,fileName:v,logFallback:C});return t?{label:`voice`,sender:e=>o.sendVoice(l,b,e)}:{label:`audio`,sender:e=>o.sendAudio(l,b,e)}}return{label:`document`,sender:e=>o.sendDocument(l,b,e)}})(),A=await k(te.label,te.sender),j=G(A,`media send`),M=String(A?.chat?.id??l);return H(l,j),P({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),E&&S?_===`html`?{messageId:(await ee(S,`text follow-up send`)).messageId,chatId:M}:{messageId:(await w([{plainText:S,htmlText:y(S)}],`text follow-up send`)).messageId,chatId:M}:{messageId:String(j),chatId:M}}if(!t||!t.trim())throw Error(`Message must be non-empty for Telegram sends`);let E;return E=_===`html`?await ee(t,`text send`):await w([{plainText:n.plainText??t,htmlText:y(t)}],`text send`),P({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),E}async function wn(e,t,n,r={}){let{cfg:i,account:a,api:o}=J(r),s=String(e),c=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),l=dn(t),u=Y({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>Tt(e,{context:`send`})}),d=r.remove===!0,f=n.trim(),p=d||!f?[]:[{type:`emoji`,emoji:f}];if(typeof o.setMessageReaction!=`function`)throw Error(`Telegram reactions are unavailable in this bot API.`);try{await u(()=>o.setMessageReaction(c,l,p),`reaction`)}catch(e){let t=e instanceof Error?e.message:String(e);if(/REACTION_INVALID/i.test(t))return{ok:!1,warning:`Reaction unavailable: ${f}`};throw e}return{ok:!0}}async function Tn(e,t,n={}){let{cfg:r,account:i,api:a}=J(n),o=String(e),s=await q({cfg:r,api:a,lookupTarget:o,persistTarget:o,verbose:n.verbose}),c=dn(t);return await Y({cfg:r,account:i,retry:n.retry,verbose:n.verbose,shouldRetry:e=>Tt(e,{context:`send`})})(()=>a.deleteMessage(s,c),`deleteMessage`),C(`[telegram] Deleted message ${c} from chat ${s}`),{ok:!0}}async function En(e,t,n,r={}){let{cfg:i,account:a,api:o}=J({...r,cfg:r.cfg}),s=String(e),c=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),l=dn(t),u=Y({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>Tt(e,{allowMessageMatch:!0})||wt(e)}),d=(e,t,n)=>u(e,t,n?{shouldLog:n}:void 0),f=it(n,{textMode:r.textMode??`markdown`,tableMode:ue({cfg:i,channel:`telegram`,accountId:a.accountId})}),p=r.buttons!==void 0,m=p?Sn(r.buttons):void 0,h=p?m??{inline_keyboard:[]}:void 0,g={parse_mode:`HTML`};r.linkPreview===!1&&(g.link_preview_options={is_disabled:!0}),h!==void 0&&(g.reply_markup=h);let _={};r.linkPreview===!1&&(_.link_preview_options={is_disabled:!0}),h!==void 0&&(_.reply_markup=h);try{await vn({label:`editMessage`,verbose:r.verbose,requestHtml:e=>d(()=>o.editMessageText(c,l,f,g),e,e=>!pn(e)),requestPlain:e=>d(()=>Object.keys(_).length>0?o.editMessageText(c,l,n,_):o.editMessageText(c,l,n),e,e=>!pn(e))})}catch(e){if(!pn(e))throw e}return C(`[telegram] Edited message ${l} in chat ${c}`),{ok:!0,messageId:String(l),chatId:c}}function Dn(e){switch(e){case`image`:return`image.jpg`;case`video`:return`video.mp4`;case`audio`:return`audio.ogg`;default:return`file.bin`}}async function On(e,t,n={}){if(!t?.trim())throw Error(`Telegram sticker file_id is required`);let{cfg:r,account:i,api:a}=J(n),o=L(e),s=await q({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=_n({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),l=Object.keys(c).length>0,u=bn({requestWithDiag:Y({cfg:r,account:i,retry:n.retry,verbose:n.verbose,useApiErrorLogging:!1}),chatId:s,input:e}),d=await X(l?c:void 0,`sticker`,n.verbose,async(e,n)=>u(()=>a.sendSticker(s,t.trim(),e),n)),f=G(d,`sticker send`),p=String(d?.chat?.id??s);return H(s,f),P({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(f),chatId:p}}async function kn(e,t,n={}){let{cfg:r,account:i,api:a}=J(n),o=L(e),s=await q({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=ae(t,{maxOptions:10}),l=_n({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),u=c.options,d=bn({requestWithDiag:xn({cfg:r,account:i,retry:n.retry,verbose:n.verbose}),chatId:s,input:e}),f=c.durationSeconds;if(f===void 0&&c.durationHours!==void 0)throw Error(`Telegram poll durationHours is not supported. Use durationSeconds (5-600) instead.`);if(f!==void 0&&(f<5||f>600))throw Error(`Telegram poll durationSeconds must be between 5 and 600`);let p=await X({allows_multiple_answers:c.maxSelections>1,is_anonymous:n.isAnonymous??!0,...f===void 0?{}:{open_period:f},...Object.keys(l).length>0?l:{},...n.silent===!0?{disable_notification:!0}:{}},`poll`,n.verbose,async(e,t)=>d(()=>a.sendPoll(s,c.question,u,e),t)),m=G(p,`poll send`),h=String(p?.chat?.id??s),g=p?.poll?.id;return H(s,m),P({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(m),chatId:h,pollId:g}}async function An(e,t,n={}){if(!t?.trim())throw Error(`Forum topic name is required`);let r=t.trim();if(r.length>128)throw Error(`Forum topic name must be 128 characters or fewer`);let{cfg:i,account:a,api:o}=J(n),s=await q({cfg:i,api:o,lookupTarget:L(e).chatId,persistTarget:e,verbose:n.verbose}),c=xn({cfg:i,account:a,retry:n.retry,verbose:n.verbose}),l={};n.iconColor!=null&&(l.icon_color=n.iconColor),n.iconCustomEmojiId?.trim()&&(l.icon_custom_emoji_id=n.iconCustomEmojiId.trim());let u=Object.keys(l).length>0,d=await c(()=>o.createForumTopic(s,r,u?l:void 0),`createForumTopic`),f=d.message_thread_id;return P({channel:`telegram`,accountId:a.accountId,direction:`outbound`}),{topicId:f,name:d.name??r,chatId:s}}E(`model-catalog`);const Z=1024*1024;10*Z,20*Z,50*Z,70*Z,5*Z,c(ce(),d);var jn={version:1,fallback:{emoji:`๐งฉ`,detailKeys:[`command`,`path`,`url`,`targetUrl`,`targetId`,`ref`,`element`,`node`,`nodeId`,`id`,`requestId`,`to`,`channelId`,`guildId`,`userId`,`name`,`query`,`pattern`,`messageId`]},tools:{bash:{emoji:`๐ ๏ธ`,title:`Bash`,detailKeys:[`command`]},process:{emoji:`๐งฐ`,title:`Process`,detailKeys:[`sessionId`]},read:{emoji:`๐`,title:`Read`,detailKeys:[`path`]},write:{emoji:`โ๏ธ`,title:`Write`,detailKeys:[`path`]},edit:{emoji:`๐`,title:`Edit`,detailKeys:[`path`]},attach:{emoji:`๐`,title:`Attach`,detailKeys:[`path`,`url`,`fileName`]},browser:{emoji:`๐`,title:`Browser`,actions:{status:{label:`status`},start:{label:`start`},stop:{label:`stop`},tabs:{label:`tabs`},open:{label:`open`,detailKeys:[`targetUrl`]},focus:{label:`focus`,detailKeys:[`targetId`]},close:{label:`close`,detailKeys:[`targetId`]},snapshot:{label:`snapshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`,`format`]},screenshot:{label:`screenshot`,detailKeys:[`targetUrl`,`targetId`,`ref`,`element`]},navigate:{label:`navigate`,detailKeys:[`targetUrl`,`targetId`]},console:{label:`console`,detailKeys:[`level`,`targetId`]},pdf:{label:`pdf`,detailKeys:[`targetId`]},upload:{label:`upload`,detailKeys:[`paths`,`ref`,`inputRef`,`element`,`targetId`]},dialog:{label:`dialog`,detailKeys:[`accept`,`promptText`,`targetId`]},act:{label:`act`,detailKeys:[`request.kind`,`request.ref`,`request.selector`,`request.text`,`request.value`]}}},canvas:{emoji:`๐ผ๏ธ`,title:`Canvas`,actions:{present:{label:`present`,detailKeys:[`target`,`node`,`nodeId`]},hide:{label:`hide`,detailKeys:[`node`,`nodeId`]},navigate:{label:`navigate`,detailKeys:[`url`,`node`,`nodeId`]},eval:{label:`eval`,detailKeys:[`javaScript`,`node`,`nodeId`]},snapshot:{label:`snapshot`,detailKeys:[`format`,`node`,`nodeId`]},a2ui_push:{label:`A2UI push`,detailKeys:[`jsonlPath`,`node`,`nodeId`]},a2ui_reset:{label:`A2UI reset`,detailKeys:[`node`,`nodeId`]}}},nodes:{emoji:`๐ฑ`,title:`Nodes`,actions:{status:{label:`status`},describe:{label:`describe`,detailKeys:[`node`,`nodeId`]},pending:{label:`pending`},approve:{label:`approve`,detailKeys:[`requestId`]},reject:{label:`reject`,detailKeys:[`requestId`]},notify:{label:`notify`,detailKeys:[`node`,`nodeId`,`title`,`body`]},camera_snap:{label:`camera snap`,detailKeys:[`node`,`nodeId`,`facing`,`deviceId`]},camera_list:{label:`camera list`,detailKeys:[`node`,`nodeId`]},camera_clip:{label:`camera clip`,detailKeys:[`node`,`nodeId`,`facing`,`duration`,`durationMs`]},screen_record:{label:`screen record`,detailKeys:[`node`,`nodeId`,`duration`,`durationMs`,`fps`,`screenIndex`]}}},cron:{emoji:`โฐ`,title:`Cron`,actions:{status:{label:`status`},list:{label:`list`},add:{label:`add`,detailKeys:[`job.name`,`job.id`,`job.schedule`,`job.cron`]},update:{label:`update`,detailKeys:[`id`]},remove:{label:`remove`,detailKeys:[`id`]},run:{label:`run`,detailKeys:[`id`]},runs:{label:`runs`,detailKeys:[`id`]},wake:{label:`wake`,detailKeys:[`text`,`mode`]}}},gateway:{emoji:`๐`,title:`Gateway`,actions:{restart:{label:`restart`,detailKeys:[`reason`,`delayMs`]}}},whatsapp_login:{emoji:`๐ข`,title:`WhatsApp Login`,actions:{start:{label:`start`},wait:{label:`wait`}}},discord:{emoji:`๐ฌ`,title:`Discord`,actions:{react:{label:`react`,detailKeys:[`channelId`,`messageId`,`emoji`]},reactions:{label:`reactions`,detailKeys:[`channelId`,`messageId`]},sticker:{label:`sticker`,detailKeys:[`to`,`stickerIds`]},poll:{label:`poll`,detailKeys:[`question`,`to`]},permissions:{label:`permissions`,detailKeys:[`channelId`]},readMessages:{label:`read messages`,detailKeys:[`channelId`,`limit`]},sendMessage:{label:`send`,detailKeys:[`to`,`content`]},editMessage:{label:`edit`,detailKeys:[`channelId`,`messageId`]},deleteMessage:{label:`delete`,detailKeys:[`channelId`,`messageId`]},threadCreate:{label:`thread create`,detailKeys:[`channelId`,`name`]},threadList:{label:`thread list`,detailKeys:[`guildId`,`channelId`]},threadReply:{label:`thread reply`,detailKeys:[`channelId`,`content`]},pinMessage:{label:`pin`,detailKeys:[`channelId`,`messageId`]},unpinMessage:{label:`unpin`,detailKeys:[`channelId`,`messageId`]},listPins:{label:`list pins`,detailKeys:[`channelId`]},searchMessages:{label:`search`,detailKeys:[`guildId`,`content`]},memberInfo:{label:`member`,detailKeys:[`guildId`,`userId`]},roleInfo:{label:`roles`,detailKeys:[`guildId`]},emojiList:{label:`emoji list`,detailKeys:[`guildId`]},roleAdd:{label:`role add`,detailKeys:[`guildId`,`userId`,`roleId`]},roleRemove:{label:`role remove`,detailKeys:[`guildId`,`userId`,`roleId`]},channelInfo:{label:`channel`,detailKeys:[`channelId`]},channelList:{label:`channels`,detailKeys:[`guildId`]},voiceStatus:{label:`voice`,detailKeys:[`guildId`,`userId`]},eventList:{label:`events`,detailKeys:[`guildId`]},eventCreate:{label:`event create`,detailKeys:[`guildId`,`name`]},timeout:{label:`timeout`,detailKeys:[`guildId`,`userId`]},kick:{label:`kick`,detailKeys:[`guildId`,`userId`]},ban:{label:`ban`,detailKeys:[`guildId`,`userId`]}}}}},Mn={version:1,tools:{exec:{emoji:`๐ ๏ธ`,title:`Exec`,detailKeys:[`command`]},tool_call:{emoji:`๐งฐ`,title:`Tool Call`,detailKeys:[]},tool_call_update:{emoji:`๐งฐ`,title:`Tool Call`,detailKeys:[]},session_status:{emoji:`๐`,title:`Session Status`,detailKeys:[`sessionKey`,`model`]},sessions_list:{emoji:`๐๏ธ`,title:`Sessions`,detailKeys:[`kinds`,`limit`,`activeMinutes`,`messageLimit`]},sessions_send:{emoji:`๐จ`,title:`Session Send`,detailKeys:[`label`,`sessionKey`,`agentId`,`timeoutSeconds`]},sessions_history:{emoji:`๐งพ`,title:`Session History`,detailKeys:[`sessionKey`,`limit`,`includeTools`]},sessions_spawn:{emoji:`๐งโ๐ง`,title:`Sub-agent`,detailKeys:[`label`,`task`,`agentId`,`model`,`thinking`,`runTimeoutSeconds`,`cleanup`]},subagents:{emoji:`๐ค`,title:`Subagents`,actions:{list:{label:`list`,detailKeys:[`recentMinutes`]},kill:{label:`kill`,detailKeys:[`target`]},steer:{label:`steer`,detailKeys:[`target`]}}},agents_list:{emoji:`๐งญ`,title:`Agents`,detailKeys:[]},memory_search:{emoji:`๐ง `,title:`Memory Search`,detailKeys:[`query`]},memory_get:{emoji:`๐`,title:`Memory Get`,detailKeys:[`path`,`from`,`lines`]},web_search:{emoji:`๐`,title:`Web Search`,detailKeys:[`query`,`count`]},web_fetch:{emoji:`๐`,title:`Web Fetch`,detailKeys:[`url`,`extractMode`,`maxChars`]},message:{emoji:`โ๏ธ`,title:`Message`,actions:{send:{label:`send`,detailKeys:[`provider`,`to`,`media`,`replyTo`,`threadId`]},poll:{label:`poll`,detailKeys:[`provider`,`to`,`pollQuestion`]},react:{label:`react`,detailKeys:[`provider`,`to`,`messageId`,`emoji`,`remove`]},reactions:{label:`reactions`,detailKeys:[`provider`,`to`,`messageId`,`limit`]},read:{label:`read`,detailKeys:[`provider`,`to`,`limit`]},edit:{label:`edit`,detailKeys:[`provider`,`to`,`messageId`]},delete:{label:`delete`,detailKeys:[`provider`,`to`,`messageId`]},pin:{label:`pin`,detailKeys:[`provider`,`to`,`messageId`]},unpin:{label:`unpin`,detailKeys:[`provider`,`to`,`messageId`]},"list-pins":{label:`list pins`,detailKeys:[`provider`,`to`]},permissions:{label:`permissions`,detailKeys:[`provider`,`channelId`,`to`]},"thread-create":{label:`thread create`,detailKeys:[`provider`,`channelId`,`threadName`]},"thread-list":{label:`thread list`,detailKeys:[`provider`,`guildId`,`channelId`]},"thread-reply":{label:`thread reply`,detailKeys:[`provider`,`channelId`,`messageId`]},search:{label:`search`,detailKeys:[`provider`,`guildId`,`query`]},sticker:{label:`sticker`,detailKeys:[`provider`,`to`,`stickerId`]},"member-info":{label:`member`,detailKeys:[`provider`,`guildId`,`userId`]},"role-info":{label:`roles`,detailKeys:[`provider`,`guildId`]},"emoji-list":{label:`emoji list`,detailKeys:[`provider`,`guildId`]},"emoji-upload":{label:`emoji upload`,detailKeys:[`provider`,`guildId`,`emojiName`]},"sticker-upload":{label:`sticker upload`,detailKeys:[`provider`,`guildId`,`stickerName`]},"role-add":{label:`role add`,detailKeys:[`provider`,`guildId`,`userId`,`roleId`]},"role-remove":{label:`role remove`,detailKeys:[`provider`,`guildId`,`userId`,`roleId`]},"channel-info":{label:`channel`,detailKeys:[`provider`,`channelId`]},"channel-list":{label:`channels`,detailKeys:[`provider`,`guildId`]},"voice-status":{label:`voice`,detailKeys:[`provider`,`guildId`,`userId`]},"event-list":{label:`events`,detailKeys:[`provider`,`guildId`]},"event-create":{label:`event create`,detailKeys:[`provider`,`guildId`,`eventName`]},timeout:{label:`timeout`,detailKeys:[`provider`,`guildId`,`userId`]},kick:{label:`kick`,detailKeys:[`provider`,`guildId`,`userId`]},ban:{label:`ban`,detailKeys:[`provider`,`guildId`,`userId`]}}},apply_patch:{emoji:`๐ฉน`,title:`Apply Patch`,detailKeys:[]}}};const Nn=jn,Pn=Mn;Pn.fallback??Nn.fallback,Object.assign({},Nn.tools,Pn.tools);const Fn=F.join(w,`telegram`,`sticker-cache.json`);function In(){let e=i(Fn);if(!e||typeof e!=`object`)return{version:1,stickers:{}};let t=e;return t.version===1?t:{version:1,stickers:{}}}function Ln(e,t=10){let n=In(),r=e.toLowerCase(),i=[];for(let t of Object.values(n.stickers)){let n=0,a=t.description.toLowerCase();a.includes(r)&&(n+=10);let o=r.split(/\s+/).filter(Boolean),s=a.split(/\s+/);for(let e of o)s.some(t=>t.includes(e))&&(n+=5);t.emoji&&e.includes(t.emoji)&&(n+=8),t.setName?.toLowerCase().includes(r)&&(n+=3),n>0&&i.push({sticker:t,score:n})}return i.toSorted((e,t)=>t.score-e.score).slice(0,t).map(e=>e.sticker)}function Rn(){let e=In(),t=Object.values(e.stickers);if(t.length===0)return{count:0};let n=[...t].toSorted((e,t)=>new Date(e.cachedAt).getTime()-new Date(t.cachedAt).getTime());return{count:t.length,oldestAt:n[0]?.cachedAt,newestAt:n[n.length-1]?.cachedAt}}const zn=[`danger`,`success`,`primary`];function Bn(e){let t=e.buttons;if(t==null)return;if(!Array.isArray(t))throw Error(`buttons must be an array of button rows`);let n=t.map((e,t)=>{if(!Array.isArray(e))throw Error(`buttons[${t}] must be an array`);return e.map((e,n)=>{if(!e||typeof e!=`object`)throw Error(`buttons[${t}][${n}] must be an object`);let r=typeof e.text==`string`?e.text.trim():``,i=typeof e.callback_data==`string`?e.callback_data.trim():``;if(!r||!i)throw Error(`buttons[${t}][${n}] requires text and callback_data`);if(i.length>64)throw Error(`buttons[${t}][${n}] callback_data too long (max 64 chars)`);let a=e.style,o=typeof a==`string`?a.trim().toLowerCase():void 0;if(a!==void 0&&!o)throw Error(`buttons[${t}][${n}] style must be string`);if(o&&!zn.includes(o))throw Error(`buttons[${t}][${n}] style must be one of ${zn.join(`, `)}`);return{text:r,callback_data:i,...o?{style:o}:{}}})}).filter(e=>e.length>0);return n.length>0?n:void 0}async function Q(e,t,n){let{action:r,accountId:i}={action:k(e,`action`,{required:!0}),accountId:k(e,`accountId`)},a=m({cfg:t,accountId:i});if(r===`react`){let n=Ne({cfg:t,accountId:i??void 0});if(!n.agentReactionsEnabled)return A({ok:!1,reason:`disabled`,hint:`Telegram agent reactions disabled (reactionLevel="${n.level}"). Do not retry.`});if(!a(`reactions`))return A({ok:!1,reason:`disabled`,hint:`Telegram reactions are disabled via actions.reactions. Do not retry.`});let r=O(e,`chatId`,{required:!0}),o=D(e,`messageId`,{integer:!0});if(typeof o!=`number`||!Number.isFinite(o)||o<=0)return A({ok:!1,reason:`missing_message_id`,hint:`Telegram reaction requires a valid messageId (or inbound context fallback). Do not retry.`});let{emoji:s,remove:c,isEmpty:l}=te(e,{removeErrorMessage:`Emoji is required to remove a Telegram reaction.`}),u=x(t,{accountId:i}).token;if(!u)return A({ok:!1,reason:`missing_token`,hint:`Telegram bot token missing. Do not retry.`});let d;try{d=await wn(r??``,o??0,s??``,{cfg:t,token:u,remove:c,accountId:i??void 0})}catch(e){let t=String(e).includes(`REACTION_INVALID`);return A({ok:!1,reason:t?`REACTION_INVALID`:`error`,emoji:s,hint:t?`This emoji is not supported for Telegram reactions. Add it to your reaction disallow list so you do not try it again.`:`Reaction failed. Do not retry.`})}return d.ok?A(!c&&!l?{ok:!0,added:s}:{ok:!0,removed:!0}):A({ok:!1,warning:d.warning,...c||l?{removed:!0}:{added:s}})}if(r===`sendMessage`){if(!a(`sendMessage`))throw Error(`Telegram sendMessage is disabled.`);let r=k(e,`to`,{required:!0}),o=k(e,`mediaUrl`),s=k(e,`content`,{required:!o,allowEmpty:!0})??``,c=Bn(e);if(c){let e=R({cfg:t,accountId:i??void 0});if(e===`off`)throw Error(`Telegram inline buttons are disabled. Set channels.telegram.capabilities.inlineButtons to "dm", "group", "all", or "allowlist".`);if(e===`dm`||e===`group`){let t=Oe(r);if(t===`unknown`)throw Error(`Telegram inline buttons require a numeric chat id when inlineButtons="${e}".`);if(e===`dm`&&t!==`direct`)throw Error(`Telegram inline buttons are limited to DMs when inlineButtons="dm".`);if(e===`group`&&t!==`group`)throw Error(`Telegram inline buttons are limited to groups when inlineButtons="group".`)}}let l=D(e,`replyToMessageId`,{integer:!0}),u=D(e,`messageThreadId`,{integer:!0}),d=k(e,`quoteText`),f=x(t,{accountId:i}).token;if(!f)throw Error(`Telegram bot token missing. Set TELEGRAM_BOT_TOKEN or channels.telegram.botToken.`);let p=await Cn(r,s,{cfg:t,token:f,accountId:i??void 0,mediaUrl:o||void 0,mediaLocalRoots:n?.mediaLocalRoots,buttons:c,replyToMessageId:l??void 0,messageThreadId:u??void 0,quoteText:d??void 0,asVoice:N(e,`asVoice`),silent:N(e,`silent`)});return A({ok:!0,messageId:p.messageId,chatId:p.chatId})}if(r===`poll`){let n=g(a);if(!n.sendMessageEnabled)throw Error(`Telegram sendMessage is disabled.`);if(!n.pollEnabled)throw Error(`Telegram polls are disabled.`);let r=k(e,`to`,{required:!0}),o=k(e,`question`,{required:!0}),s=j(e,`answers`,{required:!0}),c=N(e,`allowMultiselect`)??!1,l=D(e,`durationSeconds`,{integer:!0}),u=D(e,`durationHours`,{integer:!0}),d=D(e,`replyToMessageId`,{integer:!0}),f=D(e,`messageThreadId`,{integer:!0}),p=N(e,`isAnonymous`),m=N(e,`silent`),h=x(t,{accountId:i}).token;if(!h)throw Error(`Telegram bot token missing. Set TELEGRAM_BOT_TOKEN or channels.telegram.botToken.`);let _=await kn(r,{question:o,options:s,maxSelections:ne(s.length,c),durationSeconds:l??void 0,durationHours:u??void 0},{cfg:t,token:h,accountId:i??void 0,replyToMessageId:d??void 0,messageThreadId:f??void 0,isAnonymous:p??void 0,silent:m??void 0});return A({ok:!0,messageId:_.messageId,chatId:_.chatId,pollId:_.pollId})}if(r===`deleteMessage`){if(!a(`deleteMessage`))throw Error(`Telegram deleteMessage is disabled.`);let n=O(e,`chatId`,{required:!0}),r=D(e,`messageId`,{required:!0,integer:!0}),o=x(t,{accountId:i}).token;if(!o)throw Error(`Telegram bot token missing. Set TELEGRAM_BOT_TOKEN or channels.telegram.botToken.`);return await Tn(n??``,r??0,{cfg:t,token:o,accountId:i??void 0}),A({ok:!0,deleted:!0})}if(r===`editMessage`){if(!a(`editMessage`))throw Error(`Telegram editMessage is disabled.`);let n=O(e,`chatId`,{required:!0}),r=D(e,`messageId`,{required:!0,integer:!0}),o=k(e,`content`,{required:!0,allowEmpty:!1}),s=Bn(e);if(s&&R({cfg:t,accountId:i??void 0})===`off`)throw Error(`Telegram inline buttons are disabled. Set channels.telegram.capabilities.inlineButtons to "dm", "group", "all", or "allowlist".`);let c=x(t,{accountId:i}).token;if(!c)throw Error(`Telegram bot token missing. Set TELEGRAM_BOT_TOKEN or channels.telegram.botToken.`);let l=await En(n??``,r??0,o,{cfg:t,token:c,accountId:i??void 0,buttons:s});return A({ok:!0,messageId:l.messageId,chatId:l.chatId})}if(r===`sendSticker`){if(!a(`sticker`,!1))throw Error(`Telegram sticker actions are disabled. Set channels.telegram.actions.sticker to true.`);let n=k(e,`to`,{required:!0}),r=k(e,`fileId`,{required:!0}),o=D(e,`replyToMessageId`,{integer:!0}),s=D(e,`messageThreadId`,{integer:!0}),c=x(t,{accountId:i}).token;if(!c)throw Error(`Telegram bot token missing. Set TELEGRAM_BOT_TOKEN or channels.telegram.botToken.`);let l=await On(n,r,{cfg:t,token:c,accountId:i??void 0,replyToMessageId:o??void 0,messageThreadId:s??void 0});return A({ok:!0,messageId:l.messageId,chatId:l.chatId})}if(r===`searchSticker`){if(!a(`sticker`,!1))throw Error(`Telegram sticker actions are disabled. Set channels.telegram.actions.sticker to true.`);let t=Ln(k(e,`query`,{required:!0}),D(e,`limit`,{integer:!0})??5);return A({ok:!0,count:t.length,stickers:t.map(e=>({fileId:e.fileId,emoji:e.emoji,description:e.description,setName:e.setName}))})}if(r===`stickerCacheStats`)return A({ok:!0,...Rn()});if(r===`createForumTopic`){if(!a(`createForumTopic`))throw Error(`Telegram createForumTopic is disabled.`);let n=O(e,`chatId`,{required:!0}),r=k(e,`name`,{required:!0}),o=D(e,`iconColor`,{integer:!0}),s=k(e,`iconCustomEmojiId`),c=x(t,{accountId:i}).token;if(!c)throw Error(`Telegram bot token missing. Set TELEGRAM_BOT_TOKEN or channels.telegram.botToken.`);let l=await An(n??``,r,{cfg:t,token:c,accountId:i??void 0,iconColor:o??void 0,iconCustomEmojiId:s??void 0});return A({ok:!0,topicId:l.topicId,name:l.name,chatId:l.chatId})}throw Error(`Unsupported Telegram action: ${r}`)}function Vn(e,t=`sendMessage`){if((typeof e.action==`string`?e.action.trim():``)!==t)return null;let n=typeof e.to==`string`?e.to:void 0;if(!n)return null;let r=typeof e.accountId==`string`?e.accountId.trim():void 0,i=typeof e.threadId==`string`?e.threadId.trim():typeof e.threadId==`number`?String(e.threadId):``;return{to:n,accountId:r,threadId:i.length>0?i:void 0}}function Hn(e){if(e.pollAnonymous&&e.pollPublic)throw Error(`pollAnonymous and pollPublic are mutually exclusive`);return e.pollAnonymous?!0:e.pollPublic?!1:void 0}function Un(e){let t=k(e,`to`,{required:!0}),n=k(e,`media`,{trim:!1}),r=k(e,`message`,{required:!n,allowEmpty:!0}),i=k(e,`caption`,{allowEmpty:!0}),a=r||i||``,o=k(e,`replyTo`),s=k(e,`threadId`),c=e.buttons,l=N(e,`asVoice`),u=N(e,`silent`),d=k(e,`quoteText`);return{to:t,content:a,mediaUrl:n??void 0,replyToMessageId:o??void 0,messageThreadId:s??void 0,buttons:c,asVoice:l,silent:u,quoteText:d??void 0}}function $(e){return O(e,`chatId`)??O(e,`channelId`)??k(e,`to`,{required:!0})}function Wn(e){let t=D(e,`messageId`,{required:!0,integer:!0});if(typeof t!=`number`)throw Error(`messageId is required.`);return t}const Gn={listActions:({cfg:e})=>{let t=le(y(e));if(t.length===0)return[];let n=de(t,t=>m({cfg:e,accountId:t.accountId})),r=(e,t=!0)=>n(e,t),i=new Set([`send`]);return t.some(t=>g(m({cfg:e,accountId:t.accountId})).enabled)&&i.add(`poll`),r(`reactions`)&&i.add(`react`),r(`deleteMessage`)&&i.add(`delete`),r(`editMessage`)&&i.add(`edit`),r(`sticker`,!1)&&(i.add(`sticker`),i.add(`sticker-search`)),r(`createForumTopic`)&&i.add(`topic-create`),Array.from(i)},supportsButtons:({cfg:e})=>{let t=le(y(e));return t.length===0?!1:t.some(t=>Me({cfg:e,accountId:t.accountId}))},extractToolSend:({args:e})=>Vn(e,`sendMessage`),handleAction:async({action:e,params:t,cfg:n,accountId:r,mediaLocalRoots:i,toolContext:a})=>{if(e===`send`)return await Q({action:`sendMessage`,...Un(t),accountId:r??void 0},n,{mediaLocalRoots:i});if(e===`react`){let e=M({args:t,toolContext:a}),o=k(t,`emoji`,{allowEmpty:!0}),s=N(t,`remove`);return await Q({action:`react`,chatId:$(t),messageId:e,emoji:o,remove:s,accountId:r??void 0},n,{mediaLocalRoots:i})}if(e===`poll`){let e=k(t,`to`,{required:!0}),a=k(t,`pollQuestion`,{required:!0}),o=j(t,`pollOption`,{required:!0}),s=D(t,`pollDurationHours`,{integer:!0,strict:!0}),c=D(t,`pollDurationSeconds`,{integer:!0,strict:!0}),l=D(t,`replyTo`,{integer:!0}),u=D(t,`threadId`,{integer:!0}),d=N(t,`pollMulti`),f=Hn({pollAnonymous:N(t,`pollAnonymous`),pollPublic:N(t,`pollPublic`)}),p=N(t,`silent`);return await Q({action:`poll`,to:e,question:a,answers:o,allowMultiselect:d,durationHours:s??void 0,durationSeconds:c??void 0,replyToMessageId:l??void 0,messageThreadId:u??void 0,isAnonymous:f,silent:p,accountId:r??void 0},n,{mediaLocalRoots:i})}if(e===`delete`)return await Q({action:`deleteMessage`,chatId:$(t),messageId:Wn(t),accountId:r??void 0},n,{mediaLocalRoots:i});if(e===`edit`){let e=$(t),a=Wn(t),o=k(t,`message`,{required:!0,allowEmpty:!1}),s=t.buttons;return await Q({action:`editMessage`,chatId:e,messageId:a,content:o,buttons:s,accountId:r??void 0},n,{mediaLocalRoots:i})}if(e===`sticker`){let e=k(t,`to`)??k(t,`target`,{required:!0}),a=j(t,`stickerId`)?.[0]??k(t,`fileId`,{required:!0}),o=D(t,`replyTo`,{integer:!0}),s=D(t,`threadId`,{integer:!0});return await Q({action:`sendSticker`,to:e,fileId:a,replyToMessageId:o??void 0,messageThreadId:s??void 0,accountId:r??void 0},n,{mediaLocalRoots:i})}if(e===`sticker-search`)return await Q({action:`searchSticker`,query:k(t,`query`,{required:!0}),limit:D(t,`limit`,{integer:!0})??void 0,accountId:r??void 0},n,{mediaLocalRoots:i});if(e===`topic-create`){let e=$(t),a=k(t,`name`,{required:!0}),o=D(t,`iconColor`,{integer:!0}),s=k(t,`iconCustomEmojiId`);return await Q({action:`createForumTopic`,chatId:e,name:a,iconColor:o??void 0,iconCustomEmojiId:s??void 0,accountId:r??void 0},n,{mediaLocalRoots:i})}throw Error(`Action ${e} is not supported for provider telegram.`)}};export{Gn as telegramMessageActions};
|
|
2
|
+
//# sourceMappingURL=telegram.js.map
|