pub struct Session { /* private fields */ }Expand description
A bounded context for agent operations.
Sessions provide:
- Traceability: All events link to a session
- Time bounds: Sessions expire after max_duration
- Depth limits: Prevents runaway agent spawning
- Scope: Session-level capability constraints
Implementations§
Source§impl Session
impl Session
Sourcepub const DEFAULT_MAX_DEPTH: u32 = 10
pub const DEFAULT_MAX_DEPTH: u32 = 10
Default maximum depth for causal chains.
Sourcepub const DEFAULT_MAX_DURATION: Duration
pub const DEFAULT_MAX_DURATION: Duration
Default maximum session duration (1 hour).
Sourcepub fn builder() -> SessionBuilder
pub fn builder() -> SessionBuilder
Create a new session builder.
Sourcepub fn principal(&self) -> &PrincipalId
pub fn principal(&self) -> &PrincipalId
Get the principal who initiated this session.
Sourcepub fn started_at(&self) -> i64
pub fn started_at(&self) -> i64
Get when the session started.
Sourcepub fn max_duration(&self) -> Duration
pub fn max_duration(&self) -> Duration
Get the maximum allowed duration.
Sourcepub fn capabilities(&self) -> Option<&CapabilitySet>
pub fn capabilities(&self) -> Option<&CapabilitySet>
Get the session-level capabilities (Section 3.2.2).
Sourcepub fn is_expired(&self, current_time: i64) -> bool
pub fn is_expired(&self, current_time: i64) -> bool
Check if the session has expired based on max_duration.
Sourcepub fn remaining_duration(&self, current_time: i64) -> Option<Duration>
pub fn remaining_duration(&self, current_time: i64) -> Option<Duration>
Get remaining duration before expiry.
Returns None if already expired.
Sourcepub fn end(
&mut self,
current_time: i64,
reason: SessionEndReason,
) -> Result<SessionSummary>
pub fn end( &mut self, current_time: i64, reason: SessionEndReason, ) -> Result<SessionSummary>
Sourcepub fn record_event(&mut self)
pub fn record_event(&mut self)
Record an event in this session.
Sourcepub fn record_action(&mut self)
pub fn record_action(&mut self)
Record an action in this session.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Session
impl<'de> Deserialize<'de> for Session
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
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnwindSafe for Session
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.