Cinco funciones nuevas (dominio browser, grupo navegator) que cierran los gaps
de gestión de perfiles, más un pipeline que las orquesta:
- backup_chrome_bookmarks / restore_chrome_bookmarks: backup y restore de los
archivos Bookmarks (copia byte a byte verbatim para preservar el checksum
interno; en Chromium 148 los bookmarks no están bajo el super_mac de Secure
Preferences). Guard por user-data-dir (no global).
- delete_chrome_profile: borra la carpeta del perfil + limpia su entrada en
Local State (info_cache, profiles_order, last_active_profiles, last_used).
- create_chrome_profile: lanza chromium headless (vía systemd-run) para que la
managed policy instale la whitelist de extensiones, y asigna el nombre legible
en Local State. Mata todo el árbol de chromium del udd antes de editar Local
State (los hijos zygote/gpu no repiten --user-data-dir pero referencian la ruta).
- list_chrome_profile_extensions (Go): lista extensiones de un perfil con
ID/name/version/location/enabled/fromPolicy. 7 unit tests.
- reset_chrome_profiles (pipeline): backup -> cerrar chromium -> delete -> create
-> restore -> verify. Destructivo (--yes), --dry-run seguro.
Validado: unit tests Go verdes, backup/restore byte-idéntico, delete limpia Local
State, create instala la forcelist global (uBlock + web_proxy) en perfiles nuevos.
Funciones nuevas del dominio browser (grupo navegator):
- cdp_move_mouse_human / cdp_click_human: movimiento de raton con curva
de Bezier cubica, easing y micro-jitter para imitar comportamiento
humano y reducir deteccion de automatizacion.
- cdp_wait_idle: espera network-idle contando requests en vuelo via
eventos CDP Network.*; inmune a extensiones que mutan el DOM
(Dark Reader, uBlock) y a animaciones JS.
- list_chrome_profiles: lista perfiles de un user-data-dir (extensiones,
nombre legible, preferencias).
- prepare_chrome_profile (bash): clona un user-data-dir conservando solo
una whitelist de extensiones (default uBlock Origin Lite).
Modificadas:
- chrome_launch: Linux-first (chromium/google-chrome/brave antes que
chrome.exe), KeepExtensions y Setpgid para matar el arbol con cdp_close.
- cdp_close: kill por grupo de proceso.
Todas con tests verdes (go test ./functions/browser ok).
Añade campos params y output al frontmatter YAML de las 506 funciones del registry.
Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico)
y cada función describe qué produce su output. Permite a agentes razonar sobre
cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
Normaliza lang: typescript → ts en funciones frontend y corrige file_path de functions/infra/ → functions/browser/ en funciones CDP. Actualiza referencias cn_typescript_core → cn_ts_core.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>