@openclaw/discord 2026.6.11 → 2026.7.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/action-runtime-api.js +1 -1
  2. package/dist/{api-4GFMoWu0.js → api-CJvEMuA6.js} +9 -2
  3. package/dist/api.js +14 -14
  4. package/dist/{approval-handler.runtime-SsFtZQA6.js → approval-handler.runtime-Cg7CuLSc.js} +3 -3
  5. package/dist/{audit-CAnmyf2A.js → audit-BCVhE9Oe.js} +3 -3
  6. package/dist/{channel-YA7AbYP3.js → channel-CfngVOjW.js} +17 -37
  7. package/dist/{channel-actions-BJ3n5Z1l.js → channel-actions-DJ_i4v9b.js} +3 -6
  8. package/dist/{channel-actions.runtime-D2QTRgZ9.js → channel-actions.runtime-BDW12z0o.js} +5 -5
  9. package/dist/channel-plugin-api.js +1 -1
  10. package/dist/{channel.setup-B1zDEAR7.js → channel.setup-BYZ78cmU.js} +3 -3
  11. package/dist/{components-Dm4c_ce6.js → components-CBPNJhVP.js} +1 -1
  12. package/dist/{conversation-identity-DZ0BD7xO.js → conversation-identity-CnYbx3sO.js} +2 -2
  13. package/dist/{directory-config-BK1OhHa3.js → directory-config-CouAqvDj.js} +1 -1
  14. package/dist/directory-contract-api.js +1 -1
  15. package/dist/{directory-live-DP3CmwGf.js → directory-live-C8lwwDJo.js} +2 -2
  16. package/dist/{doctor-D3ngpo-Y.js → doctor-CKIw8urm.js} +1 -1
  17. package/dist/{handle-action.guild-admin-B2cOoU2D.js → handle-action.guild-admin-CHMDXefq.js} +2 -2
  18. package/dist/index.js +1 -1
  19. package/dist/{manager.runtime-CPHxr9B3.js → manager.runtime-BkMOU8kh.js} +4 -4
  20. package/dist/{message-handler-CKaTgBIV.js → message-handler-B2cEpj5S.js} +11 -15
  21. package/dist/{message-handler.preflight--eAiaewz.js → message-handler.preflight-B93Az6zg.js} +15 -41
  22. package/dist/{message-handler.process-PhKAmrEd.js → message-handler.process-CW5mMw4o.js} +204 -33
  23. package/dist/{message-utils-O1vK3kPu.js → message-utils-Dy9KeClm.js} +1 -1
  24. package/dist/{outbound-adapter-fO_7hbTh.js → outbound-adapter-n_qRwyHZ.js} +17 -23
  25. package/dist/{pluralkit-B3MzPaPU.js → pluralkit-DaWTJTmF.js} +3 -3
  26. package/dist/{preflight-audio-ClWbnQto.js → preflight-audio-DecwnhEA.js} +2 -5
  27. package/dist/{probe-CxnDikWm.js → probe-Bkf8mJlj.js} +3 -2
  28. package/dist/{probe.runtime-DLFkSDVB.js → probe.runtime-3Rerer9g.js} +1 -1
  29. package/dist/{provider-BJaJ20MY.js → provider-BuTO6czP.js} +68 -60
  30. package/dist/{provider-session.runtime-D6xc-60s.js → provider-session.runtime-DmBTGaQX.js} +3 -3
  31. package/dist/provider.runtime-CqZpKOCE.js +2 -0
  32. package/dist/{resolve-allowlist-common-BDpBb8dF.js → resolve-allowlist-common-BDNoAQll.js} +1 -1
  33. package/dist/{resolve-channels-iJIjYfRw.js → resolve-channels-C_rAwrkj.js} +3 -3
  34. package/dist/{resolve-users-_fv1mm1f.js → resolve-users-Cz1tkemy.js} +3 -3
  35. package/dist/{runtime-ywXByivr.js → runtime-DaaaVvJm.js} +330 -303
  36. package/dist/runtime-api.actions.js +2 -2
  37. package/dist/runtime-api.js +19 -19
  38. package/dist/runtime-api.lookup.js +5 -5
  39. package/dist/runtime-api.monitor-ChuqOjHq.js +6 -0
  40. package/dist/runtime-api.monitor.js +4 -4
  41. package/dist/runtime-api.send.js +5 -5
  42. package/dist/runtime-api.threads.js +3 -3
  43. package/dist/{send-Dc5uQX5H.js → send-B_yfprXu.js} +18 -9
  44. package/dist/{send.components-D4bl20xr.js → send.components-C2psXc7A.js} +4 -4
  45. package/dist/{send.outbound-5axvwLkl.js → send.outbound-BPcCF1v2.js} +5 -4
  46. package/dist/{send.receipt-B21MspvT.js → send.receipt-CK162xD0.js} +28 -1
  47. package/dist/{send.shared-9082A2sO.js → send.shared-CUTfqvXx.js} +4 -15
  48. package/dist/session-binding-contract-api.js +1 -1
  49. package/dist/setup-plugin-api.js +1 -1
  50. package/dist/{shared-D11J9bXI.js → shared-AnStShZr.js} +3 -10
  51. package/dist/{subagent-hooks-NTv6B4up.js → subagent-hooks-DkO-jpvh.js} +2 -2
  52. package/dist/subagent-hooks-api.js +2 -5
  53. package/dist/{system-events-BzaI1WpN.js → system-events-XRYuwB2n.js} +1 -1
  54. package/dist/{target-resolver-agnOrtOU.js → target-resolver-DYufMbXm.js} +2 -2
  55. package/dist/targets-BA7gf0K0.js +3 -0
  56. package/dist/{thread-bindings-DNitaHVh.js → thread-bindings-BuXtcLSp.js} +4 -4
  57. package/dist/{thread-bindings.discord-api-CjYNuvZa.js → thread-bindings.discord-api-CetgvIbE.js} +4 -4
  58. package/dist/{thread-bindings.manager-PZvJ4TJx.js → thread-bindings.manager-B7AHjU4s.js} +3 -3
  59. package/dist/{transcripts-source-Bi8N6h5X.js → transcripts-source-DW6d1eCL.js} +1 -1
  60. package/dist/transcripts-source-api.js +1 -1
  61. package/dist/{typing-BdRqXUN3.js → typing-BMQEI8OW.js} +1 -1
  62. package/npm-shrinkwrap.json +3 -3
  63. package/package.json +4 -4
  64. package/dist/provider.runtime-jNlHxUSW.js +0 -2
  65. package/dist/runtime-api.monitor-Bb5AaRzg.js +0 -6
  66. package/dist/targets-ClUPljCU.js +0 -3
@@ -1,23 +1,24 @@
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-B21MspvT.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-CK162xD0.js";
2
2
  import { c as resolveDiscordAccountAllowFrom, d as resolveDiscordAccountDmPolicy, f as resolveDiscordMaxLinesPerMessage, p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-P19jm1lf.js";
3
- import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-Dm4c_ce6.js";
4
- import { a as resolveDiscordComponentEntryWithPersistence, o as resolveDiscordModalEntryWithPersistence, t as editDiscordComponentMessage } from "./send.components-D4bl20xr.js";
3
+ import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-CBPNJhVP.js";
4
+ import { a as resolveDiscordComponentEntryWithPersistence, o as resolveDiscordModalEntryWithPersistence, t as editDiscordComponentMessage } from "./send.components-C2psXc7A.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-9082A2sO.js";
7
- import { a as summarizeDiscordResponseBody, i as isDiscordRateLimitResponseBody } from "./api-4GFMoWu0.js";
6
+ import { B as DISCORD_REST_TIMEOUT_MS, D as canViewDiscordGuildChannel, H as withValidatedDiscordProxy, I as createDiscordRestClient, V as validateDiscordProxyUrl } from "./send.shared-CUTfqvXx.js";
7
+ import { a as summarizeDiscordResponseBody, i as isDiscordRateLimitResponseBody } from "./api-CJvEMuA6.js";
8
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-C-MqM-B_.js";
9
- import { s as sendVoiceMessageDiscord } from "./send-Dc5uQX5H.js";
10
- import { o as formatMention, t as sendMessageDiscord } from "./send.outbound-5axvwLkl.js";
9
+ import { s as sendVoiceMessageDiscord } from "./send-B_yfprXu.js";
10
+ import { o as formatMention, t as sendMessageDiscord } from "./send.outbound-BPcCF1v2.js";
11
11
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.js";
12
- import { a as getDiscordExecApprovalApprovers, s as isDiscordExecApprovalClientEnabled, t as resolveDiscordConversationIdentity } from "./conversation-identity-DZ0BD7xO.js";
12
+ import { a as getDiscordExecApprovalApprovers, s as isDiscordExecApprovalClientEnabled, t as resolveDiscordConversationIdentity } from "./conversation-identity-CnYbx3sO.js";
13
13
  import { d as withAbortTimeout, l as raceWithTimeout } from "./timeouts-C5TBc_9x.js";
14
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-iJIjYfRw.js";
15
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-_fv1mm1f.js";
16
- 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-CjYNuvZa.js";
17
- import { r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CxnDikWm.js";
18
- import { d as resolveDiscordMessageChannelId, n as resolveDiscordForwardedMessagesTextFromSnapshots, t as resolveDiscordEmbedText, u as resolveDiscordChannelInfo } from "./message-utils-O1vK3kPu.js";
14
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-C_rAwrkj.js";
15
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-Cz1tkemy.js";
16
+ 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-CetgvIbE.js";
17
+ import { r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-Bkf8mJlj.js";
18
+ import { d as resolveDiscordMessageChannelId, n as resolveDiscordForwardedMessagesTextFromSnapshots, t as resolveDiscordEmbedText, u as resolveDiscordChannelInfo } from "./message-utils-Dy9KeClm.js";
19
19
  import { t as resolveDiscordSenderIdentity } from "./sender-identity-CEsfDF0L.js";
20
- import "./approval-handler.runtime-SsFtZQA6.js";
20
+ import "./approval-handler.runtime-Cg7CuLSc.js";
21
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
21
22
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
22
23
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalStringifiedId, normalizeStringEntries, normalizeStringEntriesLower, summarizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
23
24
  import { buildAgentSessionKey, deriveLastRoutePolicy, isAcpSessionKey, isSubagentSessionKey, parseAgentSessionKey, resolveAgentIdFromSessionKey, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
@@ -39,6 +40,7 @@ import { createNonExitingRuntime, createSubsystemLogger, danger, formatDurationS
39
40
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
40
41
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
41
42
  import { chunkItems, sanitizeAssistantVisibleText, sanitizeAssistantVisibleTextWithProfile } from "openclaw/plugin-sdk/text-chunking";
43
+ import { sliceUtf16Safe, truncateUtf16Safe, withTimeout } from "openclaw/plugin-sdk/text-utility-runtime";
42
44
  import { buildOutboundSessionContext, createChannelMessageReplyPipeline, resolveChannelStreamingBlockEnabled, sendDurableMessageBatch } from "openclaw/plugin-sdk/channel-outbound";
43
45
  import { fetchWithSsrFGuard, formatErrorMessage as formatErrorMessage$1 } from "openclaw/plugin-sdk/ssrf-runtime";
44
46
  import { GROUP_POLICY_BLOCKED_LABEL, resolveDefaultGroupPolicy, resolveOpenProviderRuntimeGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce } from "openclaw/plugin-sdk/runtime-group-policy";
@@ -47,7 +49,6 @@ import { CHANNEL_APPROVAL_NATIVE_RUNTIME_CONTEXT_CAPABILITY } from "openclaw/plu
47
49
  import { addAllowlistUserEntriesFromConfigEntry, buildAllowlistResolutionSummary, canonicalizeAllowlistWithResolvedIds, patchAllowlistUsersInConfigEntries, summarizeMapping } from "openclaw/plugin-sdk/allow-from";
48
50
  import { buildPairingReply, upsertChannelPairingRequest, upsertChannelPairingRequest as upsertChannelPairingRequest$1 } from "openclaw/plugin-sdk/conversation-runtime";
49
51
  import { clearExpiredCooldowns, ensureAuthProfileStore, formatReasoningMessage, isProfileInCooldown, loadModelCatalog, resolveAgentAvatar, resolveDefaultModelForAgent, resolveHumanDelayConfig, resolveProfilesUnavailableReason } from "openclaw/plugin-sdk/agent-runtime";
50
- import { truncateUtf16Safe, withTimeout } from "openclaw/plugin-sdk/text-utility-runtime";
51
52
  import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
52
53
  import { resolveNativeCommandsEnabled, resolveNativeSkillsEnabled } from "openclaw/plugin-sdk/native-command-config-runtime";
53
54
  import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared";
@@ -56,7 +57,7 @@ import { createChannelIngressResolver, defineStableChannelIngressIdentity, readC
56
57
  import { applyModelOverrideToSessionEntry, resolveChannelModelOverride } from "openclaw/plugin-sdk/model-session-runtime";
57
58
  import { completeWithPreparedSimpleCompletionModel, extractAssistantText, prepareSimpleCompletionModelForAgent } from "openclaw/plugin-sdk/simple-completion-runtime";
58
59
  import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
59
- import { getSessionEntry, listSessionEntries, loadSessionStore, patchSessionEntry, readSessionUpdatedAt as readSessionUpdatedAt$1, resolveStorePath, resolveStorePath as resolveStorePath$1 } from "openclaw/plugin-sdk/session-store-runtime";
60
+ import { getSessionEntry, listSessionEntries, patchSessionEntry, readSessionUpdatedAt as readSessionUpdatedAt$1, resolveStorePath, resolveStorePath as resolveStorePath$1 } from "openclaw/plugin-sdk/session-store-runtime";
60
61
  import { formatInboundEnvelope, resolveEnvelopeFormatOptions, runChannelInboundEvent } from "openclaw/plugin-sdk/channel-inbound";
61
62
  import { buildCommandTextFromArgs, findCommandByNativeName, formatCommandArgMenuTitle, listChatCommands, listNativeCommandSpecsForConfig, listSkillCommandsForAgents, resolveCommandAuthorizedFromAuthorizers, resolveNativeCommandSessionTargets, resolveStoredModelOverride, serializeCommandArgs } from "openclaw/plugin-sdk/command-auth-native";
62
63
  import { buildCommandTextFromArgs as buildCommandTextFromArgs$1, findCommandByNativeName as findCommandByNativeName$1, parseCommandArgs, resolveCommandArgChoices, resolveCommandArgMenu, serializeCommandArgs as serializeCommandArgs$1 } from "openclaw/plugin-sdk/native-command-registry";
@@ -391,14 +392,21 @@ function stripThreadTitleWrappers(raw) {
391
392
  while (current && current !== previous) {
392
393
  previous = current;
393
394
  current = current.replace(/^["'`]+|["'`]+$/g, "").trim();
394
- current = current.replace(/^\*\*(.+)\*\*$/u, "$1").trim();
395
- current = current.replace(/^__(.+)__$/u, "$1").trim();
396
- current = current.replace(/^\*(.+)\*$/u, "$1").trim();
397
- current = current.replace(/^_(.+)_$/u, "$1").trim();
398
- current = current.replace(/^~~(.+)~~$/u, "$1").trim();
395
+ current = stripBalancedWrapper(current, "**");
396
+ current = stripBalancedWrapper(current, "__");
397
+ current = stripBalancedWrapper(current, "*");
398
+ current = stripBalancedWrapper(current, "_");
399
+ current = stripBalancedWrapper(current, "~~");
399
400
  }
400
401
  return current;
401
402
  }
403
+ function stripBalancedWrapper(text, marker) {
404
+ if (text.length < marker.length * 2 + 1) return text;
405
+ if (!text.startsWith(marker) || !text.endsWith(marker)) return text;
406
+ const inner = text.slice(marker.length, text.length - marker.length);
407
+ if (!inner || inner.includes(marker)) return text;
408
+ return inner;
409
+ }
402
410
  function normalizeTitleContextField(raw, maxChars) {
403
411
  const value = raw?.trim();
404
412
  if (!value) return;
@@ -2392,11 +2400,7 @@ const PICKER_VIEWS = [
2392
2400
  "models",
2393
2401
  "recents"
2394
2402
  ];
2395
- let modelsProviderRuntimePromise;
2396
- async function loadModelsProviderRuntime() {
2397
- modelsProviderRuntimePromise ??= import("openclaw/plugin-sdk/models-provider-runtime");
2398
- return await modelsProviderRuntimePromise;
2399
- }
2403
+ const loadModelsProviderRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/models-provider-runtime"));
2400
2404
  function encodeCustomIdValue(value) {
2401
2405
  return encodeURIComponent(value);
2402
2406
  }
@@ -3240,7 +3244,7 @@ function formatRecentsButtonLabel(modelRef, suffix) {
3240
3244
  const maxLen = 80;
3241
3245
  const label = suffix ? `${modelRef} ${suffix}` : modelRef;
3242
3246
  if (label.length <= maxLen) return label;
3243
- return suffix ? `${modelRef.slice(0, maxLen - suffix.length - 2)}… ${suffix}` : `${modelRef.slice(0, maxLen - 1)}…`;
3247
+ return suffix ? `${sliceUtf16Safe(modelRef, 0, maxLen - suffix.length - 2)}… ${suffix}` : `${sliceUtf16Safe(modelRef, 0, maxLen - 1)}…`;
3244
3248
  }
3245
3249
  function renderDiscordModelPickerRecentsView(params) {
3246
3250
  const defaultModelRef = `${params.data.resolvedDefault.provider}/${params.data.resolvedDefault.model}`;
@@ -3524,11 +3528,16 @@ async function resolveDiscordNativeChoiceContext(params) {
3524
3528
  cfg: params.cfg,
3525
3529
  agentId: route.agentId
3526
3530
  });
3527
- const sessionStore = loadSessionStore(resolveStorePath(params.cfg.session?.store, { agentId: route.agentId }));
3528
- const sessionEntry = sessionStore[route.sessionKey];
3531
+ const storePath = resolveStorePath(params.cfg.session?.store, { agentId: route.agentId });
3529
3532
  const override = resolveStoredModelOverride({
3530
- sessionEntry,
3531
- sessionStore,
3533
+ sessionEntry: getSessionEntry({
3534
+ storePath,
3535
+ sessionKey: route.sessionKey
3536
+ }),
3537
+ loadSessionEntry: (sessionKey) => getSessionEntry({
3538
+ storePath,
3539
+ sessionKey
3540
+ }),
3532
3541
  sessionKey: route.sessionKey,
3533
3542
  defaultProvider: fallback.provider
3534
3543
  });
@@ -3547,11 +3556,18 @@ async function resolveDiscordNativeChoiceContext(params) {
3547
3556
  function resolveDiscordModelPickerCurrentModel(params) {
3548
3557
  const fallback = buildDiscordModelPickerCurrentModel(params.data.resolvedDefault.provider, params.data.resolvedDefault.model);
3549
3558
  try {
3550
- const sessionStore = loadSessionStore(resolveStorePath(params.cfg.session?.store, { agentId: params.route.agentId }), { skipCache: true });
3551
- const sessionEntry = sessionStore[params.route.sessionKey];
3559
+ const storePath = resolveStorePath(params.cfg.session?.store, { agentId: params.route.agentId });
3552
3560
  const override = resolveStoredModelOverride({
3553
- sessionEntry,
3554
- sessionStore,
3561
+ sessionEntry: getSessionEntry({
3562
+ storePath,
3563
+ sessionKey: params.route.sessionKey,
3564
+ readConsistency: "latest"
3565
+ }),
3566
+ loadSessionEntry: (sessionKey) => getSessionEntry({
3567
+ storePath,
3568
+ sessionKey,
3569
+ readConsistency: "latest"
3570
+ }),
3555
3571
  sessionKey: params.route.sessionKey,
3556
3572
  defaultProvider: params.data.resolvedDefault.provider
3557
3573
  });
@@ -3565,7 +3581,11 @@ function resolveDiscordModelPickerCurrentModel(params) {
3565
3581
  }
3566
3582
  function resolveDiscordModelPickerCurrentRuntime(params) {
3567
3583
  try {
3568
- const sessionRuntime = normalizeOptionalString(loadSessionStore(resolveStorePath(params.cfg.session?.store, { agentId: params.route.agentId }), { skipCache: true })[params.route.sessionKey]?.agentRuntimeOverride);
3584
+ const sessionRuntime = normalizeOptionalString(getSessionEntry({
3585
+ storePath: resolveStorePath(params.cfg.session?.store, { agentId: params.route.agentId }),
3586
+ sessionKey: params.route.sessionKey,
3587
+ readConsistency: "latest"
3588
+ })?.agentRuntimeOverride);
3569
3589
  if (sessionRuntime) return sessionRuntime;
3570
3590
  } catch {}
3571
3591
  return "auto";
@@ -4596,6 +4616,10 @@ async function dispatchDiscordCommandInteraction(params) {
4596
4616
  messageThreadId,
4597
4617
  threadParentId: pluginThreadParentId
4598
4618
  });
4619
+ if (pluginReply.suppressReply === true) return {
4620
+ accepted: true,
4621
+ effectiveRoute
4622
+ };
4599
4623
  if (!hasRenderableReplyPayload(pluginReply)) {
4600
4624
  await respond(DISCORD_EMPTY_VISIBLE_REPLY_WARNING);
4601
4625
  return {
@@ -7946,16 +7970,8 @@ async function deliverDiscordReply(params) {
7946
7970
  }
7947
7971
  //#endregion
7948
7972
  //#region extensions/discord/src/monitor/agent-components.dispatch.ts
7949
- let conversationRuntimePromise$1;
7950
- let typingRuntimePromise;
7951
- async function loadConversationRuntime$1() {
7952
- conversationRuntimePromise$1 ??= import("./agent-components.runtime-CEPrf2SY.js");
7953
- return await conversationRuntimePromise$1;
7954
- }
7955
- async function loadTypingRuntime() {
7956
- typingRuntimePromise ??= import("./typing-BdRqXUN3.js").then((n) => n.n);
7957
- return await typingRuntimePromise;
7958
- }
7973
+ const loadConversationRuntime$1 = createLazyRuntimeModule(() => import("./agent-components.runtime-CEPrf2SY.js"));
7974
+ const loadTypingRuntime = createLazyRuntimeModule(() => import("./typing-BMQEI8OW.js").then((n) => n.n));
7959
7975
  function buildDiscordComponentConversationLabel(params) {
7960
7976
  if (params.interactionCtx.isDirectMessage) return buildDirectLabel(params.interactionCtx.user);
7961
7977
  if (params.interactionCtx.isGroupDm) return `Group DM #${params.channelCtx.channelName ?? params.interactionCtx.channelId} channel id:${params.interactionCtx.channelId}`;
@@ -8246,11 +8262,7 @@ async function dispatchDiscordPluginInteractiveHandler(params) {
8246
8262
  }
8247
8263
  //#endregion
8248
8264
  //#region extensions/discord/src/monitor/agent-components.plugin-interactive.ts
8249
- let conversationRuntimePromise;
8250
- async function loadConversationRuntime() {
8251
- conversationRuntimePromise ??= import("./agent-components.runtime-CEPrf2SY.js");
8252
- return await conversationRuntimePromise;
8253
- }
8265
+ const loadConversationRuntime = createLazyRuntimeModule(() => import("./agent-components.runtime-CEPrf2SY.js"));
8254
8266
  async function dispatchPluginDiscordInteractiveEvent(params) {
8255
8267
  const normalizedConversationId = params.interactionCtx.rawGuildId || params.channelCtx.channelType === ChannelType.GroupDM ? `channel:${params.interactionCtx.channelId}` : `user:${params.interactionCtx.userId}`;
8256
8268
  let responded = false;
@@ -8372,11 +8384,7 @@ async function dispatchPluginDiscordInteractiveEvent(params) {
8372
8384
  }
8373
8385
  //#endregion
8374
8386
  //#region extensions/discord/src/monitor/agent-components.handlers.ts
8375
- let componentsRuntimePromise;
8376
- async function loadComponentsRuntime() {
8377
- componentsRuntimePromise ??= import("./components-Dm4c_ce6.js").then((n) => n.t);
8378
- return await componentsRuntimePromise;
8379
- }
8387
+ const loadComponentsRuntime = createLazyRuntimeModule(() => import("./components-CBPNJhVP.js").then((n) => n.t));
8380
8388
  async function handleDiscordComponentEvent(params) {
8381
8389
  const parsed = parseDiscordComponentData(params.data, resolveInteractionCustomId(params.interaction));
8382
8390
  if (!parsed) {
@@ -9592,7 +9600,7 @@ async function runDiscordGatewayLifecycle(params) {
9592
9600
  gatewayEmitter?.removeListener(DISCORD_GATEWAY_TRANSPORT_ACTIVITY_EVENT, onGatewayTransportActivity);
9593
9601
  if (params.voiceManager) {
9594
9602
  await params.voiceManager.destroy();
9595
- const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-Bi8N6h5X.js").then((n) => n.n);
9603
+ const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-DW6d1eCL.js").then((n) => n.n);
9596
9604
  setDiscordTranscriptsVoiceManager({
9597
9605
  accountId: params.accountId,
9598
9606
  manager: null
@@ -9870,7 +9878,7 @@ function logDiscordStartupPhase(params) {
9870
9878
  });
9871
9879
  }
9872
9880
  async function loadDiscordVoiceRuntime() {
9873
- const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-CPHxr9B3.js");
9881
+ const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-BkMOU8kh.js");
9874
9882
  discordVoiceRuntimePromise = promise;
9875
9883
  try {
9876
9884
  return await promise;
@@ -9880,7 +9888,7 @@ async function loadDiscordVoiceRuntime() {
9880
9888
  }
9881
9889
  }
9882
9890
  async function loadDiscordProviderSessionRuntime() {
9883
- const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-D6xc-60s.js");
9891
+ const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-DmBTGaQX.js");
9884
9892
  discordProviderSessionRuntimePromise = promise;
9885
9893
  try {
9886
9894
  return await promise;
@@ -10151,7 +10159,7 @@ async function monitorDiscordProvider(opts = {}) {
10151
10159
  runtime,
10152
10160
  botUserId
10153
10161
  });
10154
- const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-Bi8N6h5X.js").then((n) => n.n);
10162
+ const { setDiscordTranscriptsVoiceManager } = await import("./transcripts-source-DW6d1eCL.js").then((n) => n.n);
10155
10163
  setDiscordTranscriptsVoiceManager({
10156
10164
  accountId: account.accountId,
10157
10165
  manager: voiceManager
@@ -1,6 +1,6 @@
1
- import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-DNitaHVh.js";
2
- import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-PZvJ4TJx.js";
3
- import { t as createDiscordMessageHandler } from "./message-handler-CKaTgBIV.js";
1
+ import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-BuXtcLSp.js";
2
+ import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-B7AHjU4s.js";
3
+ import { t as createDiscordMessageHandler } from "./message-handler-B2cEpj5S.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-BuTO6czP.js";
2
+ export { monitorDiscordProvider };
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeDiscordToken } from "./accounts-P19jm1lf.js";
2
- import { n as fetchDiscord } from "./api-4GFMoWu0.js";
2
+ import { n as fetchDiscord } from "./api-CJvEMuA6.js";
3
3
  import { a as normalizeDiscordSlug } from "./allow-list-C-MqM-B_.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-B21MspvT.js";
2
- import { n as fetchDiscord, t as DiscordApiError } from "./api-4GFMoWu0.js";
1
+ import { Wt as __exportAll } from "./send.receipt-CK162xD0.js";
2
+ import { n as fetchDiscord, t as DiscordApiError } from "./api-CJvEMuA6.js";
3
3
  import { a as normalizeDiscordSlug } from "./allow-list-C-MqM-B_.js";
4
- import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-BDpBb8dF.js";
4
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-BDNoAQll.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-B21MspvT.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";
1
+ import { Wt as __exportAll } from "./send.receipt-CK162xD0.js";
2
+ import { n as fetchDiscord } from "./api-CJvEMuA6.js";
3
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-BDNoAQll.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 });