Files
graph_explorer/cdp-cli/README.md
T
egutierrez fb84a566f2 chore: auto-commit (2 archivos)
- app.md
- cdp-cli/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 18:11:25 +02:00

74 lines
2.6 KiB
Markdown

# cdp-cli
Wrapper Go de las funciones del dominio `browser` del registry. Subcomandos one-shot para hablar con una instancia de Chrome via CDP.
Diseñado para coexistir con la navegacion humana: el binario NO mata al browser al salir, conecta, ejecuta y se va. Tu sigues navegando, los enrichers/agentes invocan `cdp-cli` cuando necesitan HTML post-JS, screenshots, evaluar JS, etc.
Issue: [`0038-browser-launch-cdp-control.md`](../issues/0038-browser-launch-cdp-control.md) (fase 0038c).
## Build
```bash
cd projects/osint_graph/apps/graph_explorer/cdp-cli
go build -o cdp-cli .
```
## Funciones del registry envueltas
| Subcomando | Funcion |
|---|---|
| `launch` | `chrome_launch_go_browser` |
| `navigate` | `cdp_navigate_go_browser` (+ `cdp_wait_load` opcional) |
| `get-html` | `cdp_get_html_go_browser` |
| `screenshot` | `cdp_screenshot_go_browser` |
| `evaluate` | `cdp_evaluate_go_browser` |
| `click` | `cdp_click_go_browser` |
| `type` | `cdp_type_text_go_browser` |
| `wait-load` | `cdp_wait_load_go_browser` |
| `wait-element` | `cdp_wait_element_go_browser` |
| `set-cookie` | `cdp_set_cookie_go_browser` |
## Uso tipico
```bash
# 1) Lanzar Chrome con perfil aislado del app
./cdp-cli launch \
--port 9222 \
--user-data-dir /home/lucas/fn_registry/projects/osint_graph/apps/graph_explorer/local_files/browser_profiles/default
# Output: pid=12345 port=9222
# 2) Navegar (en otra terminal o desde otro proceso)
./cdp-cli navigate --port 9222 --url https://example.com
# 3) HTML post-JS
./cdp-cli get-html --port 9222 > page.html
# 4) Screenshot pagina completa
./cdp-cli screenshot --port 9222 --out /tmp/shot.png --full-page
# 5) Eval JS
./cdp-cli evaluate --port 9222 --js "document.querySelectorAll('a').length"
```
## Modo "tu y yo a la vez"
Una unica instancia de Chrome aceptando varios clientes CDP simultaneos:
```
┌──────────────────────────────┐
chrome --remote-debugging-port=9222 --user-data-dir=... │
│ │
▼ ▼
Tu navegando manualmente cdp-cli get-html
(extension issue 0014) (enricher / agente)
```
Cookies/login son los del profile → tu logueas LinkedIn una vez, los enrichers heredan la sesion.
## Roadmap (fuera de v0)
- `cdp-cli` lee `browser_sessions` de `graph_explorer.db` para resolver `--profile NAME` → puerto (fase 0038d, panel UI).
- Auto-launch si el profile pedido no esta vivo (0038g).
- Enricher `fetch_webpage_browser` que invoca `cdp-cli get-html` en lugar de HTTP plano (0038e).