Browser-based interactive terminal sessions with agent CLIs via WebSocket + node-pty. Supports full TUI rendering (colors, cursor, ctrl-c) through xterm.js in the browser. Architecture: xterm.js ←WebSocket→ pty-server.js ←PTY→ agent CLI - Extract shared buildAgentEnv() from executor into agent-env.ts - Add internal /api/agents/[id]/env endpoint for PTY server - Add pty-server.js (WebSocket + node-pty, max 3 sessions, 2hr cleanup) - Add custom server.js wrapping Next.js with WebSocket upgrade - Add ChatTab component with agent selector and terminal - Wire CHAT tab into dashboard nav and render - Configure serverExternalPackages for node-pty - Update Dockerfile with build tools and custom server - Bump k8s memory limit 1Gi → 2Gi for PTY sessions
33 lines
747 B
JSON
33 lines
747 B
JSON
{
|
|
"name": "@homelab/harness",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --port 3100",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"test": "echo \"no tests yet\""
|
|
},
|
|
"dependencies": {
|
|
"@homelab/db": "workspace:^",
|
|
"@xterm/addon-fit": "^0.11.0",
|
|
"@xterm/xterm": "^6.0.0",
|
|
"drizzle-orm": "^0.36.0",
|
|
"next": "^15.1.0",
|
|
"node-pty": "^1.1.0",
|
|
"postgres": "^3.4.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"ws": "^8.20.0",
|
|
"yaml": "^2.7.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.10.0",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@types/ws": "^8.18.1",
|
|
"typescript": "^5.7.0"
|
|
}
|
|
}
|