feat: implement web terminal for tool instances
- Add TerminalSession backend service for docker exec subprocess management
- Add TerminalManager for WebSocket session lifecycle management
- Create WebSocket endpoint at /ws/tool-instances/{id}/terminal
- Add session cookie authentication and instance ownership verification
- Install xterm.js with fit and web-links addons
- Create TerminalComponent with xterm.js integration
- Create TerminalPage with full-screen terminal view
- Add terminal route at /instances/:id/terminal
- Add terminal button to InstanceList for running instances
- Add terminal and arrow-left icons to icon registry
- Add comprehensive terminal CSS styles (dark theme, responsive)
Quality gates: typecheck ✓, lint ✓, build ✓, Python syntax ✓
This commit is contained in:
@@ -31,6 +31,8 @@ import {
|
||||
ArrowSquareOut,
|
||||
Play,
|
||||
Stop,
|
||||
Terminal,
|
||||
ArrowLeft,
|
||||
} from "@phosphor-icons/react";
|
||||
|
||||
export type IconName =
|
||||
@@ -70,7 +72,9 @@ export type IconName =
|
||||
| "binary"
|
||||
| "external"
|
||||
| "play"
|
||||
| "stop";
|
||||
| "stop"
|
||||
| "terminal"
|
||||
| "arrow-left";
|
||||
|
||||
export const iconRegistry: Record<
|
||||
IconName,
|
||||
@@ -124,6 +128,8 @@ export const iconRegistry: Record<
|
||||
external: ArrowSquareOut,
|
||||
play: Play,
|
||||
stop: Stop,
|
||||
terminal: Terminal,
|
||||
"arrow-left": ArrowLeft,
|
||||
};
|
||||
|
||||
export const iconCategories = {
|
||||
|
||||
Reference in New Issue
Block a user