@openclaw/discord 2026.10.1-beta.2 → 2026.10.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.
Files changed (72) hide show
  1. package/dist/.setup/{account-inspect-CjKqkDnH.mjs → account-inspect-DsER5ILV.mjs} +2 -2
  2. package/dist/.setup/{channel-type-D1_b5UhU.mjs → allow-list-vxkG9_JD.mjs} +6 -6
  3. package/dist/.setup/{api-_oznjffB.mjs → api-DlNUkDqj.mjs} +3 -3
  4. package/dist/.setup/{approval-handler.runtime-BilYSrRF.mjs → approval-handler.runtime-DmnEa54W.mjs} +8 -8
  5. package/dist/.setup/{approval-message-updates-CgRwc2_Q.mjs → approval-message-updates-B0jdSqOj.mjs} +2 -2
  6. package/dist/.setup/{audit-DtvzxONM.mjs → audit-BpikUwN_.mjs} +4 -4
  7. package/dist/.setup/{channel-z5lQMS_9.mjs → channel-Dr-AUnGt.mjs} +23 -23
  8. package/dist/.setup/{channel.setup-DBJtugJO.mjs → channel.setup-BmNvkidb.mjs} +5 -5
  9. package/dist/.setup/{components-CzXLR3QH.mjs → components-DLJR0xU-.mjs} +2 -2
  10. package/dist/.setup/{conversation-binding-route-Bi62ApSt.mjs → conversation-binding-route-DicJC1Lj.mjs} +1 -1
  11. package/dist/.setup/{directory-config-BH1LA-gi.mjs → directory-config-gqsdcplU.mjs} +1 -1
  12. package/dist/.setup/{directory-live-C9xz7IPm.mjs → directory-live-Bipr0eUJ.mjs} +3 -3
  13. package/dist/.setup/{discord-J7aRzq2Q.mjs → discord-9gysrhzp.mjs} +10 -10
  14. package/dist/.setup/{doctor-DxSAngJq.mjs → doctor-B2bskDcF.mjs} +4 -4
  15. package/dist/.setup/{handle-action-DlmFX-_G.mjs → handle-action-UmkjXBfo.mjs} +8 -8
  16. package/dist/.setup/{handle-action.guild-admin-BnyqTczR.mjs → handle-action.guild-admin-CB4sc9VV.mjs} +2 -2
  17. package/dist/.setup/{live-policy-config-emmPNyh4.mjs → live-policy-config-VxexfRKo.mjs} +1 -1
  18. package/dist/.setup/{message-handler-BNToPZrx.mjs → message-handler-BK69A-NB.mjs} +13 -13
  19. package/dist/.setup/{message-handler.preflight-D0BcCyI7.mjs → message-handler.preflight-DFpsh90H.mjs} +17 -17
  20. package/dist/.setup/{message-handler.preflight-pluralkit-D1g3eq0B.mjs → message-handler.preflight-pluralkit-BXGGVmpe.mjs} +7 -7
  21. package/dist/.setup/{message-handler.process-CThRmCWK.mjs → message-handler.process-TKoqcqIP.mjs} +21 -21
  22. package/dist/.setup/{outbound-adapter-BPq0c2wY.mjs → outbound-adapter-D4wRAb5S.mjs} +9 -9
  23. package/dist/.setup/{outbound-session-route-DGPPKA0z.mjs → outbound-session-route-BvBH4LC6.mjs} +13 -13
  24. package/dist/.setup/{probe-DIRY8vh7.mjs → probe-BwSKpnZf.mjs} +4 -4
  25. package/dist/.setup/{provider-D2OKMo0f.mjs → provider-YP8gN9_o.mjs} +74 -74
  26. package/dist/.setup/{provider-session.runtime-BupCTZQv.mjs → provider-session.runtime-D1gkPxHT.mjs} +3 -3
  27. package/dist/.setup/provider.runtime-CZ51OIgD.mjs +2 -0
  28. package/dist/.setup/{realtime-session.runtime-D5RSC8Mm.mjs → realtime-session.runtime-BKUQBy1u.mjs} +19 -19
  29. package/dist/.setup/{resolve-allowlist-common-DUYRrrVB.mjs → resolve-allowlist-common-BUyU3C-T.mjs} +3 -3
  30. package/dist/.setup/{resolve-channels--MUatisx.mjs → resolve-channels-DA6QlhZN.mjs} +3 -3
  31. package/dist/.setup/{resolve-users-CxLcDmM0.mjs → resolve-users-DNrwvunm.mjs} +2 -2
  32. package/dist/.setup/{runtime-CwUA0RLr.mjs → runtime-CESTexGn.mjs} +12 -12
  33. package/dist/.setup/{runtime-CerRBfaa.mjs → runtime-DPcmPST9.mjs} +2 -2
  34. package/dist/.setup/{send-2X7m2Zmw.mjs → send-CJk3VP5q.mjs} +16 -16
  35. package/dist/.setup/{send.components-RqvgmCs3.mjs → send.components-dPljuV24.mjs} +7 -7
  36. package/dist/.setup/{send.outbound-B4QHSEzm.mjs → send.outbound-rOboMO_6.mjs} +8 -8
  37. package/dist/.setup/{retry-BKzO25k4.mjs → send.receipt-DVOg2Oaw.mjs} +203 -203
  38. package/dist/.setup/{send.shared-BQIUh6Vn.mjs → send.shared-C4CN24D9.mjs} +40 -40
  39. package/dist/.setup/{sender-identity-CooeYfAn.mjs → sender-identity-AHpUNr72.mjs} +1 -1
  40. package/dist/.setup/setup-plugin-api-BVlCz3fm.mjs +3 -0
  41. package/dist/.setup/{shared-CIJn6AEC.mjs → shared-BoBnM5kM.mjs} +7 -7
  42. package/dist/.setup/{subagent-hooks-BYlVnxzy.mjs → subagent-hooks-HH8Uy9cx.mjs} +2 -2
  43. package/dist/.setup/{system-events-CQ3if_pS.mjs → system-events-Cwxaww8i.mjs} +2 -2
  44. package/dist/.setup/{target-resolver-Dzxf80Y3.mjs → target-resolver-CSFoPQ12.mjs} +3 -3
  45. package/dist/.setup/targets-bqXQENmX.mjs +3 -0
  46. package/dist/.setup/{thread-bindings-yNNlcUWE.mjs → thread-bindings-DjQCkmsd.mjs} +4 -4
  47. package/dist/.setup/{thread-bindings.manager-plk0zJAW.mjs → thread-bindings.manager-D2-GYZ5s.mjs} +10 -10
  48. package/dist/.setup/{transcripts-source-CNWswry-.mjs → transcripts-source-CaZQnGRH.mjs} +18 -18
  49. package/dist/.setup/{voice-runtime-Bc75quiH.mjs → voice-runtime-DDymtIw8.mjs} +46 -46
  50. package/dist/account-inspect-api.js +1 -1
  51. package/dist/action-runtime-api.js +1 -1
  52. package/dist/activities-api.js +788 -1
  53. package/dist/api.js +15 -15
  54. package/dist/channel-config-api.js +1 -1
  55. package/dist/channel-plugin-api.js +1 -1
  56. package/dist/directory-contract-api.js +1 -1
  57. package/dist/index.js +9 -5
  58. package/dist/runtime-api.js +20 -20
  59. package/dist/setup-entry.js +1 -1
  60. package/dist/setup-plugin-api.js +1 -1
  61. package/dist/src/voice/audio-worker.runtime.js +3 -3
  62. package/dist/subagent-hooks-api.js +1 -1
  63. package/dist/transcripts-source-api.js +1 -1
  64. package/package.json +4 -4
  65. package/dist/.setup/activities-api-BL_hJ0JQ.mjs +0 -789
  66. package/dist/.setup/provider.runtime-BaW_JnfU.mjs +0 -2
  67. package/dist/.setup/setup-plugin-api-nn_giXvZ.mjs +0 -3
  68. package/dist/.setup/targets-Lf8D55w-.mjs +0 -3
  69. package/dist/.setup/{accounts-DXHCL8Zm.mjs → accounts-HE9-mj1L.mjs} +2 -2
  70. package/dist/.setup/{config-schema-CsemBDpS.mjs → config-schema-BQWfnSCx.mjs} +1 -1
  71. package/dist/.setup/{receive-recovery-GqF2PUN_.mjs → receive-recovery-DgkX7Qvi.mjs} +2 -2
  72. package/dist/.setup/{thread-bindings.session-updates-C9aKtVs6.mjs → thread-bindings.session-updates-Bu_CGr_O.mjs} +2 -2
@@ -1,7 +1,7 @@
1
- import { _ as inspectDiscordAccountTokenState, o as mergeDiscordAccountConfig, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig, v as resolveDiscordAccountAvailability } from "./accounts-DXHCL8Zm.mjs";
2
- import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
1
+ import { _ as inspectDiscordAccountTokenState, o as mergeDiscordAccountConfig, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig, v as resolveDiscordAccountAvailability } from "./accounts-HE9-mj1L.mjs";
3
2
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
4
3
  import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
4
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  //#region extensions/discord/src/account-inspect.ts
6
6
  function inspectDiscordAccountPrimary(params) {
7
7
  const accountId = normalizeAccountId(params.accountId ?? resolveDefaultDiscordAccountId(params.cfg));
@@ -5,6 +5,11 @@ import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtim
5
5
  import { fetchWithSsrFGuard, isBlockedHostnameOrIp, isLoopbackHost } from "openclaw/plugin-sdk/ssrf-runtime";
6
6
  import { buildChannelKeyCandidates, normalizeChannelSlug, resolveChannelEntryMatchWithFallback, resolveChannelMatchConfig } from "openclaw/plugin-sdk/channel-targets";
7
7
  import { resolveAllowlistMatchByCandidates } from "openclaw/plugin-sdk/allow-from";
8
+ //#region extensions/discord/src/channel-type.ts
9
+ function isDiscordThreadChannelType(channelType) {
10
+ return channelType === ChannelType.AnnouncementThread || channelType === ChannelType.PublicThread || channelType === ChannelType.PrivateThread;
11
+ }
12
+ //#endregion
8
13
  //#region extensions/discord/src/endpoint-runtime.ts
9
14
  const DISCORD_ENDPOINT_RESPONSE_MAX_BYTES = 8388608;
10
15
  const DISCORD_API_URL_ENV = "DISCORD_API_URL";
@@ -522,9 +527,4 @@ function shouldEmitDiscordReactionNotification(params) {
522
527
  return false;
523
528
  }
524
529
  //#endregion
525
- //#region extensions/discord/src/channel-type.ts
526
- function isDiscordThreadChannelType(channelType) {
527
- return channelType === ChannelType.AnnouncementThread || channelType === ChannelType.PublicThread || channelType === ChannelType.PrivateThread;
528
- }
529
- //#endregion
530
- export { resolveDiscordEndpointMediaGuard as A, formatDiscordUserTag as C, assertDiscordEndpointGatewayUrl as D, parseDiscordRetryAfterBodySeconds as E, getDiscordEndpointRuntime as O, formatDiscordReactionEmoji as S, resolveTimestampMs as T, resolveDiscordOwnerAccess as _, normalizeDiscordAllowList as a, resolveGroupDmAllow as b, resolveDiscordAllowListMatch as c, resolveDiscordChannelPolicyCommandAuthorizer as d, resolveDiscordCommandAuthorized as f, resolveDiscordMentionPolicy as g, resolveDiscordMemberAllowed as h, isDiscordGroupAllowedByPolicy as i, resolveDiscordEndpointAttachmentGuard as k, resolveDiscordChannelConfig as l, resolveDiscordMemberAccessState as m, allowListMatches as n, normalizeDiscordDisplaySlug as o, resolveDiscordGuildEntry as p, hasConfiguredDiscordChannels as r, normalizeDiscordSlug as s, isDiscordThreadChannelType as t, resolveDiscordChannelConfigWithFallback as u, resolveDiscordOwnerAllowFrom as v, resolveDiscordSystemLocation as w, shouldEmitDiscordReactionNotification as x, resolveDiscordShouldRequireMention as y };
530
+ export { isDiscordThreadChannelType as A, resolveDiscordSystemLocation as C, getDiscordEndpointRuntime as D, assertDiscordEndpointGatewayUrl as E, resolveDiscordEndpointAttachmentGuard as O, formatDiscordUserTag as S, parseDiscordRetryAfterBodySeconds as T, resolveDiscordOwnerAllowFrom as _, normalizeDiscordDisplaySlug as a, shouldEmitDiscordReactionNotification as b, resolveDiscordChannelConfig as c, resolveDiscordCommandAuthorized as d, resolveDiscordGuildEntry as f, resolveDiscordOwnerAccess as g, resolveDiscordMentionPolicy as h, normalizeDiscordAllowList as i, resolveDiscordEndpointMediaGuard as k, resolveDiscordChannelConfigWithFallback as l, resolveDiscordMemberAllowed as m, hasConfiguredDiscordChannels as n, normalizeDiscordSlug as o, resolveDiscordMemberAccessState as p, isDiscordGroupAllowedByPolicy as r, resolveDiscordAllowListMatch as s, allowListMatches as t, resolveDiscordChannelPolicyCommandAuthorizer as u, resolveDiscordShouldRequireMention as v, resolveTimestampMs as w, formatDiscordReactionEmoji as x, resolveGroupDmAllow as y };
@@ -1,11 +1,11 @@
1
- import { E as parseDiscordRetryAfterBodySeconds, O as getDiscordEndpointRuntime } from "./channel-type-D1_b5UhU.mjs";
2
- import { redactToolPayloadText } from "openclaw/plugin-sdk/logging-core";
1
+ import { D as getDiscordEndpointRuntime, T as parseDiscordRetryAfterBodySeconds } from "./allow-list-vxkG9_JD.mjs";
2
+ import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
3
3
  import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
4
4
  import { captureChannelReadAuthority, resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
5
5
  import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
6
+ import { redactToolPayloadText } from "openclaw/plugin-sdk/logging-core";
6
7
  import { parseRetryAfterHeaderSeconds, resolveRetryConfig, retryAsync } from "openclaw/plugin-sdk/retry-runtime";
7
8
  import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
8
- import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
9
9
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
10
10
  //#region extensions/discord/src/error-body.ts
11
11
  const DISCORD_RESPONSE_BODY_SUMMARY_MAX_CHARS = 240;
@@ -1,13 +1,13 @@
1
- import { s as buildExecApprovalCustomId } from "./components-CzXLR3QH.mjs";
2
- import { A as serializePayload, B as Container, J as Separator, K as Row, R as Button, X as TextDisplay, lt as deleteChannelMessage, rt as createUserDmChannel, tt as stripUndefinedFields, ut as editChannelMessage } from "./discord-J7aRzq2Q.mjs";
3
- import { s as findGraphemeChunkEnd } from "./retry-BKzO25k4.mjs";
4
- import { D as createDiscordMessageNonce, M as createDiscordClient } from "./send.shared-BQIUh6Vn.mjs";
5
- import { D as isDiscordExecApprovalClientEnabled, c as formatDiscordApprovalDisplayValue, s as DISCORD_APPROVAL_ALLOWED_MENTIONS } from "./outbound-session-route-DGPPKA0z.mjs";
6
- import { a as shouldHandleDiscordApprovalRequest } from "./channel-z5lQMS_9.mjs";
7
- import { t as discordApprovalMessageUpdates } from "./approval-message-updates-CgRwc2_Q.mjs";
8
- import { logDebug, logError } from "openclaw/plugin-sdk/logging-core";
1
+ import { D as createDiscordMessageNonce, N as createDiscordClient } from "./send.shared-C4CN24D9.mjs";
2
+ import { A as serializePayload, B as Container, J as Separator, K as Row, R as Button, X as TextDisplay, ct as deleteChannelMessage, lt as editChannelMessage, nt as createUserDmChannel, yt as stripUndefinedFields } from "./discord-9gysrhzp.mjs";
3
+ import { x as findGraphemeChunkEnd } from "./send.receipt-DVOg2Oaw.mjs";
4
+ import { s as buildExecApprovalCustomId } from "./components-DLJR0xU-.mjs";
5
+ import { D as isDiscordExecApprovalClientEnabled, c as formatDiscordApprovalDisplayValue, s as DISCORD_APPROVAL_ALLOWED_MENTIONS } from "./outbound-session-route-BvBH4LC6.mjs";
6
+ import { a as shouldHandleDiscordApprovalRequest } from "./channel-Dr-AUnGt.mjs";
7
+ import { t as discordApprovalMessageUpdates } from "./approval-message-updates-B0jdSqOj.mjs";
9
8
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
10
9
  import { ButtonStyle, Routes } from "discord-api-types/v10";
10
+ import { logDebug, logError } from "openclaw/plugin-sdk/logging-core";
11
11
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
12
12
  import { formatChannelApprovalResolvedLabel } from "openclaw/plugin-sdk/approval-runtime";
13
13
  //#region extensions/discord/src/approval-handler.runtime.ts
@@ -1,5 +1,5 @@
1
- import { c as parseExecApprovalData } from "./components-CzXLR3QH.mjs";
2
- import { et as parseCustomId } from "./discord-J7aRzq2Q.mjs";
1
+ import { et as parseCustomId } from "./discord-9gysrhzp.mjs";
2
+ import { c as parseExecApprovalData } from "./components-DLJR0xU-.mjs";
3
3
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
4
4
  //#region extensions/discord/src/approval-message-updates.ts
5
5
  const discordApprovalMessageUpdates = new KeyedAsyncQueue();
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { b as fetchChannelPermissionsDiscord } from "./send.shared-BQIUh6Vn.mjs";
3
- import { t as inspectDiscordAccount } from "./account-inspect-CjKqkDnH.mjs";
4
- import "./send-2X7m2Zmw.mjs";
5
- import { C as collectDiscordAuditChannelIdsForAccount, S as auditDiscordChannelPermissionsWithFetcher } from "./outbound-session-route-DGPPKA0z.mjs";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-DsER5ILV.mjs";
3
+ import { b as fetchChannelPermissionsDiscord } from "./send.shared-C4CN24D9.mjs";
4
+ import "./send-CJk3VP5q.mjs";
5
+ import { C as collectDiscordAuditChannelIdsForAccount, S as auditDiscordChannelPermissionsWithFetcher } from "./outbound-session-route-BvBH4LC6.mjs";
6
6
  //#region extensions/discord/src/audit.ts
7
7
  var audit_exports = /* @__PURE__ */ __exportAll({
8
8
  auditDiscordChannelPermissions: () => auditDiscordChannelPermissions,
@@ -1,24 +1,24 @@
1
- import { C as withDiscordRequestAuthority } from "./discord-J7aRzq2Q.mjs";
2
- import { c as resolveDiscordAccount, i as listDiscordStartupAccountIds, l as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-DXHCL8Zm.mjs";
3
- import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
4
- import { _ as matchesDiscordToolContextTarget, b as parseDiscordTarget, g as looksLikeDiscordTargetId, v as normalizeDiscordMessagingTarget } from "./retry-BKzO25k4.mjs";
1
+ import { c as resolveDiscordAccount, i as listDiscordStartupAccountIds, l as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-HE9-mj1L.mjs";
2
+ import { C as withDiscordRequestAuthority } from "./discord-9gysrhzp.mjs";
3
+ import { d as normalizeDiscordMessagingTarget, l as looksLikeDiscordTargetId, p as parseDiscordTarget, u as matchesDiscordToolContextTarget } from "./send.receipt-DVOg2Oaw.mjs";
5
4
  import { l as withAbortTimeout } from "./timeouts-pun7VJ02.mjs";
6
- import { D as isDiscordExecApprovalClientEnabled, E as isDiscordExecApprovalApprover, O as shouldSuppressLocalDiscordExecApprovalPrompt, T as getDiscordExecApprovalApprovers, _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, t as resolveDiscordOutboundSessionRoute, v as discordMessageActions, w as resolveRequiredDiscordChannelPermissions } from "./outbound-session-route-DGPPKA0z.mjs";
7
- import { a as normalizeDiscordAcpConversationId, c as resolveDiscordInboundConversation, i as matchDiscordAcpConversation, n as discordOutbound, o as resolveDiscordAttachedOutboundTarget, r as buildDiscordCrossContextPresentation, s as resolveDiscordCommandConversation } from "./outbound-adapter-BPq0c2wY.mjs";
5
+ import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
6
+ import { D as isDiscordExecApprovalClientEnabled, E as isDiscordExecApprovalApprover, O as shouldSuppressLocalDiscordExecApprovalPrompt, T as getDiscordExecApprovalApprovers, _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, t as resolveDiscordOutboundSessionRoute, v as discordMessageActions, w as resolveRequiredDiscordChannelPermissions } from "./outbound-session-route-BvBH4LC6.mjs";
7
+ import { a as normalizeDiscordAcpConversationId, c as resolveDiscordInboundConversation, i as matchDiscordAcpConversation, n as discordOutbound, o as resolveDiscordAttachedOutboundTarget, r as buildDiscordCrossContextPresentation, s as resolveDiscordCommandConversation } from "./outbound-adapter-D4wRAb5S.mjs";
8
8
  import { r as openDiscordCommandDeployHashStore } from "./command-deploy-store-DFkBTViB.mjs";
9
- import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-Bi62ApSt.mjs";
10
- import { a as discordSecurityAdapter, i as discordSetupContract, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-CIJn6AEC.mjs";
9
+ import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-DicJC1Lj.mjs";
10
+ import { a as discordSecurityAdapter, i as discordSetupContract, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-BoBnM5kM.mjs";
11
11
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-CCHGNSQw.mjs";
12
- import { i as setThreadBindingMaxAgeBySessionKeyAsync, n as setThreadBindingIdleTimeoutBySessionKeyAsync, r as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-C9aKtVs6.mjs";
12
+ import { i as setThreadBindingMaxAgeBySessionKeyAsync, n as setThreadBindingIdleTimeoutBySessionKeyAsync, r as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-Bu_CGr_O.mjs";
13
13
  import { t as defaultTopLevelPlacement } from "./thread-binding-api-BDZJD4na.mjs";
14
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
14
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
15
15
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
16
+ import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
16
17
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
18
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
17
19
  import { PAIRING_APPROVED_MESSAGE, buildTokenChannelStatusSummary, projectCredentialSnapshotFields, resolveConfiguredFromCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
18
20
  import { createRuntimeConfigReader } from "openclaw/plugin-sdk/runtime-config-snapshot";
19
- import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
20
21
  import { createChannelMessageAdapterFromOutbound } from "openclaw/plugin-sdk/channel-outbound";
21
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
22
22
  import { resolveDefaultGroupPolicy, resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
23
23
  import { buildLegacyDmAccountAllowlistAdapter, createAccountScopedAllowlistNameResolver, createNestedAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
24
24
  import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
@@ -196,7 +196,7 @@ function createDiscordApprovalCapability() {
196
196
  accountId,
197
197
  request
198
198
  }),
199
- load: async () => (await import("./approval-handler.runtime-BilYSrRF.mjs")).discordApprovalNativeRuntime
199
+ load: async () => (await import("./approval-handler.runtime-DmnEa54W.mjs")).discordApprovalNativeRuntime
200
200
  })
201
201
  });
202
202
  }
@@ -207,22 +207,22 @@ function getDiscordApprovalCapability() {
207
207
  }
208
208
  //#endregion
209
209
  //#region extensions/discord/src/channel.loaders.ts
210
- const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BH1LA-gi.mjs").then((n) => n.t));
211
- const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels--MUatisx.mjs").then((n) => n.n));
212
- const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-CxLcDmM0.mjs").then((n) => n.n));
213
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-plk0zJAW.mjs").then((n) => n.r));
214
- const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-Dzxf80Y3.mjs").then((n) => n.r));
215
- const loadDiscordProviderRuntime = createLazyRuntimeModule(() => import("./provider.runtime-BaW_JnfU.mjs"));
216
- const loadDiscordProbeRuntime = createLazyRuntimeModule(() => import("./probe-DIRY8vh7.mjs").then((n) => n.o));
210
+ const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-gqsdcplU.mjs").then((n) => n.t));
211
+ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-DA6QlhZN.mjs").then((n) => n.n));
212
+ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DNrwvunm.mjs").then((n) => n.n));
213
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-D2-GYZ5s.mjs").then((n) => n.r));
214
+ const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-CSFoPQ12.mjs").then((n) => n.r));
215
+ const loadDiscordProviderRuntime = createLazyRuntimeModule(() => import("./provider.runtime-CZ51OIgD.mjs"));
216
+ const loadDiscordProbeRuntime = createLazyRuntimeModule(() => import("./probe-BwSKpnZf.mjs").then((n) => n.o));
217
217
  async function probeDiscordStatusAccount(params) {
218
218
  const startedAtMs = Date.now();
219
219
  const runtime = await loadDiscordProbeRuntime();
220
220
  const remainingMs = Math.max(1, params.timeoutMs - Math.max(0, Date.now() - startedAtMs));
221
221
  return await runtime.probeDiscord(params.token, remainingMs, { includeApplication: true });
222
222
  }
223
- const loadDiscordAuditModule = createLazyRuntimeModule(() => import("./audit-DtvzxONM.mjs").then((n) => n.n));
224
- const loadDiscordSendModule = createLazyRuntimeModule(() => import("./send-2X7m2Zmw.mjs").then((n) => n.t));
225
- const loadDiscordDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-C9xz7IPm.mjs").then((n) => n.t));
223
+ const loadDiscordAuditModule = createLazyRuntimeModule(() => import("./audit-BpikUwN_.mjs").then((n) => n.n));
224
+ const loadDiscordSendModule = createLazyRuntimeModule(() => import("./send-CJk3VP5q.mjs").then((n) => n.t));
225
+ const loadDiscordDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-Bipr0eUJ.mjs").then((n) => n.t));
226
226
  //#endregion
227
227
  //#region extensions/discord/src/conversation-route-owner.ts
228
228
  function inspectDiscordConversationRouteOwner(params) {
@@ -1,9 +1,9 @@
1
- import { _ as inspectDiscordAccountTokenState, h as resolveDiscordToken, l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-DXHCL8Zm.mjs";
2
- import { i as discordSetupContract, t as createDiscordPluginBase } from "./shared-CIJn6AEC.mjs";
3
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels--MUatisx.mjs";
4
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-CxLcDmM0.mjs";
5
- import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
1
+ import { _ as inspectDiscordAccountTokenState, h as resolveDiscordToken, l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-HE9-mj1L.mjs";
2
+ import { i as discordSetupContract, t as createDiscordPluginBase } from "./shared-BoBnM5kM.mjs";
3
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-DA6QlhZN.mjs";
4
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-DNrwvunm.mjs";
6
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { resolveBasicAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
8
8
  import { createAccountScopedAllowFromSection, createAccountScopedGroupAccessSection, createSetupTranslator, createStandardChannelSetupStatus, defineTokenCredential, parseMentionOrPrefixedId, patchChannelConfigForAccount, promptResolvedAllowFrom, resolveEntriesWithOptionalToken, resolveSetupAccountId, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup-runtime";
9
9
  import { formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { B as Container, F as RadioGroup, G as RoleSelectMenu, H as LinkButton, I as TextInput, J as Separator, K as Row, L as AnySelectMenu, M as CheckboxGroup, N as Label, P as Modal, Q as UserSelectMenu, R as Button, U as MediaGallery, V as File, W as MentionableSelectMenu, X as TextDisplay, Y as StringSelectMenu, Z as Thumbnail, et as parseCustomId, q as Section, tt as stripUndefinedFields, z as ChannelSelectMenu } from "./discord-J7aRzq2Q.mjs";
2
+ import { B as Container, F as RadioGroup, G as RoleSelectMenu, H as LinkButton, I as TextInput, J as Separator, K as Row, L as AnySelectMenu, M as CheckboxGroup, N as Label, P as Modal, Q as UserSelectMenu, R as Button, U as MediaGallery, V as File, W as MentionableSelectMenu, X as TextDisplay, Y as StringSelectMenu, Z as Thumbnail, et as parseCustomId, q as Section, yt as stripUndefinedFields, z as ChannelSelectMenu } from "./discord-9gysrhzp.mjs";
3
3
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { ButtonStyle, MessageFlags, TextInputStyle } from "discord-api-types/v10";
5
+ import { resolveAskUserQuestionOptionIndex } from "openclaw/plugin-sdk/reply-payload";
5
6
  import crypto from "node:crypto";
6
7
  import { legacyInteractiveReplyToPresentation, resolveMessagePresentationActionValue, resolveMessagePresentationButtonAction, resolveMessagePresentationOptionAction } from "openclaw/plugin-sdk/interactive-runtime";
7
- import { resolveAskUserQuestionOptionIndex } from "openclaw/plugin-sdk/reply-payload";
8
8
  import { buildApprovalResolutionRef } from "openclaw/plugin-sdk/approval-reference-runtime";
9
9
  //#region extensions/discord/src/custom-id-codec.ts
10
10
  /**
@@ -1,4 +1,4 @@
1
- import { m as shouldIgnoreStaleDiscordRouteBinding } from "./outbound-session-route-DGPPKA0z.mjs";
1
+ import { m as shouldIgnoreStaleDiscordRouteBinding } from "./outbound-session-route-BvBH4LC6.mjs";
2
2
  import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
3
3
  import { resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-binding-runtime";
4
4
  //#region extensions/discord/src/monitor/conversation-binding-route.ts
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId } from "./accounts-DXHCL8Zm.mjs";
2
+ import { l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId } from "./accounts-HE9-mj1L.mjs";
3
3
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
5
5
  //#region extensions/discord/src/directory-config.ts
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { s as normalizeDiscordSlug } from "./channel-type-D1_b5UhU.mjs";
3
- import { c as resolveDiscordAccount, m as normalizeDiscordToken } from "./accounts-DXHCL8Zm.mjs";
4
- import { r as fetchDiscord, t as DISCORD_DIRECTORY_LOOKUP_TIMEOUT_MS } from "./api-_oznjffB.mjs";
2
+ import { c as resolveDiscordAccount, m as normalizeDiscordToken } from "./accounts-HE9-mj1L.mjs";
3
+ import { o as normalizeDiscordSlug } from "./allow-list-vxkG9_JD.mjs";
4
+ import { r as fetchDiscord, t as DISCORD_DIRECTORY_LOOKUP_TIMEOUT_MS } from "./api-DlNUkDqj.mjs";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
7
7
  //#region extensions/discord/src/directory-cache-state.ts
@@ -1,12 +1,12 @@
1
1
  import { n as __reExport, t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { E as parseDiscordRetryAfterBodySeconds, O as getDiscordEndpointRuntime } from "./channel-type-D1_b5UhU.mjs";
3
- import { redactIdentifier, redactSensitiveFieldValue } from "openclaw/plugin-sdk/logging-core";
2
+ import { D as getDiscordEndpointRuntime, T as parseDiscordRetryAfterBodySeconds } from "./allow-list-vxkG9_JD.mjs";
3
+ import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
4
4
  import { asOptionalObjectRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { ApplicationCommandOptionType, ApplicationCommandType, ButtonStyle, ComponentType, GatewayDispatchEvents, InteractionContextType, InteractionResponseType, InteractionType, MessageFlags, Routes, TextInputStyle } from "discord-api-types/v10";
6
+ import { asDateTimestampMs, clampTimerTimeoutMs, parseStrictNonNegativeInteger as parseStrictNonNegativeInteger$1, resolveExpiresAtMsFromDurationMs, resolveIntegerOption, resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
6
7
  import { Type } from "typebox";
7
8
  import { Check } from "typebox/value";
8
9
  import { createHash } from "node:crypto";
9
- import { asDateTimestampMs, clampTimerTimeoutMs, parseStrictNonNegativeInteger as parseStrictNonNegativeInteger$1, resolveExpiresAtMsFromDurationMs, resolveIntegerOption, resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
10
10
  import { raceWithTimeout } from "openclaw/plugin-sdk/time-runtime";
11
11
  import { inspect } from "node:util";
12
12
  import { gunzipSync } from "node:zlib";
@@ -14,8 +14,13 @@ import { captureChannelReadAuthority } from "openclaw/plugin-sdk/fetch-runtime";
14
14
  import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
15
15
  import { AsyncLocalStorage } from "node:async_hooks";
16
16
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
17
- import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
17
+ import { redactIdentifier, redactSensitiveFieldValue } from "openclaw/plugin-sdk/logging-core";
18
18
  import { parseRetryAfterHeaderSeconds } from "openclaw/plugin-sdk/retry-runtime";
19
+ //#region extensions/discord/src/internal/undefined-fields.ts
20
+ function stripUndefinedFields(value) {
21
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== void 0));
22
+ }
23
+ //#endregion
19
24
  //#region extensions/discord/src/internal/api.guild.ts
20
25
  const discordGuildEmojiListSchema = Type.Array(Type.Object({
21
26
  id: Type.Union([Type.String(), Type.Null()]),
@@ -222,11 +227,6 @@ function stableCommandSetHash(commands) {
222
227
  return createHash("sha256").update(JSON.stringify(stable)).digest("hex");
223
228
  }
224
229
  //#endregion
225
- //#region extensions/discord/src/internal/undefined-fields.ts
226
- function stripUndefinedFields(value) {
227
- return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== void 0));
228
- }
229
- //#endregion
230
230
  //#region extensions/discord/src/internal/components.base.ts
231
231
  function parseCustomId(id) {
232
232
  const [rawKey = "", ...parts] = id.split(";");
@@ -2551,4 +2551,4 @@ var discord_exports = /* @__PURE__ */ __exportAll({
2551
2551
  import * as import_discord_api_types_v10 from "discord-api-types/v10";
2552
2552
  __reExport(discord_exports, import_discord_api_types_v10);
2553
2553
  //#endregion
2554
- export { BaseMessageInteractiveComponent as $, serializePayload as A, Container as B, withDiscordRequestAuthority as C, Message as D, Guild as E, RadioGroup as F, RoleSelectMenu as G, LinkButton as H, TextInput as I, Separator as J, Row as K, AnySelectMenu as L, CheckboxGroup as M, Label as N, User as O, Modal as P, UserSelectMenu as Q, Button as R, readRetryAfter as S, CommandWithSubcommands as T, MediaGallery as U, File as V, MentionableSelectMenu as W, TextDisplay as X, StringSelectMenu as Y, Thumbnail as Z, DiscordError as _, getGuildMember as _t, MessageCreateListener as a, createOwnMessageReaction as at, readDiscordCode as b, PresenceUpdateListener as c, createThread as ct, ThreadDeleteListener as d, getChannel as dt, parseCustomId as et, ThreadUpdateListener as f, getChannelMessage as ft, RequestClient as g, getGuild as gt, Plugin as h, unpinChannelMessage as ht, InteractionCreateListener as i, getCurrentUser as it, Embed as j, hasDiscordV2Components as k, ReadyListener as l, deleteChannelMessage as lt, Client as m, pinChannelMessage as mt, GuildCreateListener as n, createChannelWebhook as nt, MessageReactionAddListener as o, deleteOwnMessageReaction as ot, VoiceStateUpdateListener as p, getThreadMember as pt, Section as q, GuildDeleteListener as r, createUserDmChannel as rt, MessageReactionRemoveListener as s, listMessageReactionUsers as st, discord_exports as t, stripUndefinedFields as tt, ResumedListener as u, editChannelMessage as ut, RateLimitError as v, getGuildVoiceState as vt, Command as w, readDiscordMessage as x, isUnknownDiscordVoiceStateError as y, listGuildEmojis as yt, ChannelSelectMenu as z };
2554
+ export { BaseMessageInteractiveComponent as $, serializePayload as A, Container as B, withDiscordRequestAuthority as C, Message as D, Guild as E, RadioGroup as F, RoleSelectMenu as G, LinkButton as H, TextInput as I, Separator as J, Row as K, AnySelectMenu as L, CheckboxGroup as M, Label as N, User as O, Modal as P, UserSelectMenu as Q, Button as R, readRetryAfter as S, CommandWithSubcommands as T, MediaGallery as U, File as V, MentionableSelectMenu as W, TextDisplay as X, StringSelectMenu as Y, Thumbnail as Z, DiscordError as _, getGuildVoiceState as _t, MessageCreateListener as a, deleteOwnMessageReaction as at, readDiscordCode as b, PresenceUpdateListener as c, deleteChannelMessage as ct, ThreadDeleteListener as d, getChannelMessage as dt, parseCustomId as et, ThreadUpdateListener as f, getThreadMember as ft, RequestClient as g, getGuildMember as gt, Plugin as h, getGuild as ht, InteractionCreateListener as i, createOwnMessageReaction as it, Embed as j, hasDiscordV2Components as k, ReadyListener as l, editChannelMessage as lt, Client as m, unpinChannelMessage as mt, GuildCreateListener as n, createUserDmChannel as nt, MessageReactionAddListener as o, listMessageReactionUsers as ot, VoiceStateUpdateListener as p, pinChannelMessage as pt, Section as q, GuildDeleteListener as r, getCurrentUser as rt, MessageReactionRemoveListener as s, createThread as st, discord_exports as t, createChannelWebhook as tt, ResumedListener as u, getChannel as ut, RateLimitError as v, listGuildEmojis as vt, Command as w, readDiscordMessage as x, isUnknownDiscordVoiceStateError as y, stripUndefinedFields as yt, ChannelSelectMenu as z };
@@ -1,10 +1,10 @@
1
- import { s as resolveDefaultDiscordAccountId } from "./accounts-DXHCL8Zm.mjs";
2
- import { n as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-CNWswry-.mjs";
3
- import { t as inspectDiscordAccount } from "./account-inspect-CjKqkDnH.mjs";
4
- import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-CIJn6AEC.mjs";
1
+ import { s as resolveDefaultDiscordAccountId } from "./accounts-HE9-mj1L.mjs";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-DsER5ILV.mjs";
3
+ import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-BoBnM5kM.mjs";
5
4
  import { t as runtime_doctor_migrations_exports } from "./runtime-doctor-migrations-BPV-R4G9.mjs";
6
5
  import { n as normalizeCompatibilityConfig } from "./doctor-contract-Bg3NPAMw.mjs";
7
6
  import { t as isDiscordMutableAllowEntry } from "./security-doctor-nGgPm65L.mjs";
7
+ import { n as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-CaZQnGRH.mjs";
8
8
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
10
10
  //#region extensions/discord/src/doctor.ts
@@ -1,16 +1,16 @@
1
- import { i as buildDiscordPresentationComponents, m as coerceDiscordComponentParam, r as buildDiscordInteractiveComponents } from "./components-CzXLR3QH.mjs";
2
- import { C as withDiscordRequestAuthority } from "./discord-J7aRzq2Q.mjs";
3
- import { _ as matchesDiscordToolContextTarget, b as parseDiscordTarget, x as resolveDiscordChannelId } from "./retry-BKzO25k4.mjs";
4
- import "./targets-Lf8D55w-.mjs";
5
- import { a as readDiscordAutoArchiveDurationParam, t as handleDiscordAction } from "./runtime-CwUA0RLr.mjs";
1
+ import { C as withDiscordRequestAuthority } from "./discord-9gysrhzp.mjs";
2
+ import { m as resolveDiscordChannelId, p as parseDiscordTarget, u as matchesDiscordToolContextTarget } from "./send.receipt-DVOg2Oaw.mjs";
3
+ import "./targets-bqXQENmX.mjs";
4
+ import { a as readDiscordAutoArchiveDurationParam, t as handleDiscordAction } from "./runtime-CESTexGn.mjs";
5
+ import { i as buildDiscordPresentationComponents, m as coerceDiscordComponentParam, r as buildDiscordInteractiveComponents } from "./components-DLJR0xU-.mjs";
6
6
  import "../action-runtime-api.js";
7
- import { b as discordInboundEventDelivery, i as isDiscordComponentSpecWithinMessageLimit, n as DISCORD_PRESENTATION_CAPABILITIES } from "./outbound-session-route-DGPPKA0z.mjs";
8
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-BnyqTczR.mjs";
7
+ import { b as discordInboundEventDelivery, i as isDiscordComponentSpecWithinMessageLimit, n as DISCORD_PRESENTATION_CAPABILITIES } from "./outbound-session-route-BvBH4LC6.mjs";
8
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CB4sc9VV.mjs";
9
9
  import { n as notifyDiscordActiveTurnThreadCreated, r as notifyDiscordActiveTurnThreadReplyDelivered } from "./active-turn-thread-route-C4tp9noA.mjs";
10
10
  import { asOptionalRecord, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
11
- import { adaptMessagePresentationForChannel, normalizeLegacyInteractiveReply, normalizeMessagePresentation, renderMessagePresentationFallbackText } from "openclaw/plugin-sdk/interactive-runtime";
12
11
  import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
13
12
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
13
+ import { adaptMessagePresentationForChannel, normalizeLegacyInteractiveReply, normalizeMessagePresentation, renderMessagePresentationFallbackText } from "openclaw/plugin-sdk/interactive-runtime";
14
14
  import { readPositiveIntegerParam as readPositiveIntegerParam$1, readStringArrayParam as readStringArrayParam$1, readStringParam as readStringParam$1 } from "openclaw/plugin-sdk/agent-runtime";
15
15
  //#region extensions/discord/src/actions/handle-action.ts
16
16
  const providerId = "discord";
@@ -1,6 +1,6 @@
1
- import { c as readDiscordChannelMoveParams, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-CwUA0RLr.mjs";
1
+ import { c as readDiscordChannelMoveParams, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-CESTexGn.mjs";
2
2
  import "../action-runtime-api.js";
3
- import { y as isTrustedRequesterGuildAdminAction } from "./outbound-session-route-DGPPKA0z.mjs";
3
+ import { y as isTrustedRequesterGuildAdminAction } from "./outbound-session-route-BvBH4LC6.mjs";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
6
6
  import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/param-readers";
@@ -1,4 +1,4 @@
1
- import { a as normalizeDiscordAllowList } from "./channel-type-D1_b5UhU.mjs";
1
+ import { i as normalizeDiscordAllowList } from "./allow-list-vxkG9_JD.mjs";
2
2
  import { defineStableChannelIngressIdentity } from "openclaw/plugin-sdk/channel-ingress-runtime";
3
3
  //#region extensions/discord/src/monitor/ingress-identity.ts
4
4
  const DISCORD_ALLOW_LIST_PREFIXES = [
@@ -1,19 +1,19 @@
1
- import { A as resolveDiscordEndpointMediaGuard, O as getDiscordEndpointRuntime } from "./channel-type-D1_b5UhU.mjs";
1
+ import { D as getDiscordEndpointRuntime, k as resolveDiscordEndpointMediaGuard } from "./allow-list-vxkG9_JD.mjs";
2
2
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
3
- import { A as resolveDiscordMessageChannelId, O as resolveDiscordReferencedReplyMessageId, T as hasDiscordMessageStickers, w as resolveDiscordCdnPolicy, y as resolveDiscordMessageText } from "./transcripts-source-CNWswry-.mjs";
4
- import { D as createDiscordLivePolicyReader, O as mapGatewayDispatchData } from "./provider-D2OKMo0f.mjs";
5
- import { logDebug } from "openclaw/plugin-sdk/logging-core";
6
- import { normalizeNullableString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
- import { GatewayDispatchEvents } from "discord-api-types/v10";
3
+ import { D as createDiscordLivePolicyReader, O as mapGatewayDispatchData } from "./provider-YP8gN9_o.mjs";
4
+ import { A as resolveDiscordMessageChannelId, O as resolveDiscordReferencedReplyMessageId, T as hasDiscordMessageStickers, w as resolveDiscordCdnPolicy, y as resolveDiscordMessageText } from "./transcripts-source-CaZQnGRH.mjs";
5
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
8
6
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
9
- import { createRuntimeConfigReader } from "openclaw/plugin-sdk/runtime-config-snapshot";
10
7
  import { danger } from "openclaw/plugin-sdk/runtime-env";
11
- import { DEFAULT_INGRESS_RETRY_MAX_ATTEMPTS, createChannelIngressError, createChannelIngressMonitor, createChannelRunQueue } from "openclaw/plugin-sdk/channel-outbound";
12
- import { saveRemoteMedia } from "openclaw/plugin-sdk/media-runtime";
13
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
8
+ import { normalizeNullableString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
+ import { createRuntimeConfigReader } from "openclaw/plugin-sdk/runtime-config-snapshot";
10
+ import { GatewayDispatchEvents } from "discord-api-types/v10";
14
11
  import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
15
- import { createChannelInboundDebouncer, resolveInboundDebounceMs, shouldDebounceTextInbound } from "openclaw/plugin-sdk/channel-inbound";
12
+ import { saveRemoteMedia } from "openclaw/plugin-sdk/media-runtime";
13
+ import { logDebug } from "openclaw/plugin-sdk/logging-core";
14
+ import { DEFAULT_INGRESS_RETRY_MAX_ATTEMPTS, createChannelIngressError, createChannelIngressMonitor, createChannelRunQueue } from "openclaw/plugin-sdk/channel-outbound";
16
15
  import { fanInChannelIngressLifecycles } from "openclaw/plugin-sdk/channel-ingress-runtime";
16
+ import { createChannelInboundDebouncer, resolveInboundDebounceMs, shouldDebounceTextInbound } from "openclaw/plugin-sdk/channel-inbound";
17
17
  //#region extensions/discord/src/monitor/ingress.ts
18
18
  const DISCORD_INGRESS_PAYLOAD_VERSION = 1;
19
19
  const DISCORD_INGRESS_DRAIN_INTERVAL_MS = 1e3;
@@ -194,7 +194,7 @@ function createDiscordAvatarResolver() {
194
194
  }
195
195
  //#endregion
196
196
  //#region extensions/discord/src/monitor/message-run-queue.ts
197
- const loadMessageProcessRuntime = createLazyRuntimeModule(() => import("./message-handler.process-CThRmCWK.mjs"));
197
+ const loadMessageProcessRuntime = createLazyRuntimeModule(() => import("./message-handler.process-TKoqcqIP.mjs"));
198
198
  async function processDiscordQueuedMessage(params) {
199
199
  const abortSignal = params.job.context.abortSignal && params.lifecycleSignal ? AbortSignal.any([params.job.context.abortSignal, params.lifecycleSignal]) : params.job.context.abortSignal ?? params.lifecycleSignal;
200
200
  try {
@@ -281,7 +281,7 @@ function createDiscordMessageRunQueue(params) {
281
281
  }
282
282
  //#endregion
283
283
  //#region extensions/discord/src/monitor/message-dispatcher.ts
284
- const loadMessagePreflightRuntime = createLazyRuntimeModule(() => import("./message-handler.preflight-D0BcCyI7.mjs"));
284
+ const loadMessagePreflightRuntime = createLazyRuntimeModule(() => import("./message-handler.preflight-DFpsh90H.mjs"));
285
285
  function createDiscordMessageDispatcher(params) {
286
286
  const readPolicy = params.readPolicy ?? createDiscordLivePolicyReader({
287
287
  ...params,
@@ -1,32 +1,32 @@
1
- import { D as Message, ft as getChannelMessage, t as discord_exports } from "./discord-J7aRzq2Q.mjs";
2
- import { C as formatDiscordUserTag, T as resolveTimestampMs, g as resolveDiscordMentionPolicy, m as resolveDiscordMemberAccessState, o as normalizeDiscordDisplaySlug, p as resolveDiscordGuildEntry, s as normalizeDiscordSlug, u as resolveDiscordChannelConfigWithFallback, w as resolveDiscordSystemLocation } from "./channel-type-D1_b5UhU.mjs";
3
- import { s as resolveDefaultDiscordAccountId } from "./accounts-DXHCL8Zm.mjs";
4
- import { n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe } from "./channel-access-BRp3Y-rF.mjs";
5
- import { A as resolveDiscordMessageChannelId, D as resolveDiscordReferencedReplyMessage, E as resolveDiscordMessageStickers, S as resolveMediaList, _ as resolveDiscordMessageHistoryText, g as resolveDiscordMessageBatch, k as resolveDiscordChannelInfo, v as resolveDiscordMessageMentionDocuments, x as resolveForwardedMediaList, y as resolveDiscordMessageText } from "./transcripts-source-CNWswry-.mjs";
1
+ import { s as resolveDefaultDiscordAccountId } from "./accounts-HE9-mj1L.mjs";
2
+ import { C as resolveDiscordSystemLocation, S as formatDiscordUserTag, a as normalizeDiscordDisplaySlug, f as resolveDiscordGuildEntry, h as resolveDiscordMentionPolicy, l as resolveDiscordChannelConfigWithFallback, o as normalizeDiscordSlug, p as resolveDiscordMemberAccessState, w as resolveTimestampMs } from "./allow-list-vxkG9_JD.mjs";
3
+ import { D as Message, dt as getChannelMessage, t as discord_exports } from "./discord-9gysrhzp.mjs";
6
4
  import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-pun7VJ02.mjs";
7
- import { _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, h as resolveDiscordConversationIdentity, p as resolveDiscordEffectiveRoute, u as buildDiscordRoutePeer } from "./outbound-session-route-DGPPKA0z.mjs";
8
- import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-Bi62ApSt.mjs";
9
- import { A as resolveDiscordDmCommandAccess, E as handleDiscordDmCommandDecision, j as resolveDiscordTextCommandAccess, n as resolveDiscordPreflightChannelAccess } from "./provider-D2OKMo0f.mjs";
10
- import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-CooeYfAn.mjs";
11
- import { a as createDiscordHistorySenderProvenance, c as hasRawDiscordUserMention, d as matchesActiveDiscordMentionPatterns, f as resolveDiscordMentionState, i as loadSystemEventsRuntime, l as isBoundThreadBotSystemMessage, m as shouldIgnoreBoundThreadWebhookMessage, n as loadDiscordThreadingRuntime, p as resolveInjectedBoundThreadLookupRecord, r as loadPreflightAudioRuntime, s as resolveDiscordHistoryMediaIds, t as resolveDiscordPreflightPluralKitInfo, u as isDiscordThreadChannelMessage } from "./message-handler.preflight-pluralkit-D1g3eq0B.mjs";
12
- import { logDebug } from "openclaw/plugin-sdk/logging-core";
13
- import { MessageReferenceType, MessageType } from "discord-api-types/v10";
14
- import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
15
- import { mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
5
+ import { _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, h as resolveDiscordConversationIdentity, p as resolveDiscordEffectiveRoute, u as buildDiscordRoutePeer } from "./outbound-session-route-BvBH4LC6.mjs";
6
+ import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-DicJC1Lj.mjs";
7
+ import { n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe } from "./channel-access-BRp3Y-rF.mjs";
8
+ import { A as resolveDiscordDmCommandAccess, E as handleDiscordDmCommandDecision, j as resolveDiscordTextCommandAccess, n as resolveDiscordPreflightChannelAccess } from "./provider-YP8gN9_o.mjs";
9
+ import { A as resolveDiscordMessageChannelId, D as resolveDiscordReferencedReplyMessage, E as resolveDiscordMessageStickers, S as resolveMediaList, _ as resolveDiscordMessageHistoryText, g as resolveDiscordMessageBatch, k as resolveDiscordChannelInfo, v as resolveDiscordMessageMentionDocuments, x as resolveForwardedMediaList, y as resolveDiscordMessageText } from "./transcripts-source-CaZQnGRH.mjs";
10
+ import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-AHpUNr72.mjs";
11
+ import { a as createDiscordHistorySenderProvenance, c as hasRawDiscordUserMention, d as matchesActiveDiscordMentionPatterns, f as resolveDiscordMentionState, i as loadSystemEventsRuntime, l as isBoundThreadBotSystemMessage, m as shouldIgnoreBoundThreadWebhookMessage, n as loadDiscordThreadingRuntime, p as resolveInjectedBoundThreadLookupRecord, r as loadPreflightAudioRuntime, s as resolveDiscordHistoryMediaIds, t as resolveDiscordPreflightPluralKitInfo, u as isDiscordThreadChannelMessage } from "./message-handler.preflight-pluralkit-BXGGVmpe.mjs";
12
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
16
13
  import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
14
+ import { MessageReferenceType, MessageType } from "discord-api-types/v10";
15
+ import { logDebug } from "openclaw/plugin-sdk/logging-core";
17
16
  import { formatAllowlistMatchMeta } from "openclaw/plugin-sdk/allow-from";
17
+ import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
18
18
  import { isRecentOutboundMessageIdentity } from "openclaw/plugin-sdk/channel-outbound";
19
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
20
- import { buildMentionRegexes, classifyChannelInboundEvent, logInboundDrop, recordChannelBotPairLoopAndCheckSuppression, resolveGroupThreadMentionFacts, resolveInboundMentionDecision, resolveUnmentionedGroupInboundPolicy, toHistoryMediaEntries, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
19
+ import { mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
21
20
  import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
22
21
  import { enqueueRoutedSystemEvent } from "openclaw/plugin-sdk/system-event-runtime";
22
+ import { buildMentionRegexes, classifyChannelInboundEvent, logInboundDrop, recordChannelBotPairLoopAndCheckSuppression, resolveGroupThreadMentionFacts, resolveInboundMentionDecision, resolveUnmentionedGroupInboundPolicy, toHistoryMediaEntries, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
23
23
  import { hasControlCommand } from "openclaw/plugin-sdk/command-detection";
24
24
  import { isAbortRequestText } from "openclaw/plugin-sdk/command-primitives-runtime";
25
25
  import { shouldHandleTextCommands } from "openclaw/plugin-sdk/command-surface";
26
26
  import { createChannelHistoryWindow } from "openclaw/plugin-sdk/reply-history";
27
27
  //#region extensions/discord/src/monitor/message-handler.dm-preflight.ts
28
28
  const loadConversationRuntime$1 = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/conversation-binding-runtime"));
29
- const loadDiscordSendRuntime = createLazyRuntimeModule(() => import("./send-2X7m2Zmw.mjs").then((n) => n.t));
29
+ const loadDiscordSendRuntime = createLazyRuntimeModule(() => import("./send-CJk3VP5q.mjs").then((n) => n.t));
30
30
  async function resolveDiscordDmPreflightAccess(params) {
31
31
  if (params.dmPolicy === "disabled") {
32
32
  logVerbose("discord: drop dm (dmPolicy: disabled)");
@@ -1,11 +1,11 @@
1
- import { t as isDiscordThreadChannelType } from "./channel-type-D1_b5UhU.mjs";
2
- import { E as resolveDiscordMessageStickers } from "./transcripts-source-CNWswry-.mjs";
3
- import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
1
+ import { A as isDiscordThreadChannelType } from "./allow-list-vxkG9_JD.mjs";
2
+ import { E as resolveDiscordMessageStickers } from "./transcripts-source-CaZQnGRH.mjs";
3
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
4
4
  import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
5
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
6
  import { findCodeRegions, isInsideCode } from "openclaw/plugin-sdk/text-chunking";
6
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
7
- import { implicitMentionKindWhen, matchesMentionWithExplicit, normalizeMentionText } from "openclaw/plugin-sdk/channel-inbound";
8
7
  import { filterSupplementalContextItems } from "openclaw/plugin-sdk/security-runtime";
8
+ import { implicitMentionKindWhen, matchesMentionWithExplicit, normalizeMentionText } from "openclaw/plugin-sdk/channel-inbound";
9
9
  //#region extensions/discord/src/monitor/message-handler.preflight-helpers.ts
10
10
  const DISCORD_BOUND_THREAD_SYSTEM_PREFIXES = [
11
11
  "⚙️",
@@ -115,8 +115,8 @@ function resolveDiscordHistoryMediaIds(message) {
115
115
  //#region extensions/discord/src/monitor/message-handler.preflight-runtime.ts
116
116
  const loadPluralKitRuntime = createLazyRuntimeModule(() => import("./pluralkit-a6_NLfH9.mjs").then((n) => n.n));
117
117
  const loadPreflightAudioRuntime = createLazyRuntimeModule(() => import("./preflight-audio-DHGIHEpv.mjs"));
118
- const loadSystemEventsRuntime = createLazyRuntimeModule(() => import("./system-events-CQ3if_pS.mjs"));
119
- const loadDiscordThreadingRuntime = createLazyRuntimeModule(() => import("./transcripts-source-CNWswry-.mjs").then((n) => n.d));
118
+ const loadSystemEventsRuntime = createLazyRuntimeModule(() => import("./system-events-Cwxaww8i.mjs"));
119
+ const loadDiscordThreadingRuntime = createLazyRuntimeModule(() => import("./transcripts-source-CaZQnGRH.mjs").then((n) => n.d));
120
120
  //#endregion
121
121
  //#region extensions/discord/src/monitor/message-handler.preflight-pluralkit.ts
122
122
  async function resolveDiscordPreflightPluralKitInfo(params) {