import { writeFileSync } from "node:fs"; import { fileURLToPath } from "node:url"; import { listAgentCommands } from "../src/cli/agent.js"; const outputPath = fileURLToPath(new URL("../src/agentCommandCatalog.ts", import.meta.url)); const commands = listAgentCommands(); const file = `/** * Generated by scripts/gen-agent-command-catalog.ts. * Regenerate with \`npm run agent:catalog:gen\`. */ export type AgentCommandSource = "tool" | "cli"; export interface AgentCommandCatalogEntry { command: string; summary: string; mutates: boolean; unsafe: boolean; source: AgentCommandSource; } export const AGENT_COMMAND_CATALOG = ${JSON.stringify(commands, null, 2)} satisfies AgentCommandCatalogEntry[]; export function listAgentCommandCatalog(): AgentCommandCatalogEntry[] { return AGENT_COMMAND_CATALOG.map((entry) => ({ ...entry })); } `; writeFileSync(outputPath, file);