1use palo_core::orchestration::Orchestrator;
2use tracing::info;
3
4pub mod app;
5pub mod event;
6pub mod logging;
7pub mod ui;
8
9pub async fn build_app(orchestrator: &Orchestrator) -> app::App {
10 app::App::from_orchestrator(orchestrator).await
11}
12
13pub async fn run_app(app: app::App) -> color_eyre::Result<()> {
14 let terminal = ratatui::init();
15 let result = app.run(terminal).await;
16 ratatui::restore();
17 info!("palo tui session ended");
18 result
19}
20
21pub async fn run_with_orchestrator(orchestrator: &Orchestrator) -> color_eyre::Result<()> {
22 run_app(build_app(orchestrator).await).await
23}