openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
33 lines (32 loc) • 1.42 kB
JavaScript
import { c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "./string-coerce-mnp54Vah.js";
import "./string-coerce-runtime-CEGJWkQ_.js";
import { t as parseDiscordTarget } from "./target-parsing-CxulEx_f.js";
//#region extensions/discord/src/conversation-identity.ts
function normalizeDiscordTarget(raw, defaultKind) {
const trimmed = normalizeOptionalString(raw);
if (!trimmed) return;
return parseDiscordTarget(trimmed, { defaultKind })?.normalized;
}
function buildDiscordConversationIdentity(kind, rawId) {
const trimmed = normalizeOptionalString(rawId);
return trimmed ? `${kind}:${trimmed}` : void 0;
}
function resolveDiscordConversationIdentity(params) {
return params.isDirectMessage ? buildDiscordConversationIdentity("user", params.userId) : buildDiscordConversationIdentity("channel", params.channelId);
}
function resolveDiscordCurrentConversationIdentity(params) {
if (normalizeOptionalLowercaseString(params.chatType) === "direct") {
const senderTarget = normalizeDiscordTarget(params.from, "user");
if (senderTarget?.startsWith("user:")) return senderTarget;
}
for (const candidate of [
params.originatingTo,
params.commandTo,
params.fallbackTo
]) {
const target = normalizeDiscordTarget(candidate, "channel");
if (target) return target;
}
}
//#endregion
export { resolveDiscordCurrentConversationIdentity as n, resolveDiscordConversationIdentity as t };