class

Smith::Presentation

Inherits Reference < Object

How a run talks to the human, and how it asks them things.

There are two of these — plain lines and the fullscreen UI — and almost everything that differs between them is a constructor: which renderer the event stream goes to, which approver asks about a tool call, which gate reviews a plan, where a hook's warning lands. Gathering them here is what keeps the CLI from growing another if fullscreen? every time the UI learns to do something new.

What it deliberately does not decide is whether to ask: --yes, a missing TTY and plan mode all settle that before anyone gets here. This only knows how the asking looks.

Instance methods

approver(allowlist : Array(String), rules : Tools::RuleSet) : 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

One line of incidental text: a chat command's answer, a note about shutting jobs down. Not an event, and not part of the transcript.

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 : TrustStore, preapproved : Bool) : TrustPrompt
Source