"""CLI entry point. Phase A2 ships ``wait-ready``, ``vm`` (remove/cleanup), ``monitor`` (disk/runner) and ``report`` (job). Phase A3 adds ``vm new``, ``build``, ``artifacts``. Subsequent phases add ``job``. """ from __future__ import annotations import time as time import click from ci_orchestrator import __version__ from ci_orchestrator.commands.artifacts import artifacts from ci_orchestrator.commands.build import build from ci_orchestrator.commands.job import job from ci_orchestrator.commands.monitor import monitor from ci_orchestrator.commands.report import report from ci_orchestrator.commands.vm import vm # Re-export so legacy A1 tests that patched ``cli_module.`` keep working. from ci_orchestrator.commands.wait import ( # noqa: F401 (intentional re-exports) KeyringCredentialStore, SshTransport, WinRmTransport, load_backend, wait_ready, ) @click.group() @click.version_option(__version__, prog_name="ci-orchestrator") def cli() -> None: """Local CI/CD orchestrator.""" cli.add_command(wait_ready) cli.add_command(vm) cli.add_command(build) cli.add_command(artifacts) cli.add_command(monitor) cli.add_command(report) cli.add_command(job) if __name__ == "__main__": # pragma: no cover cli()