ed78bdb81a
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.
49 lines
1.7 KiB
Markdown
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).
|