export interface FlagConflictCheck { when: unknown; message: string; } export function validateFlagConflicts(options: { guard: unknown; checks: FlagConflictCheck[]; }): void { const { guard, checks } = options; if (!guard) { return; } const firstConflict = checks.find((check) => Boolean(check.when)); if (firstConflict) { throw new Error(firstConflict.message); } } export function validateConversationDefaultRequiresAgent(options: { specifiedConversationId: string | null | undefined; specifiedAgentId: string | null | undefined; forceNew: boolean | null | undefined; }): void { const { specifiedConversationId, specifiedAgentId, forceNew } = options; if (specifiedConversationId === "default" && !specifiedAgentId && !forceNew) { throw new Error("--conv default requires --agent "); } } export function validateRegistryHandleOrThrow(handle: string): void { const normalized = handle.startsWith("@") ? handle.slice(1) : handle; const parts = normalized.split("/"); if (parts.length !== 2 || !parts[0] || !parts[1]) { throw new Error(`Invalid registry handle "${handle}"`); } }