#[non_exhaustive]pub enum ToolKind {
Read,
Write,
Edit,
Delete,
Move,
Search,
Execute,
Fetch,
Other,
}Expand description
A neutral, cross-harness classification of what a tool call does — so a
consumer can route by behaviour (a read → a context pill, an edit → a
file-op card) without re-encoding each harness’s native tool vocabulary
(bob’s read_file, Claude’s Read, codex’s file_change). The raw
name is kept alongside for display/phrasing; tool_kind is for
behaviour. Named tool_kind (not kind) so it never collides with the
#[serde(tag = "kind")] event discriminator on RunEvent.
The values mirror ACP’s tool-call kind
(read/edit/delete/move/search/execute/fetch/other), so a
RunEvent::ToolStart maps onto an ACP tool_call without a translation
table. The one divergence: our Write (create/overwrite a whole file) has
no ACP counterpart — ACP folds whole-file writes into edit — so an
ACP bridge maps Write → edit.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Read
Read or inspect a file’s contents. (ACP read.)
Write
Create or overwrite a whole file. (No ACP kind — bridges to edit.)
Edit
Modify part of an existing file. (ACP edit.)
Delete
Delete a file. (ACP delete.)
Move
Move or rename a file. (ACP move.)
Search
Search or list files / the web. (ACP search.)
Execute
Run a shell command or external process. (ACP execute.)
Fetch
Fetch a URL / remote resource. (ACP fetch.)
Other
Anything else (MCP calls, task spawns, completion signals, …). (ACP other.)