Files
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

2.6 KiB

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 (fase 0038c).

Build

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

# 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).