pub enum SessionScope {
ExplorerRead,
WalletManage,
AgentTurn,
}Expand description
A capability a session token carries.
Checked independently of any other scope the same token carries (ADR 0007: possession of a wallet passkey must never implicitly grant explorer read, and vice versa). Which scopes a given ceremony mints TOGETHER is a policy decision recorded in that ADR; that two of them commonly arrive on the same token never licenses a gate to infer one from another — every gate names the exact scope it requires.
Variants§
ExplorerRead
Read access to the subject’s own persona’s conversations/data in the
explorer (never fleet-wide — see crate::control-plane’s
participation-scoped read gate).
WalletManage
Manage the subject’s own linked wallet (spend authorization, linking, revocation ceremonies).
AgentTurn
Dispatch an agent turn as the subject’s own persona.
Separate from Self::ExplorerRead because a turn is a write, not a
read: it spends provider tokens and can trigger tool side effects. The
two are minted together by POLICY wherever a login ceremony resolves a
persona (ADR 0007’s Consequences records that choice), never by
implication — a gate authorizing a turn names this scope explicitly and
infers it from nothing, so the policy is revisable without touching
every call site, and a future token kind that should read without
spending (a share link, a machine session) can be minted without it.
Trait Implementations§
Source§impl Clone for SessionScope
impl Clone for SessionScope
Source§fn clone(&self) -> SessionScope
fn clone(&self) -> SessionScope
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SessionScope
Source§impl Debug for SessionScope
impl Debug for SessionScope
impl Eq for SessionScope
Source§impl Hash for SessionScope
impl Hash for SessionScope
Source§impl PartialEq for SessionScope
impl PartialEq for SessionScope
impl StructuralPartialEq for SessionScope
Auto Trait Implementations§
impl Freeze for SessionScope
impl RefUnwindSafe for SessionScope
impl Send for SessionScope
impl Sync for SessionScope
impl Unpin for SessionScope
impl UnsafeUnpin for SessionScope
impl UnwindSafe for SessionScope
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,
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§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§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.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> ⓘ
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> ⓘ
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