Ir al contenido

Espacios de trabajo

Un espacio de trabajo es una carpeta que Guida abre para organizar su proyecto de automatización. Abrir un espacio de trabajo habilita almacenamiento persistente (g.store), colas de trabajo (g.queue), búsqueda de texto completo (g.search), disparadores de eventos y herramientas MCP personalizadas.

Use File > Open Workspace o el botón de la barra de herramientas para seleccionar una carpeta. Guida creará la estructura predeterminada si no existe.

my-workspace/
├── scripts/ # Your automation scripts (*.js, *.lua, *.janet)
├── lib/ # Shared libraries for JS, Lua, and Janet
├── views/ # Queue view configurations
├── events.json # Event trigger config
├── tools.json # Custom MCP tool definitions
├── queues.json # Worker pool definitions
├── domains.json # Dominios autorizados para MCP
├── workflows/ # Named automation pipelines (optional)
├── store.db # Persistent storage (auto-created)
├── queue.db # Work queue data (auto-created)
├── workflow-ledger.db # Workflow run/item history (auto-created)
└── search-index/ # Full-text search index (auto-created)

El panel Workspace de Guida lista automáticamente todos los archivos .js, .lua y .janet encontrados en scripts/, lib/ y las carpetas de flujo de trabajo. Al crear un archivo nuevo, use la extensión del motor que quiere usar.

Se crean automáticamente la primera vez que usa la API correspondiente:

  • store.db — base LiteDB para operaciones g.store.*. Los documentos se organizan en colecciones con nombre.
  • queue.db — base SQLite para operaciones g.queue.* respaldadas por StratQueue. Admite colas con prioridad, estrategias de extracción personalizadas, trabajo tomado y colas de rechazos.
  • workflow-ledger.db — base SQLite para ejecuciones de flujos de trabajo, elementos, eventos, resultados vinculados, reservas, reintentos e historial de recuperación.
  • search-index/ — directorio de índice Lucene.NET para operaciones g.search.*.

Todos los datos son locales al espacio de trabajo y viajan con la carpeta.

Use File > Backup Workspace… para crear un archivo con marca temporal de todo el espacio de trabajo, o File > Backup Managed Workspace Files… para archivar solo los datos operativos de Guida, como store.db, instantáneas de colas/registro y search-index/. Vea Copias de seguridad del espacio de trabajo.

Ejecute scripts automáticamente cuando ocurran eventos del navegador:

{
"triggers": [
{
"event": "url-match",
"pattern": "https://example.com/products/*",
"script": "scripts/extract-product.js"
},
{
"event": "page-loaded",
"script": "scripts/inject-styles.js"
},
{
"event": "tab-created",
"script": "scripts/setup-tab.js"
}
]
}

Tipos de disparador:

EventoPatrónSe dispara cuando
url-matchPatrón glob (* = cualquier carácter)La navegación termina en una URL coincidente
page-loadedCualquier página termina de cargar
tab-createdSe crea una pestaña nueva
tab-closedSe cierra una pestaña
tab-activatedUna pestaña pasa a estar activa
dom-mutationSelectores CSSUn elemento DOM observado cambia en texto, atributos o hijos
external-queueUn script de sondeo devuelve datos con intervalo configurable

Si el mismo script ya está ejecutándose, no se vuelve a disparar.

dom-mutation — observación DOM reactiva con MutationObserver. Ideal para datos en vivo como precios de acciones, cuotas de apuestas o métricas de panel:

{
"event": "dom-mutation",
"selector": ".price-display",
"script": "scripts/on-price-change.js",
"debounce": 1000,
"strategy": "exhaust"
}
  • selector — selector CSS que observar, o selectors para un array de selectores
  • attributes — lista opcional de nombres de atributo específicos que observar
  • debounce — milisegundos de debounce por elemento; predeterminado 0
  • strategy — estrategia de contrapresión: "exhaust" predeterminada, omite si el script está en ejecución; "buffer" reúne cambios en un array; "sample" conserva solo el cambio más reciente

external-queue — sondee una fuente de datos externa con intervalo configurable:

{
"event": "external-queue",
"source": "scripts/poll-api.js",
"script": "scripts/handle-item.js",
"interval": 30
}

El script source se ejecuta en cada sondeo: devuelve datos si hay trabajo disponible, o null si no hay nada. Cuando devuelve datos, se ejecuta el manejador script y puede acceder a ellos mediante g.trigger.getContext().

Contexto de disparador — todos los scripts disparados pueden llamar a g.trigger.getContext() para acceder a metadatos del evento: tipo, ID de pestaña, URL, marca temporal y campos específicos como detalles de mutación.

tools.json — herramientas MCP personalizadas

Sección titulada «tools.json — herramientas MCP personalizadas»

Defina herramientas que agentes externos de IA pueden invocar. Vea Herramientas personalizadas.

queues.json — pools de procesos de trabajo

Sección titulada «queues.json — pools de procesos de trabajo»

Defina pools declarativos de procesos de trabajo para procesamiento por lotes. Vea Procesos de trabajo de cola.

Controle a qué dominios puede navegar el servidor MCP. Vea Integración MCP.

{
"allowedDomains": [
"example.com",
"*.example.com",
"trusted-site.org"
]
}

Estas API requieren un espacio de trabajo abierto y devuelven error en caso contrario:

APIDescripción
g.store.*Almacenamiento persistente de documentos
g.queue.*Colas de trabajo transaccionales
g.search.*Índice de búsqueda de texto completo
g.workers.*Pools de procesos de trabajo de cola
g.workflows.*Inspección y cambio de flujos de trabajo

Las API centrales como g.dom.click, g.nav.navigateToUrl y g.tabs.getTabs funcionan sin espacio de trabajo.