Ir al contenido

Espacios de trabajo

Un espacio de trabajo es el límite de proyecto y configuración en archivos de Guida. Reúne scripts, almacenamiento persistente (g.store), colas (g.queue), búsqueda (g.search), eventos, herramientas MCP, catálogos de extractores y pipelines semánticas.

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.