Table of Contents

Namespace JD.AI.Rendering

Classes

ChatRenderer

Renders chat messages, tool outputs, and status to the terminal using Spectre.Console markup.

CompletionItem

A single completion candidate with optional description.

CompletionProvider

Provides command and keyword completion candidates for the interactive input.

DiffRenderer

Renders unified diff output with red/green ANSI backgrounds — the same visual style used by git diff and similar tools. No markdown processing is applied; diffs are output verbatim with color.

FileMentionExpander

Expands @file/path references in user input by injecting file contents.

FooterBar

Renders a FooterState snapshot into a Spectre.Console Spectre.Console.Rendering.IRenderable using a parsed FooterTemplate.

FooterState

Immutable snapshot of all data required to render the TUI footer.

FooterStateProvider

Collects and manages the mutable state used to build an immutable FooterState snapshot. All mutations are thread-safe; the class is safe to call from both the main thread and background refresh tasks.

FooterTemplate

A parsed footer template that can render itself given a dictionary of segment values.

HistoryViewer

Interactive session history browser with scrollable turns, details, and rollback. Activated by double-tap ESC at an empty prompt.

InputResult

The result of an interactive ReadLine call, containing the typed text and any pasted content attachments.

InteractiveInput

Interactive readline replacement with ghost-text completions, dropdown menu, command syntax highlighting, clipboard paste detection, and input history. Replaces Console.ReadLine() with a modern terminal editing experience.

MarkdownRenderer

Renders markdown text using Spectre.Console primitives. Parses with Markdig and walks the AST to produce styled terminal output.

Highlights:

  • Headings (H1→bold yellow, H2→bold cyan, H3→bold blue, H4+→bold)
  • Bold / italic / inline code
  • Fenced code blocks with simple keyword highlighting and a panel border
  • Ordered and unordered lists (nested, with ●/○/▸ bullets)
  • Tables via Spectre.Console Table
  • Block quotes with │ gutter
  • Thematic breaks (─── rule)
  • Slash-command tokens in prose are colored when they match registered commands
PastedContent

Represents content pasted into the input line that has been collapsed into a visual chip rather than displayed inline.

PluginSegment

A single plugin-provided segment to display in the footer.

QuestionnaireSession

Runs an interactive questionnaire in the TUI terminal, presenting each question in turn, collecting validated answers, showing a review/summary screen, and returning a completed AskQuestionsResult.

StreamingContentParser

Parses streaming LLM output to detect and separate thinking content from response content. Handles <think>...</think> tags that may span chunk boundaries (used by Qwen, DeepSeek, and similar models).

TeamProgressPanel

Live progress panel for team execution — shows per-agent status in real-time. Uses Spectre.Console LiveDisplay for smooth updates.

TemplateToken

An individual token produced by Parse(string).

WelcomeBannerDetails

Optional contextual details rendered in the startup welcome panel.

WelcomeIndicator

A concise, color-coded status indicator shown in the welcome banner.

Structs

DropdownWindow

Computes the visible slice of a dropdown list that keeps the selected item in view. Pure value type with no side effects — all rendering state is derived from inputs.

StreamSegment

A classified segment of streaming output.

Enums

IndicatorState

Visual state level for a welcome-banner service indicator.

PasteKind

The type of pasted content.

StreamSegmentKind

Classifies a segment of streaming output.