//! `LlmUpstream` port — single-call LLM proxy (slice 3+).
//!
//! The upstream abstracts the OpenAI-compatible HTTP endpoint. `complete`
//! returns either a fully-buffered JSON response (non-streaming callers) or a
//! byte stream (streaming callers). Slice-3's HTTP adapter implements this.
//!
//! # Provider routing
//!
//! `complete` takes a `provider_name` argument so the same trait surface can
//! back the multi-provider routing introduced by the persons system: each
//! chat-completion request resolves a `[persons.X]` entry, which names a
//! `[[providers]]` entry, and the adapter uses the name to look up the
//! concrete URL + auth header. Single-provider stubs ignore the argument.
use crateUpstreamError;
use crate;
/// OpenAI-compatible chat-completion boundary.