Commit 43c53cd
feat(research): Add bidirectional web TUI streaming with keyboard input
Add WebSocket-based streaming to enable browser control of research TUI:
- Add web_terminal.rs: WebSocket server with keyboard event handling
- WebKeyEvent struct with crossterm KeyEvent conversion
- Broadcast channels for multi-viewer output streaming
- 100-frame history buffer for late-joining viewers
- Add web_tui_backend.rs: Dual ratatui backend
- DualBackend writes to both CrosstermBackend and WebTuiBackend
- Proper ANSI escape code generation for xterm.js
- Full Backend trait implementation for ratatui 0.29
- Update TUI app with web input support:
- run_with_web() method for dual output + web input
- event_loop_with_web_input() polls both crossterm and WebSocket
- handle_key_event() unified handler for local and remote keys
- Add --web flag to research command:
- Streams TUI output to http://localhost:13370
- Browser keyboard input controls the TUI
- Works with --tui for interactive mode
Also includes OVSM compiler improvements and AI service enhancements.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>1 parent aba84a0 commit 43c53cd
File tree
13 files changed
+4194
-800
lines changed- crates/ovsm/src/compiler/ir
- src
- clparse
- commands
- services
- utils
- tui
13 files changed
+4194
-800
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
| |||
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
| 138 | + | |
137 | 139 | | |
138 | 140 | | |
139 | 141 | | |
| |||
Large diffs are not rendered by default.
0 commit comments