@openclaw/discord 2026.9.7 → 2026.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.setup/{account-inspect-De8hOUxG.mjs → account-inspect-Bp8nbBSx.mjs} +2 -2
- package/dist/.setup/{channel-type-DRCrEMss.mjs → allow-list-Kty_8Xca.mjs} +7 -7
- package/dist/.setup/{api-DVbJwZVt.mjs → api-CotnTQLx.mjs} +3 -3
- package/dist/.setup/{approval-handler.runtime-DxCK2Rux.mjs → approval-handler.runtime-DqU_yO2L.mjs} +9 -9
- package/dist/.setup/{approval-message-updates-BKFqavHZ.mjs → approval-message-updates-CdnQ98c8.mjs} +2 -2
- package/dist/.setup/{audit-CLg9I71N.mjs → audit-CqUeNcJH.mjs} +4 -4
- package/dist/.setup/{channel-DxlUVU9t.mjs → channel-Bu1qLdnm.mjs} +28 -23
- package/dist/.setup/{channel.setup-CRo1GjV7.mjs → channel.setup-DRCLt54O.mjs} +4 -4
- package/dist/.setup/{components-Cq1PvIpN.mjs → components-CwpgbGDR.mjs} +3 -3
- package/dist/.setup/{conversation-binding-route-Caz_XuFH.mjs → conversation-binding-route-DC0Y2v1B.mjs} +1 -1
- package/dist/.setup/{directory-config-esqNn0Eo.mjs → directory-config-DLT0PP2j.mjs} +1 -1
- package/dist/.setup/{directory-live-DtKRHuGV.mjs → directory-live-DPVUIJ8-.mjs} +4 -4
- package/dist/.setup/{discord-0xJYfdDD.mjs → discord-DTLP81g6.mjs} +3 -3
- package/dist/.setup/{doctor-BCl1H5tl.mjs → doctor-E3AF74Ms.mjs} +5 -5
- package/dist/.setup/{handle-action-CUvQWnE7.mjs → handle-action-cmTFQysA.mjs} +8 -8
- package/dist/.setup/{handle-action.guild-admin-Df-8gVle.mjs → handle-action.guild-admin-CH8nj2w0.mjs} +2 -2
- package/dist/.setup/{live-policy-config-8Pv20CHc.mjs → live-policy-config-D--q9Zta.mjs} +1 -1
- package/dist/.setup/{message-handler-B-Jk4oDk.mjs → message-handler-BVZO6wCg.mjs} +12 -11
- package/dist/.setup/{message-handler.preflight-v-__NSDq.mjs → message-handler.preflight-Be_b_NFp.mjs} +17 -17
- package/dist/.setup/{message-handler.preflight-pluralkit-CWLUBVcx.mjs → message-handler.preflight-pluralkit-TPGXsd8P.mjs} +7 -7
- package/dist/.setup/{message-handler.process-BNFFuChn.mjs → message-handler.process-BUBGcAoh.mjs} +21 -21
- package/dist/.setup/{outbound-adapter-BobT-kse.mjs → outbound-adapter-CSiCDzCN.mjs} +9 -9
- package/dist/.setup/{outbound-session-route-zVGxxceg.mjs → outbound-session-route-D0ryINch.mjs} +13 -13
- package/dist/.setup/{probe-LYrIHlBF.mjs → probe-DTSDdlpy.mjs} +4 -4
- package/dist/.setup/{provider-B_G5hASF.mjs → provider-BTm60b3t.mjs} +81 -81
- package/dist/.setup/{provider-session.runtime-BYlTBFD2.mjs → provider-session.runtime-DKJ-qSt9.mjs} +3 -3
- package/dist/.setup/provider.runtime-BvoZBuZY.mjs +2 -0
- package/dist/.setup/{realtime-session.runtime-oUd9DOcz.mjs → realtime-session.runtime-JZd7A5bS.mjs} +19 -19
- package/dist/.setup/{resolve-allowlist-common-DPdRggu5.mjs → resolve-allowlist-common-Ck4M_Ot2.mjs} +3 -3
- package/dist/.setup/{resolve-channels-BFPNRmVv.mjs → resolve-channels-CEaKGzuh.mjs} +3 -3
- package/dist/.setup/{resolve-users-0-aBuCy3.mjs → resolve-users-CMz4PVnV.mjs} +2 -2
- package/dist/.setup/{runtime-FN000lxA.mjs → runtime-DwW5C0WK.mjs} +12 -12
- package/dist/.setup/{runtime-sUksZ--Q.mjs → runtime-Lsy4dEx7.mjs} +2 -2
- package/dist/.setup/{send-CrfEI6Bs.mjs → send-DY5EeBPr.mjs} +15 -15
- package/dist/.setup/{send.components-DxQAMfES.mjs → send.components-DGwzyA_4.mjs} +7 -7
- package/dist/.setup/{send.outbound-BISKnb-a.mjs → send.outbound-DR8O-Pvo.mjs} +8 -8
- package/dist/.setup/{retry-pz_cSha2.mjs → send.receipt-D0JBijZQ.mjs} +217 -217
- package/dist/.setup/{send.shared-DGFkbkQR.mjs → send.shared-r0Fj2v_h.mjs} +40 -40
- package/dist/.setup/{sender-identity-B9X5Vb9R.mjs → sender-identity-DQCoikZl.mjs} +1 -1
- package/dist/.setup/setup-plugin-api-BEoo_L8p.mjs +3 -0
- package/dist/.setup/{shared-B3wZ4hN-.mjs → shared-CDq4vJm3.mjs} +7 -7
- package/dist/.setup/{subagent-hooks-nlUE9ow7.mjs → subagent-hooks-Bk0mMyHh.mjs} +2 -2
- package/dist/.setup/{system-events-CdeZnvPV.mjs → system-events-I1rH-U6o.mjs} +2 -2
- package/dist/.setup/{target-resolver-BuLapkhy.mjs → target-resolver-Dcg0WjsF.mjs} +3 -3
- package/dist/.setup/targets-CJkVZIkE.mjs +3 -0
- package/dist/.setup/{thread-bindings-D7TfgjR_.mjs → thread-bindings-E0TiUQUX.mjs} +6 -6
- package/dist/.setup/{thread-bindings.manager-DN-NissX.mjs → thread-bindings.manager-CEoFDOs9.mjs} +14 -14
- package/dist/.setup/{thread-bindings.session-updates-CshfKghV.mjs → thread-bindings.session-updates-DvtjzKO-.mjs} +2 -2
- package/dist/.setup/{transcripts-source-p8EV179h.mjs → transcripts-source-CHhpvL97.mjs} +17 -17
- package/dist/.setup/{typing-BiHCzBRu.mjs → typing-Cr0b2zBq.mjs} +1 -1
- package/dist/.setup/{voice-runtime-B46rcwrG.mjs → voice-runtime-BngIfPc3.mjs} +46 -46
- package/dist/account-inspect-api.js +1 -1
- package/dist/action-runtime-api.js +1 -1
- package/dist/activities-api.js +791 -1
- package/dist/api.js +15 -15
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/index.js +9 -5
- package/dist/runtime-api.js +20 -20
- package/dist/setup-entry.js +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/src/voice/audio-worker.runtime.js +3 -3
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/transcripts-source-api.js +1 -1
- package/package.json +4 -4
- package/dist/.setup/activities-api-tvbsU2e3.mjs +0 -792
- package/dist/.setup/provider.runtime-CUE3UxER.mjs +0 -2
- package/dist/.setup/setup-plugin-api-BQUBxbhe.mjs +0 -3
- package/dist/.setup/targets-0KUcEIYx.mjs +0 -3
- package/dist/.setup/{accounts-ChaMcixG.mjs → accounts-DS-A-gCx.mjs} +3 -3
- package/dist/.setup/{config-schema-oxELUSDx.mjs → config-schema-DKUSr985.mjs} +2 -2
- package/dist/.setup/{receive-recovery-CHPOsnLc.mjs → receive-recovery-D6eikHf5.mjs} +2 -2
- package/dist/.setup/{thread-bindings.state-g6v9zAym.mjs → thread-bindings.state-755lJHln.mjs} +3 -3
package/dist/.setup/{thread-bindings.manager-DN-NissX.mjs → thread-bindings.manager-CEoFDOs9.mjs}
RENAMED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { k as isDiscordThreadChannelType } from "./allow-list-Kty_8Xca.mjs";
|
|
3
|
+
import { P as createDiscordRestClient } from "./send.shared-r0Fj2v_h.mjs";
|
|
4
|
+
import { C as withDiscordRequestAuthority, mt as getChannel, nt as createChannelWebhook } from "./discord-DTLP81g6.mjs";
|
|
5
|
+
import { h as canFallbackDiscordWebhookSend, m as resolveDiscordChannelId } from "./send.receipt-D0JBijZQ.mjs";
|
|
6
|
+
import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-DY5EeBPr.mjs";
|
|
7
|
+
import { t as sendMessageDiscord } from "./send.outbound-DR8O-Pvo.mjs";
|
|
8
|
+
import { C as resolvePreparedThreadBindingLifecycle, D as resolveThreadBindingMaxAgeMs$1, M as toReusableWebhookKey, S as resolveBindingRecordKey, _ as refreshUnboundThreadWebhookIdentity, c as THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS, d as forgetThreadBindingToken, f as getThreadBindingToken, h as normalizeThreadBindingDurationMs, i as REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL, j as toBindingRecordKey, k as shouldDefaultPersist, m as normalizeTargetKind, n as MANAGERS_BY_ACCOUNT_ID, r as PERSIST_BY_ACCOUNT_ID, t as BINDINGS_BY_THREAD_ID, u as ensureBindingsLoadedAsync, v as rememberReusableWebhook, w as resolveThreadBindingIdleTimeoutMs$1, x as resolveBindingIdsForSession, y as rememberThreadBindingToken } from "./thread-bindings.state-755lJHln.mjs";
|
|
9
|
+
import { c as drainThreadBindingAccountOperations, d as runThreadBindingAccountOperation, f as runThreadBindingMutation, h as updateBindingRecordSync, l as drainThreadBindingMutations, m as snapshotThreadBindingJson, p as shouldPersistAnyBindingState, s as commitBindingRecord } from "./thread-bindings.session-updates-DvtjzKO-.mjs";
|
|
7
10
|
import { n as resolveDiscordChannelInfoSafe, t as resolveDiscordChannelIdSafe } from "./channel-access-C12aDZ0p.mjs";
|
|
8
|
-
import {
|
|
9
|
-
import { C as resolvePreparedThreadBindingLifecycle, D as resolveThreadBindingMaxAgeMs$1, M as toReusableWebhookKey, S as resolveBindingRecordKey, _ as refreshUnboundThreadWebhookIdentity, c as THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS, d as forgetThreadBindingToken, f as getThreadBindingToken, h as normalizeThreadBindingDurationMs, i as REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL, j as toBindingRecordKey, k as shouldDefaultPersist, m as normalizeTargetKind, n as MANAGERS_BY_ACCOUNT_ID, r as PERSIST_BY_ACCOUNT_ID, t as BINDINGS_BY_THREAD_ID, u as ensureBindingsLoadedAsync, v as rememberReusableWebhook, w as resolveThreadBindingIdleTimeoutMs$1, x as resolveBindingIdsForSession, y as rememberThreadBindingToken } from "./thread-bindings.state-g6v9zAym.mjs";
|
|
10
|
-
import { c as drainThreadBindingAccountOperations, d as runThreadBindingAccountOperation, f as runThreadBindingMutation, h as updateBindingRecordSync, l as drainThreadBindingMutations, m as snapshotThreadBindingJson, p as shouldPersistAnyBindingState, s as commitBindingRecord } from "./thread-bindings.session-updates-CshfKghV.mjs";
|
|
11
|
-
import { parseStrictNonNegativeInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
12
|
-
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
11
|
+
import { createSubsystemLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
13
12
|
import { asOptionalObjectRecord, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
13
|
+
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
14
14
|
import { getRuntimeConfigSnapshot } from "openclaw/plugin-sdk/runtime-config-snapshot";
|
|
15
|
-
import {
|
|
16
|
-
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
15
|
+
import { parseStrictNonNegativeInteger as parseStrictNonNegativeInteger$1 } from "openclaw/plugin-sdk/number-runtime";
|
|
17
16
|
import { SYSTEM_MARK } from "openclaw/plugin-sdk/text-chunking";
|
|
17
|
+
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
18
18
|
import { registerSessionBindingAdapter, resolveThreadBindingConversationIdFromBindingId, resolveThreadBindingFarewellText, resolveThreadBindingThreadName, unregisterSessionBindingAdapter } from "openclaw/plugin-sdk/conversation-runtime";
|
|
19
19
|
import { resolveSessionAgentIdStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
|
|
20
20
|
//#region extensions/discord/src/monitor/thread-bindings.persona.ts
|
|
@@ -63,12 +63,12 @@ function summarizeDiscordError(err) {
|
|
|
63
63
|
function extractDiscordErrorStatus(err) {
|
|
64
64
|
if (!err || typeof err !== "object") return;
|
|
65
65
|
const candidate = err;
|
|
66
|
-
return parseStrictNonNegativeInteger(candidate.status) ?? parseStrictNonNegativeInteger(candidate.statusCode) ?? parseStrictNonNegativeInteger(candidate.response?.status);
|
|
66
|
+
return parseStrictNonNegativeInteger$1(candidate.status) ?? parseStrictNonNegativeInteger$1(candidate.statusCode) ?? parseStrictNonNegativeInteger$1(candidate.response?.status);
|
|
67
67
|
}
|
|
68
68
|
function extractDiscordErrorCode(err) {
|
|
69
69
|
if (!err || typeof err !== "object") return;
|
|
70
70
|
const candidate = err;
|
|
71
|
-
return parseStrictNonNegativeInteger(candidate.code) ?? parseStrictNonNegativeInteger(candidate.rawError?.code) ?? parseStrictNonNegativeInteger(candidate.body?.code) ?? parseStrictNonNegativeInteger(candidate.response?.body?.code) ?? parseStrictNonNegativeInteger(candidate.response?.data?.code);
|
|
71
|
+
return parseStrictNonNegativeInteger$1(candidate.code) ?? parseStrictNonNegativeInteger$1(candidate.rawError?.code) ?? parseStrictNonNegativeInteger$1(candidate.body?.code) ?? parseStrictNonNegativeInteger$1(candidate.response?.body?.code) ?? parseStrictNonNegativeInteger$1(candidate.response?.data?.code);
|
|
72
72
|
}
|
|
73
73
|
function isDiscordThreadGoneError(err) {
|
|
74
74
|
if (extractDiscordErrorCode(err) === 10003) return true;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
|
|
2
|
-
import { O as setBindingRecord, a as THREAD_BINDINGS_MAX_ENTRIES, b as removeBindingRecord, g as openThreadBindingsStore, l as ensureBindingsLoaded, n as MANAGERS_BY_ACCOUNT_ID, o as THREAD_BINDINGS_NAMESPACE, p as normalizePersistedBinding, r as PERSIST_BY_ACCOUNT_ID, s as THREAD_BINDINGS_STATE, t as BINDINGS_BY_THREAD_ID, u as ensureBindingsLoadedAsync, x as resolveBindingIdsForSession } from "./thread-bindings.state-
|
|
2
|
+
import { O as setBindingRecord, a as THREAD_BINDINGS_MAX_ENTRIES, b as removeBindingRecord, g as openThreadBindingsStore, l as ensureBindingsLoaded, n as MANAGERS_BY_ACCOUNT_ID, o as THREAD_BINDINGS_NAMESPACE, p as normalizePersistedBinding, r as PERSIST_BY_ACCOUNT_ID, s as THREAD_BINDINGS_STATE, t as BINDINGS_BY_THREAD_ID, u as ensureBindingsLoadedAsync, x as resolveBindingIdsForSession } from "./thread-bindings.state-755lJHln.mjs";
|
|
3
|
+
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
3
4
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
4
5
|
import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
|
|
5
|
-
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
6
6
|
//#region extensions/discord/src/monitor/thread-bindings.persistence.ts
|
|
7
7
|
function shouldPersistAnyBindingState() {
|
|
8
8
|
for (const value of PERSIST_BY_ACCOUNT_ID.values()) if (value) return true;
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { a as listEnabledDiscordAccounts, c as resolveDiscordAccount, l as resolveDiscordAccountAllowFrom } from "./accounts-DS-A-gCx.mjs";
|
|
3
|
+
import { E as getDiscordEndpointRuntime, O as resolveDiscordEndpointMediaGuard, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, k as isDiscordThreadChannelType, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, t as allowListMatches } from "./allow-list-Kty_8Xca.mjs";
|
|
4
|
+
import { _ as DiscordError, ft as editChannel, ht as getChannelMessage, lt as createThread, t as discord_exports } from "./discord-DTLP81g6.mjs";
|
|
5
5
|
import { t as resolveDiscordCommandOwnerAllowFrom } from "./command-owners-D78sAoOz.mjs";
|
|
6
6
|
import { a as resolveDiscordChannelParentSafe, i as resolveDiscordChannelParentIdSafe, n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe, t as resolveDiscordChannelIdSafe } from "./channel-access-C12aDZ0p.mjs";
|
|
7
|
+
import { createSubsystemLogger, getChildLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
8
|
+
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
9
|
+
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId, summarizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
10
|
+
import { buildAgentSessionKey } from "openclaw/plugin-sdk/routing";
|
|
7
11
|
import { ComponentType, StickerFormatType } from "discord-api-types/v10";
|
|
8
12
|
import { asDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
|
|
9
13
|
import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
10
14
|
import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
|
|
11
|
-
import {
|
|
12
|
-
import { buildAgentSessionKey } from "openclaw/plugin-sdk/routing";
|
|
13
|
-
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId, summarizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
14
|
-
import { getFileExtension, normalizeMimeType } from "openclaw/plugin-sdk/media-mime";
|
|
15
|
-
import { createSubsystemLogger, getChildLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
15
|
+
import { saveRemoteMedia } from "openclaw/plugin-sdk/media-runtime";
|
|
16
16
|
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
17
17
|
import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
|
|
18
|
-
import { saveRemoteMedia } from "openclaw/plugin-sdk/media-runtime";
|
|
19
|
-
import { resolveCommandAuthorizedFromAuthorizers } from "openclaw/plugin-sdk/command-auth-native";
|
|
20
18
|
import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
19
|
+
import { getFileExtension, normalizeMimeType } from "openclaw/plugin-sdk/media-mime";
|
|
21
20
|
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
22
21
|
import { resolveChannelModelOverride } from "openclaw/plugin-sdk/model-session-runtime";
|
|
23
22
|
import { generateConversationLabel } from "openclaw/plugin-sdk/reply-dispatch-runtime";
|
|
24
23
|
import { formatMediaPlaceholderText } from "openclaw/plugin-sdk/channel-inbound";
|
|
24
|
+
import { resolveCommandAuthorizedFromAuthorizers } from "openclaw/plugin-sdk/command-auth-native";
|
|
25
25
|
//#region extensions/discord/src/monitor/message-channel-info-state.ts
|
|
26
26
|
const discordChannelInfoCacheState = { entries: /* @__PURE__ */ new Map() };
|
|
27
27
|
//#endregion
|
|
@@ -1014,6 +1014,12 @@ async function resolveFetchedDiscordThreadLikeChannelContext(params) {
|
|
|
1014
1014
|
});
|
|
1015
1015
|
}
|
|
1016
1016
|
//#endregion
|
|
1017
|
+
//#region extensions/discord/src/voice/config.ts
|
|
1018
|
+
function resolveDiscordVoiceEnabled(voice) {
|
|
1019
|
+
if (voice?.enabled !== void 0) return voice.enabled;
|
|
1020
|
+
return voice !== void 0;
|
|
1021
|
+
}
|
|
1022
|
+
//#endregion
|
|
1017
1023
|
//#region extensions/discord/src/voice/owner-access.ts
|
|
1018
1024
|
async function resolveDiscordVoiceAccessTarget(params) {
|
|
1019
1025
|
const [guild, channel] = await Promise.all([params.client.fetchGuild(params.guildId).catch(() => null), params.client.fetchChannel(params.channelId).catch(() => null)]);
|
|
@@ -1140,12 +1146,6 @@ async function authorizeDiscordVoiceIngress(initialParams) {
|
|
|
1140
1146
|
};
|
|
1141
1147
|
}
|
|
1142
1148
|
//#endregion
|
|
1143
|
-
//#region extensions/discord/src/voice/config.ts
|
|
1144
|
-
function resolveDiscordVoiceEnabled(voice) {
|
|
1145
|
-
if (voice?.enabled !== void 0) return voice.enabled;
|
|
1146
|
-
return voice !== void 0;
|
|
1147
|
-
}
|
|
1148
|
-
//#endregion
|
|
1149
1149
|
//#region extensions/discord/src/voice/transcripts-source.ts
|
|
1150
1150
|
const TRANSCRIPTS_STATE = resolveGlobalSingleton(Symbol.for("openclaw.discordTranscriptsState"), () => ({
|
|
1151
1151
|
managersByAccountId: /* @__PURE__ */ new Map(),
|
|
@@ -1618,4 +1618,4 @@ const discordVoiceTranscriptsSourceProvider = {
|
|
|
1618
1618
|
}
|
|
1619
1619
|
};
|
|
1620
1620
|
//#endregion
|
|
1621
|
-
export { resolveDiscordMessageChannelId as A, resolveReferencedReplyMediaList as C, resolveDiscordReferencedReplyMessage as D, resolveDiscordMessageStickers as E, resolveDiscordReferencedReplyMessageId as O, resolveMediaList as S, hasDiscordMessageStickers as T, resolveDiscordMessageHistoryText as _,
|
|
1621
|
+
export { resolveDiscordMessageChannelId as A, resolveReferencedReplyMediaList as C, resolveDiscordReferencedReplyMessage as D, resolveDiscordMessageStickers as E, resolveDiscordReferencedReplyMessageId as O, resolveMediaList as S, hasDiscordMessageStickers as T, resolveDiscordMessageHistoryText as _, authorizeDiscordVoiceIngress as a, formatDiscordMediaText as b, resolveDiscordVoiceEnabled as c, threading_exports as d, resolveDiscordAutoThreadReplyPlan as f, resolveDiscordMessageBatch as g, sanitizeDiscordThreadName as h, setDiscordTranscriptsVoiceManager as i, resolveDiscordChannelInfo as k, resolveDiscordThreadLikeChannelContext as l, resolveDiscordThreadStarter as m, discordVoiceTranscriptsSourceProvider as n, resolveDiscordVoiceAccess as o, resolveDiscordReplyTarget as p, resolveDiscordTranscriptsCapture as r, resolveDiscordVoiceAccessTarget as s, bindDiscordCaptureReceipts as t, resolveFetchedDiscordThreadLikeChannelContext as u, resolveDiscordMessageMentionDocuments as v, resolveDiscordCdnPolicy as w, resolveForwardedMediaList as x, resolveDiscordMessageText as y };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
|
|
2
|
-
import { St as sendChannelTyping } from "./discord-
|
|
2
|
+
import { St as sendChannelTyping } from "./discord-DTLP81g6.mjs";
|
|
3
3
|
import { c as raceWithTimeout } from "./timeouts-D86uWLt_.mjs";
|
|
4
4
|
//#region extensions/discord/src/monitor/typing.ts
|
|
5
5
|
var typing_exports = /* @__PURE__ */ __exportAll({ sendTyping: () => sendTyping });
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { a as noteVoiceDecryptFailure, n as analyzeVoiceReceiveError, p as writeVoiceWavFile, r as createVoiceReceiveRecoveryState, s as resetVoiceReceiveRecoveryState, t as DECRYPT_FAILURE_WINDOW_MS, v as restoreDiscordAudioError } from "./receive-recovery-D6eikHf5.mjs";
|
|
3
|
+
import { a as normalizeDiscordSlug, h as resolveDiscordOwnerAccess, x as formatDiscordUserTag } from "./allow-list-Kty_8Xca.mjs";
|
|
4
|
+
import { Nt as getGuildVoiceState, l as ReadyListener, p as VoiceStateUpdateListener, t as discord_exports, u as ResumedListener, y as isUnknownDiscordVoiceStateError } from "./discord-DTLP81g6.mjs";
|
|
5
|
+
import { p as parseDiscordTarget } from "./send.receipt-D0JBijZQ.mjs";
|
|
6
|
+
import { o as formatMention } from "./send.outbound-DR8O-Pvo.mjs";
|
|
4
7
|
import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { o as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { C as buildDiscordGroupSystemPrompt, _ as resolveDiscordVoiceMode, d as MIN_SEGMENT_SECONDS, f as VOICE_CONNECT_READY_TIMEOUT_MS, g as logVoiceVerbose, h as isVoiceChannel, m as isDiscordRealtimeVoiceMode, p as VOICE_RECONNECT_GRACE_MS, u as CAPTURE_FINALIZE_GRACE_MS, v as resolveVoiceTimeoutMs } from "./provider-BTm60b3t.mjs";
|
|
9
|
+
import { a as authorizeDiscordVoiceIngress, c as resolveDiscordVoiceEnabled, o as resolveDiscordVoiceAccess, r as resolveDiscordTranscriptsCapture, s as resolveDiscordVoiceAccessTarget, t as bindDiscordCaptureReceipts } from "./transcripts-source-CHhpvL97.mjs";
|
|
10
|
+
import { Worker } from "node:worker_threads";
|
|
11
|
+
import { PassThrough, Readable } from "node:stream";
|
|
12
|
+
import { formatErrorMessage, readErrorName, toErrorObject } from "openclaw/plugin-sdk/error-runtime";
|
|
13
|
+
import { createSubsystemLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
14
|
+
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
15
|
+
import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
10
16
|
import { randomUUID } from "node:crypto";
|
|
11
17
|
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
12
18
|
import { asDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
|
|
13
|
-
import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
14
|
-
import { formatErrorMessage as formatErrorMessage$1, readErrorName, toErrorObject } from "openclaw/plugin-sdk/error-runtime";
|
|
15
|
-
import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
16
|
-
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
17
|
-
import { createSubsystemLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
18
|
-
import { escapeRegExp, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
19
|
-
import { stripInlineDirectiveTagsForDisplay } from "openclaw/plugin-sdk/text-chunking";
|
|
19
|
+
import { formatErrorMessage as formatErrorMessage$1 } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
20
20
|
import { unlinkIfExists } from "openclaw/plugin-sdk/media-runtime";
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
21
|
+
import { stripInlineDirectiveTagsForDisplay } from "openclaw/plugin-sdk/text-chunking";
|
|
22
|
+
import { escapeRegExp, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
23
23
|
import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
|
|
24
24
|
import { enqueueRoutedSystemEvent } from "openclaw/plugin-sdk/system-event-runtime";
|
|
25
25
|
import { resolveAgentDir } from "openclaw/plugin-sdk/agent-runtime";
|
|
@@ -125,7 +125,7 @@ async function handleDiscordVoiceAgentControlToolCall(params) {
|
|
|
125
125
|
});
|
|
126
126
|
} catch (error) {
|
|
127
127
|
if (!params.isCurrent()) return;
|
|
128
|
-
await params.session.submitToolResult(params.callId, { error: formatErrorMessage
|
|
128
|
+
await params.session.submitToolResult(params.callId, { error: formatErrorMessage(error) });
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
131
131
|
if (!params.isCurrent()) return;
|
|
@@ -758,7 +758,7 @@ var DiscordVoiceMembershipTracker = class {
|
|
|
758
758
|
}
|
|
759
759
|
}
|
|
760
760
|
logFailure(entry, err) {
|
|
761
|
-
logger$8.warn(`discord voice: participant notification failed guild=${entry.guildId} channel=${entry.channelId}: ${formatErrorMessage(err)}`);
|
|
761
|
+
logger$8.warn(`discord voice: participant notification failed guild=${entry.guildId} channel=${entry.channelId}: ${formatErrorMessage$1(err)}`);
|
|
762
762
|
}
|
|
763
763
|
roster(entry, botUserId, additionalUserIds) {
|
|
764
764
|
return collectDiscordVoiceParticipants({
|
|
@@ -1040,7 +1040,7 @@ var DiscordVoiceFollowing = class {
|
|
|
1040
1040
|
if (this.followUsersReconcileTimer) return;
|
|
1041
1041
|
this.followUsersReconcileTimer = setInterval(() => {
|
|
1042
1042
|
this.reconcileFollowedUsers("interval").catch((err) => {
|
|
1043
|
-
logger$7.warn(`discord voice: follow user reconciliation failed: ${formatErrorMessage(err)}`);
|
|
1043
|
+
logger$7.warn(`discord voice: follow user reconciliation failed: ${formatErrorMessage$1(err)}`);
|
|
1044
1044
|
});
|
|
1045
1045
|
}, FOLLOW_USERS_RECONCILE_INTERVAL_MS);
|
|
1046
1046
|
this.followUsersReconcileTimer.unref?.();
|
|
@@ -1066,10 +1066,10 @@ var DiscordVoiceFollowing = class {
|
|
|
1066
1066
|
for (const userId of plan.userIds) {
|
|
1067
1067
|
const voiceState = await getGuildVoiceState(this.params.client.rest, plan.guildId, userId).catch((err) => {
|
|
1068
1068
|
if (!isUnknownDiscordVoiceStateError(err)) {
|
|
1069
|
-
logger$7.warn(`follow-user reconcile skipped (transient voice-state error) guild=${plan.guildId} user=${userId} trigger=${reason}: ${formatErrorMessage(err)}`);
|
|
1069
|
+
logger$7.warn(`follow-user reconcile skipped (transient voice-state error) guild=${plan.guildId} user=${userId} trigger=${reason}: ${formatErrorMessage$1(err)}`);
|
|
1070
1070
|
return "transient-error";
|
|
1071
1071
|
}
|
|
1072
|
-
logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: no voice state guild ${plan.guildId} user ${userId}: ${formatErrorMessage(err)}`);
|
|
1072
|
+
logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: no voice state guild ${plan.guildId} user ${userId}: ${formatErrorMessage$1(err)}`);
|
|
1073
1073
|
});
|
|
1074
1074
|
if (this.params.destroyed()) return;
|
|
1075
1075
|
if (voiceState === "transient-error") continue;
|
|
@@ -1193,10 +1193,10 @@ var DiscordVoiceFollowing = class {
|
|
|
1193
1193
|
if (!botUserId) return;
|
|
1194
1194
|
const botVoiceState = await getGuildVoiceState(this.params.client.rest, guildId, botUserId).catch((err) => {
|
|
1195
1195
|
if (!isUnknownDiscordVoiceStateError(err)) {
|
|
1196
|
-
logger$7.warn(`discord voice: follow reconcile skipped transient bot voice state error guild=${guildId} reason=${reason}: ${formatErrorMessage(err)}`);
|
|
1196
|
+
logger$7.warn(`discord voice: follow reconcile skipped transient bot voice state error guild=${guildId} reason=${reason}: ${formatErrorMessage$1(err)}`);
|
|
1197
1197
|
return "transient-error";
|
|
1198
1198
|
}
|
|
1199
|
-
logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: no bot voice state guild ${guildId}: ${formatErrorMessage(err)}`);
|
|
1199
|
+
logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: no bot voice state guild ${guildId}: ${formatErrorMessage$1(err)}`);
|
|
1200
1200
|
});
|
|
1201
1201
|
if (this.params.destroyed() || botVoiceState === "transient-error") return;
|
|
1202
1202
|
const botChannelId = botVoiceState?.channel_id?.trim();
|
|
@@ -1364,7 +1364,7 @@ async function processDiscordVoiceSegment(params) {
|
|
|
1364
1364
|
const conversationCurrent = () => !entry.captureOnly && entry.sessionLifecycle.status === "active" && params.isConversationCurrent();
|
|
1365
1365
|
logVoiceVerbose(`segment processing (${durationSeconds.toFixed(2)}s): guild ${entry.guildId} channel ${entry.channelId}`);
|
|
1366
1366
|
const ingress = params.resolveIngressContext().catch((error) => {
|
|
1367
|
-
logger$6.warn(`discord voice: conversation authorization failed: ${formatErrorMessage
|
|
1367
|
+
logger$6.warn(`discord voice: conversation authorization failed: ${formatErrorMessage(error)}`);
|
|
1368
1368
|
return null;
|
|
1369
1369
|
});
|
|
1370
1370
|
const conversationAuthorized = ingress.then((context) => Boolean(context) && conversationCurrent());
|
|
@@ -1438,10 +1438,10 @@ async function respondToDiscordVoiceTranscript(params) {
|
|
|
1438
1438
|
text: transcript
|
|
1439
1439
|
}).catch((error) => {
|
|
1440
1440
|
if (readErrorName(error) === "AbortError") {
|
|
1441
|
-
logger$6.warn(`discord voice: active-run control cancelled: ${formatErrorMessage
|
|
1441
|
+
logger$6.warn(`discord voice: active-run control cancelled: ${formatErrorMessage(error)}`);
|
|
1442
1442
|
return null;
|
|
1443
1443
|
}
|
|
1444
|
-
logger$6.warn(`discord voice: active-run control failed; falling back to normal segment handling: ${formatErrorMessage
|
|
1444
|
+
logger$6.warn(`discord voice: active-run control failed; falling back to normal segment handling: ${formatErrorMessage(error)}`);
|
|
1445
1445
|
});
|
|
1446
1446
|
if (control === null || !conversationCurrent()) return;
|
|
1447
1447
|
if (control?.handled) {
|
|
@@ -1601,7 +1601,7 @@ var DiscordVoiceRecording = class {
|
|
|
1601
1601
|
try {
|
|
1602
1602
|
await wav.cleanup();
|
|
1603
1603
|
} catch (error) {
|
|
1604
|
-
logger$5.warn(`discord voice: recording cleanup failed: ${formatErrorMessage(error)}`);
|
|
1604
|
+
logger$5.warn(`discord voice: recording cleanup failed: ${formatErrorMessage$1(error)}`);
|
|
1605
1605
|
} finally {
|
|
1606
1606
|
releaseBudget();
|
|
1607
1607
|
}
|
|
@@ -1630,7 +1630,7 @@ var DiscordVoiceRecording = class {
|
|
|
1630
1630
|
});
|
|
1631
1631
|
} catch (error) {
|
|
1632
1632
|
this.params.onExcluded();
|
|
1633
|
-
logger$5.warn(`discord voice: recording failed: ${formatErrorMessage(error)}`);
|
|
1633
|
+
logger$5.warn(`discord voice: recording failed: ${formatErrorMessage$1(error)}`);
|
|
1634
1634
|
} finally {
|
|
1635
1635
|
await cleanup();
|
|
1636
1636
|
}
|
|
@@ -1700,7 +1700,7 @@ var DiscordVoiceReceive = class {
|
|
|
1700
1700
|
}
|
|
1701
1701
|
}
|
|
1702
1702
|
captureCurrentSpeakers(entry) {
|
|
1703
|
-
for (const userId of entry.audio.speakingUsers) this.handleSpeakingStart(entry, userId, "scan").catch((error) => logger$4.warn(`discord voice: capture failed: ${formatErrorMessage(error)}`));
|
|
1703
|
+
for (const userId of entry.audio.speakingUsers) this.handleSpeakingStart(entry, userId, "scan").catch((error) => logger$4.warn(`discord voice: capture failed: ${formatErrorMessage$1(error)}`));
|
|
1704
1704
|
}
|
|
1705
1705
|
responseContext(entry, userId) {
|
|
1706
1706
|
return {
|
|
@@ -1715,7 +1715,7 @@ var DiscordVoiceReceive = class {
|
|
|
1715
1715
|
speakerContext: this.params.speakerContext,
|
|
1716
1716
|
client: this.params.client,
|
|
1717
1717
|
enqueuePlayback: (playbackEntry, task) => {
|
|
1718
|
-
playbackEntry.playbackQueue = playbackEntry.playbackQueue.then(task).catch((err) => logger$4.warn(`discord voice: playback failed: ${formatErrorMessage(err)}`));
|
|
1718
|
+
playbackEntry.playbackQueue = playbackEntry.playbackQueue.then(task).catch((err) => logger$4.warn(`discord voice: playback failed: ${formatErrorMessage$1(err)}`));
|
|
1719
1719
|
}
|
|
1720
1720
|
};
|
|
1721
1721
|
}
|
|
@@ -1879,12 +1879,12 @@ var DiscordVoiceReceive = class {
|
|
|
1879
1879
|
ingress: currentIngress,
|
|
1880
1880
|
transcript
|
|
1881
1881
|
});
|
|
1882
|
-
}).catch((error) => logger$4.warn(`discord voice: processing failed: ${formatErrorMessage(error)}`));
|
|
1882
|
+
}).catch((error) => logger$4.warn(`discord voice: processing failed: ${formatErrorMessage$1(error)}`));
|
|
1883
1883
|
}
|
|
1884
1884
|
}
|
|
1885
1885
|
} finally {
|
|
1886
1886
|
realtimeRecording?.sealBatch();
|
|
1887
|
-
if (conversationCompletion) conversationCompletion.catch((error) => logger$4.warn(`discord voice: conversation failed: ${formatErrorMessage(error)}`));
|
|
1887
|
+
if (conversationCompletion) conversationCompletion.catch((error) => logger$4.warn(`discord voice: conversation failed: ${formatErrorMessage$1(error)}`));
|
|
1888
1888
|
else if (conversation) entry.conversations.release(conversation);
|
|
1889
1889
|
captureReceipts.close();
|
|
1890
1890
|
stream.off("data", acceptPacket);
|
|
@@ -1971,7 +1971,7 @@ var DiscordVoiceReceive = class {
|
|
|
1971
1971
|
recovery = this.recoverFromDecryptFailures(entry);
|
|
1972
1972
|
}
|
|
1973
1973
|
} else recovery = this.recoverFromDecryptFailures(entry);
|
|
1974
|
-
recovery.catch((recoverErr) => logger$4.warn(`discord voice: decrypt recovery failed: ${formatErrorMessage(recoverErr)}`)).finally(() => {
|
|
1974
|
+
recovery.catch((recoverErr) => logger$4.warn(`discord voice: decrypt recovery failed: ${formatErrorMessage$1(recoverErr)}`)).finally(() => {
|
|
1975
1975
|
entry.receiveRecovery.decryptRecoveryInFlight = false;
|
|
1976
1976
|
});
|
|
1977
1977
|
}
|
|
@@ -2353,7 +2353,7 @@ var DiscordVoiceConversationInput = class {
|
|
|
2353
2353
|
for (const { pcm, receipt } of audio) this.sendAudio(pcm, receipt);
|
|
2354
2354
|
})().catch((error) => {
|
|
2355
2355
|
this.retire();
|
|
2356
|
-
params.warn(`discord voice: conversation admission failed: ${formatErrorMessage(error)}`);
|
|
2356
|
+
params.warn(`discord voice: conversation admission failed: ${formatErrorMessage$1(error)}`);
|
|
2357
2357
|
});
|
|
2358
2358
|
this.ready = Promise.race([admission, this.cancelled.promise]);
|
|
2359
2359
|
}
|
|
@@ -2386,7 +2386,7 @@ var DiscordVoiceConversationInput = class {
|
|
|
2386
2386
|
this.turn?.sendInputAudio(pcm, receipt);
|
|
2387
2387
|
} catch (error) {
|
|
2388
2388
|
this.retire();
|
|
2389
|
-
this.params.warn(`discord voice: conversation audio failed: ${formatErrorMessage(error)}`);
|
|
2389
|
+
this.params.warn(`discord voice: conversation audio failed: ${formatErrorMessage$1(error)}`);
|
|
2390
2390
|
}
|
|
2391
2391
|
}
|
|
2392
2392
|
authorizeSegment(resolve) {
|
|
@@ -2459,7 +2459,7 @@ var DiscordVoiceConversationInput = class {
|
|
|
2459
2459
|
try {
|
|
2460
2460
|
turn?.close("incomplete-input");
|
|
2461
2461
|
} catch (error) {
|
|
2462
|
-
this.params.warn(`discord voice: conversation close failed: ${formatErrorMessage(error)}`);
|
|
2462
|
+
this.params.warn(`discord voice: conversation close failed: ${formatErrorMessage$1(error)}`);
|
|
2463
2463
|
}
|
|
2464
2464
|
}
|
|
2465
2465
|
};
|
|
@@ -2573,7 +2573,7 @@ var DiscordVoiceSessions = class {
|
|
|
2573
2573
|
ok: false,
|
|
2574
2574
|
error: {
|
|
2575
2575
|
ok: false,
|
|
2576
|
-
message: `Failed to resolve Discord channel ${channelId}: ${formatErrorMessage(err)}`,
|
|
2576
|
+
message: `Failed to resolve Discord channel ${channelId}: ${formatErrorMessage$1(err)}`,
|
|
2577
2577
|
guildId,
|
|
2578
2578
|
channelId
|
|
2579
2579
|
}
|
|
@@ -2675,7 +2675,7 @@ var DiscordVoiceSessions = class {
|
|
|
2675
2675
|
await this.stopTransport(guildId);
|
|
2676
2676
|
return {
|
|
2677
2677
|
ok: false,
|
|
2678
|
-
message: "Failed to join voice channel: " + formatErrorMessage(error),
|
|
2678
|
+
message: "Failed to join voice channel: " + formatErrorMessage$1(error),
|
|
2679
2679
|
guildId,
|
|
2680
2680
|
channelId
|
|
2681
2681
|
};
|
|
@@ -2699,7 +2699,7 @@ var DiscordVoiceSessions = class {
|
|
|
2699
2699
|
await this.stopTransport(guildId);
|
|
2700
2700
|
return {
|
|
2701
2701
|
ok: false,
|
|
2702
|
-
message: `Failed to resolve Discord voice agent session: ${formatErrorMessage(err)}`,
|
|
2702
|
+
message: `Failed to resolve Discord voice agent session: ${formatErrorMessage$1(err)}`,
|
|
2703
2703
|
guildId,
|
|
2704
2704
|
channelId
|
|
2705
2705
|
};
|
|
@@ -2728,7 +2728,7 @@ var DiscordVoiceSessions = class {
|
|
|
2728
2728
|
try {
|
|
2729
2729
|
if (realtimeLifecycle.status === "starting" || realtimeLifecycle.status === "active") realtimeCompletion = realtimeLifecycle.instance.close();
|
|
2730
2730
|
} catch (error) {
|
|
2731
|
-
logger$2.warn(`discord voice: realtime close failed: ${formatErrorMessage(error)}`);
|
|
2731
|
+
logger$2.warn(`discord voice: realtime close failed: ${formatErrorMessage$1(error)}`);
|
|
2732
2732
|
}
|
|
2733
2733
|
const audioCompletion = this.stopTransport(guildId, audio);
|
|
2734
2734
|
stopCompletion = Promise.allSettled([realtimeCompletion, audioCompletion]).then(() => {
|
|
@@ -2742,7 +2742,7 @@ var DiscordVoiceSessions = class {
|
|
|
2742
2742
|
};
|
|
2743
2743
|
completion.then(forget, (error) => {
|
|
2744
2744
|
forget();
|
|
2745
|
-
logger$2.warn(`discord voice: session stop failed: ${formatErrorMessage(error)}`);
|
|
2745
|
+
logger$2.warn(`discord voice: session stop failed: ${formatErrorMessage$1(error)}`);
|
|
2746
2746
|
});
|
|
2747
2747
|
return stopCompletion;
|
|
2748
2748
|
};
|
|
@@ -2780,7 +2780,7 @@ var DiscordVoiceSessions = class {
|
|
|
2780
2780
|
};
|
|
2781
2781
|
const speakingHandler = (userId, speaking) => {
|
|
2782
2782
|
if (speaking) this.params.receive.handleSpeakingStart(entry, userId).catch((error) => {
|
|
2783
|
-
logger$2.warn("discord voice: capture failed: " + formatErrorMessage(error));
|
|
2783
|
+
logger$2.warn("discord voice: capture failed: " + formatErrorMessage$1(error));
|
|
2784
2784
|
});
|
|
2785
2785
|
else this.params.receive.scheduleCaptureFinalize(entry, userId, "speaker end");
|
|
2786
2786
|
};
|
|
@@ -2855,7 +2855,7 @@ var DiscordVoiceSessions = class {
|
|
|
2855
2855
|
ok: false,
|
|
2856
2856
|
message: "Discord realtime voice session stopped before startup completed."
|
|
2857
2857
|
};
|
|
2858
|
-
const { DiscordRealtimeVoiceSession } = await import("./realtime-session.runtime-
|
|
2858
|
+
const { DiscordRealtimeVoiceSession } = await import("./realtime-session.runtime-JZd7A5bS.mjs");
|
|
2859
2859
|
const realtime = new DiscordRealtimeVoiceSession({
|
|
2860
2860
|
accountId: this.params.accountId,
|
|
2861
2861
|
bootstrapContextInstructions,
|
|
@@ -2865,7 +2865,7 @@ var DiscordVoiceSessions = class {
|
|
|
2865
2865
|
getHumanParticipantCount: () => this.params.membership.countHumanParticipants(entry, this.params.botUserId()),
|
|
2866
2866
|
mode: voiceMode,
|
|
2867
2867
|
onTerminalError: (error) => {
|
|
2868
|
-
logger$2.error(`discord voice: realtime session failed terminally guild=${entry.guildId} channel=${entry.channelId}: ${formatErrorMessage(error)}`);
|
|
2868
|
+
logger$2.error(`discord voice: realtime session failed terminally guild=${entry.guildId} channel=${entry.channelId}: ${formatErrorMessage$1(error)}`);
|
|
2869
2869
|
const lifecycle = entry.realtimeLifecycle;
|
|
2870
2870
|
if (options?.requireLiveEntry && lifecycle.status === "starting" && lifecycle.instance === realtime) {
|
|
2871
2871
|
entry.realtimeLifecycle = {
|
|
@@ -2912,7 +2912,7 @@ var DiscordVoiceSessions = class {
|
|
|
2912
2912
|
};
|
|
2913
2913
|
return {
|
|
2914
2914
|
ok: false,
|
|
2915
|
-
message: `Failed to start Discord realtime voice: ${formatErrorMessage(err)}`
|
|
2915
|
+
message: `Failed to start Discord realtime voice: ${formatErrorMessage$1(err)}`
|
|
2916
2916
|
};
|
|
2917
2917
|
}
|
|
2918
2918
|
}
|
|
@@ -2921,7 +2921,7 @@ var DiscordVoiceSessions = class {
|
|
|
2921
2921
|
//#region extensions/discord/src/voice/listeners.ts
|
|
2922
2922
|
const logger$1 = createSubsystemLogger("discord/voice");
|
|
2923
2923
|
function startAutoJoin(operation, context = "") {
|
|
2924
|
-
operation().catch((err) => logger$1.warn(`discord voice: autoJoin${context} failed: ${formatErrorMessage(err)}`));
|
|
2924
|
+
operation().catch((err) => logger$1.warn(`discord voice: autoJoin${context} failed: ${formatErrorMessage$1(err)}`));
|
|
2925
2925
|
}
|
|
2926
2926
|
var DiscordVoiceReadyListener = class extends ReadyListener {
|
|
2927
2927
|
constructor(manager) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as inspectDiscordAccount } from "./.setup/account-inspect-
|
|
1
|
+
import { t as inspectDiscordAccount } from "./.setup/account-inspect-Bp8nbBSx.mjs";
|
|
2
2
|
//#region extensions/discord/account-inspect-api.ts
|
|
3
3
|
function inspectDiscordReadOnlyAccount(cfg, accountId) {
|
|
4
4
|
return inspectDiscordAccount({
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as handleDiscordAction } from "./.setup/runtime-
|
|
1
|
+
import { t as handleDiscordAction } from "./.setup/runtime-DwW5C0WK.mjs";
|
|
2
2
|
export { handleDiscordAction };
|