pub struct DashboardAgent {Show 28 fields
pub id: String,
pub blueprint_name: String,
pub stage: String,
pub stage_index: usize,
pub num_stages: usize,
pub status: AgentDisplayStatus,
pub tokens_in: usize,
pub tokens_out: usize,
pub cached_tokens: usize,
pub iteration: usize,
pub waiting_prompt: Option<String>,
pub wait_reason: Option<WaitReason>,
pub pending_request: Option<InteractionRequest>,
pub last_answered_request_id: Option<String>,
pub context_snapshot: Option<Arc<ContextSnapshot>>,
pub stages: Vec<StageRecord>,
pub workdir: String,
pub task: String,
pub title: Option<String>,
pub model: Option<String>,
pub parent_id: Option<String>,
pub depth: usize,
pub started_at: i64,
pub last_progress_at: Option<i64>,
pub active_until: Option<i64>,
pub waiting_secs: u64,
pub accepts_messages: bool,
pub taint_summary: Vec<(String, String)>,
/* private fields */
}Expand description
An agent displayed in the dashboard.
Fields§
§id: StringThe run id, which is also what every action against this row quotes.
blueprint_name: StringThe blueprint’s name, as the manifest declares it.
stage: StringThe stage the run is in, by name.
stage_index: usizeThat stage’s position in the blueprint’s list.
num_stages: usizeHow many stages the blueprint has, so the pair renders as “3 of 7”.
status: AgentDisplayStatusWhat the row shows, including states no other status enum has.
tokens_in: usizeCumulative prompt (input) tokens for background runs.
tokens_out: usizeCumulative completion (output) tokens for background runs.
cached_tokens: usizeCumulative tokens read from provider cache.
iteration: usizeInference turns taken in the current stage.
waiting_prompt: Option<String>The question a waiting run is asking, in one line, for the list row.
wait_reason: Option<WaitReason>Why a waiting run is parked, when meta.json says.
WAITING on its own reads as “go and answer it”, which is wrong for a
parent whose fan-out workers are still churning. None on a run that
is not parked, and on one written by a build from before the field
existed, which is why the row falls back to the bare status rather
than assuming.
pending_request: Option<InteractionRequest>Full structured interaction request (populated for WaitingInput agents)
last_answered_request_id: Option<String>The request_id we most recently submitted a response for, used to suppress re-showing the same prompt before the worker has consumed the response.
context_snapshot: Option<Arc<ContextSnapshot>>Live context window snapshot from context.json (background workers only) Shared, not owned: the live snapshot comes out of the sync tick’s stat-gated cache, and cloning a full context window per tick was the churn that cache exists to remove.
stages: Vec<StageRecord>Per-stage records from stages.json
workdir: StringWorking directory the agent ran in
task: StringOriginal task prompt
title: Option<String>Auto-generated short title (None until the worker generates it).
model: Option<String>Original model override
parent_id: Option<String>Parent agent ID (if this is a sub-agent)
depth: usizeDepth in the sub-agent tree (0 = root)
started_at: i64Unix timestamp when the run started (for elapsed display)
last_progress_at: Option<i64>Unix timestamp of the run’s last recorded progress (None before the
first progress mark). Drives the recent-activity sort.
active_until: Option<i64>Frozen wall-clock time (Unix seconds) when the agent entered a waiting state. Used to prevent the elapsed timer from incrementing while waiting for input.
waiting_secs: u64Total seconds spent waiting for user input across all completed waits. Subtracted from elapsed to show only actual running time.
accepts_messages: boolWhether the current stage accepts mid-run user messages
taint_summary: Vec<(String, String)>Per-region taint levels (region_name, taint_level_string). Empty when taint tracking is disabled or not yet populated.
Trait Implementations§
Source§impl Clone for DashboardAgent
impl Clone for DashboardAgent
Source§fn clone(&self) -> DashboardAgent
fn clone(&self) -> DashboardAgent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for DashboardAgent
impl RefUnwindSafe for DashboardAgent
impl Send for DashboardAgent
impl Sync for DashboardAgent
impl Unpin for DashboardAgent
impl UnsafeUnpin for DashboardAgent
impl UnwindSafe for DashboardAgent
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ConditionalSend for Twhere
T: Send,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> ⓘ
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> ⓘ
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 more