fb84a566f2
- app.md - cdp-cli/ Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
74 lines
2.6 KiB
Markdown
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).
|