@qqbrowser/openclaw-qbot 0.0.128 → 0.0.129
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 -1
- package/dist/acp-cli-01SGjPGi.js +1 -1
- package/dist/acp-cli-uxN405XG.js +1 -1
- package/dist/active-listener-BZ6loNaF.js +1 -1
- package/dist/active-listener-D8VOdVx3.js +1 -1
- package/dist/active-listener-DB5mhDuO.js +1 -1
- package/dist/active-listener-DeKRt_UV.js +1 -1
- package/dist/agent-scope-DAWJwFfl.js +1 -1
- package/dist/agent-scope-DXZc3eNT.js +1 -1
- package/dist/agents-BMh3ZeoB.js +1 -1
- package/dist/agents.config-B-0lZSmb.js +1 -1
- package/dist/agents.config-BDEN2Eph.js +1 -1
- package/dist/allow-from-B6dI7oz8.js +1 -1
- package/dist/allow-from-DEeVIPKS.js +1 -1
- package/dist/api-BeG0ObSq.js +1 -1
- package/dist/api-Dx8x1KTs.js +1 -1
- package/dist/api-key-rotation-C_MG2y1D.js +1 -1
- package/dist/api-key-rotation-D8WsZ43x.js +1 -1
- package/dist/api-key-rotation-DYYvcqSG.js +1 -1
- package/dist/api-key-rotation-dNu0GxPN.js +1 -1
- package/dist/arg-split-BOqSMBuf.js +1 -1
- package/dist/arg-split-DE5RqDHq.js +1 -1
- package/dist/audio-preflight--K4-eUVY.js +1 -1
- package/dist/audio-preflight-BKIm58PG.js +1 -1
- package/dist/audio-preflight-CAfi10dl.js +1 -1
- package/dist/audio-preflight-Xm0NL5JA.js +1 -1
- package/dist/audio-transcription-runner-BJNP7vB8.js +1 -1
- package/dist/audio-transcription-runner-BUsb6cqv.js +1 -1
- package/dist/audio-transcription-runner-C_31Yoq0.js +1 -1
- package/dist/audio-transcription-runner-CjKLRVPo.js +1 -1
- package/dist/audit-7DFnKINd.js +1 -1
- package/dist/audit-B6LsW3Ai.js +1 -1
- package/dist/audit-membership-runtime-BpRsMj5-.js +1 -1
- package/dist/audit-membership-runtime-BsfLZNBj.js +1 -1
- package/dist/audit-membership-runtime-DRHirRmx.js +1 -1
- package/dist/audit-membership-runtime-g0dEWJTp.js +1 -1
- package/dist/audit-membership-runtime-kdyToskD.js +1 -1
- package/dist/auth-choice-BNd2SNjJ.js +1 -1
- package/dist/auth-choice-C3aUWXx9.js +1 -1
- package/dist/auth-choice-DViEjgMg.js +1 -1
- package/dist/auth-choice-edozMf7r.js +1 -1
- package/dist/auth-choice-options-B3WQyS7I.js +1 -1
- package/dist/auth-choice-options-Dw14noox.js +1 -1
- package/dist/auth-choice-prompt-uegl56cf.js +1 -1
- package/dist/auth-choice-prompt-xYj13czb.js +1 -1
- package/dist/auth-choice.apply-helpers-CNLYnRxx.js +1 -1
- package/dist/auth-choice.apply-helpers-DCe5nTyP.js +1 -1
- package/dist/auth-profiles-BhXA8Jy2.js +1 -1
- package/dist/auth-token-C75IOb_K.js +1 -1
- package/dist/auth-token-CzgZf-ta.js +1 -1
- package/dist/banner-mIDEloRy.js +1 -1
- package/dist/bonjour-discovery-CpvzLjyB.js +1 -1
- package/dist/bonjour-discovery-wsh3Si1Q.js +1 -1
- package/dist/boolean-Ch3DfXPy.js +1 -1
- package/dist/boolean-D15s2V33.js +1 -1
- package/dist/boolean-DypnRoRK.js +1 -1
- package/dist/brew-COcDl8CB.js +1 -1
- package/dist/brew-DDPm_HfE.js +1 -1
- package/dist/browser-cli-BjzNbvF9.js +1 -1
- package/dist/browser-cli-CgHkgtgV.js +1 -1
- package/dist/build-info.json +2 -2
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/call-BA3O_Qpl.js +1 -1
- package/dist/call-BQT0zCgv.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/channel-account-context-BMPAMZEv.js +1 -1
- package/dist/channel-account-context-DAcarnqW.js +1 -1
- package/dist/channel-activity-B04WbrrK.js +1 -1
- package/dist/channel-activity-BPRCQpI6.js +1 -1
- package/dist/channel-activity-D2VTmenR.js +1 -1
- package/dist/channel-activity-DHY5wAyl.js +1 -1
- package/dist/channel-activity-DYpm-0Cz.js +1 -1
- package/dist/channel-options-BYmHreMn.js +1 -1
- package/dist/channel-options-Cbv7VETu.js +1 -1
- package/dist/channel-selection-Ddyykqxv.js +1 -1
- package/dist/channel-selection-oRONo9z3.js +1 -1
- package/dist/channel-web-CK4RqVCH.js +1 -1
- package/dist/channel-web-Xw89Exy3.js +1 -1
- package/dist/channels/plugins/actions/discord.js +1 -1
- package/dist/channels/plugins/actions/signal.js +1 -1
- package/dist/channels/plugins/actions/telegram.js +1 -1
- package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -1
- package/dist/channels-cli-D2y5Xk5i.js +1 -1
- package/dist/channels-cli-cwFjBXcP.js +1 -1
- package/dist/channels-status-issues-8eFrGKyf.js +1 -1
- package/dist/channels-status-issues-PRgOT90w.js +1 -1
- package/dist/chat-envelope-Bznn2SoS.js +1 -1
- package/dist/chat-envelope-HVpKusFc.js +1 -1
- package/dist/clack-prompter-DBPdGdqp.js +1 -1
- package/dist/clack-prompter-Dq0aY6iM.js +1 -1
- package/dist/clawbot-cli-BwG1-8A9.js +1 -1
- package/dist/clawbot-cli-CaNu5A0G.js +1 -1
- package/dist/cleanup-utils-BWm70DoD.js +1 -1
- package/dist/cleanup-utils-D-RhEX6F.js +1 -1
- package/dist/cli-CQKA38bc.js +1 -1
- package/dist/cli-i7P4bYBg.js +1 -1
- package/dist/cli-utils-BY7dLMFy.js +1 -1
- package/dist/cli-utils-BleB1eys.js +1 -1
- package/dist/clipboard-Bk8cviBt.js +1 -1
- package/dist/clipboard-CKT_VIkG.js +1 -1
- package/dist/cmd-argv-BBT5l8AV.js +1 -1
- package/dist/cmd-argv-Bh-KpaZ0.js +1 -1
- package/dist/command-format-BbDT1tlm.js +1 -1
- package/dist/command-format-CLxIPuLR.js +1 -1
- package/dist/command-options-BpOUDl2S.js +1 -1
- package/dist/command-options-Bq5nQxz6.js +1 -1
- package/dist/command-poll-backoff-BZLHYB2k.js +1 -1
- package/dist/command-poll-backoff-Cww_r-24.js +1 -1
- package/dist/command-poll-backoff-Df6cOQrX.js +1 -1
- package/dist/command-poll-backoff-endAPdwn.js +1 -1
- package/dist/command-registry-BYk36N_R.js +1 -1
- package/dist/command-secret-targets-BBTiqQKa.js +1 -1
- package/dist/command-secret-targets-KM3OecbM.js +1 -1
- package/dist/commands-CGpM84iR.js +1 -1
- package/dist/commands-Dy7duWlt.js +1 -1
- package/dist/commands-registry-B3FI6TSl.js +1 -1
- package/dist/commands-registry-CxDVU5s9.js +1 -1
- package/dist/commands-registry-Dn2uuNuy.js +1 -1
- package/dist/commands-registry-Du79fdAL.js +1 -1
- package/dist/compact-CuBCVnVS.js +1 -1
- package/dist/completion-cli-CRNTbZlR.js +1 -1
- package/dist/completion-cli-DbGDCoiM.js +1 -1
- package/dist/config-BqW5S1xL.js +1 -1
- package/dist/config-DAQjvwZw.js +1 -1
- package/dist/config-cli-D_coAWd9.js +1 -1
- package/dist/config-cli-EKXoNzLf.js +1 -1
- package/dist/config-guard-U0wlYLUN.js +1 -1
- package/dist/config-guard-XayIkveC.js +1 -1
- package/dist/config-validation-B0nN9egx.js +1 -1
- package/dist/config-validation-CAHnpjrk.js +1 -1
- package/dist/configure-DNnQRKy8.js +1 -1
- package/dist/configure-NCNskZPe.js +1 -1
- package/dist/connection-auth-BcPbGyxw.js +1 -1
- package/dist/connection-auth-DZ-3Svr_.js +1 -1
- package/dist/context-window-guard-7crlatf9.js +1 -1
- package/dist/context-window-guard-CPChk363.js +1 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/de-DuUYLvt1.js +1 -0
- package/dist/control-ui/assets/es-DHtyqUQZ.js +1 -0
- package/dist/control-ui/assets/index-CYbiPp9k.js +8383 -0
- package/dist/control-ui/assets/index-C_GaJ8wS.css +1 -0
- package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +1 -0
- package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +1 -0
- package/dist/control-ui/assets/zh-TW-cW5xB87I.js +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +17 -0
- package/dist/control-ui-assets-BIa0GGDg.js +1 -1
- package/dist/control-ui-assets-CTHGGgaX.js +1 -1
- package/dist/cron-cli-Cro66JtU.js +1 -1
- package/dist/cron-cli-DIeBukvk.js +1 -1
- package/dist/daemon-cli-Cw_fxNgE.js +1 -1
- package/dist/daemon-cli-DQsKS3pT.js +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/daemon-install-C_DmJEkV.js +1 -1
- package/dist/daemon-install-D1DacLbM.js +1 -1
- package/dist/daemon-install-plan.shared-BSDdwWjB.js +1 -1
- package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -1
- package/dist/daemon-runtime-DHiDbRuC.js +1 -1
- package/dist/daemon-runtime-VcpeBRJV.js +1 -1
- package/dist/dangerous-name-matching-BOmvAibz.js +1 -1
- package/dist/dangerous-name-matching-DtllRqBD.js +1 -1
- package/dist/dangerous-tools-CFRYQJ6V.js +1 -1
- package/dist/dangerous-tools-oYCu5wfC.js +1 -1
- package/dist/deliver-2c-EsQ_W.js +1 -1
- package/dist/deliver-BudDnEIb.js +1 -1
- package/dist/deliver-COKdxPmA.js +1 -1
- package/dist/deliver-DHP2vHKB.js +1 -1
- package/dist/delivery-queue-CKbauSFq.js +1 -1
- package/dist/delivery-queue-nkPJu0fY.js +1 -1
- package/dist/device-pairing-4eDo43Kk.js +1 -1
- package/dist/device-pairing-B7ZXiXp3.js +1 -1
- package/dist/devices-cli-BXUIb_UN.js +1 -1
- package/dist/devices-cli-D7PkbnHO.js +1 -1
- package/dist/diagnostic-Bzd5vlKH.js +1 -1
- package/dist/diagnostic-CFmHdXHP.js +1 -1
- package/dist/diagnostic-CW_Jv5UM.js +1 -1
- package/dist/diagnostic-Dza7-pMC.js +1 -1
- package/dist/diagnostics-BgbeL9KE.js +1 -1
- package/dist/diagnostics-Cdctg9K_.js +1 -1
- package/dist/directory-cli-CxeuNJcC.js +1 -1
- package/dist/directory-cli-DFlYCB5L.js +1 -1
- package/dist/dns-cli-BDbHznhi.js +1 -1
- package/dist/dns-cli-OuwliJ60.js +1 -1
- package/dist/docs-cli-Cdw9Iz9a.js +1 -1
- package/dist/docs-cli-ClD2UyX1.js +1 -1
- package/dist/doctor-completion-BSOX-LSq.js +1 -1
- package/dist/doctor-completion-DXqdpdlo.js +1 -1
- package/dist/doctor-config-flow-DHB8N7tT.js +1 -1
- package/dist/doctor-config-flow-MjfHBDlw.js +1 -1
- package/dist/enable-DVuqWT2a.js +1 -1
- package/dist/enable-DWaSH1HY.js +1 -1
- package/dist/entry-status-CCwwKO43.js +1 -1
- package/dist/entry-status-CoXkbJcX.js +1 -1
- package/dist/entry.js +1 -1
- package/dist/env-D7wNuBx1.js +1 -1
- package/dist/env-overrides-DHtB4kK3.js +1 -1
- package/dist/env-overrides-DXJbFrwI.js +1 -1
- package/dist/errors-6SQWM9dj.js +1 -1
- package/dist/errors-Bunti32V.js +1 -1
- package/dist/exec-B3eleY5O.js +1 -1
- package/dist/exec-DHqLtFYt.js +1 -1
- package/dist/exec-approvals-BXO9Cezj.js +1 -1
- package/dist/exec-approvals-BpBNEy6i.js +1 -1
- package/dist/exec-approvals-allowlist-BKFaHvA5.js +1 -1
- package/dist/exec-approvals-allowlist-DBh9Pm77.js +1 -1
- package/dist/exec-approvals-cli-0neCwpk-.js +1 -1
- package/dist/exec-approvals-cli-BuHSw09B.js +1 -1
- package/dist/exec-safe-bin-runtime-policy-Ck3GO5AB.js +1 -1
- package/dist/exec-safe-bin-runtime-policy-D2WexijZ.js +1 -1
- package/dist/fetch-BI3CnKE3.js +1 -1
- package/dist/fetch-BJT3BrkJ.js +1 -1
- package/dist/fetch-Bn0mWg6a.js +1 -1
- package/dist/fetch-CY5G3PDq.js +1 -1
- package/dist/fetch-Ce-scEU-.js +1 -1
- package/dist/fetch-D0rZDHKO.js +1 -1
- package/dist/fetch-DHo17YmK.js +1 -1
- package/dist/fetch-Dh-apy46.js +1 -1
- package/dist/fetch-Dikjvc5M.js +1 -1
- package/dist/fetch-DsjPfQlp.js +1 -1
- package/dist/fetch-_g8lZ8K8.js +1 -1
- package/dist/fetch-guard-BaRbr_V6.js +1 -1
- package/dist/fetch-guard-BmNIhXP-.js +1 -1
- package/dist/fetch-guard-ChVqc0HF.js +1 -1
- package/dist/fetch-guard-Cji70DJW.js +1 -1
- package/dist/fetch-hy0JKSsm.js +1 -1
- package/dist/fetch-timeout-CdYxWG9w.js +1 -1
- package/dist/fetch-timeout-Cj8_oAls.js +1 -1
- package/dist/fetch-timeout-DoOI_izT.js +1 -1
- package/dist/fetch-timeout-u8g99Ax0.js +1 -1
- package/dist/fetch-xT2jRpqs.js +1 -1
- package/dist/format-Bn1bwJKX.js +1 -1
- package/dist/format-Ce7I7s-k.js +1 -1
- package/dist/format-duration-C8AzNqKh.js +1 -1
- package/dist/format-duration-D5AMtmHa.js +1 -1
- package/dist/format-relative-B9pSIdGe.js +1 -1
- package/dist/format-relative-DkMjYy7z.js +1 -1
- package/dist/frontmatter-BkZkwkVO.js +1 -1
- package/dist/frontmatter-C7mzDNxd.js +1 -1
- package/dist/frontmatter-CzpfPBFl.js +1 -1
- package/dist/gateway-cli-Bj-BYgGN.js +1 -1
- package/dist/gateway-cli-DP65otLl.js +1 -1
- package/dist/gateway-install-token-BIqlEgy0.js +1 -1
- package/dist/gateway-install-token-CtUJl3A3.js +1 -1
- package/dist/gateway-rpc-DJHjmEZz.js +1 -1
- package/dist/gateway-rpc-XRAMeV67.js +1 -1
- package/dist/github-copilot-token-C79yeDKS.js +1 -1
- package/dist/github-copilot-token-DGYAlOmV.js +1 -1
- package/dist/github-copilot-token-DePP-lIf.js +1 -1
- package/dist/github-copilot-token-wm6mbypz.js +1 -1
- package/dist/gmail-setup-utils-CYOH3zzx.js +1 -1
- package/dist/gmail-setup-utils-S-MyEGuj.js +1 -1
- package/dist/group-access-BHKVOhrj.js +1 -1
- package/dist/group-access-D2DOYMfr.js +1 -1
- package/dist/health-Bedsiigi.js +1 -1
- package/dist/health-Cy_CvKbX.js +1 -1
- package/dist/health-format-B1nj3Wfn.js +1 -1
- package/dist/health-format-VBr6LEpt.js +1 -1
- package/dist/heartbeat-visibility-BQ_esv2m.js +1 -1
- package/dist/heartbeat-visibility-q74UdY8O.js +1 -1
- package/dist/help-format-B4aEI7V9.js +1 -1
- package/dist/help-format-BRbF_INg.js +1 -1
- package/dist/helpers-COz1ghcB.js +1 -1
- package/dist/helpers-Cp8gcO6u.js +1 -1
- package/dist/hooks-cli-DrnH2iDk.js +1 -1
- package/dist/hooks-cli-DvfZKyZl.js +1 -1
- package/dist/hooks-status-BHt-Xvh4.js +1 -1
- package/dist/hooks-status-CRJ4J0ZW.js +1 -1
- package/dist/image-BJC11A7e.js +1 -1
- package/dist/image-BKPxWO_2.js +1 -1
- package/dist/image-Ba-mOMMV.js +1 -1
- package/dist/image-D-R3N1it.js +1 -1
- package/dist/index.js +1 -1
- package/dist/inspect-BKV-I1UE.js +1 -1
- package/dist/inspect-z59cgmYc.js +1 -1
- package/dist/install-safe-path-C6kc_8NW.js +1 -1
- package/dist/install-safe-path-iesxijn2.js +1 -1
- package/dist/installs-BNeI_oML.js +1 -1
- package/dist/installs-C1xQLuby.js +1 -1
- package/dist/ipv4-BXZDlz5C.js +1 -1
- package/dist/ipv4-BnPLbv6y.js +1 -1
- package/dist/ir-BYCrFFZ9.js +1 -1
- package/dist/ir-CH7YvSi9.js +1 -1
- package/dist/ir-CSysIkNU.js +1 -1
- package/dist/ir-CZdZsdnI.js +1 -1
- package/dist/is-main-DG5ueqhF.js +1 -1
- package/dist/issue-format-CpTuk_rQ.js +1 -1
- package/dist/issue-format-kj7FXHhi.js +1 -1
- package/dist/kill-tree-DBJW8_Q-.js +1 -1
- package/dist/lifecycle-core-B72WHNHV.js +1 -1
- package/dist/lifecycle-core-dhkH_Nux.js +1 -1
- package/dist/line/accounts.js +1 -1
- package/dist/line/send.js +1 -1
- package/dist/line/template-messages.js +1 -1
- package/dist/links-CBnmRP9D.js +1 -1
- package/dist/links-CySwdMcF.js +1 -1
- package/dist/llm-slug-generator.js +1 -1
- package/dist/load-options-BsOW74dp.js +1 -1
- package/dist/load-options-C7dLuybp.js +1 -1
- package/dist/load-options-DV4j6Aqb.js +1 -1
- package/dist/load-options-Dwt0CeEg.js +1 -1
- package/dist/local-roots-Dxioh0C2.js +1 -1
- package/dist/logger-5W0OocJW.js +1 -1
- package/dist/logger-Bl8URnrW.js +1 -1
- package/dist/logger-DwWqfo66.js +1 -1
- package/dist/logger-kQAOe3qp.js +1 -1
- package/dist/logging-Dz4Qg6th.js +1 -1
- package/dist/logging-KiJmOmw4.js +1 -1
- package/dist/login-BMZxDYaU.js +1 -1
- package/dist/login-BdzP8F8J.js +1 -1
- package/dist/login-BzU0cMck.js +1 -1
- package/dist/login-Cb1A6qwM.js +1 -1
- package/dist/login-qr-BgsmAwKm.js +1 -1
- package/dist/login-qr-Bux8gWTO.js +1 -1
- package/dist/login-qr-COr_25Hx.js +1 -1
- package/dist/login-qr-CxBPOOAK.js +1 -1
- package/dist/login-qr-DnQm7bM4.js +1 -1
- package/dist/logs-cli-BM2XCmrH.js +1 -1
- package/dist/logs-cli-HKhyxaUs.js +1 -1
- package/dist/manager-B6zZuJEB.js +1 -1
- package/dist/manager-BwrZfep3.js +1 -1
- package/dist/manager-C5SBozw4.js +1 -1
- package/dist/manager-CjihRbGa.js +1 -1
- package/dist/memory-cli-CnruTL1h.js +1 -1
- package/dist/memory-cli-DHvscp7X.js +1 -1
- package/dist/model-catalog-BLdaFmIo.js +1 -1
- package/dist/model-catalog-vNCcsy4h.js +1 -1
- package/dist/model-param-b-B0r2cPDw.js +1 -1
- package/dist/model-param-b-BqIr5rY5.js +1 -1
- package/dist/model-picker-BaeW3tiV.js +1 -1
- package/dist/model-picker-DN0czUYS.js +1 -1
- package/dist/model-selection-C2QwHmXT.js +1 -1
- package/dist/model-selection-I1ctjFOB.js +1 -1
- package/dist/model-selection-qkByRv5A.js +1 -1
- package/dist/models-UTdl0vXO.js +1 -1
- package/dist/models-cli-QRONP7EL.js +1 -1
- package/dist/models-cli-vRoB_gfX.js +1 -1
- package/dist/models-config-CWIlroKT.js +1 -1
- package/dist/models-config-DN2Q51fC.js +1 -1
- package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -1
- package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -1
- package/dist/node-cli-2-E4-83G.js +1 -1
- package/dist/node-cli-DUI7Zctj.js +1 -1
- package/dist/node-command-policy-Bbmnc16l.js +1 -1
- package/dist/node-command-policy-DgkwfoCs.js +1 -1
- package/dist/node-commands-8GBOiktk.js +1 -1
- package/dist/node-commands-DdkziOTx.js +1 -1
- package/dist/node-resolve-B3BJbmQX.js +1 -1
- package/dist/node-resolve-DLZf3-1V.js +1 -1
- package/dist/node-service-BRfrNp8l.js +1 -1
- package/dist/node-service-C0bl7jcZ.js +1 -1
- package/dist/node-shell-dXp4vk-i.js +1 -1
- package/dist/nodes-cli-DU13-dCL.js +1 -1
- package/dist/nodes-cli-rPeIRj_f.js +1 -1
- package/dist/nodes-screen-C7-5RrbN.js +1 -1
- package/dist/note-D4GAwgha.js +1 -1
- package/dist/note-Dp-d_utk.js +1 -1
- package/dist/npm-pack-install-B23L-AtF.js +1 -1
- package/dist/npm-pack-install-C0te3Oap.js +1 -1
- package/dist/npm-resolution-BCXCw93f.js +1 -1
- package/dist/npm-resolution-Cmm82lui.js +1 -1
- package/dist/oauth-env-DAamJ1oz.js +1 -1
- package/dist/oauth-env-DSLBTWb1.js +1 -1
- package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -1
- package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -1
- package/dist/ollama-setup-CKt3tF-S.js +1 -1
- package/dist/ollama-setup-I8lghdX1.js +1 -1
- package/dist/onboard-B3WSjKCu.js +1 -1
- package/dist/onboard-C65vdb94.js +1 -1
- package/dist/onboard-channels-9CmG3Jgn.js +1 -1
- package/dist/onboard-channels-CV1AK9jY.js +1 -1
- package/dist/onboard-config-B7U20YRw.js +1 -1
- package/dist/onboard-config-DS9dUv8M.js +1 -1
- package/dist/onboard-custom-CwHYUB0T.js +1 -1
- package/dist/onboard-custom-uwufXtQf.js +1 -1
- package/dist/onboard-helpers-CGJLUoxR.js +1 -1
- package/dist/onboard-helpers-DbpWQoiB.js +1 -1
- package/dist/onboard-hooks-CERzXObm.js +1 -1
- package/dist/onboard-hooks-gQ3sxBNi.js +1 -1
- package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -1
- package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -1
- package/dist/onboard-remote-BeDZ_gbH.js +1 -1
- package/dist/onboard-remote-KTUx-3G1.js +1 -1
- package/dist/onboard-search-f2tJD4hg.js +1 -1
- package/dist/onboard-search-fslKKhyg.js +1 -1
- package/dist/onboard-skills-BoS_oVdm.js +1 -1
- package/dist/onboard-skills-C4omGWoD.js +1 -1
- package/dist/onboarding-B8icigkk.js +1 -1
- package/dist/onboarding-BJRqNsZ8.js +1 -1
- package/dist/onboarding.finalize-D0qISqn-.js +1 -1
- package/dist/onboarding.finalize-Ds9NwPBL.js +1 -1
- package/dist/onboarding.gateway-config-F8n_QFUR.js +1 -1
- package/dist/onboarding.gateway-config-eno73eHw.js +1 -1
- package/dist/onboarding.secret-input-B6fzeucQ.js +1 -1
- package/dist/onboarding.secret-input-CBuD3c32.js +1 -1
- package/dist/openai-codex-model-default-Df2T3foI.js +1 -1
- package/dist/openai-codex-model-default-DtIeKJm0.js +1 -1
- package/dist/openai-model-default-DIE55yBt.js +1 -1
- package/dist/openai-model-default-sqvWk4kB.js +1 -1
- package/dist/openclaw-exec-env-BWbOu_YC.js +1 -1
- package/dist/openclaw-root-CnsBf6ZU.js +1 -1
- package/dist/openclaw-root-D_0Q6--h.js +1 -1
- package/dist/outbound-B88MLJN3.js +1 -1
- package/dist/outbound-C-4qToKv.js +1 -1
- package/dist/outbound-CSk4oF0g.js +1 -1
- package/dist/outbound-DKMI_4xm.js +1 -1
- package/dist/outbound-attachment-BOax42-M.js +1 -1
- package/dist/outbound-attachment-DBNxdLYh.js +1 -1
- package/dist/outbound-attachment-DVjJQ3V6.js +1 -1
- package/dist/outbound-attachment-aZWcoZ-N.js +1 -1
- package/dist/pairing-cli-Cby6Ww8F.js +1 -1
- package/dist/pairing-cli-DiJb_a0V.js +1 -1
- package/dist/pairing-labels-BP1h0iHy.js +1 -1
- package/dist/pairing-labels-ryOnuOFA.js +1 -1
- package/dist/pairing-store-Bv4KSELv.js +1 -1
- package/dist/pairing-store-CjTPxq0X.js +1 -1
- package/dist/pairing-token-CKX1ds78.js +1 -1
- package/dist/pairing-token-CX0SUJsB.js +1 -1
- package/dist/parse-duration-XTjMKl8s.js +1 -1
- package/dist/parse-finite-number-DqzUM-_s.js +1 -1
- package/dist/parse-finite-number-dBmDLLKL.js +1 -1
- package/dist/parse-log-line-CsYLg7Qu.js +1 -1
- package/dist/parse-log-line-NV-cipB_.js +1 -1
- package/dist/parse-port-Bv1Y9Wk5.js +1 -1
- package/dist/parse-port-JVwkxcZ8.js +1 -1
- package/dist/parse-timeout-DWSGfCkQ.js +1 -1
- package/dist/parse-timeout-Dx4QnVzo.js +1 -1
- package/dist/path-alias-guards-kY_ZbWs-.js +1 -1
- package/dist/path-alias-guards-mvyLCPlN.js +1 -1
- package/dist/path-env-BPd1Yd-i.js +1 -1
- package/dist/path-env-emdAQejM.js +1 -1
- package/dist/path-safety-BukYK8Kd.js +1 -1
- package/dist/path-safety-DaaMJFdt.js +1 -1
- package/dist/paths-B4IRk3wi.js +1 -1
- package/dist/paths-BfjJY2VL.js +1 -1
- package/dist/paths-BjD3T_xq.js +1 -1
- package/dist/paths-BpQOWYiT.js +1 -1
- package/dist/paths-CChBdtE8.js +1 -1
- package/dist/paths-CrCoPIVK.js +1 -1
- package/dist/paths-piJASC5k.js +1 -1
- package/dist/paths-yLEk_25I.js +1 -1
- package/dist/pi-embedded-ZEWNj7P5.js +1 -1
- package/dist/pi-embedded-bqE4EmdD.js +1 -1
- package/dist/pi-model-discovery-6myCPEJE.js +1 -1
- package/dist/pi-model-discovery-AiV9h8k6.js +1 -1
- package/dist/pi-model-discovery-BzqdozHB.js +1 -1
- package/dist/pi-model-discovery-C8YBu6D4.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CPAJMO7J.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CYmLHod0.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-CfVqI0Ng.js +1 -1
- package/dist/pi-tools.before-tool-call.runtime-D9FlPJ_v.js +1 -1
- package/dist/pi-tools.policy-CeSKHaKa.js +1 -1
- package/dist/plugin-auto-enable-Cp7L8ko8.js +1 -1
- package/dist/plugin-auto-enable-DCOxqfDQ.js +1 -1
- package/dist/plugin-install-plan-BobX0y9S.js +1 -1
- package/dist/plugin-install-plan-NvDGp0d8.js +1 -1
- package/dist/plugin-registry-Fg000e4I.js +1 -1
- package/dist/plugin-registry-fm5tDUbE.js +1 -1
- package/dist/plugin-sdk/account-id.cjs +1 -1
- package/dist/plugin-sdk/account-id.js +1 -1
- package/dist/plugin-sdk/acpx.cjs +1 -1
- package/dist/plugin-sdk/acpx.js +1 -1
- package/dist/plugin-sdk/active-listener-BFeaYGID.js +1 -1
- package/dist/plugin-sdk/active-listener-BszCM2Au.cjs +1 -1
- package/dist/plugin-sdk/active-listener-CIcleJgU.cjs +1 -1
- package/dist/plugin-sdk/active-listener-Cqgd7xVh.cjs +1 -1
- package/dist/plugin-sdk/active-listener-D578zEtk.cjs +1 -1
- package/dist/plugin-sdk/active-listener-D6gGPLq-.js +1 -1
- package/dist/plugin-sdk/active-listener-DKSZRn4x.cjs +1 -1
- package/dist/plugin-sdk/active-listener-DNO10F1L.js +1 -1
- package/dist/plugin-sdk/active-listener-DQq07Aar.js +1 -1
- package/dist/plugin-sdk/active-listener-Dle_kYqb.js +1 -1
- package/dist/plugin-sdk/active-listener-DmJcHkMC.js +1 -1
- package/dist/plugin-sdk/active-listener-UmFpcYFY.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-39TRXDEA.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-7qlqJ_ou.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-BY7fLi9z.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CF9_CKS-.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-CWylhFOt.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-ClZmonv2.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CmesQWXP.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-Cs6II2__.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-CxaiMcI1.js +1 -1
- package/dist/plugin-sdk/api-key-rotation-D5cfmg7E.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-DkP7KnSm.cjs +1 -1
- package/dist/plugin-sdk/api-key-rotation-mDqgBFMG.js +1 -1
- package/dist/plugin-sdk/audio-preflight-B-HrF5Oc.js +1 -1
- package/dist/plugin-sdk/audio-preflight-B2MGeSoT.js +1 -1
- package/dist/plugin-sdk/audio-preflight-BVjiz_Qk.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-Behqe7F3.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-C0ncOCbK.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-C1o1n-KK.js +1 -1
- package/dist/plugin-sdk/audio-preflight-CzLYTZ5P.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-DDiBwIB9.js +1 -1
- package/dist/plugin-sdk/audio-preflight-DQyh-XSn.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-WH9WDR81.cjs +1 -1
- package/dist/plugin-sdk/audio-preflight-ZPLO3G1S.js +1 -1
- package/dist/plugin-sdk/audio-preflight-s3BAID12.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-2-ZQ5Md-.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-BO7T_SzP.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CRYJlAeP.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CmW24oVR.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CmYuWS0_.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-CslXJs5c.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DE1tKTQV.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DZR84B28.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-DoR-NOcV.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-IE4olXkd.cjs +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-YiDQM_Rb.js +1 -1
- package/dist/plugin-sdk/audio-transcription-runner-kAVM4YFR.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -1
- package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -1
- package/dist/plugin-sdk/bluebubbles.cjs +1 -1
- package/dist/plugin-sdk/bluebubbles.js +1 -1
- package/dist/plugin-sdk/channel-activity-Bed876M5.js +1 -1
- package/dist/plugin-sdk/channel-activity-Bu8tAmGa.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-C01Im_o1.js +1 -1
- package/dist/plugin-sdk/channel-activity-CIycjzUC.js +1 -1
- package/dist/plugin-sdk/channel-activity-Cdkn3O_i.js +1 -1
- package/dist/plugin-sdk/channel-activity-Cia2G3v5.js +1 -1
- package/dist/plugin-sdk/channel-activity-D6d2wU8H.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-DNv7JLBx.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-Df3DfYyZ.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-Rut-HCfT.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-mffNSQrX.cjs +1 -1
- package/dist/plugin-sdk/channel-activity-qjwFifkE.js +1 -1
- package/dist/plugin-sdk/channel-web-Ces_xx2T.js +1 -1
- package/dist/plugin-sdk/channel-web-CsmEnYD8.cjs +1 -1
- package/dist/plugin-sdk/channel-web-DtzNv49H.cjs +1 -1
- package/dist/plugin-sdk/channel-web-VEZVrMYU.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -1
- package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -1
- package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -1
- package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-33H8WYTk.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-BGdm1KdC.js +1 -1
- package/dist/plugin-sdk/commands-registry-BgV9i-bj.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-BifdCfty.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-CJLBIIIp.js +1 -1
- package/dist/plugin-sdk/commands-registry-CWK9ARbc.js +1 -1
- package/dist/plugin-sdk/commands-registry-CfVD1h8L.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-CpG4pxrA.js +1 -1
- package/dist/plugin-sdk/commands-registry-D-AnIQWz.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-DBI4cPqT.cjs +1 -1
- package/dist/plugin-sdk/commands-registry-DOBe9cWq.js +1 -1
- package/dist/plugin-sdk/commands-registry-DqemUyiv.js +1 -1
- package/dist/plugin-sdk/common-CEe87dmX.js +1 -1
- package/dist/plugin-sdk/common-CjMKHm2Z.cjs +1 -1
- package/dist/plugin-sdk/compat.cjs +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/config-DT_csBcZ.cjs +1 -1
- package/dist/plugin-sdk/config-LR8GH3Ws.js +1 -1
- package/dist/plugin-sdk/copilot-proxy.cjs +1 -1
- package/dist/plugin-sdk/copilot-proxy.js +1 -1
- package/dist/plugin-sdk/core.cjs +1 -1
- package/dist/plugin-sdk/core.js +1 -1
- package/dist/plugin-sdk/deliver-AORlkcbD.cjs +1 -1
- package/dist/plugin-sdk/deliver-BiBFW5fm.cjs +1 -1
- package/dist/plugin-sdk/deliver-BpqEPwLO.cjs +1 -1
- package/dist/plugin-sdk/deliver-BvC6aUKM.js +1 -1
- package/dist/plugin-sdk/deliver-CT0AIuK1.cjs +1 -1
- package/dist/plugin-sdk/deliver-CmddcjtG.cjs +1 -1
- package/dist/plugin-sdk/deliver-DFz5N1Eh.js +1 -1
- package/dist/plugin-sdk/deliver-DcJWpoqf.cjs +1 -1
- package/dist/plugin-sdk/deliver-ILim6ANU.js +1 -1
- package/dist/plugin-sdk/deliver-QgxW9IxV.js +1 -1
- package/dist/plugin-sdk/deliver-cT-Q8v0h.js +1 -1
- package/dist/plugin-sdk/deliver-cu_NQTmb.js +1 -1
- package/dist/plugin-sdk/device-pair.cjs +1 -1
- package/dist/plugin-sdk/device-pair.js +1 -1
- package/dist/plugin-sdk/diagnostic-BCyE1aYH.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-BFea3l_a.js +1 -1
- package/dist/plugin-sdk/diagnostic-BvR96WdC.js +1 -1
- package/dist/plugin-sdk/diagnostic-C0xDsk89.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CEPhLgsW.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CbLwUqTE.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-CbfxoqI_.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-DDwUPG1m.js +1 -1
- package/dist/plugin-sdk/diagnostic-DS_mKKOu.js +1 -1
- package/dist/plugin-sdk/diagnostic-DYpehqHU.cjs +1 -1
- package/dist/plugin-sdk/diagnostic-DkncnZ3G.js +1 -1
- package/dist/plugin-sdk/diagnostic-Dz8HPEDe.js +1 -1
- package/dist/plugin-sdk/diagnostics-otel.cjs +1 -1
- package/dist/plugin-sdk/diagnostics-otel.js +1 -1
- package/dist/plugin-sdk/diffs.cjs +1 -1
- package/dist/plugin-sdk/diffs.js +1 -1
- package/dist/plugin-sdk/discord.cjs +1 -1
- package/dist/plugin-sdk/discord.js +1 -1
- package/dist/plugin-sdk/dispatch-6m3206FH.js +1 -1
- package/dist/plugin-sdk/dispatch-BYZNaz0n.cjs +1 -1
- package/dist/plugin-sdk/dispatch-BahZCe-D.js +1 -1
- package/dist/plugin-sdk/dispatch-Bi3yeWxb.cjs +1 -1
- package/dist/plugin-sdk/dispatch-BjB_TqWy.cjs +1 -1
- package/dist/plugin-sdk/dispatch-CNR186B3.js +1 -1
- package/dist/plugin-sdk/dispatch-CStT30wi.cjs +1 -1
- package/dist/plugin-sdk/dispatch-CdZAW9dg.cjs +1 -1
- package/dist/plugin-sdk/dispatch-Ewg2Jgw9.js +1 -1
- package/dist/plugin-sdk/dispatch-HRTsdeCV.js +1 -1
- package/dist/plugin-sdk/feishu.cjs +1 -1
- package/dist/plugin-sdk/feishu.js +1 -1
- package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -1
- package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -1
- package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -1
- package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -1
- package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -1
- package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -1
- package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -1
- package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -1
- package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -1
- package/dist/plugin-sdk/fetch-BtZY623f.js +1 -1
- package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -1
- package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -1
- package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -1
- package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -1
- package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -1
- package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -1
- package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -1
- package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -1
- package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -1
- package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -1
- package/dist/plugin-sdk/fetch-guard-D8TdhTHU.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DC_pFJEy.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DDkd30BG.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DELiFG5g.js +1 -1
- package/dist/plugin-sdk/fetch-guard-DIYjBRpq.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DPVfELS7.js +1 -1
- package/dist/plugin-sdk/fetch-guard-Dpz6CnJY.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DqNKwgHP.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-DqTxZ3G8.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-EoAitPe9.cjs +1 -1
- package/dist/plugin-sdk/fetch-guard-qfU6iTvp.js +1 -1
- package/dist/plugin-sdk/fetch-guard-u2Dt6P9i.cjs +1 -1
- package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -1
- package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -1
- package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -1
- package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -1
- package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -1
- package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -1
- package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -1
- package/dist/plugin-sdk/googlechat.cjs +1 -1
- package/dist/plugin-sdk/googlechat.js +1 -1
- package/dist/plugin-sdk/image-0OHO98b9.cjs +1 -1
- package/dist/plugin-sdk/image-B9SLKAOs.cjs +1 -1
- package/dist/plugin-sdk/image-BVnZq5Y4.js +1 -1
- package/dist/plugin-sdk/image-CKLAyhco.js +1 -1
- package/dist/plugin-sdk/image-DUHEJeBF.js +1 -1
- package/dist/plugin-sdk/image-DngxW2Nh.cjs +1 -1
- package/dist/plugin-sdk/image-DrPh2689.cjs +1 -1
- package/dist/plugin-sdk/image-ISWO0Dwt.js +1 -1
- package/dist/plugin-sdk/image-KfZYW6Lh.cjs +1 -1
- package/dist/plugin-sdk/image-YVlw68CK.js +1 -1
- package/dist/plugin-sdk/image-gehqJnV6.js +1 -1
- package/dist/plugin-sdk/image-jUYo-0eT.cjs +1 -1
- package/dist/plugin-sdk/imessage.cjs +1 -1
- package/dist/plugin-sdk/imessage.js +1 -1
- package/dist/plugin-sdk/index.cjs +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/ir-78toXVqC.cjs +1 -1
- package/dist/plugin-sdk/ir-A_TqKaXP.cjs +1 -1
- package/dist/plugin-sdk/ir-B0_rUT7m.js +1 -1
- package/dist/plugin-sdk/ir-B7agH4cQ.cjs +1 -1
- package/dist/plugin-sdk/ir-B9ap_YNW.cjs +1 -1
- package/dist/plugin-sdk/ir-BxKSHYao.cjs +1 -1
- package/dist/plugin-sdk/ir-BzZArF6l.js +1 -1
- package/dist/plugin-sdk/ir-CpkEWZD6.js +1 -1
- package/dist/plugin-sdk/ir-D4Dz-giw.cjs +1 -1
- package/dist/plugin-sdk/ir-DJ08DSkk.js +1 -1
- package/dist/plugin-sdk/ir-L2vhtuGx.js +1 -1
- package/dist/plugin-sdk/ir-ntSck5Kp.js +1 -1
- package/dist/plugin-sdk/irc.cjs +1 -1
- package/dist/plugin-sdk/irc.js +1 -1
- package/dist/plugin-sdk/keyed-async-queue.cjs +1 -1
- package/dist/plugin-sdk/keyed-async-queue.js +1 -1
- package/dist/plugin-sdk/line.cjs +1 -1
- package/dist/plugin-sdk/line.js +1 -1
- package/dist/plugin-sdk/llm-task.cjs +1 -1
- package/dist/plugin-sdk/llm-task.js +1 -1
- package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -1
- package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -1
- package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -1
- package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -1
- package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -1
- package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -1
- package/dist/plugin-sdk/lobster.cjs +1 -1
- package/dist/plugin-sdk/lobster.js +1 -1
- package/dist/plugin-sdk/local-roots-B0zm186S.js +1 -1
- package/dist/plugin-sdk/local-roots-B4Uy4kG3.cjs +1 -1
- package/dist/plugin-sdk/local-roots-CM1R1Ncr.cjs +1 -1
- package/dist/plugin-sdk/local-roots-CW78ZeZV.js +1 -1
- package/dist/plugin-sdk/local-roots-CnsaE7a_.js +1 -1
- package/dist/plugin-sdk/local-roots-D1k-fAlE.cjs +1 -1
- package/dist/plugin-sdk/local-roots-DQ_vfJPK.js +1 -1
- package/dist/plugin-sdk/local-roots-DYlB1au6.cjs +1 -1
- package/dist/plugin-sdk/local-roots-H4-t0qG_.js +1 -1
- package/dist/plugin-sdk/local-roots-SCyeUfM3.cjs +1 -1
- package/dist/plugin-sdk/local-roots-l4PqCmiU.js +1 -1
- package/dist/plugin-sdk/local-roots-xHoEq1Fq.cjs +1 -1
- package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -1
- package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -1
- package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -1
- package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -1
- package/dist/plugin-sdk/logger-C210xuWx.js +1 -1
- package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -1
- package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -1
- package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -1
- package/dist/plugin-sdk/logger-DwWqfo66.js +1 -1
- package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -1
- package/dist/plugin-sdk/login-BN1TsFp4.cjs +1 -1
- package/dist/plugin-sdk/login-BXUtcSnB.cjs +1 -1
- package/dist/plugin-sdk/login-BoMH2iJT.js +1 -1
- package/dist/plugin-sdk/login-BtT7yRJO.js +1 -1
- package/dist/plugin-sdk/login-COzybMRK.js +1 -1
- package/dist/plugin-sdk/login-Cw1jFbel.cjs +1 -1
- package/dist/plugin-sdk/login-DEmpr5YK.js +1 -1
- package/dist/plugin-sdk/login-Dln00cFs.cjs +1 -1
- package/dist/plugin-sdk/login-S2Fe5n5K.cjs +1 -1
- package/dist/plugin-sdk/login-TieaF0ts.cjs +1 -1
- package/dist/plugin-sdk/login-ZQK4uJLw.js +1 -1
- package/dist/plugin-sdk/login-fKxJv0_F.js +1 -1
- package/dist/plugin-sdk/login-qr-1ilmySGx.js +1 -1
- package/dist/plugin-sdk/login-qr-B0ZSZaNI.js +1 -1
- package/dist/plugin-sdk/login-qr-B2P2Ky4j.js +1 -1
- package/dist/plugin-sdk/login-qr-B2U87iU8.js +1 -1
- package/dist/plugin-sdk/login-qr-B4x_eWI_.js +1 -1
- package/dist/plugin-sdk/login-qr-BIaJB24t.cjs +1 -1
- package/dist/plugin-sdk/login-qr-BMl5Beq2.cjs +1 -1
- package/dist/plugin-sdk/login-qr-Bkm3QorK.cjs +1 -1
- package/dist/plugin-sdk/login-qr-ClL8FMAJ.cjs +1 -1
- package/dist/plugin-sdk/login-qr-DFVK1lg-.js +1 -1
- package/dist/plugin-sdk/login-qr-DhieI9fL.cjs +1 -1
- package/dist/plugin-sdk/login-qr-DyQT1QnE.cjs +1 -1
- package/dist/plugin-sdk/manager-0tvX3Z_N.cjs +1 -1
- package/dist/plugin-sdk/manager-8uylP7PH.cjs +1 -1
- package/dist/plugin-sdk/manager-B6hWglXe.js +1 -1
- package/dist/plugin-sdk/manager-BGoKN9ur.js +1 -1
- package/dist/plugin-sdk/manager-BRP1lzb6.js +1 -1
- package/dist/plugin-sdk/manager-BeLNhsXC.cjs +1 -1
- package/dist/plugin-sdk/manager-BnytMgmq.js +1 -1
- package/dist/plugin-sdk/manager-BoMQeM1I.cjs +1 -1
- package/dist/plugin-sdk/manager-CYZY9vcM.js +1 -1
- package/dist/plugin-sdk/manager-DCDy2V1U.cjs +1 -1
- package/dist/plugin-sdk/manager-DE7sDip8.cjs +1 -1
- package/dist/plugin-sdk/manager-PwgQZNK1.js +1 -1
- package/dist/plugin-sdk/matrix.cjs +1 -1
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/mattermost.cjs +1 -1
- package/dist/plugin-sdk/mattermost.js +1 -1
- package/dist/plugin-sdk/memory-core.cjs +1 -1
- package/dist/plugin-sdk/memory-core.js +1 -1
- package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -1
- package/dist/plugin-sdk/minimax-portal-auth.js +1 -1
- package/dist/plugin-sdk/model-auth-BgS7ynQw.cjs +1 -1
- package/dist/plugin-sdk/model-auth-CKlA2xRB.cjs +1 -1
- package/dist/plugin-sdk/model-auth-CLnFIqcf.cjs +1 -1
- package/dist/plugin-sdk/model-auth-D7YupJDS.js +1 -1
- package/dist/plugin-sdk/model-auth-eNVBeC-B.js +1 -1
- package/dist/plugin-sdk/model-auth-fJrNIbke.cjs +1 -1
- package/dist/plugin-sdk/model-auth-g6eGgTwR.js +1 -1
- package/dist/plugin-sdk/model-auth-wcxJptQX.js +1 -1
- package/dist/plugin-sdk/model-selection-4ExiFkaW.js +1 -1
- package/dist/plugin-sdk/model-selection-CZY_x2-a.cjs +1 -1
- package/dist/plugin-sdk/msteams.cjs +1 -1
- package/dist/plugin-sdk/msteams.js +1 -1
- package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
- package/dist/plugin-sdk/nextcloud-talk.js +1 -1
- package/dist/plugin-sdk/nostr.cjs +1 -1
- package/dist/plugin-sdk/nostr.js +1 -1
- package/dist/plugin-sdk/outbound-2VVSR_d4.js +1 -1
- package/dist/plugin-sdk/outbound-B03BQa7T.cjs +1 -1
- package/dist/plugin-sdk/outbound-BE8CJ9c_.js +1 -1
- package/dist/plugin-sdk/outbound-BWtGs0dn.cjs +1 -1
- package/dist/plugin-sdk/outbound-BrD0UsX0.js +1 -1
- package/dist/plugin-sdk/outbound-Bvu4LbQx.js +1 -1
- package/dist/plugin-sdk/outbound-C5rNt-8z.cjs +1 -1
- package/dist/plugin-sdk/outbound-C6BJCoYf.cjs +1 -1
- package/dist/plugin-sdk/outbound-Cgc0JJtB.js +1 -1
- package/dist/plugin-sdk/outbound-DAHIkpiA.cjs +1 -1
- package/dist/plugin-sdk/outbound-DnO_udAm.cjs +1 -1
- package/dist/plugin-sdk/outbound-UAHsCNyW.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-0QahtSQB.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-8qvAj1MK.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-B6SJy_CG.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-BVdSGifg.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-C-QqSQ79.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-CYGrnygD.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-CtA5eBgj.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-D8Ng5uVX.cjs +1 -1
- package/dist/plugin-sdk/outbound-attachment-DS0S0NLK.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-Ds2XsjQl.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-acB4qID1.js +1 -1
- package/dist/plugin-sdk/outbound-attachment-x4Q2SVIA.cjs +1 -1
- package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -1
- package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -1
- package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -1
- package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -1
- package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -1
- package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -1
- package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -1
- package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -1
- package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -1
- package/dist/plugin-sdk/paths-CtrEseGU.js +1 -1
- package/dist/plugin-sdk/paths-D55o_j8-.js +1 -1
- package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -1
- package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -1
- package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -1
- package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -1
- package/dist/plugin-sdk/paths-Do0djuaj.js +1 -1
- package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -1
- package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -1
- package/dist/plugin-sdk/paths-piJASC5k.js +1 -1
- package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery--UcCzdQg.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-Bi4dKtW0.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-CCK2Ppj9.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-CRSZ0OFi.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-Cx_r4FGY.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-D3JQMjAa.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DN1RHetG.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DVFSU0-f.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DWMAAhA-.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DYOHzCjs.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DdSVvbQ5.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-DejkxBol.js +1 -1
- package/dist/plugin-sdk/pi-model-discovery-SmVAFMj_.cjs +1 -1
- package/dist/plugin-sdk/pi-model-discovery-ma8st1Ek.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-B2WodYBY.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BC114tUb.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BF6jP1nM.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Beg-U7Z-.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BkEYsSLL.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C21sWtkh.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CKkgBGIj.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CNun__L-.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Clulhv2X.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DvwL5in9.cjs +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-FnzjmZqP.js +1 -1
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Rq5y0QJ2.cjs +1 -1
- package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -1
- package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -1
- package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -1
- package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -1
- package/dist/plugin-sdk/polls-PGxiE05J.js +1 -1
- package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -1
- package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -1
- package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -1
- package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -1
- package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -1
- package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -1
- package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -1
- package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -1
- package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-3piACPqP.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-8dajXBkZ.js +1 -1
- package/dist/plugin-sdk/pw-ai-B7mrBDW5.js +1 -1
- package/dist/plugin-sdk/pw-ai-BLD7x-3a.js +1 -1
- package/dist/plugin-sdk/pw-ai-BYmANcaC.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-C1rVW06B.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-CCDvaBUm.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-CVYUOcKM.js +1 -1
- package/dist/plugin-sdk/pw-ai-DBg5CCXp.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-DY11CCd3.cjs +1 -1
- package/dist/plugin-sdk/pw-ai-Kf2RyA25.js +1 -1
- package/dist/plugin-sdk/pw-ai-f5yF3n3t.js +1 -1
- package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -1
- package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -1
- package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -1
- package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -1
- package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -1
- package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -1
- package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -1
- package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -1
- package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -1
- package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -1
- package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -1
- package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -1
- package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -1
- package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -1
- package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -1
- package/dist/plugin-sdk/qwen-portal-auth.js +1 -1
- package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -1
- package/dist/plugin-sdk/render-CBsnn-2A.js +1 -1
- package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -1
- package/dist/plugin-sdk/render-DGmfCIRG.js +1 -1
- package/dist/plugin-sdk/render-DhTJXP1U.js +1 -1
- package/dist/plugin-sdk/render-Djx15dPh.js +1 -1
- package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -1
- package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -1
- package/dist/plugin-sdk/reply-BrHB7v5V.cjs +1 -1
- package/dist/plugin-sdk/reply-Clex4c2R.js +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-BHLQMMp-.cjs +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-Cvz2WXAk.cjs +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-DDqGniMw.js +1 -1
- package/dist/plugin-sdk/resolve-outbound-target-DEpmpEep.js +1 -1
- package/dist/plugin-sdk/send--HeMLLzj.js +1 -1
- package/dist/plugin-sdk/send-2IhtEEzb.js +1 -1
- package/dist/plugin-sdk/send-9tPLnqkc.js +1 -1
- package/dist/plugin-sdk/send-B-exJfkg.js +1 -1
- package/dist/plugin-sdk/send-B4kzPtcN.js +1 -1
- package/dist/plugin-sdk/send-BCSkdYN6.cjs +1 -1
- package/dist/plugin-sdk/send-BEmZxBcF.js +1 -1
- package/dist/plugin-sdk/send-BHvZIrbJ.cjs +1 -1
- package/dist/plugin-sdk/send-BLbCBxeF.js +1 -1
- package/dist/plugin-sdk/send-BOkABdQu.cjs +1 -1
- package/dist/plugin-sdk/send-BPNd63Qs.js +1 -1
- package/dist/plugin-sdk/send-BVAm6Zbr.cjs +1 -1
- package/dist/plugin-sdk/send-B_619b3s.js +1 -1
- package/dist/plugin-sdk/send-BcuylzbX.js +1 -1
- package/dist/plugin-sdk/send-BdFvK9Wc2.js +1 -1
- package/dist/plugin-sdk/send-Bh-J7XWZ.cjs +1 -1
- package/dist/plugin-sdk/send-BkREPc90.cjs +1 -1
- package/dist/plugin-sdk/send-Bp4f-KJu.cjs +1 -1
- package/dist/plugin-sdk/send-BtF36kYb.js +1 -1
- package/dist/plugin-sdk/send-C6S8tkTA.cjs +1 -1
- package/dist/plugin-sdk/send-CDQF_izk.js +1 -1
- package/dist/plugin-sdk/send-CF3qas-K.js +1 -1
- package/dist/plugin-sdk/send-CFKQX2Wo.js +1 -1
- package/dist/plugin-sdk/send-CIP1u5a-.js +1 -1
- package/dist/plugin-sdk/send-CIxh7PV0.cjs +1 -1
- package/dist/plugin-sdk/send-CJJdcDHX.js +1 -1
- package/dist/plugin-sdk/send-COtvydDt.cjs +1 -1
- package/dist/plugin-sdk/send-CPwh7tRu.js +1 -1
- package/dist/plugin-sdk/send-CRnIqXN9.cjs +1 -1
- package/dist/plugin-sdk/send-CSqipUeV.cjs +1 -1
- package/dist/plugin-sdk/send-Chfe8tPY.js +1 -1
- package/dist/plugin-sdk/send-ClMvdjfg.js +1 -1
- package/dist/plugin-sdk/send-CmoJSYhT.js +1 -1
- package/dist/plugin-sdk/send-Cs5jSTw0.cjs +1 -1
- package/dist/plugin-sdk/send-D-6Et_9H.js +1 -1
- package/dist/plugin-sdk/send-D13uFnzH.cjs +1 -1
- package/dist/plugin-sdk/send-D3eT0F4N.cjs +1 -1
- package/dist/plugin-sdk/send-DAtg_VHa.js +1 -1
- package/dist/plugin-sdk/send-DCF59ijQ.cjs +1 -1
- package/dist/plugin-sdk/send-DN2xic3w.cjs +1 -1
- package/dist/plugin-sdk/send-DOjSTB6D.cjs +1 -1
- package/dist/plugin-sdk/send-DavwL7cF.js +1 -1
- package/dist/plugin-sdk/send-Dbmn1rgD.cjs +1 -1
- package/dist/plugin-sdk/send-DhfDqcwc.cjs +1 -1
- package/dist/plugin-sdk/send-DsDCrJWq.js +1 -1
- package/dist/plugin-sdk/send-DyR5Lpl-.js +1 -1
- package/dist/plugin-sdk/send-DyzuwDjE.js +1 -1
- package/dist/plugin-sdk/send-GtphEa1b.cjs +1 -1
- package/dist/plugin-sdk/send-HZNY_u3L.cjs +1 -1
- package/dist/plugin-sdk/send-IM-76QZu.js +1 -1
- package/dist/plugin-sdk/send-IqcgAO8b.cjs +1 -1
- package/dist/plugin-sdk/send-OQcuL9tP.js +1 -1
- package/dist/plugin-sdk/send-_92aOzWU.cjs +1 -1
- package/dist/plugin-sdk/send-h_kE-cAK.js +1 -1
- package/dist/plugin-sdk/send-jOMdGt0L.cjs +1 -1
- package/dist/plugin-sdk/send-mZ_d-t_3.cjs +1 -1
- package/dist/plugin-sdk/send-puyUta4_.cjs +1 -1
- package/dist/plugin-sdk/send-t5U34FhY.cjs +1 -1
- package/dist/plugin-sdk/send-tvw8j-Se.cjs +1 -1
- package/dist/plugin-sdk/send-z1vaCgF3.cjs +1 -1
- package/dist/plugin-sdk/session--K1m5v7m.js +1 -1
- package/dist/plugin-sdk/session-B1DJ45om.js +1 -1
- package/dist/plugin-sdk/session-B80NWO1m.js +1 -1
- package/dist/plugin-sdk/session-BKPBr445.js +1 -1
- package/dist/plugin-sdk/session-BQLjsBwL.cjs +1 -1
- package/dist/plugin-sdk/session-BZHltxdM.js +1 -1
- package/dist/plugin-sdk/session-Bt5yI-VW.cjs +1 -1
- package/dist/plugin-sdk/session-CC1GqwiM.cjs +1 -1
- package/dist/plugin-sdk/session-C_yqyp3P.cjs +1 -1
- package/dist/plugin-sdk/session-ClISxvtJ.js +1 -1
- package/dist/plugin-sdk/session-D4nn-nXX.cjs +1 -1
- package/dist/plugin-sdk/session-DOA4CJgj.cjs +1 -1
- package/dist/plugin-sdk/sessions-BwTjGneU.js +1 -1
- package/dist/plugin-sdk/sessions-CJbvfO6m.cjs +1 -1
- package/dist/plugin-sdk/signal.cjs +1 -1
- package/dist/plugin-sdk/signal.js +1 -1
- package/dist/plugin-sdk/skill-commands-5WGHyr3h.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-BZlF3g3o.js +1 -1
- package/dist/plugin-sdk/skill-commands-BmBQSmNH.js +1 -1
- package/dist/plugin-sdk/skill-commands-CD4GQXTR.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-CGOPOT-r.js +1 -1
- package/dist/plugin-sdk/skill-commands-CM9ziCQY.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-CVsU5rEy.js +1 -1
- package/dist/plugin-sdk/skill-commands-DNPxE-kc.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-DcgKCVDt.js +1 -1
- package/dist/plugin-sdk/skill-commands-IAwkVeOe.js +1 -1
- package/dist/plugin-sdk/skill-commands-ZyLkXbR_.cjs +1 -1
- package/dist/plugin-sdk/skill-commands-xJWQthd5.cjs +1 -1
- package/dist/plugin-sdk/slack.cjs +1 -1
- package/dist/plugin-sdk/slack.js +1 -1
- package/dist/plugin-sdk/synology-chat.cjs +1 -1
- package/dist/plugin-sdk/synology-chat.js +1 -1
- package/dist/plugin-sdk/tables-BZUVdTR-.cjs +1 -1
- package/dist/plugin-sdk/tables-Bbodvj_s.cjs +1 -1
- package/dist/plugin-sdk/tables-C5b2CtNw.cjs +1 -1
- package/dist/plugin-sdk/tables-C6TX2QvW.js +1 -1
- package/dist/plugin-sdk/tables-Cz5osenc.js +1 -1
- package/dist/plugin-sdk/tables-DBSeZ07-.cjs +1 -1
- package/dist/plugin-sdk/tables-DLSXY2-Q.js +1 -1
- package/dist/plugin-sdk/tables-DQad-z2Z.cjs +1 -1
- package/dist/plugin-sdk/tables-DYuLwL1d.js +1 -1
- package/dist/plugin-sdk/tables-D_J655yN.js +1 -1
- package/dist/plugin-sdk/tables-_vqK8P0T.js +1 -1
- package/dist/plugin-sdk/tables-bSgb8OzP.cjs +1 -1
- package/dist/plugin-sdk/target-errors-B-mJ4s4b.cjs +1 -1
- package/dist/plugin-sdk/target-errors-BAHAHc8f.js +1 -1
- package/dist/plugin-sdk/target-errors-BKruhz8r.js +1 -1
- package/dist/plugin-sdk/target-errors-BbQBR5da.js +1 -1
- package/dist/plugin-sdk/target-errors-BjgLCOTm.cjs +1 -1
- package/dist/plugin-sdk/target-errors-CQbFkOae.js +1 -1
- package/dist/plugin-sdk/target-errors-C_HYvghh.cjs +1 -1
- package/dist/plugin-sdk/target-errors-CaaKhU6m.js +1 -1
- package/dist/plugin-sdk/target-errors-QWTCk98R.cjs +1 -1
- package/dist/plugin-sdk/target-errors-oh0u5K2w.cjs +1 -1
- package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -1
- package/dist/plugin-sdk/targets-BSkiizml.js +1 -1
- package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -1
- package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -1
- package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -1
- package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -1
- package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -1
- package/dist/plugin-sdk/targets-CrkJkzil.js +1 -1
- package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -1
- package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -1
- package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -1
- package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -1
- package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -1
- package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -1
- package/dist/plugin-sdk/telegram.cjs +1 -1
- package/dist/plugin-sdk/telegram.js +1 -1
- package/dist/plugin-sdk/test-utils.cjs +1 -1
- package/dist/plugin-sdk/test-utils.js +1 -1
- package/dist/plugin-sdk/tlon.cjs +1 -1
- package/dist/plugin-sdk/tlon.js +1 -1
- package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -1
- package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -1
- package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -1
- package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -1
- package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -1
- package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -1
- package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -1
- package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -1
- package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -1
- package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -1
- package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -1
- package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -1
- package/dist/plugin-sdk/twitch.cjs +1 -1
- package/dist/plugin-sdk/twitch.js +1 -1
- package/dist/plugin-sdk/utils-BJtJR72k.js +1 -1
- package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -1
- package/dist/plugin-sdk/voice-call.cjs +1 -1
- package/dist/plugin-sdk/voice-call.js +1 -1
- package/dist/plugin-sdk/web-B4A8zBP9.cjs +1 -1
- package/dist/plugin-sdk/web-BKKx3jqf.cjs +1 -1
- package/dist/plugin-sdk/web-BTBgpaEi.js +1 -1
- package/dist/plugin-sdk/web-BfjArU7g.js +1 -1
- package/dist/plugin-sdk/web-C7KhecaH.cjs +1 -1
- package/dist/plugin-sdk/web-CFMrBQv7.js +1 -1
- package/dist/plugin-sdk/web-CS0AvKLx.js +1 -1
- package/dist/plugin-sdk/web-EfgEjg15.cjs +1 -1
- package/dist/plugin-sdk/weixin.cjs +1 -1
- package/dist/plugin-sdk/weixin.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-6N2LIWVD.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BGEghean.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BP_fSzB9.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BSx6-Onq.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BZAMGDn8.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-BvZMduqd.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-CDUbwNdp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DNVIKnqz.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DTVbVkOo.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-DjMYqpSS.js +1 -1
- package/dist/plugin-sdk/whatsapp-actions-P1DVqKhD.cjs +1 -1
- package/dist/plugin-sdk/whatsapp-actions-shElOKKX.js +1 -1
- package/dist/plugin-sdk/whatsapp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp.js +1 -1
- package/dist/plugin-sdk/zalo.cjs +1 -1
- package/dist/plugin-sdk/zalo.js +1 -1
- package/dist/plugin-sdk/zalouser.cjs +1 -1
- package/dist/plugin-sdk/zalouser.js +1 -1
- package/dist/plugins-CYLrFT4h.js +1 -1
- package/dist/plugins-DNlgeTTc.js +1 -1
- package/dist/plugins-cli-BiV4FaGs.js +1 -1
- package/dist/plugins-cli-C0PLRxT0.js +1 -1
- package/dist/polls-BIVz6a4F.js +1 -1
- package/dist/polls-Bh5wc9-6.js +1 -1
- package/dist/polls-C_XSFz3d.js +1 -1
- package/dist/polls-DKJOFSzJ.js +1 -1
- package/dist/ports-Bjc9q__g.js +1 -1
- package/dist/ports-Di2_MOUb.js +1 -1
- package/dist/probe-auth-9RrZOStc.js +1 -1
- package/dist/probe-auth-Cg6SAov9.js +1 -1
- package/dist/profile-utils-CWmra1aY.js +1 -1
- package/dist/program-CI--7377.js +1 -1
- package/dist/program-context-CH9p6anW.js +1 -1
- package/dist/program-context-Cu8fVR-O.js +1 -1
- package/dist/progress-LNttnI-y.js +1 -1
- package/dist/progress-d1m2sqR1.js +1 -1
- package/dist/prompt-select-styled-CbTtKeIC.js +1 -1
- package/dist/prompt-select-styled-sYEl0gMg.js +1 -1
- package/dist/prompt-style-BThRSQJR.js +1 -1
- package/dist/prompt-style-CXKekIBY.js +1 -1
- package/dist/prompts-CMzglboN.js +1 -1
- package/dist/prompts-wv-lfVrJ.js +1 -1
- package/dist/provider-auth-helpers-C3OaF218.js +1 -1
- package/dist/provider-auth-helpers-CZyb7LUg.js +1 -1
- package/dist/provider-env-vars-D8p6Ohpj.js +1 -1
- package/dist/provider-env-vars-Dt0Q29Su.js +1 -1
- package/dist/proxy-env-BNhTHkd_.js +1 -1
- package/dist/proxy-env-DcmW_urA.js +1 -1
- package/dist/proxy-env-DrC3TIGh.js +1 -1
- package/dist/proxy-env-FJr5nlvs.js +1 -1
- package/dist/proxy-fetch-BADsUK4d.js +1 -1
- package/dist/proxy-fetch-BZ9O8Dvj.js +1 -1
- package/dist/proxy-fetch-DnjU1fEB.js +1 -1
- package/dist/proxy-fetch-gWETR3cl.js +1 -1
- package/dist/push-apns-kySzOiJr.js +1 -1
- package/dist/push-apns-tM6G9LLm.js +1 -1
- package/dist/pw-ai-B7YMA_4Q.js +1 -1
- package/dist/pw-ai-C7peCONw.js +1 -1
- package/dist/pw-ai-CojtT9WR.js +1 -1
- package/dist/pw-ai-DWJWFzTA.js +1 -1
- package/dist/qmd-manager-C_e04BNg.js +1 -1
- package/dist/qmd-manager-DSQ_mDCl.js +1 -1
- package/dist/qmd-manager-DcBYbt_V.js +1 -1
- package/dist/qmd-manager-NLI0R6kp.js +1 -1
- package/dist/qr-cli-DUR7oW0_.js +1 -1
- package/dist/qr-cli-kb3ygh9I.js +1 -1
- package/dist/query-expansion-0OxEb1Io.js +1 -1
- package/dist/query-expansion-BUUx_oWg.js +1 -1
- package/dist/query-expansion-r_iXkNzt.js +1 -1
- package/dist/reaction-level-DVPHL14p.js +1 -1
- package/dist/reaction-message-id-BEEe7X3D.js +1 -1
- package/dist/read-only-account-inspect-DEnPVHTo.js +1 -1
- package/dist/redact-3_CiXMY6.js +1 -1
- package/dist/redact-CnRxK70G.js +1 -1
- package/dist/register.agent-BwmE1VD-.js +1 -1
- package/dist/register.agent-D1hQi_68.js +1 -1
- package/dist/register.backup-8s5jgnHQ.js +1 -1
- package/dist/register.backup-CAiwLaIW.js +1 -1
- package/dist/register.configure-BsTw4XfK.js +1 -1
- package/dist/register.configure-DxR84Ot6.js +1 -1
- package/dist/register.maintenance-3nzWAo_a.js +1 -1
- package/dist/register.maintenance-DxKGQ9Jo.js +1 -1
- package/dist/register.message-Bk1pHVSK.js +1 -1
- package/dist/register.message-PcFtBR0-.js +1 -1
- package/dist/register.onboard-AWxbhU7j.js +1 -1
- package/dist/register.onboard-BTOZN8ro.js +1 -1
- package/dist/register.setup-B-e1qIbc.js +1 -1
- package/dist/register.setup-CweJJdt8.js +1 -1
- package/dist/register.status-health-sessions-B1R_nl6P.js +1 -1
- package/dist/register.status-health-sessions-CWNLXpAn.js +1 -1
- package/dist/register.subclis-C0VQ_HfZ.js +1 -1
- package/dist/registry-BptzrW8D.js +1 -1
- package/dist/registry-hFAtCSWG.js +1 -1
- package/dist/render-BXEUPIHe.js +1 -1
- package/dist/render-CBsnn-2A.js +1 -1
- package/dist/render-D8OWO2hT.js +1 -1
- package/dist/render-DrrPmnMI.js +1 -1
- package/dist/reply-r9KtzgpM.js +1 -1
- package/dist/restart-CTfuVGfA.js +1 -1
- package/dist/rpc-BQXfCyCw.js +1 -1
- package/dist/rpc-CcrILVsV.js +1 -1
- package/dist/run-main-CuQQyoU3.js +1 -1
- package/dist/runtime-BlsMYeaw.js +1 -1
- package/dist/runtime-DLxfCs7F.js +1 -1
- package/dist/runtime-guard-DFYBaYZS.js +1 -1
- package/dist/runtime-guard-DX2Ie4ri.js +1 -1
- package/dist/runtime-status-CqFBmdRd.js +1 -1
- package/dist/runtime-status-DszMjvJK.js +1 -1
- package/dist/runtime-web-tools-BWv0X5qp.js +1 -1
- package/dist/runtime-web-tools-CCIXUISf.js +1 -1
- package/dist/sandbox-cli-CxluKLFV.js +1 -1
- package/dist/sandbox-cli-xCX6FV4Z.js +1 -1
- package/dist/scan-paths-C13EseXp.js +1 -1
- package/dist/scan-paths-CWtvWW40.js +1 -1
- package/dist/search-manager-KMRzwyPH.js +1 -1
- package/dist/secret-file-C7JffiM_.js +1 -1
- package/dist/secret-file-D60EFEOe.js +1 -1
- package/dist/secret-file-DuWm26jS.js +1 -1
- package/dist/secrets-cli-Be6OBr6Q.js +1 -1
- package/dist/secrets-cli-DmDZiX17.js +1 -1
- package/dist/secure-random-D7JQgiK-.js +1 -1
- package/dist/security-cli-CllLwpQ-.js +1 -1
- package/dist/security-cli-DcA9keUK.js +1 -1
- package/dist/send-8rJCpsDu.js +1 -1
- package/dist/send-BJjoLBo3.js +1 -1
- package/dist/send-BOxuQt9L.js +1 -1
- package/dist/send-BPfl_1It.js +1 -1
- package/dist/send-BdS6jUBa.js +1 -1
- package/dist/send-BeZJ1zbp.js +1 -1
- package/dist/send-BkZ8dWQV2.js +1 -1
- package/dist/send-CDAeI9xB2.js +1 -1
- package/dist/send-CgeRzkWS.js +1 -1
- package/dist/send-CiTZ4p2t.js +1 -1
- package/dist/send-D0y-r_hg2.js +1 -1
- package/dist/send-DIw8ExHc.js +1 -1
- package/dist/send-DRm6AFp-.js +1 -1
- package/dist/send-DS5Quwb7.js +1 -1
- package/dist/send-DVmPgxm7.js +1 -1
- package/dist/send-Ds5sy22D.js +1 -1
- package/dist/send-DvGzdoKK.js +1 -1
- package/dist/send-OVet2uKx.js +1 -1
- package/dist/send-YPQFx-fV.js +1 -1
- package/dist/send-e2ppdA_R.js +1 -1
- package/dist/server-Dzqb5Tau.js +1 -1
- package/dist/server-node-events-B2irOUJ_.js +1 -1
- package/dist/server-node-events-DSr6P0VG.js +1 -1
- package/dist/server-w7sUBJEA.js +1 -1
- package/dist/service-BtB9epJk.js +1 -1
- package/dist/service-DZ9EbS15.js +1 -1
- package/dist/session-BYYOduc1.js +1 -1
- package/dist/session-B_qrXLsR.js +1 -1
- package/dist/session-Be0RV2V1.js +1 -1
- package/dist/session-bk3gFwO4.js +1 -1
- package/dist/session-cost-usage-BgqKixv0.js +1 -1
- package/dist/session-cost-usage-CHtVgnE8.js +1 -1
- package/dist/session-key-C7F_iqYg.js +1 -1
- package/dist/session-key-D3P0tf5P.js +1 -1
- package/dist/session-utils-CrR0wD3W.js +1 -1
- package/dist/sessions-BvTGb3rW.js +1 -1
- package/dist/shared-9x5sqYRb.js +1 -1
- package/dist/shared-BKWhOp64.js +1 -1
- package/dist/shared-BV-hfJ3h.js +1 -1
- package/dist/skill-commands-C59b8Yso.js +1 -1
- package/dist/skill-commands-CqIEajsA.js +1 -1
- package/dist/skill-commands-F5NFH0NR.js +1 -1
- package/dist/skill-commands-O39uSj-k.js +1 -1
- package/dist/skill-scanner-CUUF3Fvo.js +1 -1
- package/dist/skill-scanner-CkxXNioD.js +1 -1
- package/dist/skills-CKTicUKS.js +1 -1
- package/dist/skills-DHbOKEGc.js +1 -1
- package/dist/skills-cli-CZD1Ng18.js +1 -1
- package/dist/skills-cli-nj0w4fe0.js +1 -1
- package/dist/skills-install-D0I6c17J.js +1 -1
- package/dist/skills-install-XHpqMBWl.js +1 -1
- package/dist/skills-status-BWIugRCz.js +1 -1
- package/dist/skills-status-DswSl5aD.js +1 -1
- package/dist/sqlite-CILF3z9U.js +1 -1
- package/dist/stagger-DmFYysrJ.js +1 -1
- package/dist/stagger-DxzgG2jd.js +1 -1
- package/dist/status-DKB9gdSp.js +1 -1
- package/dist/status-DgRrUxyg.js +1 -1
- package/dist/status-YZD9V9xi.js +1 -1
- package/dist/status-isxcm8Xz.js +1 -1
- package/dist/status.update-B_8Gumuc.js +1 -1
- package/dist/status.update-Cf2e-l9d.js +1 -1
- package/dist/string-normalization-BrUPaXaM.js +1 -1
- package/dist/string-normalization-DJT5zuUF.js +1 -1
- package/dist/subsystem-BLbY429l.js +1 -1
- package/dist/subsystem-Bc2XrjUz.js +1 -1
- package/dist/subsystem-C5XF2Fy5.js +1 -1
- package/dist/system-cli-CRs3TOTw.js +1 -1
- package/dist/system-cli-GyoLZQpj.js +1 -1
- package/dist/system-run-command-DCzdgYyb.js +1 -1
- package/dist/system-run-command-FCk9hSMO.js +1 -1
- package/dist/systemd-D7odsu4K.js +1 -1
- package/dist/systemd-DbevZh65.js +1 -1
- package/dist/systemd-hints-lXpMy-kY.js +1 -1
- package/dist/systemd-hints-x1lJAOxS.js +1 -1
- package/dist/systemd-linger-C2MJD6KG.js +1 -1
- package/dist/systemd-linger-cWKbFNpu.js +1 -1
- package/dist/table-CR7TFMew.js +1 -1
- package/dist/table-CY440fI1.js +1 -1
- package/dist/tables-3Rjt6nwZ.js +1 -1
- package/dist/tables-B9wFKQvT.js +1 -1
- package/dist/tables-D1pcaye7.js +1 -1
- package/dist/tables-h7y1Jhf4.js +1 -1
- package/dist/target-errors-CUQcIty1.js +1 -1
- package/dist/target-errors-D55sWZ4E.js +1 -1
- package/dist/target-errors-DH0aw-m5.js +1 -1
- package/dist/target-errors-LuLROpta.js +1 -1
- package/dist/targets-4EaxWBal.js +1 -1
- package/dist/targets-BJTo7bqu.js +1 -1
- package/dist/targets-BYVMrXDf.js +1 -1
- package/dist/targets-Bq6rS6-Z.js +1 -1
- package/dist/targets-CL5fYQi7.js +1 -1
- package/dist/targets-fozeWOOg.js +1 -1
- package/dist/targets-m_41k_Mv.js +1 -1
- package/dist/telegram/audit.js +1 -1
- package/dist/text-format-CvrvBBre.js +1 -1
- package/dist/text-format-DEWK6oCT.js +1 -1
- package/dist/token-DnTmiyJu.js +1 -1
- package/dist/tokens-B2fq-rL6.js +1 -1
- package/dist/tokens-CL2fSjGl.js +1 -1
- package/dist/tokens-DRM8vzJx.js +1 -1
- package/dist/tokens-XGbQGn67.js +1 -1
- package/dist/tool-display-DJDtttQg.js +1 -1
- package/dist/tool-display-DjuSUUbH.js +1 -1
- package/dist/tui-CqEb9hrT.js +1 -1
- package/dist/tui-DdZ8SpNW.js +1 -1
- package/dist/tui-cli-Bj0okLCf.js +1 -1
- package/dist/tui-cli-CYvBshyB.js +1 -1
- package/dist/types.secrets-C-5U96pc.js +1 -1
- package/dist/types.secrets-D4tbc3Wq.js +1 -1
- package/dist/update-BGrxUIyz.js +1 -1
- package/dist/update-CwTy5DPl.js +1 -1
- package/dist/update-cli-lciKU8_L.js +1 -1
- package/dist/update-cli-xb0jHjE8.js +1 -1
- package/dist/update-runner-8Hto6X-M.js +1 -1
- package/dist/update-runner-LVJcy569.js +1 -1
- package/dist/usage-format-BWD8FJFL.js +1 -1
- package/dist/usage-format-yPwal8Iz.js +1 -1
- package/dist/utils-CGdo13HV.js +1 -1
- package/dist/utils-D3t-vPka.js +1 -1
- package/dist/utils-R-mFyVJi.js +1 -1
- package/dist/utils-UGOV_184.js +1 -1
- package/dist/version-q3SkUw2K.js +1 -1
- package/dist/warning-filter.js +1 -1
- package/dist/web-Bfz_qlYe.js +1 -1
- package/dist/web-ClbIohhf.js +1 -1
- package/dist/webhooks-cli-DKfKihmJ.js +1 -1
- package/dist/webhooks-cli-LU2ADRQp.js +1 -1
- package/dist/whatsapp-actions-1TJ8dlv0.js +1 -1
- package/dist/whatsapp-actions-CuDiuPGa.js +1 -1
- package/dist/whatsapp-actions-DkLDOIk1.js +1 -1
- package/dist/whatsapp-actions-EnduXWui.js +1 -1
- package/dist/widearea-dns-BDx7vkV2.js +1 -1
- package/dist/widearea-dns-BFjqKXu_.js +1 -1
- package/dist/windows-spawn-7oINn5ao.js +1 -1
- package/dist/windows-spawn-AB7ItGAE.js +1 -1
- package/dist/with-timeout-WveKxvFV.js +1 -1
- package/dist/with-timeout-c1CzdShT.js +1 -1
- package/dist/workspace-B0ZQeHXg.js +1 -1
- package/dist/workspace-C45T1Cxg.js +1 -1
- package/dist/workspace-dirs-A8Vib9_B.js +1 -1
- package/dist/workspace-dirs-BhF1Dzxt.js +1 -1
- package/dist/workspace-xNEpaJvu.js +1 -1
- package/dist/wsl-DHxB2Ew_.js +1 -1
- package/dist/wsl-Ok7GaSJ6.js +1 -1
- package/extensions/memory-core/index.js +1 -0
- package/extensions/memory-core/package.json +1 -1
- package/extensions/openclaw-telemetry-galileo-embedded/index.js +4 -0
- package/extensions/openclaw-telemetry-galileo-embedded/package.json +2 -2
- package/extensions/openclaw-telemetry-galileo-embedded/src/service.js +13 -0
- package/extensions/openclaw-weixin/index.js +1 -0
- package/extensions/openclaw-weixin/package.json +3 -3
- package/extensions/openclaw-weixin/src/api/api.js +1 -0
- package/extensions/openclaw-weixin/src/api/config-cache.js +1 -0
- package/extensions/openclaw-weixin/src/api/session-guard.js +1 -0
- package/extensions/openclaw-weixin/src/api/types.js +1 -0
- package/extensions/openclaw-weixin/src/auth/accounts.js +1 -0
- package/extensions/openclaw-weixin/src/auth/login-qr.js +11 -0
- package/extensions/openclaw-weixin/src/auth/pairing.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/aes-ecb.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/cdn-upload.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/cdn-url.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/pic-decrypt.js +1 -0
- package/extensions/openclaw-weixin/src/cdn/upload.js +1 -0
- package/extensions/openclaw-weixin/src/channel.js +6 -0
- package/extensions/openclaw-weixin/src/config/config-schema.js +1 -0
- package/extensions/openclaw-weixin/src/log-upload.js +4 -0
- package/extensions/openclaw-weixin/src/media/media-download.js +1 -0
- package/extensions/openclaw-weixin/src/media/mime.js +1 -0
- package/extensions/openclaw-weixin/src/media/silk-transcode.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/debug-mode.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/error-notice.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/inbound.js +2 -0
- package/extensions/openclaw-weixin/src/messaging/process-message.js +3 -0
- package/extensions/openclaw-weixin/src/messaging/send-media.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/send.js +1 -0
- package/extensions/openclaw-weixin/src/messaging/slash-commands.js +2 -0
- package/extensions/openclaw-weixin/src/monitor/monitor.js +1 -0
- package/extensions/openclaw-weixin/src/runtime.js +1 -0
- package/extensions/openclaw-weixin/src/storage/state-dir.js +1 -0
- package/extensions/openclaw-weixin/src/storage/sync-buf.js +1 -0
- package/extensions/openclaw-weixin/src/util/logger.js +2 -0
- package/extensions/openclaw-weixin/src/util/random.js +1 -0
- package/extensions/openclaw-weixin/src/util/redact.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/index.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/package.json +1 -1
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.js +1 -0
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.js +1 -0
- package/package.json +1 -1
- package/preset-config.json +22 -0
- package/extensions/memory-core/index.ts +0 -38
- package/extensions/openclaw-telemetry-galileo-embedded/index.ts +0 -663
- package/extensions/openclaw-telemetry-galileo-embedded/src/service.ts +0 -1590
- package/extensions/openclaw-weixin/index.ts +0 -26
- package/extensions/openclaw-weixin/src/api/api.ts +0 -238
- package/extensions/openclaw-weixin/src/api/config-cache.ts +0 -79
- package/extensions/openclaw-weixin/src/api/session-guard.ts +0 -58
- package/extensions/openclaw-weixin/src/api/types.ts +0 -222
- package/extensions/openclaw-weixin/src/auth/accounts.ts +0 -363
- package/extensions/openclaw-weixin/src/auth/login-qr.ts +0 -344
- package/extensions/openclaw-weixin/src/auth/pairing.ts +0 -120
- package/extensions/openclaw-weixin/src/cdn/aes-ecb.ts +0 -21
- package/extensions/openclaw-weixin/src/cdn/cdn-upload.ts +0 -75
- package/extensions/openclaw-weixin/src/cdn/cdn-url.ts +0 -17
- package/extensions/openclaw-weixin/src/cdn/pic-decrypt.ts +0 -85
- package/extensions/openclaw-weixin/src/cdn/upload.ts +0 -154
- package/extensions/openclaw-weixin/src/channel.ts +0 -483
- package/extensions/openclaw-weixin/src/config/config-schema.ts +0 -21
- package/extensions/openclaw-weixin/src/log-upload.ts +0 -129
- package/extensions/openclaw-weixin/src/media/media-download.ts +0 -138
- package/extensions/openclaw-weixin/src/media/mime.ts +0 -76
- package/extensions/openclaw-weixin/src/media/silk-transcode.ts +0 -74
- package/extensions/openclaw-weixin/src/messaging/debug-mode.ts +0 -68
- package/extensions/openclaw-weixin/src/messaging/error-notice.ts +0 -36
- package/extensions/openclaw-weixin/src/messaging/inbound.ts +0 -283
- package/extensions/openclaw-weixin/src/messaging/process-message.ts +0 -488
- package/extensions/openclaw-weixin/src/messaging/send-media.ts +0 -76
- package/extensions/openclaw-weixin/src/messaging/send.ts +0 -267
- package/extensions/openclaw-weixin/src/messaging/slash-commands.ts +0 -105
- package/extensions/openclaw-weixin/src/monitor/monitor.ts +0 -225
- package/extensions/openclaw-weixin/src/runtime.ts +0 -67
- package/extensions/openclaw-weixin/src/storage/state-dir.ts +0 -11
- package/extensions/openclaw-weixin/src/storage/sync-buf.ts +0 -79
- package/extensions/openclaw-weixin/src/util/logger.ts +0 -146
- package/extensions/openclaw-weixin/src/util/random.ts +0 -17
- package/extensions/openclaw-weixin/src/util/redact.ts +0 -57
- package/extensions/openclaw-weixin/src/vendor.d.ts +0 -21
- package/extensions/qbagent-mcp-server-x5uselocal-node/index.ts +0 -140
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.ts +0 -157
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.ts +0 -135
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.ts +0 -205
- package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.ts +0 -351
|
@@ -4,4 +4,4 @@ const e=require(`./paths-Bcdg3ma0.cjs`),t=require(`./paths-Dd7r1qlB.cjs`),n=requ
|
|
|
4
4
|
`),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=We(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=He(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?Ue(a).length+1:0,d=a?1:0,f=n-o,p=r-d,m=f>0?f:n,h=p>0?p:r,g=s.length>0?s.length+1:0,_=Ge(e,Math.max(1,m-g),{preserveWhitespace:i});for(let e=0;e<_.length;e++){let t=_[e],n=e>0,r=`${n?``:s.length>0?`
|
|
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=We(s,l);e.trim().length&&o.push(e)}return Je(e,o)}function qe(e,t){if((t.chunkMode??`length`)!==`newline`)return Ke(e,t);let n=o.d(e,Math.max(1,Math.floor(t.maxChars??ze)),`newline`),r=[];for(let e of n){let n=Ke(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function Je(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 Ye(e){let t=n.hr(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 Xe(e,t){return t??new _.RequestClient(e)}function Ze(e){let r=t.zt(e.accountId),i=n.fr(e.cfg,r),a=e.cfg.channels?.discord?.enabled!==!1,o=i.enabled!==!1;return{accountId:r,enabled:a&&o,name:i.name?.trim()||void 0,token:``,tokenSource:`none`,config:i}}function k(e,t){let r=e.cfg??t??n.Oa(),i=n.hr(e.token,`channels.discord.token`),a=i?Ze({cfg:r,accountId:e.accountId}):n.pr({cfg:r,accountId:e.accountId}),o=i??Ye({accountId:a.accountId,fallbackToken:a.token});return{token:o,rest:Xe(o,e.rest),account:a}}function A(e,t){let{token:n,rest:r,account:i}=k(e,e.cfg??t);return{token:n,rest:r,request:l.r({retry:e.retry,configRetry:i.config.retry,verbose:e.verbose})}}function j(e){return k(e,e.cfg).rest}const Qe=Object.entries(g.PermissionFlagsBits).filter(([,e])=>typeof e==`bigint`),$e=Qe.reduce((e,[,t])=>e|t,0n),et=g.PermissionFlagsBits.Administrator;function M(e,t){return t?e|BigInt(t):e}function N(e,t){return t?e&~BigInt(t):e}function tt(e){return Qe.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function nt(e){return(e&et)===et}function rt(e,t){return(e&t)===t}function it(e){return e===g.ChannelType.GuildNewsThread||e===g.ChannelType.GuildPublicThread||e===g.ChannelType.GuildPrivateThread}async function at(e){let t=await e.get(g.Routes.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function ot(e,t,n={}){let r=j(n);try{let[n,i]=await Promise.all([r.get(g.Routes.guild(e)),r.get(g.Routes.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=M(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=M(s,t.permissions))}return s}catch{return null}}async function st(e,t,n,r,i={}){let a=await ot(e,t,i);return a===null?!1:nt(a)?!0:r(a,n)}async function ct(e,t,n,r={}){return await st(e,t,n,(e,t)=>t.some(t=>rt(e,t)),r)}async function lt(e,t={}){let n=j(t),r=await n.get(g.Routes.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 at(n),[s,c]=await Promise.all([n.get(g.Routes.guild(a)),n.get(g.Routes.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=M(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=M(d,t.permissions))}if(nt(d))return{channelId:e,guildId:a,permissions:tt($e),raw:$e.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=N(f,e.deny??`0`),f=M(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=N(f,e.deny??`0`),f=M(f,e.allow??`0`));for(let e of p)e.id===o&&(f=N(f,e.deny??`0`),f=M(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:tt(f),raw:f.toString(),isDm:!1,channelType:i}}var P=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const ut=/#\d{4}$/,F=new Map;function dt(e){return t.zt(e??`default`)||`default`}function ft(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function pt(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function mt(e){let t=dt(e),n=F.get(t);if(n)return n;let r=new Map;return F.set(t,r),r}function ht(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 gt(e){let t=ft(e.userId);if(!t)return;let n=mt(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=pt(r);if(!e)continue;ht(n,e,t);let i=e.replace(ut,``);i&&i!==e&&ht(n,i,t)}}function _t(e){let t=F.get(dt(e.accountId));if(!t)return;let n=pt(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(ut,``);if(!(!i||i===n))return t.get(i)}function vt(e){return e?.trim().toLowerCase()??``}function yt(e){return e.bot?0:1}function bt(e){let t=n.hr(n.pr({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:vt(e.query)}:null}async function xt(e){return(await E(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function St(e){let t=bt(e);if(!t)return[];let{token:n,query:r}=t,i=await xt(n),a=[];for(let t of i){let i=await E(`/guilds/${t.id}/channels`,n);for(let t of i){let n=t.name?.trim();if(n&&!(r&&!O(n).includes(O(r)))&&(a.push({kind:`group`,id:`channel:${t.id}`,name:n,handle:`#${n}`,raw:t}),typeof e.limit==`number`&&e.limit>0&&a.length>=e.limit))return a}}return a}async function Ct(e){let t=bt(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await xt(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 E(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;gt({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:yt(n),raw:t}),a.length>=o)return a}}return a}function I(e,t={}){let n=e.trim();if(!n)return;let r=i.r({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 i.t(t.defaultKind,n,n);throw Error(t.ambiguousMessage??`Ambiguous Discord recipient "${n}". Use "user:${n}" for DMs or "channel:${n}" for channel messages.`)}return i.t(`channel`,n,n)}function wt(e){return i.i({platform:`Discord`,target:I(e,{defaultKind:`channel`}),kind:`channel`})}async function Tt(e,t,n={}){let r=e.trim();if(!r)return;let a=Ot(r),o=Dt(r,n)||a,s=Et(r,n);if(s&&s.kind!==`channel`&&!a)return s;if(!o)return s??I(r,n);try{let e=(await Ct({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return gt({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),i.t(`user`,n,r)}}catch{}return I(r,n)}function Et(e,t){try{return I(e,t)}catch{return}}function Dt(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function Ot(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 L(e,t,r){let i=r??n.Oa(),a=n.pr({cfg:i,accountId:t}),o=e.trim(),s={ambiguousMessage:`Ambiguous Discord recipient "${o}". Use "user:${o}" for DMs or "channel:${o}" for channel messages.`},c=await Tt(e,{cfg:i,accountId:a.accountId},s);if(c)return{kind:c.kind,id:c.id};let l=I(e,s);if(!l)throw Error(`Recipient is required for Discord sends`);return{kind:l.kind,id:l.id}}function At(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 R(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function jt(e){let t=c.n(e,{maxOptions:10}),n=c.t(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:v.PollLayoutType.Default}}function Mt(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 z(e,t){if(e instanceof P)return e;let n=Mt(e);if(n===50007)return new P(`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 lt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];it(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new P(`${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 B(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(g.Routes.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 Nt(e,t){try{return(await e.get(g.Routes.channel(t)))?.type}catch{return}}const V=4096;function Pt(e,t={}){if(!e)return[];let n=qe(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function Ft(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function It(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function Lt(e){if(e?.length)return e.map(e=>e instanceof _.Embed?e:new _.Embed(e))}function Rt(e){if(!(!e.embeds||!e.isFirst))return Lt(e.embeds)}function zt(e){let t={},n=Ft(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 H(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Bt(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function U(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?V:void 0,f=Pt(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=H({...(0,_.serializePayload)(zt({text:n,components:It({components:o,text:n,isFirst:r}),embeds:Rt({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(g.Routes.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 Vt(e,t,n,r,i,a,c,l,u,d,f,p,m){let h=await o.a(r,s.t({maxBytes:a,mediaLocalRoots:i})),v=n?Pt(n,{maxLinesPerMessage:u,chunkMode:p}):[],y=v[0]??``,b=c?{message_id:c,fail_if_not_exists:!1}:void 0,x=m?V:void 0,S=Bt(h.buffer),C=zt({text:y,components:It({components:d,text:y,isFirst:!0}),embeds:Rt({embeds:f,isFirst:!0}),flags:x,files:[{data:S,name:h.fileName??`upload`}]}),w=await l(()=>e.post(g.Routes.channelMessages(t),{body:H({...(0,_.serializePayload)(C),...b?{message_reference:b}:{}})}),`media`);for(let n of v.slice(1))n.trim()&&await U(e,t,n,c,l,u,void 0,void 0,p,m);return w}function Ht(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function Ut(e){return Ht(e)}async function Wt(e,t={}){let n=j(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(g.Routes.guildChannels(e.guildId),{body:r})}async function Gt(e,t={}){let n=j(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(g.Routes.channel(e.channelId),{body:r})}async function Kt(e,t={}){return await j(t).delete(g.Routes.channel(e)),{ok:!0,channelId:e}}async function qt(e,t={}){let n=j(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(g.Routes.guildChannels(e.guildId),{body:r}),{ok:!0}}async function Jt(e,t={}){let n=j(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 Yt(e,t,n={}){return await j(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Xt(e,t={}){return await j(t).get(g.Routes.guildEmojis(e))}async function Zt(e,t={}){let n=j(t),r=await o.o(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`)}`,s=(e.roleIds??[]).map(e=>e.trim()).filter(Boolean);return await n.post(g.Routes.guildEmojis(e.guildId),{body:{name:R(e.name,`Emoji name`),image:a,roles:s.length?s:void 0}})}async function Qt(e,t={}){let n=j(t),r=await o.o(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(g.Routes.guildStickers(e.guildId),{body:{name:R(e.name,`Sticker name`),description:R(e.description,`Sticker description`),tags:R(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function $t(e,t,n={}){return await j(n).get(g.Routes.guildMember(e,t))}async function en(e,t={}){return await j(t).get(g.Routes.guildRoles(e))}async function tn(e,t={}){return await j(t).put(g.Routes.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function nn(e,t={}){return await j(t).delete(g.Routes.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function rn(e,t={}){return await j(t).get(g.Routes.channel(e))}async function an(e,t={}){return await j(t).get(g.Routes.guildChannels(e))}async function on(e,t,n={}){return await j(n).get(g.Routes.guildVoiceState(e,t))}async function sn(e,t={}){return await j(t).get(g.Routes.guildScheduledEvents(e))}async function cn(e,t,n={}){return await j(n).post(g.Routes.guildScheduledEvents(e),{body:t})}async function ln(e,t={}){let n=j(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(g.Routes.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 un(e,t={}){return await j(t).delete(g.Routes.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function dn(e,t={}){let n=j(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(g.Routes.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 fn(e,t={},n={}){let r=j(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(g.Routes.channelMessages(e),a)}async function pn(e,t,n={}){return await j(n).get(g.Routes.channelMessage(e,t))}async function mn(e,t,n,r={}){return await j(r).patch(g.Routes.channelMessage(e,t),{body:{content:n.content}})}async function hn(e,t,n={}){return await j(n).delete(g.Routes.channelMessage(e,t)),{ok:!0}}async function gn(e,t,n={}){return await j(n).put(g.Routes.channelPin(e,t)),{ok:!0}}async function _n(e,t,n={}){return await j(n).delete(g.Routes.channelPin(e,t)),{ok:!0}}async function vn(e,t={}){return await j(t).get(g.Routes.channelPins(e))}async function yn(e,t,n={}){let r=j(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(g.Routes.channel(e)))?.type}catch{a=void 0}let o=a===g.ChannelType.GuildForum||a===g.ChannelType.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=g.ChannelType.PublicThread);let s=t.messageId?g.Routes.threads(e,t.messageId):g.Routes.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(g.Routes.channelMessages(c.id),{body:{content:t.content}}),c}async function bn(e,t={}){let n=j(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(g.Routes.channelThreads(e.channelId,`public`),t)}return await n.get(g.Routes.guildActiveThreads(e.guildId))}async function xn(e,t={}){let n=j(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()}`)}async function Sn(e){if(e)try{await m.default.unlink(e)}catch{}}const Cn=/```[\s\S]*?```|`[^`\n]*`/g,wn=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,Tn=new Set([`everyone`,`here`]);function En(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function Dn(e){let t=e.userId==null?null:En(e.userId),n=e.roleId==null?null:En(e.roleId),r=e.channelId==null?null:En(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 On(e,t){return e.includes(`@`)?e.replace(wn,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(Tn.has(a))return e;let o=_t({accountId:t,handle:i});return o?`${String(n??``)}${Dn({userId:o})}`:e}):e}function W(e,t){if(!e.includes(`@`))return e;let n=``,r=0;Cn.lastIndex=0;for(let i of e.matchAll(Cn)){let a=i.index??0;n+=On(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=On(e.slice(r),t.accountId),n}const kn=(0,p.promisify)(f.execFile);function An(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function jn(e,t){let{stdout:n}=await kn(`ffprobe`,e,An(1e4,t));return n.toString()}async function Mn(e,t){let{stdout:n}=await kn(`ffmpeg`,e,An(45e3,t));return n.toString()}function Nn(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function Pn(e){let[t,n]=Nn(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const Fn=8192;async function In(e){try{let t=await jn([`-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 Ln(e){try{return await Rn(e)}catch{return zn()}}async function Rn(e){let t=r.Z(),n=d.default.join(t,`waveform-${h.default.randomUUID()}.raw`);try{await Mn([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,n]);let t=await m.default.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 Sn(n)}}function zn(){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 Bn(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(d.default.extname(e).toLowerCase()===`.ogg`)try{let{codec:t,sampleRateHz:n}=Pn(await jn([`-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=r.Z(),i=d.default.join(n,`voice-${h.default.randomUUID()}.ogg`);return await Mn([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,cleanup:!0}}async function Vn(e){let[t,n]=await Promise.all([In(e),Ln(e)]);return{durationSecs:t,waveform:n}}async function Hn(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 _.RateLimitError(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?Fn|4096:Fn,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 Un(e){for(let t of e.chunks)await U(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function Wn(e){return(e.split(`
|
|
7
|
-
`).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Gn(e){return e===g.ChannelType.GuildForum||e===g.ChannelType.GuildMedia}function G(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Kn(e,t){let r=t.cfg??n.Oa(),{rest:i,request:a}=A(t,r),{channelId:o}=await B(i,await L(e,t.accountId,r),a);return{rest:i,request:a,channelId:o}}async function qn(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),s=o.s({cfg:i,channel:`discord`,accountId:a.accountId}),c=o.m(i,`discord`,a.accountId),d=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,f=u.t(t??``,s),p=W(f,{accountId:a.accountId}),{token:m,rest:h,request:v}=A(r,i),{channelId:y}=await B(h,await L(e,r.accountId,i),v);if(Gn(await Nt(h,y))){let e=Wn(f),t=Pt(p,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c}),n=t[0]?.trim()?t[0]:e,i=zt({text:n,components:It({components:r.components,text:n,isFirst:!0}),embeds:Rt({embeds:r.embeds,isFirst:!0}),flags:r.silent?4096:void 0}),o;try{o=await v(()=>h.post(g.Routes.threads(y),{body:{name:e,message:H((0,_.serializePayload)(i))}}),`forum-thread`)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}let s=o.id,u=o.message?.id??s,b=o.message?.channel_id??s,x=t.slice(1);try{if(r.mediaUrl){let[e,...t]=x;await Vt(h,s,e??``,r.mediaUrl,r.mediaLocalRoots,d,void 0,v,a.config.maxLinesPerMessage,void 0,void 0,c,r.silent),await Un({rest:h,threadId:s,chunks:t,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}else await Un({rest:h,threadId:s,chunks:x,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}catch(e){throw await z(e,{channelId:s,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G({id:u,channel_id:b},y)}let b;try{b=r.mediaUrl?await Vt(h,y,p,r.mediaUrl,r.mediaLocalRoots,d,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent):await U(h,y,p,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G(b,y)}function Jn(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function Yn(e,t){let r=t.webhookId.trim(),i=t.webhookToken.trim();if(!r||!i)throw Error(`Discord webhook id/token are required`);let a=W(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,s=o?{message_id:o,fail_if_not_exists:!1}:void 0,c=await fetch(Jn({webhookId:r,webhookToken:i,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:a,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{l.n({channel:`discord`,accountId:n.pr({cfg:t.cfg??n.Oa(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Xn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(o,{accountId:n.accountId}):void 0,c=At(t);return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Zn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(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?V:void 0;return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Qn(e){let n=await o.o(e,t.y(`audio`)),i=n.fileName?d.default.extname(n.fileName):``,a=n.contentType?t.d(n.contentType):``,s=i||a||`.bin`,c=r.Z(),l=d.default.join(c,`voice-src-${h.default.randomUUID()}${s}`);return await m.default.writeFile(l,n.buffer,{mode:384}),{filePath:l}}async function $n(e,t,r={}){let{filePath:i}=await Qn(t),a=null,o=!1,s,c,u;try{let t=r.cfg??n.Oa(),d=n.pr({cfg:t,accountId:r.accountId}),f=A(r,t);s=f.token,c=f.rest;let p=f.request,h=await L(e,r.accountId,t);u=(await B(c,h,p)).channelId;let g=await Bn(i);a=g.path,o=g.cleanup;let _=await Vn(a),v=await m.default.readFile(a),y=await Hn(c,u,v,_,r.replyTo,p,r.silent,s);return l.n({channel:`discord`,accountId:d.accountId,direction:`outbound`}),G(y,u)}catch(e){throw u&&c&&s?await z(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await Sn(o?a:null),await Sn(i)}}const K=new Map,q=new Map;function er(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function tr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function nr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);K.set(r.id,i)}for(let r of e.modals){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}}function rr(e){let t=K.get(e.id);return t?er(t,Date.now())?(K.delete(e.id),null):(e.consume!==!1&&K.delete(e.id),t):null}function ir(e){let t=q.get(e.id);return t?er(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}const ar=`attachment://`,or=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function J(e){return`${e}${h.default.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 lr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${ar}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${ar}${r}`}function ur(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${ar}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function dr(e){switch((e??`primary`).toLowerCase()){case`secondary`:return g.ButtonStyle.Secondary;case`success`:return g.ButtonStyle.Success;case`danger`:return g.ButtonStyle.Danger;case`link`:return g.ButtonStyle.Link;default:return g.ButtonStyle.Primary}}function fr(e){return e===`paragraph`?g.TextInputStyle.Paragraph:g.TextInputStyle.Short}function pr(e){let t=e.trim().toLowerCase();return or.get(t)??t}function mr(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 hr(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 gr(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:mr(n.options,`${t}.options`)}}function _r(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=mr(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 vr(e,t){let n=Y(e,t);switch(pr(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:hr(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)=>hr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?gr(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:lr(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 yr(e){if(e==null)return null;let t=Y(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>vr(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)=>_r(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 br(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function xr(e){return`ocmodal:mid=${e}`}function Sr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function Cr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function wr(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function Tr(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function Er(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function Dr(e,t){return t&&t.length>0?t.map(e=>new _.TextDisplay(e)):e?[new _.TextDisplay(e)]:[]}function $(e){let t=dr(e.spec.style);if(t===g.ButtonStyle.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends _.LinkButton{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??J(`btn_`),r=br({componentId:n,modalId:e.modalId});class i extends _.Button{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 Or(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??J(`sel_`),r=br({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends _.StringSelectMenu{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 _.UserSelectMenu{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 _.RoleSelectMenu{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 _.MentionableSelectMenu{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 _.ChannelSelectMenu{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 kr(e){return e instanceof _.StringSelectMenu||e instanceof _.UserSelectMenu||e instanceof _.RoleSelectMenu||e instanceof _.MentionableSelectMenu||e instanceof _.ChannelSelectMenu}function Ar(e){if(e.type===`text`){class t extends _.TextInput{constructor(...t){super(...t),this.customId=e.id,this.style=fr(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends _.StringSelectMenu{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends _.RoleSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends _.UserSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends _.CheckboxGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends _.RadioGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function jr(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 _.TextDisplay(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new _.TextDisplay(t.text));continue}if(t.type===`section`){let e=Dr(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 _.Thumbnail(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=$({spec:t.accessory.button});n=e,r&&a(r)}i.push(new _.Section(e,n));continue}if(t.type===`separator`){i.push(new _.Separator({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new _.MediaGallery(t.items));continue}if(t.type===`file`){i.push(new _.File(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}=$({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=Or({spec:t.select});e.push(n),a(r)}i.push(new _.Row(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}=$({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 _.Row){let e=c,t=e.components.some(e=>kr(e));e.components.length<5&&!t?e.addComponent(o):i.push(new _.Row([o]))}else i.push(new _.Row([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new _.Container(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Mr(e){return e.some(e=>e.isV2)?g.MessageFlags.IsComponentsV2:void 0}var Nr=class extends _.Modal{constructor(e){super(),this.customIdParser=Er,this.title=e.title,this.customId=xr(e.modalId),this.components=e.fields.map(e=>{let t=Ar(e);class n extends _.Label{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Pr(e){return new Nr({modalId:e.id,title:e.title,fields:e.fields})}function Fr(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Ir=new Set([g.ChannelType.GuildForum,g.ChannelType.GuildMedia]);function Lr(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ur(n.file));return t}async function Rr(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),{token:s,rest:c,request:u}=A(r,i),{channelId:d}=await B(c,await L(e,r.accountId,i),u),f=await Nt(c,d);if(f&&Ir.has(f))throw Error(`Discord components are not supported in forum-style channels`);let p=jr({spec:t,sessionKey:r.sessionKey,agentId:r.agentId,accountId:a.accountId}),m=Mr(p.components),h=r.silent?(m??0)|V:m??void 0,v=r.replyTo?{message_id:r.replyTo,fail_if_not_exists:!1}:void 0,y=Lr(t),b=[...new Set(y)];if(b.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let x=b[0],S;if(r.mediaUrl){let e=await o.a(r.mediaUrl,{localRoots:r.mediaLocalRoots}),t=r.filename?.trim()||e.fileName||`upload`;if(x&&x!==t)throw Error(`Component file block expects attachment "${x}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);S=[{data:Bt(e.buffer),name:t}]}else if(x)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let C=H({...(0,_.serializePayload)({components:p.components,...h?{flags:h}:{},...S?{files:S}:{}}),...v?{message_reference:v}:{}}),w;try{w=await u(()=>c.post(g.Routes.channelMessages(d),{body:C}),`components`)}catch(e){throw await z(e,{channelId:d,rest:c,token:s,hasMedia:!!S?.length})}return nr({entries:p.entries,modals:p.modals,messageId:w.id}),l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:w.id??`unknown`,channelId:w.channel_id??d}}async function zr(e,t,r,i={}){let{rest:a,request:o}=A(i,i.cfg??n.Oa()),s=kt(r);return await o(()=>a.put(g.Routes.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function Br(e,t,r,i={}){let{rest:a}=A(i,i.cfg??n.Oa()),o=kt(r);return await a.delete(g.Routes.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function Vr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=await i.get(g.Routes.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=Ht(e.emoji);t&&o.add(t)}if(o.size===0)return{ok:!0,removed:[]};let s=[];return await Promise.allSettled(Array.from(o,n=>(s.push(n),i.delete(g.Routes.channelMessageOwnReaction(e,t,kt(n)))))),{ok:!0,removed:s}}async function Hr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=(await i.get(g.Routes.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof r.limit==`number`&&Number.isFinite(r.limit)?Math.min(Math.max(Math.floor(r.limit),1),100):100,s=[];for(let n of a){let r=Ht(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(g.Routes.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Ut(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 s}Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,`At`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,`Ct`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,`Dt`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`Et`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,`Ft`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return ln}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,`It`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,`Lt`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,`Mt`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,`Nt`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,`Ot`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,`Pt`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,`Rt`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,`St`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,`Tt`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return qt}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Xn}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Er}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return yr}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Br}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`jt`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,`kt`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Tr}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return zr}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Hr}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Cr}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,`wt`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,`xt`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return an}});
|
|
7
|
+
`).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Gn(e){return e===g.ChannelType.GuildForum||e===g.ChannelType.GuildMedia}function G(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Kn(e,t){let r=t.cfg??n.Oa(),{rest:i,request:a}=A(t,r),{channelId:o}=await B(i,await L(e,t.accountId,r),a);return{rest:i,request:a,channelId:o}}async function qn(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),s=o.s({cfg:i,channel:`discord`,accountId:a.accountId}),c=o.m(i,`discord`,a.accountId),d=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,f=u.t(t??``,s),p=W(f,{accountId:a.accountId}),{token:m,rest:h,request:v}=A(r,i),{channelId:y}=await B(h,await L(e,r.accountId,i),v);if(Gn(await Nt(h,y))){let e=Wn(f),t=Pt(p,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c}),n=t[0]?.trim()?t[0]:e,i=zt({text:n,components:It({components:r.components,text:n,isFirst:!0}),embeds:Rt({embeds:r.embeds,isFirst:!0}),flags:r.silent?4096:void 0}),o;try{o=await v(()=>h.post(g.Routes.threads(y),{body:{name:e,message:H((0,_.serializePayload)(i))}}),`forum-thread`)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}let s=o.id,u=o.message?.id??s,b=o.message?.channel_id??s,x=t.slice(1);try{if(r.mediaUrl){let[e,...t]=x;await Vt(h,s,e??``,r.mediaUrl,r.mediaLocalRoots,d,void 0,v,a.config.maxLinesPerMessage,void 0,void 0,c,r.silent),await Un({rest:h,threadId:s,chunks:t,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}else await Un({rest:h,threadId:s,chunks:x,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}catch(e){throw await z(e,{channelId:s,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G({id:u,channel_id:b},y)}let b;try{b=r.mediaUrl?await Vt(h,y,p,r.mediaUrl,r.mediaLocalRoots,d,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent):await U(h,y,p,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G(b,y)}function Jn(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function Yn(e,t){let r=t.webhookId.trim(),i=t.webhookToken.trim();if(!r||!i)throw Error(`Discord webhook id/token are required`);let a=W(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,s=o?{message_id:o,fail_if_not_exists:!1}:void 0,c=await fetch(Jn({webhookId:r,webhookToken:i,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:a,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{l.n({channel:`discord`,accountId:n.pr({cfg:t.cfg??n.Oa(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Xn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(o,{accountId:n.accountId}):void 0,c=At(t);return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Zn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(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?V:void 0;return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Qn(e){let n=await o.o(e,t.y(`audio`)),i=n.fileName?d.default.extname(n.fileName):``,a=n.contentType?t.d(n.contentType):``,s=i||a||`.bin`,c=r.Z(),l=d.default.join(c,`voice-src-${h.default.randomUUID()}${s}`);return await m.default.writeFile(l,n.buffer,{mode:384}),{filePath:l}}async function $n(e,t,r={}){let{filePath:i}=await Qn(t),a=null,o=!1,s,c,u;try{let t=r.cfg??n.Oa(),d=n.pr({cfg:t,accountId:r.accountId}),f=A(r,t);s=f.token,c=f.rest;let p=f.request,h=await L(e,r.accountId,t);u=(await B(c,h,p)).channelId;let g=await Bn(i);a=g.path,o=g.cleanup;let _=await Vn(a),v=await m.default.readFile(a),y=await Hn(c,u,v,_,r.replyTo,p,r.silent,s);return l.n({channel:`discord`,accountId:d.accountId,direction:`outbound`}),G(y,u)}catch(e){throw u&&c&&s?await z(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await Sn(o?a:null),await Sn(i)}}const K=new Map,q=new Map;function er(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function tr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function nr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);K.set(r.id,i)}for(let r of e.modals){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}}function rr(e){let t=K.get(e.id);return t?er(t,Date.now())?(K.delete(e.id),null):(e.consume!==!1&&K.delete(e.id),t):null}function ir(e){let t=q.get(e.id);return t?er(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}const ar=`attachment://`,or=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function J(e){return`${e}${h.default.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 lr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${ar}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${ar}${r}`}function ur(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${ar}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function dr(e){switch((e??`primary`).toLowerCase()){case`secondary`:return g.ButtonStyle.Secondary;case`success`:return g.ButtonStyle.Success;case`danger`:return g.ButtonStyle.Danger;case`link`:return g.ButtonStyle.Link;default:return g.ButtonStyle.Primary}}function fr(e){return e===`paragraph`?g.TextInputStyle.Paragraph:g.TextInputStyle.Short}function pr(e){let t=e.trim().toLowerCase();return or.get(t)??t}function mr(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 hr(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 gr(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:mr(n.options,`${t}.options`)}}function _r(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=mr(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 vr(e,t){let n=Y(e,t);switch(pr(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:hr(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)=>hr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?gr(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:lr(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 yr(e){if(e==null)return null;let t=Y(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>vr(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)=>_r(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 br(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function xr(e){return`ocmodal:mid=${e}`}function Sr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function Cr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function wr(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function Tr(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function Er(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function Dr(e,t){return t&&t.length>0?t.map(e=>new _.TextDisplay(e)):e?[new _.TextDisplay(e)]:[]}function $(e){let t=dr(e.spec.style);if(t===g.ButtonStyle.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends _.LinkButton{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??J(`btn_`),r=br({componentId:n,modalId:e.modalId});class i extends _.Button{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 Or(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??J(`sel_`),r=br({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends _.StringSelectMenu{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 _.UserSelectMenu{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 _.RoleSelectMenu{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 _.MentionableSelectMenu{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 _.ChannelSelectMenu{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 kr(e){return e instanceof _.StringSelectMenu||e instanceof _.UserSelectMenu||e instanceof _.RoleSelectMenu||e instanceof _.MentionableSelectMenu||e instanceof _.ChannelSelectMenu}function Ar(e){if(e.type===`text`){class t extends _.TextInput{constructor(...t){super(...t),this.customId=e.id,this.style=fr(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends _.StringSelectMenu{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends _.RoleSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends _.UserSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends _.CheckboxGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends _.RadioGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function jr(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 _.TextDisplay(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new _.TextDisplay(t.text));continue}if(t.type===`section`){let e=Dr(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 _.Thumbnail(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=$({spec:t.accessory.button});n=e,r&&a(r)}i.push(new _.Section(e,n));continue}if(t.type===`separator`){i.push(new _.Separator({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new _.MediaGallery(t.items));continue}if(t.type===`file`){i.push(new _.File(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}=$({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=Or({spec:t.select});e.push(n),a(r)}i.push(new _.Row(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}=$({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 _.Row){let e=c,t=e.components.some(e=>kr(e));e.components.length<5&&!t?e.addComponent(o):i.push(new _.Row([o]))}else i.push(new _.Row([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new _.Container(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Mr(e){return e.some(e=>e.isV2)?g.MessageFlags.IsComponentsV2:void 0}var Nr=class extends _.Modal{constructor(e){super(),this.customIdParser=Er,this.title=e.title,this.customId=xr(e.modalId),this.components=e.fields.map(e=>{let t=Ar(e);class n extends _.Label{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Pr(e){return new Nr({modalId:e.id,title:e.title,fields:e.fields})}function Fr(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Ir=new Set([g.ChannelType.GuildForum,g.ChannelType.GuildMedia]);function Lr(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ur(n.file));return t}async function Rr(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),{token:s,rest:c,request:u}=A(r,i),{channelId:d}=await B(c,await L(e,r.accountId,i),u),f=await Nt(c,d);if(f&&Ir.has(f))throw Error(`Discord components are not supported in forum-style channels`);let p=jr({spec:t,sessionKey:r.sessionKey,agentId:r.agentId,accountId:a.accountId}),m=Mr(p.components),h=r.silent?(m??0)|V:m??void 0,v=r.replyTo?{message_id:r.replyTo,fail_if_not_exists:!1}:void 0,y=Lr(t),b=[...new Set(y)];if(b.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let x=b[0],S;if(r.mediaUrl){let e=await o.a(r.mediaUrl,{localRoots:r.mediaLocalRoots}),t=r.filename?.trim()||e.fileName||`upload`;if(x&&x!==t)throw Error(`Component file block expects attachment "${x}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);S=[{data:Bt(e.buffer),name:t}]}else if(x)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let C=H({...(0,_.serializePayload)({components:p.components,...h?{flags:h}:{},...S?{files:S}:{}}),...v?{message_reference:v}:{}}),w;try{w=await u(()=>c.post(g.Routes.channelMessages(d),{body:C}),`components`)}catch(e){throw await z(e,{channelId:d,rest:c,token:s,hasMedia:!!S?.length})}return nr({entries:p.entries,modals:p.modals,messageId:w.id}),l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:w.id??`unknown`,channelId:w.channel_id??d}}async function zr(e,t,r,i={}){let{rest:a,request:o}=A(i,i.cfg??n.Oa()),s=kt(r);return await o(()=>a.put(g.Routes.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function Br(e,t,r,i={}){let{rest:a}=A(i,i.cfg??n.Oa()),o=kt(r);return await a.delete(g.Routes.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function Vr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=await i.get(g.Routes.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=Ht(e.emoji);t&&o.add(t)}if(o.size===0)return{ok:!0,removed:[]};let s=[];return await Promise.allSettled(Array.from(o,n=>(s.push(n),i.delete(g.Routes.channelMessageOwnReaction(e,t,kt(n)))))),{ok:!0,removed:s}}async function Hr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=(await i.get(g.Routes.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof r.limit==`number`&&Number.isFinite(r.limit)?Math.min(Math.max(Math.floor(r.limit),1),100):100,s=[];for(let n of a){let r=Ht(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(g.Routes.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Ut(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 s}Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,`At`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,`Ct`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,`Dt`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`Et`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,`Ft`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return ln}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,`It`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,`Lt`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,`Mt`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,`Nt`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,`Ot`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,`Pt`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,`Rt`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,`St`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,`Tt`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return qt}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Xn}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Er}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return yr}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Br}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`jt`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,`kt`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Tr}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return zr}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Hr}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Cr}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,`wt`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,`xt`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return an}});
|
|
@@ -3,4 +3,4 @@ import{g as e}from"./paths-cBAF6Bj0.js";import{Y as t,ci as n,ho as r}from"./ses
|
|
|
3
3
|
`);for(;n!==-1;){let e=c.slice(0,n);if(c=c.slice(n+1),e.endsWith(`\r`)&&(e=e.slice(0,-1)),e===``){u(),n=c.indexOf(`
|
|
4
4
|
`);continue}if(e.startsWith(`:`)){n=c.indexOf(`
|
|
5
5
|
`);continue}let[t,...r]=e.split(`:`),i=t.trim(),a=r.join(`:`),o=a.startsWith(` `)?a.slice(1):a;i===`event`?l.event=o:i===`data`?l.data=l.data?`${l.data}\n${o}`:o:i===`id`&&(l.id=o),n=c.indexOf(`
|
|
6
|
-
`)}}u()}function O(e,n){let i=!!e.baseUrl?.trim(),a=!!e.account?.trim(),o=n||(!i||!a?r({cfg:t(),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 k(e){let t=e.trim();if(!t)throw Error(`Signal recipient is required`);t.toLowerCase().startsWith(`signal:`)&&(t=t.slice(7).trim());let n=t.toLowerCase();return n.startsWith(`group:`)?{type:`group`,groupId:t.slice(6).trim()}:n.startsWith(`username:`)?{type:`username`,username:t.slice(9).trim()}:n.startsWith(`u:`)?{type:`username`,username:t.trim()}:{type:`recipient`,recipient:t}}function A(e,t){return e.type===`recipient`?t.recipient?{recipient:[e.recipient]}:null:e.type===`group`?t.group?{groupId:e.groupId}:null:e.type===`username`&&t.username?{username:[e.username]}:null}async function j(n,i,a={}){let o=a.cfg??t(),c=r({cfg:o,accountId:a.accountId}),{baseUrl:u,account:d}=O(a,c),f=k(n),p=i??``,m=!1,h=[],_=a.textMode??`markdown`,v=typeof a.maxBytes==`number`?a.maxBytes:typeof c.config.mediaMaxMb==`number`?c.config.mediaMaxMb*1024*1024:typeof o.agents?.defaults?.mediaMaxMb==`number`?o.agents.defaults.mediaMaxMb*1024*1024:8*1024*1024,y;if(a.mediaUrl?.trim()){let t=await l(a.mediaUrl.trim(),v,{localRoots:a.mediaLocalRoots});y=[t.path];let n=e(t.contentType??void 0);!p&&n&&(p=n===`image`?`<media:image>`:`<media:${n}>`,m=!0)}if(p.trim()&&!m)if(_===`plain`)h=a.textStyles??[];else{let e=s({cfg:o,channel:`signal`,accountId:c.accountId}),t=g(p,{tableMode:e});p=t.text,h=t.styles}if(!p.trim()&&(!y||y.length===0))throw Error(`Signal send requires text or media`);let b={message:p};h.length>0&&(b[`text-style`]=h.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(b.account=d),y&&y.length>0&&(b.attachments=y);let x=A(f,{recipient:!0,group:!0,username:!0});if(!x)throw Error(`Signal recipient is required`);Object.assign(b,x);let S=(await T(`send`,b,{baseUrl:u,timeoutMs:a.timeoutMs}))?.timestamp;return{messageId:S?String(S):`unknown`,timestamp:S}}async function M(e,t={}){let{baseUrl:n,account:r}=O(t),i=A(k(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await T(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function N(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=O(n),a=A(k(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await T(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}export{E as a,b as c,O as i,N as n,T as o,M as r,D as s,j as t};
|
|
6
|
+
`)}}u()}function O(e,n){let i=!!e.baseUrl?.trim(),a=!!e.account?.trim(),o=n||(!i||!a?r({cfg:t(),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 k(e){let t=e.trim();if(!t)throw Error(`Signal recipient is required`);t.toLowerCase().startsWith(`signal:`)&&(t=t.slice(7).trim());let n=t.toLowerCase();return n.startsWith(`group:`)?{type:`group`,groupId:t.slice(6).trim()}:n.startsWith(`username:`)?{type:`username`,username:t.slice(9).trim()}:n.startsWith(`u:`)?{type:`username`,username:t.trim()}:{type:`recipient`,recipient:t}}function A(e,t){return e.type===`recipient`?t.recipient?{recipient:[e.recipient]}:null:e.type===`group`?t.group?{groupId:e.groupId}:null:e.type===`username`&&t.username?{username:[e.username]}:null}async function j(n,i,a={}){let o=a.cfg??t(),c=r({cfg:o,accountId:a.accountId}),{baseUrl:u,account:d}=O(a,c),f=k(n),p=i??``,m=!1,h=[],_=a.textMode??`markdown`,v=typeof a.maxBytes==`number`?a.maxBytes:typeof c.config.mediaMaxMb==`number`?c.config.mediaMaxMb*1024*1024:typeof o.agents?.defaults?.mediaMaxMb==`number`?o.agents.defaults.mediaMaxMb*1024*1024:8*1024*1024,y;if(a.mediaUrl?.trim()){let t=await l(a.mediaUrl.trim(),v,{localRoots:a.mediaLocalRoots});y=[t.path];let n=e(t.contentType??void 0);!p&&n&&(p=n===`image`?`<media:image>`:`<media:${n}>`,m=!0)}if(p.trim()&&!m)if(_===`plain`)h=a.textStyles??[];else{let e=s({cfg:o,channel:`signal`,accountId:c.accountId}),t=g(p,{tableMode:e});p=t.text,h=t.styles}if(!p.trim()&&(!y||y.length===0))throw Error(`Signal send requires text or media`);let b={message:p};h.length>0&&(b[`text-style`]=h.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(b.account=d),y&&y.length>0&&(b.attachments=y);let x=A(f,{recipient:!0,group:!0,username:!0});if(!x)throw Error(`Signal recipient is required`);Object.assign(b,x);let S=(await T(`send`,b,{baseUrl:u,timeoutMs:a.timeoutMs}))?.timestamp;return{messageId:S?String(S):`unknown`,timestamp:S}}async function M(e,t={}){let{baseUrl:n,account:r}=O(t),i=A(k(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await T(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function N(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=O(n),a=A(k(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await T(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}export{E as a,b as c,O as i,N as n,T as o,M as r,D as s,j as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
require(`./paths-BvlJvmRS.cjs`);const e=require(`./logger-BlddiV_d.cjs`),t=require(`./model-auth-CKlA2xRB.cjs`),n=require(`./targets-DcGNB9nk.cjs`),r=require(`./tokens-DtrljGtQ.cjs`),i=require(`./fetch-guard-DqTxZ3G8.cjs`),a=require(`./ir-B7agH4cQ.cjs`),o=require(`./render-DxBO2Blp.cjs`);let s=require(`@slack/web-api`);function c(e,t={}){let r=e.trim();return r?n.r({raw:r,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(r.startsWith(`#`)?n.t(`channel`,n.n({candidate:r.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),r):t.defaultKind?n.t(t.defaultKind,r,r):n.t(`channel`,r,r)):void 0}function l(e){return n.i({platform:`Slack`,target:c(e,{defaultKind:`channel`}),kind:`channel`})}const u={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function d(e={}){return{...e,retryConfig:e.retryConfig??u}}function f(e,t={}){return new s.WebClient(e,d(t))}function p(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function m(e){return p(e.text?.text)}function h(e){return p(e.text?.text)}function g(e){return p(e.alt_text)??p(e.title?.text)}function _(e){return p(e.title?.text)??p(e.alt_text)}function v(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>p(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function y(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=h(e);if(t)return t;break}case`section`:{let t=m(e);if(t)return t;break}case`image`:return g(e)||`Shared an image`;case`video`:return _(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=v(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function b(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function x(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function S(e){return x(e),e}function C(e){if(e!=null)return S(typeof e==`string`?b(e):e)}function w(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}const T=/<[^>\n]+>/g;function E(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function D(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;T.lastIndex=0;let t=[],n=0;for(let r=T.exec(e);r;r=T.exec(e)){let i=r.index??0;t.push(w(e.slice(n,i)));let a=r[0]??``;t.push(E(a)?a:w(a)),n=i+a.length}return t.push(w(e.slice(n))),t.join(``)}function O(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
|
|
2
2
|
`).map(e=>e.startsWith(`> `)?`> ${D(e.slice(2))}`:D(e)).join(`
|
|
3
|
-
`):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.cs(n.explicit);if(r)return r;let i=t.cs(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a._(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Si(),u=t.as({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.f(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.i({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.d(l,`slack`,u.accountId),b=(v===`newline`?a.c(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|
|
3
|
+
`):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.cs(n.explicit);if(r)return r;let i=t.cs(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a._(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Si(),u=t.as({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.f(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.i({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.d(l,`slack`,u.accountId),b=(v===`newline`?a.c(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
require(`./paths-Bcdg3ma0.cjs`);const e=require(`./sessions-CJbvfO6m.cjs`),t=require(`./logger-DUYnS-W3.cjs`),n=require(`./targets-DcGNB9nk.cjs`),r=require(`./tokens-CXsPDJTr.cjs`),i=require(`./fetch-guard-Dpz6CnJY.cjs`),a=require(`./ir-B9ap_YNW.cjs`),o=require(`./render-6fCdtAr6.cjs`);let s=require(`@slack/web-api`);function c(e,t={}){let r=e.trim();return r?n.r({raw:r,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(r.startsWith(`#`)?n.t(`channel`,n.n({candidate:r.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),r):t.defaultKind?n.t(t.defaultKind,r,r):n.t(`channel`,r,r)):void 0}function l(e){return n.i({platform:`Slack`,target:c(e,{defaultKind:`channel`}),kind:`channel`})}const u={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function d(e={}){return{...e,retryConfig:e.retryConfig??u}}function f(e,t={}){return new s.WebClient(e,d(t))}function p(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function m(e){return p(e.text?.text)}function h(e){return p(e.text?.text)}function g(e){return p(e.alt_text)??p(e.title?.text)}function _(e){return p(e.title?.text)??p(e.alt_text)}function v(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>p(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function y(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=h(e);if(t)return t;break}case`section`:{let t=m(e);if(t)return t;break}case`image`:return g(e)||`Shared an image`;case`video`:return _(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=v(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function b(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function x(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function S(e){return x(e),e}function C(e){if(e!=null)return S(typeof e==`string`?b(e):e)}function w(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}const T=/<[^>\n]+>/g;function E(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function D(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;T.lastIndex=0;let t=[],n=0;for(let r=T.exec(e);r;r=T.exec(e)){let i=r.index??0;t.push(w(e.slice(n,i)));let a=r[0]??``;t.push(E(a)?a:w(a)),n=i+a.length}return t.push(w(e.slice(n))),t.join(``)}function O(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
|
|
2
2
|
`).map(e=>e.startsWith(`> `)?`> ${D(e.slice(2))}`:D(e)).join(`
|
|
3
|
-
`):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(e){let n={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...n,...e.identity?.username?{username:e.identity.username}:{}})}catch(r){if(!F(e.identity)||!I(r))throw r;return t.R(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(n)}}function R(n){let r=e.ss(n.explicit);if(r)return r;let i=e.ss(n.fallbackToken);if(!i)throw t.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return t.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??e.Y(),u=e.is({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|
|
3
|
+
`):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(e){let n={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...n,...e.identity?.username?{username:e.identity.username}:{}})}catch(r){if(!F(e.identity)||!I(r))throw r;return t.R(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(n)}}function R(n){let r=e.ss(n.explicit);if(r)return r;let i=e.ss(n.fallbackToken);if(!i)throw t.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return t.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??e.Y(),u=e.is({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=require(`./utils-PPIvU9qw.cjs`),n=require(`./model-auth-BgS7ynQw.cjs`),r=require(`./ir-D4Dz-giw.cjs`),i=require(`./tables-DBSeZ07-.cjs`),a=require(`./outbound-attachment-D8Ng5uVX.cjs`);let o=require(`node:child_process`),s=require(`node:readline`);function c(){return!!process.env.VITEST?.trim().toLowerCase()}var l=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?t.h(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(c())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=(0,o.spawn)(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=(0,s.createInterface)({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function u(e={}){let t=new l(e);return await t.start(),t}function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>n.In({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(e){let n=e.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():t.d(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function j(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function M(e){let t=e?.trim();if(!t)return;let n=j(t).trim();if(n)return n.length>256?n.slice(0,256):n}function N(e,t){let n=M(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(A);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function P(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function F(t,o,s={}){let c=s.config??n.Gi(),l=s.account??n.$s({cfg:c,accountId:s.accountId}),d=s.cliPath?.trim()||l.config.cliPath?.trim()||`imsg`,f=s.dbPath?.trim()||l.config.dbPath?.trim(),p=T(s.chatId?k(s.chatId):t),m=s.service??(p.kind===`handle`?p.service:void 0)??l.config.service,h=s.region?.trim()||l.config.region?.trim()||`US`,g=typeof s.maxBytes==`number`?s.maxBytes:typeof l.config.mediaMaxMb==`number`?l.config.mediaMaxMb*1024*1024:16*1024*1024,_=o??``,v;if(s.mediaUrl?.trim()){let t=await(s.resolveAttachmentImpl??a.t)(s.mediaUrl.trim(),g,{localRoots:s.mediaLocalRoots});if(v=t.path,!_.trim()){let n=e.Wt(t.contentType??void 0);n&&(_=n===`image`?`<media:image>`:`<media:${n}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=r.s({cfg:c,channel:`imessage`,accountId:l.accountId});_=i.t(_,e)}_=N(_,s.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=s.client??(s.createClient?await s.createClient({cliPath:d,dbPath:f}):await u({cliPath:d,dbPath:f})),x=!s.client;try{let e=await b.request(`send`,y,{timeoutMs:s.timeoutMs});return{messageId:P(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 1e4}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return F}});
|
|
1
|
+
require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=require(`./utils-PPIvU9qw.cjs`),n=require(`./model-auth-BgS7ynQw.cjs`),r=require(`./ir-D4Dz-giw.cjs`),i=require(`./tables-DBSeZ07-.cjs`),a=require(`./outbound-attachment-D8Ng5uVX.cjs`);let o=require(`node:child_process`),s=require(`node:readline`);function c(){return!!process.env.VITEST?.trim().toLowerCase()}var l=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?t.h(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(c())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=(0,o.spawn)(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=(0,s.createInterface)({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function u(e={}){let t=new l(e);return await t.start(),t}function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>n.In({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(e){let n=e.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():t.d(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function j(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function M(e){let t=e?.trim();if(!t)return;let n=j(t).trim();if(n)return n.length>256?n.slice(0,256):n}function N(e,t){let n=M(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(A);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function P(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function F(t,o,s={}){let c=s.config??n.Gi(),l=s.account??n.$s({cfg:c,accountId:s.accountId}),d=s.cliPath?.trim()||l.config.cliPath?.trim()||`imsg`,f=s.dbPath?.trim()||l.config.dbPath?.trim(),p=T(s.chatId?k(s.chatId):t),m=s.service??(p.kind===`handle`?p.service:void 0)??l.config.service,h=s.region?.trim()||l.config.region?.trim()||`US`,g=typeof s.maxBytes==`number`?s.maxBytes:typeof l.config.mediaMaxMb==`number`?l.config.mediaMaxMb*1024*1024:16*1024*1024,_=o??``,v;if(s.mediaUrl?.trim()){let t=await(s.resolveAttachmentImpl??a.t)(s.mediaUrl.trim(),g,{localRoots:s.mediaLocalRoots});if(v=t.path,!_.trim()){let n=e.Wt(t.contentType??void 0);n&&(_=n===`image`?`<media:image>`:`<media:${n}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=r.s({cfg:c,channel:`imessage`,accountId:l.accountId});_=i.t(_,e)}_=N(_,s.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=s.client??(s.createClient?await s.createClient({cliPath:d,dbPath:f}):await u({cliPath:d,dbPath:f})),x=!s.client;try{let e=await b.request(`send`,y,{timeoutMs:s.timeoutMs});return{messageId:P(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 1e4}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return F}});
|
|
@@ -4,4 +4,4 @@ import{It as e,d as t,y as n}from"./paths-piJASC5k.js";import{Z as r}from"./logg
|
|
|
4
4
|
`),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=kt(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=Dt(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?Ot(a).length+1:0,d=a?1:0,f=n-o,p=r-d,m=f>0?f:n,h=p>0?p:r,g=s.length>0?s.length+1:0,_=At(e,Math.max(1,m-g),{preserveWhitespace:i});for(let e=0;e<_.length;e++){let t=_[e],n=e>0,r=`${n?``:s.length>0?`
|
|
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=kt(s,l);e.trim().length&&o.push(e)}return Nt(e,o)}function Mt(e,t){if((t.chunkMode??`length`)!==`newline`)return jt(e,t);let n=m(e,Math.max(1,Math.floor(t.maxChars??wt)),`newline`),r=[];for(let e of n){let n=jt(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function Nt(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 Pt(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 Ft(e,t){return t??new be(e)}function It(t){let n=e(t.accountId),r=a(t.cfg,n),i=t.cfg.channels?.discord?.enabled!==!1,o=r.enabled!==!1;return{accountId:n,enabled:i&&o,name:r.name?.trim()||void 0,token:``,tokenSource:`none`,config:r}}function Lt(e,t){let n=e.cfg??t??l(),r=i(e.token,`channels.discord.token`),a=r?It({cfg:n,accountId:e.accountId}):o({cfg:n,accountId:e.accountId}),s=r??Pt({accountId:a.accountId,fallbackToken:a.token});return{token:s,rest:Ft(s,e.rest),account:a}}function F(e,t){let{token:n,rest:r,account:i}=Lt(e,e.cfg??t);return{token:n,rest:r,request:S({retry:e.retry,configRetry:i.config.retry,verbose:e.verbose})}}function I(e){return Lt(e,e.cfg).rest}const Rt=Object.entries(ae).filter(([,e])=>typeof e==`bigint`),zt=Rt.reduce((e,[,t])=>e|t,0n),Bt=ae.Administrator;function L(e,t){return t?e|BigInt(t):e}function Vt(e,t){return t?e&~BigInt(t):e}function Ht(e){return Rt.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function Ut(e){return(e&Bt)===Bt}function Wt(e,t){return(e&t)===t}function Gt(e){return e===D.GuildNewsThread||e===D.GuildPublicThread||e===D.GuildPrivateThread}async function Kt(e){let t=await e.get(O.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function qt(e,t,n={}){let r=I(n);try{let[n,i]=await Promise.all([r.get(O.guild(e)),r.get(O.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=L(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=L(s,t.permissions))}return s}catch{return null}}async function Jt(e,t,n,r,i={}){let a=await qt(e,t,i);return a===null?!1:Ut(a)?!0:r(a,n)}async function Yt(e,t,n,r={}){return await Jt(e,t,n,(e,t)=>t.some(t=>Wt(e,t)),r)}async function Xt(e,t={}){let n=I(t),r=await n.get(O.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 Kt(n),[s,c]=await Promise.all([n.get(O.guild(a)),n.get(O.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=L(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=L(d,t.permissions))}if(Ut(d))return{channelId:e,guildId:a,permissions:Ht(zt),raw:zt.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=Vt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=Vt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)e.id===o&&(f=Vt(f,e.deny??`0`),f=L(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:Ht(f),raw:f.toString(),isDm:!1,channelType:i}}var Zt=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const Qt=/#\d{4}$/,$t=new Map;function en(t){return e(t??`default`)||`default`}function tn(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function nn(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function rn(e){let t=en(e),n=$t.get(t);if(n)return n;let r=new Map;return $t.set(t,r),r}function an(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 on(e){let t=tn(e.userId);if(!t)return;let n=rn(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=nn(r);if(!e)continue;an(n,e,t);let i=e.replace(Qt,``);i&&i!==e&&an(n,i,t)}}function sn(e){let t=$t.get(en(e.accountId));if(!t)return;let n=nn(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(Qt,``);if(!(!i||i===n))return t.get(i)}function cn(e){return e?.trim().toLowerCase()??``}function ln(e){return e.bot?0:1}function un(e){let t=i(o({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:cn(e.query)}:null}async function dn(e){return(await M(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function fn(e){let t=un(e);if(!t)return[];let{token:n,query:r}=t,i=await dn(n),a=[];for(let t of i){let i=await M(`/guilds/${t.id}/channels`,n);for(let t of i){let n=t.name?.trim();if(n&&!(r&&!P(n).includes(P(r)))&&(a.push({kind:`group`,id:`channel:${t.id}`,name:n,handle:`#${n}`,raw:t}),typeof e.limit==`number`&&e.limit>0&&a.length>=e.limit))return a}}return a}async function pn(e){let t=un(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await dn(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 M(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;on({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:ln(n),raw:t}),a.length>=o)return a}}return a}function R(e,t={}){let n=e.trim();if(!n)return;let r=d({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 f(t.defaultKind,n,n);throw Error(t.ambiguousMessage??`Ambiguous Discord recipient "${n}". Use "user:${n}" for DMs or "channel:${n}" for channel messages.`)}return f(`channel`,n,n)}function mn(e){return u({platform:`Discord`,target:R(e,{defaultKind:`channel`}),kind:`channel`})}async function hn(e,t,n={}){let r=e.trim();if(!r)return;let i=vn(r),a=_n(r,n)||i,o=gn(r,n);if(o&&o.kind!==`channel`&&!i)return o;if(!a)return o??R(r,n);try{let e=(await pn({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return on({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),f(`user`,n,r)}}catch{}return R(r,n)}function gn(e,t){try{return R(e,t)}catch{return}}function _n(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function vn(e){return!/^(user:|channel:|discord:|@|<@!?)|[\d]+$/.test(e)}function yn(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 bn(e,t,n){let r=n??l(),i=o({cfg:r,accountId:t}),a=e.trim(),s={ambiguousMessage:`Ambiguous Discord recipient "${a}". Use "user:${a}" for DMs or "channel:${a}" for channel messages.`},c=await hn(e,{cfg:r,accountId:i.accountId},s);if(c)return{kind:c.kind,id:c.id};let u=R(e,s);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function xn(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 Sn(e){let t=b(e,{maxOptions:10}),n=ee(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:Ae.Default}}function Cn(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 Zt)return e;let n=Cn(e);if(n===50007)return new Zt(`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 Xt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];Gt(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new Zt(`${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(O.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 wn(e,t){try{return(await e.get(O.channel(t)))?.type}catch{return}}const H=4096;function Tn(e,t={}){if(!e)return[];let n=Mt(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function En(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function Dn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function On(e){if(e?.length)return e.map(e=>e instanceof de?e:new de(e))}function kn(e){if(!(!e.embeds||!e.isFirst))return On(e.embeds)}function An(e){let t={},n=En(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 jn(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function W(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=Tn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=U({...ke(An({text:n,components:Dn({components:o,text:n,isFirst:r}),embeds:kn({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(O.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 Mn(e,t,n,r,i,a,o,s,c,l,u,d,f){let m=await p(r,y({maxBytes:a,mediaLocalRoots:i})),h=n?Tn(n,{maxLinesPerMessage:c,chunkMode:d}):[],g=h[0]??``,_=o?{message_id:o,fail_if_not_exists:!1}:void 0,v=f?H:void 0,b=jn(m.buffer),ee=An({text:g,components:Dn({components:l,text:g,isFirst:!0}),embeds:kn({embeds:u,isFirst:!0}),flags:v,files:[{data:b,name:m.fileName??`upload`}]}),x=await s(()=>e.post(O.channelMessages(t),{body:U({...ke(ee),..._?{message_reference:_}:{}})}),`media`);for(let n of h.slice(1))n.trim()&&await W(e,t,n,o,s,c,void 0,void 0,d,f);return x}function Nn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function Pn(e){return Nn(e)}async function Fn(e,t={}){let n=I(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(O.guildChannels(e.guildId),{body:r})}async function In(e,t={}){let n=I(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(O.channel(e.channelId),{body:r})}async function Ln(e,t={}){return await I(t).delete(O.channel(e)),{ok:!0,channelId:e}}async function Rn(e,t={}){let n=I(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(O.guildChannels(e.guildId),{body:r}),{ok:!0}}async function zn(e,t={}){let n=I(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 Bn(e,t,n={}){return await I(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Vn(e,t={}){return await I(t).get(O.guildEmojis(e))}async function Hn(e,t={}){let n=I(t),r=await _(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(O.guildEmojis(e.guildId),{body:{name:z(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function Un(e,t={}){let n=I(t),r=await _(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(O.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 Wn(e,t,n={}){return await I(n).get(O.guildMember(e,t))}async function Gn(e,t={}){return await I(t).get(O.guildRoles(e))}async function Kn(e,t={}){return await I(t).put(O.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function qn(e,t={}){return await I(t).delete(O.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Jn(e,t={}){return await I(t).get(O.channel(e))}async function Yn(e,t={}){return await I(t).get(O.guildChannels(e))}async function Xn(e,t,n={}){return await I(n).get(O.guildVoiceState(e,t))}async function Zn(e,t={}){return await I(t).get(O.guildScheduledEvents(e))}async function Qn(e,t,n={}){return await I(n).post(O.guildScheduledEvents(e),{body:t})}async function $n(e,t={}){let n=I(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(O.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 er(e,t={}){return await I(t).delete(O.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function tr(e,t={}){let n=I(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(O.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 nr(e,t={},n={}){let r=I(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(O.channelMessages(e),a)}async function rr(e,t,n={}){return await I(n).get(O.channelMessage(e,t))}async function ir(e,t,n,r={}){return await I(r).patch(O.channelMessage(e,t),{body:{content:n.content}})}async function ar(e,t,n={}){return await I(n).delete(O.channelMessage(e,t)),{ok:!0}}async function or(e,t,n={}){return await I(n).put(O.channelPin(e,t)),{ok:!0}}async function sr(e,t,n={}){return await I(n).delete(O.channelPin(e,t)),{ok:!0}}async function cr(e,t={}){return await I(t).get(O.channelPins(e))}async function lr(e,t,n={}){let r=I(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(O.channel(e)))?.type}catch{a=void 0}let o=a===D.GuildForum||a===D.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=D.PublicThread);let s=t.messageId?O.threads(e,t.messageId):O.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(O.channelMessages(c.id),{body:{content:t.content}}),c}async function ur(e,t={}){let n=I(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(O.channelThreads(e.channelId,`public`),t)}return await n.get(O.guildActiveThreads(e.guildId))}async function dr(e,t={}){let n=I(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()}`)}async function fr(e){if(e)try{await w.unlink(e)}catch{}}const pr=/```[\s\S]*?```|`[^`\n]*`/g,mr=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,hr=new Set([`everyone`,`here`]);function gr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function _r(e){let t=e.userId==null?null:gr(e.userId),n=e.roleId==null?null:gr(e.roleId),r=e.channelId==null?null:gr(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 vr(e,t){return e.includes(`@`)?e.replace(mr,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(hr.has(a))return e;let o=sn({accountId:t,handle:i});return o?`${String(n??``)}${_r({userId:o})}`:e}):e}function G(e,t){if(!e.includes(`@`))return e;let n=``,r=0;pr.lastIndex=0;for(let i of e.matchAll(pr)){let a=i.index??0;n+=vr(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=vr(e.slice(r),t.accountId),n}const yr=ne(re);function br(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function xr(e,t){let{stdout:n}=await yr(`ffprobe`,e,br(1e4,t));return n.toString()}async function Sr(e,t){let{stdout:n}=await yr(`ffmpeg`,e,br(45e3,t));return n.toString()}function Cr(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function wr(e){let[t,n]=Cr(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const Tr=8192;async function Er(e){try{let t=await xr([`-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 Dr(e){try{return await Or(e)}catch{return kr()}}async function Or(e){let t=r(),n=C.join(t,`waveform-${T.randomUUID()}.raw`);try{await Sr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,n]);let t=await w.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 fr(n)}}function kr(){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 Ar(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}=wr(await xr([`-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=r(),i=C.join(n,`voice-${T.randomUUID()}.ogg`);return await Sr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,cleanup:!0}}async function jr(e){let[t,n]=await Promise.all([Er(e),Dr(e)]);return{durationSecs:t,waveform:n}}async function Mr(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 ye(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?Tr|4096:Tr,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 Nr(e){for(let t of e.chunks)await W(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function Pr(e){return(e.split(`
|
|
7
|
-
`).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Fr(e){return e===D.GuildForum||e===D.GuildMedia}function K(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Ir(e,t){let n=t.cfg??l(),{rest:r,request:i}=F(t,n),{channelId:a}=await V(r,await bn(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function Lr(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),a=g({cfg:r,channel:`discord`,accountId:i.accountId}),s=h(r,`discord`,i.accountId),c=typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,a),d=G(u,{accountId:i.accountId}),{token:f,rest:p,request:m}=F(n,r),{channelId:_}=await V(p,await bn(e,n.accountId,r),m);if(Fr(await wn(p,_))){let e=Pr(u),t=Tn(d,{maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,a=An({text:r,components:Dn({components:n.components,text:r,isFirst:!0}),embeds:kn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await m(()=>p.post(O.threads(_),{body:{name:e,message:U(ke(a))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}let l=o.id,h=o.message?.id??l,g=o.message?.channel_id??l,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await Mn(p,l,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,m,i.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await Nr({rest:p,threadId:l,chunks:t,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await Nr({rest:p,threadId:l,chunks:v,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await B(e,{channelId:l,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K({id:h,channel_id:g},_)}let v;try{v=n.mediaUrl?await Mn(p,_,d,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await W(p,_,d,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K(v,_)}function Rr(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function zr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let i=G(e,{accountId:t.accountId}),a=typeof t.replyTo==`string`?t.replyTo.trim():``,s=a?{message_id:a,fail_if_not_exists:!1}:void 0,c=await fetch(Rr({webhookId:n,webhookToken:r,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:i,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{x({channel:`discord`,accountId:o({cfg:t.cfg??l(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Br(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0,c=xn(t);return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Vr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=Sn(t),l=n.silent?H:void 0;return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Hr(e){let i=await _(e,n(`audio`)),a=i.fileName?C.extname(i.fileName):``,o=i.contentType?t(i.contentType):``,s=a||o||`.bin`,c=r(),l=C.join(c,`voice-src-${T.randomUUID()}${s}`);return await w.writeFile(l,i.buffer,{mode:384}),{filePath:l}}async function Ur(e,t,n={}){let{filePath:r}=await Hr(t),i=null,a=!1,s,c,u;try{let t=n.cfg??l(),d=o({cfg:t,accountId:n.accountId}),f=F(n,t);s=f.token,c=f.rest;let p=f.request,m=await bn(e,n.accountId,t);u=(await V(c,m,p)).channelId;let h=await Ar(r);i=h.path,a=h.cleanup;let g=await jr(i),_=await w.readFile(i),v=await Mr(c,u,_,g,n.replyTo,p,n.silent,s);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),K(v,u)}catch(e){throw u&&c&&s?await B(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await fr(a?i:null),await fr(r)}}const q=new Map,J=new Map;function Wr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Gr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Kr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}for(let r of e.modals){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}}function qr(e){let t=q.get(e.id);return t?Wr(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}function Jr(e){let t=J.get(e.id);return t?Wr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}const Yr=`attachment://`,Xr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${T.randomBytes(6).toString(`base64url`)}`}function X(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Z(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 Q(e){return typeof e==`string`&&e.trim()||void 0}function Zr(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)=>Z(e,`${t}[${n}]`))}}function $(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function Qr(e,t){return e?.trim()||`field_${t+1}`}function $r(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Yr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Yr}${r}`}function ei(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Yr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function ti(e){switch((e??`primary`).toLowerCase()){case`secondary`:return E.Secondary;case`success`:return E.Success;case`danger`:return E.Danger;case`link`:return E.Link;default:return E.Primary}}function ni(e){return e===`paragraph`?oe.Paragraph:oe.Short}function ri(e){let t=e.trim().toLowerCase();return Xr.get(t)??t}function ii(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=X(e,`${t}[${n}]`);return{label:Z(r.label,`${t}[${n}].label`),value:Z(r.value,`${t}[${n}].value`),description:Q(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:Z(r.emoji.name,`${t}[${n}].emoji.name`),id:Q(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 ai(e,t){let n=X(e,t),r=Q(n.style),i=Q(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:Z(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:Z(n.emoji.name,`${t}.emoji.name`),id:Q(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:Zr(n.allowedUsers,`${t}.allowedUsers`)}}function oi(e,t){let n=X(e,t),r=Q(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:Q(n.placeholder),minValues:$(n.minValues),maxValues:$(n.maxValues),options:ii(n.options,`${t}.options`)}}function si(e,t,n){let r=X(e,t),i=Z(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=ii(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:Qr(Q(r.name),n),label:Z(r.label,`${t}.label`),description:Q(r.description),placeholder:Q(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:$(r.minValues),maxValues:$(r.maxValues),minLength:$(r.minLength),maxLength:$(r.maxLength),style:Q(r.style)}}function ci(e,t){let n=X(e,t);switch(ri(Z(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:Z(n.text,`${t}.text`)};case`section`:{let e=Q(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>Z(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=X(n.accessory,`${t}.accessory`),r=Z(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:Z(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:ai(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)=>ai(e,`${t}.buttons[${n}]`)):void 0,i=n.select?oi(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=X(e,`${t}.items[${n}]`);return{url:Z(r.url,`${t}.items[${n}].url`),description:Q(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:$r(Z(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 li(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ci(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=X(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)=>si(e,`components.modal.fields[${t}]`,t));o={title:Z(e.title,`components.modal.title`),triggerLabel:Q(e.triggerLabel),triggerStyle:Q(e.triggerStyle),fields:n}}return{text:Q(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 ui(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function di(e){return`ocmodal:mid=${e}`}function fi(e){let t=Oe(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function pi(e){let t=Oe(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function mi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function hi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function gi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function _i(e,t){return t&&t.length>0?t.map(e=>new A(e)):e?[new A(e)]:[]}function vi(e){let t=ti(e.spec.style);if(t===E.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends me{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=ui({componentId:n,modalId:e.modalId});class i extends se{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 yi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=ui({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends we{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 De{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 xe{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 ge{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 ce{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 bi(e){return e instanceof we||e instanceof De||e instanceof xe||e instanceof ge||e instanceof ce}function xi(e){if(e.type===`text`){class t extends Te{constructor(...t){super(...t),this.customId=e.id,this.style=ni(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends we{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends xe{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends De{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends le{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends ve{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function Si(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 A(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new A(t.text));continue}if(t.type===`section`){let e=_i(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 Ee(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=vi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Se(e,n));continue}if(t.type===`separator`){i.push(new Ce({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new he(t.items));continue}if(t.type===`file`){i.push(new fe(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}=vi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=yi({spec:t.select});e.push(n),a(r)}i.push(new k(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:Qr(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}=vi({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 k){let e=c,t=e.components.some(e=>bi(e));e.components.length<5&&!t?e.addComponent(o):i.push(new k([o]))}else i.push(new k([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new ue(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Ci(e){return e.some(e=>e.isV2)?ie.IsComponentsV2:void 0}var wi=class extends _e{constructor(e){super(),this.customIdParser=gi,this.title=e.title,this.customId=di(e.modalId),this.components=e.fields.map(e=>{let t=xi(e);class n extends pe{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Ti(e){return new wi({modalId:e.id,title:e.title,fields:e.fields})}function Ei(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Di=new Set([D.GuildForum,D.GuildMedia]);function Oi(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ei(n.file));return t}async function ki(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),{token:a,rest:s,request:c}=F(n,r),{channelId:u}=await V(s,await bn(e,n.accountId,r),c),d=await wn(s,u);if(d&&Di.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=Si({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:i.accountId}),m=Ci(f.components),h=n.silent?(m??0)|H:m??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Oi(t),v=[...new Set(_)];if(v.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let y=v[0],b;if(n.mediaUrl){let e=await p(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(y&&y!==t)throw Error(`Component file block expects attachment "${y}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);b=[{data:jn(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=U({...ke({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),S;try{S=await c(()=>s.post(O.channelMessages(u),{body:ee}),`components`)}catch(e){throw await B(e,{channelId:u,rest:s,token:a,hasMedia:!!b?.length})}return Kr({entries:f.entries,modals:f.modals,messageId:S.id}),x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Ai(e,t,n,r={}){let{rest:i,request:a}=F(r,r.cfg??l()),o=yn(n);return await a(()=>i.put(O.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function ji(e,t,n,r={}){let{rest:i}=F(r,r.cfg??l()),a=yn(n);return await i.delete(O.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Mi(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=await r.get(O.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=Nn(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(O.channelMessageOwnReaction(e,t,yn(n)))))),{ok:!0,removed:o}}async function Ni(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=(await r.get(O.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=Nn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(O.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Pn(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}export{U as $,sr as A,Ge as At,Zn as B,Le as Bt,ir as C,et as Ct,or as D,Ke as Dt,ur as E,M as Et,Wn as F,We as Ft,Un as G,$n as H,Gn as I,je as It,In as J,Fn as K,Xn as L,Pe as Lt,tr as M,He as Mt,Qn as N,ze as Nt,nr as O,qe as Ot,Jn as P,Ve as Pt,W as Q,er as R,Ne as Rt,ar as S,nt as St,cr as T,j as Tt,Vn as U,qn as V,Hn as W,Bn as X,Rn as Y,zn as Z,Br as _,dt as _t,ki as a,Yt as at,_r as b,Ct as bt,fi as c,Mt as ct,gi as d,P as dt,R as et,li as f,ot as ft,Vr as g,ft as gt,Lr as h,ut as ht,ji as i,Xt as it,Kn as j,Be as jt,dr as k,Je as kt,hi as l,xt as lt,Jr as m,pt as mt,Ai as n,fn as nt,Ti as o,F as ot,qr as p,vt as pt,Ln as q,Mi as r,pn as rt,Ei as s,Lt as st,Ni as t,mn as tt,pi as u,N as ut,Ur as v,yt as vt,rr as w,rt as wt,lr as x,tt as xt,zr as y,St as yt,Yn as z,Ie as zt};
|
|
7
|
+
`).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Fr(e){return e===D.GuildForum||e===D.GuildMedia}function K(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Ir(e,t){let n=t.cfg??l(),{rest:r,request:i}=F(t,n),{channelId:a}=await V(r,await bn(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function Lr(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),a=g({cfg:r,channel:`discord`,accountId:i.accountId}),s=h(r,`discord`,i.accountId),c=typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,a),d=G(u,{accountId:i.accountId}),{token:f,rest:p,request:m}=F(n,r),{channelId:_}=await V(p,await bn(e,n.accountId,r),m);if(Fr(await wn(p,_))){let e=Pr(u),t=Tn(d,{maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,a=An({text:r,components:Dn({components:n.components,text:r,isFirst:!0}),embeds:kn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await m(()=>p.post(O.threads(_),{body:{name:e,message:U(ke(a))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}let l=o.id,h=o.message?.id??l,g=o.message?.channel_id??l,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await Mn(p,l,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,m,i.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await Nr({rest:p,threadId:l,chunks:t,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await Nr({rest:p,threadId:l,chunks:v,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await B(e,{channelId:l,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K({id:h,channel_id:g},_)}let v;try{v=n.mediaUrl?await Mn(p,_,d,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await W(p,_,d,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K(v,_)}function Rr(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function zr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let i=G(e,{accountId:t.accountId}),a=typeof t.replyTo==`string`?t.replyTo.trim():``,s=a?{message_id:a,fail_if_not_exists:!1}:void 0,c=await fetch(Rr({webhookId:n,webhookToken:r,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:i,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{x({channel:`discord`,accountId:o({cfg:t.cfg??l(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Br(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0,c=xn(t);return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Vr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=Sn(t),l=n.silent?H:void 0;return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Hr(e){let i=await _(e,n(`audio`)),a=i.fileName?C.extname(i.fileName):``,o=i.contentType?t(i.contentType):``,s=a||o||`.bin`,c=r(),l=C.join(c,`voice-src-${T.randomUUID()}${s}`);return await w.writeFile(l,i.buffer,{mode:384}),{filePath:l}}async function Ur(e,t,n={}){let{filePath:r}=await Hr(t),i=null,a=!1,s,c,u;try{let t=n.cfg??l(),d=o({cfg:t,accountId:n.accountId}),f=F(n,t);s=f.token,c=f.rest;let p=f.request,m=await bn(e,n.accountId,t);u=(await V(c,m,p)).channelId;let h=await Ar(r);i=h.path,a=h.cleanup;let g=await jr(i),_=await w.readFile(i),v=await Mr(c,u,_,g,n.replyTo,p,n.silent,s);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),K(v,u)}catch(e){throw u&&c&&s?await B(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await fr(a?i:null),await fr(r)}}const q=new Map,J=new Map;function Wr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Gr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Kr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}for(let r of e.modals){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}}function qr(e){let t=q.get(e.id);return t?Wr(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}function Jr(e){let t=J.get(e.id);return t?Wr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}const Yr=`attachment://`,Xr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${T.randomBytes(6).toString(`base64url`)}`}function X(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Z(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 Q(e){return typeof e==`string`&&e.trim()||void 0}function Zr(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)=>Z(e,`${t}[${n}]`))}}function $(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function Qr(e,t){return e?.trim()||`field_${t+1}`}function $r(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Yr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Yr}${r}`}function ei(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Yr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function ti(e){switch((e??`primary`).toLowerCase()){case`secondary`:return E.Secondary;case`success`:return E.Success;case`danger`:return E.Danger;case`link`:return E.Link;default:return E.Primary}}function ni(e){return e===`paragraph`?oe.Paragraph:oe.Short}function ri(e){let t=e.trim().toLowerCase();return Xr.get(t)??t}function ii(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=X(e,`${t}[${n}]`);return{label:Z(r.label,`${t}[${n}].label`),value:Z(r.value,`${t}[${n}].value`),description:Q(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:Z(r.emoji.name,`${t}[${n}].emoji.name`),id:Q(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 ai(e,t){let n=X(e,t),r=Q(n.style),i=Q(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:Z(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:Z(n.emoji.name,`${t}.emoji.name`),id:Q(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:Zr(n.allowedUsers,`${t}.allowedUsers`)}}function oi(e,t){let n=X(e,t),r=Q(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:Q(n.placeholder),minValues:$(n.minValues),maxValues:$(n.maxValues),options:ii(n.options,`${t}.options`)}}function si(e,t,n){let r=X(e,t),i=Z(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=ii(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:Qr(Q(r.name),n),label:Z(r.label,`${t}.label`),description:Q(r.description),placeholder:Q(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:$(r.minValues),maxValues:$(r.maxValues),minLength:$(r.minLength),maxLength:$(r.maxLength),style:Q(r.style)}}function ci(e,t){let n=X(e,t);switch(ri(Z(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:Z(n.text,`${t}.text`)};case`section`:{let e=Q(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>Z(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=X(n.accessory,`${t}.accessory`),r=Z(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:Z(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:ai(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)=>ai(e,`${t}.buttons[${n}]`)):void 0,i=n.select?oi(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=X(e,`${t}.items[${n}]`);return{url:Z(r.url,`${t}.items[${n}].url`),description:Q(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:$r(Z(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 li(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ci(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=X(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)=>si(e,`components.modal.fields[${t}]`,t));o={title:Z(e.title,`components.modal.title`),triggerLabel:Q(e.triggerLabel),triggerStyle:Q(e.triggerStyle),fields:n}}return{text:Q(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 ui(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function di(e){return`ocmodal:mid=${e}`}function fi(e){let t=Oe(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function pi(e){let t=Oe(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function mi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function hi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function gi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function _i(e,t){return t&&t.length>0?t.map(e=>new A(e)):e?[new A(e)]:[]}function vi(e){let t=ti(e.spec.style);if(t===E.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends me{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=ui({componentId:n,modalId:e.modalId});class i extends se{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 yi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=ui({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends we{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 De{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 xe{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 ge{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 ce{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 bi(e){return e instanceof we||e instanceof De||e instanceof xe||e instanceof ge||e instanceof ce}function xi(e){if(e.type===`text`){class t extends Te{constructor(...t){super(...t),this.customId=e.id,this.style=ni(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends we{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends xe{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends De{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends le{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends ve{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function Si(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 A(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new A(t.text));continue}if(t.type===`section`){let e=_i(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 Ee(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=vi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Se(e,n));continue}if(t.type===`separator`){i.push(new Ce({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new he(t.items));continue}if(t.type===`file`){i.push(new fe(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}=vi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=yi({spec:t.select});e.push(n),a(r)}i.push(new k(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:Qr(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}=vi({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 k){let e=c,t=e.components.some(e=>bi(e));e.components.length<5&&!t?e.addComponent(o):i.push(new k([o]))}else i.push(new k([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new ue(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Ci(e){return e.some(e=>e.isV2)?ie.IsComponentsV2:void 0}var wi=class extends _e{constructor(e){super(),this.customIdParser=gi,this.title=e.title,this.customId=di(e.modalId),this.components=e.fields.map(e=>{let t=xi(e);class n extends pe{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Ti(e){return new wi({modalId:e.id,title:e.title,fields:e.fields})}function Ei(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Di=new Set([D.GuildForum,D.GuildMedia]);function Oi(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ei(n.file));return t}async function ki(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),{token:a,rest:s,request:c}=F(n,r),{channelId:u}=await V(s,await bn(e,n.accountId,r),c),d=await wn(s,u);if(d&&Di.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=Si({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:i.accountId}),m=Ci(f.components),h=n.silent?(m??0)|H:m??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Oi(t),v=[...new Set(_)];if(v.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let y=v[0],b;if(n.mediaUrl){let e=await p(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(y&&y!==t)throw Error(`Component file block expects attachment "${y}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);b=[{data:jn(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=U({...ke({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),S;try{S=await c(()=>s.post(O.channelMessages(u),{body:ee}),`components`)}catch(e){throw await B(e,{channelId:u,rest:s,token:a,hasMedia:!!b?.length})}return Kr({entries:f.entries,modals:f.modals,messageId:S.id}),x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Ai(e,t,n,r={}){let{rest:i,request:a}=F(r,r.cfg??l()),o=yn(n);return await a(()=>i.put(O.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function ji(e,t,n,r={}){let{rest:i}=F(r,r.cfg??l()),a=yn(n);return await i.delete(O.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Mi(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=await r.get(O.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=Nn(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(O.channelMessageOwnReaction(e,t,yn(n)))))),{ok:!0,removed:o}}async function Ni(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=(await r.get(O.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=Nn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(O.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Pn(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}export{U as $,sr as A,Ge as At,Zn as B,Le as Bt,ir as C,et as Ct,or as D,Ke as Dt,ur as E,M as Et,Wn as F,We as Ft,Un as G,$n as H,Gn as I,je as It,In as J,Fn as K,Xn as L,Pe as Lt,tr as M,He as Mt,Qn as N,ze as Nt,nr as O,qe as Ot,Jn as P,Ve as Pt,W as Q,er as R,Ne as Rt,ar as S,nt as St,cr as T,j as Tt,Vn as U,qn as V,Hn as W,Bn as X,Rn as Y,zn as Z,Br as _,dt as _t,ki as a,Yt as at,_r as b,Ct as bt,fi as c,Mt as ct,gi as d,P as dt,R as et,li as f,ot as ft,Vr as g,ft as gt,Lr as h,ut as ht,ji as i,Xt as it,Kn as j,Be as jt,dr as k,Je as kt,hi as l,xt as lt,Jr as m,pt as mt,Ai as n,fn as nt,Ti as o,F as ot,qr as p,vt as pt,Ln as q,Mi as r,pn as rt,Ei as s,Lt as st,Ni as t,mn as tt,pi as u,N as ut,Ur as v,yt as vt,rr as w,rt as wt,lr as x,tt as xt,zr as y,St as yt,Yn as z,Ie as zt};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
require(`./paths-Bcdg3ma0.cjs`);const e=require(`./utils-PPIvU9qw.cjs`),t=require(`./model-auth-BgS7ynQw.cjs`),n=require(`./targets-BSc11Uk8.cjs`),r=require(`./fetch-guard-EoAitPe9.cjs`),i=require(`./tokens-CnB4dJmp.cjs`),a=require(`./ir-D4Dz-giw.cjs`),o=require(`./render-g5VlmgpF.cjs`);let s=require(`@slack/web-api`);function c(e,t={}){let r=e.trim();return r?n.r({raw:r,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(r.startsWith(`#`)?n.t(`channel`,n.n({candidate:r.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),r):t.defaultKind?n.t(t.defaultKind,r,r):n.t(`channel`,r,r)):void 0}function l(e){return n.i({platform:`Slack`,target:c(e,{defaultKind:`channel`}),kind:`channel`})}const u={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function d(e={}){return{...e,retryConfig:e.retryConfig??u}}function f(e,t={}){return new s.WebClient(e,d(t))}function p(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function m(e){return p(e.text?.text)}function h(e){return p(e.text?.text)}function g(e){return p(e.alt_text)??p(e.title?.text)}function _(e){return p(e.title?.text)??p(e.alt_text)}function v(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>p(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function y(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=h(e);if(t)return t;break}case`section`:{let t=m(e);if(t)return t;break}case`image`:return g(e)||`Shared an image`;case`video`:return _(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=v(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function b(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function x(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function S(e){return x(e),e}function C(e){if(e!=null)return S(typeof e==`string`?b(e):e)}function w(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}const T=/<[^>\n]+>/g;function E(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function D(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;T.lastIndex=0;let t=[],n=0;for(let r=T.exec(e);r;r=T.exec(e)){let i=r.index??0;t.push(w(e.slice(n,i)));let a=r[0]??``;t.push(E(a)?a:w(a)),n=i+a.length}return t.push(w(e.slice(n))),t.join(``)}function O(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
|
|
2
2
|
`).map(e=>e.startsWith(`> `)?`> ${D(e.slice(2))}`:D(e)).join(`
|
|
3
|
-
`):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.Nn(n.explicit);if(r)return r;let i=t.Nn(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:i}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:i??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await r.t(r.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:i??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,r,o={}){let s=r?.trim()??``;if(i.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Gi(),u=t.An({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|
|
3
|
+
`):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.Nn(n.explicit);if(r)return r;let i=t.Nn(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:i}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:i??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await r.t(r.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:i??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,r,o={}){let s=r?.trim()??``;if(i.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Gi(),u=t.An({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|