mod commands; mod docker; mod models; mod storage; use docker::exec::ExecSessionManager; use storage::projects_store::ProjectsStore; use storage::settings_store::SettingsStore; pub struct AppState { pub projects_store: ProjectsStore, pub settings_store: SettingsStore, pub exec_manager: ExecSessionManager, } pub fn run() { env_logger::init(); tauri::Builder::default() .plugin(tauri_plugin_store::Builder::default().build()) .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_opener::init()) .manage(AppState { projects_store: ProjectsStore::new(), settings_store: SettingsStore::new(), exec_manager: ExecSessionManager::new(), }) .invoke_handler(tauri::generate_handler![ // Docker commands::docker_commands::check_docker, commands::docker_commands::check_image_exists, commands::docker_commands::build_image, commands::docker_commands::get_container_info, commands::docker_commands::list_sibling_containers, // Projects commands::project_commands::list_projects, commands::project_commands::add_project, commands::project_commands::remove_project, commands::project_commands::update_project, commands::project_commands::start_project_container, commands::project_commands::stop_project_container, commands::project_commands::rebuild_project_container, // Settings commands::settings_commands::set_api_key, commands::settings_commands::has_api_key, commands::settings_commands::delete_api_key, commands::settings_commands::get_settings, commands::settings_commands::update_settings, commands::settings_commands::pull_image, commands::settings_commands::detect_aws_config, commands::settings_commands::list_aws_profiles, // Terminal commands::terminal_commands::open_terminal_session, commands::terminal_commands::terminal_input, commands::terminal_commands::terminal_resize, commands::terminal_commands::close_terminal_session, ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }