@openclaw/discord 2026.5.3 → 2026.5.4-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 (47) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/api.js +7 -7
  3. package/dist/{approval-handler.runtime-AZort68o.js → approval-handler.runtime-TRKg9NzZ.js} +1 -1
  4. package/dist/{approval-native-oN9__F3M.js → approval-native-DJs5M8fw.js} +1 -1
  5. package/dist/{audit-DEbWTFTt.js → audit-CdKtgVPO.js} +2 -2
  6. package/dist/{channel-actions-ChsoeB3T.js → channel-actions-BvEKvoM5.js} +1 -1
  7. package/dist/{channel-actions.runtime-BxNUYqD-.js → channel-actions.runtime-BNZAM-9-.js} +3 -3
  8. package/dist/channel-config-api.js +1 -1
  9. package/dist/channel-plugin-api.js +1 -1
  10. package/dist/{channel-Nf20xyAS.js → channel-wqYExrBU.js} +43 -25
  11. package/dist/{channel.setup-DHzAG9qO.js → channel.setup-C-HEMkxU.js} +1 -1
  12. package/dist/{config-schema-BmGtnfiE.js → config-schema-CC1qhiTN.js} +9 -1
  13. package/dist/contract-api.js +1 -1
  14. package/dist/{handle-action.guild-admin-B2Zzo2HU.js → handle-action.guild-admin-nTLXjfyh.js} +1 -1
  15. package/dist/{message-handler-TShaLWeQ.js → message-handler-kDvsxS8t.js} +3 -3
  16. package/dist/{message-handler.preflight-BsvNIDEw.js → message-handler.preflight-DYhlpFEl.js} +3 -3
  17. package/dist/{message-handler.process-Be2HA9AV.js → message-handler.process-B-CiOj1K.js} +12 -11
  18. package/dist/{outbound-adapter-B-mzejZP.js → outbound-adapter-FG0CgK3I.js} +3 -3
  19. package/dist/{provider-Cy1aml6b.js → provider-CnLt-Y4Z.js} +171 -63
  20. package/dist/{provider-session.runtime-CD5RUyP3.js → provider-session.runtime-7BukaDmt.js} +3 -3
  21. package/dist/provider.runtime-gtpKILBo.js +2 -0
  22. package/dist/{reply-delivery-uCiWAyIt.js → reply-delivery-QiXSsCCR.js} +61 -6
  23. package/dist/{route-resolution-Bx85WEpX.js → route-resolution-DODkzE43.js} +1 -1
  24. package/dist/{runtime-SoSwefbS.js → runtime-NObmZxWs.js} +5 -5
  25. package/dist/runtime-api.actions.js +2 -2
  26. package/dist/runtime-api.js +13 -13
  27. package/dist/runtime-api.lookup.js +1 -1
  28. package/dist/{runtime-api.monitor-srLSEVEX.js → runtime-api.monitor-B5uT6Cmc.js} +2 -2
  29. package/dist/runtime-api.monitor.js +3 -3
  30. package/dist/runtime-api.send.js +4 -4
  31. package/dist/runtime-api.threads.js +3 -3
  32. package/dist/{send-Dw6Da1m2.js → send-Rz5xnelg.js} +2 -2
  33. package/dist/{send.components-CJ8gYK3s.js → send.components-CoCE4aan.js} +2 -2
  34. package/dist/{send.outbound-6KbINW5h.js → send.outbound-DN-HfmW2.js} +1 -1
  35. package/dist/{send.shared-e9Pd_Em0.js → send.shared-BWZyuxM-.js} +1 -1
  36. package/dist/setup-plugin-api.js +1 -1
  37. package/dist/{shared-C1EMtcxR.js → shared-Ugd3DMEH.js} +1 -1
  38. package/dist/{subagent-hooks-4TZ3SJrh.js → subagent-hooks-DgpxQHUn.js} +1 -1
  39. package/dist/subagent-hooks-api.js +1 -1
  40. package/dist/{targets-B7OfGFt8.js → targets-DcNwQ9vN.js} +1 -1
  41. package/dist/test-api.js +3 -3
  42. package/dist/{thread-bindings-DLoian4S.js → thread-bindings-C7GN5ebh.js} +3 -3
  43. package/dist/{thread-bindings.discord-api-BJF6acLK.js → thread-bindings.discord-api-CfZnSqIb.js} +3 -3
  44. package/dist/{thread-bindings.manager-CWG9Gd04.js → thread-bindings.manager-BxPG0IHV.js} +2 -2
  45. package/openclaw.plugin.json +51 -1
  46. package/package.json +5 -5
  47. package/dist/provider.runtime-CbW_PYV-.js +0 -2
@@ -1,9 +1,9 @@
1
1
  import { a as clearPresences, c as setPresence, i as unregisterGateway, n as getGateway, o as getPresence, r as registerGateway, s as presenceCacheSize, t as clearGateways } from "./gateway-registry-BKG4KIVC.js";
2
2
  import { _ as resolveGroupDmAllow, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, g as resolveDiscordShouldRequireMention, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, s as resolveDiscordChannelConfig, t as allowListMatches, u as resolveDiscordCommandAuthorized, v as shouldEmitDiscordReactionNotification } from "./allow-list-ek-1hMKN.js";
3
3
  import { a as mergeAbortSignals, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-C7jeTtGs.js";
4
- import { a as createDiscordNativeCommand, i as waitForDiscordGatewayPluginRegistration, n as createDiscordGatewayPlugin, o as registerDiscordListener, r as resolveDiscordGatewayIntents, t as monitorDiscordProvider } from "./provider-Cy1aml6b.js";
4
+ import { a as createDiscordNativeCommand, i as waitForDiscordGatewayPluginRegistration, n as createDiscordGatewayPlugin, o as registerDiscordListener, r as resolveDiscordGatewayIntents, t as monitorDiscordProvider } from "./provider-CnLt-Y4Z.js";
5
5
  import { i as buildDiscordMediaPayload } from "./message-utils-Dmgu-7fC.js";
6
6
  import { o as sanitizeDiscordThreadName, r as resolveDiscordReplyTarget } from "./threading-Bi95Nz8h.js";
7
- import { t as createDiscordMessageHandler } from "./message-handler-TShaLWeQ.js";
8
- import "./runtime-api.monitor-srLSEVEX.js";
7
+ import { t as createDiscordMessageHandler } from "./message-handler-kDvsxS8t.js";
8
+ import "./runtime-api.monitor-B5uT6Cmc.js";
9
9
  export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, allowListMatches, buildDiscordMediaPayload, clearGateways, clearPresences, createDiscordGatewayPlugin, createDiscordMessageHandler, createDiscordNativeCommand, getGateway, getPresence, isDiscordGroupAllowedByPolicy, mergeAbortSignals, monitorDiscordProvider, normalizeDiscordAllowList, normalizeDiscordSlug, presenceCacheSize, registerDiscordListener, registerGateway, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveGroupDmAllow, sanitizeDiscordThreadName, setPresence, shouldEmitDiscordReactionNotification, unregisterGateway, waitForDiscordGatewayPluginRegistration };
@@ -1,6 +1,6 @@
1
1
  import { t as resolveDiscordOutboundSessionRoute } from "./outbound-session-route-uHGLDP-Y.js";
2
- import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-CJ8gYK3s.js";
3
- import { C as DiscordSendError, D as hasAllGuildPermissionsDiscord, E as fetchMemberGuildPermissionsDiscord, O as hasAnyGuildPermissionDiscord, T as fetchChannelPermissionsDiscord } from "./send.shared-e9Pd_Em0.js";
4
- import { A as removeRoleDiscord, B as removeChannelPermissionDiscord, C as fetchChannelInfoDiscord, D as kickMemberDiscord, E as fetchVoiceStatusDiscord, F as uploadStickerDiscord, I as createChannelDiscord, L as deleteChannelDiscord, M as timeoutMemberDiscord, N as listGuildEmojisDiscord, O as listGuildChannelsDiscord, P as uploadEmojiDiscord, R as editChannelDiscord, S as createScheduledEventDiscord, T as fetchRoleInfoDiscord, V as setChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as resolveEventCoverImage, k as listScheduledEventsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchMemberInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as moveChannelDiscord } from "./send-Dw6Da1m2.js";
5
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-6KbINW5h.js";
2
+ import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-CoCE4aan.js";
3
+ import { C as DiscordSendError, D as hasAllGuildPermissionsDiscord, E as fetchMemberGuildPermissionsDiscord, O as hasAnyGuildPermissionDiscord, T as fetchChannelPermissionsDiscord } from "./send.shared-BWZyuxM-.js";
4
+ import { A as removeRoleDiscord, B as removeChannelPermissionDiscord, C as fetchChannelInfoDiscord, D as kickMemberDiscord, E as fetchVoiceStatusDiscord, F as uploadStickerDiscord, I as createChannelDiscord, L as deleteChannelDiscord, M as timeoutMemberDiscord, N as listGuildEmojisDiscord, O as listGuildChannelsDiscord, P as uploadEmojiDiscord, R as editChannelDiscord, S as createScheduledEventDiscord, T as fetchRoleInfoDiscord, V as setChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as resolveEventCoverImage, k as listScheduledEventsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchMemberInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as moveChannelDiscord } from "./send-Rz5xnelg.js";
5
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DN-HfmW2.js";
6
6
  export { DiscordSendError, addRoleDiscord, banMemberDiscord, createChannelDiscord, createScheduledEventDiscord, createThreadDiscord, deleteChannelDiscord, deleteMessageDiscord, editChannelDiscord, editDiscordComponentMessage, editMessageDiscord, fetchChannelInfoDiscord, fetchChannelPermissionsDiscord, fetchMemberGuildPermissionsDiscord, fetchMemberInfoDiscord, fetchMessageDiscord, fetchReactionsDiscord, fetchRoleInfoDiscord, fetchVoiceStatusDiscord, hasAllGuildPermissionsDiscord, hasAnyGuildPermissionDiscord, kickMemberDiscord, listGuildChannelsDiscord, listGuildEmojisDiscord, listPinsDiscord, listScheduledEventsDiscord, listThreadsDiscord, moveChannelDiscord, pinMessageDiscord, reactMessageDiscord, readMessagesDiscord, registerBuiltDiscordComponentMessage, removeChannelPermissionDiscord, removeOwnReactionsDiscord, removeReactionDiscord, removeRoleDiscord, resolveDiscordOutboundSessionRoute, resolveEventCoverImage, searchMessagesDiscord, sendDiscordComponentMessage, sendMessageDiscord, sendPollDiscord, sendStickerDiscord, sendTypingDiscord, sendVoiceMessageDiscord, sendWebhookMessageDiscord, setChannelPermissionDiscord, timeoutMemberDiscord, unpinMessageDiscord, uploadEmojiDiscord, uploadStickerDiscord };
@@ -1,6 +1,6 @@
1
1
  import { C as resolveThreadBindingMaxAgeMs, S as resolveThreadBindingMaxAgeExpiresAt, b as resolveThreadBindingIdleTimeoutMs, l as isRecentlyUnboundThreadWebhookMessage, x as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-Dzu1gCE7.js";
2
2
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-TTP020qQ.js";
3
- import { d as formatThreadBindingDurationLabel, l as resolveThreadBindingPersona, m as resolveThreadBindingThreadName, p as resolveThreadBindingIntroText, u as resolveThreadBindingPersonaFromRecord } from "./thread-bindings.discord-api-BJF6acLK.js";
4
- import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-DLoian4S.js";
5
- import { i as getThreadBindingManager, n as createNoopThreadBindingManager, r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-CWG9Gd04.js";
3
+ import { d as formatThreadBindingDurationLabel, l as resolveThreadBindingPersona, m as resolveThreadBindingThreadName, p as resolveThreadBindingIntroText, u as resolveThreadBindingPersonaFromRecord } from "./thread-bindings.discord-api-CfZnSqIb.js";
4
+ import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-C7GN5ebh.js";
5
+ import { i as getThreadBindingManager, n as createNoopThreadBindingManager, r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-BxPG0IHV.js";
6
6
  export { __testing, autoBindSpawnedDiscordSubagent, createNoopThreadBindingManager, createThreadBindingManager, formatThreadBindingDurationLabel, getThreadBindingManager, isRecentlyUnboundThreadWebhookMessage, listThreadBindingsBySessionKey, listThreadBindingsForAccount, reconcileAcpThreadBindingsOnStartup, resolveDiscordThreadBindingIdleTimeoutMs, resolveDiscordThreadBindingMaxAgeMs, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingInactivityExpiresAt, resolveThreadBindingIntroText, resolveThreadBindingMaxAgeExpiresAt, resolveThreadBindingMaxAgeMs, resolveThreadBindingPersona, resolveThreadBindingPersonaFromRecord, resolveThreadBindingThreadName, resolveThreadBindingsEnabled, setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey, unbindThreadBindingsBySessionKey };
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
3
3
  import { $ as createChannelMessage, At as putChannelPermission, Ct as getGuildVoiceState, Dt as listGuildRoles, Et as listGuildEmojis, Mt as removeGuildMemberRole, Nt as timeoutGuildMember, Ot as listGuildScheduledEvents, Q as listMessageReactionUsers, St as getGuildMember, Tt as listGuildChannels, X as createOwnMessageReaction, Z as deleteOwnMessageReaction, _ as readDiscordMessage, _t as createGuildEmoji, at as getChannel, bt as deleteChannelPermission, ct as listChannelMessages, dt as searchGuildMessages, et as createThread, ft as sendChannelTyping, g as readDiscordCode, gt as createGuildChannel, h as RateLimitError, ht as createGuildBan, it as editChannelMessage, jt as removeGuildMember, kt as moveGuildChannels, lt as listChannelPins, m as DiscordError, mt as addGuildMemberRole, nt as deleteChannelMessage, ot as getChannelMessage, pt as unpinChannelMessage, rt as editChannel, st as listChannelArchivedThreads, tt as deleteChannel, ut as pinChannelMessage, v as readRetryAfter, vt as createGuildScheduledEvent, wt as listGuildActiveThreads, yt as createGuildSticker } from "./discord-eZlimVfW.js";
4
- import { C as DiscordSendError, D as hasAllGuildPermissionsDiscord, E as fetchMemberGuildPermissionsDiscord, F as resolveDiscordClientAccountContext, I as resolveDiscordRest, M as createDiscordClient, O as hasAnyGuildPermissionDiscord, S as DISCORD_MAX_STICKER_BYTES, T as fetchChannelPermissionsDiscord, b as DISCORD_MAX_EMOJI_BYTES, i as formatReactionEmoji, k as parseAndResolveRecipient, l as resolveChannelId, o as normalizeEmojiName, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, w as canViewDiscordGuildChannel, x as DISCORD_MAX_EVENT_COVER_BYTES } from "./send.shared-e9Pd_Em0.js";
4
+ import { C as DiscordSendError, D as hasAllGuildPermissionsDiscord, E as fetchMemberGuildPermissionsDiscord, F as resolveDiscordClientAccountContext, I as resolveDiscordRest, M as createDiscordClient, O as hasAnyGuildPermissionDiscord, S as DISCORD_MAX_STICKER_BYTES, T as fetchChannelPermissionsDiscord, b as DISCORD_MAX_EMOJI_BYTES, i as formatReactionEmoji, k as parseAndResolveRecipient, l as resolveChannelId, o as normalizeEmojiName, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, w as canViewDiscordGuildChannel, x as DISCORD_MAX_EVENT_COVER_BYTES } from "./send.shared-BWZyuxM-.js";
5
5
  import { n as rewriteDiscordKnownMentions } from "./mentions-BPZUaFk7.js";
6
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-6KbINW5h.js";
6
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DN-HfmW2.js";
7
7
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
8
8
  import { ChannelType } from "discord-api-types/v10";
9
9
  import crypto from "node:crypto";
@@ -4,8 +4,8 @@ import "./config-api-CFZtoMaS.js";
4
4
  import "./channel-api-CTSWMrnD.js";
5
5
  import "./outbound-session-route-uHGLDP-Y.js";
6
6
  import { $ as createChannelMessage, it as editChannelMessage, w as serializePayload } from "./discord-eZlimVfW.js";
7
- import { M as createDiscordClient, h as SUPPRESS_NOTIFICATIONS_FLAG, k as parseAndResolveRecipient, l as resolveChannelId, m as toDiscordFileBlob, t as buildDiscordSendError, u as resolveDiscordChannelType, y as stripUndefinedFields } from "./send.shared-e9Pd_Em0.js";
8
- import { t as sendMessageDiscord } from "./send.outbound-6KbINW5h.js";
7
+ import { M as createDiscordClient, h as SUPPRESS_NOTIFICATIONS_FLAG, k as parseAndResolveRecipient, l as resolveChannelId, m as toDiscordFileBlob, t as buildDiscordSendError, u as resolveDiscordChannelType, y as stripUndefinedFields } from "./send.shared-BWZyuxM-.js";
8
+ import { t as sendMessageDiscord } from "./send.outbound-DN-HfmW2.js";
9
9
  import { a as buildDiscordComponentMessage, l as resolveDiscordComponentAttachmentName, o as buildDiscordComponentMessageFlags } from "./components-D5LnN7ZQ.js";
10
10
  import { n as getOptionalDiscordRuntime } from "./runtime-K9RT6Egn.js";
11
11
  import "openclaw/plugin-sdk/account-id";
@@ -1,6 +1,6 @@
1
1
  import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
2
2
  import { $ as createChannelMessage, et as createThread } from "./discord-eZlimVfW.js";
3
- import { M as createDiscordClient, _ as resolveDiscordSendComponents, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, g as buildDiscordMessageRequest, h as SUPPRESS_NOTIFICATIONS_FLAG, k as parseAndResolveRecipient, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannelType, v as resolveDiscordSendEmbeds } from "./send.shared-e9Pd_Em0.js";
3
+ import { M as createDiscordClient, _ as resolveDiscordSendComponents, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, g as buildDiscordMessageRequest, h as SUPPRESS_NOTIFICATIONS_FLAG, k as parseAndResolveRecipient, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannelType, v as resolveDiscordSendEmbeds } from "./send.shared-BWZyuxM-.js";
4
4
  import { n as rewriteDiscordKnownMentions } from "./mentions-BPZUaFk7.js";
5
5
  import { convertMarkdownTables, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
6
6
  import { ChannelType } from "discord-api-types/v10";
@@ -710,4 +710,4 @@ function formatReactionEmoji(emoji) {
710
710
  return buildReactionIdentifier(emoji);
711
711
  }
712
712
  //#endregion
713
- export { resolveDiscordTarget as A, validateDiscordProxyUrl as B, DiscordSendError as C, hasAllGuildPermissionsDiscord as D, fetchMemberGuildPermissionsDiscord as E, resolveDiscordClientAccountContext as F, resolveDiscordRest as I, DISCORD_REST_TIMEOUT_MS as L, createDiscordClient as M, createDiscordRestClient as N, hasAnyGuildPermissionDiscord as O, createDiscordRuntimeAccountContext as P, createDiscordRequestClient as R, DISCORD_MAX_STICKER_BYTES as S, fetchChannelPermissionsDiscord as T, withValidatedDiscordProxy as V, resolveDiscordSendComponents as _, normalizeDiscordPollInput as a, DISCORD_MAX_EMOJI_BYTES as b, normalizeStickerIds as c, resolveDiscordTargetChannelId as d, sendDiscordMedia as f, buildDiscordMessageRequest as g, SUPPRESS_NOTIFICATIONS_FLAG as h, formatReactionEmoji as i, parseDiscordSendTarget as j, parseAndResolveRecipient as k, resolveChannelId as l, toDiscordFileBlob as m, buildDiscordTextChunks as n, normalizeEmojiName as o, sendDiscordText as p, buildReactionIdentifier as r, normalizeReactionEmoji as s, buildDiscordSendError as t, resolveDiscordChannelType as u, resolveDiscordSendEmbeds as v, canViewDiscordGuildChannel as w, DISCORD_MAX_EVENT_COVER_BYTES as x, stripUndefinedFields as y, resolveDiscordProxyFetchForAccount as z };
713
+ export { resolveDiscordTarget as A, DiscordSendError as C, hasAllGuildPermissionsDiscord as D, fetchMemberGuildPermissionsDiscord as E, resolveDiscordClientAccountContext as F, resolveDiscordRest as I, DISCORD_REST_TIMEOUT_MS as L, createDiscordClient as M, createDiscordRestClient as N, hasAnyGuildPermissionDiscord as O, createDiscordRuntimeAccountContext as P, validateDiscordProxyUrl as R, DISCORD_MAX_STICKER_BYTES as S, fetchChannelPermissionsDiscord as T, resolveDiscordSendComponents as _, normalizeDiscordPollInput as a, DISCORD_MAX_EMOJI_BYTES as b, normalizeStickerIds as c, resolveDiscordTargetChannelId as d, sendDiscordMedia as f, buildDiscordMessageRequest as g, SUPPRESS_NOTIFICATIONS_FLAG as h, formatReactionEmoji as i, parseDiscordSendTarget as j, parseAndResolveRecipient as k, resolveChannelId as l, toDiscordFileBlob as m, buildDiscordTextChunks as n, normalizeEmojiName as o, sendDiscordText as p, buildReactionIdentifier as r, normalizeReactionEmoji as s, buildDiscordSendError as t, resolveDiscordChannelType as u, resolveDiscordSendEmbeds as v, canViewDiscordGuildChannel as w, DISCORD_MAX_EVENT_COVER_BYTES as x, stripUndefinedFields as y, withValidatedDiscordProxy as z };
@@ -1,2 +1,2 @@
1
- import { t as discordSetupPlugin } from "./channel.setup-DHzAG9qO.js";
1
+ import { t as discordSetupPlugin } from "./channel.setup-C-HEMkxU.js";
2
2
  export { discordSetupPlugin };
@@ -1,7 +1,7 @@
1
1
  import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, d as resolveDiscordAccountDmPolicy, n as isDiscordAccountEnabledForRuntime, o as resolveDefaultDiscordAccountId, r as listDiscordAccountIds, s as resolveDiscordAccount, u as resolveDiscordAccountDisabledReason } from "./accounts-CaHGiVB4.js";
2
2
  import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
3
3
  import { i as getChatChannelMeta } from "./channel-api-CTSWMrnD.js";
4
- import { t as DiscordChannelConfigSchema } from "./config-schema-BmGtnfiE.js";
4
+ import { t as DiscordChannelConfigSchema } from "./config-schema-CC1qhiTN.js";
5
5
  import { n as normalizeCompatibilityConfig } from "./doctor-contract-Dxq4VIkE.js";
6
6
  import { t as DISCORD_LEGACY_CONFIG_RULES } from "./doctor-shared-DU8RcnF5.js";
7
7
  import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-CoGryS5c.js";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-CaHGiVB4.js";
3
- import { n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-DLoian4S.js";
3
+ import { n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-C7GN5ebh.js";
4
4
  import { normalizeOptionalLowercaseString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
5
5
  import { formatThreadBindingDisabledError, formatThreadBindingSpawnDisabledError, resolveThreadBindingSpawnPolicy } from "openclaw/plugin-sdk/conversation-runtime";
6
6
  //#region extensions/discord/src/subagent-hooks.ts
@@ -1,7 +1,7 @@
1
1
  //#region extensions/discord/subagent-hooks-api.ts
2
2
  let discordSubagentHooksPromise = null;
3
3
  function loadDiscordSubagentHooksModule() {
4
- discordSubagentHooksPromise ??= import("./subagent-hooks-4TZ3SJrh.js").then((n) => n.i);
4
+ discordSubagentHooksPromise ??= import("./subagent-hooks-DgpxQHUn.js").then((n) => n.i);
5
5
  return discordSubagentHooksPromise;
6
6
  }
7
7
  function registerDiscordSubagentHooks(api) {
@@ -1,3 +1,3 @@
1
1
  import "./normalize-B-ktw-T_.js";
2
- import "./send.shared-e9Pd_Em0.js";
2
+ import "./send.shared-BWZyuxM-.js";
3
3
  export {};
package/dist/test-api.js CHANGED
@@ -1,6 +1,6 @@
1
- import { t as discordPlugin } from "./channel-Nf20xyAS.js";
2
- import { n as discordOutbound } from "./outbound-adapter-B-mzejZP.js";
3
- import { t as __testing } from "./thread-bindings.manager-CWG9Gd04.js";
1
+ import { t as discordPlugin } from "./channel-wqYExrBU.js";
2
+ import { n as discordOutbound } from "./outbound-adapter-FG0CgK3I.js";
3
+ import { t as __testing } from "./thread-bindings.manager-BxPG0IHV.js";
4
4
  import { n as buildDiscordInboundAccessContext } from "./inbound-context-e_oBBJtF.js";
5
5
  import { finalizeInboundContext } from "openclaw/plugin-sdk/reply-dispatch-runtime";
6
6
  //#region extensions/discord/src/monitor/inbound-context.test-helpers.ts
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
2
  import { o as parseDiscordTarget } from "./normalize-B-ktw-T_.js";
3
- import "./targets-B7OfGFt8.js";
3
+ import "./targets-DcNwQ9vN.js";
4
4
  import { C as resolveThreadBindingMaxAgeMs$1, O as shouldPersistBindingMutations, S as resolveThreadBindingMaxAgeExpiresAt, T as saveBindingsToDisk, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingToken, f as normalizeThreadId, g as removeBindingRecord, l as isRecentlyUnboundThreadWebhookMessage, n as MANAGERS_BY_ACCOUNT_ID, p as rememberRecentUnboundWebhookEcho, t as BINDINGS_BY_THREAD_ID, x as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-Dzu1gCE7.js";
5
5
  import { n as setThreadBindingMaxAgeBySessionKey, r as resolveBindingIdsForTargetSession, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-TTP020qQ.js";
6
- import { d as formatThreadBindingDurationLabel, l as resolveThreadBindingPersona, m as resolveThreadBindingThreadName, p as resolveThreadBindingIntroText, s as resolveChannelIdForBinding, u as resolveThreadBindingPersonaFromRecord } from "./thread-bindings.discord-api-BJF6acLK.js";
7
- import { i as getThreadBindingManager, n as createNoopThreadBindingManager, r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-CWG9Gd04.js";
6
+ import { d as formatThreadBindingDurationLabel, l as resolveThreadBindingPersona, m as resolveThreadBindingThreadName, p as resolveThreadBindingIntroText, s as resolveChannelIdForBinding, u as resolveThreadBindingPersonaFromRecord } from "./thread-bindings.discord-api-CfZnSqIb.js";
7
+ import { i as getThreadBindingManager, n as createNoopThreadBindingManager, r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-BxPG0IHV.js";
8
8
  import { normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
9
9
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
10
10
  import { resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled } from "openclaw/plugin-sdk/conversation-runtime";
@@ -1,8 +1,8 @@
1
1
  import { s as resolveDiscordChannelId } from "./normalize-B-ktw-T_.js";
2
2
  import { at as getChannel, q as createChannelWebhook } from "./discord-eZlimVfW.js";
3
- import { N as createDiscordRestClient } from "./send.shared-e9Pd_Em0.js";
4
- import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-Dw6Da1m2.js";
5
- import { t as sendMessageDiscord } from "./send.outbound-6KbINW5h.js";
3
+ import { N as createDiscordRestClient } from "./send.shared-BWZyuxM-.js";
4
+ import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-Rz5xnelg.js";
5
+ import { t as sendMessageDiscord } from "./send.outbound-DN-HfmW2.js";
6
6
  import { i as REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL, k as toReusableWebhookKey, m as rememberReusableWebhook, t as BINDINGS_BY_THREAD_ID } from "./thread-bindings.state-Dzu1gCE7.js";
7
7
  import { n as resolveDiscordChannelInfoSafe, t as resolveDiscordChannelIdSafe } from "./channel-access-ewDxhd9q.js";
8
8
  import { SYSTEM_MARK, normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-C3SqQTfK.js";
2
2
  import { s as resolveDiscordChannelId } from "./normalize-B-ktw-T_.js";
3
3
  import { at as getChannel } from "./discord-eZlimVfW.js";
4
- import { N as createDiscordRestClient } from "./send.shared-e9Pd_Em0.js";
4
+ import { N as createDiscordRestClient } from "./send.shared-BWZyuxM-.js";
5
5
  import { A as DEFAULT_THREAD_BINDING_IDLE_TIMEOUT_MS, C as resolveThreadBindingMaxAgeMs$1, D as shouldDefaultPersist, E as setBindingRecord, M as THREAD_BINDINGS_SWEEP_INTERVAL_MS, S as resolveThreadBindingMaxAgeExpiresAt, T as saveBindingsToDisk, _ as resetThreadBindingsForTests, a as THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingToken, d as normalizeThreadBindingDurationMs, f as normalizeThreadId, g as removeBindingRecord, h as rememberThreadBindingToken, n as MANAGERS_BY_ACCOUNT_ID, o as ensureBindingsLoaded, p as rememberRecentUnboundWebhookEcho, r as PERSIST_BY_ACCOUNT_ID, s as forgetThreadBindingToken, t as BINDINGS_BY_THREAD_ID, u as normalizeTargetKind, v as resolveBindingIdsForSession, w as resolveThreadBindingsPath, x as resolveThreadBindingInactivityExpiresAt, y as resolveBindingRecordKey } from "./thread-bindings.state-Dzu1gCE7.js";
6
- import { a as isThreadArchived, c as summarizeDiscordError, f as resolveThreadBindingFarewellText, i as isDiscordThreadGoneError, m as resolveThreadBindingThreadName, n as createWebhookForChannel, o as maybeSendBindingMessage, r as findReusableWebhook, s as resolveChannelIdForBinding, t as createThreadForBinding } from "./thread-bindings.discord-api-BJF6acLK.js";
6
+ import { a as isThreadArchived, c as summarizeDiscordError, f as resolveThreadBindingFarewellText, i as isDiscordThreadGoneError, m as resolveThreadBindingThreadName, n as createWebhookForChannel, o as maybeSendBindingMessage, r as findReusableWebhook, s as resolveChannelIdForBinding, t as createThreadForBinding } from "./thread-bindings.discord-api-CfZnSqIb.js";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
8
8
  import { normalizeAccountId, resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing";
9
9
  import { getRuntimeConfigSnapshot } from "openclaw/plugin-sdk/runtime-config-snapshot";
@@ -308,6 +308,13 @@
308
308
  },
309
309
  "toolProgress": {
310
310
  "type": "boolean"
311
+ },
312
+ "commandText": {
313
+ "type": "string",
314
+ "enum": [
315
+ "raw",
316
+ "status"
317
+ ]
311
318
  }
312
319
  },
313
320
  "additionalProperties": false
@@ -337,8 +344,22 @@
337
344
  "exclusiveMinimum": 0,
338
345
  "maximum": 9007199254740991
339
346
  },
347
+ "render": {
348
+ "type": "string",
349
+ "enum": [
350
+ "text",
351
+ "rich"
352
+ ]
353
+ },
340
354
  "toolProgress": {
341
355
  "type": "boolean"
356
+ },
357
+ "commandText": {
358
+ "type": "string",
359
+ "enum": [
360
+ "raw",
361
+ "status"
362
+ ]
342
363
  }
343
364
  },
344
365
  "additionalProperties": false
@@ -1864,6 +1885,13 @@
1864
1885
  },
1865
1886
  "toolProgress": {
1866
1887
  "type": "boolean"
1888
+ },
1889
+ "commandText": {
1890
+ "type": "string",
1891
+ "enum": [
1892
+ "raw",
1893
+ "status"
1894
+ ]
1867
1895
  }
1868
1896
  },
1869
1897
  "additionalProperties": false
@@ -1893,8 +1921,22 @@
1893
1921
  "exclusiveMinimum": 0,
1894
1922
  "maximum": 9007199254740991
1895
1923
  },
1924
+ "render": {
1925
+ "type": "string",
1926
+ "enum": [
1927
+ "text",
1928
+ "rich"
1929
+ ]
1930
+ },
1896
1931
  "toolProgress": {
1897
1932
  "type": "boolean"
1933
+ },
1934
+ "commandText": {
1935
+ "type": "string",
1936
+ "enum": [
1937
+ "raw",
1938
+ "status"
1939
+ ]
1898
1940
  }
1899
1941
  },
1900
1942
  "additionalProperties": false
@@ -3207,7 +3249,11 @@
3207
3249
  },
3208
3250
  "streaming.preview.toolProgress": {
3209
3251
  "label": "Discord Draft Tool Progress",
3210
- "help": "Show tool/progress activity in the live draft preview message (default: true). Set false to keep tool updates as separate messages."
3252
+ "help": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active."
3253
+ },
3254
+ "streaming.preview.commandText": {
3255
+ "label": "Discord Draft Command Text",
3256
+ "help": "Command/exec detail in preview tool-progress lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
3211
3257
  },
3212
3258
  "streaming.progress.label": {
3213
3259
  "label": "Discord Progress Label",
@@ -3225,6 +3271,10 @@
3225
3271
  "label": "Discord Progress Tool Lines",
3226
3272
  "help": "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery."
3227
3273
  },
3274
+ "streaming.progress.commandText": {
3275
+ "label": "Discord Progress Command Text",
3276
+ "help": "Command/exec detail in progress draft lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
3277
+ },
3228
3278
  "retry.attempts": {
3229
3279
  "label": "Discord Retry Attempts",
3230
3280
  "help": "Max retry attempts for outbound Discord API calls (default: 3)."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/discord",
3
- "version": "2026.5.3",
3
+ "version": "2026.5.4-beta.2",
4
4
  "description": "OpenClaw Discord channel plugin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,7 +13,7 @@
13
13
  "https-proxy-agent": "^9.0.0",
14
14
  "opusscript": "^0.1.1",
15
15
  "typebox": "1.1.37",
16
- "undici": "8.1.0",
16
+ "undici": "8.2.0",
17
17
  "ws": "^8.20.0"
18
18
  },
19
19
  "devDependencies": {
@@ -21,7 +21,7 @@
21
21
  "openclaw": "workspace:*"
22
22
  },
23
23
  "peerDependencies": {
24
- "openclaw": ">=2026.5.3"
24
+ "openclaw": ">=2026.5.4-beta.2"
25
25
  },
26
26
  "peerDependenciesMeta": {
27
27
  "openclaw": {
@@ -65,10 +65,10 @@
65
65
  "allowInvalidConfigRecovery": true
66
66
  },
67
67
  "compat": {
68
- "pluginApi": ">=2026.5.3"
68
+ "pluginApi": ">=2026.5.4-beta.2"
69
69
  },
70
70
  "build": {
71
- "openclawVersion": "2026.5.3"
71
+ "openclawVersion": "2026.5.4-beta.2"
72
72
  },
73
73
  "release": {
74
74
  "publishToClawHub": true,
@@ -1,2 +0,0 @@
1
- import { t as monitorDiscordProvider } from "./provider-Cy1aml6b.js";
2
- export { monitorDiscordProvider };