Skip to main content

InteractionRequest

Struct InteractionRequest 

Source
pub struct InteractionRequest {
    pub id: String,
    pub kind: InteractionKind,
    pub prompt: String,
    pub options: Vec<String>,
    pub tool_name: Option<String>,
    pub tool_arguments: Option<Value>,
    pub required: bool,
    pub stage_name: String,
    pub body: Option<String>,
    pub body_format: BodyFormat,
}
Expand description

A pending interaction request written by the worker.

Fields§

§id: String

Unique ID for this request (uuid-lite: timestamp + stage index).

§kind: InteractionKind

What kind of answer is expected.

§prompt: String

Prompt text to display to the user.

§options: Vec<String>

Options for MultipleChoice (index-labelled).

§tool_name: Option<String>

For ToolApproval: the tool name.

§tool_arguments: Option<Value>

For ToolApproval: the tool arguments (JSON).

§required: bool

Whether an answer is mandatory (empty/cancel not allowed).

§stage_name: String

Stage name that triggered this request.

§body: Option<String>

Optional rich body (markdown document, plan, etc.) for the user to review.

§body_format: BodyFormat

Format of the body content.

Implementations§

Source§

impl InteractionRequest

Source

pub fn free_text( id: impl Into<String>, prompt: impl Into<String>, stage: impl Into<String>, required: bool, ) -> Self

Create a new free-text request.

Source

pub fn review( id: impl Into<String>, title: impl Into<String>, markdown: impl Into<String>, stage: impl Into<String>, ) -> Self

Create a “present for review” request: pauses the run and shows a rich markdown document to the user before accepting feedback.

Source

pub fn edit_text( id: impl Into<String>, prompt: impl Into<String>, stage: impl Into<String>, initial_content: impl Into<String>, ) -> Self

Create an “edit document” request: shows initial_content in an editable field pre-seeded with it (via body); the user edits it and the modified text is returned as the response text.

Source

pub fn multiple_choice( id: impl Into<String>, prompt: impl Into<String>, options: Vec<String>, stage: impl Into<String>, ) -> Self

Create a new multiple-choice request.

Source

pub fn confirm( id: impl Into<String>, prompt: impl Into<String>, stage: impl Into<String>, ) -> Self

Create a new confirm request.

Source

pub fn gate_approval( id: impl Into<String>, tool_name: impl Into<String>, arguments: Value, stage: impl Into<String>, ) -> Self

Build a taint-gate approval request.

Shaped like a tool approval - it is the same yes/no with a scope - but worded for the decision actually being made. A gate approval clears the tool to carry the data, which is not a grant keyed on what the call runs, so it offers no per-stage scope and names no keys.

Source

pub fn tool_approval( id: impl Into<String>, tool_name: impl Into<String>, arguments: Value, stage: impl Into<String>, grant_keys: &[String], ) -> Self

Build a tool-approval request.

grant_keys is what a Stage or Run approval would be remembered under, and it goes in the option labels rather than in body because the dashboard renders only prompt and options for this kind. Naming it matters: the old wording offered “Allow for this session” on calls the dispatcher then silently degraded to once, so the user chose a grant they did not get.

The options are fixed-position - every client maps an index to a scope through approval_choice - so the wording varies and the length does not.

Trait Implementations§

Source§

impl Clone for InteractionRequest

Source§

fn clone(&self) -> InteractionRequest

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 InteractionRequest

Source§

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

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

impl<'de> Deserialize<'de> for InteractionRequest

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 PartialEq for InteractionRequest

Source§

fn eq(&self, other: &InteractionRequest) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for InteractionRequest

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
Source§

impl StructuralPartialEq for InteractionRequest

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<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> 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> 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 = 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<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