use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
pub use acp_utils::notifications::ContextUsage;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
#[serde(tag = "status", rename_all = "snake_case")]
pub enum CompactionOutcome {
Completed,
Failed { error: String },
Cancelled,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum ContextEvent {
CompactionStarted { message_count: usize },
CompactionEnded { outcome: CompactionOutcome },
CompactionResult { summary: String, messages_removed: usize },
UsageUpdated { usage: ContextUsage },
Cleared,
}