pub struct App {Show 45 fields
pub running: bool,
pub messages: Vec<DisplayMessage>,
pub editor: EditorState,
pub cwd: PathBuf,
pub agent_handle: Option<AgentHandle>,
pub is_streaming: bool,
pub message_queue: Vec<QueuedMessage>,
pub session: SessionManager,
pub config: Config,
pub model_name: String,
pub thinking_level: ThinkingLevel,
pub context_window: u32,
pub mode: UiMode,
pub scroll_offset: usize,
pub auto_scroll: bool,
pub tools_expanded: bool,
pub tool_focus: Option<usize>,
pub tool_focus_pinned: bool,
pub sidebar_auto_follow: bool,
pub ctrl_c_count: u8,
pub needs_redraw: bool,
pub last_esc: Option<Instant>,
pub tick: u64,
pub ui_rx: Option<Receiver<UiRequest>>,
pub ask_state: Option<AskState>,
pub ask_reply: Option<AskReply>,
pub workflow_mode: WorkflowMode,
pub accumulated_usage: Usage,
pub accumulated_cost: Cost,
pub current_context_tokens: u32,
pub status_items: HashMap<String, String>,
pub widgets: HashMap<String, WidgetContent>,
pub lua_runtime: Option<Arc<Mutex<LuaRuntime>>>,
pub sidebar: Sidebar,
pub active_pane: Pane,
pub sidebar_list_rect: Option<Rect>,
pub sidebar_detail_rect: Option<Rect>,
pub chat_surface: Option<TextSurface>,
pub sidebar_detail_surface: Option<TextSurface>,
pub selection: Option<SelectionState>,
pub drag_selection: Option<SelectablePane>,
pub turn_tracker: TurnTracker,
pub theme: Theme,
pub highlighter: Highlighter,
pub model_registry: ModelRegistry,
/* private fields */
}Fields§
§running: bool§messages: Vec<DisplayMessage>§editor: EditorState§cwd: PathBuf§agent_handle: Option<AgentHandle>§is_streaming: bool§message_queue: Vec<QueuedMessage>§session: SessionManager§config: Config§model_name: String§thinking_level: ThinkingLevel§context_window: u32§mode: UiMode§scroll_offset: usize§auto_scroll: bool§tools_expanded: bool§tool_focus: Option<usize>Index into the flattened tool call list. None means inspector follows latest.
tool_focus_pinned: boolTrue once the user explicitly selects a tool; prevents new tools stealing focus.
True while inspector should keep live output pinned to the bottom.
ctrl_c_count: u8§needs_redraw: bool§last_esc: Option<Instant>§tick: u64§ui_rx: Option<Receiver<UiRequest>>§ask_state: Option<AskState>§ask_reply: Option<AskReply>§workflow_mode: WorkflowMode§accumulated_usage: Usage§accumulated_cost: Cost§current_context_tokens: u32Last turn’s input tokens — best proxy for actual current context size.
status_items: HashMap<String, String>§widgets: HashMap<String, WidgetContent>§lua_runtime: Option<Arc<Mutex<LuaRuntime>>>Lua extension runtime (for command dispatch and hot-reload).
active_pane: PaneWhich pane has focus for scroll routing.
Sidebar list area cached from last render (for click/scroll detection).
Sidebar detail area cached from last render (for click/scroll detection).
chat_surface: Option<TextSurface>Cached selectable chat surface from last render.
Cached selectable sidebar detail surface from last render.
selection: Option<SelectionState>Current app-native text selection.
drag_selection: Option<SelectablePane>Selection anchor while dragging with the mouse.
turn_tracker: TurnTracker§theme: Theme§highlighter: Highlighter§model_registry: ModelRegistryImplementations§
Source§impl App
impl App
pub fn new( config: Config, session: SessionManager, model_registry: ModelRegistry, cwd: PathBuf, ) -> Self
Sourcepub fn load_session_messages(&mut self)
pub fn load_session_messages(&mut self)
Load messages from the current session branch into display messages.
pub async fn run( &mut self, terminal: &mut InteractiveTerminal, ) -> Result<(), Box<dyn Error>>
pub fn terminal_title(&self) -> String
pub fn handle_agent_event(&mut self, event: AgentEvent)
Auto Trait Implementations§
impl !Freeze for App
impl !RefUnwindSafe for App
impl Send for App
impl Sync for App
impl Unpin for App
impl UnsafeUnpin for App
impl !UnwindSafe for App
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more