codex-helper-tui 0.12.1

Terminal UI crate for codex-helper.
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(in crate::tui) enum Focus {
    Sessions,
    Requests,
    Configs,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(in crate::tui) enum StatsFocus {
    Configs,
    Providers,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(in crate::tui) enum Page {
    Dashboard,
    Configs,
    Sessions,
    Requests,
    Stats,
    Settings,
    History,
    Recent,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(in crate::tui) enum Overlay {
    None,
    Help,
    EffortMenu,
    ProviderMenuSession,
    ProviderMenuGlobal,
    ConfigInfo,
    SessionTranscript,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(in crate::tui) enum EffortChoice {
    Clear,
    Low,
    Medium,
    High,
    XHigh,
}

impl EffortChoice {
    pub(in crate::tui) fn label(self) -> &'static str {
        match self {
            EffortChoice::Clear => "Clear (use request value)",
            EffortChoice::Low => "low",
            EffortChoice::Medium => "medium",
            EffortChoice::High => "high",
            EffortChoice::XHigh => "xhigh",
        }
    }

    pub(in crate::tui) fn value(self) -> Option<&'static str> {
        match self {
            EffortChoice::Clear => None,
            EffortChoice::Low => Some("low"),
            EffortChoice::Medium => Some("medium"),
            EffortChoice::High => Some("high"),
            EffortChoice::XHigh => Some("xhigh"),
        }
    }
}

pub(in crate::tui) fn page_titles(lang: Language) -> [&'static str; 8] {
    [
        crate::tui::i18n::pick(lang, "1 总览", "1 Dashboard"),
        crate::tui::i18n::pick(lang, "2 配置", "2 Configs"),
        crate::tui::i18n::pick(lang, "3 会话", "3 Sessions"),
        crate::tui::i18n::pick(lang, "4 请求", "4 Requests"),
        crate::tui::i18n::pick(lang, "5 统计", "5 Stats"),
        crate::tui::i18n::pick(lang, "6 设置", "6 Settings"),
        crate::tui::i18n::pick(lang, "7 历史", "7 History"),
        crate::tui::i18n::pick(lang, "8 最近", "8 Recent"),
    ]
}

pub(in crate::tui) fn page_index(page: Page) -> usize {
    match page {
        Page::Dashboard => 0,
        Page::Configs => 1,
        Page::Sessions => 2,
        Page::Requests => 3,
        Page::Stats => 4,
        Page::Settings => 5,
        Page::History => 6,
        Page::Recent => 7,
    }
}
use crate::tui::Language;