Direct HTTP client for an OpenAI-compatible chat-completions endpoint.
Cheap to clone โ async_openai::Client wraps a reqwest::Client (an
Arc<...> internally). No mutex needed when sharing across tasks.
Compatibility fallback is only safe when a client-error response names an
optional field that Pilot added. Unrelated 4xx responses must retain their
original diagnosis instead of being retried with a misleading warning.