pub enum ToolKind {
Shell,
Read,
Write,
Edit,
Glob,
Grep,
Other,
}Expand description
A canonical classification tag for a tool, used only to align comparable tools across harness packs for A/B analysis (ADR-0003) — it is not the wire name (that is assigned per-pack at registration) and not the Rust type name.
Closed for v0 but carries an ToolKind::Other catch-all (via
#[serde(other)]) so tools without a cross-pack analog — MCP tools, and
harness-unique specials — still classify. Grok Build’s real ToolKind has the
same shape (a fixed set plus Other); we start small and grow the canonical
set as packs need it.
Variants§
Shell
Runs a shell command.
Read
Reads a file’s contents.
Write
Creates or overwrites a file.
Edit
Edits part of an existing file (e.g. exact-string replace).
Glob
Expands a path/glob pattern to a list of files.
Grep
Searches file contents (e.g. ripgrep).
Other
No cross-pack analog: MCP tools and harness-unique specials.