17 lines
625 B
TypeScript
17 lines
625 B
TypeScript
import { parseDiscordTarget } from "../../../discord/targets.js";
|
|
|
|
export function normalizeDiscordMessagingTarget(raw: string): string | undefined {
|
|
// Default bare IDs to channels so routing is stable across tool actions.
|
|
const target = parseDiscordTarget(raw, { defaultKind: "channel" });
|
|
return target?.normalized;
|
|
}
|
|
|
|
export function looksLikeDiscordTargetId(raw: string): boolean {
|
|
const trimmed = raw.trim();
|
|
if (!trimmed) return false;
|
|
if (/^<@!?\d+>$/.test(trimmed)) return true;
|
|
if (/^(user|channel|discord):/i.test(trimmed)) return true;
|
|
if (/^\d{6,}$/.test(trimmed)) return true;
|
|
return false;
|
|
}
|