* feat(providers): canonicalize selection diagnostics
Extend candidate statuses with selection source and stable rejections derived from readiness and target support. Automatic selection now keeps every rejected candidate attributable, while explicit and ambiguous outcomes remain fail-closed and deterministic.
* test(providers): surface typed selection errors
Follow the repository test guide: throw the typed Result error before
reading the selected value so a failure reports the provider error.