use serde::{Deserialize, Serialize}; use crate::model::ai::ChatCompletionToolCall; #[derive(Debug, Clone, Serialize, Deserialize)] pub enum QueueMessage { Channel(ChannelMessage), Notice(ChannelMessage, String), Aissitant(ChannelMessage, AssistantMessage), Tool(ChannelMessage, String, String, String), Tools(ChannelMessage, Vec), } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ChannelMessage { pub channel: String, pub account_id: String, pub from_user_id: String, pub content: String, pub context: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AssistantMessage { pub reasoning: Option, pub content: String, pub tool_calls: Option>, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ToolMessage { pub tool_call_id: String, pub name: String, pub result: String, }