@openclaw/discord 2026.5.18 → 2026.5.19-beta.2

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 (56) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/api.js +12 -12
  3. package/dist/{approval-handler.runtime-CpNuGEHP.js → approval-handler.runtime-CRpNixJy.js} +3 -3
  4. package/dist/{audit-CniGmJUL.js → audit-DEF10R9j.js} +3 -3
  5. package/dist/{channel-n7fwA0Rx.js → channel-CR9HckAC.js} +14 -14
  6. package/dist/{channel-actions-DRqDFJUk.js → channel-actions-CpmPx9PW.js} +2 -2
  7. package/dist/{channel-actions.runtime-DVnGrlsm.js → channel-actions.runtime-Be5OvB1r.js} +5 -5
  8. package/dist/channel-plugin-api.js +1 -1
  9. package/dist/{channel.setup-D1j7U4B3.js → channel.setup-DR3-U0wF.js} +2 -2
  10. package/dist/{components-KsP3ijoj.js → components-q41bHoCx.js} +4 -1
  11. package/dist/contract-api.js +3 -3
  12. package/dist/{conversation-identity-CYgemFy7.js → conversation-identity-BY7sjUQh.js} +2 -2
  13. package/dist/{directory-config-B5jO6mjo.js → directory-config-x3YzNdoX.js} +1 -1
  14. package/dist/directory-contract-api.js +1 -1
  15. package/dist/{directory-live-D5VrQBC7.js → directory-live-CJiEWQwK.js} +1 -1
  16. package/dist/{handle-action.guild-admin-CqCngm8I.js → handle-action.guild-admin-kAzbjGMw.js} +1 -1
  17. package/dist/{manager.runtime-DigfejdS.js → manager.runtime-CGcJ0yjq.js} +3 -3
  18. package/dist/{message-handler-Jsc36DUW.js → message-handler-1NV0WiHC.js} +9 -9
  19. package/dist/{message-handler.preflight--cdiq4ck.js → message-handler.preflight-DQ-oPY7m.js} +10 -10
  20. package/dist/{message-handler.process-9JHT0Fok.js → message-handler.process-PpgZ0qC4.js} +12 -12
  21. package/dist/{message-utils-BZriBbcg.js → message-utils-BKrlzFtM.js} +1 -1
  22. package/dist/{outbound-adapter-C54-43UU.js → outbound-adapter-CaZzpMnE.js} +8 -7
  23. package/dist/{pluralkit-BHV93ojA.js → pluralkit-BnCH6cHK.js} +1 -1
  24. package/dist/{provider-BXK0P155.js → provider-BZtjA1y_.js} +20 -20
  25. package/dist/{provider-session.runtime-CMvHIMEE.js → provider-session.runtime-DVfzQxFH.js} +3 -3
  26. package/dist/provider.runtime-DlegJeN5.js +2 -0
  27. package/dist/{resolve-channels-AxDQ4jXh.js → resolve-channels-Czrd7fOv.js} +1 -1
  28. package/dist/{resolve-users-D7w0icpA.js → resolve-users-D7hQMaaq.js} +1 -1
  29. package/dist/{runtime-CqTcWrem.js → runtime-BJUWt4mA.js} +7 -7
  30. package/dist/runtime-api.actions.js +2 -2
  31. package/dist/runtime-api.js +19 -19
  32. package/dist/runtime-api.lookup.js +4 -4
  33. package/dist/runtime-api.monitor-BlxEnLN_.js +5 -0
  34. package/dist/runtime-api.monitor.js +4 -4
  35. package/dist/runtime-api.send.js +5 -5
  36. package/dist/runtime-api.threads.js +4 -4
  37. package/dist/{send-DuW4qqIK.js → send-BsBy21Te.js} +3 -3
  38. package/dist/{send.components-BjAjvjmT.js → send.components-BuZBJysI.js} +4 -4
  39. package/dist/{send.outbound-PAYV11wW.js → send.outbound-C0OzZAv_.js} +3 -3
  40. package/dist/{send.receipt-nKLxvA1s.js → send.receipt-Dhym-qOF.js} +37 -37
  41. package/dist/{send.shared-CJ6oJrVc.js → send.shared-C6JLgsbp.js} +2 -2
  42. package/dist/setup-plugin-api.js +1 -1
  43. package/dist/{subagent-hooks-CnPSppNz.js → subagent-hooks-DCIt8Gt7.js} +12 -5
  44. package/dist/subagent-hooks-api.js +1 -1
  45. package/dist/{system-events-CEehp53f.js → system-events-DEuiLTl9.js} +1 -1
  46. package/dist/{target-resolver-CgtNlbhO.js → target-resolver-C5tK3vit.js} +2 -2
  47. package/dist/targets-JvlTzyfK.js +3 -0
  48. package/dist/test-api.js +4 -4
  49. package/dist/{thread-bindings-CXZ2h9DB.js → thread-bindings-BcXgbZ3-.js} +5 -5
  50. package/dist/{thread-bindings.discord-api-_zMU4M2x.js → thread-bindings.discord-api-BzelVdsY.js} +4 -4
  51. package/dist/{thread-bindings.manager-XKdkYEit.js → thread-bindings.manager-CouT_qjE.js} +8 -7
  52. package/dist/{typing-DudlJ-Fv.js → typing-DtdZgo-g.js} +1 -1
  53. package/package.json +4 -4
  54. package/dist/provider.runtime-TGlvSd9K.js +0 -2
  55. package/dist/runtime-api.monitor-D97Sc6-n.js +0 -5
  56. package/dist/targets-Z4SW2zZs.js +0 -3
@@ -1,2 +1,2 @@
1
- import { t as handleDiscordAction } from "./runtime-CqTcWrem.js";
1
+ import { t as handleDiscordAction } from "./runtime-BJUWt4mA.js";
2
2
  export { handleDiscordAction };
package/dist/api.js CHANGED
@@ -1,23 +1,23 @@
1
- import { Ht as parseDiscordTarget, Ut as resolveDiscordChannelId, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId, o as normalizeDiscordOutboundTarget } from "./send.receipt-nKLxvA1s.js";
1
+ import { Ht as parseDiscordTarget, Ut as resolveDiscordChannelId, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId, o as normalizeDiscordOutboundTarget } from "./send.receipt-Dhym-qOF.js";
2
2
  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-ltxKLzxN.js";
3
3
  import { t as inspectDiscordAccount } from "./account-inspect-DCXwNu_u.js";
4
- import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, c as buildDiscordComponentMessage, d as readDiscordComponentSpec, f as resolveDiscordComponentAttachmentName, g as buildDiscordModalCustomId, h as buildDiscordComponentCustomId, l as buildDiscordComponentMessageFlags, m as DISCORD_MODAL_CUSTOM_ID_KEY, n as formatDiscordComponentEventText, o as DiscordFormModal, p as DISCORD_COMPONENT_CUSTOM_ID_KEY, r as buildDiscordInteractiveComponents, s as createDiscordFormModal, u as DISCORD_COMPONENT_ATTACHMENT_PREFIX, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-KsP3ijoj.js";
4
+ import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, c as buildDiscordComponentMessage, d as readDiscordComponentSpec, f as resolveDiscordComponentAttachmentName, g as buildDiscordModalCustomId, h as buildDiscordComponentCustomId, l as buildDiscordComponentMessageFlags, m as DISCORD_MODAL_CUSTOM_ID_KEY, n as formatDiscordComponentEventText, o as DiscordFormModal, p as DISCORD_COMPONENT_CUSTOM_ID_KEY, r as buildDiscordInteractiveComponents, s as createDiscordFormModal, u as DISCORD_COMPONENT_ATTACHMENT_PREFIX, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-q41bHoCx.js";
5
5
  import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-DgQLz1wq.js";
6
- import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-CgtNlbhO.js";
7
- import "./targets-Z4SW2zZs.js";
8
- import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-CYgemFy7.js";
9
- import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-n7fwA0Rx.js";
6
+ import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-C5tK3vit.js";
7
+ import "./targets-JvlTzyfK.js";
8
+ import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-BY7sjUQh.js";
9
+ import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-CR9HckAC.js";
10
10
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-DnCXUKGA.js";
11
- import { t as discordSetupPlugin } from "./channel.setup-D1j7U4B3.js";
12
- import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-CnPSppNz.js";
13
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CqCngm8I.js";
14
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-B5jO6mjo.js";
15
- import { t as fetchPluralKitMessageInfo } from "./pluralkit-BHV93ojA.js";
11
+ import { t as discordSetupPlugin } from "./channel.setup-DR3-U0wF.js";
12
+ import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-DCIt8Gt7.js";
13
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-kAzbjGMw.js";
14
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-x3YzNdoX.js";
15
+ import { t as fetchPluralKitMessageInfo } from "./pluralkit-BnCH6cHK.js";
16
16
  import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-BLDNbk41.js";
17
17
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Dx3j4a0l.js";
18
18
  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-CEwuGaWT.js";
19
19
  import { resolveOpenProviderRuntimeGroupPolicy as resolveDiscordRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
20
20
  //#region extensions/discord/api.ts
21
- const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-DVnGrlsm.js")).handleDiscordMessageAction(...args);
21
+ const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-Be5OvB1r.js")).handleDiscordMessageAction(...args);
22
22
  //#endregion
23
23
  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,7 +1,7 @@
1
- import { B as Container, J as Separator, K as Row, M as serializePayload, R as Button, Wt as __exportAll, X as TextDisplay, ft as editChannelMessage, nt as createUserDmChannel, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-nKLxvA1s.js";
1
+ import { B as Container, J as Separator, K as Row, M as serializePayload, R as Button, Wt as __exportAll, X as TextDisplay, ft as editChannelMessage, nt as createUserDmChannel, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-Dhym-qOF.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DCXwNu_u.js";
3
- import { M as createDiscordClient, b as stripUndefinedFields } from "./send.shared-CJ6oJrVc.js";
4
- import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-CYgemFy7.js";
3
+ import { M as createDiscordClient, b as stripUndefinedFields } from "./send.shared-C6JLgsbp.js";
4
+ import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-BY7sjUQh.js";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { ButtonStyle } from "discord-api-types/v10";
7
7
  import { logDebug, logError } from "openclaw/plugin-sdk/logging-core";
@@ -1,7 +1,7 @@
1
- import { Wt as __exportAll } from "./send.receipt-nKLxvA1s.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DCXwNu_u.js";
3
- import { E as fetchChannelPermissionsDiscord } from "./send.shared-CJ6oJrVc.js";
4
- import "./send-DuW4qqIK.js";
3
+ import { E as fetchChannelPermissionsDiscord } from "./send.shared-C6JLgsbp.js";
4
+ import "./send-BsBy21Te.js";
5
5
  import { n as collectDiscordAuditChannelIdsForAccount, t as auditDiscordChannelPermissionsWithFetcher } from "./audit-core-DRyoXREU.js";
6
6
  //#region extensions/discord/src/audit.ts
7
7
  var audit_exports = /* @__PURE__ */ __exportAll({
@@ -1,13 +1,13 @@
1
- import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt-nKLxvA1s.js";
1
+ import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt-Dhym-qOF.js";
2
2
  import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
3
  import { a as projectCredentialSnapshotFields, n as PAIRING_APPROVED_MESSAGE, o as resolveConfiguredFromCredentialStatuses, r as buildTokenChannelStatusSummary, t as DEFAULT_ACCOUNT_ID } from "./channel-api-JudoSiJv.js";
4
- import { x as resolveDiscordOutboundSessionRoute } from "./components-KsP3ijoj.js";
4
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-q41bHoCx.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-Tqtvj5GX.js";
6
- import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-CYgemFy7.js";
6
+ import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-BY7sjUQh.js";
7
7
  import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-DRyoXREU.js";
8
- import { t as discordMessageActions$1 } from "./channel-actions-DRqDFJUk.js";
8
+ import { t as discordMessageActions$1 } from "./channel-actions-CpmPx9PW.js";
9
9
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-CgOqEOPe.js";
10
- import { n as discordOutbound } from "./outbound-adapter-C54-43UU.js";
10
+ import { n as discordOutbound } from "./outbound-adapter-CaZzpMnE.js";
11
11
  import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-CYe5A_Bs.js";
12
12
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-DnCXUKGA.js";
13
13
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -126,13 +126,13 @@ let discordProbeRuntimePromise;
126
126
  let discordAuditModulePromise;
127
127
  let discordSendModulePromise;
128
128
  let discordDirectoryLiveModulePromise;
129
- const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-B5jO6mjo.js").then((n) => n.t));
130
- const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-AxDQ4jXh.js").then((n) => n.n));
131
- const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-D7w0icpA.js").then((n) => n.n));
132
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-XKdkYEit.js").then((n) => n.a));
133
- const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-CgtNlbhO.js").then((n) => n.r));
129
+ const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-x3YzNdoX.js").then((n) => n.t));
130
+ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-Czrd7fOv.js").then((n) => n.n));
131
+ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-D7hQMaaq.js").then((n) => n.n));
132
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-CouT_qjE.js").then((n) => n.a));
133
+ const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-C5tK3vit.js").then((n) => n.r));
134
134
  async function loadDiscordProviderRuntime() {
135
- discordProviderRuntimePromise ??= import("./provider.runtime-TGlvSd9K.js");
135
+ discordProviderRuntimePromise ??= import("./provider.runtime-DlegJeN5.js");
136
136
  return await discordProviderRuntimePromise;
137
137
  }
138
138
  async function loadDiscordProbeRuntime() {
@@ -140,15 +140,15 @@ async function loadDiscordProbeRuntime() {
140
140
  return await discordProbeRuntimePromise;
141
141
  }
142
142
  async function loadDiscordAuditModule() {
143
- discordAuditModulePromise ??= import("./audit-CniGmJUL.js").then((n) => n.n);
143
+ discordAuditModulePromise ??= import("./audit-DEF10R9j.js").then((n) => n.n);
144
144
  return await discordAuditModulePromise;
145
145
  }
146
146
  async function loadDiscordSendModule() {
147
- discordSendModulePromise ??= import("./send-DuW4qqIK.js").then((n) => n.t);
147
+ discordSendModulePromise ??= import("./send-BsBy21Te.js").then((n) => n.t);
148
148
  return await discordSendModulePromise;
149
149
  }
150
150
  async function loadDiscordDirectoryLiveModule() {
151
- discordDirectoryLiveModulePromise ??= import("./directory-live-D5VrQBC7.js").then((n) => n.t);
151
+ discordDirectoryLiveModulePromise ??= import("./directory-live-CJiEWQwK.js").then((n) => n.t);
152
152
  return await discordDirectoryLiveModulePromise;
153
153
  }
154
154
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-ltxKLzxN.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DCXwNu_u.js";
3
- import { d as readDiscordComponentSpec } from "./components-KsP3ijoj.js";
3
+ import { d as readDiscordComponentSpec } from "./components-q41bHoCx.js";
4
4
  import { i as withDiscordInboundEventDeliveryMetadata } from "./inbound-event-delivery-D8zHG9Lz.js";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
@@ -8,7 +8,7 @@ import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
8
8
  //#region extensions/discord/src/channel-actions.ts
9
9
  let discordChannelActionsRuntimePromise;
10
10
  async function loadDiscordChannelActionsRuntime() {
11
- discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-DVnGrlsm.js");
11
+ discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-Be5OvB1r.js");
12
12
  return await discordChannelActionsRuntimePromise;
13
13
  }
14
14
  function listDiscoverableDiscordAccounts(cfg) {
@@ -1,10 +1,10 @@
1
- import { Ut as resolveDiscordChannelId } from "./send.receipt-nKLxvA1s.js";
2
- import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-KsP3ijoj.js";
3
- import { t as handleDiscordAction } from "./runtime-CqTcWrem.js";
4
- import "./targets-Z4SW2zZs.js";
1
+ import { Ut as resolveDiscordChannelId } from "./send.receipt-Dhym-qOF.js";
2
+ import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-q41bHoCx.js";
3
+ import { t as handleDiscordAction } from "./runtime-BJUWt4mA.js";
4
+ import "./targets-JvlTzyfK.js";
5
5
  import "./action-runtime-api.js";
6
6
  import { r as notifyDiscordInboundEventOutboundSuccess } from "./inbound-event-delivery-D8zHG9Lz.js";
7
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CqCngm8I.js";
7
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-kAzbjGMw.js";
8
8
  import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
10
10
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
@@ -1,2 +1,2 @@
1
- import { t as discordPlugin } from "./channel-n7fwA0Rx.js";
1
+ import { t as discordPlugin } from "./channel-CR9HckAC.js";
2
2
  export { discordPlugin };
@@ -1,7 +1,7 @@
1
1
  import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, m as resolveDiscordToken, o as resolveDefaultDiscordAccountId } from "./accounts-ltxKLzxN.js";
2
2
  import { i as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-CYe5A_Bs.js";
3
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-AxDQ4jXh.js";
4
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-D7w0icpA.js";
3
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-Czrd7fOv.js";
4
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-D7hQMaaq.js";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
6
  import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,4 +1,4 @@
1
- import { B as Container, F as Modal, G as RoleSelectMenu, H as LinkButton, Ht as parseDiscordTarget, I as RadioGroup, J as Separator, K as Row, L as TextInput, N as CheckboxGroup, P as Label, Q as UserSelectMenu, R as Button, U as MediaGallery, V as File, W as MentionableSelectMenu, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, Z as Thumbnail, et as parseCustomId, q as Section, z as ChannelSelectMenu } from "./send.receipt-nKLxvA1s.js";
1
+ import { B as Container, F as Modal, G as RoleSelectMenu, H as LinkButton, Ht as parseDiscordTarget, I as RadioGroup, J as Separator, K as Row, L as TextInput, N as CheckboxGroup, P as Label, Q as UserSelectMenu, R as Button, U as MediaGallery, V as File, W as MentionableSelectMenu, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, Z as Thumbnail, et as parseCustomId, q as Section, z as ChannelSelectMenu } from "./send.receipt-Dhym-qOF.js";
2
2
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { buildOutboundBaseSessionKey } from "openclaw/plugin-sdk/routing";
4
4
  import { buildThreadAwareOutboundSessionRoute } from "openclaw/plugin-sdk/channel-core";
@@ -390,6 +390,7 @@ function createButtonComponent(params) {
390
390
  super(..._args);
391
391
  this.label = params.spec.label;
392
392
  this.url = linkUrl;
393
+ this.disabled = params.spec.disabled ?? false;
393
394
  }
394
395
  }
395
396
  return { component: new DynamicLinkButton() };
@@ -802,6 +803,7 @@ function buildDiscordInteractiveComponents(interactive) {
802
803
  };
803
804
  if (button.value) spec.callbackData = button.value;
804
805
  if (button.url) spec.url = button.url;
806
+ if (button.disabled === true) spec.disabled = true;
805
807
  return spec;
806
808
  })
807
809
  });
@@ -873,6 +875,7 @@ function appendDiscordPresentationButtonBlocks(spec, buttons) {
873
875
  };
874
876
  if (button.value) component.callbackData = button.value;
875
877
  if (button.url) component.url = button.url;
878
+ if (button.disabled === true) component.disabled = true;
876
879
  return component;
877
880
  })
878
881
  });
@@ -2,7 +2,7 @@ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doc
2
2
  import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-57_WV6qt.js";
3
3
  import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-BWDASKVo.js";
4
4
  import { t as deriveLegacySessionChatType } from "./session-contract-Dwhw3RTY.js";
5
- import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-XKdkYEit.js";
6
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-B5jO6mjo.js";
5
+ import { i as testing, n as createThreadBindingManager } from "./thread-bindings.manager-CouT_qjE.js";
6
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-x3YzNdoX.js";
7
7
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Dx3j4a0l.js";
8
- export { collectDiscordSecurityAuditFindings, collectRuntimeConfigAssignments, collectUnsupportedSecretRefConfigCandidates, createThreadBindingManager, deriveLegacySessionChatType, __testing as discordThreadBindingTesting, legacyConfigRules, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries, unsupportedSecretRefSurfacePatterns };
8
+ export { collectDiscordSecurityAuditFindings, collectRuntimeConfigAssignments, collectUnsupportedSecretRefConfigCandidates, createThreadBindingManager, deriveLegacySessionChatType, testing as discordThreadBindingTesting, legacyConfigRules, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries, unsupportedSecretRefSurfacePatterns };
@@ -1,4 +1,4 @@
1
- import { Ht as parseDiscordTarget } from "./send.receipt-nKLxvA1s.js";
1
+ import { Ht as parseDiscordTarget } from "./send.receipt-Dhym-qOF.js";
2
2
  import { r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
3
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
@@ -229,7 +229,7 @@ function createDiscordApprovalCapability(configOverride) {
229
229
  request,
230
230
  configOverride
231
231
  }),
232
- load: async () => (await import("./approval-handler.runtime-CpNuGEHP.js").then((n) => n.t)).discordApprovalNativeRuntime
232
+ load: async () => (await import("./approval-handler.runtime-CRpNixJy.js").then((n) => n.t)).discordApprovalNativeRuntime
233
233
  })
234
234
  });
235
235
  }
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-nKLxvA1s.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
2
  import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-ltxKLzxN.js";
3
3
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
@@ -1,2 +1,2 @@
1
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-B5jO6mjo.js";
1
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-x3YzNdoX.js";
2
2
  export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-nKLxvA1s.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
2
  import { p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
3
  import { n as fetchDiscord } from "./api-DgQLz1wq.js";
4
4
  import { a as normalizeDiscordSlug } from "./allow-list-CBI-M84K.js";
@@ -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-CqTcWrem.js";
1
+ import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-BJUWt4mA.js";
2
2
  import "./action-runtime-api.js";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { readNumberParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
@@ -1,9 +1,9 @@
1
- import { Ht as parseDiscordTarget, _ as VoiceStateUpdateListener, c as discord_exports, h as ResumedListener, m as ReadyListener } from "./send.receipt-nKLxvA1s.js";
1
+ import { Ht as parseDiscordTarget, _ as VoiceStateUpdateListener, c as discord_exports, h as ResumedListener, m as ReadyListener } from "./send.receipt-Dhym-qOF.js";
2
2
  import { c as resolveDiscordAccountAllowFrom } from "./accounts-ltxKLzxN.js";
3
3
  import { a as normalizeDiscordSlug, b as formatDiscordUserTag, m as resolveDiscordOwnerAccess } from "./allow-list-CBI-M84K.js";
4
- import { i as formatMention } from "./send.outbound-PAYV11wW.js";
4
+ import { i as formatMention } from "./send.outbound-C0OzZAv_.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-Tqtvj5GX.js";
6
- import { o as authorizeDiscordVoiceIngress, u as resolveDiscordVoiceEnabled } from "./provider-BXK0P155.js";
6
+ import { o as authorizeDiscordVoiceIngress, u as resolveDiscordVoiceEnabled } from "./provider-BZtjA1y_.js";
7
7
  import { t as buildDiscordGroupSystemPrompt } from "./inbound-context-CzEAvKgx.js";
8
8
  import { createRequire } from "node:module";
9
9
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,8 +1,8 @@
1
- import { N as createDiscordRestClient } from "./send.shared-CJ6oJrVc.js";
2
- import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-_zMU4M2x.js";
1
+ import { N as createDiscordRestClient } from "./send.shared-C6JLgsbp.js";
2
+ import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BzelVdsY.js";
3
3
  import { a as mergeAbortSignals } from "./timeouts-CEwuGaWT.js";
4
- import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-BZriBbcg.js";
5
- import { t as sendTyping } from "./typing-DudlJ-Fv.js";
4
+ import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-BKrlzFtM.js";
5
+ import { t as sendTyping } from "./typing-DtdZgo-g.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-9JHT0Fok.js");
124
+ messageProcessRuntimePromise ??= import("./message-handler.process-PpgZ0qC4.js");
125
125
  return await messageProcessRuntimePromise;
126
126
  }
127
127
  async function processDiscordQueuedMessage(params) {
@@ -162,7 +162,7 @@ function createDiscordMessageRunQueue(params) {
162
162
  job,
163
163
  lifecycleSignal,
164
164
  replayGuard,
165
- testing: params.__testing
165
+ testing: params.testing
166
166
  });
167
167
  });
168
168
  },
@@ -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--cdiq4ck.js");
176
+ messagePreflightRuntimePromise ??= import("./message-handler.preflight-DQ-oPY7m.js");
177
177
  return await messagePreflightRuntimePromise;
178
178
  }
179
179
  function isNonEmptyString(value) {
@@ -207,14 +207,14 @@ function createDiscordMessageHandler(params) {
207
207
  defaultGroupPolicy: params.cfg.channels?.defaults?.groupPolicy
208
208
  });
209
209
  const ackReactionScope = params.discordConfig?.ackReactionScope ?? params.cfg.messages?.ackReactionScope ?? "group-mentions";
210
- const preflightDiscordMessageImpl = params.__testing?.preflightDiscordMessage;
210
+ const preflightDiscordMessageImpl = params.testing?.preflightDiscordMessage;
211
211
  const replayGuard = createDiscordInboundReplayGuard();
212
212
  const messageRunQueue = createDiscordMessageRunQueue({
213
213
  runtime: params.runtime,
214
214
  setStatus: params.setStatus,
215
215
  abortSignal: params.abortSignal,
216
216
  replayGuard,
217
- __testing: params.__testing
217
+ testing: params.testing
218
218
  });
219
219
  const { debouncer } = createChannelInboundDebouncer({
220
220
  cfg: params.cfg,
@@ -1,12 +1,12 @@
1
- import { A as Message, c as discord_exports, mt as getChannelMessage } from "./send.receipt-nKLxvA1s.js";
1
+ import { A as Message, c as discord_exports, mt as getChannelMessage } from "./send.receipt-Dhym-qOF.js";
2
2
  import { o as resolveDefaultDiscordAccountId } from "./accounts-ltxKLzxN.js";
3
3
  import { S as resolveTimestampMs, _ as resolveGroupDmAllow, a as normalizeDiscordSlug, b as formatDiscordUserTag, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, g as resolveDiscordShouldRequireMention, i as normalizeDiscordDisplaySlug, n as isDiscordGroupAllowedByPolicy, x as resolveDiscordSystemLocation } from "./allow-list-CBI-M84K.js";
4
- import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CYgemFy7.js";
4
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-BY7sjUQh.js";
5
5
  import { l as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-CSphZOiL.js";
6
- import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-_zMU4M2x.js";
7
- import "./thread-bindings-CXZ2h9DB.js";
8
- import { C as resolveDiscordDmCommandAccess, f as buildDiscordRoutePeer, g as handleDiscordDmCommandDecision, h as shouldIgnoreStaleDiscordRouteBinding, m as resolveDiscordEffectiveRoute, p as resolveDiscordConversationRoute, w as resolveDiscordTextCommandAccess } from "./provider-BXK0P155.js";
9
- import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-BZriBbcg.js";
6
+ import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BzelVdsY.js";
7
+ import "./thread-bindings-BcXgbZ3-.js";
8
+ import { C as resolveDiscordDmCommandAccess, f as buildDiscordRoutePeer, g as handleDiscordDmCommandDecision, h as shouldIgnoreStaleDiscordRouteBinding, m as resolveDiscordEffectiveRoute, p as resolveDiscordConversationRoute, w as resolveDiscordTextCommandAccess } from "./provider-BZtjA1y_.js";
9
+ import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-BKrlzFtM.js";
10
10
  import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-DC0FdEcU.js";
11
11
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
12
12
  import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
@@ -29,7 +29,7 @@ async function loadConversationRuntime$1() {
29
29
  return await conversationRuntimePromise$1;
30
30
  }
31
31
  async function loadDiscordSendRuntime() {
32
- discordSendRuntimePromise ??= import("./send-DuW4qqIK.js").then((n) => n.t);
32
+ discordSendRuntimePromise ??= import("./send-BsBy21Te.js").then((n) => n.t);
33
33
  return await discordSendRuntimePromise;
34
34
  }
35
35
  async function resolveDiscordDmPreflightAccess(params) {
@@ -427,7 +427,7 @@ let preflightAudioRuntimePromise;
427
427
  let systemEventsRuntimePromise;
428
428
  let discordThreadingRuntimePromise;
429
429
  async function loadPluralKitRuntime() {
430
- pluralkitRuntimePromise ??= import("./pluralkit-BHV93ojA.js").then((n) => n.n);
430
+ pluralkitRuntimePromise ??= import("./pluralkit-BnCH6cHK.js").then((n) => n.n);
431
431
  return await pluralkitRuntimePromise;
432
432
  }
433
433
  async function loadPreflightAudioRuntime() {
@@ -435,11 +435,11 @@ async function loadPreflightAudioRuntime() {
435
435
  return await preflightAudioRuntimePromise;
436
436
  }
437
437
  async function loadSystemEventsRuntime() {
438
- systemEventsRuntimePromise ??= import("./system-events-CEehp53f.js");
438
+ systemEventsRuntimePromise ??= import("./system-events-DEuiLTl9.js");
439
439
  return await systemEventsRuntimePromise;
440
440
  }
441
441
  async function loadDiscordThreadingRuntime() {
442
- discordThreadingRuntimePromise ??= import("./provider-BXK0P155.js").then((n) => n.v);
442
+ discordThreadingRuntimePromise ??= import("./provider-BZtjA1y_.js").then((n) => n.v);
443
443
  return await discordThreadingRuntimePromise;
444
444
  }
445
445
  function isPreflightAborted(abortSignal) {
@@ -1,17 +1,17 @@
1
- import { Ut as resolveDiscordChannelId, c as discord_exports, ft as editChannelMessage, s as chunkDiscordTextWithMode, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-nKLxvA1s.js";
1
+ import { Ut as resolveDiscordChannelId, c as discord_exports, ft as editChannelMessage, s as chunkDiscordTextWithMode, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-Dhym-qOF.js";
2
2
  import { f as resolveDiscordMaxLinesPerMessage } from "./accounts-ltxKLzxN.js";
3
- import { N as createDiscordRestClient, P as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-CJ6oJrVc.js";
3
+ import { N as createDiscordRestClient, P as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-C6JLgsbp.js";
4
4
  import { S as resolveTimestampMs, a as normalizeDiscordSlug, r as normalizeDiscordAllowList } from "./allow-list-CBI-M84K.js";
5
- import { a as removeReactionDiscord, f as editMessageDiscord, r as reactMessageDiscord } from "./send-DuW4qqIK.js";
6
- import "./targets-Z4SW2zZs.js";
7
- import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CYgemFy7.js";
5
+ import { a as removeReactionDiscord, f as editMessageDiscord, r as reactMessageDiscord } from "./send-BsBy21Te.js";
6
+ import "./targets-JvlTzyfK.js";
7
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-BY7sjUQh.js";
8
8
  import { t as beginDiscordInboundEventDeliveryCorrelation } from "./inbound-event-delivery-D8zHG9Lz.js";
9
- import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-C54-43UU.js";
9
+ import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-CaZzpMnE.js";
10
10
  import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-nClS_TQx.js";
11
11
  import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-CEwuGaWT.js";
12
- import { a as resolveReplyContext, i as buildGuildLabel, n as deliverDiscordReply, r as buildDirectLabel, x as resolveDiscordThreadStarter, y as resolveDiscordAutoThreadReplyPlan } from "./provider-BXK0P155.js";
13
- import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-BZriBbcg.js";
14
- import { t as sendTyping } from "./typing-DudlJ-Fv.js";
12
+ import { a as resolveReplyContext, i as buildGuildLabel, n as deliverDiscordReply, r as buildDirectLabel, x as resolveDiscordThreadStarter, y as resolveDiscordAutoThreadReplyPlan } from "./provider-BZtjA1y_.js";
13
+ import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-BKrlzFtM.js";
14
+ import { t as sendTyping } from "./typing-DtdZgo-g.js";
15
15
  import { n as buildDiscordInboundAccessContext, r as createDiscordSupplementalContextAccessChecker } from "./inbound-context-CzEAvKgx.js";
16
16
  import { buildAgentSessionKey, normalizeAccountId, resolveAccountEntry, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
17
17
  import { MessageFlags } from "discord-api-types/v10";
@@ -762,7 +762,7 @@ function createDiscordDraftPreviewController(params) {
762
762
  };
763
763
  }
764
764
  function normalizeReasoningProgressLine(text) {
765
- return text.replace(/^\s*(?:>\s*)?Reasoning:\s*/i, "").replace(/\s+/g, " ").trim();
765
+ return text.replace(/^\s*(?:>\s*)?(?:Reasoning:|Thinking\.{0,3})\s*/i, "").replace(/\s+/g, " ").trim();
766
766
  }
767
767
  function mergeReasoningProgressText(current, incoming) {
768
768
  if (!current) return incoming;
@@ -773,7 +773,7 @@ function mergeReasoningProgressText(current, incoming) {
773
773
  return `${current}${incoming}`;
774
774
  }
775
775
  function isReasoningSnapshotText(text) {
776
- return /^\s*(?:>\s*)?Reasoning:\s*/i.test(text);
776
+ return /^\s*(?:>\s*)?(?:Reasoning:|Thinking\.{0,3})\s*/i.test(text);
777
777
  }
778
778
  function isEmptyDiscordProgressLine(line) {
779
779
  if (!line || typeof line === "string") return false;
@@ -1097,7 +1097,7 @@ async function processDiscordMessage(ctx, observer) {
1097
1097
  if (draftStream && draftPreview.isProgressMode && info.kind === "block") {
1098
1098
  if (!resolveSendableOutboundReplyParts(effectivePayload).hasMedia && !payload.isError) return;
1099
1099
  }
1100
- if (draftStream && isFinal && (!draftPreview.isProgressMode || draftPreview.hasProgressDraftStarted)) {
1100
+ if (draftStream && isFinal && (!draftPreview.isProgressMode || draftPreview.hasProgressDraftStarted) && !payload.isError) {
1101
1101
  const hasMedia = resolveSendableOutboundReplyParts(effectivePayload).hasMedia;
1102
1102
  const ttsSupplement = getReplyPayloadTtsSupplement(effectivePayload);
1103
1103
  const previewSourceText = finalText ?? ttsSupplement?.spokenText;
@@ -1,4 +1,4 @@
1
- import { u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-_zMU4M2x.js";
1
+ import { u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BzelVdsY.js";
2
2
  import { a as mergeAbortSignals } from "./timeouts-CEwuGaWT.js";
3
3
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { ComponentType, StickerFormatType } from "discord-api-types/v10";
@@ -1,6 +1,6 @@
1
- import { S as DiscordError, o as normalizeDiscordOutboundTarget, s as chunkDiscordTextWithMode, t as createDiscordSendReceipt } from "./send.receipt-nKLxvA1s.js";
1
+ import { S as DiscordError, o as normalizeDiscordOutboundTarget, s as chunkDiscordTextWithMode, t as createDiscordSendReceipt } from "./send.receipt-Dhym-qOF.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
- import { d as readDiscordComponentSpec } from "./components-KsP3ijoj.js";
3
+ import { d as readDiscordComponentSpec } from "./components-q41bHoCx.js";
4
4
  import { n as notifyDiscordInboundEventOutboundPayloadSuccess } from "./inbound-event-delivery-D8zHG9Lz.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { resolvePayloadMediaUrls, sendPayloadMediaSequenceOrFallback, sendTextMediaPayload } from "openclaw/plugin-sdk/reply-payload";
@@ -85,11 +85,11 @@ function normalizeDiscordApprovalPayload(payload) {
85
85
  let discordComponentSendPromise;
86
86
  let discordSharedInteractivePromise;
87
87
  async function sendDiscordComponentMessageLazy(...args) {
88
- discordComponentSendPromise ??= import("./send.components-BjAjvjmT.js").then((n) => n.i).then((module) => module.sendDiscordComponentMessage);
88
+ discordComponentSendPromise ??= import("./send.components-BuZBJysI.js").then((n) => n.i).then((module) => module.sendDiscordComponentMessage);
89
89
  return await (await discordComponentSendPromise)(...args);
90
90
  }
91
91
  function loadDiscordSharedInteractive() {
92
- discordSharedInteractivePromise ??= import("./components-KsP3ijoj.js").then((n) => n.a);
92
+ discordSharedInteractivePromise ??= import("./components-q41bHoCx.js").then((n) => n.a);
93
93
  return discordSharedInteractivePromise;
94
94
  }
95
95
  function addPayloadTextFallback(spec, payload) {
@@ -124,7 +124,7 @@ async function resolveDiscordComponentSpec(payload) {
124
124
  //#region extensions/discord/src/outbound-send-context.ts
125
125
  let discordSendRuntimePromise;
126
126
  async function loadDiscordSendRuntime() {
127
- discordSendRuntimePromise ??= import("./send-DuW4qqIK.js").then((n) => n.t);
127
+ discordSendRuntimePromise ??= import("./send-BsBy21Te.js").then((n) => n.t);
128
128
  return await discordSendRuntimePromise;
129
129
  }
130
130
  function resolveDiscordOutboundTarget(params) {
@@ -314,7 +314,7 @@ function stripDiscordInternalRuntimeScaffolding(text) {
314
314
  }
315
315
  let discordThreadBindingsPromise;
316
316
  function loadDiscordThreadBindings() {
317
- discordThreadBindingsPromise ??= import("./thread-bindings-CXZ2h9DB.js").then((n) => n.t);
317
+ discordThreadBindingsPromise ??= import("./thread-bindings-BcXgbZ3-.js").then((n) => n.t);
318
318
  return discordThreadBindingsPromise;
319
319
  }
320
320
  function resolveDiscordWebhookIdentity(params) {
@@ -371,7 +371,8 @@ const discordOutbound = {
371
371
  maxActions: 25,
372
372
  maxActionsPerRow: 5,
373
373
  maxRows: 5,
374
- maxLabelLength: 80
374
+ maxLabelLength: 80,
375
+ supportsDisabled: true
375
376
  },
376
377
  selects: {
377
378
  maxOptions: 25,
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-nKLxvA1s.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
2
  import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
3
3
  //#region extensions/discord/src/pluralkit.ts
4
4
  var pluralkit_exports = /* @__PURE__ */ __exportAll({ fetchPluralKitMessageInfo: () => fetchPluralKitMessageInfo });