Context
Phase A now advertises LiteLLM's broader provider support, but provider-specific UX helpers still only know the core providers in a few places.
Problems
_derive_env_var_for_model() currently maps Anthropic/OpenAI/Gemini, so non-core provider errors may suggest a generic or wrong env var.
- Provider/model detection logic is duplicated across
llm_client.py, llm_reasoning_map.py, and exceptions.py.
- Docs mention providers such as OpenRouter, Ollama, Mistral, Bedrock, Azure, and Vertex, but error hints do not consistently reflect those names.
Scope
- Create a small provider metadata/helper layer for common LiteLLM provider prefixes.
- Use it for env-var suggestions and model-family predicates where appropriate.
- Keep the first pass boring: cover documented/common providers; fall back gracefully for unknown prefixes.
Candidate providers
OpenRouter, Mistral, Cohere, Bedrock/AWS, Azure OpenAI, Vertex/Gemini, Ollama/local providers.
Context
Phase A now advertises LiteLLM's broader provider support, but provider-specific UX helpers still only know the core providers in a few places.
Problems
_derive_env_var_for_model()currently maps Anthropic/OpenAI/Gemini, so non-core provider errors may suggest a generic or wrong env var.llm_client.py,llm_reasoning_map.py, andexceptions.py.Scope
Candidate providers
OpenRouter, Mistral, Cohere, Bedrock/AWS, Azure OpenAI, Vertex/Gemini, Ollama/local providers.