Commit Graph

104 Commits

Author SHA1 Message Date
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
Jonas Pacheco 3a0d25f5c3 fix: corrigir CLAUDE.md e scroll do DevelopmentModule
- CLAUDE.md: remover branch inexistente (claude/analyze-project-0mXjP),
  documentar branch Servidor, remote origin, comando de deploy real
- DevelopmentModule: adicionar h-full no flex-1 para habilitar scroll
  na view home (conteúdo estava cortado sem scrollbar)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 10:15:17 -03:00
Arcádia Dev acf375a1c3 merge: une Servidor local + origin/Servidor priorizando local
- Mantém Fase 4 Sprint 1+2 do local (OpenClaw backend + frontend)
- Incorpora do remoto: Fase 3 MiroFlow, Fase 4 melhorias, Fase 5 Automation Fabric
- Resolve conflito openclaw~origin_Servidor (mantido local)
- Histórias unidas com --allow-unrelated-histories -X ours

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:45:26 -03:00
Jonas Pacheco e0ef06cb1e fix: h-full na sidebar do DevelopmentModule para scroll funcionar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 17:49:30 -03:00
Jonas Pacheco 63780a9918 fix: adicionar overflow-y-auto na sidebar do DevelopmentModule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 17:26:31 -03:00
Jonas Pacheco a9d22ddbd0 feat: adicionar Automation Center no sidebar do /development
Novo item "Automation Center" na sidebar do DevelopmentModule,
ao lado de Skills Emergentes (OpenClaw). Renderiza AutomationCenter
inline como os outros painéis.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 17:18:49 -03:00
Jonas Pacheco 41afced0bb feat(05): Automation Fabric — 5 runtimes + AutomationCenter unificado
Backend:
- server/automation-fabric/runtimes/: WorkflowEngine, RuleEngine, AgentExecutor,
  ScheduleEngine, EventEngine — cada um delega para serviços existentes
- server/automation-fabric/service.ts: AutomationFabricService agrega Central + XOS
  virtualmente (zero migração de dados)
- server/automation-fabric/routes.ts: GET /api/automation-fabric/list,
  POST /:id/run, PATCH /:id/toggle

Frontend:
- AutomationCenter.tsx em /automations-center: lista unificada Central+XOS,
  badge de fonte (Central=azul, XOS=roxo), filtros por fonte/status/busca,
  toggle enable/disable e execução manual inline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 17:07:44 -03:00
Jonas Pacheco 9165ee4c48 feat(04-02): adicionar tab Sugestões (OpenClaw) em /skills com badge contador
- Tab "Sugestões" na view switcher da página /skills
- Renderiza OpenClawPanel com lista de skills emergentes pendentes
- Badge amarelo mostra contagem de sugestões pendentes (atualiza a cada 5min)
- Query /api/openclaw/suggestions já conectada ao PatternDetector backend

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 16:54:57 -03:00
Jonas Pacheco d4af26e59d fix(miroflow): fallback robusto para resultado do agente + modelo llama3.2:3b
- miroflow_service.py: extrai resposta de summary, final_boxed_answer,
  exceed_max_turn_summary ou último message_history do assistente
- Troca deepseek-r1:14b por llama3.2:3b nos agentes Statistician e Fiscal Auditor
- shared/schema.ts: adiciona tabelas OpenClaw (detectedPatterns, skillSuggestions)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 16:26:43 -03:00
Jonas Pacheco c73b9d6658 feat(04): OpenClaw Embutido — PatternDetector + Skills Emergentes
- PatternDetector (cron horário): analisa skill_executions, detecta padrões
  (≥3x, 30 dias, ≥80% confiança), grava em detected_patterns
- Geração de DRAFT skills via llama3.1:8b ao atingir threshold
- API routes: GET /api/openclaw/suggestions, POST accept/reject, GET /api/openclaw/patterns
- OpenClawPanel.tsx: painel de visualização com tabs Sugestões/Padrões
- Aba "Skills Emergentes" (ícone Sparkles) na sidebar do /development
- Migration SQL para detected_patterns + skill_suggestions
- fix: corrige import @/lib/db → ../../db/index em versioning.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 15:16:59 -03:00
Arcádia Dev 52311666aa feat(openclaw): Fase 4 Sprint 2 - Frontend Widgets
- useAgentEmergence.ts: hook para Socket.IO + estado de sugestões
- SkillSuggestion.tsx: modal com preview de skill (padrão, nome, descrição, automação)
- OpenClawWidget.tsx: widget flutuante no canto inferior direito
- App.tsx: integração do OpenClawWidget no layout global

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 10:42:28 -03:00
Arcádia Dev dcaa94a422 feat(openclaw): Fase 4 Sprint 1 - PatternDetector + OpenClawEngine + SkillEmergence
Fase 4: OpenClaw Embutido (Detecção de Padrões + Skills Emergentes)
Semanas 7-8 (Início 2026-03-26)

### Sprint 1: Backend Components 

Implementados 5 componentes core:

1. **PatternDetector.ts** (400+ linhas)
   - Análise de interações de usuário
   - Detecção de padrões (3+ ocorrências em 30 dias)
   - Cálculo de confiança (frequência + regularidade + recência)
   - Storage em Neo4j via database
   - Emit eventos via EventEmitter

2. **OpenClawEngine.ts** (300+ linhas)
   - Orquestração central do fluxo
   - Coordena PatternDetector + SkillEmergence
   - Sugestão inteligente de skills baseada em padrões
   - Scheduler para verificação periódica
   - Socket.IO integration para real-time

3. **SkillEmergence.ts** (250+ linhas)
   - Integração com Blackboard (codegen)
   - Geração de skills via prompt inteligente
   - Validação de código gerado
   - Storage de skills DRAFT no database
   - Approval workflow (Dev Center)

4. **routes.ts** (200+ linhas)
   - 10 endpoints REST:
     * POST /detect-patterns (trigger manual)
     * GET /patterns (listar padrões)
     * POST /confirm-skill (usuário confirma)
     * GET /suggestions (sugestões pendentes)
     * GET/POST /config (configuração)
     * POST /check-now (verificar agora)
     * POST /start-scheduler (agendado)
     * POST /stop-scheduler
     * GET /health

5. **config/arcadia.config.yaml** (400 linhas)
   - Configuração completa tenant-aware
   - Pattern detection thresholds
   - Suggestion channels + priorities
   - Skill emergence rules
   - Logging + security settings
   - Integration endpoints

### Arquivos Atualizados
- server/modules/loader.ts: Registra /api/openclaw routes

### Plano Criado
- .planning/FASE_4_OPENCLAW_PLAN.md: Plano executável completo

### Próximos Passos (Sprint 2-3)
- Frontend: OpenClawWidget + SkillSuggestion + hooks
- Database: Schema + migrations
- Testes: Unitários + E2E
- Documentação

### Arquitetura Implementada

### Status
-  Sprint 1 Backend completo
-  Sprint 2 Frontend próximo
-  Sprint 3 Config + Testes

Fase 4: OpenClaw Embutido iniciada com sucesso 🚀

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-26 10:29:08 -03:00
Jonas Pacheco 7528d4c36e feat(02-04): implementar versionamento Git-like de skills com rollback, fork e diff 2026-03-25 16:00:17 -03:00
Jonas Pacheco 9232666b8c fix: miroflow container conecta ao Ollama via ollama-net
- Remove extra_hosts (não funciona pois Ollama só escuta em 127.0.0.1)
- Adiciona rede ollama-net ao serviço miroflow
- OLLAMA_BASE_URL aponta para nome do container Ollama

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 14:34:03 -03:00
Jonas Pacheco 76adec5893 feat: MiroFlow containerizado no docker-compose
- Dockerfile.miroflow: imagem Python 3.11 com miroflow instalado via submodule
- docker-compose.prod.yml: novo serviço `miroflow` (porta 8006, rede interna)
- MIROFLOW_HOST atualizado de host fixo (10.0.7.1) para container `miroflow`
- miroflow_service.py: passa system_prompt e initial_user_message no AgentContext

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 14:22:39 -03:00
Jonas Pacheco 4ceb407505 feat(03-03): add Científico tab to BiWorkspace with MiroFlowControl
- Added Brain icon import from lucide-react
- Added MiroFlowControl component import
- Added TabsTrigger for 'cientifico' tab with Brain icon
- Added TabsContent rendering MiroFlowControl component
- All existing tabs (overview, datasources, upload, datasets, charts, backups, staging, advanced) preserved
2026-03-25 10:57:28 -03:00
Jonas Pacheco e5b915e7e8 feat(03-03): create MiroFlowControl component with agent selection and analysis interface
- Toggle for scientific mode with Brain icon
- Agent selector (Statistician, Fiscal Auditor, Researcher)
- Task textarea with dynamic placeholder per agent
- Analysis button with loading state (Loader2 animation)
- Result display with metadata (model, duration, execution_id)
- Error handling with readable messages
- Styled for dark theme matching BiWorkspace
2026-03-25 10:54:42 -03:00
Jonas Pacheco e4e809fa5b docs(03-01): atualizar SUMMARY.md com commits e desvios do plano 03-01
- Adicionar hashes de commit ao SUMMARY.md
- Documentar fallback llama3.2:3b para researcher
- Documentar conftest.py como desvio Rule 2
- Atualizar STATE.md com plano 03-01 concluido
- Atualizar ROADMAP.md progresso fase 3
2026-03-25 10:52:59 -03:00
Jonas Pacheco c14f238fe9 docs(03-01): criar SUMMARY.md do plano 03-01 2026-03-25 10:51:28 -03:00
Jonas Pacheco 76e1d34f5d fix(03-01): adicionar conftest.py para resolver imports em pytest do root
- conftest.py adiciona server/python ao sys.path
- Corrige ModuleNotFoundError ao rodar pytest da raiz do projeto
2026-03-25 10:50:54 -03:00
Jonas Pacheco 60f1c5cb1d feat(03-01): criar miroflow_service.py FastAPI porta 8006 com 3 agentes + testes pytest
- FastAPI microservico porta 8006 com agentes statistician, fiscal_auditor, researcher
- Configuracao de modelos: deepseek-r1:14b (stat/fiscal), llama3.1:8b com fallback 3b (researcher)
- OLLAMA_BASE_URL/v1 via UnifiedOpenAIClient
- test_miroflow_service.py: 6 testes cobrindo REQ-3.1 a REQ-3.4 (todos passam)
- sys.path.insert para submodule MiroFlow sem modificar o submodulo
2026-03-25 10:50:05 -03:00
Jonas Pacheco 071d74c7a3 docs(03-02): criar SUMMARY.md do plano 03-02 2026-03-25 10:45:15 -03:00
Jonas Pacheco 1a70e87cd4 feat(03-02): registrar MiroFlow routes em server/routes.ts
- Adiciona import de registerMiroFlowRoutes
- Chama registerMiroFlowRoutes(app) após registerBiEngineRoutes(app)
- POST /api/miroflow/analyze e GET /api/miroflow/health agora disponíveis

REQ-3.5, REQ-3.7 — Task 2/2 do plano 03-02
2026-03-25 10:41:19 -03:00
Jonas Pacheco d53be76474 feat(03-02): criar MiroFlow proxy TypeScript com timeout 300s e KG audit logging
- server/miroflow/engine-proxy.ts: proxy para :8006 com MIROFLOW_TIMEOUT=300_000ms
- server/miroflow/routes.ts: re-export de registerMiroFlowRoutes
- POST /api/miroflow/analyze requer autenticação (req.isAuthenticated())
- GET /api/miroflow/health sem autenticação
- registerExecutionInKG com auditHash SHA-256 via createNode
- KG failure não bloqueia resposta ao cliente

REQ-3.5, REQ-3.7 — Task 1/2 do plano 03-02
2026-03-25 10:41:12 -03:00
Jonas Pacheco 4057821404 feat(skills): Skill Marketplace (Biblioteca) — Fase 2
Servidor:
- GET /api/skills/marketplace: lista skills namespace=system/active,
  marca quais já foram importadas pelo tenant (campo imported)
- POST /api/skills/marketplace/:id/import: clona skill system→tenant
  com extends appontando para a origem

UI (Skills.tsx):
- Toggle "Minhas Skills" / "Biblioteca" no header
- Grid de cards 2 colunas com nome, slug, descrição, tags clicáveis,
  trigger type e versão
- Botão "Importar" → feedback imediato (badge "Importada" + highlight verde)
- Filtro por busca e tag na Biblioteca
- Estado vazio com instrução para admins publicarem skills system

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 09:44:49 -03:00
Jonas Pacheco 194a8dcc1b feat(skills): rota /skills + autocomplete de referências / no Monaco
- App.tsx: adiciona ProtectedRoute path="/skills"
- Skills.tsx: completion provider para referências no body editor
  - dispara ao digitar "/" em qualquer ponto do markdown
  - sugere todos os prefixos: /skill/, /skill:system/, /var/, /data/,
    /kg/, /file/, /tool/, /agent/
  - ao digitar /skill/ lista skills existentes do tenant com slug/desc
  - usa ref para evitar closure stale com skillsData
  - cleanup do provider no unmount

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 09:38:37 -03:00
Jonas Pacheco c9a0563422 feat(agentic): Fase 1-2 — Skills POO, Neo4j, UI editor e melhorias gerais
Arcádia Agentic Suite — Fase 1 (Fundação):
- shared/schema.ts: tabelas arcadia_skills + skill_executions (multi-tenant, herança, audit hash)
- docker-compose.yml: Neo4j 5 como profile 'kg' (porta 7474/7687)
- docker/litellm-config.yaml: ajustes de configuração

Arcádia Agentic Suite — Fase 2 (Skills Engine):
- client/src/pages/Skills.tsx: UI completa — lista, filtros, editor Monaco (Geral/Body/Params), executar e histórico
- client/src/App.tsx: import do componente Skills

Manus — melhorias de prompt e comportamento:
- server/manus/service.ts: system prompt com identidade Manus, regras PROATIVO, tabelas markdown
- server/manus/routes.ts: ajustes de rotas
- server/replit_integrations/chat/prompt.ts: prompt de chat aprimorado
- server/replit_integrations/chat/routes.ts: melhorias no fluxo de chat

Outros:
- Agent.tsx, ProcessCompass.tsx: melhorias de UI
- Correções menores em bi, blackboard, compass, ide, support, valuation, whatsapp

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 09:32:39 -03:00
Jonas Pacheco 3c61acf4d9 feat(xos): restaura forms de cadastro e adiciona seletor "Novo"
- XosCentral: botão "Novo" abre seletor (Contato / Negócio / Atividade)
- Restaura dialog de Novo Contato (perdido no rebuild anterior)
- Adiciona dialog de Nova Atividade (tipo, título, data, prioridade)
- Adiciona dialog de Novo Negócio (título, estágio, valor)
- Superset: logos v2 aplicadas via volume mount, retry de token, healthcheck 127.0.0.1
- xos_conversations: coluna status adicionada no banco

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 15:15:51 -03:00
Jonas Pacheco 9bfc888d28 feat(migration): suporte a upload de arquivos RAR, SQL e SQL.GZ
- Dockerfile: instala p7zip no Alpine para extração de RAR via 7z
- migration/routes.ts: detecta .rar, .sql.gz e .sql; extrai RAR com 7z,
  descomprime .gz com gunzip, analisa tabelas do dump SQL
- Migration.tsx: accept e hint atualizados para incluir RAR/SQL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:00:13 -03:00
Jonas Pacheco 66d8dfbfcc feat: add MiroFlow and OpenClaw as git submodules
- server/modules/miroflow → github.com/MiroMindAI/MiroFlow
- server/modules/openclaw → github.com/miaoxworld/OpenClawInstaller

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:57:27 -03:00
Jonas Pacheco 1c6c3865e5 feat(skills): Fase 1 — SkillEngine POO + ReferenceParser + API REST
- server/skills/engine.ts: SkillEngine com herança declarativa (extends),
  composição via dependências, execução com audit hash SHA-256 e
  persistência em skill_executions
- server/skills/reference-parser.ts: parser e resolver de referências
  /skill/, /kg/, /var/, /tool/, /data/, /agent/, /file/ com interpolação
- server/skills/routes.ts: API REST completa (CRUD + execute + histórico)
- server/routes.ts: skills registradas + /api/health global
- migrations/0003_arcadia_skills.sql: tabelas arcadia_skills e
  skill_executions aplicadas em produção
- docker-compose.prod.yml: healthcheck via wget /api/health no serviço app

Parte do planejamento Arcádia Agentic Suite — Fase 1 (Fundação).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:30:51 -03:00
Jonas Pacheco 5b35aa49a2 feat(agent): otimizações para apresentação + botão cancelar
- manus/service.ts: system prompt enxuto, sem frameworks desnecessários, data/hora real injetada
- replit_integrations/chat: modelo gpt-4o → arcadia-agent, prompt limpo sem SWOT/Canvas/PDCA
- litellm-config.yaml: fallback gpt-4o/gpt-4o-mini → arcadia-agent (evita carregar R1 14B)
- Agent.tsx: botão cancelar (X vermelho) aparece durante processamento do Manus

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 15:57:03 -03:00
Jonas Pacheco 4788aaf296 feat(agent): trocar modelo Manus para arcadia-agent (llama3.2:3b) + identidade soberana
- service.ts: model gpt-4o → arcadia-agent, max_tokens 4000 → 1500
- litellm-config.yaml: arcadia-agent → ollama/llama3.2:3b (era deepseek-r1:14b)
- System prompt: adiciona identidade Manus/Arcádia Suite, contexto soberano, comportamento de apresentação
- Ollama: KEEP_ALIVE=8h, threads=7, memory=28G para performance em apresentação

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 14:50:41 -03:00
Jonas Pacheco 4d20d36bfd feat(ai): adiciona DeepSeek R1 14B como agente principal no LiteLLM
- Adiciona deepseek-r1:14b e alias arcadia-agent no litellm-config.yaml
- arcadia-default agora aponta para R1 14B (era llama3.2:3b)
- Timeout LiteLLM aumentado de 120s para 300s
- Adiciona rede ollama-net (external) ao serviço litellm no compose
  para comunicação com container Ollama via hostname estável
- .gitignore: ignora arquivos .aider*

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 13:02:57 -03:00
Jonas Pacheco 4fd0e9d893 fix(superset): corrigir erro fetch failed no guest-token
- Adiciona AbortSignal.timeout(8s) em todas as chamadas fetch ao Superset
- Limpa cache de token automaticamente em caso de erro (clearTokenCache)
  para que próxima requisição force novo login ao invés de usar token stale
- Reduz TTL do cache de 50 para 45 min como margem de segurança
- Força iframe do SupersetDashboard a 100% width/height via classe CSS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 21:18:44 -03:00
Jonas Pacheco 4214a2561c fix(superset): corrige embedding de dashboards via guest token
- superset_config.py: adiciona FLASK_APP_MUTATOR que seta g.user a partir
  do Bearer JWT quando o usuário está como anônimo (necessário porque o
  papel Public com can_read on Dashboard faz protect() pular verificação JWT)
- superset_config.py: TALISMAN_ENABLED=False, X_FRAME_OPTIONS=ALLOWALL
  para permitir embedding cross-origin via iframe
- routes.ts: adiciona session cookie nas chamadas de busca do dashboard
  além de incluir X-CSRFToken + Cookie no guest token request
- SupersetDashboard.tsx: usa bi.onboardbi.com.br como supersetDomain,
  tela de unavailable com UI adequada (sem iframe de fallback)
- BiWorkspace.tsx: link "Abrir em Nova Aba" aponta para bi.onboardbi.com.br
- docker-compose.prod.yml: labels HTTP→HTTPS redirect para Superset

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:30:40 -03:00
Jonas Pacheco a1ba3b4b02 fix(superset): corrigir dependência fetchGuestToken → fetchTokenData no useCallback
Referência ao nome antigo causava ReferenceError no runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:09:35 -03:00
Jonas Pacheco 275b589765 fix(soe): corrigir caminhos de import do db/index nos arquivos SOE
db/index.ts está na raiz do projeto, não dentro de server/.
- server/soe/event-bus.ts: ../db → ../../db
- server/soe/handlers/*: ../../db → ../../../db
- server/soe/rule-engine/index.ts: ../../db → ../../../db

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:02:53 -03:00