@openclaw/discord 2026.6.11-beta.2 → 2026.7.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/{api-4GFMoWu0.js → api-CJvEMuA6.js} +9 -2
  3. package/dist/api.js +14 -14
  4. package/dist/{approval-handler.runtime-SsFtZQA6.js → approval-handler.runtime-DzoY4ufU.js} +3 -3
  5. package/dist/{audit-CAnmyf2A.js → audit-BXGKCgbA.js} +3 -3
  6. package/dist/{channel-YA7AbYP3.js → channel-Da36gsaP.js} +15 -15
  7. package/dist/{channel-actions-BJ3n5Z1l.js → channel-actions-CamohoDF.js} +2 -2
  8. package/dist/{channel-actions.runtime-D2QTRgZ9.js → channel-actions.runtime-C1y4B9J0.js} +5 -5
  9. package/dist/channel-plugin-api.js +1 -1
  10. package/dist/{channel.setup-B1zDEAR7.js → channel.setup-KhiBHeGT.js} +2 -2
  11. package/dist/{components-Dm4c_ce6.js → components-CBPNJhVP.js} +1 -1
  12. package/dist/{conversation-identity-DZ0BD7xO.js → conversation-identity-BEsyd7A1.js} +2 -2
  13. package/dist/{directory-config-BK1OhHa3.js → directory-config-CouAqvDj.js} +1 -1
  14. package/dist/directory-contract-api.js +1 -1
  15. package/dist/{directory-live-DP3CmwGf.js → directory-live-C8lwwDJo.js} +2 -2
  16. package/dist/{handle-action.guild-admin-B2cOoU2D.js → handle-action.guild-admin-zmPNo8TF.js} +2 -2
  17. package/dist/index.js +1 -1
  18. package/dist/{manager.runtime-CPHxr9B3.js → manager.runtime-TLLuQzsA.js} +4 -4
  19. package/dist/{message-handler-CKaTgBIV.js → message-handler-ClZrgeka.js} +10 -7
  20. package/dist/{message-handler.preflight--eAiaewz.js → message-handler.preflight-CjnHwEwP.js} +10 -10
  21. package/dist/{message-handler.process-PhKAmrEd.js → message-handler.process-OruF8JFV.js} +200 -22
  22. package/dist/{message-utils-O1vK3kPu.js → message-utils-C_tYBSAu.js} +1 -1
  23. package/dist/{outbound-adapter-fO_7hbTh.js → outbound-adapter-B0iwUl6c.js} +15 -9
  24. package/dist/{pluralkit-B3MzPaPU.js → pluralkit-DaWTJTmF.js} +3 -3
  25. package/dist/{probe-CxnDikWm.js → probe-Bkf8mJlj.js} +3 -2
  26. package/dist/{probe.runtime-DLFkSDVB.js → probe.runtime-3Rerer9g.js} +1 -1
  27. package/dist/{provider-BJaJ20MY.js → provider-CChQJujf.js} +64 -37
  28. package/dist/{provider-session.runtime-D6xc-60s.js → provider-session.runtime-Dy71XetI.js} +3 -3
  29. package/dist/provider.runtime-BiOSsG0m.js +2 -0
  30. package/dist/{resolve-allowlist-common-BDpBb8dF.js → resolve-allowlist-common-BDNoAQll.js} +1 -1
  31. package/dist/{resolve-channels-iJIjYfRw.js → resolve-channels-C_rAwrkj.js} +3 -3
  32. package/dist/{resolve-users-_fv1mm1f.js → resolve-users-Cz1tkemy.js} +3 -3
  33. package/dist/{runtime-ywXByivr.js → runtime-C-fNslbg.js} +9 -10
  34. package/dist/runtime-api.actions.js +2 -2
  35. package/dist/runtime-api.js +19 -19
  36. package/dist/runtime-api.lookup.js +5 -5
  37. package/dist/runtime-api.monitor-CN1_mmYY.js +6 -0
  38. package/dist/runtime-api.monitor.js +4 -4
  39. package/dist/runtime-api.send.js +5 -5
  40. package/dist/runtime-api.threads.js +3 -3
  41. package/dist/{send-Dc5uQX5H.js → send-BYTToRY1.js} +18 -9
  42. package/dist/{send.components-D4bl20xr.js → send.components-Cmv2qMB5.js} +4 -4
  43. package/dist/{send.outbound-5axvwLkl.js → send.outbound-BqvRMxXy.js} +5 -4
  44. package/dist/{send.receipt-B21MspvT.js → send.receipt-CK162xD0.js} +28 -1
  45. package/dist/{send.shared-9082A2sO.js → send.shared-YLGCAMjV.js} +2 -2
  46. package/dist/session-binding-contract-api.js +1 -1
  47. package/dist/setup-plugin-api.js +1 -1
  48. package/dist/subagent-hooks-api.js +1 -1
  49. package/dist/{subagent-hooks-NTv6B4up.js → subagent-hooks-cE_tFGCX.js} +2 -2
  50. package/dist/{system-events-BzaI1WpN.js → system-events-XRYuwB2n.js} +1 -1
  51. package/dist/{target-resolver-agnOrtOU.js → target-resolver-DYufMbXm.js} +2 -2
  52. package/dist/targets-BA7gf0K0.js +3 -0
  53. package/dist/{thread-bindings-DNitaHVh.js → thread-bindings-C1yhwdOw.js} +4 -4
  54. package/dist/{thread-bindings.discord-api-CjYNuvZa.js → thread-bindings.discord-api-XBJmlLaf.js} +4 -4
  55. package/dist/{thread-bindings.manager-PZvJ4TJx.js → thread-bindings.manager-BdFs0ot7.js} +3 -3
  56. package/dist/{transcripts-source-Bi8N6h5X.js → transcripts-source-DW6d1eCL.js} +1 -1
  57. package/dist/transcripts-source-api.js +1 -1
  58. package/dist/{typing-BdRqXUN3.js → typing-BMQEI8OW.js} +1 -1
  59. package/npm-shrinkwrap.json +3 -3
  60. package/package.json +4 -4
  61. package/dist/provider.runtime-jNlHxUSW.js +0 -2
  62. package/dist/runtime-api.monitor-Bb5AaRzg.js +0 -6
  63. package/dist/targets-ClUPljCU.js +0 -3
@@ -1,2 +1,2 @@
1
- import { t as handleDiscordAction } from "./runtime-ywXByivr.js";
1
+ import { t as handleDiscordAction } from "./runtime-C-fNslbg.js";
2
2
  export { handleDiscordAction };
@@ -1,5 +1,6 @@
1
1
  import { n as parseRetryAfterHeaderSeconds, t as parseDiscordRetryAfterBodySeconds } from "./retry-after-D5_VmM-_.js";
2
2
  import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
3
+ import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
3
4
  import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
4
5
  import { resolveRetryConfig, retryAsync } from "openclaw/plugin-sdk/retry-runtime";
5
6
  import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
@@ -28,6 +29,7 @@ const DISCORD_API_RETRY_DEFAULTS = {
28
29
  };
29
30
  const DISCORD_API_429_FALLBACK_RETRY_AFTER_SECONDS = 60;
30
31
  const DISCORD_API_ERROR_BODY_LIMIT_BYTES = 8 * 1024;
32
+ const DISCORD_API_RESPONSE_BODY_LIMIT_BYTES = 4 * 1024 * 1024;
31
33
  function parseDiscordApiErrorPayload(text) {
32
34
  const trimmed = text.trim();
33
35
  if (!trimmed.startsWith("{") || !trimmed.endsWith("}")) return null;
@@ -109,9 +111,14 @@ async function requestDiscord(path, token, options) {
109
111
  const retryAfter = res.status === 429 ? parseRetryAfterSeconds(text, res) ?? DISCORD_API_429_FALLBACK_RETRY_AFTER_SECONDS : void 0;
110
112
  throw new DiscordApiError(`Discord API ${path} failed (${res.status})${suffix}`, res.status, retryAfter);
111
113
  }
112
- const text = await res.text().catch(() => "");
114
+ const responseBody = await readResponseWithLimit(res, DISCORD_API_RESPONSE_BODY_LIMIT_BYTES, { onOverflow: ({ size, maxBytes }) => /* @__PURE__ */ new Error(`Discord API ${path} response body too large: ${size} bytes (limit: ${maxBytes} bytes)`) });
115
+ const text = new TextDecoder().decode(responseBody);
113
116
  if (!text.trim()) return;
114
- return JSON.parse(text);
117
+ try {
118
+ return JSON.parse(text);
119
+ } catch {
120
+ throw new DiscordApiError(`Discord API ${path} returned malformed JSON`, 0);
121
+ }
115
122
  }, {
116
123
  ...retryConfig,
117
124
  label: options?.label ?? path,
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-B21MspvT.js";
1
+ import { Ht as parseDiscordTarget, Ut as resolveDiscordChannelId, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId, o as normalizeDiscordOutboundTarget } from "./send.receipt-CK162xD0.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-Dm4c_ce6.js";
5
- import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-4GFMoWu0.js";
6
- import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-agnOrtOU.js";
7
- import "./targets-ClUPljCU.js";
8
- import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-DZ0BD7xO.js";
9
- import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-YA7AbYP3.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-CBPNJhVP.js";
5
+ import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-CJvEMuA6.js";
6
+ import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-DYufMbXm.js";
7
+ import "./targets-BA7gf0K0.js";
8
+ import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-BEsyd7A1.js";
9
+ import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-Da36gsaP.js";
10
10
  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";
11
11
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
12
- import { t as discordSetupPlugin } from "./channel.setup-B1zDEAR7.js";
13
- import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-NTv6B4up.js";
14
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-B2cOoU2D.js";
15
- import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-BK1OhHa3.js";
16
- import { t as fetchPluralKitMessageInfo } from "./pluralkit-B3MzPaPU.js";
17
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CxnDikWm.js";
12
+ import { t as discordSetupPlugin } from "./channel.setup-KhiBHeGT.js";
13
+ import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-cE_tFGCX.js";
14
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-zmPNo8TF.js";
15
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-CouAqvDj.js";
16
+ import { t as fetchPluralKitMessageInfo } from "./pluralkit-DaWTJTmF.js";
17
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-Bkf8mJlj.js";
18
18
  import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Bh_65L5C.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-D2QTRgZ9.js")).handleDiscordMessageAction(...args);
21
+ const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-C1y4B9J0.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-B21MspvT.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-CK162xD0.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DDZtT5C8.js";
3
- import { F as createDiscordClient, b as stripUndefinedFields } from "./send.shared-9082A2sO.js";
4
- import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-DZ0BD7xO.js";
3
+ import { F as createDiscordClient, b as stripUndefinedFields } from "./send.shared-YLGCAMjV.js";
4
+ import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-BEsyd7A1.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-B21MspvT.js";
1
+ import { Wt as __exportAll } from "./send.receipt-CK162xD0.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-DDZtT5C8.js";
3
- import { O as fetchChannelPermissionsDiscord } from "./send.shared-9082A2sO.js";
4
- import "./send-Dc5uQX5H.js";
3
+ import { O as fetchChannelPermissionsDiscord } from "./send.shared-YLGCAMjV.js";
4
+ import "./send-BYTToRY1.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,14 +1,14 @@
1
- import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt-B21MspvT.js";
1
+ import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt-CK162xD0.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-Dm4c_ce6.js";
4
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-CBPNJhVP.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-DZ0BD7xO.js";
6
+ import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-BEsyd7A1.js";
7
7
  import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-xwjIczO0.js";
8
- import { t as discordMessageActions$1 } from "./channel-actions-BJ3n5Z1l.js";
8
+ import { t as discordMessageActions$1 } from "./channel-actions-CamohoDF.js";
9
9
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-Chs3HgGa.js";
10
10
  import { d as withAbortTimeout } from "./timeouts-C5TBc_9x.js";
11
- import { n as discordOutbound } from "./outbound-adapter-fO_7hbTh.js";
11
+ import { n as discordOutbound } from "./outbound-adapter-B0iwUl6c.js";
12
12
  import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-D11J9bXI.js";
13
13
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
14
14
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -126,29 +126,29 @@ let discordProbeRuntimePromise;
126
126
  let discordAuditModulePromise;
127
127
  let discordSendModulePromise;
128
128
  let discordDirectoryLiveModulePromise;
129
- const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BK1OhHa3.js").then((n) => n.t));
130
- const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-iJIjYfRw.js").then((n) => n.n));
131
- const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-_fv1mm1f.js").then((n) => n.n));
132
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-PZvJ4TJx.js").then((n) => n.a));
133
- const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-agnOrtOU.js").then((n) => n.r));
129
+ const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-CouAqvDj.js").then((n) => n.t));
130
+ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-C_rAwrkj.js").then((n) => n.n));
131
+ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-Cz1tkemy.js").then((n) => n.n));
132
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-BdFs0ot7.js").then((n) => n.a));
133
+ const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-DYufMbXm.js").then((n) => n.r));
134
134
  async function loadDiscordProviderRuntime() {
135
- discordProviderRuntimePromise ??= import("./provider.runtime-jNlHxUSW.js");
135
+ discordProviderRuntimePromise ??= import("./provider.runtime-BiOSsG0m.js");
136
136
  return await discordProviderRuntimePromise;
137
137
  }
138
138
  async function loadDiscordProbeRuntime() {
139
- discordProbeRuntimePromise ??= import("./probe.runtime-DLFkSDVB.js");
139
+ discordProbeRuntimePromise ??= import("./probe.runtime-3Rerer9g.js");
140
140
  return await discordProbeRuntimePromise;
141
141
  }
142
142
  async function loadDiscordAuditModule() {
143
- discordAuditModulePromise ??= import("./audit-CAnmyf2A.js").then((n) => n.n);
143
+ discordAuditModulePromise ??= import("./audit-BXGKCgbA.js").then((n) => n.n);
144
144
  return await discordAuditModulePromise;
145
145
  }
146
146
  async function loadDiscordSendModule() {
147
- discordSendModulePromise ??= import("./send-Dc5uQX5H.js").then((n) => n.t);
147
+ discordSendModulePromise ??= import("./send-BYTToRY1.js").then((n) => n.t);
148
148
  return await discordSendModulePromise;
149
149
  }
150
150
  async function loadDiscordDirectoryLiveModule() {
151
- discordDirectoryLiveModulePromise ??= import("./directory-live-DP3CmwGf.js").then((n) => n.t);
151
+ discordDirectoryLiveModulePromise ??= import("./directory-live-C8lwwDJo.js").then((n) => n.t);
152
152
  return await discordDirectoryLiveModulePromise;
153
153
  }
154
154
  //#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-Dm4c_ce6.js";
3
+ import { d as readDiscordComponentSpec } from "./components-CBPNJhVP.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";
@@ -42,7 +42,7 @@ function resolveDiscordActionExecutionMode({ action }) {
42
42
  }
43
43
  let discordChannelActionsRuntimePromise;
44
44
  async function loadDiscordChannelActionsRuntime() {
45
- discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-D2QTRgZ9.js");
45
+ discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-C1y4B9J0.js");
46
46
  return await discordChannelActionsRuntimePromise;
47
47
  }
48
48
  function listDiscoverableDiscordAccounts(cfg) {
@@ -1,10 +1,10 @@
1
- import { Ut as resolveDiscordChannelId } from "./send.receipt-B21MspvT.js";
2
- import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-Dm4c_ce6.js";
3
- import { t as handleDiscordAction } from "./runtime-ywXByivr.js";
4
- import "./targets-ClUPljCU.js";
1
+ import { Ut as resolveDiscordChannelId } from "./send.receipt-CK162xD0.js";
2
+ import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-CBPNJhVP.js";
3
+ import { t as handleDiscordAction } from "./runtime-C-fNslbg.js";
4
+ import "./targets-BA7gf0K0.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-B2cOoU2D.js";
7
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-zmPNo8TF.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-YA7AbYP3.js";
1
+ import { t as discordPlugin } from "./channel-Da36gsaP.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-iJIjYfRw.js";
5
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-_fv1mm1f.js";
4
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-C_rAwrkj.js";
5
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Cz1tkemy.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-B21MspvT.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-CK162xD0.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,4 +1,4 @@
1
- import { Ht as parseDiscordTarget } from "./send.receipt-B21MspvT.js";
1
+ import { Ht as parseDiscordTarget } from "./send.receipt-CK162xD0.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-SsFtZQA6.js").then((n) => n.t)).discordApprovalNativeRuntime
234
+ load: async () => (await import("./approval-handler.runtime-DzoY4ufU.js").then((n) => n.t)).discordApprovalNativeRuntime
235
235
  })
236
236
  });
237
237
  }
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-B21MspvT.js";
1
+ import { Wt as __exportAll } from "./send.receipt-CK162xD0.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-BK1OhHa3.js";
1
+ import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-CouAqvDj.js";
2
2
  //#region extensions/discord/directory-contract-api.ts
3
3
  const discordDirectoryContractPlugin = {
4
4
  id: "discord",
@@ -1,6 +1,6 @@
1
- import { Wt as __exportAll } from "./send.receipt-B21MspvT.js";
1
+ import { Wt as __exportAll } from "./send.receipt-CK162xD0.js";
2
2
  import { p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { n as fetchDiscord } from "./api-4GFMoWu0.js";
3
+ import { n as fetchDiscord } from "./api-CJvEMuA6.js";
4
4
  import { a as normalizeDiscordSlug } from "./allow-list-C-MqM-B_.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/routing";
@@ -1,6 +1,6 @@
1
- import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-ywXByivr.js";
1
+ import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-C-fNslbg.js";
2
2
  import "./action-runtime-api.js";
3
- import { n as isTrustedRequesterGuildAdminAction } from "./channel-actions-BJ3n5Z1l.js";
3
+ import { n as isTrustedRequesterGuildAdminAction } from "./channel-actions-CamohoDF.js";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
6
6
  //#region extensions/discord/src/actions/handle-action.guild-admin.ts
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-Bi8N6h5X.js";
2
+ import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-DW6d1eCL.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,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-B21MspvT.js";
1
+ import { Ht as parseDiscordTarget, _ as VoiceStateUpdateListener, c as discord_exports, h as ResumedListener, jt as getGuildVoiceState, m as ReadyListener } from "./send.receipt-CK162xD0.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-5axvwLkl.js";
4
+ import { o as formatMention } from "./send.outbound-BqvRMxXy.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.js";
6
- import { d as resolveDiscordVoiceEnabled, p as buildDiscordGroupSystemPrompt, s as authorizeDiscordVoiceIngress } from "./provider-BJaJ20MY.js";
6
+ import { d as resolveDiscordVoiceEnabled, p as buildDiscordGroupSystemPrompt, s as authorizeDiscordVoiceIngress } from "./provider-CChQJujf.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";
@@ -12,12 +12,12 @@ import path from "node:path";
12
12
  import { resolveFfmpegBin } from "openclaw/plugin-sdk/media-runtime";
13
13
  import { createSubsystemLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
14
14
  import { stripInlineDirectiveTagsForDisplay } from "openclaw/plugin-sdk/text-chunking";
15
+ import { escapeRegExp } from "openclaw/plugin-sdk/text-utility-runtime";
15
16
  import fs from "node:fs/promises";
16
17
  import { resolvePreferredOpenClawTmpDir, tempWorkspace } from "openclaw/plugin-sdk/temp-path";
17
18
  import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime";
18
19
  import { REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME, REALTIME_VOICE_AGENT_CONTROL_TOOL, REALTIME_VOICE_AGENT_CONTROL_TOOL_NAME, REALTIME_VOICE_AUDIO_FORMAT_PCM16_24KHZ, buildRealtimeVoiceAgentConsultChatMessage, buildRealtimeVoiceAgentConsultPolicyInstructions, classifySkippableRealtimeVoiceConsultTranscript, controlRealtimeVoiceAgentRun, createRealtimeVoiceAgentTalkbackQueue, createRealtimeVoiceBridgeSession, createRealtimeVoiceForcedConsultCoordinator, createRealtimeVoiceOutputActivityTracker, createRealtimeVoiceTurnContextTracker, matchRealtimeVoiceActivationName, matchRealtimeVoiceConsultQuestions, normalizeSupportedRealtimeVoiceActivationName, parseRealtimeVoiceAgentControlToolArgs, resamplePcm, resolveConfiguredRealtimeVoiceProvider, resolveRealtimeVoiceAgentConsultToolPolicy, resolveRealtimeVoiceAgentConsultTools, resolveRealtimeVoiceAgentConsultToolsAllow, shouldAutoControlRealtimeVoiceAgentText, sortRealtimeVoiceActivationNames } from "openclaw/plugin-sdk/realtime-voice";
19
20
  import { agentCommandFromIngress, getTtsProvider, resolveAgentDir, resolveTtsConfig, resolveTtsPrefsPath } from "openclaw/plugin-sdk/agent-runtime";
20
- import { escapeRegExp } from "openclaw/plugin-sdk/text-utility-runtime";
21
21
  import { spawn } from "node:child_process";
22
22
  import { PassThrough, Readable, Transform, pipeline } from "node:stream";
23
23
  import { Application, OpusError, createDecoder, createEncoder } from "libopus-wasm";
@@ -1,8 +1,9 @@
1
- import { I as createDiscordRestClient } from "./send.shared-9082A2sO.js";
1
+ import { I as createDiscordRestClient } from "./send.shared-YLGCAMjV.js";
2
2
  import { o as mergeAbortSignals } from "./timeouts-C5TBc_9x.js";
3
- import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-CjYNuvZa.js";
4
- import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-O1vK3kPu.js";
5
- import { t as sendTyping } from "./typing-BdRqXUN3.js";
3
+ import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-XBJmlLaf.js";
4
+ import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-C_tYBSAu.js";
5
+ import { t as sendTyping } from "./typing-BMQEI8OW.js";
6
+ import { finiteSecondsToTimerSafeMilliseconds } from "openclaw/plugin-sdk/number-runtime";
6
7
  import { danger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
7
8
  import { createChannelRunQueue, createTypingCallbacks, resolveChannelMessageSourceReplyDeliveryMode } from "openclaw/plugin-sdk/channel-outbound";
8
9
  import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
@@ -178,7 +179,7 @@ function resolveDiscordAcceptedTypingPrestart(ctx) {
178
179
  //#region extensions/discord/src/monitor/message-run-queue.ts
179
180
  let messageProcessRuntimePromise;
180
181
  async function loadMessageProcessRuntime() {
181
- messageProcessRuntimePromise ??= import("./message-handler.process-PhKAmrEd.js");
182
+ messageProcessRuntimePromise ??= import("./message-handler.process-OruF8JFV.js");
182
183
  return await messageProcessRuntimePromise;
183
184
  }
184
185
  async function processDiscordQueuedMessage(params) {
@@ -283,6 +284,7 @@ function createDiscordReplyTypingFeedback(params) {
283
284
  error: err
284
285
  });
285
286
  },
287
+ keepaliveIntervalMs: params.keepaliveIntervalMs,
286
288
  maxDurationMs: params.maxDurationMs ?? 12e5
287
289
  });
288
290
  const updateChannelId = (nextChannelId) => {
@@ -307,7 +309,7 @@ function createDiscordReplyTypingFeedback(params) {
307
309
  //#region extensions/discord/src/monitor/message-handler.ts
308
310
  let messagePreflightRuntimePromise;
309
311
  async function loadMessagePreflightRuntime() {
310
- messagePreflightRuntimePromise ??= import("./message-handler.preflight--eAiaewz.js");
312
+ messagePreflightRuntimePromise ??= import("./message-handler.preflight-CjnHwEwP.js");
311
313
  return await messagePreflightRuntimePromise;
312
314
  }
313
315
  function isNonEmptyString(value) {
@@ -323,7 +325,8 @@ function startAcceptedTypingFeedback(params) {
323
325
  token: ctx.token,
324
326
  accountId: ctx.accountId,
325
327
  channelId: ctx.messageChannelId,
326
- log: logVerbose
328
+ log: logVerbose,
329
+ keepaliveIntervalMs: finiteSecondsToTimerSafeMilliseconds(ctx.cfg.agents?.defaults?.typingIntervalSeconds ?? ctx.cfg.session?.typingIntervalSeconds)
327
330
  });
328
331
  const cleanup = replyTypingFeedback.onCleanup;
329
332
  replyTypingFeedback.onCleanup = () => {
@@ -1,12 +1,12 @@
1
- import { c as discord_exports, k as Message, mt as getChannelMessage } from "./send.receipt-B21MspvT.js";
1
+ import { c as discord_exports, k as Message, mt as getChannelMessage } from "./send.receipt-CK162xD0.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-DZ0BD7xO.js";
4
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-BEsyd7A1.js";
5
5
  import { d as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-iSWjCYjB.js";
6
- import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-CjYNuvZa.js";
7
- import "./thread-bindings-DNitaHVh.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-BJaJ20MY.js";
9
- import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-O1vK3kPu.js";
6
+ import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-XBJmlLaf.js";
7
+ import "./thread-bindings-C1yhwdOw.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-CChQJujf.js";
9
+ import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-C_tYBSAu.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
12
  import { MessageReferenceType, MessageType } from "discord-api-types/v10";
@@ -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-Dc5uQX5H.js").then((n) => n.t);
32
+ discordSendRuntimePromise ??= import("./send-BYTToRY1.js").then((n) => n.t);
33
33
  return await discordSendRuntimePromise;
34
34
  }
35
35
  function resolveDiscordDmPairingSenderId(sender) {
@@ -435,7 +435,7 @@ let preflightAudioRuntimePromise;
435
435
  let systemEventsRuntimePromise;
436
436
  let discordThreadingRuntimePromise;
437
437
  async function loadPluralKitRuntime() {
438
- pluralkitRuntimePromise ??= import("./pluralkit-B3MzPaPU.js").then((n) => n.n);
438
+ pluralkitRuntimePromise ??= import("./pluralkit-DaWTJTmF.js").then((n) => n.n);
439
439
  return await pluralkitRuntimePromise;
440
440
  }
441
441
  async function loadPreflightAudioRuntime() {
@@ -443,11 +443,11 @@ async function loadPreflightAudioRuntime() {
443
443
  return await preflightAudioRuntimePromise;
444
444
  }
445
445
  async function loadSystemEventsRuntime() {
446
- systemEventsRuntimePromise ??= import("./system-events-BzaI1WpN.js");
446
+ systemEventsRuntimePromise ??= import("./system-events-XRYuwB2n.js");
447
447
  return await systemEventsRuntimePromise;
448
448
  }
449
449
  async function loadDiscordThreadingRuntime() {
450
- discordThreadingRuntimePromise ??= import("./provider-BJaJ20MY.js").then((n) => n.S);
450
+ discordThreadingRuntimePromise ??= import("./provider-CChQJujf.js").then((n) => n.S);
451
451
  return await discordThreadingRuntimePromise;
452
452
  }
453
453
  function isPreflightAborted(abortSignal) {