UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

47 lines (46 loc) 1.68 kB
import { t as buildOutboundBaseSessionKey } from "./base-session-key-BpTC-eng.js"; import { n as buildThreadAwareOutboundSessionRoute } from "./core-DSxVv-v1.js"; import "./channel-core-IukkNCd-.js"; import "./routing-CQ63ICPX.js"; import { t as parseDiscordTarget } from "./target-parsing-CxulEx_f.js"; //#region extensions/discord/src/outbound-session-route.ts function resolveDiscordOutboundSessionRoute(params) { const parsed = parseDiscordTarget(params.target, { defaultKind: resolveDiscordOutboundTargetKindHint(params) }); if (!parsed) return null; const isDm = parsed.kind === "user"; const peer = { kind: isDm ? "direct" : "channel", id: parsed.id }; const baseSessionKey = buildOutboundBaseSessionKey({ cfg: params.cfg, agentId: params.agentId, channel: "discord", accountId: params.accountId, peer }); return buildThreadAwareOutboundSessionRoute({ route: { sessionKey: baseSessionKey, baseSessionKey, peer, chatType: isDm ? "direct" : "channel", from: isDm ? `discord:${parsed.id}` : `discord:channel:${parsed.id}`, to: isDm ? `user:${parsed.id}` : `channel:${parsed.id}` }, threadId: params.threadId, precedence: ["threadId"], useSuffix: false }); } function resolveDiscordOutboundTargetKindHint(params) { const resolvedKind = params.resolvedTarget?.kind; if (resolvedKind === "user") return "user"; if (resolvedKind === "group" || resolvedKind === "channel") return "channel"; const target = params.target.trim(); if (/^channel:/i.test(target)) return "channel"; if (/^(user:|discord:|@|<@!?)/i.test(target)) return "user"; return "channel"; } //#endregion export { resolveDiscordOutboundSessionRoute as t };