pub struct ToolCallResponse {
pub request_id: String,
pub verdict: Verdict,
pub output: Option<ToolCallOutput>,
pub reason: Option<String>,
pub terminal_state: OperationTerminalState,
pub receipt: ChioReceipt,
pub execution_nonce: Option<Box<SignedExecutionNonce>>,
}Expand description
The kernel’s response to a tool call request.
The execution_nonce field is a sibling so the Verdict enum can keep
its Copy semantics. The nonce is only populated for Verdict::Allow
and only when the kernel has an ExecutionNonceConfig installed;
non-allow responses and nonce-disabled deployments continue to carry
None here.
Fields§
§request_id: StringCorrelation identifier (matches the request).
verdict: VerdictThe kernel’s verdict.
output: Option<ToolCallOutput>The tool’s output payload, which may be a direct value or a stream.
reason: Option<String>Denial reason (populated when verdict is Deny).
terminal_state: OperationTerminalStateExplicit terminal lifecycle state for this request.
receipt: ChioReceiptSigned receipt attesting to this decision.
execution_nonce: Option<Box<SignedExecutionNonce>>Short-lived, single-use execution nonce bound to this allow verdict.
Populated only on Verdict::Allow when an ExecutionNonceConfig is
installed on the kernel. Deployments without a config leave this
None and keep working.
Boxed so the deny/cancel/incomplete hot paths (which all carry
None) don’t widen the SessionOperationResponse::ToolCall
variant and trip clippy’s large_enum_variant.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ToolCallResponse
impl RefUnwindSafe for ToolCallResponse
impl Send for ToolCallResponse
impl Sync for ToolCallResponse
impl Unpin for ToolCallResponse
impl UnsafeUnpin for ToolCallResponse
impl UnwindSafe for ToolCallResponse
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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 more