Skip to main content

PermissionCeiling

Struct PermissionCeiling 

Source
pub struct PermissionCeiling {
    pub write: bool,
    pub network_tool: bool,
    pub shell: ShellCeiling,
    pub delegation_depth: u32,
    pub tools: bool,
}
Expand description

The most a member is allowed to do. This is a ceiling, never a grant: PermissionCeiling::clamp_to can only ever narrow against the active session posture, so a saved Fleet can never raise live authority.

Fields§

§write: bool§network_tool: bool

Whether the member may be handed a model-visible network tool (fetch, browse, HTTP).

This is deliberately not a statement about transport. Host-owned provider inference — the ordinary API call CodeWhale makes on the member’s behalf — always happens over the network and is not governed by this field. A member with network_tool = false still runs on a remote model; it simply has no tool with which to reach the network itself. Receipts disclose that distinction rather than implying an air-gap.

§shell: ShellCeiling§delegation_depth: u32

Nested-delegation budget this member may consume.

§tools: bool

Whether the member may be handed tools at all.

Implementations§

Source§

impl PermissionCeiling

Source

pub const ROUTER: Self

The Router’s fixed posture: no tools (so no network tool), no shell, no writes, no delegation. Not configurable — see RouterMember.

The Router itself is still inferred by its configured provider over the network; that is host-owned transport, disclosed on the receipt.

Source

pub fn preset(name: &str) -> Option<Self>

Named presets accepted by permissions = "<preset>".

Source

pub fn clamp_to(self, session: Self) -> Self

Narrow this ceiling against the active session posture. Every field takes the more restrictive side, so the result can never grant more than either input.

Trait Implementations§

Source§

impl Clone for PermissionCeiling

Source§

fn clone(&self) -> PermissionCeiling

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for PermissionCeiling

Source§

impl Debug for PermissionCeiling

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PermissionCeiling

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for PermissionCeiling

Source§

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 Eq for PermissionCeiling

Source§

impl PartialEq for PermissionCeiling

Source§

fn eq(&self, other: &PermissionCeiling) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for PermissionCeiling

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for PermissionCeiling

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.