add context window monitor
Writes the current context window to logs/current_context_window (uses a symlink to a session ID). This PR was unfortunately generated by a different LLM and did a ton of superficial reformating, it's actually a fairly small and benign change, but I don't want to roll back everything. Hope that's ok.
This commit is contained in:
@@ -4,58 +4,60 @@
|
||||
pub trait UiWriter: Send + Sync {
|
||||
/// Print a simple message
|
||||
fn print(&self, message: &str);
|
||||
|
||||
|
||||
/// Print a message with a newline
|
||||
fn println(&self, message: &str);
|
||||
|
||||
|
||||
/// Print without newline (for progress indicators)
|
||||
fn print_inline(&self, message: &str);
|
||||
|
||||
|
||||
/// Print a system prompt section
|
||||
fn print_system_prompt(&self, prompt: &str);
|
||||
|
||||
|
||||
/// Print a context window status message
|
||||
fn print_context_status(&self, message: &str);
|
||||
|
||||
|
||||
/// Print a context thinning success message with highlight and animation
|
||||
fn print_context_thinning(&self, message: &str);
|
||||
|
||||
|
||||
/// Print a tool execution header
|
||||
fn print_tool_header(&self, tool_name: &str);
|
||||
|
||||
|
||||
/// Print a tool argument
|
||||
fn print_tool_arg(&self, key: &str, value: &str);
|
||||
|
||||
|
||||
/// Print tool output header
|
||||
fn print_tool_output_header(&self);
|
||||
|
||||
|
||||
/// Update the current tool output line (replaces previous line)
|
||||
fn update_tool_output_line(&self, line: &str);
|
||||
|
||||
|
||||
/// Print a tool output line
|
||||
fn print_tool_output_line(&self, line: &str);
|
||||
|
||||
|
||||
/// Print tool output summary (when output is truncated)
|
||||
fn print_tool_output_summary(&self, hidden_count: usize);
|
||||
|
||||
|
||||
/// Print tool execution timing
|
||||
fn print_tool_timing(&self, duration_str: &str);
|
||||
|
||||
|
||||
/// Print the agent prompt indicator
|
||||
fn print_agent_prompt(&self);
|
||||
|
||||
|
||||
/// Print agent response inline (for streaming)
|
||||
fn print_agent_response(&self, content: &str);
|
||||
|
||||
|
||||
/// Notify that an SSE event was received (including pings)
|
||||
fn notify_sse_received(&self);
|
||||
|
||||
|
||||
/// Flush any buffered output
|
||||
fn flush(&self);
|
||||
|
||||
|
||||
/// Returns true if this UI writer wants full, untruncated output
|
||||
/// Default is false (truncate for human readability)
|
||||
fn wants_full_output(&self) -> bool { false }
|
||||
fn wants_full_output(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
/// Prompt the user for a yes/no confirmation
|
||||
fn prompt_user_yes_no(&self, message: &str) -> bool;
|
||||
@@ -86,7 +88,13 @@ impl UiWriter for NullUiWriter {
|
||||
fn print_agent_response(&self, _content: &str) {}
|
||||
fn notify_sse_received(&self) {}
|
||||
fn flush(&self) {}
|
||||
fn wants_full_output(&self) -> bool { false }
|
||||
fn prompt_user_yes_no(&self, _message: &str) -> bool { true }
|
||||
fn prompt_user_choice(&self, _message: &str, _options: &[&str]) -> usize { 0 }
|
||||
}
|
||||
fn wants_full_output(&self) -> bool {
|
||||
false
|
||||
}
|
||||
fn prompt_user_yes_no(&self, _message: &str) -> bool {
|
||||
true
|
||||
}
|
||||
fn prompt_user_choice(&self, _message: &str, _options: &[&str]) -> usize {
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user