pub struct ServerRunnerMetrics {
pub success: bool,
pub steps_executed: usize,
pub tokens_input: u64,
pub tokens_output: u64,
pub anchor_breaches: usize,
pub step_names: Vec<String>,
pub step_results: Vec<String>,
pub per_step_chunks: Vec<Vec<String>>,
pub provenance_events: Vec<String>,
pub blame_attribution: Option<BlameContext>,
pub epistemic_envelopes: Vec<EpistemicEnvelope>,
}Fields§
§success: bool§steps_executed: usize§tokens_input: u64§tokens_output: u64§anchor_breaches: usize§step_names: Vec<String>§step_results: Vec<String>§per_step_chunks: Vec<Vec<String>>Per-step token chunks for streaming (simulated from step results).
provenance_events: Vec<String>§Fase 39.c.y — semantic provenance events captured during
flow execution. Each entry is a kind:identifier slug
(closed taxonomy enforced by producer sites):
retrieve:<store>— Pillar II store readpersist:<store>— Pillar II store insertmutate:<store>— Pillar II store updatepurge:<store>— Pillar II store deleteshield:<name>@<step>— Pillar I shield invocationots:<name>@<step>— OTS applymandate:<name>@<step>— mandate applycompute:<name>@<step>— compute applylambda_apply:<name>@<step>— lambda data apply The wire envelope’sprovenance_chainis built from[flow:F, …events…, step:S0, step:S1, …, backend:B]. Empty for trivial flows; populated by [emit_provenance_event] at the runtime sites.
blame_attribution: Option<BlameContext>§Fase 39.c.z — closed-catalog blame attribution from runtime degradation events. Populated when:
- an anchor with severity != “error” fires (degraded path proceeds)
- a shield flags content but flow proceeds
- a store mutation chain verification fails AND flow proceeds with prior-state read
- a backend returns truncated / partial response
- D5 detects a recoverable type mismatch
Noneon the clean happy path. The first surfaced blame wins (subsequent events are recorded in audit_log but do not overwrite the primary attribution).
epistemic_envelopes: Vec<EpistemicEnvelope>§Fase 55.b — the Theorem 5.1 (base, scope, confidence) triple of
every flow-level use <Tool> dispatch whose tool declares an
epistemic:<level> effect. Derived from the IR via
crate::epistemic_capture::collect_for_flow — the same function
the streaming path calls, so both transports surface byte-identical
envelopes (§55.c parity). Empty for flows with no epistemic tool.
Auto Trait Implementations§
impl Freeze for ServerRunnerMetrics
impl RefUnwindSafe for ServerRunnerMetrics
impl Send for ServerRunnerMetrics
impl Sync for ServerRunnerMetrics
impl Unpin for ServerRunnerMetrics
impl UnsafeUnpin for ServerRunnerMetrics
impl UnwindSafe for ServerRunnerMetrics
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
Mutably borrows from an owned value. Read more
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>
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 moreCreates a shared type from an unshared type.