@openclaw/discord 2026.5.10-beta.2 → 2026.5.10-beta.4

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 (86) hide show
  1. package/dist/{access-R4X7pYt4.js → access-Dxmzr0ix.js} +1 -1
  2. package/dist/{account-inspect-BcQAxhKY.js → account-inspect-D7jL5YDH.js} +2 -2
  3. package/dist/account-inspect-api.js +1 -1
  4. package/dist/{accounts-CaHGiVB4.js → accounts-BcwyaFd-.js} +1 -1
  5. package/dist/action-runtime-api.js +1 -1
  6. package/dist/{allow-list-4wnZg5P9.js → allow-list-n8Ki-Rt3.js} +1 -1
  7. package/dist/api.js +16 -16
  8. package/dist/{approval-handler.runtime-B5BCBw4D.js → approval-handler.runtime-S-ircYcz.js} +6 -5
  9. package/dist/{approval-native-CrCc3b4u.js → approval-native-Gtqpyfdj.js} +4 -4
  10. package/dist/{approval-shared-Ckk65xSG.js → approval-shared-BFnWKSQD.js} +1 -1
  11. package/dist/{audit-BRBe8xFv.js → audit-BliEqCEc.js} +5 -5
  12. package/dist/{audit-core-CG37TsZm.js → audit-core-BgDZSkIR.js} +1 -1
  13. package/dist/{channel-D0GnZ6j1.js → channel-Cg-h13vl.js} +21 -21
  14. package/dist/{channel-actions-CHgoSpPF.js → channel-actions-Cn_K00Vy.js} +5 -5
  15. package/dist/{channel-actions.runtime-E5Plubuu.js → channel-actions.runtime-DcsRvPnx.js} +5 -5
  16. package/dist/channel-config-api.js +1 -1
  17. package/dist/channel-plugin-api.js +1 -1
  18. package/dist/{channel.setup-EQXuueIk.js → channel.setup-DR-xVYso.js} +6 -6
  19. package/dist/{components-BJOShoIU.js → components-Dxq2mU57.js} +3 -3
  20. package/dist/{config-schema-BGn5I3_3.js → config-schema-D2KGskAp.js} +4 -0
  21. package/dist/contract-api.js +3 -3
  22. package/dist/{conversation-identity-BPQm_uhV.js → conversation-identity-CvIx6J7M.js} +1 -1
  23. package/dist/{directory-cache-D93eSrpB.js → directory-cache-Ddl-Oxue.js} +1 -1
  24. package/dist/{directory-config-JBaFwbAQ.js → directory-config-CDl4JTCA.js} +2 -2
  25. package/dist/directory-contract-api.js +1 -1
  26. package/dist/{directory-live-B4kW11z5.js → directory-live-ApUXOSj0.js} +5 -5
  27. package/dist/{discord-DtHMmZqJ.js → discord-BqYcwxvG.js} +9 -2
  28. package/dist/{doctor-CPV4Ch3V.js → doctor-jcX_qXsS.js} +3 -3
  29. package/dist/{handle-action.guild-admin-DSeMCHvR.js → handle-action.guild-admin-C4phin-a.js} +2 -2
  30. package/dist/{inbound-context-BAwOn5Iq.js → inbound-context-jtKcY9on.js} +1 -1
  31. package/dist/{manager.runtime-Dz8Mzdnq.js → manager.runtime-DqMGETqp.js} +101 -17
  32. package/dist/{mentions-f806C7MB.js → mentions-BZoGn0ul.js} +2 -2
  33. package/dist/{message-handler-BWHSteQf.js → message-handler-DIsnboy2.js} +5 -5
  34. package/dist/{message-handler.preflight-q7ose9Ta.js → message-handler.preflight-BRH-dv1o.js} +16 -15
  35. package/dist/{message-handler.process-BN8bE7AE.js → message-handler.process-Bs5wropA.js} +15 -14
  36. package/dist/{message-utils-DEjCwCRz.js → message-utils-ByofKwPe.js} +1 -1
  37. package/dist/{outbound-adapter-Bt8FL3yO.js → outbound-adapter-lWjkSeyP.js} +8 -8
  38. package/dist/{pluralkit-CUfobeQu.js → pluralkit-B1HTaBc9.js} +1 -1
  39. package/dist/{preflight-audio-BcsH127L.js → preflight-audio-CD97vnac.js} +1 -1
  40. package/dist/{probe-CjO53qsc.js → probe-BZtr8qle.js} +1 -1
  41. package/dist/{probe.runtime-4Q9GD7FG.js → probe.runtime-0F0UzBoJ.js} +1 -1
  42. package/dist/{provider-B7B8R5Lm.js → provider-Bm-jb8A3.js} +36 -30
  43. package/dist/{provider-session.runtime-DepAOR1U.js → provider-session.runtime-BZyP90-i.js} +3 -3
  44. package/dist/provider.runtime-DMRM_oVO.js +2 -0
  45. package/dist/{reply-delivery-vHSqaKKo.js → reply-delivery-CUSK6SA_.js} +7 -5
  46. package/dist/{resolve-allowlist-common-ZcVU4OMA.js → resolve-allowlist-common-CVHYb5Hb.js} +1 -1
  47. package/dist/{resolve-channels-D9Dubj_y.js → resolve-channels-JNt3Ak6P.js} +3 -3
  48. package/dist/{resolve-users-DlzKsLQe.js → resolve-users-CrjbUxrL.js} +3 -3
  49. package/dist/{route-resolution-foWW8_D1.js → route-resolution-BFfF9xmG.js} +2 -2
  50. package/dist/{runtime-oXRGbcb5.js → runtime-CdnAT8R5.js} +8 -8
  51. package/dist/runtime-api.actions.js +2 -2
  52. package/dist/runtime-api.js +22 -22
  53. package/dist/runtime-api.lookup.js +5 -5
  54. package/dist/runtime-api.monitor-Dlwle_VC.js +6 -0
  55. package/dist/runtime-api.monitor.js +6 -6
  56. package/dist/runtime-api.send.js +4 -4
  57. package/dist/runtime-api.threads.js +5 -5
  58. package/dist/{security-contract-DrbQqyyW.js → security-contract-DkCMKSvb.js} +1 -1
  59. package/dist/security-contract-api.js +1 -1
  60. package/dist/{send-BSBMchf8.js → send-DCFuSiBi.js} +12 -11
  61. package/dist/{send.components-BoEhxys4.js → send.components-DxDqPJZQ.js} +5 -5
  62. package/dist/{send.outbound-B2DK2loZ.js → send.outbound-PM0J0F60.js} +6 -5
  63. package/dist/{send.shared-DzwpAEMP.js → send.shared-Dza0jdso.js} +4 -4
  64. package/dist/{sender-identity-CDOVm5Dk.js → sender-identity-w9rSI-nD.js} +1 -1
  65. package/dist/session-key-api.js +1 -1
  66. package/dist/{session-key-normalization-BQNCS1gu.js → session-key-normalization-BV82IME9.js} +1 -1
  67. package/dist/setup-plugin-api.js +1 -1
  68. package/dist/{shared-CBsrEG5q.js → shared-Yp_M6Cfp.js} +6 -6
  69. package/dist/{shared-interactive-D39V9Wtn.js → shared-interactive-DavY6jYt.js} +1 -1
  70. package/dist/{subagent-hooks-BDy1pJD5.js → subagent-hooks-CtN-hfXy.js} +4 -4
  71. package/dist/subagent-hooks-api.js +1 -1
  72. package/dist/{system-events-BeVImqnV.js → system-events-B04UOvPg.js} +1 -1
  73. package/dist/{target-resolver-DzOelJEt.js → target-resolver-CgJei-kD.js} +4 -4
  74. package/dist/{targets-Dj-qyUaE.js → targets-DToZUkgV.js} +1 -1
  75. package/dist/test-api.js +4 -4
  76. package/dist/{thread-bindings-DUzBL8jL.js → thread-bindings-B4of4OmR.js} +7 -7
  77. package/dist/{thread-bindings.discord-api-dpSDYFKX.js → thread-bindings.discord-api-BAw15EQb.js} +7 -6
  78. package/dist/{thread-bindings.manager-DTuwm8Tk.js → thread-bindings.manager-DNFl10CA.js} +5 -5
  79. package/dist/{thread-bindings.session-updates-BhcGQTJb.js → thread-bindings.session-updates-D18cCLmN.js} +1 -1
  80. package/dist/{thread-bindings.state-DwgDYzBM.js → thread-bindings.state-SPlv6mh7.js} +1 -1
  81. package/dist/{threading-CTUnZtNi.js → threading-CLZ3v7-y.js} +4 -3
  82. package/dist/{typing-BYeVSviE.js → typing-_jePdFIw.js} +1 -1
  83. package/openclaw.plugin.json +46 -0
  84. package/package.json +4 -4
  85. package/dist/provider.runtime-bgZEewCO.js +0 -2
  86. package/dist/runtime-api.monitor-DvOaEiyt.js +0 -6
@@ -1,4 +1,4 @@
1
- import { c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy } from "./allow-list-4wnZg5P9.js";
1
+ import { c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy } from "./allow-list-n8Ki-Rt3.js";
2
2
  import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
3
3
  import { resolveCommandAuthorizedFromAuthorizers } from "openclaw/plugin-sdk/command-auth-native";
4
4
  //#region extensions/discord/src/voice/config.ts
@@ -1,7 +1,7 @@
1
- import { a as mergeDiscordAccountConfig, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
1
+ import { a as mergeDiscordAccountConfig, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-BcwyaFd-.js";
2
2
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
3
3
  import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
4
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
4
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  //#region extensions/discord/src/account-inspect.ts
6
6
  function inspectDiscordTokenValue(value) {
7
7
  const normalized = normalizeSecretInputString(value);
@@ -1,4 +1,4 @@
1
- import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
1
+ import { t as inspectDiscordAccount } from "./account-inspect-D7jL5YDH.js";
2
2
  //#region extensions/discord/account-inspect-api.ts
3
3
  function inspectDiscordReadOnlyAccount(cfg, accountId) {
4
4
  return inspectDiscordAccount({
@@ -1,6 +1,6 @@
1
1
  import { n as resolveDiscordToken, r as selectDiscordRuntimeConfig } from "./token-BZtonk7d.js";
2
2
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
3
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
3
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { createAccountActionGate, createAccountListHelpers, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-helpers";
5
5
  import { mapAllowFromEntries, normalizeChannelDmPolicy, resolveChannelDmAllowFrom, resolveChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-helpers";
6
6
  import { resolveAccountEntry } from "openclaw/plugin-sdk/routing";
@@ -1,2 +1,2 @@
1
- import { t as handleDiscordAction } from "./runtime-oXRGbcb5.js";
1
+ import { t as handleDiscordAction } from "./runtime-CdnAT8R5.js";
2
2
  export { handleDiscordAction };
@@ -1,5 +1,5 @@
1
1
  import { n as formatDiscordUserTag } from "./format-D8TsaXxW.js";
2
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
2
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { buildChannelKeyCandidates, resolveChannelEntryMatchWithFallback, resolveChannelMatchConfig } from "openclaw/plugin-sdk/channel-targets";
4
4
  //#region extensions/discord/src/monitor/allow-list.ts
5
5
  const DISCORD_OWNER_ALLOWLIST_PREFIXES = [
package/dist/api.js CHANGED
@@ -1,25 +1,25 @@
1
- import { a as mergeDiscordAccountConfig, f as resolveDiscordMaxLinesPerMessage, i as listEnabledDiscordAccounts, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId, r as listDiscordAccountIds, s as resolveDiscordAccount, t as createDiscordActionGate } from "./accounts-CaHGiVB4.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
1
+ import { a as mergeDiscordAccountConfig, f as resolveDiscordMaxLinesPerMessage, i as listEnabledDiscordAccounts, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId, r as listDiscordAccountIds, s as resolveDiscordAccount, t as createDiscordActionGate } from "./accounts-BcwyaFd-.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-D7jL5YDH.js";
3
3
  import { n as resolveDiscordChannelId, t as parseDiscordTarget } from "./target-parsing-D-H7nnh2.js";
4
4
  import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-DzNBVTto.js";
5
5
  import { i as normalizeDiscordOutboundTarget, n as looksLikeDiscordTargetId, r as normalizeDiscordMessagingTarget } from "./normalize-Cu94FOqy.js";
6
- import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-DzOelJEt.js";
7
- import { _ as parseDiscordModalCustomIdForInteraction, a as buildDiscordComponentMessage, c as readDiscordComponentSpec, d as DISCORD_MODAL_CUSTOM_ID_KEY, f as buildDiscordComponentCustomId, g as parseDiscordModalCustomId, h as parseDiscordComponentCustomIdForInteraction, i as createDiscordFormModal, l as resolveDiscordComponentAttachmentName, m as parseDiscordComponentCustomId, n as formatDiscordComponentEventText, o as buildDiscordComponentMessageFlags, p as buildDiscordModalCustomId, r as DiscordFormModal, s as DISCORD_COMPONENT_ATTACHMENT_PREFIX, u as DISCORD_COMPONENT_CUSTOM_ID_KEY } from "./components-BJOShoIU.js";
8
- import { t as buildDiscordInteractiveComponents } from "./shared-interactive-D39V9Wtn.js";
9
- import "./targets-Dj-qyUaE.js";
10
- import { a as shouldSuppressLocalDiscordExecApprovalPrompt, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, r as isDiscordExecApprovalApprover } from "./approval-shared-Ckk65xSG.js";
11
- import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-D0GnZ6j1.js";
12
- import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-BQNCS1gu.js";
13
- import { t as discordSetupPlugin } from "./channel.setup-EQXuueIk.js";
14
- import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-BDy1pJD5.js";
15
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-DSeMCHvR.js";
16
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-JBaFwbAQ.js";
17
- import { t as fetchPluralKitMessageInfo } from "./pluralkit-CUfobeQu.js";
18
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CjO53qsc.js";
6
+ import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-CgJei-kD.js";
7
+ import { _ as parseDiscordModalCustomIdForInteraction, a as buildDiscordComponentMessage, c as readDiscordComponentSpec, d as DISCORD_MODAL_CUSTOM_ID_KEY, f as buildDiscordComponentCustomId, g as parseDiscordModalCustomId, h as parseDiscordComponentCustomIdForInteraction, i as createDiscordFormModal, l as resolveDiscordComponentAttachmentName, m as parseDiscordComponentCustomId, n as formatDiscordComponentEventText, o as buildDiscordComponentMessageFlags, p as buildDiscordModalCustomId, r as DiscordFormModal, s as DISCORD_COMPONENT_ATTACHMENT_PREFIX, u as DISCORD_COMPONENT_CUSTOM_ID_KEY } from "./components-Dxq2mU57.js";
8
+ import { t as buildDiscordInteractiveComponents } from "./shared-interactive-DavY6jYt.js";
9
+ import "./targets-DToZUkgV.js";
10
+ import { a as shouldSuppressLocalDiscordExecApprovalPrompt, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, r as isDiscordExecApprovalApprover } from "./approval-shared-BFnWKSQD.js";
11
+ import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-Cg-h13vl.js";
12
+ import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-BV82IME9.js";
13
+ import { t as discordSetupPlugin } from "./channel.setup-DR-xVYso.js";
14
+ import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-CtN-hfXy.js";
15
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-C4phin-a.js";
16
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-CDl4JTCA.js";
17
+ import { t as fetchPluralKitMessageInfo } from "./pluralkit-B1HTaBc9.js";
18
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-BZtr8qle.js";
19
19
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-BQ_sGK3J.js";
20
20
  import { a as mergeAbortSignals, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-C3FYXWJX.js";
21
21
  import { resolveOpenProviderRuntimeGroupPolicy as resolveDiscordRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
22
22
  //#region extensions/discord/api.ts
23
- const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-E5Plubuu.js")).handleDiscordMessageAction(...args);
23
+ const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-DcsRvPnx.js")).handleDiscordMessageAction(...args);
24
24
  //#endregion
25
25
  export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_COMPONENT_ATTACHMENT_PREFIX, DISCORD_COMPONENT_CUSTOM_ID_KEY, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DISCORD_MODAL_CUSTOM_ID_KEY, DiscordApiError, DiscordFormModal, buildDiscordComponentCustomId, buildDiscordComponentMessage, buildDiscordComponentMessageFlags, buildDiscordInteractiveComponents, buildDiscordModalCustomId, collectDiscordSecurityAuditFindings, collectDiscordStatusIssues, createDiscordActionGate, createDiscordFormModal, discordPlugin, discordSetupPlugin, fetchDiscord, fetchDiscordApplicationId, fetchDiscordApplicationSummary, fetchPluralKitMessageInfo, formatDiscordComponentEventText, getDiscordExecApprovalApprovers, handleDiscordMessageAction, handleDiscordSubagentDeliveryTarget, handleDiscordSubagentEnded, handleDiscordSubagentSpawning, inspectDiscordAccount, isDiscordExecApprovalApprover, isDiscordExecApprovalClientEnabled, listDiscordAccountIds, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, listEnabledDiscordAccounts, looksLikeDiscordTargetId, mergeAbortSignals, mergeDiscordAccountConfig, normalizeDiscordMessagingTarget, normalizeDiscordOutboundTarget, normalizeExplicitDiscordSessionKey, parseApplicationIdFromToken, parseDiscordComponentCustomId, parseDiscordComponentCustomIdForInteraction as parseDiscordComponentCustomIdForCarbon, parseDiscordComponentCustomIdForInteraction, parseDiscordModalCustomId, parseDiscordModalCustomIdForInteraction as parseDiscordModalCustomIdForCarbon, parseDiscordModalCustomIdForInteraction, parseDiscordSendTarget, parseDiscordTarget, probeDiscord, readDiscordComponentSpec, requestDiscord, resolveDefaultDiscordAccountId, resolveDiscordAccount, resolveDiscordAccountConfig, resolveDiscordChannelId, resolveDiscordComponentAttachmentName, resolveDiscordGroupRequireMention, resolveDiscordGroupToolPolicy, resolveDiscordMaxLinesPerMessage, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordRuntimeGroupPolicy, resolveDiscordTarget, shouldSuppressLocalDiscordExecApprovalPrompt, tryHandleDiscordMessageActionGuildAdmin };
@@ -1,9 +1,10 @@
1
- import { $ as createChannelMessage, A as Button, B as Separator, H as TextDisplay, J as createUserDmChannel, M as Container, Pt as __exportAll, R as Row, it as editChannelMessage, nt as deleteChannelMessage, w as serializePayload } from "./discord-DtHMmZqJ.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
- import { A as createDiscordClient, y as stripUndefinedFields } from "./send.shared-DzwpAEMP.js";
4
- import { i as isDiscordExecApprovalClientEnabled, t as shouldHandleDiscordApprovalRequest } from "./approval-shared-Ckk65xSG.js";
5
- import { logDebug, logError, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
1
+ import { Ft as __exportAll, N as Container, T as serializePayload, U as TextDisplay, V as Separator, Y as createUserDmChannel, at as editChannelMessage, et as createChannelMessage, j as Button, rt as deleteChannelMessage, z as Row } from "./discord-BqYcwxvG.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-D7jL5YDH.js";
3
+ import { A as createDiscordClient, y as stripUndefinedFields } from "./send.shared-Dza0jdso.js";
4
+ import { i as isDiscordExecApprovalClientEnabled, t as shouldHandleDiscordApprovalRequest } from "./approval-shared-BFnWKSQD.js";
5
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { ButtonStyle } from "discord-api-types/v10";
7
+ import { logDebug, logError } from "openclaw/plugin-sdk/logging-core";
7
8
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
8
9
  //#region extensions/discord/src/ui-colors.ts
9
10
  const DEFAULT_DISCORD_ACCENT_COLOR = "#5865F2";
@@ -1,6 +1,6 @@
1
- import { r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
2
- import { c as createChannelNativeOriginTargetResolver, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, o as createApproverRestrictedNativeApprovalCapability, r as isDiscordExecApprovalApprover, s as createChannelApproverDmTargetResolver, t as shouldHandleDiscordApprovalRequest } from "./approval-shared-Ckk65xSG.js";
3
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
1
+ import { r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-BcwyaFd-.js";
2
+ import { c as createChannelNativeOriginTargetResolver, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, o as createApproverRestrictedNativeApprovalCapability, r as isDiscordExecApprovalApprover, s as createChannelApproverDmTargetResolver, t as shouldHandleDiscordApprovalRequest } from "./approval-shared-BFnWKSQD.js";
3
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
5
5
  import { resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
6
6
  //#region extensions/discord/src/approval-native.ts
@@ -140,7 +140,7 @@ function createDiscordApprovalCapability(configOverride) {
140
140
  request,
141
141
  configOverride
142
142
  }),
143
- load: async () => (await import("./approval-handler.runtime-B5BCBw4D.js").then((n) => n.t)).discordApprovalNativeRuntime
143
+ load: async () => (await import("./approval-handler.runtime-S-ircYcz.js").then((n) => n.t)).discordApprovalNativeRuntime
144
144
  })
145
145
  });
146
146
  }
@@ -1,4 +1,4 @@
1
- import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
1
+ import { s as resolveDiscordAccount } from "./accounts-BcwyaFd-.js";
2
2
  import { t as parseDiscordTarget } from "./target-parsing-D-H7nnh2.js";
3
3
  import { createChannelApproverDmTargetResolver, createChannelNativeOriginTargetResolver, doesApprovalRequestMatchChannelAccount } from "openclaw/plugin-sdk/approval-native-runtime";
4
4
  import { getExecApprovalReplyMetadata, isChannelExecApprovalClientEnabledFromConfig, matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
@@ -1,8 +1,8 @@
1
- import { Pt as __exportAll } from "./discord-DtHMmZqJ.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
- import { T as fetchChannelPermissionsDiscord } from "./send.shared-DzwpAEMP.js";
4
- import "./send-BSBMchf8.js";
5
- import { n as collectDiscordAuditChannelIdsForAccount, t as auditDiscordChannelPermissionsWithFetcher } from "./audit-core-CG37TsZm.js";
1
+ import { Ft as __exportAll } from "./discord-BqYcwxvG.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-D7jL5YDH.js";
3
+ import { T as fetchChannelPermissionsDiscord } from "./send.shared-Dza0jdso.js";
4
+ import "./send-DCFuSiBi.js";
5
+ import { n as collectDiscordAuditChannelIdsForAccount, t as auditDiscordChannelPermissionsWithFetcher } from "./audit-core-BgDZSkIR.js";
6
6
  //#region extensions/discord/src/audit.ts
7
7
  var audit_exports = /* @__PURE__ */ __exportAll({
8
8
  auditDiscordChannelPermissions: () => auditDiscordChannelPermissions,
@@ -1,4 +1,4 @@
1
- import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
1
+ import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
2
2
  import { ChannelType } from "discord-api-types/v10";
3
3
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
4
4
  //#region extensions/discord/src/audit-core.ts
@@ -1,19 +1,19 @@
1
- import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
1
+ import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-BcwyaFd-.js";
2
2
  import { a as projectCredentialSnapshotFields, n as PAIRING_APPROVED_MESSAGE, o as resolveConfiguredFromCredentialStatuses, r as buildTokenChannelStatusSummary, t as DEFAULT_ACCOUNT_ID } from "./channel-api-CTSWMrnD.js";
3
3
  import { t as parseDiscordTarget } from "./target-parsing-D-H7nnh2.js";
4
4
  import { t as resolveDiscordOutboundSessionRoute } from "./outbound-session-route-BaJRt05p.js";
5
5
  import { n as looksLikeDiscordTargetId, r as normalizeDiscordMessagingTarget } from "./normalize-Cu94FOqy.js";
6
6
  import { t as getDiscordRuntime } from "./runtime-BqCoo-zp.js";
7
- import { a as shouldSuppressLocalDiscordExecApprovalPrompt } from "./approval-shared-Ckk65xSG.js";
8
- import { t as getDiscordApprovalCapability } from "./approval-native-CrCc3b4u.js";
9
- import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-CG37TsZm.js";
10
- import { t as discordMessageActions$1 } from "./channel-actions-CHgoSpPF.js";
11
- import { n as resolveDiscordCurrentConversationIdentity } from "./conversation-identity-BPQm_uhV.js";
12
- import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-BhcGQTJb.js";
13
- import { n as discordOutbound } from "./outbound-adapter-Bt8FL3yO.js";
14
- import { i as discordSecurityAdapter, n as discordConfigAdapter, r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-CBsrEG5q.js";
15
- import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-BQNCS1gu.js";
16
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
7
+ import { a as shouldSuppressLocalDiscordExecApprovalPrompt } from "./approval-shared-BFnWKSQD.js";
8
+ import { t as getDiscordApprovalCapability } from "./approval-native-Gtqpyfdj.js";
9
+ import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-BgDZSkIR.js";
10
+ import { t as discordMessageActions$1 } from "./channel-actions-Cn_K00Vy.js";
11
+ import { n as resolveDiscordCurrentConversationIdentity } from "./conversation-identity-CvIx6J7M.js";
12
+ import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-D18cCLmN.js";
13
+ import { n as discordOutbound } from "./outbound-adapter-lWjkSeyP.js";
14
+ import { i as discordSecurityAdapter, n as discordConfigAdapter, r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-Yp_M6Cfp.js";
15
+ import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-BV82IME9.js";
16
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
17
17
  import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
18
18
  import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
19
19
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -129,29 +129,29 @@ let discordProbeRuntimePromise;
129
129
  let discordAuditModulePromise;
130
130
  let discordSendModulePromise;
131
131
  let discordDirectoryLiveModulePromise;
132
- const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-JBaFwbAQ.js").then((n) => n.t));
133
- const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-D9Dubj_y.js").then((n) => n.n));
134
- const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DlzKsLQe.js").then((n) => n.n));
135
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-DTuwm8Tk.js").then((n) => n.a));
136
- const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-DzOelJEt.js").then((n) => n.r));
132
+ const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-CDl4JTCA.js").then((n) => n.t));
133
+ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-JNt3Ak6P.js").then((n) => n.n));
134
+ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-CrjbUxrL.js").then((n) => n.n));
135
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-DNFl10CA.js").then((n) => n.a));
136
+ const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-CgJei-kD.js").then((n) => n.r));
137
137
  async function loadDiscordProviderRuntime() {
138
- discordProviderRuntimePromise ??= import("./provider.runtime-bgZEewCO.js");
138
+ discordProviderRuntimePromise ??= import("./provider.runtime-DMRM_oVO.js");
139
139
  return await discordProviderRuntimePromise;
140
140
  }
141
141
  async function loadDiscordProbeRuntime() {
142
- discordProbeRuntimePromise ??= import("./probe.runtime-4Q9GD7FG.js");
142
+ discordProbeRuntimePromise ??= import("./probe.runtime-0F0UzBoJ.js");
143
143
  return await discordProbeRuntimePromise;
144
144
  }
145
145
  async function loadDiscordAuditModule() {
146
- discordAuditModulePromise ??= import("./audit-BRBe8xFv.js").then((n) => n.n);
146
+ discordAuditModulePromise ??= import("./audit-BliEqCEc.js").then((n) => n.n);
147
147
  return await discordAuditModulePromise;
148
148
  }
149
149
  async function loadDiscordSendModule() {
150
- discordSendModulePromise ??= import("./send-BSBMchf8.js").then((n) => n.t);
150
+ discordSendModulePromise ??= import("./send-DCFuSiBi.js").then((n) => n.t);
151
151
  return await discordSendModulePromise;
152
152
  }
153
153
  async function loadDiscordDirectoryLiveModule() {
154
- discordDirectoryLiveModulePromise ??= import("./directory-live-B4kW11z5.js").then((n) => n.t);
154
+ discordDirectoryLiveModulePromise ??= import("./directory-live-ApUXOSj0.js").then((n) => n.t);
155
155
  return await discordDirectoryLiveModulePromise;
156
156
  }
157
157
  //#endregion
@@ -1,13 +1,13 @@
1
- import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-CaHGiVB4.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
- import { c as readDiscordComponentSpec } from "./components-BJOShoIU.js";
4
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
1
+ import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-BcwyaFd-.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-D7jL5YDH.js";
3
+ import { c as readDiscordComponentSpec } from "./components-Dxq2mU57.js";
4
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
6
6
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
7
7
  //#region extensions/discord/src/channel-actions.ts
8
8
  let discordChannelActionsRuntimePromise;
9
9
  async function loadDiscordChannelActionsRuntime() {
10
- discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-E5Plubuu.js");
10
+ discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-DcsRvPnx.js");
11
11
  return await discordChannelActionsRuntimePromise;
12
12
  }
13
13
  function listDiscoverableDiscordAccounts(cfg) {
@@ -1,10 +1,10 @@
1
1
  import { n as resolveDiscordChannelId } from "./target-parsing-D-H7nnh2.js";
2
- import { t as handleDiscordAction } from "./runtime-oXRGbcb5.js";
3
- import { n as buildDiscordPresentationComponents, t as buildDiscordInteractiveComponents } from "./shared-interactive-D39V9Wtn.js";
4
- import "./targets-Dj-qyUaE.js";
2
+ import { t as handleDiscordAction } from "./runtime-CdnAT8R5.js";
3
+ import { n as buildDiscordPresentationComponents, t as buildDiscordInteractiveComponents } from "./shared-interactive-DavY6jYt.js";
4
+ import "./targets-DToZUkgV.js";
5
5
  import "./action-runtime-api.js";
6
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-DSeMCHvR.js";
7
- import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
6
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-C4phin-a.js";
7
+ import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
9
9
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
10
10
  import { normalizeInteractiveReply, normalizeMessagePresentation } from "openclaw/plugin-sdk/interactive-runtime";
@@ -1,2 +1,2 @@
1
- import { t as DiscordChannelConfigSchema } from "./config-schema-BGn5I3_3.js";
1
+ import { t as DiscordChannelConfigSchema } from "./config-schema-D2KGskAp.js";
2
2
  export { DiscordChannelConfigSchema };
@@ -1,2 +1,2 @@
1
- import { t as discordPlugin } from "./channel-D0GnZ6j1.js";
1
+ import { t as discordPlugin } from "./channel-Cg-h13vl.js";
2
2
  export { discordPlugin };
@@ -1,14 +1,14 @@
1
1
  import { n as resolveDiscordToken } from "./token-BZtonk7d.js";
2
- import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
3
- import { r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-CBsrEG5q.js";
4
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-D9Dubj_y.js";
5
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-DlzKsLQe.js";
2
+ import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-BcwyaFd-.js";
3
+ import { r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-Yp_M6Cfp.js";
4
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-JNt3Ak6P.js";
5
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-CrjbUxrL.js";
6
6
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
7
7
  import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
8
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
8
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
+ import { createAccountScopedAllowFromSection, createAccountScopedGroupAccessSection, createLegacyCompatChannelDmPolicy, createStandardChannelSetupStatus, parseMentionOrPrefixedId, patchChannelConfigForAccount, promptLegacyChannelAllowFromForAccount, resolveEntriesWithOptionalToken, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup-runtime";
9
10
  import { formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
10
11
  import "openclaw/plugin-sdk/account-resolution";
11
- import { createAccountScopedAllowFromSection, createAccountScopedGroupAccessSection, createLegacyCompatChannelDmPolicy, createStandardChannelSetupStatus, parseMentionOrPrefixedId, patchChannelConfigForAccount, promptLegacyChannelAllowFromForAccount, resolveEntriesWithOptionalToken, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup-runtime";
12
12
  //#region extensions/discord/src/setup-account-state.ts
13
13
  function inspectConfiguredToken(value) {
14
14
  const normalized = normalizeSecretInputString(value);
@@ -1,6 +1,6 @@
1
- import { A as Button, B as Separator, D as Modal, E as Label, F as MediaGallery, H as TextDisplay, I as MentionableSelectMenu, K as parseCustomId, L as RoleSelectMenu, M as Container, N as File, O as RadioGroup, P as LinkButton, Pt as __exportAll, R as Row, T as CheckboxGroup, U as Thumbnail, V as StringSelectMenu, W as UserSelectMenu, j as ChannelSelectMenu, k as TextInput, z as Section } from "./discord-DtHMmZqJ.js";
2
- import { t as buildDiscordInteractiveComponents } from "./shared-interactive-D39V9Wtn.js";
3
- import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
1
+ import { A as TextInput, B as Section, D as Label, E as CheckboxGroup, F as LinkButton, Ft as __exportAll, G as UserSelectMenu, H as StringSelectMenu, I as MediaGallery, L as MentionableSelectMenu, M as ChannelSelectMenu, N as Container, O as Modal, P as File, R as RoleSelectMenu, U as TextDisplay, V as Separator, W as Thumbnail, j as Button, k as RadioGroup, q as parseCustomId, z as Row } from "./discord-BqYcwxvG.js";
2
+ import { t as buildDiscordInteractiveComponents } from "./shared-interactive-DavY6jYt.js";
3
+ import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { ButtonStyle, MessageFlags, TextInputStyle } from "discord-api-types/v10";
5
5
  import crypto from "node:crypto";
6
6
  //#region extensions/discord/src/component-custom-id.ts
@@ -231,6 +231,10 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
231
231
  label: "Discord Voice Auto-Join",
232
232
  help: "Voice channels to auto-join on startup (list of guildId/channelId entries)."
233
233
  },
234
+ "voice.allowedChannels": {
235
+ label: "Discord Voice Allowed Channels",
236
+ help: "Optional voice channel residency allowlist. When set, /vc join, auto-join, and bot voice-state moves are restricted to these guildId/channelId entries. Leave unset to allow any voice channel."
237
+ },
234
238
  "voice.daveEncryption": {
235
239
  label: "Discord Voice DAVE Encryption",
236
240
  help: "Toggle DAVE end-to-end encryption for Discord voice joins (default: true in @discordjs/voice; Discord may require this)."
@@ -1,8 +1,8 @@
1
1
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-BGjjFBdq.js";
2
2
  import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-BCQNNS7N.js";
3
- import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-DrbQqyyW.js";
3
+ import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-DkCMKSvb.js";
4
4
  import { t as deriveLegacySessionChatType } from "./session-contract-D871HDFG.js";
5
- import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-DTuwm8Tk.js";
6
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-JBaFwbAQ.js";
5
+ import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-DNFl10CA.js";
6
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-CDl4JTCA.js";
7
7
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-BQ_sGK3J.js";
8
8
  export { collectDiscordSecurityAuditFindings, collectRuntimeConfigAssignments, collectUnsupportedSecretRefConfigCandidates, createThreadBindingManager, deriveLegacySessionChatType, __testing as discordThreadBindingTesting, legacyConfigRules, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries, unsupportedSecretRefSurfacePatterns };
@@ -1,5 +1,5 @@
1
1
  import { t as parseDiscordTarget } from "./target-parsing-D-H7nnh2.js";
2
- import { normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
2
+ import { normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  //#region extensions/discord/src/conversation-identity.ts
4
4
  function normalizeDiscordTarget(raw, defaultKind) {
5
5
  const trimmed = normalizeOptionalString(raw);
@@ -1,4 +1,4 @@
1
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
1
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
2
2
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/routing";
3
3
  //#region extensions/discord/src/directory-cache.ts
4
4
  const DISCORD_DIRECTORY_CACHE_MAX_ENTRIES = 4e3;
@@ -1,5 +1,5 @@
1
- import { Pt as __exportAll } from "./discord-DtHMmZqJ.js";
2
- import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
1
+ import { Ft as __exportAll } from "./discord-BqYcwxvG.js";
2
+ import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-BcwyaFd-.js";
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,2 +1,2 @@
1
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-JBaFwbAQ.js";
1
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-CDl4JTCA.js";
2
2
  export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
@@ -1,10 +1,10 @@
1
- import { Pt as __exportAll } from "./discord-DtHMmZqJ.js";
1
+ import { Ft as __exportAll } from "./discord-BqYcwxvG.js";
2
2
  import { t as normalizeDiscordToken } from "./token-BZtonk7d.js";
3
- import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
4
- import { t as rememberDiscordDirectoryUser } from "./directory-cache-D93eSrpB.js";
3
+ import { s as resolveDiscordAccount } from "./accounts-BcwyaFd-.js";
4
+ import { t as rememberDiscordDirectoryUser } from "./directory-cache-Ddl-Oxue.js";
5
5
  import { n as fetchDiscord } from "./api-DzNBVTto.js";
6
- import { a as normalizeDiscordSlug } from "./allow-list-4wnZg5P9.js";
7
- import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/text-runtime";
6
+ import { a as normalizeDiscordSlug } from "./allow-list-n8Ki-Rt3.js";
7
+ import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  //#region extensions/discord/src/directory-live.ts
9
9
  var directory_live_exports = /* @__PURE__ */ __exportAll({
10
10
  listDiscordDirectoryGroupsLive: () => listDiscordDirectoryGroupsLive,
@@ -2654,9 +2654,15 @@ var PresenceUpdateListener = class extends BaseListener {
2654
2654
  this.type = GatewayDispatchEvents.PresenceUpdate;
2655
2655
  }
2656
2656
  };
2657
- var ThreadUpdateListener = class extends BaseListener {
2657
+ var VoiceStateUpdateListener = class extends BaseListener {
2658
2658
  constructor(..._args8) {
2659
2659
  super(..._args8);
2660
+ this.type = GatewayDispatchEvents.VoiceStateUpdate;
2661
+ }
2662
+ };
2663
+ var ThreadUpdateListener = class extends BaseListener {
2664
+ constructor(..._args9) {
2665
+ super(..._args9);
2660
2666
  this.type = GatewayDispatchEvents.ThreadUpdate;
2661
2667
  }
2662
2668
  };
@@ -2725,6 +2731,7 @@ var discord_exports = /* @__PURE__ */ __exportAll({
2725
2731
  User: () => User,
2726
2732
  UserSelectMenu: () => UserSelectMenu,
2727
2733
  UserSelectMenuInteraction: () => UserSelectMenuInteraction,
2734
+ VoiceStateUpdateListener: () => VoiceStateUpdateListener,
2728
2735
  addGuildMemberRole: () => addGuildMemberRole,
2729
2736
  channelFactory: () => channelFactory,
2730
2737
  clean: () => clean$3,
@@ -2791,4 +2798,4 @@ var discord_exports = /* @__PURE__ */ __exportAll({
2791
2798
  import * as import_discord_api_types_v10 from "discord-api-types/v10";
2792
2799
  __reExport(discord_exports, import_discord_api_types_v10);
2793
2800
  //#endregion
2794
- export { createChannelMessage as $, Button as A, putChannelPermission as At, Separator as B, User as C, getGuildVoiceState as Ct, Modal as D, listGuildRoles as Dt, Label as E, listGuildEmojis as Et, MediaGallery as F, BaseMessageInteractiveComponent as G, TextDisplay as H, MentionableSelectMenu as I, createUserDmChannel as J, parseCustomId as K, RoleSelectMenu as L, Container as M, removeGuildMemberRole as Mt, File as N, timeoutGuildMember as Nt, RadioGroup as O, listGuildScheduledEvents as Ot, LinkButton as P, __exportAll as Pt, listMessageReactionUsers as Q, Row as R, Message as S, getGuildMember as St, CheckboxGroup as T, listGuildChannels as Tt, Thumbnail as U, StringSelectMenu as V, UserSelectMenu as W, createOwnMessageReaction as X, getCurrentUser as Y, deleteOwnMessageReaction as Z, readDiscordMessage as _, createGuildEmoji as _t, MessageReactionRemoveListener as a, getChannel as at, CommandWithSubcommands as b, deleteChannelPermission as bt, ResumedListener as c, listChannelMessages as ct, Client as d, searchGuildMessages as dt, createThread as et, Plugin as f, sendChannelTyping as ft, readDiscordCode as g, createGuildChannel as gt, RateLimitError as h, createGuildBan as ht, MessageReactionAddListener as i, editChannelMessage as it, ChannelSelectMenu as j, removeGuildMember as jt, TextInput as k, moveGuildChannels as kt, ThreadUpdateListener as l, listChannelPins as lt, DiscordError as m, addGuildMemberRole as mt, InteractionCreateListener as n, deleteChannelMessage as nt, PresenceUpdateListener as o, getChannelMessage as ot, RequestClient as p, unpinChannelMessage as pt, createChannelWebhook as q, MessageCreateListener as r, editChannel as rt, ReadyListener as s, listChannelArchivedThreads as st, discord_exports as t, deleteChannel as tt, Embed as u, pinChannelMessage as ut, readRetryAfter as v, createGuildScheduledEvent as vt, serializePayload as w, listGuildActiveThreads as wt, Guild as x, getGuild as xt, Command as y, createGuildSticker as yt, Section as z };
2801
+ export { listMessageReactionUsers as $, TextInput as A, moveGuildChannels as At, Section as B, Message as C, getGuildMember as Ct, Label as D, listGuildEmojis as Dt, CheckboxGroup as E, listGuildChannels as Et, LinkButton as F, __exportAll as Ft, UserSelectMenu as G, StringSelectMenu as H, MediaGallery as I, createChannelWebhook as J, BaseMessageInteractiveComponent as K, MentionableSelectMenu as L, ChannelSelectMenu as M, removeGuildMember as Mt, Container as N, removeGuildMemberRole as Nt, Modal as O, listGuildRoles as Ot, File as P, timeoutGuildMember as Pt, deleteOwnMessageReaction as Q, RoleSelectMenu as R, Guild as S, getGuild as St, serializePayload as T, listGuildActiveThreads as Tt, TextDisplay as U, Separator as V, Thumbnail as W, getCurrentUser as X, createUserDmChannel as Y, createOwnMessageReaction as Z, readDiscordCode as _, createGuildChannel as _t, MessageReactionRemoveListener as a, editChannelMessage as at, Command as b, createGuildSticker as bt, ResumedListener as c, listChannelArchivedThreads as ct, Embed as d, pinChannelMessage as dt, createChannelMessage as et, Client as f, searchGuildMessages as ft, RateLimitError as g, createGuildBan as gt, DiscordError as h, addGuildMemberRole as ht, MessageReactionAddListener as i, editChannel as it, Button as j, putChannelPermission as jt, RadioGroup as k, listGuildScheduledEvents as kt, ThreadUpdateListener as l, listChannelMessages as lt, RequestClient as m, unpinChannelMessage as mt, InteractionCreateListener as n, deleteChannel as nt, PresenceUpdateListener as o, getChannel as ot, Plugin as p, sendChannelTyping as pt, parseCustomId as q, MessageCreateListener as r, deleteChannelMessage as rt, ReadyListener as s, getChannelMessage as st, discord_exports as t, createThread as tt, VoiceStateUpdateListener as u, listChannelPins as ut, readDiscordMessage as v, createGuildEmoji as vt, User as w, getGuildVoiceState as wt, CommandWithSubcommands as x, deleteChannelPermission as xt, readRetryAfter as y, createGuildScheduledEvent as yt, Row as z };
@@ -1,9 +1,9 @@
1
- import { o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
1
+ import { o as resolveDefaultDiscordAccountId } from "./accounts-BcwyaFd-.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-D7jL5YDH.js";
3
3
  import { n as normalizeCompatibilityConfig } from "./doctor-contract-BGjjFBdq.js";
4
4
  import { t as DISCORD_LEGACY_CONFIG_RULES } from "./doctor-shared-D_QLzu30.js";
5
5
  import { t as isDiscordMutableAllowEntry } from "./security-doctor-BJH5YIGL.js";
6
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
6
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { collectProviderDangerousNameMatchingScopes } from "openclaw/plugin-sdk/runtime-doctor";
8
8
  //#region extensions/discord/src/doctor.ts
9
9
  function asObjectRecord$1(value) {
@@ -1,6 +1,6 @@
1
- import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-oXRGbcb5.js";
1
+ import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-CdnAT8R5.js";
2
2
  import "./action-runtime-api.js";
3
- import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
3
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { readNumberParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
5
5
  //#region extensions/discord/src/actions/handle-action.guild-admin.ts
6
6
  async function tryHandleDiscordMessageActionGuildAdmin(params) {
@@ -1,4 +1,4 @@
1
- import { h as resolveDiscordOwnerAllowFrom, p as resolveDiscordMemberAllowed } from "./allow-list-4wnZg5P9.js";
1
+ import { h as resolveDiscordOwnerAllowFrom, p as resolveDiscordMemberAllowed } from "./allow-list-n8Ki-Rt3.js";
2
2
  import { buildUntrustedChannelMetadata, wrapExternalContent } from "openclaw/plugin-sdk/security-runtime";
3
3
  //#region extensions/discord/src/monitor/inbound-context.ts
4
4
  function createDiscordSupplementalContextAccessChecker(params) {