Kilo Orchestrator
by PauloDeTasso
README.md
# Kilo Orchestrator
**Orquestrador local de agentes Kilo Code baseado em MCP para Windows 11.**
O **Kilo Orchestrator** é um sistema local desenvolvido para coordenar múltiplos agentes **Kilo Code** trabalhando em diferentes ambientes de desenvolvimento, inicialmente **VS Code** e **Android Studio**.
O sistema funciona como um núcleo central de comunicação, gerenciamento de tarefas, distribuição de trabalho, acompanhamento de execução, aprovação humana e verificação dos resultados.
---
## 🎯 Objetivo
O objetivo principal é permitir que diferentes agentes Kilo Code trabalhem de forma coordenada em um mesmo projeto.
Exemplo:
```text
┌──────────────────────┐
│ USUÁRIO │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ KILO HUB │
│ │
│ Orquestração │
│ Tarefas │
│ Agentes │
│ Mensagens │
│ Aprovações │
│ Verificação │
│ Auditoria │
└──────────┬───────────┘
│
MCP Streamable HTTP
│
┌────┴─────┐
▼ ▼
┌──────────┐ ┌─────────────────┐
│ VS Code │ │ Android Studio │
│ Kilo Code│ │ Kilo Code │
└──────────┘ └─────────────────┘
```
---
## 🧠 Conceito
O Kilo Orchestrator **não substitui o Kilo Code**.
Ele funciona como uma camada de coordenação entre os agentes.
Cada agente continua trabalhando dentro da sua própria IDE e projeto.
O Kilo Hub controla:
* agentes;
* tarefas;
* mensagens;
* estados;
* dependências;
* permissões;
* aprovações;
* execução;
* verificação;
* eventos;
* auditoria.
---
# 🏗️ Arquitetura
A arquitetura utiliza princípios de **Clean Architecture** e **Arquitetura Hexagonal**, mantendo o núcleo do sistema independente de infraestrutura específica.
```text
USUÁRIO
│
▼
┌───────────────┐
│ KILO HUB │
└───────┬───────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
Tarefas Agentes Mensagens
│ │ │
└─────────────────┼─────────────────┘
│
▼
MCP Streamable HTTP
┌────┴────┐
│ │
▼ ▼
VS Code Android Studio
Kilo Kilo
```
---
# 🛠️ Tecnologias
| Camada | Tecnologia |
| --------------------- | ----------------------------------------------------- |
| Sistema operacional | Windows 11 |
| Runtime | Node.js 24 LTS |
| Linguagem | TypeScript |
| Protocolo dos agentes | MCP |
| Transporte MCP | Streamable HTTP |
| HTTP/API | Express |
| Validação | Zod |
| Banco de dados | SQLite |
| Driver SQLite | better-sqlite3 |
| Eventos da interface | WebSocket |
| Dashboard | HTML + CSS + TypeScript |
| Testes unitários | Vitest |
| Testes HTTP | Supertest |
| Testes E2E | Playwright |
| Logging | Pino |
| Identificadores | UUID |
| IA local opcional | Ollama / LM Studio |
| Bridge VS Code | Somente se necessário |
| Bridge Android Studio | Kotlin + IntelliJ Platform SDK, somente se necessário |
A arquitetura final deliberadamente não utiliza Java/Spring como núcleo. Java/Kotlin permanece como opção para integração específica com Android Studio caso um bridge seja realmente necessário.
---
# 📁 Estrutura do projeto
```text
kilo-orchestrator/
│
├── apps/
│ └── kilo-hub/
│ ├── src/
│ │ ├── bootstrap/
│ │ ├── domain/
│ │ ├── application/
│ │ ├── infrastructure/
│ │ ├── interfaces/
│ │ ├── mcp/
│ │ ├── dashboard/
│ │ └── config/
│ │
│ ├── tests/
│ ├── package.json
│ └── tsconfig.json
│
├── bridges/
│ ├── vscode/
│ └── android-studio/
│
├── packages/
│ ├── protocol/
│ ├── schemas/
│ └── shared/
│
├── docs/
│ ├── ARCHITECTURE.md
│ ├── PROTOCOL.md
│ ├── SECURITY.md
│ ├── MCP.md
│ ├── WINDOWS.md
│ └── ADR/
│
├── scripts/
│ ├── check-environment.ps1
│ ├── start.ps1
│ ├── stop.ps1
│ └── status.ps1
│
├── .env.example
├── .gitignore
├── README.md
└── package.json
```
O monorepo permite compartilhar contratos entre o Hub, protocolo, schemas e integrações. Os contratos críticos serão versionados em JSON Schema.
---
# 🔌 MCP
O **Model Context Protocol (MCP)** é a principal interface de integração do sistema.
Transporte principal:
```text
MCP Streamable HTTP
```
Endpoint padrão:
```text
http://127.0.0.1:8787/mcp
```
O sistema será inicialmente executado apenas localmente no Windows.
---
# 🔐 Segurança
A segurança será considerada desde o início do desenvolvimento.
Principais mecanismos:
* execução somente em localhost;
* autenticação;
* token de acesso;
* validação de `Origin`;
* proteção contra DNS rebinding;
* controle de workspace;
* proteção contra path traversal;
* limite de payload;
* limite de tamanho de mensagens;
* limite de arquivos por tarefa;
* timeout de execução;
* limite de tentativas;
* controle de concorrência;
* Policy Engine;
* aprovação humana;
* auditoria;
* controle de comandos.
O acesso fora da raiz autorizada do workspace deve ser rejeitado.
---
# 🛡️ Controle de comandos
Agentes não poderão enviar comandos arbitrários como uma simples string.
Exemplo de estrutura permitida:
```json
{
"executable": "git",
"args": ["status"],
"cwd": "C:/Projects/backend"
}
```
O Policy Engine deverá verificar:
```text
executável
argumentos
diretório de trabalho
risco
necessidade de aprovação
```
Operações perigosas exigirão aprovação humana.
Exemplos:
```text
git reset --hard
git push --force
git clean -fd
exclusão de arquivos
alterações destrutivas
alterações de segurança
```
---
# 🤖 Agentes
Os agentes inicialmente previstos são:
```text
KILO_VSCODE
KILO_ANDROID_STUDIO
```
Fluxo:
```text
VS Code
│
▼
Kilo Hub
│
▼
Android Studio
```
E também:
```text
Android Studio
│
▼
Kilo Hub
│
▼
VS Code
```
O objetivo do MVP-2 é adicionar o agente do Android Studio sem modificar o núcleo do Hub.
---
# 📋 Tarefas
O Kilo Hub será responsável pelo gerenciamento das tarefas.
Principais operações:
```text
criar tarefa
atribuir tarefa
iniciar tarefa
atualizar tarefa
cancelar tarefa
repetir tarefa
verificar tarefa
finalizar tarefa
```
Estados serão controlados explicitamente por uma máquina de estados.
---
# 🔗 Task Graph
As tarefas poderão possuir dependências.
Exemplo:
```text
Tarefa A
│
▼
Tarefa B
│
├──────────► Tarefa C
│
▼
Tarefa D
```
O sistema deverá controlar:
* dependências;
* DAG;
* detecção de ciclos;
* dispatcher;
* retry;
* timeout;
* recuperação.
---
# 👤 Aprovação humana
O sistema será **human-in-the-loop**.
Quando uma operação exigir aprovação:
```text
Agente
│
▼
Kilo Hub
│
▼
Policy Engine
│
▼
Aprovação necessária
│
▼
USUÁRIO
│
├── Aprovar
├── Editar
└── Rejeitar
```
A aprovação será registrada no histórico de auditoria.
---
# 🧪 Verificação
O sistema não deverá considerar uma tarefa concluída apenas porque o agente informou que terminou.
A verificação poderá utilizar:
```text
build
test
lint
diff
contract
```
Fluxo:
```text
Agente
│
▼
Resultado
│
▼
VerificationService
│
├── Build
├── Testes
├── Lint
├── Diff
└── Contratos
│
▼
Resultado da verificação
```
O Verification Engine faz parte da evolução planejada do MVP-5.
---
# 🧠 IA local
A IA local é opcional.
O núcleo não ficará diretamente dependente de um modelo específico.
Arquitetura:
```text
PlannerProvider
│
├── HumanPlanner
├── OllamaPlanner
└── LMStudioPlanner
```
Modo padrão:
```text
HYBRID
```
O sistema poderá utilizar modelos locais para:
* planejamento;
* decomposição de tarefas;
* diagnóstico;
* replanejamento;
* análise de resultados;
* julgamento auxiliar.
O modelo de IA não terá autoridade para ignorar o Policy Engine, a aprovação humana ou a Verification Engine.
---
# 💾 Persistência
O MVP utiliza:
```text
SQLite
```
O banco armazenará informações como:
```text
agents
projects
tasks
messages
task_events
approvals
audit_events
```
O banco local deverá ficar fora do repositório Git.
Local padrão:
```text
%LOCALAPPDATA%\KiloOrchestrator\data\kilo-hub.sqlite
```
---
# 📡 API REST
Endpoints planejados:
```http
GET /api/v1/health
GET /api/v1/agents
GET /api/v1/agents/:id
GET /api/v1/projects
POST /api/v1/projects
GET /api/v1/tasks
POST /api/v1/tasks
GET /api/v1/tasks/:id
POST /api/v1/tasks/:id/cancel
POST /api/v1/tasks/:id/retry
GET /api/v1/tasks/:id/events
GET /api/v1/approvals
POST /api/v1/approvals/:id/approve
POST /api/v1/approvals/:id/reject
POST /api/v1/approvals/:id/edit-approve
```
---
# 🔄 WebSocket
Endpoint:
```text
/ws
```
Eventos previstos:
```text
agent.connected
agent.disconnected
agent.updated
task.created
task.updated
task.progress
task.completed
task.failed
approval.created
approval.updated
message.created
message.delivered
message.acked
verification.started
verification.completed
```
---
# 📊 Observabilidade
No MVP:
* logs estruturados;
* histórico de tarefas;
* status dos agentes;
* linha do tempo de eventos;
* métricas básicas.
No futuro:
```text
OpenTelemetry
Prometheus
```
Não será adicionada infraestrutura externa de observabilidade no MVP.
---
# 🪵 Auditoria
O sistema deverá registrar:
```text
quem
o quê
quando
tarefa
agente
decisão
estado anterior
estado posterior
resultado
```
Especialmente:
```text
aprovações
rejeições
execução de comandos
alterações de workspace
conexões de agentes
autenticação
negações de política
```
---
# 🔢 Protocolo
O protocolo interno atual é:
```text
KO/2
```
Regras:
```text
major = alteração incompatível
minor = extensão compatível
```
Os agentes deverão declarar:
```text
protocolVersion
```
O Hub deverá rejeitar versões incompatíveis que não sejam suportadas.
---
# ⚙️ Configuração
Exemplo:
```text
KILO_HUB_PORT
KILO_HUB_TOKEN
KILO_HUB_DB_PATH
KILO_PLANNER_MODE
KILO_PLANNER_PROVIDER
OLLAMA_BASE_URL
LMSTUDIO_BASE_URL
```
Segredos nunca deverão:
```text
ser enviados ao Git
ser registrados em logs
ser enviados aos agentes
ser exibidos no Dashboard
```
---
# 🪟 Windows 11
O projeto foi projetado inicialmente para:
```text
Windows 11
```
Scripts previstos:
```text
scripts/
├── check-environment.ps1
├── start.ps1
├── stop.ps1
└── status.ps1
```
Inicialmente:
```powershell
npm run start
```
Posteriormente:
```text
Windows Task Scheduler
```
para inicialização automática.
---
# 🚀 Desenvolvimento
Instalar dependências:
```powershell
npm install
```
Executar em desenvolvimento:
```powershell
npm run dev
```
Compilar:
```powershell
npm run build
```
Executar testes:
```powershell
npm test
```
Executar testes E2E:
```powershell
npm run test:e2e
```
Executar produção:
```powershell
npm run start
```
Verificar ambiente:
```powershell
.\scripts\check-environment.ps1
```
Os comandos de desenvolvimento definidos na arquitetura são `npm install`, `npm run dev`, `npm run build`, `npm test`, `npm run test:e2e` e `npm run start`.
---
# 🗺️ Roadmap
## MVP-0 — Prova do MCP
```text
Node.js
↓
MCP Server
↓
Kilo VS Code
```
Implementar:
* health;
* uma ferramenta MCP;
* um resource;
* autenticação;
* logs.
Objetivo:
```text
Kilo consegue chamar a ferramenta
Kilo Hub responde
```
---
## MVP-1 — Kilo Hub
Implementar:
* Node.js;
* TypeScript;
* MCP Streamable HTTP;
* SQLite;
* tarefas;
* agentes;
* mensagens;
* Dashboard;
* autenticação.
Primeiro agente:
```text
Kilo VS Code
```
---
## MVP-2 — Dois agentes
Adicionar:
```text
Kilo Android Studio
```
Objetivo:
```text
VS Code Kilo
↓
Kilo Hub
↓
Android Studio Kilo
```
E também o fluxo inverso.
---
## MVP-3 — Controle humano
Adicionar:
* ApprovalService;
* PolicyEngine;
* AuditLog;
* aprovação;
* edição;
* rejeição.
---
## MVP-4 — Task Graph
Adicionar:
* dependências;
* DAG;
* detecção de ciclos;
* dispatcher;
* retry;
* timeout;
* recovery.
---
## MVP-5 — Verification
Adicionar:
* build;
* testes;
* lint;
* diff;
* contratos.
---
## MVP-6 — IA local
Adicionar:
* PlannerProvider;
* OllamaPlanner;
* LMStudioPlanner;
* JudgeProvider;
* Replanning.
---
## MVP-7 — IDE Bridges
Somente criar bridges caso a integração MCP direta não seja suficiente.
```text
VS Code Bridge
Android Studio Bridge
```
O Bridge não substitui o MCP.
---
## MVP-8 — Produto para Windows
Adicionar:
* instalador;
* atalho na área de trabalho;
* inicialização automática;
* Task Scheduler;
* backup;
* health check.
A ordem completa de implementação foi definida de forma incremental, começando pelo MCP e chegando posteriormente ao empacotamento para Windows.
---
# 🚫 O que NÃO faz parte do MVP
Não utilizar inicialmente:
```text
Kafka
RabbitMQ
Redis
PostgreSQL
Kubernetes
Docker obrigatório
React obrigatório
NestJS
microservices
cloud deployment
agentes remotos
banco distribuído
```
Também não criar bridges se a integração MCP direta resolver o problema.
---
# 🏁 Primeiro objetivo real
O primeiro objetivo do projeto é:
```text
Kilo Code VS Code
↓
MCP Streamable HTTP
↓
Kilo Hub
↓
SQLite
↓
Dashboard
```
E conseguir:
```text
enviar mensagem
receber mensagem
criar tarefa
atualizar tarefa
visualizar status
```
Depois disso, o segundo objetivo será adicionar o Kilo Code do Android Studio sem alterar o núcleo do sistema.
---
# 📌 Status do projeto
```text
Projeto: Kilo Orchestrator
Versão: 1.0
Protocolo: KO/2
Plataforma: Windows 11
Arquitetura: Clean / Hexagonal
Runtime: Node.js 24 LTS
Linguagem: TypeScript
Banco: SQLite
Integração: MCP
Status: Em desenvolvimento
```
---
# 📄 Licença
Este projeto é distribuído sob a licença:
```text
MIT License
```
---
## 👨💻 Projeto
Desenvolvido para uso local, com foco em:
```text
automação
orquestração de agentes
desenvolvimento de software
integração entre IDEs
IA local
segurança
verificação
produtividade
```
**Kilo Orchestrator — vários agentes, um núcleo de coordenação.**
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing