refactor(install): consolidate model install into sol install-models subcommand
Move parakeet installer logic from scripts/install_parakeet_model.py
into think/install_models.py and register as `sol install-models`.
Extend coverage to bundled wespeaker + pyannote .onnx assets via the
existing observe.transcribe.main constants and observe.utils.compute_file_sha256,
removing the inline python -c SHA verifier from the .installed Makefile
recipe. Single source of truth for "ML models present and verified" is
now `sol install-models` (and `sol install-models --check` for verify-only).
Adds a `Setup:` group to `sol --help` (anticipates sibling install
subcommands). Adds a true `--check` (verify only, no fetch, nonzero on
any failure) and a `--variant {auto,cpu,cuda,coreml}` flag with
documented precedence (flag > PARAKEET_ONNX_VARIANT env > nvidia-smi
autodetect > platform default). The env var stays honored for one
release cycle as the auto-mode fallback.
Makefile install/install-models targets delegate to `.venv/bin/sol
install-models`. The PARAKEET_ONNX_VARIANT autodetect at Makefile:27
that drives `uv sync --extra parakeet-onnx-$(VARIANT)` is unrelated
and unchanged.
Tests migrated to direct imports from think.install_models (no more
runpy probe). New coverage: variant-resolution precedence, bundled-asset
SHA mismatch (mutate-byte case), and `--check` exit codes.
scripts/install_parakeet_model.py is deleted with no shim.