Skip to main content

SessionProjection

Struct SessionProjection 

Source
pub struct SessionProjection {
Show 18 fields pub session_id: Option<SessionId>, pub profile_revision_id: Option<ProfileRevisionId>, pub deleted: bool, pub last_seq: u64, pub active_run_id: Option<RunId>, pub waiting_interaction_id: Option<InteractionId>, pub messages: Vec<ProjectedMessage>, pub injected_context: Vec<ProjectedContext>, pub run_status: BTreeMap<RunId, RunState>, pub open_tool_calls: BTreeMap<ToolCallId, OpenToolCall>, pub started_tool_calls: BTreeSet<ToolCallId>, pub queued_inputs: BTreeMap<InputId, (RunId, DeliveryMode)>, pub claimed_inputs: BTreeMap<InputId, RunId>, pub open_turn: Option<u32>, pub open_steps: BTreeSet<u32>, pub next_step: u32, pub open_compaction: Option<(String, u64)>, pub summary: Option<String>, /* private fields */
}
Expand description

Deterministic projection of a Session log used by the runtime, recovery and UI.

Fields§

§session_id: Option<SessionId>

Session this record belongs to; None until the first event is applied.

§profile_revision_id: Option<ProfileRevisionId>

Immutable Agent Profile revision pinned by the Session; None before SessionCreated.

§deleted: bool

Whether the Session was deleted.

§last_seq: u64

Sequence of the last applied event.

§active_run_id: Option<RunId>

Run currently executing, if any.

§waiting_interaction_id: Option<InteractionId>

Interaction the active Run waits for, if any.

§messages: Vec<ProjectedMessage>

Conversation messages in request order.

§injected_context: Vec<ProjectedContext>

Context injected so far, in order.

§run_status: BTreeMap<RunId, RunState>

State of every Run seen.

§open_tool_calls: BTreeMap<ToolCallId, OpenToolCall>

Tool calls admitted but not yet resulted.

§started_tool_calls: BTreeSet<ToolCallId>

Open tool calls whose execution started.

§queued_inputs: BTreeMap<InputId, (RunId, DeliveryMode)>

Inputs queued but not claimed.

§claimed_inputs: BTreeMap<InputId, RunId>

Inputs claimed by a Run.

§open_turn: Option<u32>

Open Turn, if any.

§open_steps: BTreeSet<u32>

Open steps (at most one).

§next_step: u32

Next step number.

§open_compaction: Option<(String, u64)>

Open compaction (id, through_seq), if any.

§summary: Option<String>

Short human-readable summary.

Implementations§

Source§

impl SessionProjection

Source

pub fn replay(events: &[SessionEvent]) -> Result<Self, EventError>

Rebuild the projection from a committed log; fails on any invariant violation.

Source

pub fn apply(&mut self, envelope: &SessionEvent) -> Result<(), EventError>

Apply one committed event, enforcing sequence, lifecycle and pairing invariants.

Source

pub fn usage_for(&self, run_id: &str) -> (u64, u64)

(prompt, completion) tokens settled for run_id.

Source

pub fn billable_units_for(&self, run_id: &str) -> u64

Settled plus reserved-but-unsettled units for run_id, for conservative billing.

Trait Implementations§

Source§

impl Clone for SessionProjection

Source§

fn clone(&self) -> SessionProjection

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 Debug for SessionProjection

Source§

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

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

impl Default for SessionProjection

Source§

fn default() -> SessionProjection

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

impl PartialEq for SessionProjection

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SessionProjection

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> 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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.