deile-worker
O motor próprio do DEILE rodando como pod HTTP. Tem acesso ao registry inteiro de tools, à frota de personas e ao tool-loop nativo. Roteia para o provedor LLM escolhido para a etapa.
Sete engines disponíveis, cinco etapas do pipeline, três eixos configuráveis (worker, modelo, esforço). Resume nativo por CLI. Cost ledger durável. Tudo editável ao vivo no painel TUI.
Cada etapa do pipeline é decidida por três eixos independentes. Você pode rodar a classificação em um modelo barato, a implementação no Claude Code com esforço alto, e a review com a frota OpenRouter — sem rebuild de imagem, sem deploy, via painel TUI navegável por teclado.
Cada eixo resolve por precedência: override por etapa > default global > default do código. Mude um valor no painel e ele vira efetivo no próximo tick.
A view [d] mostra cada etapa em uma linha com worker / modelo / timeout / retries
/ cost cap / esforço. Hotkeys instalam workers ausentes, escalam, fazem cleanup ou trocam de login.
Toda a frota satisfaz o mesmo protocolo de adapter — adicionar um novo worker é escrever um único arquivo Python.
Os pods da frota multi-CLI nascem em replicas:0 e são escalados sob demanda.
Você paga só pelos que despachar.
O motor próprio do DEILE rodando como pod HTTP. Tem acesso ao registry inteiro de tools, à frota de personas e ao tool-loop nativo. Roteia para o provedor LLM escolhido para a etapa.
Pod que invoca o Claude Code CLI em workdirs isolados. Cada dispatch tem cost-cap em USD; ledger JSONL persistente sobrevive a scale-to-zero. Auth via token de longa duração injetado como Secret.
opencode em workdir isolado. Foco em refactor automatizado e execução de planos multi-passo. Sessões nativas por id.
codex CLI da OpenAI. Modo Responses API (modelos gpt-5.x reasoning). Pode rodar com chave do projeto OpenAI (env) ou OAuth opt-in para consumir a assinatura ChatGPT.
qwen CLI em modo OpenAI-compatible. Aponte para Dashscope nativo, OpenRouter ou OpenAI direto — o trio base_url/key/model é injetado pela frota.
aider em modo headless. Único da frota com auto-commit do próprio CLI — sem atribuir autoria ao aider (flags --no-attribute-*). Workdir-keyed.
goose CLI (Block) com modelo OpenRouter por padrão (DeepSeek, Gemini, etc.). Named sessions determinísticas; id = task_id.
Um arquivo infra/k8s/cli_adapters/<kind>.py satisfazendo o protocol CliAdapter é tudo o que precisa. Auto-discovery registra, o painel lista, os manifests são gerados — nenhum outro arquivo é editado.
Você fala em low/medium/high/xhigh/max/ultracode/auto e o DEILE traduz para o parâmetro nativo de cada provedor. Configurável globalmente, por etapa do pipeline, ou por sessão CLI com um único comando.
| low | resposta rápida, sem deliberação extra |
| medium | default conservador para a maioria dos turnos |
| high | deliberação aprofundada — vale para arquitetura ou debugging |
| xhigh | esforço máximo na maioria dos provedores |
| max | limite explícito do provedor (quando disponível) |
| ultracode | no claude-worker -> xhigh + workflows |
| auto | deixa o provedor decidir |
| Anthropic | extended thinking · budget tokens |
| OpenAI | reasoning_effort low/medium/high |
| Gemini | thinking_config com budget de tokens |
| DeepSeek | reasoning_effort + thinking ativo |
Comportamento fail-open: se um nível não tem mapeamento direto no provedor, o turno NÃO falha — o esforço vira o mais próximo disponível, e o tracer registra a tradução aplicada.
O DEILE não te casa com um provedor. O roteador escolhe por tier (do complexo ao bulk), com fallback automático em cascata, circuit breaker por provedor, e budget guard por sessão e provedor (diário e mensal).
| tier 1 | claude-opus-4-8 |
| tier 2 | claude-sonnet-4-6 |
| tier 3 | claude-haiku-4-5 |
| tier 1 | gpt-5.5 |
| tier 2 | gpt-5.4 |
| tier 3 | gpt-5.4-mini |
| tier 4 | gpt-5.4-nano |
| tier 1 | gemini-3.1-pro · gemini-2.5-pro |
| tier 2 | gemini-3.5-flash · gemini-3-flash-preview |
| tier 3 | gemini-3.1-flash-lite · gemini-2.5-flash |
| tier 1 | deepseek-v4-pro |
| tier 3 | deepseek-v4-flash |
| tier — | uma chave → acesso a todos os modelos do catálogo |
| tier — | custo autoritativo via usage.cost na resposta |
Falhas repetidas (429/503) abrem o disjuntor do provedor e o roteador desce para o próximo tier disponível.
Per sessão e per provedor (janela diária e mensal). Persistência em SQLite com telemetria associada.
task_optimized (default), cost_optimized, round_robin, least_busy — escolha por carga ou economia.
Cada engine da frota retoma usando o mecanismo nativo do seu CLI no mesmo diretório de trabalho — não há re-execução cega do prompt original. O custo de cada sessão é capturado em um ledger JSONL persistente que sobrevive a scale-to-zero e força do DELETE de pod.
Em vez de re-gastar tokens reprocessando o histórico, cada CLI usa seu próprio comando de retomada
(flag --resume, --session, exec resume, etc.). Quando uma sessão
ultrapassa o orçamento, ela é promovida a fresh automaticamente, evitando sangria de custo.
Custo de cada dispatch é coletado em dois lugares: empurrado para o repositório central (SQLite) pelo pipeline
long-lived, e gravado em .cost-ledger.jsonl no PVC do worker como fallback. Deduplicação por task_id.
[T] lê o central primeiro, ledger depois