magi-code 0.96.1

Repository-aware CLI coding agent for terminal work
Documentation
use assistant::wrap_assistant_spans_to_width;
use copy_ranges::advance_copy_byte_range;
#[cfg(test)]
pub(crate) use scrollback::cached_visual_lines_ref;
#[cfg(test)]
use scrollback::scrollback_visual_lines;
mod assistant;
mod body;
mod card;
mod copy_ranges;
mod scrollback;
mod subagent;
mod types;
mod user_prompt;
mod width;
use assistant::AssistantVisualSpan;

use assistant::display_width_to_u16;
use assistant::padded_body_line;
use assistant::push_text_line;
use assistant::push_wide_assistant_spans;

use assistant::wide_body_line;

pub(super) use assistant::wrap_spans_to_width;

use body::append_card_body_lines;

use card::append_wide_card_lines;
use card::body_wrap_width;

use card::card_visual_lines_uncached;
use card::horizontal_padding;
use card::push_body_blank;
use card::push_card_token_footer;

use card::user_prompt_horizontal_padding;
pub(crate) use card::visual_line_rows;

use copy_ranges::annotate_copy_byte_ranges;
use copy_ranges::append_copy_byte_boundaries;
use copy_ranges::body_line_copy_offset;
use copy_ranges::copy_byte_boundaries_for_span;

use subagent::ActivityCardSegment;
use subagent::activity_card_content_width;
use subagent::activity_card_status_glyph;
use subagent::activity_card_status_style;
use subagent::append_subagent_card_body_lines;

use subagent::push_activity_card_box_edge;

use subagent::push_activity_card_feed_row;

use subagent::push_activity_card_text_box;

pub(crate) use types::TranscriptHitRegion;
pub(crate) use types::TranscriptHitTarget;
pub(crate) use types::TranscriptScrollbarMetrics;
pub(crate) use types::TranscriptVisualLine;

pub(crate) use types::VisibleTranscriptVisualLines;

use user_prompt::append_user_prompt_lines;

use width::card_body_background;
use width::card_header_background;
use width::display_status_mark;
use width::next_display_width_unit;
use width::pad_full_width_spans;
use width::role_body_style;
use width::role_label_style;
pub(super) use width::spans_display_width;
pub(super) use width::spans_text;
use width::status_header_style;
pub(super) use width::status_mark;
use width::transcript_bottom_padding_visual_line;
use width::transcript_gap_visual_line;
use width::truncate_to_display_width;
#[cfg(test)]
mod profiling;
mod streaming;
pub(crate) use streaming::StreamingBody;
mod tables;

use super::{
    TRANSCRIPT_VIEWPORT_OVERSCAN_ROWS,
    projection::{
        ProjectedTranscriptCard, TranscriptCard, TranscriptCardChild, TranscriptCardRole,
        TranscriptCardStatus, project_card_spans, project_card_spans_reverse_from, project_cards,
    },
};
use crate::{
    output::ActivityStatus,
    rendering::DisplayRole,
    tui::{
        normalize_inline_separators,
        state::{MissionControlState, activity_status_mark},
        theme::MissionControlTheme,
        transcript,
    },
};
use ratatui::{
    style::{Color, Modifier, Style},
    text::{Line, Span},
};
use std::{cell::Ref, ops::Range, sync::Arc};
use unicode_segmentation::UnicodeSegmentation;
use unicode_width::UnicodeWidthStr;

#[cfg(test)]
pub(super) mod profiling_support;

pub(super) use scrollback::visit_visual_lines;

pub(crate) use scrollback::cached_visual_rows;

pub(crate) use scrollback::visible_anchored_scrollback_visual_lines;

pub(crate) use card::activity_card_visual_lines;

pub(crate) use card::activity_viewer_notice_visual_line;

pub(crate) use card::rendered_line_text;

pub(crate) use types::VisibleTranscriptLines;

use super::{TOOL_PREVIEW_LINES, projection};