pub struct EconomicsSession {
pub index: u32,
pub prompt_sha256: String,
pub duration_ms: u64,
pub turns: Option<u64>,
pub ended: String,
pub is_error: bool,
pub requests: Vec<EconomicsRequest>,
pub models: Vec<EconomicsModelTotal>,
pub reported_cost_microusd: Option<u64>,
pub tools: BTreeMap<String, u64>,
pub orientation: EconomicsOrientation,
}Expand description
One session of a run: one harness invocation on one prompt, with every provider request it made, the harness’s own totals and the tools it called. A count the harness did not report is absent rather than zero.
use std::collections::BTreeMap;
use majordomus_cli::economics::model::{EconomicsOrientation, EconomicsSession};
let s = EconomicsSession {
index: 1, prompt_sha256: "0".repeat(64), duration_ms: 42_000, turns: None,
ended: "success".into(), is_error: false, requests: vec![], models: vec![],
reported_cost_microusd: None, tools: BTreeMap::from([("Read".into(), 3)]),
orientation: EconomicsOrientation::default(),
};
let json = serde_json::to_value(&s).unwrap();
assert!(json.get("turns").is_none(), "an unreported count is absent, not zero");
assert_eq!(json["tools"]["Read"], 3);Fields§
§index: u321-based.
prompt_sha256: StringSHA-256 of the prompt text. The text is in the task’s prompt file, not here.
duration_ms: u64Wall-clock milliseconds.
turns: Option<u64>Turns, as the harness counted them.
ended: StringHow the session ended, as the harness reported it (success, error_max_budget_usd, …).
is_error: boolWhether the harness reported an error.
requests: Vec<EconomicsRequest>Every request, deduplicated by message id, in order.
models: Vec<EconomicsModelTotal>The harness’s per-model totals.
reported_cost_microusd: Option<u64>The harness’s total_cost_usd, in millionths of a dollar.
tools: BTreeMap<String, u64>Tool calls by tool name.
orientation: EconomicsOrientationThe session’s orientation cost.
Trait Implementations§
Source§impl Clone for EconomicsSession
impl Clone for EconomicsSession
Source§fn clone(&self) -> EconomicsSession
fn clone(&self) -> EconomicsSession
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for EconomicsSession
impl Debug for EconomicsSession
Source§impl<'de> Deserialize<'de> for EconomicsSession
impl<'de> Deserialize<'de> for EconomicsSession
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
Source§impl JsonSchema for EconomicsSession
impl JsonSchema for EconomicsSession
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for EconomicsSession
impl PartialEq for EconomicsSession
Source§fn eq(&self, other: &EconomicsSession) -> bool
fn eq(&self, other: &EconomicsSession) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for EconomicsSession
impl Serialize for EconomicsSession
impl StructuralPartialEq for EconomicsSession
Auto Trait Implementations§
impl Freeze for EconomicsSession
impl RefUnwindSafe for EconomicsSession
impl Send for EconomicsSession
impl Sync for EconomicsSession
impl Unpin for EconomicsSession
impl UnsafeUnpin for EconomicsSession
impl UnwindSafe for EconomicsSession
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