Skip to main content

aether_core/events/
context_event.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4pub use acp_utils::notifications::ContextUsage;
5
6/// Terminal result of a context compaction operation.
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
8#[serde(tag = "status", rename_all = "snake_case")]
9pub enum CompactionOutcome {
10    Completed,
11    Failed { error: String },
12    Cancelled,
13}
14
15/// Context lifecycle events.
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
17#[serde(tag = "type", rename_all = "snake_case")]
18pub enum ContextEvent {
19    /// Context compaction has been triggered.
20    CompactionStarted { message_count: usize },
21    /// Context compaction reached a terminal state.
22    CompactionEnded { outcome: CompactionOutcome },
23    /// Context was compacted to reduce token usage.
24    CompactionResult { summary: String, messages_removed: usize },
25    /// Context usage update for UI display.
26    UsageUpdated { usage: ContextUsage },
27    /// The agent context was cleared and reset to its blank state.
28    Cleared,
29}