Skip to main content

InteractionPoint

Struct InteractionPoint 

Source
pub struct InteractionPoint {
    pub name: String,
    pub prompt: String,
    pub required: bool,
    pub style: InteractionStyle,
    pub options: Vec<String>,
    pub directives: HashMap<String, String>,
    pub abort_options: Vec<String>,
    pub edit_options: Vec<String>,
    pub document_region: Option<String>,
}
Expand description

A point where a stage can request user input.

Fields§

§name: String

Unique name for this interaction point

§prompt: String

Prompt to show the user

§required: bool

Whether input is required (vs optional)

§style: InteractionStyle

Style of interaction (free text, multiple choice, confirm)

§options: Vec<String>

Options for MultipleChoice style

§directives: HashMap<String, String>

Directives keyed by option label.

When the user picks an option present in this map (e.g. “Revise - I’ll describe changes”), the mapped directive text is injected into the agent’s conversation context and the stage re-runs inference IN-STAGE (bounded by a revision cap) instead of falling through to a stage transition. The directive tells the agent what to do next - e.g. call ask_user_text to learn what to change, or edit_document to let the user edit the plan directly - so the routing decision is deterministic (code) while the actual input capture is an agent tool call.

§abort_options: Vec<String>

Options that, when selected, immediately abort the run: the engine marks the run cancelled and stops with no further inference and no transition resolution. Matched against the selected option label with the same dash/whitespace normalization used for directive lookup.

§edit_options: Vec<String>

Options that, when selected, open the stage’s most recent output (e.g. the plan) in an editable field so the user can modify it directly. The engine issues the edit interaction itself and injects the edited text back into context - deterministic, with no dependence on the model choosing to call an edit tool. Matched with the same normalization.

§document_region: Option<String>

Optional pinned region to hold this point’s authoritative document (e.g. "plan"). When set, each time the point is presented the current document - the produced text, or the user’s direct edit - replaces that region’s content, so later revisions and downstream stages build on the current version rather than regenerating from the task. None ⇒ the document lives only in the rolling conversation / output.

Trait Implementations§

Source§

impl Clone for InteractionPoint

Source§

fn clone(&self) -> InteractionPoint

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 InteractionPoint

Source§

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

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

impl<'de> Deserialize<'de> for InteractionPoint

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 InteractionPoint

Source§

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

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 InteractionPoint

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