pub enum AgentEvent {
Show 18 variants
AgentMessageChunk {
session_id: String,
content: String,
},
AgentThoughtChunk {
session_id: String,
content: String,
},
ToolCall {
session_id: String,
tool_call_id: String,
tool_name: String,
kind: Option<ToolKind>,
status: ToolCallStatus,
raw_input: Value,
},
ToolCallUpdate {
session_id: String,
tool_call_id: String,
tool_name: String,
status: ToolCallStatus,
raw_output: Option<Value>,
error: Option<String>,
},
Plan {
session_id: String,
plan: Value,
},
TurnStart {
session_id: String,
iteration: usize,
},
TurnEnd {
session_id: String,
iteration: usize,
turn_info: Value,
},
FeedbackInjected {
session_id: String,
kind: String,
content: String,
},
BudgetExhausted {
session_id: String,
max_iterations: usize,
},
LoopStuck {
session_id: String,
max_nudges: usize,
last_iteration: usize,
tail_excerpt: String,
},
DaemonWatchdogTripped {
session_id: String,
attempts: usize,
elapsed_ms: u64,
},
SkillActivated {
session_id: String,
skill_name: String,
iteration: usize,
reason: String,
},
SkillDeactivated {
session_id: String,
skill_name: String,
iteration: usize,
},
SkillScopeTools {
session_id: String,
skill_name: String,
allowed_tools: Vec<String>,
},
ToolSearchQuery {
session_id: String,
tool_use_id: String,
name: String,
query: Value,
strategy: String,
mode: String,
},
ToolSearchResult {
session_id: String,
tool_use_id: String,
promoted: Vec<String>,
strategy: String,
mode: String,
},
TranscriptCompacted {
session_id: String,
mode: String,
strategy: String,
archived_messages: usize,
estimated_tokens_before: usize,
estimated_tokens_after: usize,
snapshot_asset_id: Option<String>,
},
Handoff {
session_id: String,
artifact_id: String,
handoff: Box<HandoffArtifact>,
},
}Expand description
Events emitted by the agent loop. The first five variants map 1:1
to ACP sessionUpdate variants; the last three are harn-internal.
Variants§
AgentMessageChunk
AgentThoughtChunk
ToolCall
Fields
status: ToolCallStatusToolCallUpdate
Fields
status: ToolCallStatusPlan
TurnStart
TurnEnd
FeedbackInjected
BudgetExhausted
Emitted when the agent loop exhausts max_iterations without any
explicit break condition firing. Distinct from a natural “done” or
a “stuck” nudge-exhaustion: this is strictly a budget cap.
LoopStuck
Emitted when the loop breaks because consecutive text-only turns
hit max_nudges. Parity with BudgetExhausted / TurnEnd for
hosts that key off agent-terminal events.
DaemonWatchdogTripped
Emitted when the daemon idle-wait loop trips its watchdog because
every configured wake source returned None for N consecutive
attempts. Exists so a broken daemon doesn’t hang the session
silently.
SkillActivated
Emitted when a skill is activated. Carries the match reason so replayers can reconstruct why a given skill took effect at this iteration.
SkillDeactivated
Emitted when a previously-active skill is deactivated because the reassess phase no longer matches it.
SkillScopeTools
Emitted once per activation when the skill’s allowed_tools filter
narrows the effective tool surface exposed to the model.
ToolSearchQuery
Emitted when a tool_search query is issued by the model. Carries
the raw query args, the configured strategy, and a mode tag
distinguishing the client-executed fallback ("client") from
provider-native paths ("anthropic" / "openai"). Mirrors the
transcript event shape so IDEs can render a search-in-progress
chip in real time — the replay path walks the transcript after
the turn, which is too late for live UX.
Fields
ToolSearchResult
Emitted when tool_search resolves — carries the list of tool
names newly promoted into the model’s effective surface for the
next turn. Pair-emitted with ToolSearchQuery on every search.
TranscriptCompacted
Fields
Handoff
Implementations§
Source§impl AgentEvent
impl AgentEvent
pub fn session_id(&self) -> &str
Trait Implementations§
Source§impl Clone for AgentEvent
impl Clone for AgentEvent
Source§fn clone(&self) -> AgentEvent
fn clone(&self) -> AgentEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AgentEvent
impl Debug for AgentEvent
Source§impl<'de> Deserialize<'de> for AgentEvent
impl<'de> Deserialize<'de> for AgentEvent
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>,
Auto Trait Implementations§
impl Freeze for AgentEvent
impl RefUnwindSafe for AgentEvent
impl Send for AgentEvent
impl Sync for AgentEvent
impl Unpin for AgentEvent
impl UnsafeUnpin for AgentEvent
impl UnwindSafe for AgentEvent
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
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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);