131 lines
4.3 KiB
Markdown
131 lines
4.3 KiB
Markdown
# 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
|
|
7. `bin/ui/components/PremiumSidebar.mjs`
|
|
8. `bin/ui/components/PremiumMessage.mjs`
|
|
9. `bin/ui/components/PremiumInputBar.mjs`
|
|
10. `bin/ui/components/RunStrip.mjs`
|
|
11. `bin/ui/components/ChannelLanes.mjs`
|
|
12. `bin/ui/components/CodeCard.mjs`
|
|
13. `bin/ui/components/IntentTrace.mjs`
|
|
14. `bin/ui/components/Toast.mjs`
|
|
15. `bin/ui/components/HeaderStrip.mjs`
|
|
16. `bin/ui/components/FooterStrip.mjs`
|
|
17. `bin/ui/components/ToolRegistry.mjs`
|
|
18. `bin/ui/components/GettingStartedCard.mjs`
|
|
19. `bin/ui/components/CleanTodoList.mjs`
|
|
|
|
### Models
|
|
20. `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
|