Files
claude_wire/playground/README.md
T
agent ed78bdb81a feat(playground): chat web sobre claude_wire (SSE interceptado de la red)
Backend Go (web/server.go) con SSE que por cada mensaje lanza claude_wire y
reenvia su NDJSON (text_delta + result) al navegador. Frontend vanilla
(web/index.html). Mensajes serializados (mutex: claude_wire usa puerto mitmproxy
fijo). Validado end-to-end: la respuesta llega token a token del SSE real
(O, K -> OK), sin parsear el render. ~9s por mensaje vs ~15s del chat de
claude_pipe. Puerto 8100.
2026-06-04 00:30:52 +02:00

49 lines
1.7 KiB
Markdown

# claude_wire — chat web (playground)
Chat en el navegador sobre `claude_wire`: el texto de la respuesta se obtiene
interceptando el SSE del modelo en la red (no parseando el render de la terminal).
Backend Go con SSE (`web/server.go`) que, por cada mensaje, lanza `claude_wire`
y reenvía su NDJSON (`text_delta` + `result`) al navegador. Frontend vanilla
(`web/index.html`), sin frameworks ni node_modules. No se indexa (playground del
padre).
## Prerrequisitos
- `mitmproxy` instalado (`mitmdump` en el PATH) + CA generada
(`~/.mitmproxy/mitmproxy-ca-cert.pem`).
- Binarios compilados:
- `apps/claude_pipe/claude_pipe` (driver de la TUI).
- `apps/claude_wire/claude_wire` (runner que intercepta el SSE).
```bash
cd apps/claude_pipe && CGO_ENABLED=1 go build -tags fts5 -o claude_pipe .
cd ../claude_wire && go build -o claude_wire .
```
## Lanzar
```bash
cd apps/claude_wire/playground
go run ./web # http://localhost:8100
# o con flags:
go run ./web --port 8100 --root /home/enmanuel/fn_registry --wire ../claude_wire
```
Abre `http://localhost:8100` y escribe. Cada mensaje dirige la TUI interactiva de
claude por un mitmproxy y lee la respuesta del SSE de `api.anthropic.com`, token a
token, exacta. Corta en `message_stop` (sin idle ciego): ~9s por respuesta.
## vs el chat de claude_pipe
| | `claude_pipe` chat (`:8099`) | `claude_wire` chat (`:8100`) |
|---|---|---|
| Texto | parseado del render (heurístico) | exacto del SSE de la red |
| Streaming | snapshots del grid | token real |
| Latencia | ~15s | ~9s |
## Notas
- Mensajes serializados (un `claude_wire` a la vez: usa un puerto mitmproxy fijo).
- Sin memoria entre turnos (cada mensaje es una sesión claude one-shot).