pub enum Request {
Ping,
Hello {
client_id: Option<String>,
requested_capabilities: Vec<String>,
ucan_tokens: Vec<String>,
},
ToolList,
ToolSchema {
tool_id: String,
},
RunTool {
tool_id: String,
args: Value,
dry_run: bool,
},
RunToolContinue {
tool_id: String,
cursor: String,
},
}Expand description
Request frames sent from client → server.
Variants§
Ping
Hello
SP-12 Hello handshake. Optional: pre-SP-12 servers do not recognize
it; AtdClient::hello tolerates that and returns an empty granted
set so callers can treat “no capabilities” and “server too old”
identically.
SP-capability-v2 (2026-05-11) adds the optional ucan_tokens field.
When non-empty, each element is a UCAN-lite JWT compact form
(alg=EdDSA, typ=ucan/1.0+jwt); the server’s verifier produces
granted = granted_strings ∪ granted_ucan. Pre-SP-capability-v2
servers omit the field via serde default; their behaviour is byte-
identical to SP-12. Spec §4.2 + §5.2.
ToolList
ToolSchema
RunTool
RunToolContinue
Fetch the next page of a paginated tool result. The cursor is the
server-issued opaque string from a prior Response::ToolResultResponse.next_cursor.
tool_id must match the cursor’s embedded tool_id (server validates).
SP-pagination-v1 §4.1.