@openclaw/discord 2026.5.27 → 2026.5.28-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 (104) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/{api-Kq7vtaSO.js → api-ChQJ1kfZ.js} +2 -5
  3. package/dist/api.js +14 -14
  4. package/dist/{approval-handler.runtime-BDxD97LJ.js → approval-handler.runtime-CIZiiFBd.js} +5 -18
  5. package/dist/{audit-BdUjE2tr.js → audit-D6BXQsYY.js} +3 -3
  6. package/dist/{channel-9YoMy5Jf.js → channel--B_psO5e.js} +16 -16
  7. package/dist/{channel-actions-DZfkB0nd.js → channel-actions-BOH34yJ5.js} +2 -2
  8. package/dist/{channel-actions.runtime-suaDJHH0.js → channel-actions.runtime-B1RCm1JP.js} +10 -13
  9. package/dist/channel-config-api.js +1 -1
  10. package/dist/channel-plugin-api.js +1 -1
  11. package/dist/{channel.setup-B-kHacpx.js → channel.setup-COYdCbY_.js} +3 -3
  12. package/dist/{components-Dlc81IU5.js → components-DX5Baphr.js} +61 -20
  13. package/dist/{config-schema-CTzLsQlB.js → config-schema-3tZYNVTM.js} +13 -1
  14. package/dist/contract-api.js +2 -2
  15. package/dist/{conversation-identity-DAEgiGDV.js → conversation-identity-Dugx5WfH.js} +2 -2
  16. package/dist/{directory-config-Cgp0csDd.js → directory-config-CcjUkNgK.js} +1 -1
  17. package/dist/directory-contract-api.js +1 -1
  18. package/dist/{directory-live-C-ECRrM8.js → directory-live-NOtxlJZ3.js} +2 -2
  19. package/dist/{doctor-Q80i7GdG.js → doctor-Dy7sI1sL.js} +1 -1
  20. package/dist/{handle-action.guild-admin-DWFTAcfd.js → handle-action.guild-admin-wC9VaAdl.js} +11 -8
  21. package/dist/index.js +1 -1
  22. package/dist/{manager.runtime-D6V2SPKr.js → manager.runtime-Bwgq6hJW.js} +4 -5
  23. package/dist/{message-handler-B5-UG_oD.js → message-handler-DhqxKFLP.js} +9 -9
  24. package/dist/{message-handler.preflight-Ddww-wnF.js → message-handler.preflight-BC8QmsWW.js} +10 -10
  25. package/dist/{message-handler.process-HWGh2NOP.js → message-handler.process-DE1an2G4.js} +85 -17
  26. package/dist/{message-utils-4w0_DPFE.js → message-utils-BlvuUPP4.js} +1 -1
  27. package/dist/{outbound-adapter-DYUYRaBd.js → outbound-adapter-BGrOFkR8.js} +9 -7
  28. package/dist/{pluralkit-BS1MuvYs.js → pluralkit-Cq_PUr06.js} +1 -1
  29. package/dist/{probe-DfIM7zSY.js → probe-CSBPZIYV.js} +1 -1
  30. package/dist/{probe.runtime-DoXDN3rt.js → probe.runtime-BhWW0223.js} +1 -1
  31. package/dist/{provider-CO6pih5z.js → provider-DIVQuJTw.js} +99 -44
  32. package/dist/{provider-session.runtime-BD5XLPI8.js → provider-session.runtime-C7jT_K-7.js} +3 -3
  33. package/dist/provider.runtime-BtnupyG-.js +2 -0
  34. package/dist/{resolve-allowlist-common-QzX-w4-_.js → resolve-allowlist-common-CzfIcLSO.js} +1 -1
  35. package/dist/{resolve-channels-pD06YNCU.js → resolve-channels-CQ13aBCV.js} +3 -3
  36. package/dist/{resolve-users-BiWLqNNO.js → resolve-users-Bj4Y4uWR.js} +3 -3
  37. package/dist/retry-after-CSukypPP.js +21 -0
  38. package/dist/{runtime-xSazIM0F.js → runtime-DA70ebm-.js} +26 -23
  39. package/dist/runtime-api.actions.js +2 -2
  40. package/dist/runtime-api.js +19 -19
  41. package/dist/runtime-api.lookup.js +5 -5
  42. package/dist/runtime-api.monitor-P-emTjcx.js +5 -0
  43. package/dist/runtime-api.monitor.js +4 -4
  44. package/dist/runtime-api.send.js +5 -5
  45. package/dist/runtime-api.threads.js +3 -3
  46. package/dist/{send-BzXZ8iUI.js → send-3r8QQkTY.js} +7 -7
  47. package/dist/{send.components-AK8K4TwB.js → send.components-2qRLUwBn.js} +6 -6
  48. package/dist/{send.outbound-ZrMnBa8C.js → send.outbound-LjX_KYiO.js} +3 -3
  49. package/dist/{send.receipt-BzfsP3Bb.js → send.receipt-Bo_43DQZ.js} +64 -35
  50. package/dist/{send.shared-ehnDGwXx.js → send.shared-CXctTF1I.js} +2 -2
  51. package/dist/setup-plugin-api.js +1 -1
  52. package/dist/{shared-ToNRC7ax.js → shared-D3NkInmq.js} +2 -2
  53. package/dist/{subagent-hooks-Di_2iXU8.js → subagent-hooks-DoWTMQyQ.js} +2 -2
  54. package/dist/subagent-hooks-api.js +1 -1
  55. package/dist/{system-events-DbqKnNPF.js → system-events-DV85gUxb.js} +1 -1
  56. package/dist/{target-resolver-DXPvq5-L.js → target-resolver-DVpZI7ZL.js} +2 -2
  57. package/dist/targets-0WHF7kV0.js +3 -0
  58. package/dist/{thread-bindings-Bw40FTRZ.js → thread-bindings-Cm3GqlNC.js} +4 -4
  59. package/dist/{thread-bindings.discord-api-irWYI8YX.js → thread-bindings.discord-api-JrJXT7L0.js} +4 -4
  60. package/dist/{thread-bindings.manager-LoYZzlss.js → thread-bindings.manager-DqJuGG-r.js} +3 -3
  61. package/dist/transcripts-source-api.js +1 -1
  62. package/dist/{transcripts-source-CwahHAYt.js → transcripts-source-lEfSvSRD.js} +1 -1
  63. package/dist/{typing-Cv09OhaY.js → typing-DlT_14RX.js} +1 -1
  64. package/npm-shrinkwrap.json +3 -49
  65. package/openclaw.plugin.json +35 -1
  66. package/package.json +5 -7
  67. package/dist/inbound-context-B5EsqsSr.js +0 -48
  68. package/dist/provider.runtime-pUGk7VR5.js +0 -2
  69. package/dist/runtime-api.monitor-BjgSsR6H.js +0 -5
  70. package/dist/targets-BBVHRaeO.js +0 -3
  71. package/dist/test-api.js +0 -45
  72. package/node_modules/agent-base/LICENSE +0 -22
  73. package/node_modules/agent-base/README.md +0 -69
  74. package/node_modules/agent-base/dist/helpers.d.ts +0 -10
  75. package/node_modules/agent-base/dist/helpers.d.ts.map +0 -1
  76. package/node_modules/agent-base/dist/helpers.js +0 -37
  77. package/node_modules/agent-base/dist/helpers.js.map +0 -1
  78. package/node_modules/agent-base/dist/index.d.ts +0 -37
  79. package/node_modules/agent-base/dist/index.d.ts.map +0 -1
  80. package/node_modules/agent-base/dist/index.js +0 -146
  81. package/node_modules/agent-base/dist/index.js.map +0 -1
  82. package/node_modules/agent-base/package.json +0 -46
  83. package/node_modules/debug/LICENSE +0 -20
  84. package/node_modules/debug/README.md +0 -481
  85. package/node_modules/debug/package.json +0 -64
  86. package/node_modules/debug/src/browser.js +0 -272
  87. package/node_modules/debug/src/common.js +0 -292
  88. package/node_modules/debug/src/index.js +0 -10
  89. package/node_modules/debug/src/node.js +0 -263
  90. package/node_modules/https-proxy-agent/LICENSE +0 -22
  91. package/node_modules/https-proxy-agent/README.md +0 -70
  92. package/node_modules/https-proxy-agent/dist/index.d.ts +0 -43
  93. package/node_modules/https-proxy-agent/dist/index.d.ts.map +0 -1
  94. package/node_modules/https-proxy-agent/dist/index.js +0 -150
  95. package/node_modules/https-proxy-agent/dist/index.js.map +0 -1
  96. package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +0 -12
  97. package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +0 -1
  98. package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -94
  99. package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +0 -1
  100. package/node_modules/https-proxy-agent/package.json +0 -50
  101. package/node_modules/ms/index.js +0 -162
  102. package/node_modules/ms/license.md +0 -21
  103. package/node_modules/ms/package.json +0 -38
  104. package/node_modules/ms/readme.md +0 -59
@@ -1,23 +1,22 @@
1
- import { $ as BaseMessageInteractiveComponent, A as User, B as Container, D as CommandWithSubcommands, E as Command, F as Modal, J as Separator, K as Row, O as Guild, R as Button, S as RateLimitError, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, c as discord_exports, ct as createThread, d as MessageReactionAddListener, dt as editChannel, f as MessageReactionRemoveListener, g as ThreadUpdateListener, k as Message, l as InteractionCreateListener, m as ReadyListener, mt as getChannelMessage, p as PresenceUpdateListener, s as chunkDiscordTextWithMode, u as MessageCreateListener, v as Client, y as Plugin } from "./send.receipt-BzfsP3Bb.js";
1
+ import { $ as BaseMessageInteractiveComponent, A as User, B as Container, D as CommandWithSubcommands, E as Command, F as Modal, J as Separator, K as Row, O as Guild, R as Button, S as RateLimitError, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, c as discord_exports, ct as createThread, d as MessageReactionAddListener, dt as editChannel, f as MessageReactionRemoveListener, g as ThreadUpdateListener, k as Message, l as InteractionCreateListener, m as ReadyListener, mt as getChannelMessage, p as PresenceUpdateListener, s as chunkDiscordTextWithMode, u as MessageCreateListener, v as Client, y as Plugin } from "./send.receipt-Bo_43DQZ.js";
2
2
  import { c as resolveDiscordAccountAllowFrom, d as resolveDiscordAccountDmPolicy, f as resolveDiscordMaxLinesPerMessage, p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-dXTfmnSZ.js";
3
- import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-Dlc81IU5.js";
4
- import { a as resolveDiscordComponentEntryWithPersistence, o as resolveDiscordModalEntryWithPersistence, t as editDiscordComponentMessage } from "./send.components-AK8K4TwB.js";
3
+ import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-DX5Baphr.js";
4
+ import { a as resolveDiscordComponentEntryWithPersistence, o as resolveDiscordModalEntryWithPersistence, t as editDiscordComponentMessage } from "./send.components-2qRLUwBn.js";
5
5
  import { c as setPresence, i as unregisterGateway, r as registerGateway } from "./gateway-registry-DPxmW0Db.js";
6
- import { B as DISCORD_REST_TIMEOUT_MS, D as canViewDiscordGuildChannel, H as withValidatedDiscordProxy, I as createDiscordRestClient, V as validateDiscordProxyUrl } from "./send.shared-ehnDGwXx.js";
7
- import { a as summarizeDiscordResponseBody, i as isDiscordRateLimitResponseBody } from "./api-Kq7vtaSO.js";
8
- import { S as resolveTimestampMs, _ as resolveGroupDmAllow, a as normalizeDiscordSlug, b as formatDiscordUserTag, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, i as normalizeDiscordDisplaySlug, l as resolveDiscordChannelPolicyCommandAuthorizer, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy, o as resolveDiscordAllowListMatch, r as normalizeDiscordAllowList, v as shouldEmitDiscordReactionNotification, y as formatDiscordReactionEmoji } from "./allow-list-BnkWtVpA.js";
9
- import { s as sendVoiceMessageDiscord } from "./send-BzXZ8iUI.js";
10
- import { i as formatMention, t as sendMessageDiscord } from "./send.outbound-ZrMnBa8C.js";
11
- import { a as getDiscordExecApprovalApprovers, s as isDiscordExecApprovalClientEnabled, t as resolveDiscordConversationIdentity } from "./conversation-identity-DAEgiGDV.js";
12
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-pD06YNCU.js";
13
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-BiWLqNNO.js";
14
- import { _ as formatThreadBindingDurationLabel, a as isThreadArchived, d as resolveDiscordChannelNameSafe, f as resolveDiscordChannelParentIdSafe, l as resolveDiscordChannelIdSafe, m as resolveDiscordChannelTopicSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-irWYI8YX.js";
15
- import { r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DfIM7zSY.js";
6
+ import { B as DISCORD_REST_TIMEOUT_MS, D as canViewDiscordGuildChannel, H as withValidatedDiscordProxy, I as createDiscordRestClient, V as validateDiscordProxyUrl } from "./send.shared-CXctTF1I.js";
7
+ import { a as summarizeDiscordResponseBody, i as isDiscordRateLimitResponseBody } from "./api-ChQJ1kfZ.js";
8
+ import { S as resolveTimestampMs, _ as resolveGroupDmAllow, a as normalizeDiscordSlug, b as formatDiscordUserTag, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, h as resolveDiscordOwnerAllowFrom, i as normalizeDiscordDisplaySlug, l as resolveDiscordChannelPolicyCommandAuthorizer, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy, o as resolveDiscordAllowListMatch, p as resolveDiscordMemberAllowed, r as normalizeDiscordAllowList, v as shouldEmitDiscordReactionNotification, y as formatDiscordReactionEmoji } from "./allow-list-BnkWtVpA.js";
9
+ import { s as sendVoiceMessageDiscord } from "./send-3r8QQkTY.js";
10
+ import { i as formatMention, t as sendMessageDiscord } from "./send.outbound-LjX_KYiO.js";
11
+ import { a as getDiscordExecApprovalApprovers, s as isDiscordExecApprovalClientEnabled, t as resolveDiscordConversationIdentity } from "./conversation-identity-Dugx5WfH.js";
12
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CQ13aBCV.js";
13
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Bj4Y4uWR.js";
14
+ import { _ as formatThreadBindingDurationLabel, a as isThreadArchived, d as resolveDiscordChannelNameSafe, f as resolveDiscordChannelParentIdSafe, l as resolveDiscordChannelIdSafe, m as resolveDiscordChannelTopicSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-JrJXT7L0.js";
15
+ import { r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CSBPZIYV.js";
16
16
  import { o as raceWithTimeout, s as withAbortTimeout } from "./timeouts-l_PsHQvX.js";
17
- import { d as resolveDiscordMessageChannelId, n as resolveDiscordForwardedMessagesTextFromSnapshots, t as resolveDiscordEmbedText, u as resolveDiscordChannelInfo } from "./message-utils-4w0_DPFE.js";
17
+ import { d as resolveDiscordMessageChannelId, n as resolveDiscordForwardedMessagesTextFromSnapshots, t as resolveDiscordEmbedText, u as resolveDiscordChannelInfo } from "./message-utils-BlvuUPP4.js";
18
18
  import { t as resolveDiscordSenderIdentity } from "./sender-identity-BFp5w0F8.js";
19
- import { n as buildDiscordInboundAccessContext, t as buildDiscordGroupSystemPrompt } from "./inbound-context-B5EsqsSr.js";
20
- import "./approval-handler.runtime-BDxD97LJ.js";
19
+ import "./approval-handler.runtime-CIZiiFBd.js";
21
20
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
22
21
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalStringifiedId, normalizeStringEntries, normalizeStringEntriesLower, summarizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
23
22
  import { buildAgentSessionKey, deriveLastRoutePolicy, isAcpSessionKey, isSubagentSessionKey, parseAgentSessionKey, resolveAgentIdFromSessionKey, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
@@ -29,11 +28,12 @@ import { resolvePinnedMainDmOwnerFromAllowlist as resolvePinnedMainDmOwnerFromAl
29
28
  import { Type } from "typebox";
30
29
  import { Check, Errors } from "typebox/value";
31
30
  import { inspect } from "node:util";
31
+ import { parseFiniteNumber, parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
32
32
  import { getAgentScopedMediaLocalRoots } from "openclaw/plugin-sdk/media-runtime";
33
33
  import { resolveSendableOutboundReplyParts, resolveTextChunksWithFallback } from "openclaw/plugin-sdk/reply-payload";
34
34
  import { loadWebMedia } from "openclaw/plugin-sdk/web-media";
35
35
  import { resolveChunkMode, resolveTextChunkLimit } from "openclaw/plugin-sdk/reply-chunking";
36
- import { createHttp1EnvHttpProxyAgent, createHttp1ProxyAgent, resolveEnvHttpProxyAgentOptions, wrapFetchWithAbortSignal } from "openclaw/plugin-sdk/fetch-runtime";
36
+ import { createHttp1EnvHttpProxyAgent, createHttp1ProxyAgent, createNodeProxyAgent, resolveEnvHttpProxyAgentOptions, wrapFetchWithAbortSignal } from "openclaw/plugin-sdk/fetch-runtime";
37
37
  import { createNonExitingRuntime, createSubsystemLogger, danger, formatDurationSeconds, isVerbose, logVerbose, shouldLogVerbose, warn } from "openclaw/plugin-sdk/runtime-env";
38
38
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
39
39
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
@@ -72,7 +72,6 @@ import { createConnectedChannelStatusPatch, createTransportActivityStatusPatch }
72
72
  import { EventEmitter } from "node:events";
73
73
  import * as ws from "ws";
74
74
  import { Agent } from "node:https";
75
- import * as httpsProxyAgent from "https-proxy-agent";
76
75
  import { captureHttpExchange, captureWsEvent, resolveDebugProxySettings, resolveEffectiveDebugProxyUrl } from "openclaw/plugin-sdk/proxy-capture";
77
76
  import * as dns from "node:dns";
78
77
  import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
@@ -1913,6 +1912,52 @@ function shouldBypassConfiguredAcpGuildGuards(commandName) {
1913
1912
  return normalized === "new" || normalized === "reset";
1914
1913
  }
1915
1914
  //#endregion
1915
+ //#region extensions/discord/src/monitor/inbound-context.ts
1916
+ function createDiscordSupplementalContextAccessChecker(params) {
1917
+ return (sender) => {
1918
+ if (!params.isGuild) return true;
1919
+ return resolveDiscordMemberAllowed({
1920
+ userAllowList: params.channelConfig?.users ?? params.guildInfo?.users,
1921
+ roleAllowList: params.channelConfig?.roles ?? params.guildInfo?.roles,
1922
+ memberRoleIds: sender.memberRoleIds ?? [],
1923
+ userId: sender.id ?? "",
1924
+ userName: sender.name,
1925
+ userTag: sender.tag,
1926
+ allowNameMatching: params.allowNameMatching
1927
+ });
1928
+ };
1929
+ }
1930
+ function buildDiscordGroupSystemPrompt(channelConfig) {
1931
+ const systemPromptParts = [channelConfig?.systemPrompt?.trim() || null].filter((entry) => Boolean(entry));
1932
+ return systemPromptParts.length > 0 ? systemPromptParts.join("\n\n") : void 0;
1933
+ }
1934
+ function buildDiscordUntrustedContext(params) {
1935
+ if (!params.isGuild) return;
1936
+ const entries = [];
1937
+ if (typeof params.channelTopic === "string" && params.channelTopic.trim().length > 0) entries.push({
1938
+ label: "Discord channel metadata",
1939
+ source: "discord",
1940
+ type: "channel_metadata",
1941
+ payload: { topic: params.channelTopic.trim() }
1942
+ });
1943
+ return entries.length > 0 ? entries : void 0;
1944
+ }
1945
+ function buildDiscordInboundAccessContext(params) {
1946
+ return {
1947
+ groupSystemPrompt: params.isGuild ? buildDiscordGroupSystemPrompt(params.channelConfig) : void 0,
1948
+ untrustedContext: buildDiscordUntrustedContext({
1949
+ isGuild: params.isGuild,
1950
+ channelTopic: params.channelTopic
1951
+ }),
1952
+ ownerAllowFrom: resolveDiscordOwnerAllowFrom({
1953
+ channelConfig: params.channelConfig,
1954
+ guildInfo: params.guildInfo,
1955
+ sender: params.sender,
1956
+ allowNameMatching: params.allowNameMatching
1957
+ })
1958
+ };
1959
+ }
1960
+ //#endregion
1916
1961
  //#region extensions/discord/src/monitor/native-command-context.ts
1917
1962
  function buildDiscordNativeCommandContext(params) {
1918
1963
  const conversationLabel = params.isDirectMessage ? params.user.globalName ?? params.user.username : params.channelId;
@@ -2321,17 +2366,19 @@ function normalizeModelPickerPage(value) {
2321
2366
  }
2322
2367
  function parseRawPage(value) {
2323
2368
  if (typeof value === "number") return normalizeModelPickerPage(value);
2324
- if (typeof value === "string" && value.trim()) {
2325
- const parsed = Number.parseInt(value, 10);
2326
- if (Number.isFinite(parsed)) return normalizeModelPickerPage(parsed);
2369
+ if (typeof value === "string" && /^[+-]?\d+$/.test(value.trim())) {
2370
+ const parsed = Number(value.trim());
2371
+ if (Number.isSafeInteger(parsed)) return normalizeModelPickerPage(parsed);
2327
2372
  }
2328
2373
  return 1;
2329
2374
  }
2330
2375
  function parseRawPositiveInt(value) {
2331
2376
  if (typeof value !== "string" && typeof value !== "number") return;
2332
- const parsed = Number.parseInt(String(value), 10);
2333
- if (!Number.isFinite(parsed) || parsed < 1) return;
2334
- return Math.floor(parsed);
2377
+ const raw = String(value).trim();
2378
+ if (!/^[+]?\d+$/.test(raw)) return;
2379
+ const parsed = Number(raw);
2380
+ if (!Number.isSafeInteger(parsed) || parsed < 1) return;
2381
+ return parsed;
2335
2382
  }
2336
2383
  function coerceString(value) {
2337
2384
  return typeof value === "string" || typeof value === "number" ? String(value) : "";
@@ -2683,9 +2730,9 @@ function getRuntimeChoices(params) {
2683
2730
  const choices = params.data.runtimeChoicesByProvider?.get(normalizeProviderId(params.provider));
2684
2731
  if (choices?.length) return choices;
2685
2732
  return [{
2686
- id: "pi",
2687
- label: "OpenClaw Pi Default",
2688
- description: "Use the built-in OpenClaw Pi runtime."
2733
+ id: "openclaw",
2734
+ label: "OpenClaw Default",
2735
+ description: "Use the built-in OpenClaw runtime."
2689
2736
  }];
2690
2737
  }
2691
2738
  function resolveSelectedRuntime(params) {
@@ -2698,7 +2745,7 @@ function resolveSelectedRuntime(params) {
2698
2745
  if (pending && allowed.has(pending)) return pending;
2699
2746
  const current = params.currentRuntime?.trim();
2700
2747
  if (current && allowed.has(current)) return current;
2701
- return choices[0]?.id ?? "pi";
2748
+ return choices[0]?.id ?? "openclaw";
2702
2749
  }
2703
2750
  function resolveExplicitRuntimeState(params) {
2704
2751
  const allowed = new Set(params.choices.map((choice) => choice.id));
@@ -3625,7 +3672,7 @@ function resolveDiscordModelPickerRuntimeForProvider(params) {
3625
3672
  if (!runtime) return;
3626
3673
  if (runtime === "auto" || runtime === "default") return params.allowResetRuntime ? runtime : void 0;
3627
3674
  const choices = params.data.runtimeChoicesByProvider?.get(params.provider);
3628
- if (!choices?.length) return runtime === "pi" ? runtime : void 0;
3675
+ if (!choices?.length) return runtime === "openclaw" ? runtime : void 0;
3629
3676
  return choices.some((choice) => choice.id === runtime) ? runtime : void 0;
3630
3677
  }
3631
3678
  function resolveDiscordModelPickerSubmissionRuntime(params) {
@@ -4726,12 +4773,16 @@ function readGuildId(data) {
4726
4773
  //#endregion
4727
4774
  //#region extensions/discord/src/internal/gateway-identify-limiter.ts
4728
4775
  const IDENTIFY_WINDOW_MS = 5e3;
4776
+ function normalizeMaxConcurrency(value) {
4777
+ const parsed = parseFiniteNumber(value);
4778
+ return parsed === void 0 ? 1 : Math.max(1, Math.floor(parsed));
4779
+ }
4729
4780
  var GatewayIdentifyLimiter = class {
4730
4781
  constructor() {
4731
4782
  this.nextAllowedAtByKey = /* @__PURE__ */ new Map();
4732
4783
  }
4733
4784
  async wait(params) {
4734
- const maxConcurrency = Math.max(1, Math.floor(params.maxConcurrency ?? 1));
4785
+ const maxConcurrency = normalizeMaxConcurrency(params.maxConcurrency);
4735
4786
  const rateKey = (params.shardId ?? 0) % maxConcurrency;
4736
4787
  const now = Date.now();
4737
4788
  const nextAllowedAt = this.nextAllowedAtByKey.get(rateKey) ?? now;
@@ -5521,9 +5572,9 @@ async function materializeGuardedResponse(response) {
5521
5572
  });
5522
5573
  }
5523
5574
  function normalizeGatewayInfoTimeoutMs(value) {
5524
- const numeric = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
5525
- if (!Number.isFinite(numeric) || numeric <= 0) return;
5526
- return Math.min(Math.floor(numeric), MAX_DISCORD_GATEWAY_INFO_TIMEOUT_MS);
5575
+ const numeric = parseStrictPositiveInteger(value);
5576
+ if (numeric === void 0) return;
5577
+ return Math.min(numeric, MAX_DISCORD_GATEWAY_INFO_TIMEOUT_MS);
5527
5578
  }
5528
5579
  function resolveDiscordGatewayInfoTimeoutMs(params) {
5529
5580
  return normalizeGatewayInfoTimeoutMs(params?.configuredTimeoutMs) ?? normalizeGatewayInfoTimeoutMs(params?.env?.[DISCORD_GATEWAY_INFO_TIMEOUT_ENV]) ?? DEFAULT_DISCORD_GATEWAY_INFO_TIMEOUT_MS;
@@ -5829,7 +5880,11 @@ function createDiscordGatewayPlugin(params) {
5829
5880
  let wsAgent = new Agent({ lookup: discordDnsLookup$1 });
5830
5881
  if (proxy) try {
5831
5882
  validateDiscordProxyUrl(proxy);
5832
- wsAgent = new (params.testing?.HttpsProxyAgentCtor ?? httpsProxyAgent.HttpsProxyAgent)(proxy);
5883
+ wsAgent = params.testing?.createProxyAgent?.(proxy) ?? createNodeProxyAgent({
5884
+ mode: "explicit",
5885
+ proxyUrl: proxy,
5886
+ protocol: "https"
5887
+ });
5833
5888
  fetchImpl = createDiscordGatewayMetadataFetch(debugProxySettings.enabled, proxy);
5834
5889
  params.runtime.log?.("discord: gateway proxy enabled");
5835
5890
  } catch (err) {
@@ -7761,7 +7816,7 @@ async function loadConversationRuntime$1() {
7761
7816
  return await conversationRuntimePromise$1;
7762
7817
  }
7763
7818
  async function loadTypingRuntime() {
7764
- typingRuntimePromise ??= import("./typing-Cv09OhaY.js").then((n) => n.n);
7819
+ typingRuntimePromise ??= import("./typing-DlT_14RX.js").then((n) => n.n);
7765
7820
  return await typingRuntimePromise;
7766
7821
  }
7767
7822
  function buildDiscordComponentConversationLabel(params) {
@@ -8182,7 +8237,7 @@ async function dispatchPluginDiscordInteractiveEvent(params) {
8182
8237
  //#region extensions/discord/src/monitor/agent-components.handlers.ts
8183
8238
  let componentsRuntimePromise;
8184
8239
  async function loadComponentsRuntime() {
8185
- componentsRuntimePromise ??= import("./components-Dlc81IU5.js").then((n) => n.t);
8240
+ componentsRuntimePromise ??= import("./components-DX5Baphr.js").then((n) => n.t);
8186
8241
  return await componentsRuntimePromise;
8187
8242
  }
8188
8243
  async function handleDiscordComponentEvent(params) {
@@ -9062,9 +9117,9 @@ const DISCORD_GATEWAY_STARTUP_DISCONNECT_DRAIN_TIMEOUT_MS = 5e3;
9062
9117
  const DISCORD_GATEWAY_STARTUP_TERMINATE_CLOSE_TIMEOUT_MS = 1e3;
9063
9118
  const DISCORD_GATEWAY_TRANSPORT_ACTIVITY_STATUS_MIN_INTERVAL_MS = 3e4;
9064
9119
  function normalizeGatewayReadyTimeoutMs(value) {
9065
- const numeric = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
9066
- if (!Number.isFinite(numeric) || numeric <= 0) return;
9067
- return Math.min(Math.floor(numeric), MAX_DISCORD_GATEWAY_READY_TIMEOUT_MS);
9120
+ const numeric = parseStrictPositiveInteger(value);
9121
+ if (numeric === void 0) return;
9122
+ return Math.min(numeric, MAX_DISCORD_GATEWAY_READY_TIMEOUT_MS);
9068
9123
  }
9069
9124
  function resolveDiscordGatewayReadyTimeoutMs(params) {
9070
9125
  return normalizeGatewayReadyTimeoutMs(params?.configuredTimeoutMs) ?? normalizeGatewayReadyTimeoutMs(params?.env?.[DISCORD_GATEWAY_READY_TIMEOUT_ENV]) ?? DEFAULT_DISCORD_GATEWAY_READY_TIMEOUT_MS;
@@ -9414,7 +9469,7 @@ async function runDiscordGatewayLifecycle(params) {
9414
9469
  gatewayEmitter?.removeListener(DISCORD_GATEWAY_TRANSPORT_ACTIVITY_EVENT, onGatewayTransportActivity);
9415
9470
  if (params.voiceManager) {
9416
9471
  await params.voiceManager.destroy();
9417
- const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-CwahHAYt.js").then((n) => n.n);
9472
+ const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-lEfSvSRD.js").then((n) => n.n);
9418
9473
  setDiscordTranscriptsVoiceManager({
9419
9474
  accountId: params.accountId,
9420
9475
  manager: null
@@ -9692,7 +9747,7 @@ function logDiscordStartupPhase(params) {
9692
9747
  });
9693
9748
  }
9694
9749
  async function loadDiscordVoiceRuntime() {
9695
- const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-D6V2SPKr.js");
9750
+ const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-Bwgq6hJW.js");
9696
9751
  discordVoiceRuntimePromise = promise;
9697
9752
  try {
9698
9753
  return await promise;
@@ -9702,7 +9757,7 @@ async function loadDiscordVoiceRuntime() {
9702
9757
  }
9703
9758
  }
9704
9759
  async function loadDiscordProviderSessionRuntime() {
9705
- const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-BD5XLPI8.js");
9760
+ const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-C7jT_K-7.js");
9706
9761
  discordProviderSessionRuntimePromise = promise;
9707
9762
  try {
9708
9763
  return await promise;
@@ -9972,7 +10027,7 @@ async function monitorDiscordProvider(opts = {}) {
9972
10027
  runtime,
9973
10028
  botUserId
9974
10029
  });
9975
- const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-CwahHAYt.js").then((n) => n.n);
10030
+ const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-lEfSvSRD.js").then((n) => n.n);
9976
10031
  setDiscordTranscriptsVoiceManager({
9977
10032
  accountId: account.accountId,
9978
10033
  manager: voiceManager
@@ -10077,4 +10132,4 @@ async function monitorDiscordProvider(opts = {}) {
10077
10132
  }
10078
10133
  }
10079
10134
  //#endregion
10080
- export { resolveDiscordDmCommandAccess as C, sanitizeDiscordThreadName as S, registerDiscordListener as _, resolveReplyContext as a, resolveDiscordReplyTarget as b, resolveDiscordGatewayIntents as c, createDiscordNativeCommand as d, buildDiscordRoutePeer as f, handleDiscordDmCommandDecision as g, shouldIgnoreStaleDiscordRouteBinding as h, buildGuildLabel as i, waitForDiscordGatewayPluginRegistration as l, resolveDiscordEffectiveRoute as m, deliverDiscordReply as n, authorizeDiscordVoiceIngress as o, resolveDiscordConversationRoute as p, buildDirectLabel as r, createDiscordGatewayPlugin as s, monitorDiscordProvider as t, resolveDiscordVoiceEnabled as u, threading_exports as v, resolveDiscordTextCommandAccess as w, resolveDiscordThreadStarter as x, resolveDiscordAutoThreadReplyPlan as y };
10135
+ export { resolveDiscordReplyTarget as C, resolveDiscordTextCommandAccess as D, resolveDiscordDmCommandAccess as E, resolveDiscordAutoThreadReplyPlan as S, sanitizeDiscordThreadName as T, resolveDiscordEffectiveRoute as _, resolveReplyContext as a, registerDiscordListener as b, resolveDiscordGatewayIntents as c, createDiscordNativeCommand as d, buildDiscordGroupSystemPrompt as f, resolveDiscordConversationRoute as g, buildDiscordRoutePeer as h, buildGuildLabel as i, waitForDiscordGatewayPluginRegistration as l, createDiscordSupplementalContextAccessChecker as m, deliverDiscordReply as n, authorizeDiscordVoiceIngress as o, buildDiscordInboundAccessContext as p, buildDirectLabel as r, createDiscordGatewayPlugin as s, monitorDiscordProvider as t, resolveDiscordVoiceEnabled as u, shouldIgnoreStaleDiscordRouteBinding as v, resolveDiscordThreadStarter as w, threading_exports as x, handleDiscordDmCommandDecision as y };
@@ -1,6 +1,6 @@
1
- import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-Bw40FTRZ.js";
2
- import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-LoYZzlss.js";
3
- import { t as createDiscordMessageHandler } from "./message-handler-B5-UG_oD.js";
1
+ import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-Cm3GqlNC.js";
2
+ import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-DqJuGG-r.js";
3
+ import { t as createDiscordMessageHandler } from "./message-handler-DhqxKFLP.js";
4
4
  import { resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled } from "openclaw/plugin-sdk/conversation-runtime";
5
5
  import { getAcpSessionManager, isAcpRuntimeError } from "openclaw/plugin-sdk/acp-runtime";
6
6
  export { createDiscordMessageHandler, createNoopThreadBindingManager, createThreadBindingManager, getAcpSessionManager, isAcpRuntimeError, reconcileAcpThreadBindingsOnStartup, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled };
@@ -0,0 +1,2 @@
1
+ import { t as monitorDiscordProvider } from "./provider-DIVQuJTw.js";
2
+ export { monitorDiscordProvider };
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeDiscordToken } from "./accounts-dXTfmnSZ.js";
2
- import { n as fetchDiscord } from "./api-Kq7vtaSO.js";
2
+ import { n as fetchDiscord } from "./api-ChQJ1kfZ.js";
3
3
  import { a as normalizeDiscordSlug } from "./allow-list-BnkWtVpA.js";
4
4
  //#region extensions/discord/src/guilds.ts
5
5
  async function listGuilds(token, fetcher) {
@@ -1,7 +1,7 @@
1
- import { Wt as __exportAll } from "./send.receipt-BzfsP3Bb.js";
2
- import { n as fetchDiscord, t as DiscordApiError } from "./api-Kq7vtaSO.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Bo_43DQZ.js";
2
+ import { n as fetchDiscord, t as DiscordApiError } from "./api-ChQJ1kfZ.js";
3
3
  import { a as normalizeDiscordSlug } from "./allow-list-BnkWtVpA.js";
4
- import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-QzX-w4-_.js";
4
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-CzfIcLSO.js";
5
5
  //#region extensions/discord/src/resolve-channels.ts
6
6
  var resolve_channels_exports = /* @__PURE__ */ __exportAll({ resolveDiscordChannelAllowlist: () => resolveDiscordChannelAllowlist });
7
7
  function parseDiscordChannelInput(raw) {
@@ -1,6 +1,6 @@
1
- import { Wt as __exportAll } from "./send.receipt-BzfsP3Bb.js";
2
- import { n as fetchDiscord } from "./api-Kq7vtaSO.js";
3
- import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-QzX-w4-_.js";
1
+ import { Wt as __exportAll } from "./send.receipt-Bo_43DQZ.js";
2
+ import { n as fetchDiscord } from "./api-ChQJ1kfZ.js";
3
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-CzfIcLSO.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 });
@@ -0,0 +1,21 @@
1
+ //#region extensions/discord/src/retry-after.ts
2
+ const RETRY_AFTER_HEADER_DELAY_RE = /^\d+$/;
3
+ const RETRY_AFTER_BODY_SECONDS_RE = /^(?:\d+\.?\d*|\.\d+)$/;
4
+ const RETRY_AFTER_HTTP_DATE_RE = /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT$/;
5
+ function parseRetryAfterHeaderSeconds(value, now = Date.now()) {
6
+ if (!value) return;
7
+ const trimmed = value.trim();
8
+ if (RETRY_AFTER_HEADER_DELAY_RE.test(trimmed)) {
9
+ const delaySeconds = Number(trimmed);
10
+ return Number.isFinite(delaySeconds) ? delaySeconds : void 0;
11
+ }
12
+ if (!RETRY_AFTER_HTTP_DATE_RE.test(trimmed)) return;
13
+ const retryAt = Date.parse(trimmed);
14
+ return Number.isFinite(retryAt) ? Math.max(0, (retryAt - now) / 1e3) : void 0;
15
+ }
16
+ function parseDiscordRetryAfterBodySeconds(value) {
17
+ const seconds = typeof value === "number" ? value : typeof value === "string" && RETRY_AFTER_BODY_SECONDS_RE.test(value.trim()) ? Number(value.trim()) : void 0;
18
+ return seconds !== void 0 && Number.isFinite(seconds) && seconds >= 0 ? seconds : void 0;
19
+ }
20
+ //#endregion
21
+ export { parseRetryAfterHeaderSeconds as n, parseDiscordRetryAfterBodySeconds as t };
@@ -1,13 +1,13 @@
1
- import { Ut as resolveDiscordChannelId } from "./send.receipt-BzfsP3Bb.js";
1
+ import { Ut as resolveDiscordChannelId } from "./send.receipt-Bo_43DQZ.js";
2
2
  import { a as mergeDiscordAccountConfig, o as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-dXTfmnSZ.js";
3
- import { d as readDiscordComponentSpec } from "./components-Dlc81IU5.js";
4
- import { c as jsonResult, d as readNumberParam, f as readReactionParams, g as withNormalizedTimestamp, h as resolvePollMaxSelections, l as parseAvailableTags, m as readStringParam, p as readStringArrayParam, r as sendDiscordComponentMessage, s as assertMediaNotDataUrl, u as readBooleanParam } from "./send.components-AK8K4TwB.js";
3
+ import { d as readDiscordComponentSpec } from "./components-DX5Baphr.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-2qRLUwBn.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-ehnDGwXx.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-CXctTF1I.js";
7
7
  import { a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, n as isDiscordGroupAllowedByPolicy } from "./allow-list-BnkWtVpA.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-BzXZ8iUI.js";
9
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-ZrMnBa8C.js";
10
- import "./targets-BBVHRaeO.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-3r8QQkTY.js";
9
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-LjX_KYiO.js";
10
+ import "./targets-0WHF7kV0.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";
@@ -33,10 +33,10 @@ function readDiscordChannelCreateParams(params) {
33
33
  return {
34
34
  guildId: readStringParam(params, "guildId", { required: true }),
35
35
  name: readStringParam(params, "name", { required: true }),
36
- type: readNumberParam(params, "channelType", { integer: true }) ?? readNumberParam(params, "type", { integer: true }) ?? void 0,
36
+ type: readNonNegativeIntegerParam(params, "channelType") ?? readNonNegativeIntegerParam(params, "type") ?? void 0,
37
37
  parentId: parentId ?? void 0,
38
38
  topic: readStringParam(params, "topic") ?? void 0,
39
- position: readNumberParam(params, "position", { integer: true }) ?? void 0,
39
+ position: readNonNegativeIntegerParam(params, "position") ?? void 0,
40
40
  nsfw: readDiscordBooleanParam(params, "nsfw")
41
41
  };
42
42
  }
@@ -46,13 +46,13 @@ function readDiscordChannelEditParams(params) {
46
46
  channelId: readStringParam(params, "channelId", { required: true }),
47
47
  name: readStringParam(params, "name") ?? void 0,
48
48
  topic: readStringParam(params, "topic") ?? void 0,
49
- position: readNumberParam(params, "position", { integer: true }) ?? void 0,
49
+ position: readNonNegativeIntegerParam(params, "position") ?? void 0,
50
50
  parentId: parentId === void 0 ? void 0 : parentId,
51
51
  nsfw: readDiscordBooleanParam(params, "nsfw"),
52
- rateLimitPerUser: readNumberParam(params, "rateLimitPerUser", { integer: true }) ?? void 0,
52
+ rateLimitPerUser: readNonNegativeIntegerParam(params, "rateLimitPerUser") ?? void 0,
53
53
  archived: readDiscordBooleanParam(params, "archived"),
54
54
  locked: readDiscordBooleanParam(params, "locked"),
55
- autoArchiveDuration: readNumberParam(params, "autoArchiveDuration", { integer: true }) ?? void 0,
55
+ autoArchiveDuration: readPositiveIntegerParam(params, "autoArchiveDuration") ?? void 0,
56
56
  availableTags: parseAvailableTags(params.availableTags)
57
57
  };
58
58
  }
@@ -62,7 +62,7 @@ function readDiscordChannelMoveParams(params) {
62
62
  guildId: readStringParam(params, "guildId", { required: true }),
63
63
  channelId: readStringParam(params, "channelId", { required: true }),
64
64
  parentId: parentId === void 0 ? void 0 : parentId,
65
- position: readNumberParam(params, "position", { integer: true }) ?? void 0
65
+ position: readNonNegativeIntegerParam(params, "position") ?? void 0
66
66
  };
67
67
  }
68
68
  //#endregion
@@ -427,7 +427,7 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
427
427
  if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
428
428
  const guildId = readStringParam(params, "guildId", { required: true });
429
429
  const name = readStringParam(params, "name", { required: true });
430
- const position = readNumberParam(params, "position", { integer: true });
430
+ const position = readNonNegativeIntegerParam(params, "position");
431
431
  return jsonResult({
432
432
  ok: true,
433
433
  category: await discordGuildActionRuntime.createChannelDiscord({
@@ -442,7 +442,7 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
442
442
  if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
443
443
  const categoryId = readStringParam(params, "categoryId", { required: true });
444
444
  const name = readStringParam(params, "name");
445
- const position = readNumberParam(params, "position", { integer: true });
445
+ const position = readNonNegativeIntegerParam(params, "position");
446
446
  return jsonResult({
447
447
  ok: true,
448
448
  category: await discordGuildActionRuntime.editChannelDiscord({
@@ -587,7 +587,7 @@ async function handleDiscordMessageManagementAction(ctx) {
587
587
  const channelId = ctx.resolveChannelId();
588
588
  await ctx.assertReadTargetAllowed({ channelId });
589
589
  const query = {
590
- limit: readNumberParam(ctx.params, "limit"),
590
+ limit: readPositiveIntegerParam(ctx.params, "limit"),
591
591
  before: readStringParam(ctx.params, "before"),
592
592
  after: readStringParam(ctx.params, "after"),
593
593
  around: readStringParam(ctx.params, "around")
@@ -645,7 +645,7 @@ async function handleDiscordMessageManagementAction(ctx) {
645
645
  const channelIds = readStringArrayParam(ctx.params, "channelIds");
646
646
  const authorId = readStringParam(ctx.params, "authorId");
647
647
  const authorIds = readStringArrayParam(ctx.params, "authorIds");
648
- const limit = readNumberParam(ctx.params, "limit");
648
+ const limit = readPositiveIntegerParam(ctx.params, "limit");
649
649
  const channelIdList = [...channelIds ?? [], ...channelId ? [channelId] : []];
650
650
  if (channelIdList.length > 0) for (const targetChannelId of channelIdList) await ctx.assertReadTargetAllowed({
651
651
  guildId,
@@ -708,7 +708,7 @@ async function handleDiscordReactionMessagingAction(ctx) {
708
708
  if (!ctx.isActionEnabled("reactions")) throw new Error("Discord reactions are disabled.");
709
709
  const channelId = await ctx.resolveReactionChannelId();
710
710
  const messageId = readStringParam(ctx.params, "messageId", { required: true });
711
- const limit = readNumberParam(ctx.params, "limit");
711
+ const limit = readPositiveIntegerParam(ctx.params, "limit");
712
712
  await ctx.assertReadTargetAllowed({ channelId });
713
713
  return jsonResult({
714
714
  ok: true,
@@ -786,7 +786,7 @@ async function handleDiscordMessageSendAction(ctx) {
786
786
  label: "answers"
787
787
  });
788
788
  const allowMultiselect = readBooleanParam(ctx.params, "allowMultiselect");
789
- const durationHours = readNumberParam(ctx.params, "durationHours");
789
+ const durationHours = readPositiveIntegerParam(ctx.params, "durationHours");
790
790
  const maxSelections = resolvePollMaxSelections(answers.length, allowMultiselect);
791
791
  await discordMessagingActionRuntime.sendPollDiscord(to, {
792
792
  question,
@@ -895,7 +895,7 @@ async function handleDiscordMessageSendAction(ctx) {
895
895
  const payload = {
896
896
  name,
897
897
  messageId,
898
- autoArchiveMinutes: readNumberParam(ctx.params, "autoArchiveMinutes"),
898
+ autoArchiveMinutes: readPositiveIntegerParam(ctx.params, "autoArchiveMinutes"),
899
899
  content,
900
900
  appliedTags: readStringArrayParam(ctx.params, "appliedTags") ?? void 0
901
901
  };
@@ -921,7 +921,7 @@ async function handleDiscordMessageSendAction(ctx) {
921
921
  const channelId = readStringParam(ctx.params, "channelId");
922
922
  const includeArchived = readBooleanParam(ctx.params, "includeArchived");
923
923
  const before = readStringParam(ctx.params, "before");
924
- const limit = readNumberParam(ctx.params, "limit");
924
+ const limit = readPositiveIntegerParam(ctx.params, "limit");
925
925
  return jsonResult({
926
926
  ok: true,
927
927
  threads: await discordMessagingActionRuntime.listThreadsDiscord({
@@ -1220,10 +1220,13 @@ function readDiscordModerationCommand(action, params) {
1220
1220
  action,
1221
1221
  guildId: readStringParam(params, "guildId", { required: true }),
1222
1222
  userId: readStringParam(params, "userId", { required: true }),
1223
- durationMinutes: readNumberParam(params, "durationMinutes", { integer: true }),
1223
+ durationMinutes: readNonNegativeIntegerParam(params, "durationMinutes"),
1224
1224
  until: readStringParam(params, "until"),
1225
1225
  reason: readStringParam(params, "reason"),
1226
- deleteMessageDays: readNumberParam(params, "deleteMessageDays", { integer: true })
1226
+ deleteMessageDays: readNonNegativeIntegerParam(params, "deleteMessageDays", {
1227
+ max: 7,
1228
+ message: "deleteMessageDays must be an integer from 0 to 7"
1229
+ })
1227
1230
  };
1228
1231
  }
1229
1232
  //#endregion
@@ -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-xSazIM0F.js";
2
- import { t as discordMessageActions } from "./channel-actions-DZfkB0nd.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-DA70ebm-.js";
2
+ import { t as discordMessageActions } from "./channel-actions-BOH34yJ5.js";
3
3
  export { discordMessageActions, handleDiscordAction, isDiscordModerationAction, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, requiredGuildPermissionForModerationAction };
@@ -1,30 +1,30 @@
1
- import { x as resolveDiscordOutboundSessionRoute } from "./components-Dlc81IU5.js";
2
- import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-AK8K4TwB.js";
1
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-DX5Baphr.js";
2
+ import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-2qRLUwBn.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-ehnDGwXx.js";
5
- import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-C-ECRrM8.js";
4
+ import { A as hasAllGuildPermissionsDiscord, M as hasAnyGuildPermissionDiscord, O as fetchChannelPermissionsDiscord, k as fetchMemberGuildPermissionsDiscord, w as DiscordSendError } from "./send.shared-CXctTF1I.js";
5
+ import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-NOtxlJZ3.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-BnkWtVpA.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-BzXZ8iUI.js";
8
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-ZrMnBa8C.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-xSazIM0F.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-3r8QQkTY.js";
8
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-LjX_KYiO.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-DA70ebm-.js";
10
10
  import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
11
- import { t as discordMessageActions } from "./channel-actions-DZfkB0nd.js";
11
+ import { t as discordMessageActions } from "./channel-actions-BOH34yJ5.js";
12
12
  import { C as resolveThreadBindingMaxAgeMs, S as resolveThreadBindingMaxAgeExpiresAt, b as resolveThreadBindingIdleTimeoutMs, l as isRecentlyUnboundThreadWebhookMessage, x as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-BsOnj5NX.js";
13
13
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-D5gY2ZTE.js";
14
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-pD06YNCU.js";
15
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-BiWLqNNO.js";
16
- import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-irWYI8YX.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-Bw40FTRZ.js";
18
- import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-LoYZzlss.js";
19
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DfIM7zSY.js";
14
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CQ13aBCV.js";
15
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Bj4Y4uWR.js";
16
+ import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-JrJXT7L0.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-Cm3GqlNC.js";
18
+ import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-DqJuGG-r.js";
19
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CSBPZIYV.js";
20
20
  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-l_PsHQvX.js";
21
21
  import "./runtime-api.actions.js";
22
- import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-BdUjE2tr.js";
22
+ import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-D6BXQsYY.js";
23
23
  import "./runtime-api.lookup.js";
24
- import { S as sanitizeDiscordThreadName, _ as registerDiscordListener, b as resolveDiscordReplyTarget, c as resolveDiscordGatewayIntents, d as createDiscordNativeCommand, l as waitForDiscordGatewayPluginRegistration, s as createDiscordGatewayPlugin, t as monitorDiscordProvider } from "./provider-CO6pih5z.js";
25
- import { i as buildDiscordMediaPayload } from "./message-utils-4w0_DPFE.js";
26
- import { t as createDiscordMessageHandler } from "./message-handler-B5-UG_oD.js";
27
- import "./runtime-api.monitor-BjgSsR6H.js";
24
+ import { C as resolveDiscordReplyTarget, T as sanitizeDiscordThreadName, b as registerDiscordListener, c as resolveDiscordGatewayIntents, d as createDiscordNativeCommand, l as waitForDiscordGatewayPluginRegistration, s as createDiscordGatewayPlugin, t as monitorDiscordProvider } from "./provider-DIVQuJTw.js";
25
+ import { i as buildDiscordMediaPayload } from "./message-utils-BlvuUPP4.js";
26
+ import { t as createDiscordMessageHandler } from "./message-handler-DhqxKFLP.js";
27
+ import "./runtime-api.monitor-P-emTjcx.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, isDiscordGroupAllowedByPolicy, isDiscordModerationAction, isRecentlyUnboundThreadWebhookMessage, kickMemberDiscord, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, listGuildChannelsDiscord, listGuildEmojisDiscord, listPinsDiscord, listScheduledEventsDiscord, listThreadBindingsBySessionKey, listThreadBindingsForAccount, listThreadsDiscord, mergeAbortSignals, monitorDiscordProvider, moveChannelDiscord, normalizeDiscordAllowList, 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, 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-C-ECRrM8.js";
1
+ import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-NOtxlJZ3.js";
2
2
  import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
3
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-pD06YNCU.js";
4
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-BiWLqNNO.js";
5
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DfIM7zSY.js";
6
- import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-BdUjE2tr.js";
3
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CQ13aBCV.js";
4
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Bj4Y4uWR.js";
5
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CSBPZIYV.js";
6
+ import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-D6BXQsYY.js";
7
7
  export { auditDiscordChannelPermissions, collectDiscordAuditChannelIds, fetchDiscordApplicationId, fetchDiscordApplicationSummary, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, parseApplicationIdFromToken, probeDiscord, resolveDiscordChannelAllowlist, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordUserAllowlist, setDiscordRuntime };
@@ -0,0 +1,5 @@
1
+ import "./allow-list-BnkWtVpA.js";
2
+ import "./provider-DIVQuJTw.js";
3
+ import "./message-utils-BlvuUPP4.js";
4
+ import "./message-handler-DhqxKFLP.js";
5
+ export {};