feat(cli): TUI component architecture — status bars, message list, input bar

- Split monolithic app.tsx into composable components:
  - TopBar: connection indicator (●/○), gateway URL, model name, conversation ID
  - BottomBar: cwd, git branch, token usage
  - MessageList: timestamped messages, tool call indicators, thinking display
  - InputBar: context-aware prompt with streaming/disconnect states
- Extract socket logic into useSocket hook with typed events
- Extract git/cwd info into useGitInfo hook
- Quiet disconnect: single indicator instead of error flood
- Add @mosaic/types dependency for typed Socket.IO events
- Add PRD and task tracking docs

Tasks: TUI-001 through TUI-007 (Wave 1)
This commit is contained in:
2026-03-15 13:33:37 -05:00
parent 3792576566
commit 9ae1bac614
10 changed files with 629 additions and 3 deletions

3
pnpm-lock.yaml generated
View File

@@ -295,6 +295,9 @@ importers:
'@mosaic/quality-rails':
specifier: workspace:^
version: link:../quality-rails
'@mosaic/types':
specifier: workspace:^
version: link:../types
commander:
specifier: ^13.0.0
version: 13.1.0