Frederico Castro 93d9027e2c Continuação de conversa no terminal, histórico de agendamentos, webhooks e melhorias gerais
- Terminal com input de chat: após execução, permite continuar conversa com o agente
  via --resume do CLI, mantendo contexto da sessão (sessionId persistido)
- Nova rota POST /api/agents/:id/continue para retomar sessões
- Executor com função resume() para spawnar claude com --resume <sessionId>
- Histórico de agendamentos agora busca do executionsStore (persistente) com dados
  completos: agente, tarefa, status, duração, custo e link para detalhes no modal
- Execuções de agendamento tagueadas com source:'schedule' e scheduleId
- Correção da expressão cron duplicada na UI de agendamentos
- cronToHuman trata expressões com minuto específico (ex: 37 3 * * * → Todo dia às 03:37)
- Botão "Copiar cURL" nos cards de webhook com payload de exemplo contextual
- Webhooks component (webhooks.js) adicionado ao repositório
2026-02-26 04:01:12 -03:00

Agents Orchestrator

Painel administrativo web para orquestração de agentes Claude Code. Crie, configure e execute múltiplos agentes com diferentes personalidades, modelos e diretórios de trabalho — tudo a partir de uma interface visual.

Funcionalidades

  • Gerenciamento de agentes — Crie agentes com nome, system prompt, modelo (Sonnet/Opus/Haiku), diretório de trabalho e tags. Ative, desative, edite ou exclua a qualquer momento.
  • Execução de tarefas — Execute tarefas sob demanda em qualquer agente ativo. Templates rápidos incluídos (detecção de bugs, revisão OWASP, refatoração, testes, documentação, performance).
  • Terminal em tempo real — Acompanhe a saída dos agentes via WebSocket com streaming chunk-a-chunk. Indicador de status de conexão e filtro por execução.
  • Agendamento cron — Agende tarefas recorrentes com expressões cron. Presets incluídos (horário, diário, semanal, mensal).
  • Pipelines — Encadeie múltiplos agentes em fluxos sequenciais. A saída de cada passo alimenta o próximo via template {{input}}. Ideal para fluxos como "analisar → corrigir → testar".
  • Dashboard — Visão geral com métricas (agentes, execuções ativas, agendamentos), atividade recente e status do sistema.
  • Exportação — Exporte a configuração completa de qualquer agente em JSON.

Pré-requisitos

  • Node.js 18+
  • Claude Code CLI instalado e autenticado (claude disponível no PATH)

Instalação

git clone <repo-url>
cd agents-orchestrator
npm install

Uso

# Produção
npm start

# Desenvolvimento (hot reload)
npm run dev

Acesse http://localhost:3000 no navegador. A porta pode ser alterada via variável de ambiente PORT.

Como funciona

Criando um agente

  1. Clique em Novo Agente no header ou na seção Agentes
  2. Configure nome, system prompt, modelo e diretório de trabalho
  3. Salve — o agente aparecerá como card na listagem

Executando uma tarefa

  1. No card do agente, clique em Executar
  2. Descreva a tarefa ou use um template rápido
  3. Opcionalmente adicione instruções extras
  4. A execução inicia e o terminal abre automaticamente com streaming da saída

Criando um pipeline

  1. Vá em PipelinesNovo Pipeline
  2. Adicione pelo menos 2 passos, selecionando um agente para cada
  3. Opcionalmente defina um template de input usando {{input}} para referenciar a saída do passo anterior
  4. Execute o pipeline fornecendo o input inicial

Agendando uma tarefa

  1. Vá em AgendamentosNovo Agendamento
  2. Selecione o agente, descreva a tarefa e defina a expressão cron
  3. A tarefa será executada automaticamente nos horários configurados

Arquitetura

server.js                     Express + WebSocket na mesma porta
src/
  routes/api.js               API REST (/api/*)
  agents/
    manager.js                CRUD + orquestração de agentes
    executor.js               Spawna o CLI claude como child_process
    scheduler.js              Agendamento cron (in-memory)
    pipeline.js               Execução sequencial de steps
  store/db.js                 Persistência em JSON (data/*.json)
public/
  index.html                  SPA single-page
  css/styles.css              Estilos (Inter, JetBrains Mono, Lucide)
  js/
    app.js                    Controlador principal + WebSocket client
    api.js                    Client HTTP para a API
    components/               UI por seção (dashboard, agents, tasks, etc.)
data/
  agents.json                 Agentes cadastrados
  tasks.json                  Templates de tarefas
  pipelines.json              Pipelines configurados

O executor invoca o binário claude com --output-format stream-json, parseia o stdout linha a linha e transmite os chunks via WebSocket para o frontend em tempo real.

API REST

Método Endpoint Descrição
GET /api/agents Listar agentes
POST /api/agents Criar agente
GET /api/agents/:id Obter agente
PUT /api/agents/:id Atualizar agente
DELETE /api/agents/:id Excluir agente
POST /api/agents/:id/execute Executar tarefa no agente
POST /api/agents/:id/cancel/:executionId Cancelar execução
GET /api/agents/:id/export Exportar agente (JSON)
GET /api/tasks Listar tarefas
POST /api/tasks Criar tarefa
PUT /api/tasks/:id Atualizar tarefa
DELETE /api/tasks/:id Excluir tarefa
GET /api/schedules Listar agendamentos
POST /api/schedules Criar agendamento
DELETE /api/schedules/:taskId Remover agendamento
GET /api/pipelines Listar pipelines
POST /api/pipelines Criar pipeline
GET /api/pipelines/:id Obter pipeline
PUT /api/pipelines/:id Atualizar pipeline
DELETE /api/pipelines/:id Excluir pipeline
POST /api/pipelines/:id/execute Executar pipeline
POST /api/pipelines/:id/cancel Cancelar pipeline
GET /api/system/status Status geral do sistema
GET /api/executions/active Execuções em andamento

Eventos WebSocket

O servidor envia eventos tipados via WebSocket que o frontend renderiza no terminal:

Evento Descrição
execution_output Chunk de texto da saída do agente
execution_complete Execução finalizada com resultado
execution_error Erro durante execução
pipeline_step_start Início de um passo do pipeline
pipeline_step_complete Passo do pipeline concluído
pipeline_complete Pipeline finalizado
pipeline_error Erro em um passo do pipeline

Stack

  • Backend: Node.js, Express, WebSocket (ws), node-cron, uuid
  • Frontend: HTML, CSS, JavaScript vanilla (sem framework, sem bundler)
  • Ícones: Lucide
  • Fontes: Inter (UI), JetBrains Mono (código/terminal)
  • Persistência: Arquivos JSON em disco

Licença

MIT

Description
No description provided
Readme 2.5 MiB
Languages
JavaScript 82.1%
CSS 9.1%
HTML 8.6%
Shell 0.2%