pub struct ResolvedModel {
pub provider: Arc<dyn Provider>,
pub model: Model,
pub thinking_level: ThinkingLevel,
pub has_provider_key: bool,
pub theme: Option<String>,
pub providers: Vec<Arc<dyn Provider>>,
}Expand description
The resolved run configuration: the provider handle, the chosen model, and
the effective thinking level (after --thinking / :level / model-clamp).
Fields§
§provider: Arc<dyn Provider>The selected provider. Cheap to clone through the trait-object Arc.
model: ModelThe chosen model from the catalog.
thinking_level: ThinkingLevelEffective thinking level (the requested level, before model-clamp — the harness/provider clamps to the model’s supported set).
has_provider_key: boolWhether the selected runtime carries a provider-default key. When false, authentication is owned by the selected model’s headers.
Kept so available_catalog can reproduce the auth-filtered snapshot
(pi getAvailableSnapshot: available = all.filter(m => configuredProviders.has(m.provider))) and surface only models that
won’t fail at request time with “No API key for provider”.
theme: Option<String>Saved theme name from ~/.rpi/agent/settings.json, if any. Best-effort:
the TUI applies it at startup when it matches a known preset
(dark/light/monochrome); otherwise ignored.
providers: Vec<Arc<dyn Provider>>Every authenticated provider runtime, with the selected provider first.
The harness resolves a provider lazily by model.provider, so this lets
/model hot-switch across providers without a restart.
Trait Implementations§
Source§impl Clone for ResolvedModel
impl Clone for ResolvedModel
Auto Trait Implementations§
impl !RefUnwindSafe for ResolvedModel
impl !UnwindSafe for ResolvedModel
impl Freeze for ResolvedModel
impl Send for ResolvedModel
impl Sync for ResolvedModel
impl Unpin for ResolvedModel
impl UnsafeUnpin for ResolvedModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more