use crate::command::chat::command::CustomCommand;
use crate::command::chat::skill::Skill;
use crate::command::chat::storage::{AgentConfig, ChatMessage, ChatSession};
use std::sync::{Arc, Mutex};
pub struct ChatState {
pub agent_config: AgentConfig,
pub session: ChatSession,
pub streaming_content: Arc<Mutex<String>>,
pub is_loading: bool,
pub loaded_skills: Vec<Skill>,
pub loaded_commands: Vec<CustomCommand>,
pub queued_tasks: Arc<Mutex<Vec<String>>>,
pub pending_user_messages: Arc<Mutex<Vec<ChatMessage>>>,
pub retry_hint: Option<String>,
}