@openclaw/discord 2026.8.1-beta.2 → 2026.8.1
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-inspect-CqzrH14k.js → account-inspect-BDfKyuvL.js} +1 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/{accounts-DJTf1LtA.js → accounts-CfQ-vSyf.js} +34 -1
- package/dist/action-runtime-api.js +1 -1
- package/dist/{activities-api-DS7vpdtp.js → activities-api-Dl-TOyOX.js} +134 -175
- package/dist/activities-api.js +1 -1
- package/dist/api.js +17 -17
- package/dist/{approval-handler.runtime-B6yEV79q.js → approval-handler.runtime-q4Zqo44V.js} +29 -106
- package/dist/{audit-Db-rlntl.js → audit-DgrvFPGt.js} +5 -5
- package/dist/{channel-CnnbJSt5.js → channel-BsQUalPw.js} +72 -50
- package/dist/{channel-actions.runtime-CLKrx6tr.js → channel-actions.runtime-UMGGIfSy.js} +31 -45
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/channel-type-CVLZyGYS.js +7 -0
- package/dist/{channel.setup-BFAO-V1P.js → channel.setup-rPs4dsk_.js} +5 -5
- package/dist/{outbound-session-route-DxLkrgKQ.js → components-Dk35LTf_.js} +34 -76
- package/dist/{config-schema-BgEskFAs.js → config-schema-CxPqtVI1.js} +46 -14
- package/dist/conversation-binding-route-BjvX4e35.js +43 -0
- package/dist/{directory-config-BVX7Cflc.js → directory-config-B7DY_pNG.js} +2 -2
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-DGIGxpIo.js → directory-live-DuAXKkan.js} +3 -3
- package/dist/doctor-contract-api.js +2 -2
- package/dist/{doctor-BzC-TLnB.js → doctor-zQTtn6hm.js} +33 -12
- package/dist/{handle-action.guild-admin-BNVTUISF.js → handle-action.guild-admin-DZewwLr1.js} +9 -5
- package/dist/index.js +3 -4
- package/dist/ingress-identity-CzZKcPK8.js +60 -0
- package/dist/{message-handler-Unk_f10F.js → message-handler-C5By3yl5.js} +82 -6
- package/dist/{message-handler.preflight-C9zecxR9.js → message-handler.preflight-DrszWuHw.js} +44 -118
- package/dist/{message-handler.process-DWQ6UHHu.js → message-handler.process-DyFPDLCt.js} +205 -235
- package/dist/{message-utils-BSCPVgy0.js → message-text-Ca8M6TU8.js} +43 -42
- package/dist/{outbound-adapter-D9nRivT1.js → outbound-adapter-Dif8p481.js} +118 -91
- package/dist/{outbound-components-cTzwBJ60.js → outbound-components-wjv7yyAj.js} +5 -4
- package/dist/outbound-session-route-Bn4uXaoE.js +665 -0
- package/dist/owner-access-UlYi9t0M.js +107 -0
- package/dist/{pluralkit-DdiJ9KMK.js → pluralkit-9EuEN4UD.js} +1 -1
- package/dist/{probe-Bl-k5_Ku.js → probe-n6ZXxK8V.js} +1 -1
- package/dist/{probe.runtime-M9fREKvp.js → probe.runtime-CN4bdPfZ.js} +1 -1
- package/dist/{provider-DvSNb-2v.js → provider-LXiOcJrH.js} +887 -1350
- package/dist/{provider-session.runtime-BUEqD0rA.js → provider-session.runtime-DSNe7r2W.js} +3 -3
- package/dist/provider.runtime-DiInaDXO.js +2 -0
- package/dist/{realtime-session.runtime-C7wen-aF.js → realtime-session.runtime-DOViOIjY.js} +129 -134
- package/dist/{resolve-allowlist-common-D04lpEzb.js → resolve-allowlist-common-BLoYaxEG.js} +2 -2
- package/dist/{resolve-channels-Dm7jEeg6.js → resolve-channels-D2yl_2CN.js} +5 -4
- package/dist/{resolve-users-bktrCUUU.js → resolve-users-BLxfqajZ.js} +2 -2
- package/dist/{retry-CLpJcXXf.js → retry-DqHCW6PV.js} +187 -19
- package/dist/{runtime-DGsSyDTS.js → runtime-BYamRVPN.js} +89 -86
- package/dist/{runtime-DoHjckYm.js → runtime-DrxVBTtp.js} +9 -10
- package/dist/runtime-api.js +19 -25
- package/dist/{sdk-runtime-QpY8PvCh.js → sdk-runtime-6tfgYDjY.js} +57 -89
- package/dist/{secret-config-contract-B1akrlyY.js → secret-config-contract-B3i6WxV5.js} +53 -25
- package/dist/secret-contract-api.js +1 -1
- package/dist/{security-audit-jGnJF__m.js → security-audit-DKfK-iPY.js} +11 -12
- package/dist/security-audit-contract-api.js +1 -1
- package/dist/{security-audit.runtime-CPN0xFYz.js → security-audit.runtime-sKZyKgpx.js} +1 -1
- package/dist/{send-B7Q6Oc1I.js → send-UJHiAm4C.js} +82 -19
- package/dist/{send.components-iJyFXw9L.js → send.components-CrBJpGT_.js} +22 -39
- package/dist/{send.outbound-DS5tHwfR.js → send.outbound-D7JYmfm9.js} +77 -78
- package/dist/{send.shared-BmwFjW6T.js → send.shared-DZJ1akvQ.js} +136 -121
- package/dist/{sender-identity-QtalnCYv.js → sender-identity-BJtfyise.js} +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-BIXIX6uJ.js → shared-Dii2HTn7.js} +41 -14
- package/dist/subagent-hooks-JyGrtQIl.js +49 -0
- package/dist/subagent-hooks-api.js +1 -6
- package/dist/{system-events-CTqDf6_s.js → system-events-BEmcj4xJ.js} +2 -2
- package/dist/{target-resolver-maOKSqO0.js → target-resolver-V-IYae6s.js} +3 -3
- package/dist/targets-CQp53cGj.js +3 -0
- package/dist/{thread-bindings-3L8p82GV.js → thread-bindings-DvYP79fy.js} +28 -26
- package/dist/{thread-bindings.manager-DCIH6WDC.js → thread-bindings.manager-Clm77DBM.js} +11 -14
- package/dist/{thread-bindings.session-updates-bJ2KQFY6.js → thread-bindings.session-updates-CJb-BpPL.js} +1 -1
- package/dist/{thread-bindings.state-aeV8HNgV.js → thread-bindings.state-D8OMdk4O.js} +1 -1
- package/dist/threading-CXuu_7o9.js +478 -0
- package/dist/transcripts-source-BLEMH_yi.js +270 -0
- package/dist/transcripts-source-api.js +7 -2
- package/dist/{typing-CS-nNVoe.js → typing-B9snnwMe.js} +1 -1
- package/dist/{voice-runtime-BEdqNcST.js → voice-runtime-DY6_o73o.js} +250 -150
- package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/README.md +19 -19
- package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist/v1.js +7 -3
- package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist/v7.js +5 -2
- package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist-node/v1.js +7 -3
- package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist-node/v7.js +5 -2
- package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/package.json +4 -3
- package/node_modules/@discordjs/voice/node_modules/@types/node/README.md +1 -1
- package/node_modules/@discordjs/voice/node_modules/@types/node/child_process.d.ts +0 -1
- package/node_modules/@discordjs/voice/node_modules/@types/node/crypto.d.ts +6 -6
- package/node_modules/@discordjs/voice/node_modules/@types/node/dns/promises.d.ts +5 -5
- package/node_modules/@discordjs/voice/node_modules/@types/node/dns.d.ts +5 -5
- package/node_modules/@discordjs/voice/node_modules/@types/node/fs.d.ts +7 -0
- package/node_modules/@discordjs/voice/node_modules/@types/node/http.d.ts +30 -0
- package/node_modules/@discordjs/voice/node_modules/@types/node/http2.d.ts +4 -4
- package/node_modules/@discordjs/voice/node_modules/@types/node/os.d.ts +30 -30
- package/node_modules/@discordjs/voice/node_modules/@types/node/package.json +2 -2
- package/node_modules/@discordjs/voice/node_modules/@types/node/perf_hooks.d.ts +2 -1
- package/node_modules/@discordjs/voice/node_modules/@types/node/process.d.ts +42 -43
- package/node_modules/@discordjs/voice/node_modules/@types/node/quic.d.ts +1049 -84
- package/node_modules/@discordjs/voice/node_modules/@types/node/sqlite.d.ts +14 -1
- package/node_modules/@discordjs/voice/node_modules/@types/node/stream/iter.d.ts +3 -2
- package/node_modules/@discordjs/voice/node_modules/@types/node/test.d.ts +61 -0
- package/node_modules/@discordjs/voice/node_modules/@types/node/v8.d.ts +20 -23
- package/node_modules/discord-api-types/CHANGELOG.md +8 -0
- package/node_modules/discord-api-types/package.json +4 -4
- package/node_modules/discord-api-types/payloads/v10/channel.d.ts +2 -2
- package/node_modules/discord-api-types/payloads/v10/channel.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/gateway.d.ts +4 -0
- package/node_modules/discord-api-types/payloads/v10/gateway.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/gateway.js.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/message.d.ts +4 -1
- package/node_modules/discord-api-types/payloads/v10/message.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/message.js +1 -0
- package/node_modules/discord-api-types/payloads/v10/message.js.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/channel.d.ts +2 -2
- package/node_modules/discord-api-types/payloads/v9/channel.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/gateway.d.ts +4 -0
- package/node_modules/discord-api-types/payloads/v9/gateway.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/gateway.js.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/message.d.ts +4 -1
- package/node_modules/discord-api-types/payloads/v9/message.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/message.js +1 -0
- package/node_modules/discord-api-types/payloads/v9/message.js.map +1 -1
- package/node_modules/typebox/build/format/date.d.mts +1 -1
- package/node_modules/typebox/build/format/date.mjs +1 -1
- package/node_modules/typebox/build/format/date_time.d.mts +2 -2
- package/node_modules/typebox/build/format/date_time.mjs +3 -3
- package/node_modules/typebox/build/format/email.d.mts +1 -1
- package/node_modules/typebox/build/format/email.mjs +2 -2
- package/node_modules/typebox/build/format/hostname.mjs +2 -10
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_email.mjs +3 -3
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
- package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
- package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
- package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
- package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
- package/node_modules/typebox/build/format/idna/index.mjs +2 -0
- package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
- package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
- package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
- package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
- package/node_modules/typebox/build/format/ipv4.mjs +2 -32
- package/node_modules/typebox/build/format/ipv6.mjs +2 -61
- package/node_modules/typebox/build/format/iri.d.mts +2 -2
- package/node_modules/typebox/build/format/iri.mjs +26 -8
- package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
- package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
- package/node_modules/typebox/build/format/regex.d.mts +1 -2
- package/node_modules/typebox/build/format/regex.mjs +2 -6
- package/node_modules/typebox/build/format/time.d.mts +2 -2
- package/node_modules/typebox/build/format/time.mjs +19 -14
- package/node_modules/typebox/build/format/uri.d.mts +1 -1
- package/node_modules/typebox/build/format/uri.mjs +3 -130
- package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
- package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
- package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
- package/node_modules/typebox/build/format/uri_template.mjs +4 -5
- package/node_modules/typebox/build/format/url.d.mts +3 -3
- package/node_modules/typebox/build/format/url.mjs +4 -5
- package/node_modules/typebox/build/guard/emit.d.mts +3 -1
- package/node_modules/typebox/build/guard/emit.mjs +12 -5
- package/node_modules/typebox/build/guard/guard.d.mts +8 -2
- package/node_modules/typebox/build/guard/guard.mjs +25 -4
- package/node_modules/typebox/build/guard/string.d.mts +2 -2
- package/node_modules/typebox/build/guard/string.mjs +7 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
- package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
- package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
- package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
- package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
- package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
- package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
- package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
- package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
- package/node_modules/typebox/build/schema/types/index.mjs +0 -2
- package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
- package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
- package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
- package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
- package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
- package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
- package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
- package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
- package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
- package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
- package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
- package/node_modules/typebox/build/type/script/parser.mjs +27 -23
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
- package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
- package/node_modules/typebox/package.json +27 -27
- package/node_modules/typebox/readme.md +79 -82
- package/node_modules/undici/docs/docs/api/Client.md +21 -8
- package/node_modules/undici/lib/api/readable.js +33 -43
- package/node_modules/undici/lib/core/connect.js +16 -2
- package/node_modules/undici/lib/core/symbols.js +1 -0
- package/node_modules/undici/lib/dispatcher/client-h1.js +3 -3
- package/node_modules/undici/lib/dispatcher/client-h2.js +179 -10
- package/node_modules/undici/lib/dispatcher/client.js +74 -29
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +28 -6
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +15 -1
- package/node_modules/undici/lib/handler/retry-handler.js +7 -2
- package/node_modules/undici/lib/interceptor/cache.js +5 -2
- package/node_modules/undici/lib/interceptor/deduplicate.js +1 -1
- package/node_modules/undici/lib/mock/mock-utils.js +213 -24
- package/node_modules/undici/lib/util/cache.js +2 -4
- package/node_modules/undici/lib/web/websocket/websocket.js +22 -0
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/client.d.ts +40 -0
- package/node_modules/ws/lib/permessage-deflate.js +3 -1
- package/node_modules/ws/package.json +1 -1
- package/openclaw.plugin.json +24 -10
- package/package.json +8 -10
- package/skills/discord/SKILL.md +1 -1
- package/dist/approval-message-safety-AcIxvrf3.js +0 -140
- package/dist/audit-core-xwjIczO0.js +0 -105
- package/dist/channel-actions-5s_hjYKd.js +0 -208
- package/dist/channel-api-CAJ0wMoV.js +0 -21
- package/dist/inbound-event-delivery-De2qxTrP.js +0 -39
- package/dist/provider.runtime-C9PnJZbZ.js +0 -2
- package/dist/runtime-api.actions.js +0 -3
- package/dist/runtime-api.lookup.js +0 -7
- package/dist/runtime-api.monitor-CHxrFPnW.js +0 -5
- package/dist/runtime-api.monitor.js +0 -8
- package/dist/runtime-api.send.js +0 -7
- package/dist/runtime-api.threads.js +0 -5
- package/dist/send.reactions-BAn0iiVQ.js +0 -78
- package/dist/send.receipt-IPI1p-SP.js +0 -66
- package/dist/subagent-hooks-CTt5KCJr.js +0 -120
- package/dist/subagent-progress-DhaE_h8a.js +0 -109
- package/dist/targets-yUFTHoAx.js +0 -3
- package/dist/transcripts-source-CfFMexGt.js +0 -123
- package/node_modules/p-map/index.d.ts +0 -155
- package/node_modules/p-map/index.js +0 -285
- package/node_modules/p-map/license +0 -9
- package/node_modules/p-map/package.json +0 -57
- package/node_modules/p-map/readme.md +0 -190
- package/node_modules/typebox/build/format/_idna.d.mts +0 -2
- package/node_modules/typebox/build/format/_idna.mjs +0 -246
- package/node_modules/typebox/build/format/_puny.d.mts +0 -1
- package/node_modules/typebox/build/format/_puny.mjs +0 -77
- package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
- package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
- package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
- package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
- package/dist/{allow-list-DnxIlPP2.js → allow-list-BDMimASD.js} +1 -1
- package/dist/{doctor-contract-DLa-BTiU.js → doctor-contract-DsWvKIXF.js} +1 -1
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { a as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { f as resolveDiscordReplyReference, u as createReusableDiscordReplyReference, v as resolveDiscordChannelId } from "./retry-DqHCW6PV.js";
|
|
2
|
+
import { h as readDiscordComponentSpec, m as coerceDiscordComponentParam } from "./components-Dk35LTf_.js";
|
|
3
|
+
import { o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-CfQ-vSyf.js";
|
|
4
|
+
import { r as sendDiscordComponentMessage } from "./send.components-CrBJpGT_.js";
|
|
5
|
+
import { a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, n as isDiscordGroupAllowedByPolicy, v as resolveGroupDmAllow } from "./allow-list-BDMimASD.js";
|
|
6
|
+
import { F as createDiscordRuntimeAccountContext, T as hasAnyGuildPermissionDiscord, U as getGateway, d as resolveDiscordTargetChannelId, v as canManageGuildMemberRoleDiscord, w as hasAnyChannelPermissionDiscord, x as fetchChannelPermissionsDiscord, y as canManageGuildRoleDiscord } from "./send.shared-DZJ1akvQ.js";
|
|
7
|
+
import { r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-D7JYmfm9.js";
|
|
8
|
+
import { t as isDiscordThreadChannelType } from "./channel-type-CVLZyGYS.js";
|
|
8
9
|
import { n as getPresence } from "./presence-cache-z1N8MbJ3.js";
|
|
9
|
-
import { A as
|
|
10
|
-
import
|
|
11
|
-
import "./targets-yUFTHoAx.js";
|
|
12
|
-
import { asBoolean, normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
10
|
+
import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchGuildInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-UJHiAm4C.js";
|
|
11
|
+
import "./targets-CQp53cGj.js";
|
|
13
12
|
import { ChannelType, PermissionFlagsBits } from "discord-api-types/v10";
|
|
14
13
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
15
|
-
import {
|
|
14
|
+
import { asBoolean, isRecord, normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
15
|
import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
16
|
+
import { assertMediaNotDataUrl, jsonResult, parseAvailableTags, readNonNegativeIntegerParam, readPositiveIntegerParam, readReactionParams, readStringArrayParam, readStringParam, withNormalizedTimestamp } from "openclaw/plugin-sdk/channel-actions";
|
|
17
|
+
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
18
|
+
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
17
19
|
//#region extensions/discord/src/actions/runtime-deps.ts
|
|
18
20
|
const discordGuildActionRuntime = {
|
|
19
21
|
addRoleDiscord,
|
|
@@ -71,7 +73,6 @@ const discordMessagingActionRuntime = {
|
|
|
71
73
|
searchMessagesDiscord,
|
|
72
74
|
sendDiscordComponentMessage,
|
|
73
75
|
sendMessageDiscord,
|
|
74
|
-
sendPollDiscord,
|
|
75
76
|
sendStickerDiscord,
|
|
76
77
|
sendVoiceMessageDiscord,
|
|
77
78
|
unpinMessageDiscord
|
|
@@ -242,8 +243,7 @@ function readDiscordChannelType(value) {
|
|
|
242
243
|
return typeof type === "number" ? type : void 0;
|
|
243
244
|
}
|
|
244
245
|
function isDiscordThreadChannel(value) {
|
|
245
|
-
|
|
246
|
-
return type === 10 || type === 11 || type === 12;
|
|
246
|
+
return isDiscordThreadChannelType(readDiscordChannelType(value));
|
|
247
247
|
}
|
|
248
248
|
function isDiscordReadAncestryAllowed(params) {
|
|
249
249
|
for (const ancestor of params.target.ancestors) {
|
|
@@ -624,9 +624,6 @@ const guildAdminActionGuards = {
|
|
|
624
624
|
channelPermissionSet: channelPermissionGuard,
|
|
625
625
|
channelPermissionRemove: channelPermissionGuard
|
|
626
626
|
};
|
|
627
|
-
function isThreadChannelType(channelType) {
|
|
628
|
-
return channelType === ChannelType.GuildNewsThread || channelType === ChannelType.GuildPublicThread || channelType === ChannelType.GuildPrivateThread;
|
|
629
|
-
}
|
|
630
627
|
function isLockedThreadChannel(channel) {
|
|
631
628
|
if (!channel || typeof channel !== "object") return false;
|
|
632
629
|
return channel.thread_metadata?.locked === true;
|
|
@@ -659,7 +656,7 @@ async function resolveGuildAdminActionPermissions(params) {
|
|
|
659
656
|
cfg: params.cfg,
|
|
660
657
|
accountId: params.accountId
|
|
661
658
|
}));
|
|
662
|
-
if (!
|
|
659
|
+
if (!isDiscordThreadChannelType("type" in channel ? channel.type : void 0)) return params.guard.permissions;
|
|
663
660
|
return params.values.archived === false && !("name" in params.values) && !("topic" in params.values) && !("position" in params.values) && !("parentId" in params.values) && !("clearParent" in params.values) && !("nsfw" in params.values) && !("rateLimitPerUser" in params.values) && !("locked" in params.values) && !("autoArchiveDuration" in params.values) && !isLockedThreadChannel(channel) ? [PermissionFlagsBits.ManageThreads, PermissionFlagsBits.SendMessagesInThreads] : [PermissionFlagsBits.ManageThreads];
|
|
664
661
|
}
|
|
665
662
|
async function verifySenderGuildAdminPermission(params) {
|
|
@@ -773,11 +770,23 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
773
770
|
}
|
|
774
771
|
case "emojiList": {
|
|
775
772
|
if (!isActionEnabled("reactions")) throw new Error("Discord reactions are disabled.");
|
|
776
|
-
const guildId =
|
|
773
|
+
const guildId = await resolveGuildIdForGuildAdminAction({
|
|
774
|
+
values: params,
|
|
775
|
+
accountId,
|
|
776
|
+
cfg
|
|
777
|
+
});
|
|
778
|
+
if (!guildId) throw new Error("Discord emoji listing requires guildId or a server channel.");
|
|
777
779
|
await assertGuildMetadataReadAllowed(guildId);
|
|
780
|
+
const limit = Math.min(readPositiveIntegerParam(params, "limit") ?? 100, 100);
|
|
781
|
+
const fetchEmojis = async () => (await discordGuildActionRuntime.listGuildEmojisDiscord(guildId, withOpts())).flatMap(({ name, id, animated }) => name && id ? [{
|
|
782
|
+
name,
|
|
783
|
+
identifier: `${name}:${id}`,
|
|
784
|
+
...animated ? { animated } : {}
|
|
785
|
+
}] : []).toSorted((left, right) => left.name.localeCompare(right.name) || left.identifier.localeCompare(right.identifier));
|
|
786
|
+
const gateway = getGateway(accountId ?? resolveDefaultDiscordAccountId(cfg));
|
|
778
787
|
return jsonResult({
|
|
779
788
|
ok: true,
|
|
780
|
-
emojis: await
|
|
789
|
+
emojis: (gateway ? await gateway.fetchGuildEmojis(guildId, fetchEmojis) : await fetchEmojis()).slice(0, limit)
|
|
781
790
|
});
|
|
782
791
|
}
|
|
783
792
|
case "emojiUpload": {
|
|
@@ -1114,9 +1123,8 @@ async function handleDiscordMessageManagementAction(ctx) {
|
|
|
1114
1123
|
if (rawInferChannelId) try {
|
|
1115
1124
|
const inferChannelId = discordMessagingActionRuntime.resolveDiscordChannelId(rawInferChannelId);
|
|
1116
1125
|
const channelInfo = await discordMessagingActionRuntime.fetchChannelInfoDiscord(inferChannelId, ctx.withOpts());
|
|
1117
|
-
if (channelInfo
|
|
1118
|
-
const
|
|
1119
|
-
const resolved = record.guild_id ?? record.guildId;
|
|
1126
|
+
if (isRecord(channelInfo)) {
|
|
1127
|
+
const resolved = channelInfo.guild_id ?? channelInfo.guildId;
|
|
1120
1128
|
if (typeof resolved === "string" && resolved.trim()) guildId = resolved.trim();
|
|
1121
1129
|
}
|
|
1122
1130
|
} catch {}
|
|
@@ -1206,6 +1214,14 @@ async function handleDiscordReactionMessagingAction(ctx) {
|
|
|
1206
1214
|
function hasDiscordComponentObjectKeys(value) {
|
|
1207
1215
|
return Boolean(value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length > 0);
|
|
1208
1216
|
}
|
|
1217
|
+
function resolveActionReplyReference(ctx, replyToId) {
|
|
1218
|
+
const reply = ctx.options?.reply;
|
|
1219
|
+
return reply ? resolveDiscordReplyReference({
|
|
1220
|
+
replyToId: reply.replyToId,
|
|
1221
|
+
replyToIdSource: reply.source,
|
|
1222
|
+
replyToMode: reply.source === "implicit" ? reply.mode : void 0
|
|
1223
|
+
}) : createReusableDiscordReplyReference(replyToId);
|
|
1224
|
+
}
|
|
1209
1225
|
function readDiscordThreadArchiveTimestamp(thread) {
|
|
1210
1226
|
if (!thread || typeof thread !== "object" || Array.isArray(thread)) return;
|
|
1211
1227
|
const metadata = thread.thread_metadata;
|
|
@@ -1253,7 +1269,7 @@ async function appendDiscordThreadRenameResult(ctx, params) {
|
|
|
1253
1269
|
};
|
|
1254
1270
|
}
|
|
1255
1271
|
try {
|
|
1256
|
-
if (!
|
|
1272
|
+
if (!isDiscordThreadChannelType((await discordMessagingActionRuntime.fetchChannelInfoDiscord(channelId, ctx.withOpts())).type)) return {
|
|
1257
1273
|
...params.payload,
|
|
1258
1274
|
warning: "Discord threadName was ignored because the send target is not a thread."
|
|
1259
1275
|
};
|
|
@@ -1286,28 +1302,13 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1286
1302
|
required: true,
|
|
1287
1303
|
label: "stickerIds"
|
|
1288
1304
|
});
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
const content = readStringParam(ctx.params, "content");
|
|
1296
|
-
const question = readStringParam(ctx.params, "question", { required: true });
|
|
1297
|
-
const answers = readStringArrayParam(ctx.params, "answers", {
|
|
1298
|
-
required: true,
|
|
1299
|
-
label: "answers"
|
|
1305
|
+
return jsonResult({
|
|
1306
|
+
ok: true,
|
|
1307
|
+
result: await discordMessagingActionRuntime.sendStickerDiscord(to, stickerIds, ctx.withOpts({
|
|
1308
|
+
content,
|
|
1309
|
+
...ctx.params.silent === true ? { silent: true } : {}
|
|
1310
|
+
}))
|
|
1300
1311
|
});
|
|
1301
|
-
const allowMultiselect = readBooleanParam(ctx.params, "allowMultiselect");
|
|
1302
|
-
const durationHours = readPositiveIntegerParam(ctx.params, "durationHours");
|
|
1303
|
-
const maxSelections = resolvePollMaxSelections(answers.length, allowMultiselect);
|
|
1304
|
-
await discordMessagingActionRuntime.sendPollDiscord(to, {
|
|
1305
|
-
question,
|
|
1306
|
-
options: answers,
|
|
1307
|
-
maxSelections,
|
|
1308
|
-
durationHours
|
|
1309
|
-
}, ctx.withOpts({ content }));
|
|
1310
|
-
return jsonResult({ ok: true });
|
|
1311
1312
|
}
|
|
1312
1313
|
case "sendMessage": {
|
|
1313
1314
|
if (!ctx.isActionEnabled("messages")) throw new Error("Discord message sends are disabled.");
|
|
@@ -1315,19 +1316,19 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1315
1316
|
const asVoice = ctx.params.asVoice === true;
|
|
1316
1317
|
const silent = ctx.params.silent === true;
|
|
1317
1318
|
const suppressEmbeds = ctx.params.suppressEmbeds === void 0 ? void 0 : ctx.params.suppressEmbeds === true;
|
|
1318
|
-
const rawComponents = ctx.params.components;
|
|
1319
|
+
const rawComponents = coerceDiscordComponentParam(ctx.params.components);
|
|
1319
1320
|
const componentSpec = hasDiscordComponentObjectKeys(rawComponents) ? discordMessagingActionRuntime.readDiscordComponentSpec(rawComponents) : null;
|
|
1320
1321
|
const components = Array.isArray(rawComponents) || typeof rawComponents === "function" ? rawComponents : void 0;
|
|
1321
1322
|
const mediaUrl = readStringParam(ctx.params, "mediaUrl", { trim: false }) ?? readStringParam(ctx.params, "path", { trim: false }) ?? readStringParam(ctx.params, "filePath", { trim: false });
|
|
1323
|
+
const rawEmbeds = ctx.params.embeds;
|
|
1324
|
+
const embeds = Array.isArray(rawEmbeds) ? rawEmbeds : void 0;
|
|
1322
1325
|
const content = readStringParam(ctx.params, "content", {
|
|
1323
|
-
required: !asVoice && !componentSpec && !components && !mediaUrl,
|
|
1326
|
+
required: !asVoice && !componentSpec && !components && !embeds?.length && !mediaUrl,
|
|
1324
1327
|
allowEmpty: true
|
|
1325
1328
|
});
|
|
1326
1329
|
const filename = readStringParam(ctx.params, "filename");
|
|
1327
1330
|
const replyTo = readStringParam(ctx.params, "replyTo");
|
|
1328
1331
|
const threadName = readStringParam(ctx.params, "threadName");
|
|
1329
|
-
const rawEmbeds = ctx.params.embeds;
|
|
1330
|
-
const embeds = Array.isArray(rawEmbeds) ? rawEmbeds : void 0;
|
|
1331
1332
|
const sessionKey = readStringParam(ctx.params, "__sessionKey");
|
|
1332
1333
|
const agentId = readStringParam(ctx.params, "__agentId");
|
|
1333
1334
|
if (componentSpec) {
|
|
@@ -1338,25 +1339,26 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1338
1339
|
...componentSpec,
|
|
1339
1340
|
text: normalizedContent
|
|
1340
1341
|
};
|
|
1342
|
+
const result = await discordMessagingActionRuntime.sendDiscordComponentMessage(to, payload, {
|
|
1343
|
+
...ctx.withOpts(),
|
|
1344
|
+
silent,
|
|
1345
|
+
reply: resolveActionReplyReference(ctx, replyTo),
|
|
1346
|
+
sessionKey: sessionKey ?? void 0,
|
|
1347
|
+
agentId: agentId ?? void 0,
|
|
1348
|
+
mediaUrl: mediaUrl ?? void 0,
|
|
1349
|
+
filename: filename ?? void 0,
|
|
1350
|
+
mediaAccess: ctx.options?.mediaAccess,
|
|
1351
|
+
mediaLocalRoots: ctx.options?.mediaLocalRoots,
|
|
1352
|
+
mediaReadFile: ctx.options?.mediaReadFile,
|
|
1353
|
+
...suppressEmbeds === void 0 ? {} : { suppressEmbeds }
|
|
1354
|
+
});
|
|
1341
1355
|
return jsonResult(await appendDiscordThreadRenameResult(ctx, {
|
|
1342
1356
|
payload: {
|
|
1343
1357
|
ok: true,
|
|
1344
|
-
result
|
|
1345
|
-
...ctx.withOpts(),
|
|
1346
|
-
silent,
|
|
1347
|
-
reply: createReusableDiscordReplyReference(replyTo),
|
|
1348
|
-
sessionKey: sessionKey ?? void 0,
|
|
1349
|
-
agentId: agentId ?? void 0,
|
|
1350
|
-
mediaUrl: mediaUrl ?? void 0,
|
|
1351
|
-
filename: filename ?? void 0,
|
|
1352
|
-
mediaAccess: ctx.options?.mediaAccess,
|
|
1353
|
-
mediaLocalRoots: ctx.options?.mediaLocalRoots,
|
|
1354
|
-
mediaReadFile: ctx.options?.mediaReadFile,
|
|
1355
|
-
...suppressEmbeds === void 0 ? {} : { suppressEmbeds }
|
|
1356
|
-
}),
|
|
1358
|
+
result,
|
|
1357
1359
|
components: true
|
|
1358
1360
|
},
|
|
1359
|
-
target: to,
|
|
1361
|
+
target: result.receipt?.threadId ?? to,
|
|
1360
1362
|
threadName
|
|
1361
1363
|
}));
|
|
1362
1364
|
}
|
|
@@ -1369,7 +1371,7 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1369
1371
|
ok: true,
|
|
1370
1372
|
result: await discordMessagingActionRuntime.sendVoiceMessageDiscord(to, mediaUrl, {
|
|
1371
1373
|
...ctx.withOpts(),
|
|
1372
|
-
reply:
|
|
1374
|
+
reply: resolveActionReplyReference(ctx, replyTo),
|
|
1373
1375
|
silent,
|
|
1374
1376
|
mediaAccess: ctx.options?.mediaAccess,
|
|
1375
1377
|
mediaLocalRoots: ctx.options?.mediaLocalRoots,
|
|
@@ -1381,24 +1383,25 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1381
1383
|
threadName
|
|
1382
1384
|
}));
|
|
1383
1385
|
}
|
|
1386
|
+
const result = await discordMessagingActionRuntime.sendMessageDiscord(to, content ?? "", {
|
|
1387
|
+
...ctx.withOpts(),
|
|
1388
|
+
mediaAccess: ctx.options?.mediaAccess,
|
|
1389
|
+
mediaUrl,
|
|
1390
|
+
filename: filename ?? void 0,
|
|
1391
|
+
mediaLocalRoots: ctx.options?.mediaLocalRoots,
|
|
1392
|
+
mediaReadFile: ctx.options?.mediaReadFile,
|
|
1393
|
+
reply: resolveActionReplyReference(ctx, replyTo),
|
|
1394
|
+
components,
|
|
1395
|
+
embeds,
|
|
1396
|
+
silent,
|
|
1397
|
+
...suppressEmbeds === void 0 ? {} : { suppressEmbeds }
|
|
1398
|
+
});
|
|
1384
1399
|
return jsonResult(await appendDiscordThreadRenameResult(ctx, {
|
|
1385
1400
|
payload: {
|
|
1386
1401
|
ok: true,
|
|
1387
|
-
result
|
|
1388
|
-
...ctx.withOpts(),
|
|
1389
|
-
mediaAccess: ctx.options?.mediaAccess,
|
|
1390
|
-
mediaUrl,
|
|
1391
|
-
filename: filename ?? void 0,
|
|
1392
|
-
mediaLocalRoots: ctx.options?.mediaLocalRoots,
|
|
1393
|
-
mediaReadFile: ctx.options?.mediaReadFile,
|
|
1394
|
-
reply: createReusableDiscordReplyReference(replyTo),
|
|
1395
|
-
components,
|
|
1396
|
-
embeds,
|
|
1397
|
-
silent,
|
|
1398
|
-
...suppressEmbeds === void 0 ? {} : { suppressEmbeds }
|
|
1399
|
-
})
|
|
1402
|
+
result
|
|
1400
1403
|
},
|
|
1401
|
-
target: to,
|
|
1404
|
+
target: result.receipt?.threadId ?? to,
|
|
1402
1405
|
threadName
|
|
1403
1406
|
}));
|
|
1404
1407
|
}
|
|
@@ -1479,7 +1482,8 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1479
1482
|
mediaAccess: ctx.options?.mediaAccess,
|
|
1480
1483
|
mediaLocalRoots: ctx.options?.mediaLocalRoots,
|
|
1481
1484
|
mediaReadFile: ctx.options?.mediaReadFile,
|
|
1482
|
-
reply:
|
|
1485
|
+
reply: resolveActionReplyReference(ctx, replyTo),
|
|
1486
|
+
...ctx.params.silent === true ? { silent: true } : {}
|
|
1483
1487
|
})
|
|
1484
1488
|
});
|
|
1485
1489
|
}
|
|
@@ -1601,13 +1605,13 @@ const VALID_STATUSES = /* @__PURE__ */ new Set([
|
|
|
1601
1605
|
"idle",
|
|
1602
1606
|
"invisible"
|
|
1603
1607
|
]);
|
|
1604
|
-
async function handleDiscordPresenceAction(action, params, isActionEnabled) {
|
|
1608
|
+
async function handleDiscordPresenceAction(action, params, isActionEnabled, cfg) {
|
|
1605
1609
|
if (action !== "setPresence") throw new Error(`Unknown presence action: ${action}`);
|
|
1606
1610
|
if (!isActionEnabled("presence", false)) throw new Error("Discord presence changes are disabled.");
|
|
1607
|
-
const accountId = readStringParam(params, "accountId");
|
|
1611
|
+
const accountId = readStringParam(params, "accountId") ?? resolveDefaultDiscordAccountId(cfg);
|
|
1608
1612
|
const gateway = getGateway(accountId);
|
|
1609
|
-
if (!gateway) throw new Error(`Discord gateway not available
|
|
1610
|
-
if (!gateway.isConnected) throw new Error(`Discord gateway is not connected
|
|
1613
|
+
if (!gateway) throw new Error(`Discord gateway not available for account "${accountId}". The bot may not be connected.`);
|
|
1614
|
+
if (!gateway.isConnected) throw new Error(`Discord gateway is not connected for account "${accountId}".`);
|
|
1611
1615
|
const statusRaw = readStringParam(params, "status") ?? "online";
|
|
1612
1616
|
if (!VALID_STATUSES.has(statusRaw)) throw new Error(`Invalid status "${statusRaw}". Must be one of: ${[...VALID_STATUSES].join(", ")}`);
|
|
1613
1617
|
const status = statusRaw;
|
|
@@ -1695,7 +1699,6 @@ const moderationActions = /* @__PURE__ */ new Set([
|
|
|
1695
1699
|
"kick",
|
|
1696
1700
|
"ban"
|
|
1697
1701
|
]);
|
|
1698
|
-
const presenceActions = /* @__PURE__ */ new Set(["setPresence"]);
|
|
1699
1702
|
async function handleDiscordAction(params, cfg, options) {
|
|
1700
1703
|
const action = readStringParam(params, "action", { required: true });
|
|
1701
1704
|
const isActionEnabled = createDiscordActionGate({
|
|
@@ -1705,7 +1708,7 @@ async function handleDiscordAction(params, cfg, options) {
|
|
|
1705
1708
|
if (messagingActions.has(action)) return await handleDiscordMessagingAction(action, params, isActionEnabled, cfg, options);
|
|
1706
1709
|
if (guildActions.has(action)) return await handleDiscordGuildAction(action, params, isActionEnabled, cfg, options);
|
|
1707
1710
|
if (moderationActions.has(action)) return await handleDiscordModerationAction(action, params, isActionEnabled, cfg);
|
|
1708
|
-
if (
|
|
1711
|
+
if (action === "setPresence") return await handleDiscordPresenceAction(action, params, isActionEnabled, cfg);
|
|
1709
1712
|
throw new Error(`Unknown action: ${action}`);
|
|
1710
1713
|
}
|
|
1711
1714
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { c as resolveDiscordAccount, g as selectDiscordActivitiesRuntimeConfig, n as isDiscordAccountEnabledForRuntime, r as listDiscordAccountIds } from "./accounts-CfQ-vSyf.js";
|
|
2
|
+
import { z as resolveDiscordProxyFetchForAccount } from "./send.shared-DZJ1akvQ.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
//#region extensions/discord/src/activities/config.ts
|
|
5
5
|
function resolveDiscordActivitiesConfig(account, env = process.env) {
|
|
@@ -30,7 +30,7 @@ var DiscordActivitiesRuntime = class {
|
|
|
30
30
|
this.learnedApplicationIds = /* @__PURE__ */ new Map();
|
|
31
31
|
}
|
|
32
32
|
currentConfig() {
|
|
33
|
-
return this.getCurrentConfig?.() ?? this.startupConfig;
|
|
33
|
+
return selectDiscordActivitiesRuntimeConfig(this.getCurrentConfig?.() ?? this.startupConfig);
|
|
34
34
|
}
|
|
35
35
|
registerApplicationId(accountId, applicationId) {
|
|
36
36
|
const trimmed = applicationId.trim();
|
|
@@ -41,7 +41,7 @@ var DiscordActivitiesRuntime = class {
|
|
|
41
41
|
cfg,
|
|
42
42
|
accountId
|
|
43
43
|
});
|
|
44
|
-
if (!isDiscordAccountEnabledForRuntime(account, cfg)) return null;
|
|
44
|
+
if (!listDiscordAccountIds(cfg).includes(account.accountId) || !isDiscordAccountEnabledForRuntime(account, cfg) || account.tokenStatus !== "available") return null;
|
|
45
45
|
const activities = resolveDiscordActivitiesConfig(account.config, this.env);
|
|
46
46
|
if (!activities.enabled) return null;
|
|
47
47
|
const applicationId = activities.applicationId ?? this.learnedApplicationIds.get(account.accountId) ?? account.config.applicationId?.trim();
|
|
@@ -62,12 +62,11 @@ var DiscordActivitiesRuntime = class {
|
|
|
62
62
|
if (applicationId) return accounts.find((account) => account.applicationId === applicationId) ?? null;
|
|
63
63
|
return accounts.length === 1 ? accounts[0] ?? null : null;
|
|
64
64
|
}
|
|
65
|
+
hasEnabledAccounts(cfg = this.currentConfig()) {
|
|
66
|
+
return listDiscordAccountIds(cfg).some((accountId) => this.resolveAccount(accountId, cfg) !== null);
|
|
67
|
+
}
|
|
65
68
|
isAccountEnabled(accountId, cfg = this.currentConfig()) {
|
|
66
|
-
|
|
67
|
-
cfg,
|
|
68
|
-
accountId
|
|
69
|
-
});
|
|
70
|
-
return isDiscordAccountEnabledForRuntime(account, cfg) && resolveDiscordActivitiesConfig(account.config, this.env).enabled;
|
|
69
|
+
return this.resolveAccount(accountId, cfg) !== null;
|
|
71
70
|
}
|
|
72
71
|
};
|
|
73
72
|
let activeRuntime;
|
|
@@ -78,4 +77,4 @@ function getDiscordActivitiesRuntime() {
|
|
|
78
77
|
return activeRuntime;
|
|
79
78
|
}
|
|
80
79
|
//#endregion
|
|
81
|
-
export {
|
|
80
|
+
export { getDiscordActivitiesRuntime as n, setDiscordActivitiesRuntime as r, DiscordActivitiesRuntime as t };
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { A as hasAllGuildPermissionsDiscord, B as clearGateways, H as registerGateway, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, U as unregisterGateway, V as getGateway, k as fetchMemberGuildPermissionsDiscord, w as DiscordSendError } from "./send.shared-BmwFjW6T.js";
|
|
3
|
-
import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-iJyFXw9L.js";
|
|
1
|
+
import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-CrBJpGT_.js";
|
|
4
2
|
import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
|
|
5
|
-
import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-
|
|
6
|
-
import { _ as resolveDiscordShouldRequireMention, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, f as resolveDiscordGuildEntry, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, s as resolveDiscordChannelConfig, t as allowListMatches, u as resolveDiscordCommandAuthorized, v as resolveGroupDmAllow, y as shouldEmitDiscordReactionNotification } from "./allow-list-
|
|
7
|
-
import {
|
|
3
|
+
import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-DuAXKkan.js";
|
|
4
|
+
import { _ as resolveDiscordShouldRequireMention, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, f as resolveDiscordGuildEntry, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, s as resolveDiscordChannelConfig, t as allowListMatches, u as resolveDiscordCommandAuthorized, v as resolveGroupDmAllow, y as shouldEmitDiscordReactionNotification } from "./allow-list-BDMimASD.js";
|
|
5
|
+
import { C as hasAllGuildPermissionsDiscord, G as unregisterGateway, H as clearGateways, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, U as getGateway, W as registerGateway, _ as DiscordSendError, x as fetchChannelPermissionsDiscord } from "./send.shared-DZJ1akvQ.js";
|
|
6
|
+
import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-D7JYmfm9.js";
|
|
8
7
|
import { i as setPresence, n as getPresence, r as presenceCacheSize, t as clearPresences } from "./presence-cache-z1N8MbJ3.js";
|
|
9
|
-
import { A as
|
|
8
|
+
import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-UJHiAm4C.js";
|
|
10
9
|
import { a as isAbortError, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, l as runDiscordTaskWithTimeout, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, o as normalizeDiscordInboundWorkerTimeoutMs, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, s as normalizeDiscordListenerTimeoutMs, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-B9cy6RvQ.js";
|
|
11
|
-
import { i as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { t as
|
|
17
|
-
import { t as
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import "./
|
|
22
|
-
import {
|
|
23
|
-
import "./
|
|
24
|
-
import { A as sanitizeDiscordThreadName, O as resolveDiscordReplyTarget, T as registerDiscordListener, d as createDiscordGatewayPlugin, f as resolveDiscordGatewayIntents, h as createDiscordNativeCommand, p as waitForDiscordGatewayPluginRegistration, t as monitorDiscordProvider } from "./provider-DvSNb-2v.js";
|
|
25
|
-
import { t as createDiscordMessageHandler } from "./message-handler-Unk_f10F.js";
|
|
26
|
-
import "./runtime-api.monitor-CHxrFPnW.js";
|
|
27
|
-
import "./runtime-api.send.js";
|
|
28
|
-
import "./runtime-api.threads.js";
|
|
10
|
+
import { c as readDiscordChannelMoveParams, i as requiredGuildPermissionForModerationAction, l as readDiscordParentIdParam, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-BYamRVPN.js";
|
|
11
|
+
import { p as discordMessageActions, t as resolveDiscordOutboundSessionRoute } from "./outbound-session-route-Bn4uXaoE.js";
|
|
12
|
+
import { C as resolveThreadBindingMaxAgeExpiresAt, S as resolveThreadBindingInactivityExpiresAt, w as resolveThreadBindingMaxAgeMs, x as resolveThreadBindingIdleTimeoutMs } from "./thread-bindings.state-D8OMdk4O.js";
|
|
13
|
+
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-CJb-BpPL.js";
|
|
14
|
+
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-D2yl_2CN.js";
|
|
15
|
+
import { t as resolveDiscordUserAllowlist } from "./resolve-users-BLxfqajZ.js";
|
|
16
|
+
import { _ as resolveThreadBindingThreadName, g as resolveThreadBindingIntroText, h as formatThreadBindingDurationLabel, m as resolveThreadBindingPersonaFromRecord, n as createThreadBindingManager, p as resolveThreadBindingPersona, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-Clm77DBM.js";
|
|
17
|
+
import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-DvYP79fy.js";
|
|
18
|
+
import { i as probeDiscord, n as fetchDiscordApplicationSummary, o as resolveDiscordPrivilegedIntentsFromFlags, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-n6ZXxK8V.js";
|
|
19
|
+
import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-DgrvFPGt.js";
|
|
20
|
+
import { d as resolveDiscordGatewayIntents, f as waitForDiscordGatewayPluginRegistration, p as createDiscordNativeCommand, t as monitorDiscordProvider, u as createDiscordGatewayPlugin, y as registerDiscordListener } from "./provider-LXiOcJrH.js";
|
|
21
|
+
import { o as sanitizeDiscordThreadName, r as resolveDiscordReplyTarget } from "./threading-CXuu_7o9.js";
|
|
22
|
+
import { t as createDiscordMessageHandler } from "./message-handler-C5By3yl5.js";
|
|
29
23
|
export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DiscordSendError, addRoleDiscord, allowListMatches, auditDiscordChannelPermissions, autoBindSpawnedDiscordSubagent, banMemberDiscord, clearGateways, clearPresences, collectDiscordAuditChannelIds, createChannelDiscord, createDiscordGatewayPlugin, createDiscordMessageHandler, createDiscordNativeCommand, createNoopThreadBindingManager, createScheduledEventDiscord, createThreadBindingManager, createThreadDiscord, deleteChannelDiscord, deleteMessageDiscord, discordMessageActions, editChannelDiscord, editDiscordComponentMessage, editMessageDiscord, fetchChannelInfoDiscord, fetchChannelPermissionsDiscord, fetchDiscordApplicationId, fetchDiscordApplicationSummary, fetchMemberGuildPermissionsDiscord, fetchMemberInfoDiscord, fetchMessageDiscord, fetchReactionsDiscord, fetchRoleInfoDiscord, fetchVoiceStatusDiscord, formatThreadBindingDurationLabel, getGateway, getPresence, getThreadBindingManager, handleDiscordAction, hasAllGuildPermissionsDiscord, hasAnyGuildPermissionDiscord, isAbortError, isDiscordGroupAllowedByPolicy, isDiscordModerationAction, kickMemberDiscord, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, listGuildChannelsDiscord, listGuildEmojisDiscord, listPinsDiscord, listScheduledEventsDiscord, listThreadBindingsBySessionKey, listThreadBindingsForAccount, listThreadsDiscord, monitorDiscordProvider, moveChannelDiscord, normalizeDiscordAllowList, normalizeDiscordInboundWorkerTimeoutMs, normalizeDiscordListenerTimeoutMs, normalizeDiscordSlug, parseApplicationIdFromToken, pinMessageDiscord, presenceCacheSize, probeDiscord, reactMessageDiscord, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, readMessagesDiscord, reconcileAcpThreadBindingsOnStartup, registerBuiltDiscordComponentMessage, registerDiscordListener, registerGateway, removeChannelPermissionDiscord, removeOwnReactionsDiscord, removeReactionDiscord, removeRoleDiscord, requiredGuildPermissionForModerationAction, resolveDiscordChannelAllowlist, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordOutboundSessionRoute, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveDiscordThreadBindingIdleTimeoutMs, resolveDiscordThreadBindingMaxAgeMs, resolveDiscordUserAllowlist, resolveEventCoverImage, resolveGroupDmAllow, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingInactivityExpiresAt, resolveThreadBindingIntroText, resolveThreadBindingMaxAgeExpiresAt, resolveThreadBindingMaxAgeMs, resolveThreadBindingPersona, resolveThreadBindingPersonaFromRecord, resolveThreadBindingThreadName, resolveThreadBindingsEnabled, runDiscordTaskWithTimeout, sanitizeDiscordThreadName, searchMessagesDiscord, sendDiscordComponentMessage, sendMessageDiscord, sendPollDiscord, sendStickerDiscord, sendTypingDiscord, sendVoiceMessageDiscord, sendWebhookMessageDiscord, setChannelPermissionDiscord, setDiscordRuntime, setPresence, setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey, shouldEmitDiscordReactionNotification, timeoutMemberDiscord, unbindThreadBindingsBySessionKey, unpinMessageDiscord, unregisterGateway, uploadEmojiDiscord, uploadStickerDiscord, waitForDiscordGatewayPluginRegistration };
|