@openclaw/discord 2026.5.3-beta.2 → 2026.5.3

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 (73) hide show
  1. package/dist/{account-inspect-C2UEUhbG.js → account-inspect-BcQAxhKY.js} +1 -1
  2. package/dist/account-inspect-api.js +1 -1
  3. package/dist/{accounts-BKnkNaoA.js → accounts-CaHGiVB4.js} +7 -5
  4. package/dist/action-runtime-api.js +1 -1
  5. package/dist/api.js +13 -13
  6. package/dist/{approval-handler.runtime-v8nzQHlT.js → approval-handler.runtime-AZort68o.js} +4 -4
  7. package/dist/{approval-native-DqWGp0bM.js → approval-native-oN9__F3M.js} +3 -3
  8. package/dist/{approval-shared-DKnwwjZM.js → approval-shared-GfJeMdLu.js} +1 -1
  9. package/dist/{audit-CJ92YD6J.js → audit-DEbWTFTt.js} +3 -3
  10. package/dist/{channel-B3aTtBj1.js → channel-Nf20xyAS.js} +16 -16
  11. package/dist/{channel-actions-TNih7k3w.js → channel-actions-ChsoeB3T.js} +3 -3
  12. package/dist/{channel-actions.runtime-CaPytiY4.js → channel-actions.runtime-BxNUYqD-.js} +3 -3
  13. package/dist/channel-config-api.js +1 -1
  14. package/dist/channel-plugin-api.js +1 -1
  15. package/dist/{channel.setup-Dt4tIDrl.js → channel.setup-DHzAG9qO.js} +5 -5
  16. package/dist/{components-BapWDmDM.js → components-D5LnN7ZQ.js} +1 -1
  17. package/dist/{config-schema-DwFkL904.js → config-schema-BmGtnfiE.js} +18 -2
  18. package/dist/contract-api.js +3 -3
  19. package/dist/{directory-config-LyMP0sdv.js → directory-config-DElx_Gr4.js} +1 -1
  20. package/dist/directory-contract-api.js +1 -1
  21. package/dist/{directory-live-BQapdpkZ.js → directory-live-DJ0V5asB.js} +2 -2
  22. package/dist/{discord-D1kDh0X_.js → discord-eZlimVfW.js} +1 -1
  23. package/dist/{doctor-B2G7WqO0.js → doctor-Bgzf3Du2.js} +3 -3
  24. package/dist/{doctor-contract-D3pSutkb.js → doctor-contract-Dxq4VIkE.js} +1 -1
  25. package/dist/doctor-contract-api.js +1 -1
  26. package/dist/{handle-action.guild-admin-BuqsSVXu.js → handle-action.guild-admin-B2Zzo2HU.js} +1 -1
  27. package/dist/{manager.runtime-M2aAa7qA.js → manager.runtime-B0TEyget.js} +2 -2
  28. package/dist/{message-handler-D6JfFV3P.js → message-handler-TShaLWeQ.js} +4 -4
  29. package/dist/{message-handler.preflight-DqaF3vHm.js → message-handler.preflight-BsvNIDEw.js} +7 -7
  30. package/dist/{message-handler.process-tl3Nwnhr.js → message-handler.process-Be2HA9AV.js} +178 -78
  31. package/dist/{outbound-adapter-DJf9_sfH.js → outbound-adapter-B-mzejZP.js} +6 -6
  32. package/dist/preview-streaming-BzkA67Qa.js +7 -0
  33. package/dist/{probe-DcNEodPI.js → probe-DmHUl6wI.js} +1 -1
  34. package/dist/{probe.runtime-P-e4r1Hl.js → probe.runtime-ch3eJ1Ar.js} +1 -1
  35. package/dist/{provider-CMvXOp-3.js → provider-Cy1aml6b.js} +23 -56
  36. package/dist/{provider-session.runtime-JFemrDZT.js → provider-session.runtime-CD5RUyP3.js} +3 -3
  37. package/dist/provider.runtime-CbW_PYV-.js +2 -0
  38. package/dist/{reply-delivery-D9So77a6.js → reply-delivery-uCiWAyIt.js} +2 -2
  39. package/dist/{resolve-allowlist-common-DqqFY_qa.js → resolve-allowlist-common-Cl2N5YLW.js} +1 -1
  40. package/dist/{resolve-channels-CGPntufJ.js → resolve-channels-VAqom3Dn.js} +1 -1
  41. package/dist/{resolve-users-CDvSlW0V.js → resolve-users-DPJkRKx1.js} +1 -1
  42. package/dist/{route-resolution-BYiC-6Cc.js → route-resolution-Bx85WEpX.js} +1 -1
  43. package/dist/{runtime-n5xZHW55.js → runtime-SoSwefbS.js} +7 -7
  44. package/dist/runtime-api.actions.js +2 -2
  45. package/dist/runtime-api.js +18 -18
  46. package/dist/runtime-api.lookup.js +5 -5
  47. package/dist/runtime-api.monitor-srLSEVEX.js +6 -0
  48. package/dist/runtime-api.monitor.js +4 -4
  49. package/dist/runtime-api.send.js +4 -4
  50. package/dist/runtime-api.threads.js +3 -3
  51. package/dist/{send-B_frVn_Q.js → send-Dw6Da1m2.js} +4 -4
  52. package/dist/{send.components-B1EgHAds.js → send.components-CJ8gYK3s.js} +5 -5
  53. package/dist/{send.outbound-DlBAuW7y.js → send.outbound-6KbINW5h.js} +3 -3
  54. package/dist/{send.shared-Db0opnak.js → send.shared-e9Pd_Em0.js} +10 -5
  55. package/dist/setup-plugin-api.js +1 -1
  56. package/dist/{shared-CqlrJmSs.js → shared-C1EMtcxR.js} +9 -6
  57. package/dist/{subagent-hooks-mEK5ARfP.js → subagent-hooks-4TZ3SJrh.js} +2 -2
  58. package/dist/subagent-hooks-api.js +1 -1
  59. package/dist/{system-events-Bu9jmO4W.js → system-events-B-xNU7II.js} +1 -1
  60. package/dist/{targets-kKlbZ4ai.js → targets-B7OfGFt8.js} +1 -1
  61. package/dist/test-api.js +3 -3
  62. package/dist/{thread-bindings-Bj1R-6QH.js → thread-bindings-DLoian4S.js} +3 -3
  63. package/dist/{thread-bindings.discord-api-ClPMuIr8.js → thread-bindings.discord-api-BJF6acLK.js} +4 -4
  64. package/dist/{thread-bindings.manager-BaN0l4y8.js → thread-bindings.manager-CWG9Gd04.js} +4 -4
  65. package/dist/{threading-CWhdYHVx.js → threading-Bi95Nz8h.js} +1 -1
  66. package/dist/token-BZtonk7d.js +93 -0
  67. package/dist/{typing-CJiowRTZ.js → typing-BSi1dUHm.js} +1 -1
  68. package/openclaw.plugin.json +80 -2
  69. package/package.json +4 -4
  70. package/dist/preview-streaming-C0O92Qqz.js +0 -14
  71. package/dist/provider.runtime-BO007oR2.js +0 -2
  72. package/dist/runtime-api.monitor-BC-XN0tY.js +0 -6
  73. package/dist/token-D-w3Rigl.js +0 -42
@@ -1,4 +1,4 @@
1
- import { a as mergeDiscordAccountConfig, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-BKnkNaoA.js";
1
+ import { a as mergeDiscordAccountConfig, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.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
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
@@ -1,4 +1,4 @@
1
- import { t as inspectDiscordAccount } from "./account-inspect-C2UEUhbG.js";
1
+ import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
2
2
  //#region extensions/discord/account-inspect-api.ts
3
3
  function inspectDiscordReadOnlyAccount(cfg, accountId) {
4
4
  return inspectDiscordAccount({
@@ -1,4 +1,4 @@
1
- import { n as resolveDiscordToken } from "./token-D-w3Rigl.js";
1
+ import { n as resolveDiscordToken, r as selectDiscordRuntimeConfig } from "./token-BZtonk7d.js";
2
2
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
4
4
  import { createAccountActionGate, createAccountListHelpers, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-helpers";
@@ -46,18 +46,20 @@ function createDiscordActionGate(params) {
46
46
  });
47
47
  }
48
48
  function resolveDiscordAccount(params) {
49
- const accountId = normalizeAccountId(params.accountId ?? resolveDefaultDiscordAccountId(params.cfg));
50
- const baseEnabled = params.cfg.channels?.discord?.enabled !== false;
51
- const merged = mergeDiscordAccountConfig(params.cfg, accountId);
49
+ const cfg = selectDiscordRuntimeConfig(params.cfg);
50
+ const accountId = normalizeAccountId(params.accountId ?? resolveDefaultDiscordAccountId(cfg));
51
+ const baseEnabled = cfg.channels?.discord?.enabled !== false;
52
+ const merged = mergeDiscordAccountConfig(cfg, accountId);
52
53
  const accountEnabled = merged.enabled !== false;
53
54
  const enabled = baseEnabled && accountEnabled;
54
- const tokenResolution = resolveDiscordToken(params.cfg, { accountId });
55
+ const tokenResolution = resolveDiscordToken(cfg, { accountId });
55
56
  return {
56
57
  accountId,
57
58
  enabled,
58
59
  name: normalizeOptionalString(merged.name),
59
60
  token: tokenResolution.token,
60
61
  tokenSource: tokenResolution.source,
62
+ tokenStatus: tokenResolution.tokenStatus,
61
63
  config: merged
62
64
  };
63
65
  }
@@ -1,2 +1,2 @@
1
- import { t as handleDiscordAction } from "./runtime-n5xZHW55.js";
1
+ import { t as handleDiscordAction } from "./runtime-SoSwefbS.js";
2
2
  export { handleDiscordAction };
package/dist/api.js CHANGED
@@ -1,24 +1,24 @@
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-BKnkNaoA.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-C2UEUhbG.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-CaHGiVB4.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
3
  import { i as normalizeDiscordOutboundTarget, n as looksLikeDiscordTargetId, o as parseDiscordTarget, r as normalizeDiscordMessagingTarget, s as resolveDiscordChannelId } from "./normalize-B-ktw-T_.js";
4
- import { A as resolveDiscordTarget, j as parseDiscordSendTarget } from "./send.shared-Db0opnak.js";
4
+ import { A as resolveDiscordTarget, j as parseDiscordSendTarget } from "./send.shared-e9Pd_Em0.js";
5
5
  import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-DzNBVTto.js";
6
- 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-BapWDmDM.js";
6
+ 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-D5LnN7ZQ.js";
7
7
  import { t as buildDiscordInteractiveComponents } from "./shared-interactive-KgJjCqnB.js";
8
- import "./targets-kKlbZ4ai.js";
9
- import { a as shouldSuppressLocalDiscordExecApprovalPrompt, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, r as isDiscordExecApprovalApprover } from "./approval-shared-DKnwwjZM.js";
10
- import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-B3aTtBj1.js";
8
+ import "./targets-B7OfGFt8.js";
9
+ import { a as shouldSuppressLocalDiscordExecApprovalPrompt, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, r as isDiscordExecApprovalApprover } from "./approval-shared-GfJeMdLu.js";
10
+ import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-Nf20xyAS.js";
11
11
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-Daag9II6.js";
12
- import { t as discordSetupPlugin } from "./channel.setup-Dt4tIDrl.js";
13
- import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-mEK5ARfP.js";
14
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-BuqsSVXu.js";
15
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-LyMP0sdv.js";
12
+ import { t as discordSetupPlugin } from "./channel.setup-DHzAG9qO.js";
13
+ import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-4TZ3SJrh.js";
14
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-B2Zzo2HU.js";
15
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-DElx_Gr4.js";
16
16
  import { t as fetchPluralKitMessageInfo } from "./pluralkit-voQvSN3g.js";
17
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DcNEodPI.js";
17
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DmHUl6wI.js";
18
18
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Cdz2iq3m.js";
19
19
  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-C7jeTtGs.js";
20
20
  import { resolveOpenProviderRuntimeGroupPolicy as resolveDiscordRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
21
21
  //#region extensions/discord/api.ts
22
- const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-CaPytiY4.js")).handleDiscordMessageAction(...args);
22
+ const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-BxNUYqD-.js")).handleDiscordMessageAction(...args);
23
23
  //#endregion
24
24
  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,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-C2UEUhbG.js";
3
- import { $ as createChannelMessage, A as Button, B as Separator, H as TextDisplay, J as createUserDmChannel, M as Container, R as Row, it as editChannelMessage, nt as deleteChannelMessage, w as serializePayload } from "./discord-D1kDh0X_.js";
4
- import { M as createDiscordClient, y as stripUndefinedFields } from "./send.shared-Db0opnak.js";
5
- import { i as isDiscordExecApprovalClientEnabled, t as shouldHandleDiscordApprovalRequest } from "./approval-shared-DKnwwjZM.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
+ import { $ as createChannelMessage, A as Button, B as Separator, H as TextDisplay, J as createUserDmChannel, M as Container, R as Row, it as editChannelMessage, nt as deleteChannelMessage, w as serializePayload } from "./discord-eZlimVfW.js";
4
+ import { M as createDiscordClient, y as stripUndefinedFields } from "./send.shared-e9Pd_Em0.js";
5
+ import { i as isDiscordExecApprovalClientEnabled, t as shouldHandleDiscordApprovalRequest } from "./approval-shared-GfJeMdLu.js";
6
6
  import { logDebug, logError, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
7
7
  import { ButtonStyle } from "discord-api-types/v10";
8
8
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
@@ -1,5 +1,5 @@
1
- import { r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-BKnkNaoA.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-DKnwwjZM.js";
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-GfJeMdLu.js";
3
3
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
4
4
  import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
5
5
  import { resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
@@ -140,7 +140,7 @@ function createDiscordApprovalCapability(configOverride) {
140
140
  request,
141
141
  configOverride
142
142
  }),
143
- load: async () => (await import("./approval-handler.runtime-v8nzQHlT.js").then((n) => n.t)).discordApprovalNativeRuntime
143
+ load: async () => (await import("./approval-handler.runtime-AZort68o.js").then((n) => n.t)).discordApprovalNativeRuntime
144
144
  })
145
145
  });
146
146
  }
@@ -1,4 +1,4 @@
1
- import { s as resolveDiscordAccount } from "./accounts-BKnkNaoA.js";
1
+ import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
2
2
  import { o as parseDiscordTarget } from "./normalize-B-ktw-T_.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,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-C2UEUhbG.js";
3
- import { T as fetchChannelPermissionsDiscord } from "./send.shared-Db0opnak.js";
4
- import "./send-B_frVn_Q.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
+ import { T as fetchChannelPermissionsDiscord } from "./send.shared-e9Pd_Em0.js";
4
+ import "./send-Dw6Da1m2.js";
5
5
  import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
6
6
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
7
7
  //#region extensions/discord/src/audit-core.ts
@@ -1,15 +1,15 @@
1
- import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-BKnkNaoA.js";
1
+ import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-CaHGiVB4.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 { n as looksLikeDiscordTargetId, o as parseDiscordTarget, r as normalizeDiscordMessagingTarget } from "./normalize-B-ktw-T_.js";
4
4
  import { t as resolveDiscordOutboundSessionRoute } from "./outbound-session-route-uHGLDP-Y.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-K9RT6Egn.js";
6
- import { a as shouldSuppressLocalDiscordExecApprovalPrompt } from "./approval-shared-DKnwwjZM.js";
7
- import { t as getDiscordApprovalCapability } from "./approval-native-DqWGp0bM.js";
8
- import { t as discordMessageActions$1 } from "./channel-actions-TNih7k3w.js";
6
+ import { a as shouldSuppressLocalDiscordExecApprovalPrompt } from "./approval-shared-GfJeMdLu.js";
7
+ import { t as getDiscordApprovalCapability } from "./approval-native-oN9__F3M.js";
8
+ import { t as discordMessageActions$1 } from "./channel-actions-ChsoeB3T.js";
9
9
  import { n as resolveDiscordCurrentConversationIdentity } from "./conversation-identity-BN9wSmxJ.js";
10
10
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-TTP020qQ.js";
11
- import { n as discordOutbound } from "./outbound-adapter-DJf9_sfH.js";
12
- import { i as discordSecurityAdapter, n as discordConfigAdapter, r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-CqlrJmSs.js";
11
+ import { n as discordOutbound } from "./outbound-adapter-B-mzejZP.js";
12
+ import { i as discordSecurityAdapter, n as discordConfigAdapter, r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-C1EMtcxR.js";
13
13
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-Daag9II6.js";
14
14
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
15
15
  import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
@@ -126,28 +126,28 @@ let discordProbeRuntimePromise;
126
126
  let discordAuditModulePromise;
127
127
  let discordSendModulePromise;
128
128
  let discordDirectoryLiveModulePromise;
129
- const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-LyMP0sdv.js").then((n) => n.t));
130
- const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-CGPntufJ.js").then((n) => n.n));
131
- const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-CDvSlW0V.js").then((n) => n.n));
132
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-BaN0l4y8.js").then((n) => n.a));
129
+ const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-DElx_Gr4.js").then((n) => n.t));
130
+ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-VAqom3Dn.js").then((n) => n.n));
131
+ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DPJkRKx1.js").then((n) => n.n));
132
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-CWG9Gd04.js").then((n) => n.a));
133
133
  async function loadDiscordProviderRuntime() {
134
- discordProviderRuntimePromise ??= import("./provider.runtime-BO007oR2.js");
134
+ discordProviderRuntimePromise ??= import("./provider.runtime-CbW_PYV-.js");
135
135
  return await discordProviderRuntimePromise;
136
136
  }
137
137
  async function loadDiscordProbeRuntime() {
138
- discordProbeRuntimePromise ??= import("./probe.runtime-P-e4r1Hl.js");
138
+ discordProbeRuntimePromise ??= import("./probe.runtime-ch3eJ1Ar.js");
139
139
  return await discordProbeRuntimePromise;
140
140
  }
141
141
  async function loadDiscordAuditModule() {
142
- discordAuditModulePromise ??= import("./audit-CJ92YD6J.js").then((n) => n.n);
142
+ discordAuditModulePromise ??= import("./audit-DEbWTFTt.js").then((n) => n.n);
143
143
  return await discordAuditModulePromise;
144
144
  }
145
145
  async function loadDiscordSendModule() {
146
- discordSendModulePromise ??= import("./send-B_frVn_Q.js").then((n) => n.t);
146
+ discordSendModulePromise ??= import("./send-Dw6Da1m2.js").then((n) => n.t);
147
147
  return await discordSendModulePromise;
148
148
  }
149
149
  async function loadDiscordDirectoryLiveModule() {
150
- discordDirectoryLiveModulePromise ??= import("./directory-live-BQapdpkZ.js").then((n) => n.t);
150
+ discordDirectoryLiveModulePromise ??= import("./directory-live-DJ0V5asB.js").then((n) => n.t);
151
151
  return await discordDirectoryLiveModulePromise;
152
152
  }
153
153
  //#endregion
@@ -403,7 +403,7 @@ const discordPlugin = createChatChannelPlugin({
403
403
  },
404
404
  mentions: { stripPatterns: () => ["<@!?\\d+>"] },
405
405
  agentPrompt: { messageToolHints: () => [
406
- "- Discord mentions: use canonical outbound syntax: users `<@USER_ID>`, channels `<#CHANNEL_ID>`, and roles `<@&ROLE_ID>`. Do not use the legacy `<@!USER_ID>` nickname form.",
406
+ "- Discord mentions: use canonical outbound syntax: users `<@USER_ID>`, channels `<#CHANNEL_ID>`, and roles `<@&ROLE_ID>`. Plain `@name` text only pings when a configured `mentionAliases` entry rewrites it; do not use the legacy `<@!USER_ID>` nickname form.",
407
407
  "- Discord components: set `components` when sending messages to include buttons, selects, or v2 containers.",
408
408
  "- Forms: add `components.modal` (title, fields). OpenClaw adds a trigger button and routes submissions as new messages."
409
409
  ] },
@@ -1,12 +1,12 @@
1
- import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-BKnkNaoA.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-C2UEUhbG.js";
1
+ import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-CaHGiVB4.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
4
4
  import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
5
5
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
6
6
  //#region extensions/discord/src/channel-actions.ts
7
7
  let discordChannelActionsRuntimePromise;
8
8
  async function loadDiscordChannelActionsRuntime() {
9
- discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-CaPytiY4.js");
9
+ discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-BxNUYqD-.js");
10
10
  return await discordChannelActionsRuntimePromise;
11
11
  }
12
12
  function listDiscoverableDiscordAccounts(cfg) {
@@ -1,9 +1,9 @@
1
1
  import { s as resolveDiscordChannelId } from "./normalize-B-ktw-T_.js";
2
- import { t as handleDiscordAction } from "./runtime-n5xZHW55.js";
2
+ import { t as handleDiscordAction } from "./runtime-SoSwefbS.js";
3
3
  import { n as buildDiscordPresentationComponents, t as buildDiscordInteractiveComponents } from "./shared-interactive-KgJjCqnB.js";
4
- import "./targets-kKlbZ4ai.js";
4
+ import "./targets-B7OfGFt8.js";
5
5
  import "./action-runtime-api.js";
6
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-BuqsSVXu.js";
6
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-B2Zzo2HU.js";
7
7
  import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
8
8
  import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
9
9
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
@@ -1,2 +1,2 @@
1
- import { t as DiscordChannelConfigSchema } from "./config-schema-DwFkL904.js";
1
+ import { t as DiscordChannelConfigSchema } from "./config-schema-BmGtnfiE.js";
2
2
  export { DiscordChannelConfigSchema };
@@ -1,2 +1,2 @@
1
- import { t as discordPlugin } from "./channel-B3aTtBj1.js";
1
+ import { t as discordPlugin } from "./channel-Nf20xyAS.js";
2
2
  export { discordPlugin };
@@ -1,8 +1,8 @@
1
- import { n as resolveDiscordToken } from "./token-D-w3Rigl.js";
2
- import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-BKnkNaoA.js";
3
- import { r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-CqlrJmSs.js";
4
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CGPntufJ.js";
5
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-CDvSlW0V.js";
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-C1EMtcxR.js";
4
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-VAqom3Dn.js";
5
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-DPJkRKx1.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
8
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
- 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, 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-D1kDh0X_.js";
2
+ 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, 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-eZlimVfW.js";
3
3
  import { t as buildDiscordInteractiveComponents } from "./shared-interactive-KgJjCqnB.js";
4
4
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
5
5
  import { ButtonStyle, MessageFlags, TextInputStyle } from "discord-api-types/v10";
@@ -32,11 +32,11 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
32
32
  },
33
33
  streaming: {
34
34
  label: "Discord Streaming Mode",
35
- help: "Unified Discord stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". \"progress\" maps to \"partial\" on Discord. Legacy boolean/streamMode keys are auto-mapped."
35
+ help: "Unified Discord stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". \"progress\" keeps a single editable progress draft until final delivery. Legacy boolean/streamMode keys are auto-mapped."
36
36
  },
37
37
  "streaming.mode": {
38
38
  label: "Discord Streaming Mode",
39
- help: "Canonical Discord preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". \"progress\" maps to \"partial\" on Discord."
39
+ help: "Canonical Discord preview mode: \"off\" | \"partial\" | \"block\" | \"progress\"."
40
40
  },
41
41
  "streaming.chunkMode": {
42
42
  label: "Discord Chunk Mode",
@@ -66,6 +66,22 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
66
66
  label: "Discord Draft Tool Progress",
67
67
  help: "Show tool/progress activity in the live draft preview message (default: true). Set false to keep tool updates as separate messages."
68
68
  },
69
+ "streaming.progress.label": {
70
+ label: "Discord Progress Label",
71
+ help: "Initial progress draft title. Use \"auto\" for built-in single-word labels, a custom string, or false to hide the title."
72
+ },
73
+ "streaming.progress.labels": {
74
+ label: "Discord Progress Label Pool",
75
+ help: "Candidate labels for streaming.progress.label=\"auto\". Leave unset to use OpenClaw built-in progress labels."
76
+ },
77
+ "streaming.progress.maxLines": {
78
+ label: "Discord Progress Max Lines",
79
+ help: "Maximum number of compact progress lines to keep below the draft label (default: 8)."
80
+ },
81
+ "streaming.progress.toolProgress": {
82
+ label: "Discord Progress Tool Lines",
83
+ help: "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery."
84
+ },
69
85
  "retry.attempts": {
70
86
  label: "Discord Retry Attempts",
71
87
  help: "Max retry attempts for outbound Discord API calls (default: 3)."
@@ -1,8 +1,8 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D3pSutkb.js";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-Dxq4VIkE.js";
2
2
  import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-CoGryS5c.js";
3
3
  import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-ei3Mz8Sa.js";
4
4
  import { t as deriveLegacySessionChatType } from "./session-contract-goJZckp2.js";
5
- import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-BaN0l4y8.js";
6
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-LyMP0sdv.js";
5
+ import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-CWG9Gd04.js";
6
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-DElx_Gr4.js";
7
7
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Cdz2iq3m.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 __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
- import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-BKnkNaoA.js";
2
+ import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.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-LyMP0sdv.js";
1
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-DElx_Gr4.js";
2
2
  export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
- import { t as normalizeDiscordToken } from "./token-D-w3Rigl.js";
3
- import { s as resolveDiscordAccount } from "./accounts-BKnkNaoA.js";
2
+ import { t as normalizeDiscordToken } from "./token-BZtonk7d.js";
3
+ import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
4
4
  import { t as rememberDiscordDirectoryUser } from "./directory-cache-D93eSrpB.js";
5
5
  import { n as fetchDiscord } from "./api-DzNBVTto.js";
6
6
  import { a as normalizeDiscordSlug } from "./allow-list-ek-1hMKN.js";
@@ -2748,4 +2748,4 @@ var discord_exports = /* @__PURE__ */ __exportAll({
2748
2748
  import * as import_discord_api_types_v10 from "discord-api-types/v10";
2749
2749
  __reExport(discord_exports, import_discord_api_types_v10);
2750
2750
  //#endregion
2751
- 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, overwriteApplicationCommands 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 };
2751
+ 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, 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 };
@@ -1,6 +1,6 @@
1
- import { o as resolveDefaultDiscordAccountId } from "./accounts-BKnkNaoA.js";
2
- import { t as inspectDiscordAccount } from "./account-inspect-C2UEUhbG.js";
3
- import { n as normalizeCompatibilityConfig } from "./doctor-contract-D3pSutkb.js";
1
+ import { o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
2
+ import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
+ import { n as normalizeCompatibilityConfig } from "./doctor-contract-Dxq4VIkE.js";
4
4
  import { t as DISCORD_LEGACY_CONFIG_RULES } from "./doctor-shared-DU8RcnF5.js";
5
5
  import { t as isDiscordMutableAllowEntry } from "./security-doctor-CzTzpXV8.js";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
@@ -1,4 +1,4 @@
1
- import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-C0O92Qqz.js";
1
+ import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-BzkA67Qa.js";
2
2
  import { asObjectRecord, normalizeLegacyChannelAliases } from "openclaw/plugin-sdk/runtime-doctor";
3
3
  //#region extensions/discord/src/doctor-contract.ts
4
4
  const LEGACY_TTS_PROVIDER_KEYS = [
@@ -1,2 +1,2 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D3pSutkb.js";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-Dxq4VIkE.js";
2
2
  export { legacyConfigRules, normalizeCompatibilityConfig };
@@ -1,4 +1,4 @@
1
- import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-n5xZHW55.js";
1
+ import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-SoSwefbS.js";
2
2
  import "./action-runtime-api.js";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
4
4
  import { readNumberParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
@@ -1,5 +1,5 @@
1
- import { c as resolveDiscordAccountAllowFrom } from "./accounts-BKnkNaoA.js";
2
- import { c as ResumedListener, s as ReadyListener, t as discord_exports } from "./discord-D1kDh0X_.js";
1
+ import { c as resolveDiscordAccountAllowFrom } from "./accounts-CaHGiVB4.js";
2
+ import { c as ResumedListener, s as ReadyListener, t as discord_exports } from "./discord-eZlimVfW.js";
3
3
  import { n as formatDiscordUserTag } from "./format-D8TsaXxW.js";
4
4
  import { a as normalizeDiscordSlug, m as resolveDiscordOwnerAccess } from "./allow-list-ek-1hMKN.js";
5
5
  import { t as formatMention } from "./mentions-BPZUaFk7.js";
@@ -1,8 +1,8 @@
1
- import { N as createDiscordRestClient } from "./send.shared-Db0opnak.js";
1
+ import { N as createDiscordRestClient } from "./send.shared-e9Pd_Em0.js";
2
2
  import { a as resolveDiscordChannelParentSafe, n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe, t as resolveDiscordChannelIdSafe } from "./channel-access-ewDxhd9q.js";
3
3
  import { a as mergeAbortSignals } from "./timeouts-C7jeTtGs.js";
4
4
  import { l as resolveDiscordMessageChannelId, r as resolveDiscordMessageText, s as hasDiscordMessageStickers } from "./message-utils-Dmgu-7fC.js";
5
- import { t as sendTyping } from "./typing-CJiowRTZ.js";
5
+ import { t as sendTyping } from "./typing-BSi1dUHm.js";
6
6
  import { danger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
7
7
  import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
8
8
  import { resolveBatchedReplyThreadingPolicy } from "openclaw/plugin-sdk/reply-reference";
@@ -121,7 +121,7 @@ function applyImplicitReplyBatchGate(ctx, replyToMode, isBatched) {
121
121
  //#region extensions/discord/src/monitor/message-run-queue.ts
122
122
  let messageProcessRuntimePromise;
123
123
  async function loadMessageProcessRuntime() {
124
- messageProcessRuntimePromise ??= import("./message-handler.process-tl3Nwnhr.js");
124
+ messageProcessRuntimePromise ??= import("./message-handler.process-Be2HA9AV.js");
125
125
  return await messageProcessRuntimePromise;
126
126
  }
127
127
  async function processDiscordQueuedMessage(params) {
@@ -173,7 +173,7 @@ function createDiscordMessageRunQueue(params) {
173
173
  //#region extensions/discord/src/monitor/message-handler.ts
174
174
  let messagePreflightRuntimePromise;
175
175
  async function loadMessagePreflightRuntime() {
176
- messagePreflightRuntimePromise ??= import("./message-handler.preflight-DqaF3vHm.js");
176
+ messagePreflightRuntimePromise ??= import("./message-handler.preflight-BsvNIDEw.js");
177
177
  return await messagePreflightRuntimePromise;
178
178
  }
179
179
  function isNonEmptyString(value) {
@@ -1,13 +1,13 @@
1
- import { o as resolveDefaultDiscordAccountId } from "./accounts-BKnkNaoA.js";
2
- import { S as Message, ot as getChannelMessage, t as discord_exports } from "./discord-D1kDh0X_.js";
1
+ import { o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
2
+ import { S as Message, ot as getChannelMessage, t as discord_exports } from "./discord-eZlimVfW.js";
3
3
  import { i as resolveTimestampMs, n as formatDiscordUserTag, r as resolveDiscordSystemLocation } from "./format-D8TsaXxW.js";
4
4
  import { _ as resolveGroupDmAllow, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, g as resolveDiscordShouldRequireMention, i as normalizeDiscordDisplaySlug, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy } from "./allow-list-ek-1hMKN.js";
5
5
  import { t as resolveDiscordConversationIdentity } from "./conversation-identity-BN9wSmxJ.js";
6
6
  import { l as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-Dzu1gCE7.js";
7
- import "./thread-bindings-Bj1R-6QH.js";
7
+ import "./thread-bindings-DLoian4S.js";
8
8
  import { n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe } from "./channel-access-ewDxhd9q.js";
9
9
  import { c as resolveDiscordChannelInfo, l as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-Dmgu-7fC.js";
10
- import { a as shouldIgnoreStaleDiscordRouteBinding, i as resolveDiscordEffectiveRoute, o as handleDiscordDmCommandDecision, r as resolveDiscordConversationRoute, s as resolveDiscordDmCommandAccess, t as buildDiscordRoutePeer } from "./route-resolution-BYiC-6Cc.js";
10
+ import { a as shouldIgnoreStaleDiscordRouteBinding, i as resolveDiscordEffectiveRoute, o as handleDiscordDmCommandDecision, r as resolveDiscordConversationRoute, s as resolveDiscordDmCommandAccess, t as buildDiscordRoutePeer } from "./route-resolution-Bx85WEpX.js";
11
11
  import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-BiSDAk2P.js";
12
12
  import { logDebug, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
13
13
  import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
@@ -28,7 +28,7 @@ async function loadConversationRuntime$1() {
28
28
  return await conversationRuntimePromise$1;
29
29
  }
30
30
  async function loadDiscordSendRuntime() {
31
- discordSendRuntimePromise ??= import("./send-B_frVn_Q.js").then((n) => n.t);
31
+ discordSendRuntimePromise ??= import("./send-Dw6Da1m2.js").then((n) => n.t);
32
32
  return await discordSendRuntimePromise;
33
33
  }
34
34
  async function resolveDiscordDmPreflightAccess(params) {
@@ -436,11 +436,11 @@ async function loadPreflightAudioRuntime() {
436
436
  return await preflightAudioRuntimePromise;
437
437
  }
438
438
  async function loadSystemEventsRuntime() {
439
- systemEventsRuntimePromise ??= import("./system-events-Bu9jmO4W.js");
439
+ systemEventsRuntimePromise ??= import("./system-events-B-xNU7II.js");
440
440
  return await systemEventsRuntimePromise;
441
441
  }
442
442
  async function loadDiscordThreadingRuntime() {
443
- discordThreadingRuntimePromise ??= import("./threading-CWhdYHVx.js").then((n) => n.t);
443
+ discordThreadingRuntimePromise ??= import("./threading-Bi95Nz8h.js").then((n) => n.t);
444
444
  return await discordThreadingRuntimePromise;
445
445
  }
446
446
  function isPreflightAborted(abortSignal) {