codetether_agent/tui/ui/tool_panel/
mod.rs1pub mod arg_preview;
4mod arg_preview_helpers;
5mod diff_render;
6mod entry_builder;
7mod format_meta;
8mod formatted;
9pub mod icons;
10mod image_file;
11mod item;
12mod item_call;
13mod item_result;
14mod item_thinking;
15mod panel;
16mod panel_chrome;
17mod pending_spinner;
18mod preview;
19mod preview_excerpt;
20mod render_chat;
21
22pub use entry_builder::{build_render_entries, separator_pattern};
23pub use panel::{PendingToolSnapshot, build_tool_activity_panel};
24pub use render_chat::render_chat_message;
25
26use crate::tui::chat::message::{ChatMessage, MessageType};
27
28pub const TOOL_PANEL_VISIBLE_LINES: usize = 12;
30
31#[derive(Default)]
32pub struct RenderEntry<'a> {
33 pub tool_activity: Vec<&'a ChatMessage>,
34 pub message: Option<&'a ChatMessage>,
35}
36
37pub struct ToolPanelRender {
38 pub lines: Vec<ratatui::text::Line<'static>>,
39 pub max_scroll: usize,
40}
41
42pub fn is_tool_activity(message_type: &MessageType) -> bool {
43 matches!(
44 message_type,
45 MessageType::ToolCall { .. } | MessageType::ToolResult { .. } | MessageType::Thinking(_)
46 )
47}