pub enum LoopLevel {
L1Report,
L2Assisted,
L3Unattended,
}Expand description
How much autonomy a loop is trusted with.
The level is the single knob that ties together write-capability and
gate policy — it is not the same as a tool permission mode (that is
harness-permissions, which the engine derives from the level).
Variants§
L1Report
L1 — Report-only. Discovery and visibility, no automated fixes. The maker runs read-only; every proposal is escalated to a human as a report. The safest place to start any loop.
L2Assisted
L2 — Assisted. The maker may write inside an isolated sandbox, but a human gates every change before it lands. The default for a loop you are actively building trust in.
L3Unattended
L3 — Unattended. Runs within strict guardrails: only actions on the gate’s allowlist commit automatically; anything else still escalates. Reserve for narrow, well-understood loops.
Implementations§
Trait Implementations§
impl Copy for LoopLevel
Source§impl<'de> Deserialize<'de> for LoopLevel
impl<'de> Deserialize<'de> for LoopLevel
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>,
impl Eq for LoopLevel
impl StructuralPartialEq for LoopLevel
Auto Trait Implementations§
impl Freeze for LoopLevel
impl RefUnwindSafe for LoopLevel
impl Send for LoopLevel
impl Sync for LoopLevel
impl Unpin for LoopLevel
impl UnsafeUnpin for LoopLevel
impl UnwindSafe for LoopLevel
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
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.