use rskit_ai::StreamEventRef;
use rskit_llm::types::{AssistantMessage, Usage};
use rskit_tool::{ToolInput, ToolResult};
use super::AgentResult;
#[non_exhaustive]
pub enum AgentEvent {
TurnStart {
turn: u32,
},
LlmStreamEvent {
event: StreamEventRef,
},
ToolExecuting {
tool_use_id: String,
name: String,
input: ToolInput,
},
ToolComplete {
tool_use_id: String,
name: String,
result: Option<ToolResult>,
error: Option<String>,
},
ContextCompacted {
old_tokens: usize,
new_tokens: usize,
},
TurnComplete {
turn: u32,
message: AssistantMessage,
usage: Usage,
},
Complete {
result: AgentResult,
},
}