@openclaw/discord 2026.6.8 → 2026.6.9

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 (114) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/{api-BmXlcjYW.js → api-4GFMoWu0.js} +4 -1
  3. package/dist/api.js +15 -15
  4. package/dist/{approval-handler.runtime-B3gyUd-L.js → approval-handler.runtime-20qhf0uH.js} +3 -3
  5. package/dist/{audit-BlfewK04.js → audit-CCffO6o7.js} +3 -3
  6. package/dist/{channel-actions-BnPHwCZ_.js → channel-actions-DDT9kJXw.js} +12 -6
  7. package/dist/{channel-actions.runtime-DX5iW6ut.js → channel-actions.runtime-CfMUtfAv.js} +5 -5
  8. package/dist/{channel-b0hY1EJw.js → channel-fEBKaO2Q.js} +28 -20
  9. package/dist/channel-plugin-api.js +1 -1
  10. package/dist/{channel.setup-By5cfELZ.js → channel.setup-DRJiHe7I.js} +2 -3
  11. package/dist/{components-D-CYw0-b.js → components-CXEorOhu.js} +1 -1
  12. package/dist/{conversation-identity-CKzQAqFF.js → conversation-identity-BvlP-djn.js} +2 -2
  13. package/dist/{directory-config-Bu7FYOsl.js → directory-config-Bg8bulWB.js} +1 -1
  14. package/dist/directory-contract-api.js +1 -1
  15. package/dist/{directory-live-LjENjK6L.js → directory-live-BAJw6kS2.js} +2 -2
  16. package/dist/{handle-action.guild-admin-BS2qnhXF.js → handle-action.guild-admin-RxnJFLgU.js} +14 -9
  17. package/dist/index.js +1 -1
  18. package/dist/{manager.runtime-BU1vkOeO.js → manager.runtime-Bh5X0o8P.js} +12 -4
  19. package/dist/{message-handler-CQVkXHMN.js → message-handler-Dg3DRD0e.js} +6 -6
  20. package/dist/{message-handler.preflight-DAnLOeDA.js → message-handler.preflight-CcexCYuy.js} +10 -10
  21. package/dist/{message-handler.process-Dp5NQT05.js → message-handler.process-CN8bVDxj.js} +37 -45
  22. package/dist/{message-utils-Bx993JLN.js → message-utils-ConlUKCU.js} +1 -1
  23. package/dist/{outbound-adapter-CmN7ao1t.js → outbound-adapter-XuMiR77A.js} +6 -6
  24. package/dist/{pluralkit-SYmlmerw.js → pluralkit-o6s-EP9g.js} +4 -2
  25. package/dist/{probe-2MdGjUAf.js → probe-CxnDikWm.js} +5 -2
  26. package/dist/{probe.runtime-J927koKG.js → probe.runtime-DLFkSDVB.js} +1 -1
  27. package/dist/{provider-DrScDA1p.js → provider-4VG5CvC-.js} +98 -69
  28. package/dist/{provider-session.runtime-DXTzSYOJ.js → provider-session.runtime-ChdHgGCo.js} +3 -3
  29. package/dist/provider.runtime-B4QuZl_o.js +2 -0
  30. package/dist/{resolve-allowlist-common-B3p7cT8F.js → resolve-allowlist-common-BDpBb8dF.js} +1 -1
  31. package/dist/{resolve-channels-Rautpk8n.js → resolve-channels-DpM2v0Am.js} +3 -3
  32. package/dist/{resolve-users-Bw7vvtsi.js → resolve-users-Dl6np4pH.js} +3 -3
  33. package/dist/{runtime-C80YEJ7Z.js → runtime-CkdyyjTb.js} +24 -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-9pShEBWs.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-zGsXF-up.js → send-CIhsDMqs.js} +8 -5
  42. package/dist/{send.components-ktzrUTkt.js → send.components-DxoGyTkn.js} +4 -4
  43. package/dist/{send.outbound-C8oC51um.js → send.outbound-DaUyYuZa.js} +53 -10
  44. package/dist/{send.receipt-DsQWEQ2O.js → send.receipt-De_2iEWU.js} +2 -24
  45. package/dist/{send.shared-Dvo2ZCVG.js → send.shared-gtgBGDuV.js} +13 -5
  46. package/dist/session-binding-contract-api.js +1 -1
  47. package/dist/setup-plugin-api.js +1 -1
  48. package/dist/{subagent-hooks-kjrWDeDg.js → subagent-hooks-DPCipg2M.js} +2 -2
  49. package/dist/subagent-hooks-api.js +1 -1
  50. package/dist/{system-events-CvU3Aduf.js → system-events-4vmuyaBF.js} +1 -1
  51. package/dist/{target-resolver-DMPTzuo7.js → target-resolver-CVrOhQyC.js} +2 -2
  52. package/dist/targets-CRGgRKs7.js +3 -0
  53. package/dist/{thread-bindings-DO32M2kW.js → thread-bindings-D2SBj6F8.js} +4 -4
  54. package/dist/{thread-bindings.discord-api-304M1PMr.js → thread-bindings.discord-api-C7STOVXm.js} +4 -4
  55. package/dist/{thread-bindings.manager-C9YT7wF2.js → thread-bindings.manager-CN4MIGoJ.js} +3 -3
  56. package/dist/{transcripts-source-Chy2OrO_.js → transcripts-source-39NBdNeE.js} +1 -1
  57. package/dist/transcripts-source-api.js +1 -1
  58. package/dist/{typing-BaivbXIG.js → typing-CxIYS3vQ.js} +1 -1
  59. package/node_modules/undici/README.md +59 -18
  60. package/node_modules/undici/docs/docs/GettingStarted.md +278 -0
  61. package/node_modules/undici/docs/docs/api/Agent.md +3 -0
  62. package/node_modules/undici/docs/docs/api/BalancedPool.md +1 -1
  63. package/node_modules/undici/docs/docs/api/Client.md +44 -5
  64. package/node_modules/undici/docs/docs/api/Connector.md +1 -0
  65. package/node_modules/undici/docs/docs/api/Cookies.md +28 -1
  66. package/node_modules/undici/docs/docs/api/Dispatcher.md +22 -5
  67. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +6 -9
  68. package/node_modules/undici/docs/docs/api/Errors.md +12 -0
  69. package/node_modules/undici/docs/docs/api/EventSource.md +50 -3
  70. package/node_modules/undici/docs/docs/api/Fetch.md +5 -3
  71. package/node_modules/undici/docs/docs/api/H2CClient.md +3 -3
  72. package/node_modules/undici/docs/docs/api/MockAgent.md +1 -1
  73. package/node_modules/undici/docs/docs/api/MockCallHistory.md +1 -1
  74. package/node_modules/undici/docs/docs/api/Pool.md +4 -1
  75. package/node_modules/undici/docs/docs/api/RedirectHandler.md +4 -1
  76. package/node_modules/undici/docs/docs/api/RetryAgent.md +3 -3
  77. package/node_modules/undici/docs/docs/api/RetryHandler.md +6 -6
  78. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +1 -1
  79. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +3 -3
  80. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +1 -0
  81. package/node_modules/undici/docs/docs/api/api-lifecycle.md +4 -4
  82. package/node_modules/undici/lib/core/connect.js +29 -4
  83. package/node_modules/undici/lib/core/util.js +8 -6
  84. package/node_modules/undici/lib/dispatcher/client-h1.js +69 -2
  85. package/node_modules/undici/lib/dispatcher/client-h2.js +160 -37
  86. package/node_modules/undici/lib/dispatcher/client.js +36 -7
  87. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +1 -0
  88. package/node_modules/undici/lib/dispatcher/proxy-agent.js +2 -1
  89. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +4 -2
  90. package/node_modules/undici/lib/handler/redirect-handler.js +36 -11
  91. package/node_modules/undici/lib/interceptor/dns.js +4 -0
  92. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  93. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  94. package/node_modules/undici/lib/mock/snapshot-agent.js +9 -1
  95. package/node_modules/undici/lib/util/cache.js +8 -2
  96. package/node_modules/undici/lib/web/cookies/parse.js +17 -25
  97. package/node_modules/undici/lib/web/eventsource/eventsource.js +7 -18
  98. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  99. package/node_modules/undici/lib/web/fetch/body.js +43 -0
  100. package/node_modules/undici/lib/web/fetch/index.js +17 -3
  101. package/node_modules/undici/lib/web/fetch/request.js +33 -3
  102. package/node_modules/undici/lib/web/websocket/receiver.js +20 -3
  103. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -1
  104. package/node_modules/undici/lib/web/websocket/websocket.js +3 -1
  105. package/node_modules/undici/package.json +1 -1
  106. package/node_modules/undici/types/client.d.ts +5 -0
  107. package/node_modules/undici/types/connector.d.ts +1 -0
  108. package/node_modules/undici/types/fetch.d.ts +5 -1
  109. package/node_modules/undici/types/interceptors.d.ts +1 -1
  110. package/npm-shrinkwrap.json +7 -7
  111. package/package.json +5 -5
  112. package/dist/provider.runtime-nb-6cRoy.js +0 -2
  113. package/dist/runtime-api.monitor-D8KNDAd5.js +0 -6
  114. package/dist/targets-CKaNidbk.js +0 -3
@@ -1,6 +1,6 @@
1
- import { Wt as __exportAll } from "./send.receipt-DsQWEQ2O.js";
2
- import { n as fetchDiscord } from "./api-BmXlcjYW.js";
3
- import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-B3p7cT8F.js";
1
+ import { Wt as __exportAll } from "./send.receipt-De_2iEWU.js";
2
+ import { n as fetchDiscord } from "./api-4GFMoWu0.js";
3
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-BDpBb8dF.js";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  //#region extensions/discord/src/resolve-users.ts
6
6
  var resolve_users_exports = /* @__PURE__ */ __exportAll({ resolveDiscordUserAllowlist: () => resolveDiscordUserAllowlist });
@@ -1,13 +1,13 @@
1
- import { Ut as resolveDiscordChannelId } from "./send.receipt-DsQWEQ2O.js";
1
+ import { Ut as resolveDiscordChannelId } from "./send.receipt-De_2iEWU.js";
2
2
  import { a as mergeDiscordAccountConfig, o as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-P19jm1lf.js";
3
- import { d as readDiscordComponentSpec } from "./components-D-CYw0-b.js";
4
- import { _ as withNormalizedTimestamp, c as jsonResult, d as readNonNegativeIntegerParam, f as readPositiveIntegerParam, g as resolvePollMaxSelections, h as readStringParam, l as parseAvailableTags, m as readStringArrayParam, p as readReactionParams, r as sendDiscordComponentMessage, s as assertMediaNotDataUrl, u as readBooleanParam } from "./send.components-ktzrUTkt.js";
3
+ import { d as readDiscordComponentSpec } from "./components-CXEorOhu.js";
4
+ import { _ as withNormalizedTimestamp, c as jsonResult, d as readNonNegativeIntegerParam, f as readPositiveIntegerParam, g as resolvePollMaxSelections, h as readStringParam, l as parseAvailableTags, m as readStringArrayParam, p as readReactionParams, r as sendDiscordComponentMessage, s as assertMediaNotDataUrl, u as readBooleanParam } from "./send.components-DxoGyTkn.js";
5
5
  import { n as getGateway, o as getPresence } from "./gateway-registry-DPxmW0Db.js";
6
- import { E as canManageGuildRoleDiscord, L as createDiscordRuntimeAccountContext, M as hasAnyGuildPermissionDiscord, N as isThreadChannelType$1, O as fetchChannelPermissionsDiscord, T as canManageGuildMemberRoleDiscord, d as resolveDiscordTargetChannelId, j as hasAnyChannelPermissionDiscord } from "./send.shared-Dvo2ZCVG.js";
6
+ import { E as canManageGuildRoleDiscord, L as createDiscordRuntimeAccountContext, M as hasAnyGuildPermissionDiscord, N as isThreadChannelType$1, O as fetchChannelPermissionsDiscord, T as canManageGuildMemberRoleDiscord, d as resolveDiscordTargetChannelId, j as hasAnyChannelPermissionDiscord } from "./send.shared-gtgBGDuV.js";
7
7
  import { a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, n as isDiscordGroupAllowedByPolicy } from "./allow-list-C-MqM-B_.js";
8
- import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchGuildInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-zGsXF-up.js";
9
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-C8oC51um.js";
10
- import "./targets-CKaNidbk.js";
8
+ import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchGuildInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-CIhsDMqs.js";
9
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DaUyYuZa.js";
10
+ import "./targets-CRGgRKs7.js";
11
11
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
12
12
  import { ChannelType, PermissionFlagsBits } from "discord-api-types/v10";
13
13
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -639,14 +639,28 @@ async function handleDiscordMessageManagementAction(ctx) {
639
639
  }
640
640
  case "searchMessages": {
641
641
  if (!ctx.isActionEnabled("search")) throw new Error("Discord search is disabled.");
642
- const guildId = readStringParam(ctx.params, "guildId", { required: true });
643
- const content = readStringParam(ctx.params, "content", { required: true });
642
+ let guildId = readStringParam(ctx.params, "guildId");
643
+ const content = readStringParam(ctx.params, "content") ?? readStringParam(ctx.params, "query");
644
+ if (!content) throw new Error("Discord search requires content or query text.");
644
645
  const channelId = readStringParam(ctx.params, "channelId");
645
646
  const channelIds = readStringArrayParam(ctx.params, "channelIds");
647
+ if (!guildId) {
648
+ const rawInferChannelId = channelId ?? channelIds?.[0];
649
+ if (rawInferChannelId) try {
650
+ const inferChannelId = discordMessagingActionRuntime.resolveDiscordChannelId(rawInferChannelId);
651
+ const channelInfo = await discordMessagingActionRuntime.fetchChannelInfoDiscord(inferChannelId, ctx.withOpts());
652
+ if (channelInfo && typeof channelInfo === "object") {
653
+ const record = channelInfo;
654
+ const resolved = record.guild_id ?? record.guildId;
655
+ if (typeof resolved === "string" && resolved.trim()) guildId = resolved.trim();
656
+ }
657
+ } catch {}
658
+ }
659
+ if (!guildId) throw new Error("Discord search requires guildId. Provide guildId explicitly, or provide channelId so the guild can be resolved from the channel.");
646
660
  const authorId = readStringParam(ctx.params, "authorId");
647
661
  const authorIds = readStringArrayParam(ctx.params, "authorIds");
648
662
  const limit = readPositiveIntegerParam(ctx.params, "limit");
649
- const channelIdList = [...channelIds ?? [], ...channelId ? [channelId] : []];
663
+ const channelIdList = [...(channelIds ?? []).map((id) => discordMessagingActionRuntime.resolveDiscordChannelId(id)), ...channelId ? [discordMessagingActionRuntime.resolveDiscordChannelId(channelId)] : []];
650
664
  if (channelIdList.length > 0) for (const targetChannelId of channelIdList) await ctx.assertReadTargetAllowed({
651
665
  guildId,
652
666
  channelId: targetChannelId
@@ -1,3 +1,3 @@
1
- import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-C80YEJ7Z.js";
2
- import { t as discordMessageActions } from "./channel-actions-BnPHwCZ_.js";
1
+ import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-CkdyyjTb.js";
2
+ import { t as discordMessageActions } from "./channel-actions-DDT9kJXw.js";
3
3
  export { discordMessageActions, handleDiscordAction, isDiscordModerationAction, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, requiredGuildPermissionForModerationAction };
@@ -1,30 +1,30 @@
1
- import { x as resolveDiscordOutboundSessionRoute } from "./components-D-CYw0-b.js";
2
- import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-ktzrUTkt.js";
1
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-CXEorOhu.js";
2
+ import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-DxoGyTkn.js";
3
3
  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-DPxmW0Db.js";
4
- import { A as hasAllGuildPermissionsDiscord, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, k as fetchMemberGuildPermissionsDiscord, w as DiscordSendError } from "./send.shared-Dvo2ZCVG.js";
5
- import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-LjENjK6L.js";
4
+ import { A as hasAllGuildPermissionsDiscord, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, k as fetchMemberGuildPermissionsDiscord, w as DiscordSendError } from "./send.shared-gtgBGDuV.js";
5
+ import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-BAJw6kS2.js";
6
6
  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-C-MqM-B_.js";
7
- import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ 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 removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-zGsXF-up.js";
8
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-C8oC51um.js";
9
- import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-C80YEJ7Z.js";
7
+ import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ 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 removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-CIhsDMqs.js";
8
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DaUyYuZa.js";
9
+ import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-CkdyyjTb.js";
10
10
  import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
11
- import { t as discordMessageActions } from "./channel-actions-BnPHwCZ_.js";
11
+ import { t as discordMessageActions } from "./channel-actions-DDT9kJXw.js";
12
12
  import { C as resolveThreadBindingIdleTimeoutMs, E as resolveThreadBindingMaxAgeMs, T as resolveThreadBindingMaxAgeExpiresAt, d as isRecentlyUnboundThreadWebhookMessage, w as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-iSWjCYjB.js";
13
13
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-Chs3HgGa.js";
14
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-Rautpk8n.js";
15
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-Bw7vvtsi.js";
16
- import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-304M1PMr.js";
17
- 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-DO32M2kW.js";
18
- import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-C9YT7wF2.js";
19
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-2MdGjUAf.js";
20
14
  import { a as isAbortError, c as normalizeDiscordListenerTimeoutMs, 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, s as normalizeDiscordInboundWorkerTimeoutMs, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, u as runDiscordTaskWithTimeout } from "./timeouts-C5TBc_9x.js";
15
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-DpM2v0Am.js";
16
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Dl6np4pH.js";
17
+ import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-C7STOVXm.js";
18
+ 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-D2SBj6F8.js";
19
+ import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-CN4MIGoJ.js";
20
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CxnDikWm.js";
21
21
  import "./runtime-api.actions.js";
22
- import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-BlfewK04.js";
22
+ import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-CCffO6o7.js";
23
23
  import "./runtime-api.lookup.js";
24
- import { E as sanitizeDiscordThreadName, c as createDiscordGatewayPlugin, f as createDiscordNativeCommand, l as resolveDiscordGatewayIntents, t as monitorDiscordProvider, u as waitForDiscordGatewayPluginRegistration, w as resolveDiscordReplyTarget, x as registerDiscordListener } from "./provider-DrScDA1p.js";
25
- import { i as buildDiscordMediaPayload } from "./message-utils-Bx993JLN.js";
26
- import { t as createDiscordMessageHandler } from "./message-handler-CQVkXHMN.js";
27
- import "./runtime-api.monitor-D8KNDAd5.js";
24
+ import { E as sanitizeDiscordThreadName, c as createDiscordGatewayPlugin, f as createDiscordNativeCommand, l as resolveDiscordGatewayIntents, t as monitorDiscordProvider, u as waitForDiscordGatewayPluginRegistration, w as resolveDiscordReplyTarget, x as registerDiscordListener } from "./provider-4VG5CvC-.js";
25
+ import { i as buildDiscordMediaPayload } from "./message-utils-ConlUKCU.js";
26
+ import { t as createDiscordMessageHandler } from "./message-handler-Dg3DRD0e.js";
27
+ import "./runtime-api.monitor-9pShEBWs.js";
28
28
  import "./runtime-api.send.js";
29
29
  import "./runtime-api.threads.js";
30
30
  export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DiscordSendError, testing as __testing, testing, addRoleDiscord, allowListMatches, auditDiscordChannelPermissions, autoBindSpawnedDiscordSubagent, banMemberDiscord, buildDiscordMediaPayload, clearGateways, clearPresences, collectDiscordAuditChannelIds, createChannelDiscord, createDiscordGatewayPlugin, createDiscordMessageHandler, createDiscordNativeCommand, createNoopThreadBindingManager, createScheduledEventDiscord, createThreadBindingManager, createThreadDiscord, deleteChannelDiscord, deleteMessageDiscord, discordMessageActions, editChannelDiscord, editDiscordComponentMessage, editMessageDiscord, fetchChannelInfoDiscord, fetchChannelPermissionsDiscord, fetchDiscordApplicationId, fetchDiscordApplicationSummary, fetchMemberGuildPermissionsDiscord, fetchMemberInfoDiscord, fetchMessageDiscord, fetchReactionsDiscord, fetchRoleInfoDiscord, fetchVoiceStatusDiscord, formatThreadBindingDurationLabel, getGateway, getPresence, getThreadBindingManager, handleDiscordAction, hasAllGuildPermissionsDiscord, hasAnyGuildPermissionDiscord, isAbortError, isDiscordGroupAllowedByPolicy, isDiscordModerationAction, isRecentlyUnboundThreadWebhookMessage, kickMemberDiscord, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, listGuildChannelsDiscord, listGuildEmojisDiscord, listPinsDiscord, listScheduledEventsDiscord, listThreadBindingsBySessionKey, listThreadBindingsForAccount, listThreadsDiscord, mergeAbortSignals, monitorDiscordProvider, moveChannelDiscord, normalizeDiscordAllowList, normalizeDiscordInboundWorkerTimeoutMs, normalizeDiscordListenerTimeoutMs, normalizeDiscordSlug, parseApplicationIdFromToken, pinMessageDiscord, presenceCacheSize, probeDiscord, reactMessageDiscord, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, readMessagesDiscord, reconcileAcpThreadBindingsOnStartup, registerBuiltDiscordComponentMessage, registerDiscordListener, registerGateway, removeChannelPermissionDiscord, removeOwnReactionsDiscord, removeReactionDiscord, removeRoleDiscord, requiredGuildPermissionForModerationAction, resolveDiscordChannelAllowlist, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordOutboundSessionRoute, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveDiscordThreadBindingIdleTimeoutMs, resolveDiscordThreadBindingMaxAgeMs, resolveDiscordUserAllowlist, resolveEventCoverImage, resolveGroupDmAllow, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingInactivityExpiresAt, resolveThreadBindingIntroText, resolveThreadBindingMaxAgeExpiresAt, resolveThreadBindingMaxAgeMs, resolveThreadBindingPersona, resolveThreadBindingPersonaFromRecord, resolveThreadBindingThreadName, resolveThreadBindingsEnabled, runDiscordTaskWithTimeout, sanitizeDiscordThreadName, searchMessagesDiscord, sendDiscordComponentMessage, sendMessageDiscord, sendPollDiscord, sendStickerDiscord, sendTypingDiscord, sendVoiceMessageDiscord, sendWebhookMessageDiscord, setChannelPermissionDiscord, setDiscordRuntime, setPresence, setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey, shouldEmitDiscordReactionNotification, timeoutMemberDiscord, unbindThreadBindingsBySessionKey, unpinMessageDiscord, unregisterGateway, uploadEmojiDiscord, uploadStickerDiscord, waitForDiscordGatewayPluginRegistration };
@@ -1,7 +1,7 @@
1
- import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-LjENjK6L.js";
1
+ import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-BAJw6kS2.js";
2
2
  import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
3
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-Rautpk8n.js";
4
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-Bw7vvtsi.js";
5
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-2MdGjUAf.js";
6
- import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-BlfewK04.js";
3
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-DpM2v0Am.js";
4
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Dl6np4pH.js";
5
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CxnDikWm.js";
6
+ import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-CCffO6o7.js";
7
7
  export { auditDiscordChannelPermissions, collectDiscordAuditChannelIds, fetchDiscordApplicationId, fetchDiscordApplicationSummary, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, parseApplicationIdFromToken, probeDiscord, resolveDiscordChannelAllowlist, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordUserAllowlist, setDiscordRuntime };
@@ -0,0 +1,6 @@
1
+ import "./allow-list-C-MqM-B_.js";
2
+ import "./timeouts-C5TBc_9x.js";
3
+ import "./provider-4VG5CvC-.js";
4
+ import "./message-utils-ConlUKCU.js";
5
+ import "./message-handler-Dg3DRD0e.js";
6
+ export {};
@@ -1,8 +1,8 @@
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-DPxmW0Db.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-C-MqM-B_.js";
3
3
  import { a as isAbortError, c as normalizeDiscordListenerTimeoutMs, 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, s as normalizeDiscordInboundWorkerTimeoutMs, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, u as runDiscordTaskWithTimeout } from "./timeouts-C5TBc_9x.js";
4
- import { E as sanitizeDiscordThreadName, c as createDiscordGatewayPlugin, f as createDiscordNativeCommand, l as resolveDiscordGatewayIntents, t as monitorDiscordProvider, u as waitForDiscordGatewayPluginRegistration, w as resolveDiscordReplyTarget, x as registerDiscordListener } from "./provider-DrScDA1p.js";
5
- import { i as buildDiscordMediaPayload } from "./message-utils-Bx993JLN.js";
6
- import { t as createDiscordMessageHandler } from "./message-handler-CQVkXHMN.js";
7
- import "./runtime-api.monitor-D8KNDAd5.js";
4
+ import { E as sanitizeDiscordThreadName, c as createDiscordGatewayPlugin, f as createDiscordNativeCommand, l as resolveDiscordGatewayIntents, t as monitorDiscordProvider, u as waitForDiscordGatewayPluginRegistration, w as resolveDiscordReplyTarget, x as registerDiscordListener } from "./provider-4VG5CvC-.js";
5
+ import { i as buildDiscordMediaPayload } from "./message-utils-ConlUKCU.js";
6
+ import { t as createDiscordMessageHandler } from "./message-handler-Dg3DRD0e.js";
7
+ import "./runtime-api.monitor-9pShEBWs.js";
8
8
  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, isAbortError, isDiscordGroupAllowedByPolicy, mergeAbortSignals, monitorDiscordProvider, normalizeDiscordAllowList, normalizeDiscordInboundWorkerTimeoutMs, normalizeDiscordListenerTimeoutMs, normalizeDiscordSlug, presenceCacheSize, registerDiscordListener, registerGateway, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveGroupDmAllow, runDiscordTaskWithTimeout, sanitizeDiscordThreadName, setPresence, shouldEmitDiscordReactionNotification, unregisterGateway, waitForDiscordGatewayPluginRegistration };
@@ -1,6 +1,6 @@
1
- import { x as resolveDiscordOutboundSessionRoute } from "./components-D-CYw0-b.js";
2
- import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-ktzrUTkt.js";
3
- import { A as hasAllGuildPermissionsDiscord, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, k as fetchMemberGuildPermissionsDiscord, w as DiscordSendError } from "./send.shared-Dvo2ZCVG.js";
4
- import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ 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 removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-zGsXF-up.js";
5
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-C8oC51um.js";
1
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-CXEorOhu.js";
2
+ import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-DxoGyTkn.js";
3
+ import { A as hasAllGuildPermissionsDiscord, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, k as fetchMemberGuildPermissionsDiscord, w as DiscordSendError } from "./send.shared-gtgBGDuV.js";
4
+ import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ 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 removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-CIhsDMqs.js";
5
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DaUyYuZa.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 resolveThreadBindingIdleTimeoutMs, E as resolveThreadBindingMaxAgeMs, T as resolveThreadBindingMaxAgeExpiresAt, d as isRecentlyUnboundThreadWebhookMessage, w as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-iSWjCYjB.js";
2
2
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-Chs3HgGa.js";
3
- import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-304M1PMr.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-DO32M2kW.js";
5
- import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-C9YT7wF2.js";
3
+ import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-C7STOVXm.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-D2SBj6F8.js";
5
+ import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-CN4MIGoJ.js";
6
6
  export { testing as __testing, 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,7 +1,7 @@
1
- import { At as getGuildMember, Bt as removeGuildMemberRole, C as readDiscordCode, Ct as createGuildBan, Dt as createGuildSticker, Et as createGuildScheduledEvent, Ft as listGuildRoles, It as listGuildScheduledEvents, Lt as moveGuildChannels, Mt as listGuildActiveThreads, Nt as listGuildChannels, Ot as deleteChannelPermission, Pt as listGuildEmojis, Rt as putChannelPermission, S as RateLimitError, St as addGuildMemberRole, T as readRetryAfter, Tt as createGuildEmoji, Vt as timeoutGuildMember, Wt as __exportAll, _t as listChannelPins, at as deleteOwnMessageReaction, bt as sendChannelTyping, ct as createThread, dt as editChannel, ft as editChannelMessage, gt as listChannelMessages, ht as listChannelArchivedThreads, it as createOwnMessageReaction, jt as getGuildVoiceState, kt as getGuild, lt as deleteChannel, mt as getChannelMessage, n as createDiscordSendResult, ot as listMessageReactionUsers, pt as getChannel, st as createChannelMessage, ut as deleteChannelMessage, vt as pinChannelMessage, w as readDiscordMessage, wt as createGuildChannel, x as DiscordError, xt as unpinChannelMessage, yt as searchGuildMessages, zt as removeGuildMember } from "./send.receipt-DsQWEQ2O.js";
1
+ import { At as getGuildMember, Bt as removeGuildMemberRole, C as readDiscordCode, Ct as createGuildBan, Dt as createGuildSticker, Et as createGuildScheduledEvent, Ft as listGuildRoles, It as listGuildScheduledEvents, Lt as moveGuildChannels, Mt as listGuildActiveThreads, Nt as listGuildChannels, Ot as deleteChannelPermission, Pt as listGuildEmojis, Rt as putChannelPermission, S as RateLimitError, St as addGuildMemberRole, T as readRetryAfter, Tt as createGuildEmoji, Vt as timeoutGuildMember, Wt as __exportAll, _t as listChannelPins, at as deleteOwnMessageReaction, bt as sendChannelTyping, ct as createThread, dt as editChannel, ft as editChannelMessage, gt as listChannelMessages, ht as listChannelArchivedThreads, it as createOwnMessageReaction, jt as getGuildVoiceState, kt as getGuild, lt as deleteChannel, mt as getChannelMessage, n as createDiscordSendResult, ot as listMessageReactionUsers, pt as getChannel, st as createChannelMessage, ut as deleteChannelMessage, vt as pinChannelMessage, w as readDiscordMessage, wt as createGuildChannel, x as DiscordError, xt as unpinChannelMessage, yt as searchGuildMessages, zt as removeGuildMember } from "./send.receipt-De_2iEWU.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { A as hasAllGuildPermissionsDiscord, C as DISCORD_MAX_STICKER_BYTES, D as canViewDiscordGuildChannel, E as canManageGuildRoleDiscord, F as createDiscordClient, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, P as parseAndResolveChannelRecipient, R as resolveDiscordClientAccountContext, S as DISCORD_MAX_EVENT_COVER_BYTES, T as canManageGuildMemberRoleDiscord, i as formatReactionEmoji, j as hasAnyChannelPermissionDiscord, k as fetchMemberGuildPermissionsDiscord, l as resolveChannelId, o as normalizeEmojiName, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, w as DiscordSendError, x as DISCORD_MAX_EMOJI_BYTES, z as resolveDiscordRest } from "./send.shared-Dvo2ZCVG.js";
4
- import { n as sendPollDiscord, r as sendStickerDiscord, s as rewriteDiscordKnownMentions, t as sendMessageDiscord } from "./send.outbound-C8oC51um.js";
3
+ import { A as hasAllGuildPermissionsDiscord, C as DISCORD_MAX_STICKER_BYTES, D as canViewDiscordGuildChannel, E as canManageGuildRoleDiscord, F as createDiscordClient, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, P as parseAndResolveChannelRecipient, R as resolveDiscordClientAccountContext, S as DISCORD_MAX_EVENT_COVER_BYTES, T as canManageGuildMemberRoleDiscord, i as formatReactionEmoji, j as hasAnyChannelPermissionDiscord, k as fetchMemberGuildPermissionsDiscord, l as resolveChannelId, o as normalizeEmojiName, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, w as DiscordSendError, x as DISCORD_MAX_EMOJI_BYTES, z as resolveDiscordRest } from "./send.shared-gtgBGDuV.js";
4
+ import { n as sendPollDiscord, r as sendStickerDiscord, s as rewriteDiscordKnownMentions, t as sendMessageDiscord } from "./send.outbound-DaUyYuZa.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { ChannelType } from "discord-api-types/v10";
7
7
  import { parseStrictFiniteNumber, resolveExpiresAtMsFromDurationMs, timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
@@ -12,6 +12,7 @@ import { MEDIA_FFMPEG_MAX_AUDIO_DURATION_SECS, extensionForMime, maxBytesForKind
12
12
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
13
13
  import { loadWebMediaRaw } from "openclaw/plugin-sdk/web-media";
14
14
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
15
+ import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
15
16
  import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
16
17
  import fs from "node:fs/promises";
17
18
  import { resolvePreferredOpenClawTmpDir, tempWorkspace } from "openclaw/plugin-sdk/temp-path";
@@ -294,6 +295,7 @@ async function searchMessagesDiscord(query, opts) {
294
295
  }
295
296
  //#endregion
296
297
  //#region extensions/discord/src/send.webhook.ts
298
+ const DISCORD_WEBHOOK_ERROR_BODY_LIMIT_BYTES = 8 * 1024;
297
299
  function resolveWebhookExecutionUrl(params) {
298
300
  const baseUrl = new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(params.webhookId)}/${encodeURIComponent(params.webhookToken)}`);
299
301
  baseUrl.searchParams.set("wait", params.wait === false ? "false" : "true");
@@ -309,7 +311,7 @@ function coerceWebhookErrorBody(raw) {
309
311
  }
310
312
  }
311
313
  async function throwWebhookResponseError(response) {
312
- const parsed = coerceWebhookErrorBody(await response.text().catch(() => ""));
314
+ const parsed = coerceWebhookErrorBody(await readResponseTextLimited(response, DISCORD_WEBHOOK_ERROR_BODY_LIMIT_BYTES).catch(() => ""));
313
315
  if (response.status === 429) throw new RateLimitError(response, {
314
316
  message: readDiscordMessage(parsed, "Rate limited"),
315
317
  retry_after: readRetryAfter(parsed, response, 1),
@@ -383,6 +385,7 @@ async function sendWebhookMessageDiscord(text, opts) {
383
385
  const DISCORD_VOICE_MESSAGE_FLAG = 8192;
384
386
  const WAVEFORM_SAMPLES = 256;
385
387
  const DISCORD_OPUS_SAMPLE_RATE_HZ = 48e3;
388
+ const DISCORD_VOICE_ERROR_BODY_LIMIT_BYTES = 8 * 1024;
386
389
  const DISCORD_VOICE_UPLOAD_SSRF_POLICY = {
387
390
  allowRfc2544BenchmarkRange: true,
388
391
  allowIpv6UniqueLocalRange: true
@@ -566,7 +569,7 @@ function coerceDiscordErrorBody(raw) {
566
569
  }
567
570
  }
568
571
  async function createVoiceRequestError(response, fallbackMessage) {
569
- const parsed = coerceDiscordErrorBody(await response.text().catch(() => ""));
572
+ const parsed = coerceDiscordErrorBody(await readResponseTextLimited(response, DISCORD_VOICE_ERROR_BODY_LIMIT_BYTES).catch(() => ""));
570
573
  if (response.status === 429) throw createRateLimitError(response, {
571
574
  message: readDiscordMessage(parsed, "You are being rate limited."),
572
575
  retry_after: readRetryAfter(parsed, response, 1),
@@ -1,10 +1,10 @@
1
- import { Wt as __exportAll, ft as editChannelMessage, j as serializePayload, n as createDiscordSendResult, st as createChannelMessage } from "./send.receipt-DsQWEQ2O.js";
1
+ import { Wt as __exportAll, ft as editChannelMessage, j as serializePayload, n as createDiscordSendResult, st as createChannelMessage } from "./send.receipt-De_2iEWU.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
3
  import "./config-api-JiPdJeb0.js";
4
4
  import "./channel-api-CAJ0wMoV.js";
5
- import { c as buildDiscordComponentMessage, f as resolveDiscordComponentAttachmentName, l as buildDiscordComponentMessageFlags } from "./components-D-CYw0-b.js";
6
- import { F as createDiscordClient, P as parseAndResolveChannelRecipient, b as stripUndefinedFields, h as SUPPRESS_NOTIFICATIONS_FLAG, l as resolveChannelId, m as toDiscordFileBlob, t as buildDiscordSendError, u as resolveDiscordChannelType } from "./send.shared-Dvo2ZCVG.js";
7
- import { t as sendMessageDiscord } from "./send.outbound-C8oC51um.js";
5
+ import { c as buildDiscordComponentMessage, f as resolveDiscordComponentAttachmentName, l as buildDiscordComponentMessageFlags } from "./components-CXEorOhu.js";
6
+ import { F as createDiscordClient, P as parseAndResolveChannelRecipient, b as stripUndefinedFields, h as SUPPRESS_NOTIFICATIONS_FLAG, l as resolveChannelId, m as toDiscordFileBlob, t as buildDiscordSendError, u as resolveDiscordChannelType } from "./send.shared-gtgBGDuV.js";
7
+ import { t as sendMessageDiscord } from "./send.outbound-DaUyYuZa.js";
8
8
  import { n as getOptionalDiscordRuntime } from "./runtime-DgnVQ7zW.js";
9
9
  import "openclaw/plugin-sdk/account-id";
10
10
  import "openclaw/plugin-sdk/secret-input";
@@ -1,7 +1,7 @@
1
- import { ct as createThread, n as createDiscordSendResult, st as createChannelMessage } from "./send.receipt-DsQWEQ2O.js";
1
+ import { ct as createThread, n as createDiscordSendResult, st as createChannelMessage } from "./send.receipt-De_2iEWU.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { F as createDiscordClient, P as parseAndResolveChannelRecipient, _ as resolveDiscordMessageFlags, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, g as buildDiscordMessageRequest, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannelType, v as resolveDiscordSendComponents, y as resolveDiscordSendEmbeds } from "./send.shared-Dvo2ZCVG.js";
4
- import { a as resolveDiscordDirectoryUserId } from "./directory-live-LjENjK6L.js";
3
+ import { F as createDiscordClient, P as parseAndResolveChannelRecipient, _ as resolveDiscordMessageFlags, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, g as buildDiscordMessageRequest, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannelType, v as resolveDiscordSendComponents, y as resolveDiscordSendEmbeds } from "./send.shared-gtgBGDuV.js";
4
+ import { a as resolveDiscordDirectoryUserId } from "./directory-live-BAJw6kS2.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { ChannelType } from "discord-api-types/v10";
7
7
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
@@ -10,7 +10,6 @@ import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runt
10
10
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
11
11
  import { convertMarkdownTables } from "openclaw/plugin-sdk/text-chunking";
12
12
  //#region extensions/discord/src/mentions.ts
13
- const MARKDOWN_CODE_SEGMENT_PATTERN = /```[\s\S]*?```|`[^`\n]*`/g;
14
13
  const MENTION_CANDIDATE_PATTERN = /(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi;
15
14
  const DISCORD_RESERVED_MENTIONS = new Set(["everyone", "here"]);
16
15
  const DISCORD_DISCRIMINATOR_SUFFIX = /#\d{4}$/;
@@ -81,16 +80,60 @@ function rewritePlainTextMentions(text, params) {
81
80
  return `${String(prefix ?? "")}${formatMention({ userId })}`;
82
81
  });
83
82
  }
83
+ function countBacktickRun(text, index) {
84
+ let cursor = index;
85
+ while (text[cursor] === "`") cursor += 1;
86
+ return cursor - index;
87
+ }
88
+ function findSameLineBacktickRun(text, startIndex, runLength) {
89
+ const delimiter = "`".repeat(runLength);
90
+ const newlineIndex = text.indexOf("\n", startIndex);
91
+ const lineEnd = newlineIndex === -1 ? text.length : newlineIndex;
92
+ const closeIndex = text.indexOf(delimiter, startIndex);
93
+ return closeIndex !== -1 && closeIndex < lineEnd ? closeIndex + runLength : null;
94
+ }
95
+ function findFenceEnd(text, startIndex, runLength) {
96
+ let searchIndex = startIndex + runLength;
97
+ while (searchIndex < text.length) {
98
+ const newlineIndex = text.indexOf("\n", searchIndex);
99
+ if (newlineIndex === -1) return text.length;
100
+ let lineCursor = newlineIndex + 1;
101
+ while (text[lineCursor] === " " && lineCursor - newlineIndex <= 3) lineCursor += 1;
102
+ const closingRunLength = countBacktickRun(text, lineCursor);
103
+ if (closingRunLength >= runLength) return lineCursor + closingRunLength;
104
+ searchIndex = lineCursor + Math.max(closingRunLength, 1);
105
+ }
106
+ return text.length;
107
+ }
108
+ function findNextMarkdownCodeSegment(text, startIndex) {
109
+ let searchIndex = startIndex;
110
+ while (searchIndex < text.length) {
111
+ const segmentStart = text.indexOf("`", searchIndex);
112
+ if (segmentStart === -1) return null;
113
+ const runLength = countBacktickRun(text, segmentStart);
114
+ const inlineEndIndex = findSameLineBacktickRun(text, segmentStart + runLength, runLength);
115
+ if (inlineEndIndex !== null) return {
116
+ startIndex: segmentStart,
117
+ endIndex: inlineEndIndex
118
+ };
119
+ if (runLength >= 3) return {
120
+ startIndex: segmentStart,
121
+ endIndex: findFenceEnd(text, segmentStart, runLength)
122
+ };
123
+ searchIndex = segmentStart + runLength;
124
+ }
125
+ return null;
126
+ }
84
127
  function rewriteDiscordKnownMentions(text, params) {
85
128
  if (!text.includes("@")) return text;
86
129
  let rewritten = "";
87
130
  let offset = 0;
88
- MARKDOWN_CODE_SEGMENT_PATTERN.lastIndex = 0;
89
- for (const match of text.matchAll(MARKDOWN_CODE_SEGMENT_PATTERN)) {
90
- const matchIndex = match.index ?? 0;
91
- rewritten += rewritePlainTextMentions(text.slice(offset, matchIndex), params);
92
- rewritten += match[0];
93
- offset = matchIndex + match[0].length;
131
+ let segment = findNextMarkdownCodeSegment(text, offset);
132
+ while (segment) {
133
+ rewritten += rewritePlainTextMentions(text.slice(offset, segment.startIndex), params);
134
+ rewritten += text.slice(segment.startIndex, segment.endIndex);
135
+ offset = segment.endIndex;
136
+ segment = findNextMarkdownCodeSegment(text, offset);
94
137
  }
95
138
  rewritten += rewritePlainTextMentions(text.slice(offset), params);
96
139
  return rewritten;
@@ -679,12 +679,6 @@ var Row = class extends BaseComponent {
679
679
  addComponent(component) {
680
680
  this.components.push(component);
681
681
  }
682
- removeComponent(component) {
683
- this.components = this.components.filter((entry) => entry !== component);
684
- }
685
- removeAllComponents() {
686
- this.components = [];
687
- }
688
682
  serialize() {
689
683
  return {
690
684
  type: this.type,
@@ -1441,9 +1435,6 @@ var Command = class extends BaseCommand {
1441
1435
  async autocomplete(interaction) {
1442
1436
  throw new Error(`The ${interaction.rawData?.data?.name ?? this.name} command does not support autocomplete`);
1443
1437
  }
1444
- async preCheck(interaction) {
1445
- return Boolean(interaction) || true;
1446
- }
1447
1438
  serializeOptions() {
1448
1439
  return this.options?.map((option) => {
1449
1440
  if (typeof option.autocomplete === "function") {
@@ -1720,9 +1711,6 @@ var BaseInteraction = class {
1720
1711
  this.response.recordReplyEdit();
1721
1712
  return result;
1722
1713
  }
1723
- async deleteReply() {
1724
- return await deleteWebhookMessage(this.client.rest, this.client.options.clientId, this.token, "@original");
1725
- }
1726
1714
  async fetchReply() {
1727
1715
  return await getWebhookMessage(this.client.rest, this.client.options.clientId, this.token, "@original");
1728
1716
  }
@@ -1764,11 +1752,6 @@ var BaseComponentInteraction = class extends BaseInteraction {
1764
1752
  async showModal(modal) {
1765
1753
  return await this.callback(InteractionResponseType.Modal, modal.serialize());
1766
1754
  }
1767
- async editAndWaitForComponent(payload, message = this.message, timeoutMs = 3e5) {
1768
- if (!message) return null;
1769
- const editedMessage = await message.edit(payload);
1770
- return await this.client.componentHandler.waitForMessageComponent(editedMessage, timeoutMs);
1771
- }
1772
1755
  };
1773
1756
  var ButtonInteraction = class extends BaseComponentInteraction {};
1774
1757
  var StringSelectMenuInteraction = class extends BaseComponentInteraction {};
@@ -2515,13 +2498,14 @@ var RequestClient = class {
2515
2498
  const controller = new AbortController();
2516
2499
  const timeout = setTimeout(() => controller.abort(), this.options.timeout ?? 15e3);
2517
2500
  timeout.unref?.();
2501
+ const signal = this.options.signal ? AbortSignal.any([this.options.signal, controller.signal]) : controller.signal;
2518
2502
  this.requestControllers.add(controller);
2519
2503
  try {
2520
2504
  const response = await (this.customFetch ?? fetch)(url, {
2521
2505
  method,
2522
2506
  headers,
2523
2507
  body: await normalizeFetchBody(body, headers),
2524
- signal: controller.signal
2508
+ signal
2525
2509
  });
2526
2510
  const parsed = coerceResponseBody(await response.text());
2527
2511
  this.scheduler.recordResponse(routeKey, path, response, parsed);
@@ -2755,15 +2739,9 @@ var Client = class {
2755
2739
  async fetchMember(guildId, userId) {
2756
2740
  return await this.entityCache.fetchMember(guildId, userId);
2757
2741
  }
2758
- async getDiscordCommands() {
2759
- return await this.commandDeployer.getCommands();
2760
- }
2761
2742
  async deployCommands(options = {}) {
2762
2743
  return await this.commandDeployer.deploy(options);
2763
2744
  }
2764
- async reconcileCommands() {
2765
- return await this.deployCommands({ mode: "reconcile" });
2766
- }
2767
2745
  async handleInteraction(rawData, _ctx) {
2768
2746
  await dispatchInteraction(this, rawData);
2769
2747
  }
@@ -1,6 +1,6 @@
1
- import { At as getGuildMember, M as Embed, S as RateLimitError, b as RequestClient, j as serializePayload, kt as getGuild, nt as createUserDmChannel, pt as getChannel, rt as getCurrentUser, s as chunkDiscordTextWithMode, st as createChannelMessage } from "./send.receipt-DsQWEQ2O.js";
1
+ import { At as getGuildMember, M as Embed, S as RateLimitError, b as RequestClient, j as serializePayload, kt as getGuild, nt as createUserDmChannel, pt as getChannel, rt as getCurrentUser, s as chunkDiscordTextWithMode, st as createChannelMessage } from "./send.receipt-De_2iEWU.js";
2
2
  import { a as mergeDiscordAccountConfig, p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { t as parseAndResolveDiscordTarget } from "./target-resolver-DMPTzuo7.js";
3
+ import { t as parseAndResolveDiscordTarget } from "./target-resolver-CVrOhQyC.js";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
6
6
  import { ChannelType, MessageFlags, PermissionFlagsBits } from "discord-api-types/v10";
@@ -150,10 +150,14 @@ function resolveToken(params) {
150
150
  }
151
151
  return fallback;
152
152
  }
153
- function resolveRest(token, account, cfg, rest, proxyFetch) {
153
+ function resolveRest(token, account, cfg, rest, proxyFetch, signal, timeoutMs) {
154
154
  if (rest) return rest;
155
155
  const resolvedProxyFetch = proxyFetch ?? resolveDiscordProxyFetchForAccount(account, cfg);
156
- return createDiscordRequestClient(token, resolvedProxyFetch ? { fetch: resolvedProxyFetch } : void 0);
156
+ return createDiscordRequestClient(token, {
157
+ ...resolvedProxyFetch ? { fetch: resolvedProxyFetch } : {},
158
+ ...signal ? { signal } : {},
159
+ ...timeoutMs !== void 0 ? { timeout: timeoutMs } : {}
160
+ });
157
161
  }
158
162
  function resolveAccountWithoutToken(params) {
159
163
  const accountId = normalizeAccountId(params.accountId);
@@ -185,7 +189,7 @@ function createDiscordRestClient(opts) {
185
189
  });
186
190
  return {
187
191
  token,
188
- rest: resolveRest(token, account, resolvedCfg, opts.rest, proxyContext.proxyFetch),
192
+ rest: resolveRest(token, account, resolvedCfg, opts.rest, proxyContext.proxyFetch, opts.signal, opts.timeoutMs),
189
193
  account
190
194
  };
191
195
  }
@@ -423,8 +427,10 @@ async function hasAllGuildPermissionsDiscord(guildId, userId, requiredPermission
423
427
  return await hasGuildPermissionsDiscord(guildId, userId, requiredPermissions, (permissions, required) => required.every((permission) => hasPermissionBit(permissions, permission)), opts);
424
428
  }
425
429
  async function fetchChannelPermissionsDiscord(channelId, opts) {
430
+ opts.signal?.throwIfAborted();
426
431
  const rest = resolveDiscordRest(opts);
427
432
  const channel = await getChannel(rest, channelId);
433
+ opts.signal?.throwIfAborted();
428
434
  const channelType = "type" in channel ? channel.type : void 0;
429
435
  const guildId = "guild_id" in channel ? channel.guild_id : void 0;
430
436
  if (!guildId) return {
@@ -435,7 +441,9 @@ async function fetchChannelPermissionsDiscord(channelId, opts) {
435
441
  channelType
436
442
  };
437
443
  const botId = await fetchBotUserId(rest);
444
+ opts.signal?.throwIfAborted();
438
445
  const [guild, member] = await Promise.all([getGuild(rest, guildId), getGuildMember(rest, guildId, botId)]);
446
+ opts.signal?.throwIfAborted();
439
447
  const permissions = resolveMemberChannelPermissionBits({
440
448
  guildId,
441
449
  userId: botId,
@@ -1,2 +1,2 @@
1
- import { i as testing, n as createThreadBindingManager } from "./thread-bindings.manager-C9YT7wF2.js";
1
+ import { i as testing, n as createThreadBindingManager } from "./thread-bindings.manager-CN4MIGoJ.js";
2
2
  export { createThreadBindingManager, testing as discordThreadBindingTesting };
@@ -1,2 +1,2 @@
1
- import { t as discordSetupPlugin } from "./channel.setup-By5cfELZ.js";
1
+ import { t as discordSetupPlugin } from "./channel.setup-DRJiHe7I.js";
2
2
  export { discordSetupPlugin };
@@ -1,6 +1,6 @@
1
- import { Wt as __exportAll } from "./send.receipt-DsQWEQ2O.js";
1
+ import { Wt as __exportAll } from "./send.receipt-De_2iEWU.js";
2
2
  import { s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-DO32M2kW.js";
3
+ import { n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-D2SBj6F8.js";
4
4
  import { normalizeOptionalLowercaseString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-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-kjrWDeDg.js").then((n) => n.i);
4
+ discordSubagentHooksPromise ??= import("./subagent-hooks-DPCipg2M.js").then((n) => n.i);
5
5
  return discordSubagentHooksPromise;
6
6
  }
7
7
  function registerDiscordSubagentHooks(api) {
@@ -1,4 +1,4 @@
1
- import { c as discord_exports } from "./send.receipt-DsQWEQ2O.js";
1
+ import { c as discord_exports } from "./send.receipt-De_2iEWU.js";
2
2
  import { b as formatDiscordUserTag } from "./allow-list-C-MqM-B_.js";
3
3
  //#region extensions/discord/src/monitor/system-events.ts
4
4
  function resolveDiscordSystemEvent(message, location) {
@@ -1,6 +1,6 @@
1
- import { Ht as parseDiscordTarget, Wt as __exportAll, r as allowFromContainsDiscordUserId } from "./send.receipt-DsQWEQ2O.js";
1
+ import { Ht as parseDiscordTarget, Wt as __exportAll, r as allowFromContainsDiscordUserId } from "./send.receipt-De_2iEWU.js";
2
2
  import { c as resolveDiscordAccountAllowFrom, s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { i as rememberDiscordDirectoryUser, r as listDiscordDirectoryPeersLive } from "./directory-live-LjENjK6L.js";
3
+ import { i as rememberDiscordDirectoryUser, r as listDiscordDirectoryPeersLive } from "./directory-live-BAJw6kS2.js";
4
4
  import { buildMessagingTarget } from "openclaw/plugin-sdk/channel-targets";
5
5
  //#region extensions/discord/src/send-target-parsing.ts
6
6
  const parseDiscordSendTarget = (raw, options = {}) => parseDiscordTarget(raw, options);
@@ -0,0 +1,3 @@
1
+ import "./send.receipt-De_2iEWU.js";
2
+ import "./target-resolver-CVrOhQyC.js";
3
+ export {};
@@ -1,9 +1,9 @@
1
- import { Ht as parseDiscordTarget, Wt as __exportAll } from "./send.receipt-DsQWEQ2O.js";
2
- import "./targets-CKaNidbk.js";
1
+ import { Ht as parseDiscordTarget, Wt as __exportAll } from "./send.receipt-De_2iEWU.js";
2
+ import "./targets-CRGgRKs7.js";
3
3
  import { A as shouldPersistBindingMutations, C as resolveThreadBindingIdleTimeoutMs$1, D as saveBindingsToDisk, E as resolveThreadBindingMaxAgeMs$1, T as resolveThreadBindingMaxAgeExpiresAt, d as isRecentlyUnboundThreadWebhookMessage, g as rememberRecentUnboundWebhookEcho, h as normalizeThreadId, n as MANAGERS_BY_ACCOUNT_ID, t as BINDINGS_BY_THREAD_ID, u as getThreadBindingToken, w as resolveThreadBindingInactivityExpiresAt, y as removeBindingRecord } from "./thread-bindings.state-iSWjCYjB.js";
4
4
  import { n as setThreadBindingMaxAgeBySessionKey, r as resolveBindingIdsForTargetSession, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-Chs3HgGa.js";
5
- import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, s as resolveChannelIdForBinding, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-304M1PMr.js";
6
- import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-C9YT7wF2.js";
5
+ import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, s as resolveChannelIdForBinding, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-C7STOVXm.js";
6
+ import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-CN4MIGoJ.js";
7
7
  import { normalizeOptionalLowercaseString, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
9
9
  import { resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled } from "openclaw/plugin-sdk/conversation-runtime";