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.
Implementations§
Trait Implementations§
impl Copy for ToolKind
Source§impl<'de> Deserialize<'de> for ToolKind
impl<'de> Deserialize<'de> for ToolKind
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToolKind, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToolKind, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for ToolKind
Source§impl Serialize for ToolKind
impl Serialize for ToolKind
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ToolKind
Auto Trait Implementations§
impl Freeze for ToolKind
impl RefUnwindSafe for ToolKind
impl Send for ToolKind
impl Sync for ToolKind
impl Unpin for ToolKind
impl UnsafeUnpin for ToolKind
impl UnwindSafe for ToolKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.