Files
OpenQode/Documentation/task_premium_tui.md

4.3 KiB

Gen5 Premium TUI - Master Plan Implementation Complete

Credit: https://github.com/sst/opencode + https://github.com/MiniMax-AI/Mini-Agent

Legend

  • = Done and imported
  • 🔧 = Created, needs wiring into transcript
  • = Not done

Section 1: Terminal Adaptation Layer

Item Status File
Capability detection (3 profiles) terminal-profile.mjs
ASCII icon fallbacks icons.mjs
OSC 11 dark/light query terminal-theme-detect.mjs
Width-aware utils tui-layout.mjs

Section 2: Layout Skeleton

Item Status File
Header strip (fixed height) HeaderStrip.mjs
Transcript viewport (flex) Main layout
Footer strip (fixed height) FooterStrip.mjs
Input pinned in footer Existing input bar
Sidebar collapsible PremiumSidebar.mjs

Section 3: Channel Model

Item Status File
CHAT blocks (prose only) PremiumMessage.mjs
TOOL blocks (collapsed default) ToolLane in ChannelLanes.mjs
STATUS line (one place) RunStrip.mjs
TOAST overlays Toast.mjs
Wire channel separation 🔧 Need transcript integration

Section 4: Message Rendering Pipeline

Item Status File
Part model PartModel.mjs
Tool renderer registry ToolRegistry.mjs (15+ tools)

Section 5: Tool Detail Visibility

Item Status Notes
showDetails toggle 🔧 Need /details command
Per-tool expansion ToolLane/ToolBlock support
KV persistence 🔧 Need settings storage

Section 6: Thinking/Intent Trace

Item Status File
Single "Thinking" indicator RunStrip.mjs
Intent Trace format IntentTrace.mjs
showThinking toggle 🔧 Need /thinking command

Section 7: Snippet/Code Rendering

Item Status File
Single CodeCard component CodeCard.mjs
No duplicate headers Built-in
Width-aware truncation Built-in

Section 8: TODO/Checklist

Item Status File
[ ]/[x] lines with status CleanTodoList.mjs
in_progress highlight Built-in
No heavy neon widget Clean design

Section 9: Sidebar

Item Status File
Fixed width, scrollable PremiumSidebar.mjs
Getting Started card GettingStartedCard.mjs
Command hints CommandHints component

Section 10: Toasts

Item Status File
Toast overlay Toast.mjs
Toast manager showToast, showSuccess, etc.

Section 11: Cross-Terminal

Item Status File
3 render profiles terminal-profile.mjs
ASCII icon fallback icons.mjs
No nested borders All premium components

Files Created (16 new files)

Core Utilities

  1. bin/terminal-profile.mjs - Capability detection
  2. bin/icons.mjs - ASCII fallback icons
  3. bin/tui-theme.mjs - Semantic colors
  4. bin/tui-layout.mjs - Layout math
  5. bin/tui-stream-buffer.mjs - Anti-jitter streaming
  6. bin/terminal-theme-detect.mjs - OSC 11 dark/light

Premium UI Components

  1. bin/ui/components/PremiumSidebar.mjs
  2. bin/ui/components/PremiumMessage.mjs
  3. bin/ui/components/PremiumInputBar.mjs
  4. bin/ui/components/RunStrip.mjs
  5. bin/ui/components/ChannelLanes.mjs
  6. bin/ui/components/CodeCard.mjs
  7. bin/ui/components/IntentTrace.mjs
  8. bin/ui/components/Toast.mjs
  9. bin/ui/components/HeaderStrip.mjs
  10. bin/ui/components/FooterStrip.mjs
  11. bin/ui/components/ToolRegistry.mjs
  12. bin/ui/components/GettingStartedCard.mjs
  13. bin/ui/components/CleanTodoList.mjs

Models

  1. bin/ui/models/PartModel.mjs

Remaining Work (Wiring)

  1. Wire Header/Footer strips into main layout
  2. Wire channel separation into transcript rendering
  3. Add toggle commands - /details, /thinking
  4. Wire toasts to replace transcript confirmations
  5. Test across Windows PowerShell + macOS/Linux