anyclaw-sdk-types
Shared wire types for the anyclaw SDK ecosystem.
Part of anyclaw — an infrastructure sidecar connecting AI agents to channels and tools.
⚠️ Unstable — types and wire formats may change between releases.
Key Types
Routing
| Type | Description |
|---|---|
SessionKey |
Routing key encoding channel + conversation identity ("{channel}:{kind}:{peer_id}"). |
ChannelEvent |
Agent-to-channel bridge enum: DeliverMessage, SessionComplete, RoutePermission, AckMessage, DispatchStarted. |
Channel Protocol
| Type | Description |
|---|---|
ChannelCapabilities |
Capabilities advertised during the initialize handshake (streaming, rich_text). |
ChannelInitializeParams |
Handshake params sent to a channel subprocess, including agent_name, ack_config, and forwarded options. |
DeliverMessage |
anyclaw → channel: deliver agent output to a peer session. |
ChannelSendMessage |
channel → anyclaw: inbound user message with PeerInfo. |
ContentKind |
Typed dispatch enum over DeliverMessage.content: Thought, MessageChunk, Result, ToolCall, and more. |
AckNotification |
Ack reaction lifecycle notification. |
ACP Protocol (supervisor ↔ agent)
| Type | Description |
|---|---|
InitializeParams / InitializeResult |
ACP handshake types. |
SessionNewParams / SessionPromptParams |
Session lifecycle request types. |
SessionUpdateEvent / SessionUpdateType |
Streaming update events from the agent. |
StopReason |
Why the agent stopped: EndTurn, MaxTokens, Refusal, Cancelled, etc. |
PromptResponse |
Parsed from session/prompt RPC response — canonical ACP completion signal. |
Permissions
| Type | Description |
|---|---|
PermissionRequest |
Agent asks the user for a permission choice. |
PermissionResponse |
User's selected option, returned to the agent. |
PermissionOption |
A single labeled choice in a permission prompt. |
Leaf Crate
anyclaw-sdk-types depends only on serde and serde_json. It's the dependency-free base of the SDK. If you're building both a channel and a tool that need to share types, depend on this crate alone — no need to pull in anyclaw-sdk-channel or anyclaw-sdk-tool.
All JSON field names use camelCase (Rust fields are snake_case).
Documentation
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.