pub trait AgentEvents: Send + Sync {
// Provided methods
fn on_thinking(&self, _text: &str) { ... }
fn on_tool_start(&self, _name: &str, _args: &Value) { ... }
fn on_tool_end(&self, _name: &str, _result: &ToolResult) { ... }
fn on_todo_items_changed(&self, _items: &[TodoItem]) { ... }
fn on_assistant_delta(&self, _delta: &str) { ... }
fn on_context_usage(&self, _tokens: usize) { ... }
fn on_assistant_done(&self) { ... }
}