Spaces:
Paused
Paused
| 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; | |
| } | |