use llm::{ToolCallError, ToolCallRequest, ToolCallResult, ToolDefinition};
use mcp_utils::display_meta::ToolResultMeta;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum ToolEvent {
Call { request: ToolCallRequest },
CallUpdate { tool_call_id: String, chunk: String },
ExecutionStarted { tool_id: String, tool_name: String },
Progress { request: ToolCallRequest, progress: f64, total: Option<f64>, message: Option<String> },
Result { result: ToolCallResult, result_meta: Option<ToolResultMeta> },
Error { error: ToolCallError },
DefinitionsUpdated { tools: Vec<ToolDefinition> },
}