/// Agent Orchestrator — Dioxus 0.7 Desktop Prototype /// /// This prototype demonstrates the core Agent Orchestrator experience /// built with Dioxus 0.7 (desktop mode via wry/WebKit2GTK). /// /// Architecture comparison vs Tauri+Svelte: /// /// | Aspect | Tauri+Svelte (current) | Dioxus (this prototype) | /// |---------------------|-------------------------------|-------------------------------| /// | UI rendering | WebView (Svelte -> HTML) | WebView (RSX -> HTML) | /// | State management | Svelte 5 runes ($state) | Dioxus signals (use_signal) | /// | Backend bridge | Tauri IPC (invoke/listen) | Direct Rust (no IPC!) | /// | Terminal | xterm.js via WebView | xterm.js via WebView (same) | /// | Reactivity model | Compiler-based (Svelte 5) | Runtime signals (fine-grained)| /// | Component model | .svelte files (HTML+JS+CSS) | Rust functions (rsx! macro) | /// | Type safety | TypeScript (compile-time) | Rust (compile-time, stronger) | /// | Hot reload | Vite HMR | dx serve (RSX hot reload) | /// /// Key advantage: no IPC serialization boundary. Backend state (PtyManager, /// SidecarManager) is directly accessible from UI code as typed Rust values. #[allow(dead_code)] mod backend; mod components; mod state; mod theme; use dioxus::prelude::*; use components::command_palette::CommandPalette; use components::project_grid::ProjectGrid; use components::settings::SettingsPanel; use components::sidebar::Sidebar; use components::status_bar::{FleetState, StatusBar}; use state::demo_projects; fn main() { // Native/Blitz mode: wgpu renderer, no WebView // CSS is injected via the