arcadiasuite/.planning/phases/05-automation-fabric/05-CONTEXT.md

4.1 KiB

Phase 5 Context — Automation Fabric

Generated in --auto mode on 2026-03-26. All decisions auto-selected with recommended defaults.

Phase Goal

Automações unificadas sob runtime único — 5 runtimes tipados substituindo a fragmentação entre XOS (xos_automations) e Central (automations), com AutomationCenter.tsx como visão unificada.

Prior Context Applied

  • Stack Node.js/TypeScript: runtimes ficam no servidor Express, sem novos microserviços Python
  • Backend-first: API definida antes do frontend
  • DB imutável: tabelas automations e xos_automations não são alteradas — migração virtual
  • Padrão de phases anteriores: wrappers leves sobre código existente, sem reescritas

Decisions

1. Estratégia de migração

[auto] Unificação virtual — zero migração de dados

  • Tabelas automations e xos_automations permanecem intactas
  • Nova camada server/automation-fabric/ agrega os dois via API layer
  • AutomationCenter.tsx consome endpoint unificado /api/automation-fabric/list
  • Endpoint retorna rows de ambas as tabelas com campo source: "central" | "xos"
  • Dados existentes: sem risco de perda, sem downtime, sem migration script

2. Os 5 runtimes

[auto] Classes TypeScript leves — roteamento para serviços existentes

Implementados em server/automation-fabric/runtimes/:

Runtime Responsabilidade Delega para
WorkflowEngine Executa ações sequenciais com condições AutomationService existente
RuleEngine Avalia condições JSONB e dispara ações Lógica inline, sem dependência
AgentExecutor Executa automações via agente Manus ManusService
ScheduleEngine Gerencia cron/interval scheduledTasks + setInterval existente
EventEngine Webhook/event triggers Registra listeners no Express
  • AutomationFabricService orquestra: dado tipo de trigger → escolhe runtime correto
  • Trigger routing: schedule → ScheduleEngine, event/webhook → EventEngine, agent → AgentExecutor, default → WorkflowEngine

3. Rota do AutomationCenter

[auto] Nova rota /automations-center — existentes intocadas

  • /automations (Central) e /xos/automations (XOS) permanecem sem alteração
  • Nova página client/src/pages/AutomationCenter.tsx em /automations-center
  • Adicionada ao nav/router sem remover rotas existentes

4. UI do AutomationCenter

[auto] Lista unificada com badge de fonte + filtros inline

  • Lista flat com cards: nome, descrição, trigger type, última execução, status ativo/inativo
  • Badge colorido: "Central" (azul) | "XOS" (roxo)
  • Filtros: por fonte, por status (ativo/inativo), por trigger type
  • Toggle inline enable/disable via PATCH ao respectivo endpoint original
  • Execução manual via botão "Executar" → POST /api/automation-fabric/{id}/run
  • Empty state informativo

Reusable Assets Identified

  • server/automations/service.tsAutomationService.runAutomation() (reusar no WorkflowEngine)
  • server/automations/routes.ts — padrão de rota com auth check
  • server/manus/service.tsmanusService para AgentExecutor
  • shared/schema.tsautomations, xos_automations, automationLogs já existentes
  • client/src/pages/Automations.tsx — referência de UX/layout para a nova página
  • client/src/pages/XosAutomations.tsx — referência de cards e filtros

Scope Boundary

Incluído nesta fase:

  • server/automation-fabric/ — 5 runtimes + AutomationFabricService + rotas unificadas
  • GET /api/automation-fabric/list — lista unificada (central + xos)
  • POST /api/automation-fabric/:id/run — execução via fabric
  • AutomationCenter.tsx — página /automations-center

Fora de escopo (phases futuras):

  • Editor visual de automações (Phase 6 / Dev Center)
  • Migração física de dados para tabela unificada
  • Novos tipos de trigger não existentes

Plan Breakdown Suggested

  • 05-01: server/automation-fabric/ — 5 runtimes + AutomationFabricService + routes (/api/automation-fabric)
  • 05-02: AutomationCenter.tsx — página unificada /automations-center com lista, filtros e execução inline