/**
 * Phase 5 — shared CLI contracts.
 *
 * Goal: every subcommand is a pure function over an injectable `CommandIo`
 * surface. That lets tests exercise the full code path (parser → command →
 * stdout/stderr) without spawning child processes or touching the real filesystem.
 *
 * Subcommands return a numeric exit code so `bin/tuberosa.ts` can forward it
 * to `process.exit` without caring which command ran.
 */
export const DEFAULT_MCP_PORT = 3027;
