"""Registry of the TTS backends the audiobook generator can talk to. Each backend (audio.cpp, qwen, faster, SGLang-Omni) lives in its own module and owns its setup wizard, its status detection, its uninstaller, and the launch command it prints once configured. This package aggregates them into a single registry so ``audiobook.py``'s TUI hub and future tools can iterate backends without hardcoding their names: ``backends.detect_all()`` reports which are set up (and whether their server is currently running), and the registry drives the hub's "Configure Backends" menu. The registry is built lazily on the first call to ``get``/``detect_all``/ ``detect`` (not at package import time), because the backend modules pull in ``converter.clients`` and its third-party dependencies, which are only available inside the managed venv that ``audiobook.py`` bootstraps before importing them. ``backends.envs`` is imported during that bootstrap, so importing this package must stay cheap and dependency-free. Adding a backend: create ``backends/.py`` exposing ``detect() -> BackendStatus``, ``setup_screen(stdscr) -> int`` (the setup wizard run on the hub's own screen) and ``uninstall() -> int``, then append a ``BackendInfo`` in ``_build_registry`` below. Optionally expose a ``configure_screen(stdscr) -> int`` to give the hub's "Configure