#[repr(u8)]pub enum TrustMode {
Plan = 0,
Safe = 1,
Auto = 2,
}Expand description
The unified trust mode: Plan (read-only), Safe (confirm), Auto (autonomous).
Derives Ord so that std::cmp::min(parent, child) implements clamping:
a child agent can never exceed its parent’s trust level.
§Examples
use koda_core::trust::TrustMode;
let mode = TrustMode::Safe;
assert_eq!(mode.as_str(), "safe");
assert_eq!(mode.next(), TrustMode::Auto);
// Clamping: child can't exceed parent
assert_eq!(TrustMode::clamp(TrustMode::Plan, TrustMode::Auto), TrustMode::Plan);Variants§
Plan = 0
Read-only: deny all non-read tool calls. For investigation agents.
Safe = 1
Supervised: project-sandboxed writes, confirm all side effects. User default.
Auto = 2
Autonomous: project-sandboxed writes, auto-approve all including destructive.
Implementations§
Source§impl TrustMode
impl TrustMode
Sourcepub fn next(self) -> Self
pub fn next(self) -> Self
Cycle between user-facing modes: Safe ↔ Auto.
Plan is agent-only and never toggled by the user.
Sourcepub fn as_str(self) -> &'static str
pub fn as_str(self) -> &'static str
Stable string representation for persistence and wire protocol.
Sourcepub fn description(self) -> &'static str
pub fn description(self) -> &'static str
Human-readable description of this mode.
Trait Implementations§
Source§impl Ord for TrustMode
impl Ord for TrustMode
Source§impl PartialOrd for TrustMode
impl PartialOrd for TrustMode
impl Copy for TrustMode
impl Eq for TrustMode
impl StructuralPartialEq for TrustMode
Auto Trait Implementations§
impl Freeze for TrustMode
impl RefUnwindSafe for TrustMode
impl Send for TrustMode
impl Sync for TrustMode
impl Unpin for TrustMode
impl UnsafeUnpin for TrustMode
impl UnwindSafe for TrustMode
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> Comparable<K> for Q
impl<Q, K> Comparable<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
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.