Shared rendering model for approval-script UIs (PRD §7.3).
Both reference UIs (LiveView, Hologram) consume the same structure so they stay in feature parity:
highlight/1— tolerant token classifier: source → lines of{class, text}spans. Never raises, even on invalid scripts.model/1— aRunner.snapshot/0→ UI model: highlighted lines annotated with step ranges (current / dimmed-untaken / breakpoint gutter), step chips, and navbar affordances.
Classes: cmt tag kw str num ident punct ws txt.
Summary
Functions
Build the full UI model from a GenAI.Approval.snapshot/1.
Functions
@spec highlight(String.t()) :: [ %{no: pos_integer(), spans: [{String.t(), String.t()}]} ]
Build the full UI model from a GenAI.Approval.snapshot/1.