UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

32 lines (31 loc) 1.29 kB
import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js"; import { h as stringifyRouteThreadId } from "./channel-route-D7X5briz.js"; //#region src/infra/outbound/conversation-id.ts function resolveExplicitConversationTargetId(target) { for (const prefix of [ "channel:", "conversation:", "group:", "room:", "dm:" ]) if (normalizeLowercaseStringOrEmpty(target).startsWith(prefix)) return normalizeOptionalString(target.slice(prefix.length)); } /** * Chooses the best conversation id from an explicit thread id or outbound targets. */ function resolveConversationIdFromTargets(params) { const threadId = stringifyRouteThreadId(params.threadId); if (threadId) return threadId; for (const rawTarget of params.targets) { const target = normalizeOptionalString(rawTarget); if (!target) continue; const explicitConversationId = resolveExplicitConversationTargetId(target); if (explicitConversationId) return explicitConversationId; if (target.includes(":") && explicitConversationId === void 0) continue; const mentionMatch = target.match(/^<#(\d+)>$/); if (mentionMatch?.[1]) return mentionMatch[1]; if (/^\d{6,}$/.test(target)) return target; } } //#endregion export { resolveConversationIdFromTargets as t };