feat(playground): chat web sobre claude_pipe --stream (SSE)
Backend Go (web/server.go) que sirve un chat single-page y, por cada mensaje, lanza claude_pipe --stream como subprocess y reenvia sus eventos NDJSON (text_delta + result) al navegador via Server-Sent Events. Frontend vanilla (web/index.html), sin frameworks ni node_modules. Prueba el stack completo end to end a traves de una surface real: captura PTY -> vt_render -> parse_claude_tui (con fix del spinner) -> delta de streaming -> chat en vivo. Cada mensaje es una sesion claude one-shot (sin memoria entre turnos). Playground del padre, no indexado.
This commit is contained in:
@@ -44,3 +44,24 @@ go run artifact_probe.go --root /home/enmanuel/fn_registry --prompt "tu prompt a
|
||||
|
||||
`--root` debe ser un repo cuyos MCP de claude ya estén aprobados, para que la TUI
|
||||
no muestre el diálogo de arranque.
|
||||
|
||||
## Chat en el navegador (`web/`)
|
||||
|
||||
Un chat web que prueba todo el stack end to end: backend Go con SSE que lanza
|
||||
`claude_pipe --stream` por cada mensaje y reenvía los `text_delta` al navegador,
|
||||
frontend chat vanilla (sin frameworks, sin node_modules).
|
||||
|
||||
```bash
|
||||
cd apps/claude_pipe
|
||||
CGO_ENABLED=1 go build -tags fts5 -o claude_pipe . # binario con el fix del spinner
|
||||
|
||||
cd playground
|
||||
go run ./web # http://localhost:8099
|
||||
# o con flags:
|
||||
go run ./web --port 8099 --root /home/enmanuel/fn_registry --warmup 4s --idle 4s --max 120s
|
||||
```
|
||||
|
||||
Abre `http://localhost:8099` y escribe. Cada mensaje es una sesión `claude` nueva
|
||||
(sin memoria entre turnos: `claude_pipe` es one-shot). Hay ~8s de `warmup`+`idle`
|
||||
antes de la primera respuesta. La respuesta se reconstruye desde la TUI parseada,
|
||||
ya sin el spinner de carga.
|
||||
|
||||
Reference in New Issue
Block a user