Saltar al contenido principal

Escenarios manuales de extensiones de Chrome

La grabación manual se ejecuta como trabajo de captura administrativo: Desktop → Web Extension (Escritorio → Extensión web). Su entorno interno es WebExtension; los metadatos de captura y MCP público usan web-extension. El agente descarga la extensión seleccionada de Chrome Web Store y abre un perfil Chromium desechable con ella y la extensión de captura Reconstruct. El operador navega; Reconstruct guarda pantallas y transiciones observadas como reconstruct.scene.v1.

Crear y ejecutar un trabajo​

  1. En Admin → Jobs → Create (Administración → Trabajos → Crear), selecciona Desktop → Web Extension. Desmarca Web si solo quieres la extensión. Los entornos móviles siguen siendo Web, iOS y Android.
  2. En Environment Settings → Web Extension (Ajustes de entorno → Extensión web), pega el enlace de Chrome Web Store seleccionado. No se admiten directorios locales de extensiones ni perfiles personales de navegador como entradas.
  3. Pon el trabajo en cola. Lo toma un Capture Agent habilitado y asignado a Desktop / Web Extension. Los trabajadores Web y Web Extension no pueden tomar trabajos del otro tipo.
  4. El agente descarga un CRX3 firmado mediante el servicio de actualización de Google y verifica el ID de extensión seleccionado y la firma del editor antes de extraerlo a un directorio privado del trabajo. El paquete conserva su ID de tienda al cargarse sin empaquetar. Los metadatos de versión incluyen browserExtension con ID verificado, nombre localizado, versión y SHA-256; el nombre del catálogo procede de ese paquete. Las rutas del archivo, recuento de archivos y tamaño expandido se comprueban antes de usarlo.
  5. Chromium abre la pestaña de introducción propia de la extensión. En su defecto utiliza la página de opciones o ventana emergente declarada. Una extensión sin entrada de interfaz falla.
  6. Abre Reconstruct Agent Browser Bridge desde el menú de extensiones. Su ventana muestra el ID de trabajo activo y el número de pantallas guardadas. Después de cada pantalla, utiliza Capture screen (Capturar pantalla). Allí puedes usar Pause (Pausar), Resume (Reanudar) y Finish recording (Finalizar grabación).

No hay un CLI de grabación independiente ni un MCP adicional que iniciar. Los controles están vinculados al trabajo activo y a un token de sesión local privado. No aceptan valores de campos, etiquetas arbitrarias ni URL de origen. Los administradores también pueden observar y controlar el navegador en Admin → Jobs → job → Live browser (Navegador en vivo); solo acepta entrada mientras el trabajo espera al operador. Se rechazan otras extensiones o trabajos. Si la extensión abre otra pestaña, actívala antes de capturar; se comprueba su identidad antes de cambiar de destino. Contraseñas, creación de carteras, acuerdos y registro siguen siendo manuales.

Trabajos de inicio de sesión y exploración automática​

Las extensiones que requieren configuración inicial (como crear una cartera en MetaMask) pueden grabarse semiautomáticamente. En Environment Settings → Web Extension, establece Sign-in (Inicio de sesión) en Operator registers (El operador se registra) u Operator signs in (El operador inicia sesión).

  1. El trabajo espera al operador. Completa la introducción en Admin → Jobs → job → Live browser, o en el propio navegador del trabajo. Guarda pantallas con Capture screen; las pantallas de contraseñas y frases de recuperación nunca se guardan.
  2. Selecciona Finish sign-in (Finalizar inicio de sesión, consola), Continue (Continuar, Administración) o Finish sign-in and explore (Finalizar inicio de sesión y explorar, ventana de Reconstruct).
  3. Reconstruct visita después la ventana emergente, opciones, panel lateral y rutas a las que llevan los controles de navegación, guardando una pantalla por ruta. Nunca pulsa controles que puedan enviar, firmar, confirmar, revelar, exportar, bloquear, eliminar o crear nada.
  4. Si la extensión se bloquea, el trabajo espera como Signed out (Sesión cerrada) hasta que el operador la desbloquee y seleccione otra vez Finish sign-in. La grabación termina y se sube para revisión cuando no quedan rutas o se alcanza el límite de páginas.

Los trabajos Web tienen el mismo ajuste Sign-in: las pantallas de inicio de sesión se guardan como etapas, el rastreo omite enlaces de cierre de sesión y se pausa si esta termina. CAPTCHA, códigos SMS y aceptación de términos quedan siempre a cargo del operador. Consulta backend/docs/operator-sign-in.md.

Configuración del agente​

Compila el adaptador de navegador correspondiente con yarn nx run chrome:build en backend/agent-browser-extensions. El host necesita Node.js 24+, Python 3 y una compilación Chromium compatible con extensiones. Configura el Capture Agent existente con ajustes locales ignorados o variables de entorno:

{
"Agent": {
"Id": "extension-worker",
"ApiUrl": "https://internal-admin-api.example",
"ChromiumPath": "/Applications/Chromium.app/Contents/MacOS/Chromium",
"ExtensionDir": "/checkout/backend/agent-browser-extensions/chrome"
},
"WebExtension": {
"RecorderDirectory": "/checkout/backend/tools/manual-recorder",
"NodePath": "node",
"PythonPath": "python3"
}
}

Proporciona la credencial existente ApiTokens:Agent mediante configuración secreta. El receptor Web Kestrel existente debe ser de bucle local. Inicia el binario Capture Agent con extension serve y asigna su registro a Desktop / Web Extension en Administración. Cada modo de host posee su receptor y bloqueo de trabajo; no inicies dos trabajadores en un endpoint. Los trabajadores remotos requieren un host de navegador aislado gestionado y la declaración explícita WebExtension:ManagedBrowserIsolated, pues las extensiones ejecutan su propio código de red y de fondo. Este indicador no crea aislamiento. El ajuste explícito existente Agent:AllowHttpApi se aplica a una API de desarrollo de bucle local.

El trabajador gestiona asignaciones, latidos, cancelación y reintentos de subida. Su proceso hijo Node interno usa conductos privados, sin puerto TCP de depuración. Al terminar, cierra el navegador del trabajo y elimina su perfil temporal. Utiliza una cartera de prueba vacía: un escenario no conserva credenciales ni una cartera utilizable.

Secretos y revisión de imágenes​

Pausa antes de introducir contraseñas, frases de recuperación, claves o códigos. Reanuda al salir de pantallas sensibles. Las pantallas con texto protegido se rechazan de forma segura y crean una carencia de observación. Los controles editables y sus descendientes se enmascaran antes de las capturas; los valores no se leen en Scene. Las comprobaciones previas y posteriores rechazan capturas si cambian el estado protegido, máscara, navegación o contenido durante la captura.

Canvas y otros píxeles opacos siguen visibles en los medios privados de revisión. Las comprobaciones DOM no pueden demostrar que no contengan secretos. La inspección y el enmascarado se ejecutan sincrónicamente en una evaluación de mundo aislado; JavaScript permanece habilitado al capturar para que se renderice el contenido canvas nativo.

Finish recording empaqueta y sube automáticamente el resultado como captura sin publicar. Cada punto de control posee una página, Scene y captura de pantalla. Su índice de escenario referencia páginas sin copiar su texto. En Administración, inspecciona cada imagen en Hide personal data (Ocultar datos personales), difumina regiones sensibles o elimina medios inseguros y publica tras revisar. La ocultación también borra texto Scene cubierto, nombres accesibles, valores repetidos y referencias multimedia. Los originales almacenados por separado requieren su propia revisión. Los controles de grabación no pueden publicar ni devolver imágenes sin procesar.

Reconstrucción mediante MCP​

Tras revisar y publicar, los agentes descubren la versión mediante el catálogo Capture MCP normal. Usa get_scenario_scene para cargar fotogramas, perfiles y transiciones, ensamblados desde los datos actuales de las páginas, incluidas ocultaciones administrativas. Utiliza herramientas normales de páginas publicadas para las imágenes aprobadas. Verifica la reconstrucción contra cada pantalla y perfil capturado requerido; el éxito de las herramientas no demuestra fidelidad visual.

Pruebas y límites​

Los puntos de control son observaciones estáticas. Captura tras navegar, abrir menús, modales y otros contenidos, y en cada ventana requerida. Las observaciones adyacentes miden resultados de cambio/sin cambio; no prueban un clic ejecutado automáticamente. Los intervalos pausados o bloqueados crean carencias explícitas. Este modo no captura silenciosamente cada clic, reproduce registros, captura diálogos nativos de permisos del sistema ni infiere animación de imágenes fijas. Los pasos secretos siguen siendo manuales y no aparecen en el escenario publicado. El límite de páginas acota los puntos de control (la selección automática predetermina 200); Scene admite 100 000 nodos por trabajo. También se aplican los límites de tiempo y elementos.

Disponibilidad de solicitudes​

En Admin → Requests → Job defaults → Request submissions (Administración → Solicitudes → Valores predeterminados → Envío de solicitudes), configura los pares permitidos de tipo de producto/entorno. Los predeterminados son Desktop/Web, Desktop/Web Extension y Mobile/Web. Allow new requests (Permitir nuevas solicitudes) cierra o reabre todos los envíos nuevos; guardar conserva los pares seleccionados mientras están cerrados. Las solicitudes existentes y capturas publicadas siguen disponibles. La misma política persistida se aplica a la API y MCP autenticado, incluso con opciones de formulario obsoletas. El endpoint de opciones no devuelve plataformas mientras se cierran los envíos. Los selectores del catálogo solo muestran entornos capturados de ese producto; la disponibilidad de solicitudes no oculta pruebas publicadas.