1#![deny(clippy::cognitive_complexity)]
2#![deny(clippy::too_many_arguments)]
3pub mod app;
6pub mod event;
7pub mod ui;
8
9mod agent;
10mod command;
11mod config;
12mod html_export;
13mod load_config;
14mod message;
15mod theme;
16
17use std::path::PathBuf;
18
19use crate::app::App;
20use crossterm::execute;
21
22pub async fn run_tui(session_path: Option<PathBuf>) -> color_eyre::Result<()> {
26 color_eyre::install()?;
27 execute!(
28 std::io::stdout(),
29 crossterm::event::EnableMouseCapture,
30 crossterm::event::EnableBracketedPaste,
31 )?;
32 let terminal = ratatui::init();
33 let result = App::new(session_path).await.run(terminal).await;
34 ratatui::restore();
35 execute!(
36 std::io::stdout(),
37 crossterm::event::DisableMouseCapture,
38 crossterm::event::DisableBracketedPaste,
39 )?;
40 result
41}