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: boolWhether the Session was deleted.
last_seq: u64Sequence 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: u32Next 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
impl SessionProjection
Sourcepub fn replay(events: &[SessionEvent]) -> Result<Self, EventError>
pub fn replay(events: &[SessionEvent]) -> Result<Self, EventError>
Rebuild the projection from a committed log; fails on any invariant violation.
Sourcepub fn apply(&mut self, envelope: &SessionEvent) -> Result<(), EventError>
pub fn apply(&mut self, envelope: &SessionEvent) -> Result<(), EventError>
Apply one committed event, enforcing sequence, lifecycle and pairing invariants.
Sourcepub fn usage_for(&self, run_id: &str) -> (u64, u64)
pub fn usage_for(&self, run_id: &str) -> (u64, u64)
(prompt, completion) tokens settled for run_id.
Sourcepub fn billable_units_for(&self, run_id: &str) -> u64
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
impl Clone for SessionProjection
Source§fn clone(&self) -> SessionProjection
fn clone(&self) -> SessionProjection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more