pub struct OutputMessageStartedData {
pub turn_id: TurnId,
pub message_id: MessageId,
pub model: Option<String>,
pub iteration: Option<u32>,
pub phase: Option<ExecutionPhase>,
}Expand description
Data for output.message.started event
Emitted when the LLM starts generating a response. UI can show a “thinking” indicator until output.message.delta or output.message.completed events arrive.
Fields§
§turn_id: TurnIdTurn ID this output belongs to
message_id: MessageIdStable public ID for this assistant message across its streaming lifecycle.
This is the same identifier as OutputMessageCompletedData.message.id.
model: Option<String>Optional model name being used
iteration: Option<u32>Current iteration number within this turn (1-based). Useful for UI to show progress during multi-step tool-calling flows.
phase: Option<ExecutionPhase>Best-effort streamed phase hint (EVE-774).
None means “not yet classified — treat as ordinary assistant text”,
NEVER “thinking”. A missing/unknown phase must fall back to the
assistant-text channel, never the reasoning channel. Only populated when
the provider stream reveals a native phase before this event is emitted;
today output.message.started is emitted before the LLM call, so this is
generally None at start. The authoritative classification remains the
completed Message.phase. See specs/events.md.
Trait Implementations§
Source§impl Clone for OutputMessageStartedData
impl Clone for OutputMessageStartedData
Source§fn clone(&self) -> OutputMessageStartedData
fn clone(&self) -> OutputMessageStartedData
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 OutputMessageStartedData
impl Debug for OutputMessageStartedData
Source§impl<'de> Deserialize<'de> for OutputMessageStartedData
impl<'de> Deserialize<'de> for OutputMessageStartedData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<OutputMessageStartedData> for EventData
impl From<OutputMessageStartedData> for EventData
Source§fn from(data: OutputMessageStartedData) -> Self
fn from(data: OutputMessageStartedData) -> Self
Auto Trait Implementations§
impl Freeze for OutputMessageStartedData
impl RefUnwindSafe for OutputMessageStartedData
impl Send for OutputMessageStartedData
impl Sync for OutputMessageStartedData
impl Unpin for OutputMessageStartedData
impl UnsafeUnpin for OutputMessageStartedData
impl UnwindSafe for OutputMessageStartedData
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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