Skip to main content

ExecuteRequest

Struct ExecuteRequest 

Source
pub struct ExecuteRequest {
    pub model: Option<String>,
    pub provider: Option<String>,
    pub model_ref: Option<ProviderModelRef>,
    pub skill_mode: Option<String>,
    pub reasoning_effort: Option<ReasoningEffort>,
    pub client_sync: Option<ExecuteClientSync>,
    pub no_human_approver: bool,
    pub run_budget: Option<RunBudgetConfig>,
}
Expand description

Request payload for agent execution.

§Fields

  • model - Optional model identifier used only as a compatibility fallback

§Note

The model parameter is optional.

Runtime behavior is session-driven:

  • prefer session.model
  • then provider default model
  • finally request.model as a compatibility fallback

§Examples

{
  "model": "claude-3-opus"
}

Fields§

§model: Option<String>

Optional model compatibility fallback for execution.

§provider: Option<String>

Optional provider name (used with provider_model_ref feature).

§model_ref: Option<ProviderModelRef>

Optional provider+model reference (takes priority when present).

§skill_mode: Option<String>

Optional per-execution skill mode override (for example: “code”, “ask”).

When provided, skill discovery prefers skills-<mode> directories.

§reasoning_effort: Option<ReasoningEffort>

Optional reasoning effort override for this execution.

When omitted, the active provider default from config is used.

§client_sync: Option<ExecuteClientSync>

Optional server-confirmed client cursor used for pre-execution sync checks.

§no_human_approver: bool

Whether this run has NO interactive human approver (headless -p, a scheduled job, a deployed broker). #74: this is re-derived per user-initiated execute and OVERWRITES the session’s persisted no_human_approver, so a session first run headlessly and later reopened interactively (UI omits this → false) correctly resets to the human-present posture. Suspend/resume does NOT go through this handler, so a within-run resume keeps the persisted posture.

§run_budget: Option<RunBudgetConfig>

Optional per-run resource guardrail override (issue #221): token / tool-call / subagent budget for THIS execution. TIGHTEN-ONLY: per field, the effective limit is the minimum of this override and the config-level run_budget default — a client can lower the operator’s ceiling for one run but can never raise or remove it (a looser value is silently clamped to the config default). An unset field keeps the config default, which may itself be unlimited.

Trait Implementations§

Source§

impl<'de> Deserialize<'de> for ExecuteRequest

Source§

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

Deserialize this value from the given Serde deserializer. 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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