stynx_code_tui/dialogs/
status.rs1use crate::state::AppState;
2
3pub fn open_status(state: &mut AppState, intern_labels: &[String]) {
4 let mut rows: Vec<(String, String)> = Vec::new();
5 rows.push(("version".into(), env!("CARGO_PKG_VERSION").to_string()));
6 rows.push(("cwd".into(), state.cwd.clone()));
7 if let Some(b) = &state.git_branch {
8 rows.push(("branch".into(), b.clone()));
9 }
10 rows.push(("model".into(), state.model_name.clone()));
11 rows.push(("mode".into(), state.permission_mode.clone()));
12 rows.push((
13 "cost".into(),
14 format!("${:.4} ({} in / {} out)", state.total_cost, state.total_input, state.total_output),
15 ));
16 let intern_summary = if intern_labels.is_empty() {
17 "unavailable".to_string()
18 } else {
19 format!("ready ({})", intern_labels.join(", "))
20 };
21 rows.push(("interns".into(), intern_summary));
22 state.modal.open_info("Status", rows);
23}