"""`reach` — one command for every repo tool (D-263). **This file is a router and nothing else.** No logic, no I/O, no pydantic, no domain imports at module level. It is the file most likely to accumulate "just one small thing", and the only defence is that it stays short enough that an addition is obvious in review. The root is a `typer.Typer`, and the reason is worth recording because the original plan was different. T-1259 specified a `click.Group` root, on the theory that it would keep typer off the `reach --help` path. **That is no longer possible: typer vendors click as of 0.26.0** — there is no top-level `click` package to import, and the docs are explicit that "extracting the internal Click app" is unsupported. Mixing a real `click.Group` root with typer sub-apps would mean two different Click implementations in one process. So the customisation surface is `typer.Typer(cls=...)` with a `TyperGroup` subclass, which is the supported path and is what T-1260 uses to register domains lazily. `rich_markup_mode=None` is not a style preference — it is worth 94 ms of the 168 ms an empty `--help` otherwise costs, and it keeps `rich` and `pygments` off the import path entirely (verified absent from `sys.modules`). It also stops typer drawing box-art help, which it does **even when stdout is a pipe**, so hook logs and agent output stay readable. One line to revert if the boxes are ever wanted more than the milliseconds. The callback below is not decoration. A `typer.Typer` with **no commands and no callback** raises `RuntimeError: Could not get a command for this Typer instance` at build time; with a callback it builds fine and prints help. Since domains are registered lazily and none are eager, the callback is what makes an empty root legal. """ from __future__ import annotations import typer cli = typer.Typer( name="reach", help="Repo tooling for The Settled Reach.\n\nRun `reach --help` to see what a domain can do.", no_args_is_help=True, add_completion=False, rich_markup_mode=None, context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 100}, ) @cli.callback() def root() -> None: """Present so an empty root is legal — see the module docstring."""