class

Smith::UI::TuiPresentation

Inherits Smith::Presentation < Reference < Object

The fullscreen presentation: everything goes through the app, which owns the screen. Questions become panels answered with a single key, so no part of a session reads from plain stdin while the UI has the terminal in raw mode — a prompt printed underneath it would be invisible, and a gets would fight the key loop for the same bytes.

Constructors

new(app : App)
Source

Instance methods

approver(allowlist : Array(String), rules : Smith::Tools::RuleSet) : Smith::Tools::Approver
Source
notice_io

Where diagnostics that are nobody's event go — a hook warning, an MCP server that would not start.

Source
plan_gate
Source
renderer
Source
say(text : String) : Nil

A notice block is already set apart from what surrounds it, so the text arrives as it was written.

Source
say_block(lines : Array(String)) : Nil

Lines that are already laid out — a table, a breakdown — and must be shown as they are.

Source
trust_prompt(store : Smith::TrustStore, preapproved : Bool) : Smith::TrustPrompt
Source