pub async fn run() -> Result<()>
Run the TUI application
This is the main entry point for the TUI. It sets up the terminal, runs the event loop, and ensures the terminal is restored on exit.