pub struct TurnArtifact {
pub step: usize,
pub timestamp: DateTime<Utc>,
pub request_body: Value,
pub response_body: Value,
pub finish_reason: Option<String>,
pub completion_tokens: Option<u32>,
pub prompt_tokens: Option<u32>,
pub reasoning_content: Option<String>,
pub parsed_tool_calls: Vec<ToolCall>,
pub agent_decision: AgentDecision,
pub elapsed_ms: u64,
}Expand description
One captured LLM call with everything needed for offline debugging.
Fields§
§step: usize§timestamp: DateTime<Utc>§request_body: ValueThe full request body that was POSTed, with secrets stripped.
response_body: ValueThe raw response body as parsed JSON (may be a partial reconstruction for streaming — finish_reason / token counts come from the SSE stream).
finish_reason: Option<String>§completion_tokens: Option<u32>§prompt_tokens: Option<u32>§reasoning_content: Option<String>Qwen/DeepSeek-style <think>...</think> reasoning content captured
alongside the visible response. Older artifacts may omit the field;
serde(default) keeps deserialization compatible with both shapes.
parsed_tool_calls: Vec<ToolCall>What selfware extracted from the response.
agent_decision: AgentDecisionWhat selfware did with it.
elapsed_ms: u64Trait Implementations§
Source§impl Clone for TurnArtifact
impl Clone for TurnArtifact
Source§fn clone(&self) -> TurnArtifact
fn clone(&self) -> TurnArtifact
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TurnArtifact
impl Debug for TurnArtifact
Source§impl<'de> Deserialize<'de> for TurnArtifact
impl<'de> Deserialize<'de> for TurnArtifact
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for TurnArtifact
impl RefUnwindSafe for TurnArtifact
impl Send for TurnArtifact
impl Sync for TurnArtifact
impl Unpin for TurnArtifact
impl UnsafeUnpin for TurnArtifact
impl UnwindSafe for TurnArtifact
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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>
Wrap the input message
T in a tonic::Request