pub struct V2Status {
pub confidence: V2Confidence,
pub market: V2Market,
pub positions: V2Positions,
pub today: V2Today,
pub approaching: Vec<Value>,
pub blind_spots: Vec<Value>,
pub alert: Option<Value>,
pub recovery: Option<RecoveryStatus>,
pub ts: Option<String>,
pub hl_rate: Option<HlRate>,
pub extra: BTreeMap<String, Value>,
}Expand description
GET /v2/status — the condensed engine summary used by the
status bar. Shape mirrors the live wire format (see
tests/fixtures/v2_status.json): a nested object with
confidence/market/positions/today sub-objects, plus two list
fields the engine uses for signals and blind spots.
Historical note: the previous CLI model declared flat fields
(engine_confidence, regime, equity, drawdown_pct) at the
top level. The engine never emitted those names; every
Option<…> deserialized to None, so the status bar and
/status command always rendered em-dashes. Accessors below
(regime(), engine_confidence(), equity(), etc.) preserve
the original call-site ergonomics while reading the real shape.
Fields§
§confidence: V2Confidence§market: V2Market§positions: V2Positions§today: V2Today§approaching: Vec<Value>§blind_spots: Vec<Value>§alert: Option<Value>§recovery: Option<RecoveryStatus>§ts: Option<String>§hl_rate: Option<HlRate>Hyperliquid per-minute API rate the engine is seeing, as
reported alongside /v2/status. None when the engine
has not yet surfaced the field — the TUI renders hl:?
in metadata color (same honest-rendering rule as ops:?
before the classifier reports). Once the engine-side cut
lands (a separate track from M2_PLAN §2), the field
populates and the segment starts showing hl:N/M.
Serde is tolerant here: the field is optional on the
wire, so older engines deserializing into a newer CLI
keep rendering hl:? without a decode error.
extra: BTreeMap<String, Value>Implementations§
Source§impl V2Status
impl V2Status
Sourcepub fn engine_confidence(&self) -> Option<f64>
pub fn engine_confidence(&self) -> Option<f64>
Engine confidence as a 0..=100 score. Historically the CLI
expected a 0..=1 float; the live engine reports a 0..=100
integer, so renderers that format with {:.2} need to
switch to {:.0} or display it as a score instead of a
probability.
Sourcepub fn confidence_level(&self) -> Option<&str>
pub fn confidence_level(&self) -> Option<&str>
Qualitative confidence level ("low" | "medium" | "high").
Sourcepub fn unrealized_pnl(&self) -> Option<f64>
pub fn unrealized_pnl(&self) -> Option<f64>
Aggregate unrealized PnL across open positions.
Sourcepub fn drawdown_pct(&self) -> Option<f64>
pub fn drawdown_pct(&self) -> Option<f64>
/v2/status itself does not surface drawdown — the engine
moved that to /risk. Kept as an accessor for call-site
parity; always returns None.