pub struct ToolExecution {Show 14 fields
pub id: ToolExecId,
pub tool_name: String,
pub input: Value,
pub output: Option<String>,
pub success: bool,
pub error: Option<String>,
pub started_at: u64,
pub duration_ms: u64,
pub files_affected: Vec<FileChange>,
pub tokens: Option<TokenCounts>,
pub parent_id: Option<ToolExecId>,
pub session_id: Option<String>,
pub model: Option<String>,
pub metadata: HashMap<String, Value>,
}Expand description
A single tool execution record
Fields§
§id: ToolExecIdUnique execution ID
tool_name: StringTool name/identifier
input: ValueFull input arguments (JSON)
output: Option<String>Output result
success: boolWhether execution succeeded
error: Option<String>Error message if failed
started_at: u64Execution start time (Unix timestamp ms)
duration_ms: u64Duration in milliseconds
files_affected: Vec<FileChange>Files affected by this tool
tokens: Option<TokenCounts>Token usage for this execution (if applicable)
parent_id: Option<ToolExecId>Parent execution ID (for nested/sub-agent calls)
session_id: Option<String>Session or agent ID
model: Option<String>Model used (if applicable)
metadata: HashMap<String, Value>Additional metadata
Implementations§
Source§impl ToolExecution
impl ToolExecution
Sourcepub fn start(tool_name: impl Into<String>, input: Value) -> Self
pub fn start(tool_name: impl Into<String>, input: Value) -> Self
Create a new tool execution record (call this when starting execution)
Sourcepub fn complete_success(self, output: String, duration: Duration) -> Self
pub fn complete_success(self, output: String, duration: Duration) -> Self
Complete the execution with success
Sourcepub fn complete_error(self, error: String, duration: Duration) -> Self
pub fn complete_error(self, error: String, duration: Duration) -> Self
Complete the execution with an error
Sourcepub fn add_file_change(&mut self, change: FileChange)
pub fn add_file_change(&mut self, change: FileChange)
Add a file change to this execution
Sourcepub fn with_parent(self, parent_id: ToolExecId) -> Self
pub fn with_parent(self, parent_id: ToolExecId) -> Self
Set parent execution ID
Sourcepub fn with_session(self, session_id: impl Into<String>) -> Self
pub fn with_session(self, session_id: impl Into<String>) -> Self
Set session ID
Sourcepub fn with_model(self, model: impl Into<String>) -> Self
pub fn with_model(self, model: impl Into<String>) -> Self
Set model
Trait Implementations§
Source§impl Clone for ToolExecution
impl Clone for ToolExecution
Source§fn clone(&self) -> ToolExecution
fn clone(&self) -> ToolExecution
Returns a duplicate of the value. Read more
1.0.0 · 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 ToolExecution
impl Debug for ToolExecution
Source§impl<'de> Deserialize<'de> for ToolExecution
impl<'de> Deserialize<'de> for ToolExecution
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 ToolExecution
impl RefUnwindSafe for ToolExecution
impl Send for ToolExecution
impl Sync for ToolExecution
impl Unpin for ToolExecution
impl UnwindSafe for ToolExecution
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,
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::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more