use std::{collections::HashMap, sync::Arc}; use crate::core::utils::download::DownloadManagerState; use rand::{distributions::Alphanumeric, Rng}; use rmcp::{service::RunningService, RoleClient}; use tokio::sync::Mutex; #[derive(Default)] pub struct AppState { pub app_token: Option, pub mcp_servers: Arc>>>, pub download_manager: Arc>, } pub fn generate_app_token() -> String { rand::thread_rng() .sample_iter(&Alphanumeric) .take(32) .map(char::from) .collect() }