Skip to main content

InteractionResponse

Struct InteractionResponse 

Source
pub struct InteractionResponse {
    pub request_id: String,
    pub value: Option<String>,
    pub choice_index: Option<usize>,
    pub approved: Option<bool>,
    pub scope: Option<ApprovalScope>,
    pub feedback: Option<String>,
    pub parts: Vec<InboundPart>,
}
Expand description

A response written by the dashboard (or lev respond) to answer the worker.

Fields§

§request_id: String

Must match InteractionRequest.id.

§value: Option<String>

The user’s free-text value (FreeText / InteractionPoints).

§choice_index: Option<usize>

Index into options for MultipleChoice / ToolApproval.

§approved: Option<bool>

Whether a ToolApproval was granted.

§scope: Option<ApprovalScope>

Scope of a tool approval decision.

§feedback: Option<String>

What the person wants the model to do instead, on a denied tool approval. Reaches the model as part of the tool result.

Absent (the default) is the plain deny every existing client sends, so an answer written before this field existed still means what it meant. Only ever read alongside approved: Some(false): a grant has nothing to redirect.

§parts: Vec<InboundPart>

Files attached to a text answer: what lev respond --attach and a @path in a dashboard reply send. The run stores each one and writes it beside the answer’s text in the tool result. Absent on every answer written before parts existed, and on every answer that is not text.

Implementations§

Source§

impl InteractionResponse

Source

pub fn with_parts(self, parts: Vec<InboundPart>) -> Self

The same answer, with files attached.

Source

pub fn text(request_id: impl Into<String>, value: impl Into<String>) -> Self

Build a simple text response.

Source

pub fn choice(request_id: impl Into<String>, index: usize) -> Self

Build a choice response (0-based index).

Source

pub fn approval( request_id: impl Into<String>, approved: bool, scope: ApprovalScope, ) -> Self

Build an approval response.

Source

pub fn deny_with_feedback(request_id: impl Into<String>, feedback: &str) -> Self

Build a deny that tells the model what to do instead.

The text is trimmed, and an answer that is all whitespace is the plain deny: the tool result must not carry an empty “Feedback:” for the model to puzzle over.

Source

pub fn deny_feedback(&self) -> Option<&str>

The redirect a denied tool approval carries, if the person wrote one.

None on a grant, whatever the field says: feedback beside approved: true is a client bug, and the model must not be told the call it just ran was refused.

Trait Implementations§

Source§

impl Clone for InteractionResponse

Source§

fn clone(&self) -> InteractionResponse

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 InteractionResponse

Source§

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

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

impl<'de> Deserialize<'de> for InteractionResponse

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 InteractionResponse

Source§

fn eq(&self, other: &InteractionResponse) -> 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 InteractionResponse

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 InteractionResponse

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