Skip to main content

ModelSwitchToRequest

Struct ModelSwitchToRequest 

Source
pub struct ModelSwitchToRequest {
Show 15 fields pub auto_tier: Option<AutoTier>, pub compaction_decision: Option<String>, pub context_tier: Option<ContextTier>, pub defer_if_model_change_queued: Option<bool>, pub model_capabilities: Option<ModelCapabilitiesOverride>, pub model_change_scope: Option<String>, pub model_id: String, pub picker_persistence: Option<ModelPickerPersistenceRequest>, pub reasoning_effort: Option<String>, pub reasoning_summary: Option<ReasoningSummary>, pub repo_scope: Option<String>, pub require_available: Option<bool>, pub run_compaction_preflight: Option<bool>, pub source: Option<ModelChangeSource>, pub verbosity: Option<Verbosity>,
}
Expand description

Target model identifier and optional reasoning effort, summary, capability overrides, and context tier.

Experimental. This type is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases.

Fields§

§auto_tier: Option<AutoTier>

Optional Auto routing preference to stage atomically with selecting auto. Pass null to return to provider-default Auto routing. This field is rejected when modelId is not auto.

§compaction_decision: Option<String>

Explicit response to a model-switch compaction preflight. Omit to request a confirmation projection when compaction is necessary.

§context_tier: Option<ContextTier>

Explicit context tier for the selected model. "default" / "long_context" apply the requested tier; omit this field to use normal model behavior with no explicit tier.

§defer_if_model_change_queued: Option<bool>

When true, defer this switch (enqueue it) if another model change is already queued, even when no turn is active — so it drains last (FIFO) and wins over the already-queued change. Intended for genuine user-initiated model selections; internal restore/reapply switches omit it and apply immediately when no turn is active. When no other model change is queued this has no effect (a switch still applies immediately unless a turn is active).

§model_capabilities: Option<ModelCapabilitiesOverride>

Override individual model capabilities resolved by the runtime

§model_change_scope: Option<String>

Settings scope used when persisting the selected model.

§model_id: String

Model selection id to switch to, as returned by list. A bare id (e.g. claude-sonnet-4.6) names a Copilot (CAPI) model; a provider-qualified id (provider/id, e.g. acme/claude-sonnet) targets a registry BYOK model.

§picker_persistence: Option<ModelPickerPersistenceRequest>

Optional settings context and explicit-override flags used to persist a picker selection.

§reasoning_effort: Option<String>

Reasoning effort level to use for the model. CAPI values are model-defined and validated against the selected model; BYOK providers may define additional values. “none” disables reasoning. Pass null to clear any session effort override and fall back to the model’s default. When omitted, the session’s current effort is kept.

§reasoning_summary: Option<ReasoningSummary>

Reasoning summary mode to request for supported model clients

§repo_scope: Option<String>

Optional repository settings scope to persist after the switch commits.

§require_available: Option<bool>

Require the target to be currently available and enabled before applying the switch.

§run_compaction_preflight: Option<bool>

When true, evaluate context-window compaction policy before applying the switch.

§source: Option<ModelChangeSource>

Origin to record on the effective session.model_change event for trusted in-process calls. Transport SDK calls are always recorded as sdk, regardless of this value.

§verbosity: Option<Verbosity>

Output verbosity level to request for supported models

Trait Implementations§

Source§

impl Clone for ModelSwitchToRequest

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ModelSwitchToRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ModelSwitchToRequest

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ModelSwitchToRequest

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ModelSwitchToRequest

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more