pub enum Event {
Show 26 variants
RunStarted {
feature: String,
tasks: Vec<PlannedTask>,
},
TaskStarted {
feature: String,
task: String,
title: String,
},
Stage {
task: String,
stage: Stage,
state: StageState,
detail: Option<String>,
elapsed_ms: Option<u64>,
tail: Vec<String>,
},
Resumed {
task: String,
stage: Option<Stage>,
last_call: Option<String>,
},
ApprovalRequested {
task: String,
call: String,
tool: String,
what: String,
class: String,
object: String,
},
ApprovalDecided {
task: String,
call: String,
decision: String,
scope: Option<String>,
by: String,
how: String,
class: String,
object: String,
},
ToolCall {
task: String,
turn: u32,
tool: String,
target: String,
decision: String,
ok: Option<bool>,
tail: Vec<String>,
},
Usage {
task: String,
input_tokens: u64,
output_tokens: u64,
cache_read_tokens: u64,
cache_write_tokens: u64,
usd: Option<f64>,
},
TaskFinished {
task: String,
outcome: String,
message: String,
run: Option<String>,
input_tokens: u64,
output_tokens: u64,
cache_read_tokens: u64,
cache_write_tokens: u64,
usd: Option<f64>,
regression: Option<Regression>,
},
CollectionChecked {
task: String,
files: Vec<CollectionFile>,
},
AgentStarted {
task: String,
agent: String,
mode: String,
decides_alone: bool,
known: bool,
},
AgentUnasked {
task: String,
calls: u32,
},
AgentPlan {
task: String,
entries: Vec<PlanEntry>,
},
Said {
task: String,
turn: u32,
text: String,
},
Reasoning {
task: String,
turn: u32,
text: String,
},
Notice {
text: String,
},
Bug {
task: String,
step: BugEvent,
},
Oracle {
step: OracleEvent,
},
PlanningStopped {
unit: Option<String>,
kind: String,
next_skill: Option<String>,
},
LadderOffered {
unit: String,
task: String,
signals: Vec<String>,
},
UnitPromoted {
unit: String,
from_unit: String,
requirement: String,
task: String,
requirement_sha256: String,
conversation_sha256: Vec<String>,
signals: Vec<String>,
by: String,
via: String,
},
Project {
step: ProjectEvent,
},
AskStep {
conversation: String,
turn: u32,
tool: String,
target: String,
read: Option<String>,
refused: bool,
},
AskText {
conversation: String,
turn: u32,
delta: String,
},
AskTurnEnded {
tag: String,
output: Box<Value>,
},
AskDone {
report: Box<AskReport>,
},
}Expand description
Something a run did.
Variants§
RunStarted
A feature run begins: its tasks, as the graph has them (editors show them as a plan).
Fields
tasks: Vec<PlannedTask>Every task, in document order.
TaskStarted
A task attempt run begins.
Stage
A stage of the task’s pipeline began, ended or does not apply.
Fields
state: StageStateWhere it is.
Resumed
A run picks up an attempt a killed process left behind.
Fields
ApprovalRequested
A call waits for a person: notify them.
Fields
ApprovalDecided
A person decided a call inline.
Fields
class: StringThe object’s class, as for Event::ApprovalRequested.
ToolCall
A tool call the model asked for, with the policy’s decision.
Fields
Usage
Tokens so far in the current attempt.
Fields
TaskFinished
The task run ended.
Fields
regression: Option<Regression>A regression-only tick: why, worded.
CollectionChecked
The attempt’s changed test files were checked against what the run
collected (collection.checked).
Fields
files: Vec<CollectionFile>Each judged file: path, state, what decided it.
AgentStarted
An external agent makes the attempt: its name, and what its
permission mode is (decides_alone: calls it makes without asking
never reach speccoder, so an empty Needs You proves nothing).
Fields
AgentUnasked
An external agent changed something without asking (its own settings let it): the count so far.
AgentPlan
An external agent’s plan for its attempt, as it last sent it: its claim of what it will do, never evidence.
Said
What the model said in a turn, beside its tool calls: its account of what it is doing — a claim, never evidence. Control characters escaped; at most 2000 characters.
Fields
Reasoning
The model’s summary of its reasoning in a turn, as the provider
gave it ([model] reasoning_summary): its account of why — a claim,
never evidence. Control characters escaped; at most 4000 characters.
Fields
Notice
Anything else worth a line (convergence rounds, notices).
Bug
A bug’s step (bug.* on the event stream).
Oracle
The oracle at review (oracle.* on the event stream): stage names,
counts and digests — never a test’s content, never held-out material.
Fields
step: OracleEventWhat happened.
PlanningStopped
Plan through stopped (planning.stopped).
Fields
LadderOffered
A quick change or bug fix that grew is offered as a spec of its own
(ladder.offered): the signals that hold, by id.
UnitPromoted
A unit was promoted from a quick change or bug fix (unit.promoted):
ids and digests, never the words.
Fields
Project
A new project’s step, its creation or its undo (scaffold.*,
project.*): step ids, argv, states, digests — never the idea,
never the folder’s path.
Fields
step: ProjectEventWhat happened.
AskStep
An Ask turn read something (ask.step).
Fields
AskText
An Ask turn’s answer as it is written (ask.text).
AskTurnEnded
Inside the Ask plane: a turn’s raw end, which ask::turn turns
into Event::AskDone; never forwarded.
AskDone
An Ask turn ended (ask.done).
Trait Implementations§
impl StructuralPartialEq for Event
Auto Trait Implementations§
impl Freeze for Event
impl RefUnwindSafe for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl UnsafeUnpin for Event
impl UnwindSafe for Event
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,
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