Baseline environment check
src/commands/check.cpp
The `check` command is intentionally small. It detects the platform first, then collects driver, CUDA, and GPU probes, and finally collapses those probe statuses into a single `overall` status.
Behavior
- Runs the probes in a fixed order: platform, driver, CUDA, GPU.
- Marks the whole report unsupported immediately if any probe returns `unsupported`.
- Otherwise prefers `issue` over `missing`, and `missing` over `ok` when collapsing the final status.
Why it matters
`run_check()` is the foundation under `doctor`. That keeps `doctor` free to focus on repair logic and next-step generation instead of reimplementing base probe collection.
Related files
Command contract
include/commands/check.hpp
Declares the `run_check()` entrypoint that collects the baseline platform, driver, CUDA, and GPU probes.
Core implementation
src/core/platform.cpp
Determines OS and CPU architecture at compile time and marks macOS as unsupported for NVIDIA CUDA runtime use.
Core implementation
src/core/driver.cpp
Checks for `nvidia-smi` and, when available, queries the GPU driver version.
Core implementation
src/core/cuda_env.cpp
Finds `nvcc`, searches common CUDA install roots, parses `nvcc --version`, and derives the toolkit root directory.
Core implementation
src/core/gpu.cpp
Uses `nvidia-smi` to ask for the GPU name and treats the driver tool as a prerequisite, not as proof that no GPU exists.