pub struct PendingQuestionPrompt {
pub turn_id: String,
pub call_id: String,
pub index: u32,
pub header: String,
pub question: String,
pub options: Vec<QuestionOptionPrompt>,
pub args_json: String,
pub answer_token: String,
pub already_surfaced: bool,
}Expand description
One question a buffered turn paused on (#1660).
Surfaced from the terminal AgentEnd.pending_questions — the buffered-API
mirror of TurnEvent::QuestionPending’s fields. Every field named
explicitly, shared by both the buffered (BufferedTurn) and streaming
(TurnEvent::QuestionPending) paths so the two can’t drift on what a
pending question carries.
Fields§
§turn_id: StringTurn that emitted this question occurrence (#2523).
call_id: StringThe ask_question call id this question came from.
index: u32This question’s position within its call’s questions array
(0-based).
header: StringThe short label (fits a chat-surface button-row heading).
question: StringThe one-sentence question to ask.
options: Vec<QuestionOptionPrompt>2-4 mutually exclusive options to offer.
args_json: StringThe raw ask_question call’s full arguments JSON (every question in
the call, not just this one).
answer_token: StringThe short-lived signed capability that must be replayed unmodified on
the eventual QuestionDialer::respond call — required, the control
plane rejects a Respond whose token is missing, expired, or bound to
a different occurrence or conversation.
already_surfaced: boolWhether this still-unanswered question was already surfaced once (a
later turn’s boundary marker sits after its question_request in
the event log while it stayed unanswered). false: render the full
interactive card; true: render a compact reminder instead
(#1970). Derived by the control plane at replay time — never
edge-cached.
Trait Implementations§
Source§impl Clone for PendingQuestionPrompt
impl Clone for PendingQuestionPrompt
Source§fn clone(&self) -> PendingQuestionPrompt
fn clone(&self) -> PendingQuestionPrompt
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PendingQuestionPrompt
impl Debug for PendingQuestionPrompt
impl Eq for PendingQuestionPrompt
Source§impl From<PendingQuestion> for PendingQuestionPrompt
impl From<PendingQuestion> for PendingQuestionPrompt
Source§fn from(q: WireAgentPendingQuestion) -> Self
fn from(q: WireAgentPendingQuestion) -> Self
Source§impl From<PendingQuestionEntry> for PendingQuestionPrompt
A recovered PendingQuestionEntry (from QuestionDialer::list_pending)
carries the same fields as PendingQuestionPrompt — one shared
conversion target so a ListPending recovery renders identically to the
live card.
impl From<PendingQuestionEntry> for PendingQuestionPrompt
A recovered PendingQuestionEntry (from QuestionDialer::list_pending)
carries the same fields as PendingQuestionPrompt — one shared
conversion target so a ListPending recovery renders identically to the
live card.
Source§fn from(q: PendingQuestionEntry) -> Self
fn from(q: PendingQuestionEntry) -> Self
Source§impl From<PendingQuestionPrompt> for TurnEvent
TurnEvent::QuestionPending carries the exact same fields as
PendingQuestionPrompt — reuse that conversion rather than a second
hand-written field list that could drift from it.
impl From<PendingQuestionPrompt> for TurnEvent
TurnEvent::QuestionPending carries the exact same fields as
PendingQuestionPrompt — reuse that conversion rather than a second
hand-written field list that could drift from it.
Source§fn from(p: PendingQuestionPrompt) -> Self
fn from(p: PendingQuestionPrompt) -> Self
Source§impl PartialEq for PendingQuestionPrompt
impl PartialEq for PendingQuestionPrompt
impl StructuralPartialEq for PendingQuestionPrompt
Auto Trait Implementations§
impl Freeze for PendingQuestionPrompt
impl RefUnwindSafe for PendingQuestionPrompt
impl Send for PendingQuestionPrompt
impl Sync for PendingQuestionPrompt
impl Unpin for PendingQuestionPrompt
impl UnsafeUnpin for PendingQuestionPrompt
impl UnwindSafe for PendingQuestionPrompt
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request