pub enum ToolEffect {
ReadOnly,
RemoteAction,
LocalMutation,
Destructive,
}Expand description
Effect classification for tool calls.
Two-axis model: what does the tool touch (local vs. remote) and how severe are its effects (read vs. mutate vs. destroy)?
§Examples
use koda_core::tools::{ToolEffect, classify_tool};
assert_eq!(classify_tool("Read"), ToolEffect::ReadOnly);
assert_eq!(classify_tool("Write"), ToolEffect::LocalMutation);
assert_eq!(classify_tool("Delete"), ToolEffect::Destructive);Variants§
ReadOnly
No side-effects: file reads, grep, git status.
RemoteAction
Side-effects on remote services only: GitHub API, WebFetch POST.
LocalMutation
Mutates local filesystem or state: Write, Edit, Delete, MemoryWrite.
Destructive
Irreversible or high-blast-radius: rm -rf, git push –force, DROP TABLE.
Trait Implementations§
Source§impl Clone for ToolEffect
impl Clone for ToolEffect
Source§fn clone(&self) -> ToolEffect
fn clone(&self) -> ToolEffect
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ToolEffect
impl Debug for ToolEffect
Source§impl<'de> Deserialize<'de> for ToolEffect
impl<'de> Deserialize<'de> for ToolEffect
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ToolEffect
impl PartialEq for ToolEffect
Source§impl Serialize for ToolEffect
impl Serialize for ToolEffect
impl Copy for ToolEffect
impl Eq for ToolEffect
impl StructuralPartialEq for ToolEffect
Auto Trait Implementations§
impl Freeze for ToolEffect
impl RefUnwindSafe for ToolEffect
impl Send for ToolEffect
impl Sync for ToolEffect
impl Unpin for ToolEffect
impl UnsafeUnpin for ToolEffect
impl UnwindSafe for ToolEffect
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more