UNPKG

paqad-ai

Version:

Spec-driven development framework — AI agents that think before they type

38 lines (28 loc) • 1.15 kB
export const COMMAND_NAMES = ['paqad', 'paqad-hud'] as const; export type CommandName = (typeof COMMAND_NAMES)[number]; let current: CommandName = COMMAND_NAMES[0]; export function setCommandName(name: CommandName): void { current = name; } export function commandName(): CommandName { return current; } export function slash(sub?: string): string { return sub ? `/${current} ${sub}` : `/${current}`; } export function isCommandName(command: string): boolean { return (COMMAND_NAMES as readonly string[]).includes(command); } const REFUSED = 'refused: '; export function refusalReason(error: unknown): string { const text = error instanceof Error ? error.message : String(error); const at = text.lastIndexOf(REFUSED); return (at === -1 ? text : text.slice(at + REFUSED.length)).trim(); } export function takenLine(refusals: readonly string[]): string { const [first, fallback] = COMMAND_NAMES; const taken = `paqad: /${first} is taken (${refusals[0] ?? ''})`; return refusals.length > 1 ? `${taken} and /${fallback} is taken (${refusals[1]}); the HUD has no command` : `${taken}; the HUD command is /${fallback}`; }