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.
Phase 1.1 added execution_nonce as a sibling field 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>>Phase 1.1: short-lived, single-use execution nonce bound to this
allow verdict. Populated only on Verdict::Allow when an
ExecutionNonceConfig is installed on the kernel. Legacy
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.