Commit Graph

191 Commits

Author SHA1 Message Date
Jonas Pacheco 80f9352a7e fix(kernel-adapter): variáveis de ambiente em runtime não build time
- Transforma SERVICE_URLS (objeto estático) em getServiceUrl() (função)
- Garante que process.env.CONTABIL_PYTHON_URL seja lida em runtime
- Resolve problema de URL 'bakeada' no build retornar valor errado
2026-04-03 17:38:45 -03:00
Jonas Pacheco 162bc4f943 force: rebuild docker cache [1775243617] 2026-04-03 16:13:37 -03:00
Jonas Pacheco 1fdeb72492 fix(engine-room): suporte a modo Docker para consultar serviços externos
- Modifica kernel-adapter.ts para detectar DOCKER_MODE
- Em modo Docker, consulta serviços via HTTP health check direto
- Em modo normal, continua usando Kernel local (porta 5001)
- Resolve problema de apenas 2 motores aparecendo em producao
2026-04-03 12:19:58 -03:00
Jonas Pacheco 5ba2bd963d fix(build): compatibilidade CommonJS para Kernel
- Adiciona fallback para import.meta.url em builds do Docker
- Protege entry point do Kernel para não crashar em CommonJS
- DashboardServer.ts agora funciona em ESM e CommonJS
- index.ts com try-catch em torno de import.meta.url

Isso corrige o erro: ERR_INVALID_ARG_TYPE no build do Coolify

Refs: Deploy produção com Kernel
2026-04-02 18:00:10 -03:00
Jonas Pacheco 75953a8542 fix(deploy): remove miroflow submodule (broken ref)
- Remove server/modules/miroflow do .gitmodules
- Permite deploy no Coolify sem erro de submodule
- MiroFlow pode ser re-adicionado depois com ref correta

Refs: Deploy com Kernel
2026-04-02 17:55:09 -03:00
Jonas Pacheco 2e76496ff4 feat(kernel): integração Engine Room com Arcadia Kernel
MIGRAÇÃO COMPLETA: Sistema antigo → Kernel Nativo (porta 5001)

📁 Arquivos alterados:
- server/engine-room/kernel-adapter.ts (NOVO)
- server/engine-room/routes.ts
- server/kernel/config/services.json

🔧 O que mudou no Kernel (services.json):
+ Adicionado: python-fisco (porta 8002)
+ Corrigido: node-communication (8006, era 9001)
+ Adicionado: node-core-api (9002)
+ Adicionado: node-worker (9003)
- Removido: java-metaset (gerenciado externamente)

Total: 6 → 7 serviços gerenciados pelo Kernel

🔄 Engine Room - Novo comportamento:
- Todas as rotas /api/engine-room/* agora usam Kernel Adapter
- Sistema antigo (managedServices) mantido em comentário para fallback
- Verificação automática se Kernel está disponível
- Retorna erro 503 se Kernel não responde na porta 5001

📊 Mapeamento de serviços:
Engine Room          → Kernel ID
────────────────────────────────────────
contabil             → python-contabil
bi-engine            → python-bi
automation-engine    → python-automation
fisco                → python-fisco
communication        → node-communication

🚫 Serviços externos (não gerenciados pelo Kernel):
- plus (PHP/Laravel, porta 8080)
- metaset (Java, porta 8088)

 Benefícios:
- Auto-restart configurável por serviço
- Health checks automáticos
- Logs centralizados com timestamps
- WebSocket para atualizações em tempo real
- Dashboard na porta 5001

⚠️ Pré-requisito:
KERNEL_ENABLED=true npm run dev

Refs: Semana 4 - Integração Kernel com Engine Room
Breaking Change: Engine Room requer Kernel rodando
2026-04-02 16:47:28 -03:00
Jonas Pacheco 7ce8735c04 feat(kernel): adiciona dashboard HTML visual
- Adiciona interface web dark theme com cards de estatísticas
- Lista de serviços com status, health e ações (start/stop/restart)
- Console de logs em tempo real com filtro por serviço
- WebSocket para atualizações em tempo real
- Auto-refresh a cada 5 segundos

Refs: Dashboard Arcadia Kernel
2026-04-02 14:46:36 -03:00
Jonas Pacheco 849934dae8 feat(kernel): implementação completa do Kernel Nativo - Semana 3
Kernel Arcadia - Sistema nativo de gerenciamento de serviços:

Core:
- ProcessManager: spawn, monitor, restart automático de serviços
- HealthMonitor: HTTP health checks com circuit breaker
- LogAggregator: coleta e streaming de logs

API & Dashboard:
- API REST /api/kernel/* para controle dos serviços
- Dashboard Web na porta 5001
- WebSocket /ws/kernel para updates em tempo real

Serviços configurados (6):
- Python: Contabil (8003), BI Engine (8004), Automation (8005)
- Node.js: Communication (9001), Core API (9002), Worker (9003)

Integração:
- server/index.ts integrado com flag KERNEL_ENABLED
- Build passando, pronto para testes

Uso:
  KERNEL_ENABLED=true npm run dev
  Acesse http://localhost:5001 para o dashboard
2026-04-02 10:40:46 -03:00
Jonas Pacheco 201580a47a feat(rls): migrações Row Level Security - Semana 2
- 001_enable_rls.sql: habilita RLS em 31 tabelas tenant-isoladas
- 002_create_policies.sql: 124 políticas CRUD por tenant
- 003_tenant_context.sql: funções, triggers e views de contexto
- scripts/apply-rls-migrations.ts: automação de aplicação
- package.json: script npm run db:apply-rls

Tabelas protegidas: workspace, crm, process compass, low-code, multi-tenancy core
2026-04-02 09:58:56 -03:00
Jonas Pacheco a2aff30b8c security: correcoes semana 1 - session secret, CORS, filtro tenant, protecao /api/tenants
- Session secret com randomBytes(32), obrigatorio em producao
- CORS whitelist configurado (origens permitidas)
- getUserByUsername com validacao opcional de tenantId
- /api/tenants restrito: admin ve todos, user ve so seu tenant
- Metodo getTenant(id) adicionado a interface IStorage
2026-04-01 17:34:23 -03:00
Jonas Pacheco 4fb3f87dc3 chore: atualização do servidor - 2026-04-01 15:34 2026-04-01 15:34:08 -03:00
Jonas Pacheco f0b39f7f1d Remover referências enganosas ao LLMFit — corrigir tiers de IA para Ollama (TIER 1) + externos (TIER 2) 2026-04-01 14:06:12 -03:00
Jonas Pacheco 9d83163dbb fix: use Ollama container directly for MiroFlow scientific agents
- Replace LiteLLM with direct Ollama API (ollama-ia1upsekrad96at5hq97e4qa)
- Use deepseek-r1:14b for all agents, fallback to llama3.2:3b
- OLLAMA_BASE_URL env var overrides default hostname

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 21:53:38 -03:00
Jonas Pacheco 59bfca8c70 feat: implement /analyze endpoint for MiroFlow scientific agents
- Add POST /analyze handler in engine-proxy.ts (Node host, direct Ollama access)
- Routes agent requests (statistician/fiscal_auditor/researcher) to deepseek-r1:14b
- Fallback to llama3.2:3b if primary model unavailable
- Fixes BiWorkspace "Científico" tab end-to-end flow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 16:55:07 -03:00
Jonas Pacheco 53b9fc5408 fix: simplify MiroFlow engine-proxy, remove broken KG registration
- Remove unused crypto import and broken createNode dependency
- Delete registerExecutionInKG function (was fully commented)
- Clean up excessive console.logs
- Streamline POST /api/miroflow/analyze route
- Routes should now register cleanly without initialization errors

This fixes the TypeError that was preventing route registration.
2026-03-31 16:03:58 -03:00
Jonas Pacheco 50e419db17 debug: comenta createNode para isolate erro 2026-03-31 15:59:00 -03:00
Jonas Pacheco 5c0f3f818e debug: adiciona logs no /api/miroflow/analyze 2026-03-31 15:55:34 -03:00
Jonas Pacheco 4778462c29 debug: desabilita autenticacao temporaria no /api/miroflow/analyze 2026-03-31 15:52:37 -03:00
Jonas Pacheco 35492de95f fix: remove SQL injection risk no create-dashboard (TODO: prepared statements) 2026-03-31 15:42:27 -03:00
Jonas Pacheco 6853077fa2 test: muda Statistician e Fiscal Auditor para Llama (teste rápido) 2026-03-31 15:25:39 -03:00
Jonas Pacheco fa00fbb73f fix(miroflow): aumenta timeout de 5 para 10 minutos (DeepSeek R1 é lento) 2026-03-31 15:24:00 -03:00
Jonas Pacheco 395d1e5ecb fix: corrige imports e query SQL no endpoint create-dashboard 2026-03-31 15:06:48 -03:00
Jonas Pacheco c665f6ec40 feat(miroflow): integração com Superset para criar dashboards automáticos
- Adiciona tabela miroflow_generated_dashboards para rastrear dashboards criados
- Endpoint POST /api/superset/miroflow/create-dashboard cria dashboard no Superset
- MiroFlowControl.tsx com botão 'Criar Dashboard' após análise
- Dashboard criado com dados da análise e SQL query
- Suporta todos os agentes (statistician, fiscal_auditor, researcher)
2026-03-31 15:03:17 -03:00
Jonas Pacheco 264029eafc fix(superset): corrige superset_config.py para usar SQLALCHEMY_DATABASE_URI e init.sh sem bare except 2026-03-31 14:24:44 -03:00
Jonas Pacheco c8d323941b fix(superset): corrige init.sh + adiciona aba Científico no BiWorkspace 2026-03-31 14:08:29 -03:00
Jonas Pacheco 25f6e2f72a fix(infra): add coolify network to db and redis services
Garante que db e redis entram na rede coolify ao serem recriados,
permitindo que novos deploys via Coolify resolvam os hostnames.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 11:20:42 -03:00
Jonas Pacheco c293ec2a61 fix(miroflow): add MIROFLOW_HOST/PORT env vars no serviço app
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 09:28:19 -03:00
Jonas Pacheco 9f6875367c feat(scientist): add tab Científico com MiroFlowControl
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 09:21:38 -03:00
Jonas Pacheco aa0ce768ed Remover duplicatas de serviços no docker-compose.prod.yml
- Remover versões antigas de plus-db, plus, superset, erpnext-db, erpnext
- Manter versões recentes com Traefik labels corretos
- Arquivo agora válido e sem conflitos YAML

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-30 15:27:35 -03:00
Jonas Pacheco 763c6bcdd5 Adicionar MiroFlow e Ollama ao docker-compose.prod.yml
- Remover profile [ai] do Ollama para rodar sempre em prod
- Remover profile [bi] do Superset para rodar sempre em prod
- Adicionar MiroFlow service com Dockerfile.miroflow
- Configurar Traefik labels para miroflow.onboardbi.com.br
- Adicionar healthcheck para MiroFlow
- MiroFlow depende de Ollama e acessa via http://ollama:11434

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-30 15:21:01 -03:00
Jonas Pacheco 10ffd3338a fix: importar ícone Brain para MiroFlow card
Erro: ReferenceError: Brain is not defined
Solução: Adicionar Brain aos imports de lucide-react

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-30 10:35:59 -03:00
Jonas Pacheco 23bc6fb95a chore: trigger Coolify rebuild
Força rebuild da aplicação em produção para aplicar mudança do MiroFlow.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-30 10:22:59 -03:00
Jonas Pacheco 48eff771f6 Integrar MiroFlow ao DevelopmentModule como card visual
- Adicionar MiroFlow ao array de tools com ícone Brain
- Importar componente MiroFlowControl
- Adicionar tipo 'miroflow' ao ActiveTool union
- Renderizar MiroFlowControl quando activeTool === 'miroflow'
- MiroFlow agora visível no DevCenter como card científico

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-30 10:06:05 -03:00
Jonas Pacheco 43730e145d feat: add RunExecutor agent for agent execution via Ollama
- New RunExecutor processes 'run-executor' subtasks
- Executes agent specs via Ollama (deepseek-r1:14b)
- Saves results as artifacts in Blackboard
- Integrated into Blackboard agents registry
- Updated /api/agent-defs/:id/run endpoint to use run-executor

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-30 09:23:02 -03:00
Jonas Pacheco 83b2c89a1f chore: add untracked files — planning, openclaw module, docs, assets and data files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 09:09:38 -03:00
Jonas Pacheco 6168cd29c6 revert: remove MiroFlow from navbar 2026-03-27 17:39:11 -03:00
Jonas Pacheco 13a83840ce feat: add MiroFlow to navbar next to Insights 2026-03-27 17:33:32 -03:00
Jonas Pacheco 31914956ef fix(assemble): check task status immediately on mount to handle fast completions
When using Groq (very low latency), tasks complete before the 3s polling
interval fires. Now checkAll() runs immediately on effect mount.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 17:12:25 -03:00
Jonas Pacheco 3ca659ca0c docs(dev-center): add DEV_CENTER.md covering full agent factory pipeline
Documents all 4 tabs (Design/Assemble/Deploy/Galeria), API endpoints,
DB schema, and Blackboard integration. Fase 6 complete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 17:00:56 -03:00
Jonas Pacheco 1f9ef75bc5 feat(orchestrate): add stats panel and Execute button to Deploy tab
Orchestrate Center now shows 3 stat cards (total/ready/deployed),
timestamps on each agent row, and an Execute button for deployed agents.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 16:59:03 -03:00
Jonas Pacheco b0aca073ef feat(assemble): add task progress panel to Assemble Line
Each agent row in the Assemble Line now has an expandable panel showing
live Blackboard subtask progress (status icons, agent roles) when a task
is running. statusColor/statusLabel moved to module scope.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 16:56:29 -03:00
Jonas Pacheco e545df579b feat(galeria): add spec detail dialog to Agent Gallery cards
Cards now have an Info button that opens a dialog showing the agent's
spec content, mode, creation date, and quick Execute/Fork actions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 16:47:29 -03:00
Jonas Pacheco 67aefa28c4 fix(build): adicionar arcadia_suite_icon.png para build de produção
O build falhava com ENOENT pois attached_assets/ estava no .gitignore
mas o Cockpit.tsx importa o ícone. Adicionado PNG placeholder mínimo
ao repo para o build do Coolify funcionar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 16:20:02 -03:00
Jonas Pacheco 0a357a4617 fix(build): corrigir erros de importação no build de produção
- PatternDetector e SkillEmergence: corrigir alias @/db → caminho relativo correto (../../../db)
- PatternDetector e SkillEmergence: corrigir @/shared/schema → ../../../shared/schema
- server/openclaw: substituir arcadiaSkills (inexistente) por skills do schema
- SkillEmergence: substituir axios (não instalado) por fetch nativo (Node 20)
- server/skills/routes.ts: adicionar export registerSkillRoutes() esperado por routes.ts

O build estava quebrado desde a Fase 4 (OpenClaw). Esses erros impediam
o Coolify de gerar o container com o Design Studio na sidebar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 16:18:52 -03:00
Jonas Pacheco e4bc9fa24b chore: atualiza CLAUDE.md com fluxo CI/CD via Gitea
Deploy agora via `git push gitea Servidor:main` → Coolify monitora branch main no Gitea interno.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 15:25:46 -03:00
Jonas Pacheco 3286ca2fb4 feat(dev): adiciona Design Studio na sidebar de /development
- Novo item "Design Studio" abaixo de Automation Center (ícone PenTool, cor roxa)
- Renderiza DevCenter.tsx com abas Design/Assemble/Deploy/Galeria
- DESIGN_STUDIO.md documenta estado atual e pendências para próximo agente

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:53:44 -03:00
Jonas Pacheco f3322ab075 Merge origin/main into Servidor
# Conflicts:
#	Dockerfile
#	client/src/pages/DevCenter.tsx
#	client/src/pages/DevelopmentModule.tsx
#	server/routes.ts
2026-03-27 14:34:58 -03:00
Jonas Pacheco ee74d014ee feat(06): Dev Center — Fábrica de Agentes (Design → Assemble → Deploy + Galeria)
- Tabela arcadia_agent_defs (schema + migration)
- API CRUD /api/agent-defs com endpoints assemble/deploy/redraft/run/fork
- 4 novos tabs no DevCenter: Design (3 modos editor), Montar (polling Blackboard), Deploy (OrchestrateCenter), Galeria (grid + run/fork)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:30:07 -03:00
Jonas Pacheco b55295f9dd fix(docker): forçar NODE_ENV=development no npm install do builder stage
Coolify injeta ARG NODE_ENV=production no builder stage, fazendo npm
ignorar devDependencies (incluindo tsx, necessário para npm run build).
Forçar NODE_ENV=development garante que devDeps sejam instaladas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 10:27:07 -03:00
engenharia-creator 5aa401683c
Merge pull request #10 from jonaspachecoometas/Servidor
Servidor
2026-03-27 10:16:37 -03:00