rho-coding-agent 1.18.0

A lightweight agent harness inspired by Pi
Documentation
use ratatui::text::Line;

use super::{
    markdown::push_wrapped_markdown_without_copy_button_from_fence_state,
    render::{pad_display_line, padded_content_width},
    theme::Theme,
    App, StreamKind,
};

impl App {
    pub(super) fn render_stream_preview_lines(
        &self,
        preview: &super::LiveStreamPreview,
        width: usize,
    ) -> Vec<Line<'static>> {
        let mut lines = Vec::new();
        if preview.include_leading_blank {
            lines.push(Line::raw(""));
        }
        let mut text_lines = Vec::new();
        let mut code_fence = match preview.kind {
            StreamKind::Assistant => self.streams.assistant_stream_code_fence,
            StreamKind::Reasoning => self.streams.reasoning_stream_code_fence,
        };
        push_wrapped_markdown_without_copy_button_from_fence_state(
            &mut text_lines,
            &preview.text,
            padded_content_width(width),
            &mut code_fence,
        );
        if matches!(preview.kind, StreamKind::Reasoning) {
            Theme::reasoning_output(&mut text_lines);
        }
        lines.extend(text_lines.into_iter().map(pad_display_line));
        lines
    }
}