/** * Custom help renderer for the hyperframes CLI. * * Root-level: grouped command categories + examples. * Subcommands: citty's standard USAGE/ARGUMENTS/OPTIONS + appended examples. */ import { renderUsage } from "citty"; import type { CommandDef } from "citty"; import { c } from "./ui/colors.js"; import { VERSION } from "./version.js"; // ── Root-level command groups ────────────────────────────────────────────── interface Group { title: string; commands: [name: string, description: string][]; } const GROUPS: Group[] = [ { title: "Getting Started", commands: [ ["init", "Scaffold a new composition project"], ["add", "Install a block or component from the registry"], ["capture", "Capture a website for video production"], ["catalog", "Browse and install blocks and components"], ["preview", "Start the studio for previewing compositions"], ["present", "Open a slideshow deck in presenter mode (with audience sync)"], ["publish", "Upload a project and get a stable public URL"], ["render", "Render a composition to MP4 or WebM"], ], }, { title: "Project", commands: [ ["lint", "Validate a composition for common mistakes"], ["check", "Run lint, runtime validation, and layout inspection as one gate"], [ "validate", "Runtime-validate a composition in headless Chrome (JS errors, missing assets, contrast)", ], ["beats", "Detect beats in the music track and write beats/