@openclaw/discord 2026.6.5 → 2026.6.6-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 (66) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/api.js +13 -13
  3. package/dist/{approval-handler.runtime-DQiJ1Z0k.js → approval-handler.runtime-B3gyUd-L.js} +3 -3
  4. package/dist/{audit-eI8e8RpG.js → audit-BlfewK04.js} +3 -3
  5. package/dist/{channel-rVB2j2W5.js → channel-D1F1Rd9W.js} +15 -15
  6. package/dist/{channel-actions-BaPDAWN_.js → channel-actions-mj6l-3MR.js} +6 -3
  7. package/dist/{channel-actions.runtime-BEMDJjP1.js → channel-actions.runtime-VhdpzLxz.js} +5 -5
  8. package/dist/channel-plugin-api.js +1 -1
  9. package/dist/{channel.setup-BX7g7pL-.js → channel.setup-By5cfELZ.js} +2 -2
  10. package/dist/{components-CCbYVuVr.js → components-D-CYw0-b.js} +1 -1
  11. package/dist/contract-api.js +1 -7
  12. package/dist/{conversation-identity-CEP1KbK0.js → conversation-identity-CKzQAqFF.js} +2 -2
  13. package/dist/{directory-config-j1bfTue_.js → directory-config-Bu7FYOsl.js} +1 -1
  14. package/dist/directory-contract-api.js +1 -1
  15. package/dist/{directory-live-BjBs64RV.js → directory-live-LjENjK6L.js} +1 -1
  16. package/dist/{handle-action.guild-admin-CqUsOA2L.js → handle-action.guild-admin-CqDSVry3.js} +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/legacy-state-migrations-api.js +1 -1
  19. package/dist/{manager.runtime-DyYIi2by.js → manager.runtime-BGJHboPr.js} +3 -3
  20. package/dist/{message-handler-BVIAmV5J.js → message-handler-CSLoBcem.js} +7 -7
  21. package/dist/{message-handler.preflight-BwvDbPNH.js → message-handler.preflight-Bd7_OArA.js} +20 -11
  22. package/dist/{message-handler.process-fTJCmd5o.js → message-handler.process-VFjwLei2.js} +21 -27
  23. package/dist/{message-utils-ZTGvA2L8.js → message-utils-Bx993JLN.js} +2 -2
  24. package/dist/{outbound-adapter-Bt6-9M13.js → outbound-adapter-CmN7ao1t.js} +6 -6
  25. package/dist/{pluralkit-BEEldePl.js → pluralkit-SYmlmerw.js} +1 -1
  26. package/dist/{provider-BzydhoOf.js → provider-TciPJrrX.js} +19 -19
  27. package/dist/{provider-session.runtime-CXhifSRN.js → provider-session.runtime-BevqNU6t.js} +3 -3
  28. package/dist/provider.runtime-DEIIsrzu.js +2 -0
  29. package/dist/{resolve-channels-DLNfxFQP.js → resolve-channels-Rautpk8n.js} +1 -1
  30. package/dist/{resolve-users-QTyD8qgI.js → resolve-users-Bw7vvtsi.js} +1 -1
  31. package/dist/{runtime-Dds0Ww1n.js → runtime-CTEQkMzj.js} +7 -7
  32. package/dist/runtime-api.actions.js +2 -2
  33. package/dist/runtime-api.js +22 -22
  34. package/dist/runtime-api.lookup.js +4 -4
  35. package/dist/runtime-api.monitor-XwB3ioXs.js +6 -0
  36. package/dist/runtime-api.monitor.js +6 -6
  37. package/dist/runtime-api.send.js +5 -5
  38. package/dist/runtime-api.threads.js +5 -5
  39. package/dist/{send-CyyRF1yd.js → send-zGsXF-up.js} +3 -3
  40. package/dist/{send.components-a9JQeeH5.js → send.components-ktzrUTkt.js} +4 -4
  41. package/dist/{send.outbound-DhMLobqR.js → send.outbound-C8oC51um.js} +3 -3
  42. package/dist/{send.receipt-Z8V6yMOY.js → send.receipt-DsQWEQ2O.js} +65 -6
  43. package/dist/{send.shared-B3QxPnR3.js → send.shared-Dvo2ZCVG.js} +2 -2
  44. package/dist/session-binding-contract-api.js +2 -0
  45. package/dist/setup-plugin-api.js +1 -1
  46. package/dist/subagent-hooks-api.js +1 -1
  47. package/dist/{subagent-hooks-nBcp0iGm.js → subagent-hooks-kjrWDeDg.js} +2 -2
  48. package/dist/{system-events-NnSID6Q5.js → system-events-CvU3Aduf.js} +1 -1
  49. package/dist/{target-resolver-BKGK0ftO.js → target-resolver-DMPTzuo7.js} +2 -2
  50. package/dist/targets-CKaNidbk.js +3 -0
  51. package/dist/{thread-bindings-Tfr_vFxk.js → thread-bindings-DO32M2kW.js} +6 -6
  52. package/dist/{thread-bindings.discord-api-CfDs1lWu.js → thread-bindings.discord-api-304M1PMr.js} +5 -5
  53. package/dist/{thread-bindings.manager-CRc4hYr1.js → thread-bindings.manager-C9YT7wF2.js} +4 -4
  54. package/dist/{thread-bindings.session-updates-DeMxmcXB.js → thread-bindings.session-updates-Chs3HgGa.js} +1 -1
  55. package/dist/{thread-bindings.state-CVLF7gJH.js → thread-bindings.state-iSWjCYjB.js} +9 -8
  56. package/dist/timeouts-C5TBc_9x.js +106 -0
  57. package/dist/timeouts.js +1 -1
  58. package/dist/{transcripts-source-Cegx0wdw.js → transcripts-source-Chy2OrO_.js} +1 -1
  59. package/dist/transcripts-source-api.js +1 -1
  60. package/dist/{typing-C7RXECnL.js → typing-BaivbXIG.js} +2 -2
  61. package/npm-shrinkwrap.json +3 -3
  62. package/package.json +4 -4
  63. package/dist/provider.runtime-_cUqt2ma.js +0 -2
  64. package/dist/runtime-api.monitor-DuIuN9Ro.js +0 -6
  65. package/dist/targets-Cv797U29.js +0 -3
  66. package/dist/timeouts-CEJ3--Uw.js +0 -55
@@ -1,2 +1,2 @@
1
- import { t as handleDiscordAction } from "./runtime-Dds0Ww1n.js";
1
+ import { t as handleDiscordAction } from "./runtime-CTEQkMzj.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-Z8V6yMOY.js";
1
+ import { Ht as parseDiscordTarget, Ut as resolveDiscordChannelId, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId, o as normalizeDiscordOutboundTarget } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DDZtT5C8.js";
3
3
  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-P19jm1lf.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-CCbYVuVr.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-D-CYw0-b.js";
5
5
  import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-BmXlcjYW.js";
6
- import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-BKGK0ftO.js";
7
- import "./targets-Cv797U29.js";
8
- import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-CEP1KbK0.js";
9
- import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-rVB2j2W5.js";
6
+ import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-DMPTzuo7.js";
7
+ import "./targets-CKaNidbk.js";
8
+ import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-CKzQAqFF.js";
9
+ import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-D1F1Rd9W.js";
10
10
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
11
- import { t as discordSetupPlugin } from "./channel.setup-BX7g7pL-.js";
12
- import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-nBcp0iGm.js";
13
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CqUsOA2L.js";
14
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-j1bfTue_.js";
15
- import { t as fetchPluralKitMessageInfo } from "./pluralkit-BEEldePl.js";
11
+ import { t as discordSetupPlugin } from "./channel.setup-By5cfELZ.js";
12
+ import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-kjrWDeDg.js";
13
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CqDSVry3.js";
14
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-Bu7FYOsl.js";
15
+ import { t as fetchPluralKitMessageInfo } from "./pluralkit-SYmlmerw.js";
16
16
  import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-2MdGjUAf.js";
17
17
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Bh_65L5C.js";
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-CEJ3--Uw.js";
18
+ import { i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, o as mergeAbortSignals, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-C5TBc_9x.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-BEMDJjP1.js")).handleDiscordMessageAction(...args);
21
+ const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-VhdpzLxz.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, R as Button, Wt as __exportAll, X as TextDisplay, ft as editChannelMessage, j as serializePayload, nt as createUserDmChannel, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-Z8V6yMOY.js";
1
+ import { B as Container, J as Separator, K as Row, R as Button, Wt as __exportAll, X as TextDisplay, ft as editChannelMessage, j as serializePayload, nt as createUserDmChannel, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DDZtT5C8.js";
3
- import { F as createDiscordClient, b as stripUndefinedFields } from "./send.shared-B3QxPnR3.js";
4
- import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-CEP1KbK0.js";
3
+ import { F as createDiscordClient, b as stripUndefinedFields } from "./send.shared-Dvo2ZCVG.js";
4
+ import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-CKzQAqFF.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-Z8V6yMOY.js";
1
+ import { Wt as __exportAll } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DDZtT5C8.js";
3
- import { O as fetchChannelPermissionsDiscord } from "./send.shared-B3QxPnR3.js";
4
- import "./send-CyyRF1yd.js";
3
+ import { O as fetchChannelPermissionsDiscord } from "./send.shared-Dvo2ZCVG.js";
4
+ import "./send-zGsXF-up.js";
5
5
  import { n as collectDiscordAuditChannelIdsForAccount, t as auditDiscordChannelPermissionsWithFetcher } from "./audit-core-xwjIczO0.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-Z8V6yMOY.js";
1
+ import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-P19jm1lf.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-CAJ0wMoV.js";
4
- import { x as resolveDiscordOutboundSessionRoute } from "./components-CCbYVuVr.js";
4
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-D-CYw0-b.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.js";
6
- import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-CEP1KbK0.js";
6
+ import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-CKzQAqFF.js";
7
7
  import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-xwjIczO0.js";
8
- import { t as discordMessageActions$1 } from "./channel-actions-BaPDAWN_.js";
9
- import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-DeMxmcXB.js";
10
- import { n as discordOutbound } from "./outbound-adapter-Bt6-9M13.js";
8
+ import { t as discordMessageActions$1 } from "./channel-actions-mj6l-3MR.js";
9
+ import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-Chs3HgGa.js";
10
+ import { n as discordOutbound } from "./outbound-adapter-CmN7ao1t.js";
11
11
  import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-D11J9bXI.js";
12
12
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
13
13
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -125,13 +125,13 @@ let discordProbeRuntimePromise;
125
125
  let discordAuditModulePromise;
126
126
  let discordSendModulePromise;
127
127
  let discordDirectoryLiveModulePromise;
128
- const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-j1bfTue_.js").then((n) => n.t));
129
- const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-DLNfxFQP.js").then((n) => n.n));
130
- const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-QTyD8qgI.js").then((n) => n.n));
131
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-CRc4hYr1.js").then((n) => n.a));
132
- const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-BKGK0ftO.js").then((n) => n.r));
128
+ const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-Bu7FYOsl.js").then((n) => n.t));
129
+ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-Rautpk8n.js").then((n) => n.n));
130
+ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-Bw7vvtsi.js").then((n) => n.n));
131
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-C9YT7wF2.js").then((n) => n.a));
132
+ const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-DMPTzuo7.js").then((n) => n.r));
133
133
  async function loadDiscordProviderRuntime() {
134
- discordProviderRuntimePromise ??= import("./provider.runtime-_cUqt2ma.js");
134
+ discordProviderRuntimePromise ??= import("./provider.runtime-DEIIsrzu.js");
135
135
  return await discordProviderRuntimePromise;
136
136
  }
137
137
  async function loadDiscordProbeRuntime() {
@@ -139,15 +139,15 @@ async function loadDiscordProbeRuntime() {
139
139
  return await discordProbeRuntimePromise;
140
140
  }
141
141
  async function loadDiscordAuditModule() {
142
- discordAuditModulePromise ??= import("./audit-eI8e8RpG.js").then((n) => n.n);
142
+ discordAuditModulePromise ??= import("./audit-BlfewK04.js").then((n) => n.n);
143
143
  return await discordAuditModulePromise;
144
144
  }
145
145
  async function loadDiscordSendModule() {
146
- discordSendModulePromise ??= import("./send-CyyRF1yd.js").then((n) => n.t);
146
+ discordSendModulePromise ??= import("./send-zGsXF-up.js").then((n) => n.t);
147
147
  return await discordSendModulePromise;
148
148
  }
149
149
  async function loadDiscordDirectoryLiveModule() {
150
- discordDirectoryLiveModulePromise ??= import("./directory-live-BjBs64RV.js").then((n) => n.t);
150
+ discordDirectoryLiveModulePromise ??= import("./directory-live-LjENjK6L.js").then((n) => n.t);
151
151
  return await discordDirectoryLiveModulePromise;
152
152
  }
153
153
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { t as inspectDiscordAccount } from "./account-inspect-DDZtT5C8.js";
2
2
  import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-P19jm1lf.js";
3
- import { d as readDiscordComponentSpec } from "./components-CCbYVuVr.js";
3
+ import { d as readDiscordComponentSpec } from "./components-D-CYw0-b.js";
4
4
  import { i as withDiscordInboundEventDeliveryMetadata } from "./inbound-event-delivery-CEPlt2uz.js";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
@@ -18,7 +18,10 @@ const trustedRequesterGuildAdminActions = new Set([
18
18
  "category-create",
19
19
  "category-edit",
20
20
  "category-delete",
21
- "event-create"
21
+ "event-create",
22
+ "timeout",
23
+ "kick",
24
+ "ban"
22
25
  ]);
23
26
  const localExecutionActions = new Set([
24
27
  "send",
@@ -34,7 +37,7 @@ function resolveDiscordActionExecutionMode({ action }) {
34
37
  }
35
38
  let discordChannelActionsRuntimePromise;
36
39
  async function loadDiscordChannelActionsRuntime() {
37
- discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-BEMDJjP1.js");
40
+ discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-VhdpzLxz.js");
38
41
  return await discordChannelActionsRuntimePromise;
39
42
  }
40
43
  function listDiscoverableDiscordAccounts(cfg) {
@@ -1,10 +1,10 @@
1
- import { Ut as resolveDiscordChannelId } from "./send.receipt-Z8V6yMOY.js";
2
- import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-CCbYVuVr.js";
3
- import { t as handleDiscordAction } from "./runtime-Dds0Ww1n.js";
4
- import "./targets-Cv797U29.js";
1
+ import { Ut as resolveDiscordChannelId } from "./send.receipt-DsQWEQ2O.js";
2
+ import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-D-CYw0-b.js";
3
+ import { t as handleDiscordAction } from "./runtime-CTEQkMzj.js";
4
+ import "./targets-CKaNidbk.js";
5
5
  import "./action-runtime-api.js";
6
6
  import { r as notifyDiscordInboundEventOutboundSuccess } from "./inbound-event-delivery-CEPlt2uz.js";
7
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CqUsOA2L.js";
7
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-CqDSVry3.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-rVB2j2W5.js";
1
+ import { t as discordPlugin } from "./channel-D1F1Rd9W.js";
2
2
  export { discordPlugin };
@@ -1,8 +1,8 @@
1
1
  import { n as inspectDiscordConfiguredToken } from "./account-inspect-DDZtT5C8.js";
2
2
  import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, m as resolveDiscordToken, o as resolveDefaultDiscordAccountId } from "./accounts-P19jm1lf.js";
3
3
  import { i as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-D11J9bXI.js";
4
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-DLNfxFQP.js";
5
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-QTyD8qgI.js";
4
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-Rautpk8n.js";
5
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Bw7vvtsi.js";
6
6
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { createAccountScopedAllowFromSection, createAccountScopedGroupAccessSection, createLegacyCompatChannelDmPolicy, createSetupTranslator, createStandardChannelSetupStatus, parseMentionOrPrefixedId, patchChannelConfigForAccount, promptLegacyChannelAllowFromForAccount, resolveEntriesWithOptionalToken, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup-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-Z8V6yMOY.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-DsQWEQ2O.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";
@@ -1,8 +1,2 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-CU7lnZTF.js";
2
- import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-BjM-1hr9.js";
3
- import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-DSHk7I2w.js";
4
1
  import { t as deriveLegacySessionChatType } from "./session-contract-BO5tlIdl.js";
5
- import { i as testing, n as createThreadBindingManager } from "./thread-bindings.manager-CRc4hYr1.js";
6
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-j1bfTue_.js";
7
- import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Bh_65L5C.js";
8
- export { collectDiscordSecurityAuditFindings, collectRuntimeConfigAssignments, collectUnsupportedSecretRefConfigCandidates, createThreadBindingManager, deriveLegacySessionChatType, testing as discordThreadBindingTesting, legacyConfigRules, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries, unsupportedSecretRefSurfacePatterns };
2
+ export { deriveLegacySessionChatType };
@@ -1,4 +1,4 @@
1
- import { Ht as parseDiscordTarget } from "./send.receipt-Z8V6yMOY.js";
1
+ import { Ht as parseDiscordTarget } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-P19jm1lf.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";
@@ -231,7 +231,7 @@ function createDiscordApprovalCapability(configOverride) {
231
231
  request,
232
232
  configOverride
233
233
  }),
234
- load: async () => (await import("./approval-handler.runtime-DQiJ1Z0k.js").then((n) => n.t)).discordApprovalNativeRuntime
234
+ load: async () => (await import("./approval-handler.runtime-B3gyUd-L.js").then((n) => n.t)).discordApprovalNativeRuntime
235
235
  })
236
236
  });
237
237
  }
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-Z8V6yMOY.js";
1
+ import { Wt as __exportAll } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-P19jm1lf.js";
3
3
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
@@ -1,4 +1,4 @@
1
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-j1bfTue_.js";
1
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-Bu7FYOsl.js";
2
2
  //#region extensions/discord/directory-contract-api.ts
3
3
  const discordDirectoryContractPlugin = {
4
4
  id: "discord",
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-Z8V6yMOY.js";
1
+ import { Wt as __exportAll } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
3
  import { n as fetchDiscord } from "./api-BmXlcjYW.js";
4
4
  import { a as normalizeDiscordSlug } from "./allow-list-C-MqM-B_.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-Dds0Ww1n.js";
1
+ import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-CTEQkMzj.js";
2
2
  import "./action-runtime-api.js";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { registerDiscordSubagentHooks } from "./subagent-hooks-api.js";
2
- import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-Cegx0wdw.js";
2
+ import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-Chy2OrO_.js";
3
3
  import "./transcripts-source-api.js";
4
4
  import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
5
5
  //#region extensions/discord/index.ts
@@ -1,4 +1,4 @@
1
- import { a as THREAD_BINDINGS_MAX_ENTRIES, f as normalizePersistedBinding, j as toBindingRecordKey, o as THREAD_BINDINGS_NAMESPACE } from "./thread-bindings.state-CVLF7gJH.js";
1
+ import { a as THREAD_BINDINGS_MAX_ENTRIES, f as normalizePersistedBinding, j as toBindingRecordKey, o as THREAD_BINDINGS_NAMESPACE } from "./thread-bindings.state-iSWjCYjB.js";
2
2
  import { MAX_DATE_TIMESTAMP_MS, timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
3
3
  import { createHash } from "node:crypto";
4
4
  import path from "node:path";
@@ -1,9 +1,9 @@
1
- import { Ht as parseDiscordTarget, _ as VoiceStateUpdateListener, c as discord_exports, h as ResumedListener, jt as getGuildVoiceState, m as ReadyListener } from "./send.receipt-Z8V6yMOY.js";
1
+ import { Ht as parseDiscordTarget, _ as VoiceStateUpdateListener, c as discord_exports, h as ResumedListener, jt as getGuildVoiceState, m as ReadyListener } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { c as resolveDiscordAccountAllowFrom } from "./accounts-P19jm1lf.js";
3
3
  import { a as normalizeDiscordSlug, b as formatDiscordUserTag, m as resolveDiscordOwnerAccess } from "./allow-list-C-MqM-B_.js";
4
- import { o as formatMention } from "./send.outbound-DhMLobqR.js";
4
+ import { o as formatMention } from "./send.outbound-C8oC51um.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.js";
6
- import { d as resolveDiscordVoiceEnabled, p as buildDiscordGroupSystemPrompt, s as authorizeDiscordVoiceIngress } from "./provider-BzydhoOf.js";
6
+ import { d as resolveDiscordVoiceEnabled, p as buildDiscordGroupSystemPrompt, s as authorizeDiscordVoiceIngress } from "./provider-TciPJrrX.js";
7
7
  import { createRequire } from "node:module";
8
8
  import { asBoolean, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
@@ -1,8 +1,8 @@
1
- import { I as createDiscordRestClient } from "./send.shared-B3QxPnR3.js";
2
- import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-CfDs1lWu.js";
3
- import { a as mergeAbortSignals } from "./timeouts-CEJ3--Uw.js";
4
- import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-ZTGvA2L8.js";
5
- import { t as sendTyping } from "./typing-C7RXECnL.js";
1
+ import { I as createDiscordRestClient } from "./send.shared-Dvo2ZCVG.js";
2
+ import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-304M1PMr.js";
3
+ import { o as mergeAbortSignals } from "./timeouts-C5TBc_9x.js";
4
+ import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-Bx993JLN.js";
5
+ import { t as sendTyping } from "./typing-BaivbXIG.js";
6
6
  import { danger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
7
7
  import { createChannelRunQueue, createTypingCallbacks, resolveChannelMessageSourceReplyDeliveryMode } from "openclaw/plugin-sdk/channel-outbound";
8
8
  import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
@@ -178,7 +178,7 @@ function resolveDiscordAcceptedTypingPrestart(ctx) {
178
178
  //#region extensions/discord/src/monitor/message-run-queue.ts
179
179
  let messageProcessRuntimePromise;
180
180
  async function loadMessageProcessRuntime() {
181
- messageProcessRuntimePromise ??= import("./message-handler.process-fTJCmd5o.js");
181
+ messageProcessRuntimePromise ??= import("./message-handler.process-VFjwLei2.js");
182
182
  return await messageProcessRuntimePromise;
183
183
  }
184
184
  async function processDiscordQueuedMessage(params) {
@@ -307,7 +307,7 @@ function createDiscordReplyTypingFeedback(params) {
307
307
  //#region extensions/discord/src/monitor/message-handler.ts
308
308
  let messagePreflightRuntimePromise;
309
309
  async function loadMessagePreflightRuntime() {
310
- messagePreflightRuntimePromise ??= import("./message-handler.preflight-BwvDbPNH.js");
310
+ messagePreflightRuntimePromise ??= import("./message-handler.preflight-Bd7_OArA.js");
311
311
  return await messagePreflightRuntimePromise;
312
312
  }
313
313
  function isNonEmptyString(value) {
@@ -1,14 +1,15 @@
1
- import { c as discord_exports, k as Message, mt as getChannelMessage } from "./send.receipt-Z8V6yMOY.js";
1
+ import { c as discord_exports, k as Message, mt as getChannelMessage } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { o as resolveDefaultDiscordAccountId } from "./accounts-P19jm1lf.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-C-MqM-B_.js";
4
- import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CEP1KbK0.js";
5
- import { d as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-CVLF7gJH.js";
6
- import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-CfDs1lWu.js";
7
- import "./thread-bindings-Tfr_vFxk.js";
8
- import { D as resolveDiscordDmCommandAccess, O as resolveDiscordTextCommandAccess, _ as resolveDiscordConversationRoute, b as handleDiscordDmCommandDecision, g as buildDiscordRoutePeer, v as resolveDiscordEffectiveRoute, y as shouldIgnoreStaleDiscordRouteBinding } from "./provider-BzydhoOf.js";
9
- import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-ZTGvA2L8.js";
4
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CKzQAqFF.js";
5
+ import { d as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-iSWjCYjB.js";
6
+ import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-304M1PMr.js";
7
+ import "./thread-bindings-DO32M2kW.js";
8
+ import { D as resolveDiscordDmCommandAccess, O as resolveDiscordTextCommandAccess, _ as resolveDiscordConversationRoute, b as handleDiscordDmCommandDecision, g as buildDiscordRoutePeer, v as resolveDiscordEffectiveRoute, y as shouldIgnoreStaleDiscordRouteBinding } from "./provider-TciPJrrX.js";
9
+ import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-Bx993JLN.js";
10
10
  import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-CEsfDF0L.js";
11
11
  import { normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
12
+ import { MessageReferenceType, MessageType } from "discord-api-types/v10";
12
13
  import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
13
14
  import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
14
15
  import { formatAllowlistMatchMeta } from "openclaw/plugin-sdk/allow-from";
@@ -28,7 +29,7 @@ async function loadConversationRuntime$1() {
28
29
  return await conversationRuntimePromise$1;
29
30
  }
30
31
  async function loadDiscordSendRuntime() {
31
- discordSendRuntimePromise ??= import("./send-CyyRF1yd.js").then((n) => n.t);
32
+ discordSendRuntimePromise ??= import("./send-zGsXF-up.js").then((n) => n.t);
32
33
  return await discordSendRuntimePromise;
33
34
  }
34
35
  function resolveDiscordDmPairingSenderId(sender) {
@@ -189,6 +190,7 @@ function copyRuntimeMessageFields(source, target) {
189
190
  if (channelDescriptor) Object.defineProperty(target, "channel", channelDescriptor);
190
191
  }
191
192
  function shouldHydrateDiscordMessage(params) {
193
+ if (hasMissingReferencedMessagePayload(params.message)) return true;
192
194
  let currentText;
193
195
  try {
194
196
  currentText = resolveDiscordMessageText(params.message, { includeForwarded: true });
@@ -199,6 +201,13 @@ function shouldHydrateDiscordMessage(params) {
199
201
  if ((params.message.mentionedUsers?.length ?? 0) > 0 || (params.message.mentionedRoles?.length ?? 0) > 0 || params.message.mentionedEveryone) return false;
200
202
  return /<@!?\d+>|<@&\d+>|@everyone|@here/u.test(currentText);
201
203
  }
204
+ function hasMissingReferencedMessagePayload(message) {
205
+ const reference = message.messageReference;
206
+ if (!reference?.message_id) return false;
207
+ if (reference.type != null && reference.type !== MessageReferenceType.Default) return false;
208
+ if (message.type != null && message.type !== MessageType.Reply) return false;
209
+ return !Object.hasOwn(readMessageRawData(message), "referenced_message");
210
+ }
202
211
  async function hydrateDiscordMessageIfNeeded(params) {
203
212
  params.channelInfo;
204
213
  if (!shouldHydrateDiscordMessage({ message: params.message })) return params.message;
@@ -426,7 +435,7 @@ let preflightAudioRuntimePromise;
426
435
  let systemEventsRuntimePromise;
427
436
  let discordThreadingRuntimePromise;
428
437
  async function loadPluralKitRuntime() {
429
- pluralkitRuntimePromise ??= import("./pluralkit-BEEldePl.js").then((n) => n.n);
438
+ pluralkitRuntimePromise ??= import("./pluralkit-SYmlmerw.js").then((n) => n.n);
430
439
  return await pluralkitRuntimePromise;
431
440
  }
432
441
  async function loadPreflightAudioRuntime() {
@@ -434,11 +443,11 @@ async function loadPreflightAudioRuntime() {
434
443
  return await preflightAudioRuntimePromise;
435
444
  }
436
445
  async function loadSystemEventsRuntime() {
437
- systemEventsRuntimePromise ??= import("./system-events-NnSID6Q5.js");
446
+ systemEventsRuntimePromise ??= import("./system-events-CvU3Aduf.js");
438
447
  return await systemEventsRuntimePromise;
439
448
  }
440
449
  async function loadDiscordThreadingRuntime() {
441
- discordThreadingRuntimePromise ??= import("./provider-BzydhoOf.js").then((n) => n.S);
450
+ discordThreadingRuntimePromise ??= import("./provider-TciPJrrX.js").then((n) => n.S);
442
451
  return await discordThreadingRuntimePromise;
443
452
  }
444
453
  function isPreflightAborted(abortSignal) {
@@ -1,30 +1,30 @@
1
- import { Ut as resolveDiscordChannelId, c as discord_exports, ft as editChannelMessage, s as chunkDiscordTextWithMode, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-Z8V6yMOY.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-DsQWEQ2O.js";
2
2
  import { f as resolveDiscordMaxLinesPerMessage, s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { I as createDiscordRestClient, L as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-B3QxPnR3.js";
3
+ import { I as createDiscordRestClient, L as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-Dvo2ZCVG.js";
4
4
  import { S as resolveTimestampMs, a as normalizeDiscordSlug, r as normalizeDiscordAllowList } from "./allow-list-C-MqM-B_.js";
5
- import { a as removeReactionDiscord, f as editMessageDiscord, r as reactMessageDiscord } from "./send-CyyRF1yd.js";
6
- import { a as discordTextHasTargetedMention, i as discordTextHasBroadcastMention, s as rewriteDiscordKnownMentions } from "./send.outbound-DhMLobqR.js";
7
- import "./targets-Cv797U29.js";
8
- import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CEP1KbK0.js";
5
+ import { a as removeReactionDiscord, f as editMessageDiscord, r as reactMessageDiscord } from "./send-zGsXF-up.js";
6
+ import { a as discordTextHasTargetedMention, i as discordTextHasBroadcastMention, s as rewriteDiscordKnownMentions } from "./send.outbound-C8oC51um.js";
7
+ import "./targets-CKaNidbk.js";
8
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CKzQAqFF.js";
9
9
  import { t as beginDiscordInboundEventDeliveryCorrelation } from "./inbound-event-delivery-CEPlt2uz.js";
10
- import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-Bt6-9M13.js";
10
+ import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-CmN7ao1t.js";
11
11
  import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-DXT8oJdo.js";
12
- import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-CEJ3--Uw.js";
13
- import { C as resolveDiscordAutoThreadReplyPlan, T as resolveDiscordThreadStarter, a as buildGuildLabel, h as createDiscordSupplementalContextAccessChecker, i as buildDirectLabel, m as buildDiscordInboundAccessContext, n as deliverDiscordReply, o as resolveReplyContext, r as sanitizeDiscordFrontChannelReplyPayloads } from "./provider-BzydhoOf.js";
14
- import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-ZTGvA2L8.js";
15
- import { n as createDiscordReplyTypingFeedback } from "./message-handler-BVIAmV5J.js";
16
- import { buildAgentSessionKey, normalizeAccountId, resolveAccountEntry, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
12
+ import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-C5TBc_9x.js";
13
+ import { C as resolveDiscordAutoThreadReplyPlan, T as resolveDiscordThreadStarter, a as buildGuildLabel, h as createDiscordSupplementalContextAccessChecker, i as buildDirectLabel, m as buildDiscordInboundAccessContext, n as deliverDiscordReply, o as resolveReplyContext, r as sanitizeDiscordFrontChannelReplyPayloads } from "./provider-TciPJrrX.js";
14
+ import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-Bx993JLN.js";
15
+ import { n as createDiscordReplyTypingFeedback } from "./message-handler-CSLoBcem.js";
16
+ import { buildAgentSessionKey, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
17
17
  import { MessageFlags } from "discord-api-types/v10";
18
18
  import path from "node:path";
19
19
  import { evaluateSupplementalContextVisibility } from "openclaw/plugin-sdk/security-runtime";
20
20
  import { getAgentScopedMediaLocalRoots } from "openclaw/plugin-sdk/media-runtime";
21
21
  import { buildTtsSupplementMediaPayload, getReplyPayloadTtsSupplement, isReplyPayloadNonTerminalToolErrorWarning, resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload";
22
- import { resolveChunkMode, resolveTextChunkLimit } from "openclaw/plugin-sdk/reply-chunking";
22
+ import { resolveChunkMode } from "openclaw/plugin-sdk/reply-chunking";
23
23
  import { danger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
24
24
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
25
25
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
26
26
  import { convertMarkdownTables, stripInlineDirectiveTagsForDelivery, stripReasoningTagsFromText } from "openclaw/plugin-sdk/text-chunking";
27
- import { buildChannelProgressDraftLine, buildChannelProgressDraftLineForEntry, createChannelMessageReplyPipeline, createChannelProgressDraftCompositor, createFinalizableDraftLifecycle, defineFinalizableLivePreviewAdapter, deliverWithFinalizableLivePreviewAdapter, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewChunk, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages, resolveTranscriptBackedChannelFinalText } from "openclaw/plugin-sdk/channel-outbound";
27
+ import { buildChannelProgressDraftLine, buildChannelProgressDraftLineForEntry, createChannelMessageReplyPipeline, createChannelProgressDraftCompositor, createFinalizableDraftLifecycle, defineFinalizableLivePreviewAdapter, deliverWithFinalizableLivePreviewAdapter, resolveChannelDraftStreamingChunking, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages, resolveTranscriptBackedChannelFinalText } from "openclaw/plugin-sdk/channel-outbound";
28
28
  import { recordInboundSession, resolvePinnedMainDmOwnerFromAllowlist } from "openclaw/plugin-sdk/conversation-runtime";
29
29
  import { EmbeddedBlockChunker, resolveAckReaction, resolveHumanDelayConfig } from "openclaw/plugin-sdk/agent-runtime";
30
30
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
@@ -409,20 +409,8 @@ async function buildDiscordMessageProcessContext(params) {
409
409
  }
410
410
  //#endregion
411
411
  //#region extensions/discord/src/draft-chunking.ts
412
- const DEFAULT_DISCORD_DRAFT_STREAM_MIN = 200;
413
- const DEFAULT_DISCORD_DRAFT_STREAM_MAX = 800;
414
412
  function resolveDiscordDraftStreamingChunking(cfg, accountId) {
415
- const textLimit = resolveTextChunkLimit(cfg, "discord", accountId, { fallbackLimit: DISCORD_TEXT_CHUNK_LIMIT });
416
- const normalizedAccountId = normalizeAccountId(accountId);
417
- const draftCfg = resolveChannelStreamingPreviewChunk(resolveAccountEntry(cfg?.channels?.discord?.accounts, normalizedAccountId)) ?? resolveChannelStreamingPreviewChunk(cfg?.channels?.discord);
418
- const maxRequested = Math.max(1, Math.floor(draftCfg?.maxChars ?? DEFAULT_DISCORD_DRAFT_STREAM_MAX));
419
- const maxChars = Math.max(1, Math.min(maxRequested, textLimit));
420
- const minRequested = Math.max(1, Math.floor(draftCfg?.minChars ?? DEFAULT_DISCORD_DRAFT_STREAM_MIN));
421
- return {
422
- minChars: Math.min(minRequested, maxChars),
423
- maxChars,
424
- breakPreference: draftCfg?.breakPreference === "newline" || draftCfg?.breakPreference === "sentence" ? draftCfg.breakPreference : "paragraph"
425
- };
413
+ return resolveChannelDraftStreamingChunking(cfg, "discord", accountId, { fallbackLimit: DISCORD_TEXT_CHUNK_LIMIT });
426
414
  }
427
415
  //#endregion
428
416
  //#region extensions/discord/src/draft-stream.ts
@@ -1037,6 +1025,7 @@ async function processDiscordMessageInner(ctx, observer) {
1037
1025
  chunkMode,
1038
1026
  log: logVerbose
1039
1027
  });
1028
+ let verboseProgressActive = () => false;
1040
1029
  const finalPreviewFlags = discordConfig?.suppressEmbeds ?? true ? MessageFlags.SuppressEmbeds : void 0;
1041
1030
  let finalReplyStartNotified = false;
1042
1031
  const notifyFinalReplyStart = () => {
@@ -1350,6 +1339,10 @@ async function processDiscordMessageInner(ctx, observer) {
1350
1339
  onReasoningEnd: draftPreview.draftStream ? () => draftPreview.handleAssistantMessageBoundary() : void 0,
1351
1340
  onModelSelected,
1352
1341
  suppressDefaultToolProgressMessages: draftPreview.suppressDefaultToolProgressMessages ? true : void 0,
1342
+ commentaryProgressEnabled: draftPreview.isProgressMode ? draftPreview.commentaryProgressEnabled : void 0,
1343
+ onVerboseProgressVisibility: (isActive) => {
1344
+ verboseProgressActive = isActive;
1345
+ },
1353
1346
  onReasoningStream: async (payload) => {
1354
1347
  await statusReactions.setThinking();
1355
1348
  await draftPreview.pushReasoningProgress(payload?.text, { snapshot: payload?.isReasoningSnapshot === true });
@@ -1367,6 +1360,7 @@ async function processDiscordMessageInner(ctx, observer) {
1367
1360
  },
1368
1361
  onItemEvent: async (payload) => {
1369
1362
  if (payload.kind === "preamble") {
1363
+ if (verboseProgressActive()) return;
1370
1364
  if (draftPreview.commentaryProgressEnabled && payload.progressText) await draftPreview.pushCommentaryProgress(payload.progressText, { itemId: payload.itemId });
1371
1365
  return;
1372
1366
  }
@@ -1,5 +1,5 @@
1
- import { u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-CfDs1lWu.js";
2
- import { a as mergeAbortSignals } from "./timeouts-CEJ3--Uw.js";
1
+ import { u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-304M1PMr.js";
2
+ import { o as mergeAbortSignals } from "./timeouts-C5TBc_9x.js";
3
3
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { ComponentType, StickerFormatType } from "discord-api-types/v10";
5
5
  import { asDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
@@ -1,6 +1,6 @@
1
- import { o as normalizeDiscordOutboundTarget, s as chunkDiscordTextWithMode, t as createDiscordSendReceipt, x as DiscordError } from "./send.receipt-Z8V6yMOY.js";
1
+ import { o as normalizeDiscordOutboundTarget, s as chunkDiscordTextWithMode, t as createDiscordSendReceipt, x as DiscordError } from "./send.receipt-DsQWEQ2O.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { d as readDiscordComponentSpec } from "./components-CCbYVuVr.js";
3
+ import { d as readDiscordComponentSpec } from "./components-D-CYw0-b.js";
4
4
  import { t as parseDiscordRetryAfterBodySeconds } from "./retry-after-D5_VmM-_.js";
5
5
  import { n as notifyDiscordInboundEventOutboundPayloadSuccess } from "./inbound-event-delivery-CEPlt2uz.js";
6
6
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -86,11 +86,11 @@ function normalizeDiscordApprovalPayload(payload) {
86
86
  let discordComponentSendPromise;
87
87
  let discordSharedInteractivePromise;
88
88
  async function sendDiscordComponentMessageLazy(...args) {
89
- discordComponentSendPromise ??= import("./send.components-a9JQeeH5.js").then((n) => n.i).then((module) => module.sendDiscordComponentMessage);
89
+ discordComponentSendPromise ??= import("./send.components-ktzrUTkt.js").then((n) => n.i).then((module) => module.sendDiscordComponentMessage);
90
90
  return await (await discordComponentSendPromise)(...args);
91
91
  }
92
92
  function loadDiscordSharedInteractive() {
93
- discordSharedInteractivePromise ??= import("./components-CCbYVuVr.js").then((n) => n.a);
93
+ discordSharedInteractivePromise ??= import("./components-D-CYw0-b.js").then((n) => n.a);
94
94
  return discordSharedInteractivePromise;
95
95
  }
96
96
  function addPayloadTextFallback(spec, payload) {
@@ -125,7 +125,7 @@ async function resolveDiscordComponentSpec(payload) {
125
125
  //#region extensions/discord/src/outbound-send-context.ts
126
126
  let discordSendRuntimePromise;
127
127
  async function loadDiscordSendRuntime() {
128
- discordSendRuntimePromise ??= import("./send-CyyRF1yd.js").then((n) => n.t);
128
+ discordSendRuntimePromise ??= import("./send-zGsXF-up.js").then((n) => n.t);
129
129
  return await discordSendRuntimePromise;
130
130
  }
131
131
  function resolveDiscordOutboundTarget(params) {
@@ -280,7 +280,7 @@ function stripDiscordInternalRuntimeScaffolding(text) {
280
280
  }
281
281
  let discordThreadBindingsPromise;
282
282
  function loadDiscordThreadBindings() {
283
- discordThreadBindingsPromise ??= import("./thread-bindings-Tfr_vFxk.js").then((n) => n.t);
283
+ discordThreadBindingsPromise ??= import("./thread-bindings-DO32M2kW.js").then((n) => n.t);
284
284
  return discordThreadBindingsPromise;
285
285
  }
286
286
  function resolveDiscordWebhookIdentity(params) {
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-Z8V6yMOY.js";
1
+ import { Wt as __exportAll } from "./send.receipt-DsQWEQ2O.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 });