4.1 KiB
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
automationsexos_automationsnã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
automationsexos_automationspermanecem intactas - Nova camada
server/automation-fabric/agrega os dois via API layer AutomationCenter.tsxconsome 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 |
AutomationFabricServiceorquestra: 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.tsxem/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.ts—AutomationService.runAutomation()(reusar no WorkflowEngine)server/automations/routes.ts— padrão de rota com auth checkserver/manus/service.ts—manusServicepara AgentExecutorshared/schema.ts—automations,xos_automations,automationLogsjá existentesclient/src/pages/Automations.tsx— referência de UX/layout para a nova páginaclient/src/pages/XosAutomations.tsx— referência de cards e filtros
Scope Boundary
Incluído nesta fase:
server/automation-fabric/— 5 runtimes +AutomationFabricService+ rotas unificadasGET /api/automation-fabric/list— lista unificada (central + xos)POST /api/automation-fabric/:id/run— execução via fabricAutomationCenter.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-centercom lista, filtros e execução inline