@lunora/cli
Version:
The Lunora CLI: init, dev, deploy, codegen, migrate, seed, doctor, insights, logs, registry, and the rest of the project commands
32 lines (31 loc) • 1.74 kB
text/typescript
/** Every command name the CLI registers (drives the `CommandName` type + tests). */
declare const COMMANDS: readonly ["init", "add", "dev", "codegen", "build", "deploy", "prepare", "link", "cloudflare", "logs", "run", "insights", "profile", "reset", "migrate", "export", "import", "seed", "shards", "backup", "eval", "verify", "info", "doctor", "env", "analyze", "view", "docs", "registry", "rules", "mcp", "workflow"];
type CommandName = (typeof COMMANDS)[number];
declare const VERSION: string;
/**
* Every registered command's name. A superset of {@link COMMANDS}, which is the
* user-facing list driving "did you mean …?" suggestions — `advisor`,
* `introspect`, `version` and `completion` are all reachable but deliberately
* absent from it. Exported so the help-rendering guard covers what is actually
* reachable, not what is advertised.
*/
declare const REGISTERED_COMMAND_NAMES: ReadonlyArray<string>;
interface RunCliOptions {
argv?: ReadonlyArray<string>;
cwd?: string;
/**
* Inject a console-like logger so callers (tests) can capture cerebro's
* help / version / usage rendering AND the commands' own output. Omitted in
* production, where cerebro uses its default stdout/stderr logger and the
* commands log through the shared pail.
*/
logger?: Console;
}
/**
* Run the CLI and resolve to the process exit code. cerebro handles help,
* version, usage, and unknown commands (the latter throws, caught here as 1).
* `shouldExitProcess: false` keeps the process alive so callers/tests read the
* captured exit code.
*/
declare const runCli: (options?: RunCliOptions) => Promise<number>;
export { COMMANDS, type CommandName, REGISTERED_COMMAND_NAMES, type RunCliOptions, VERSION, runCli };