Skip to main content
Estes comandos cobrem o ciclo de construir, testar e depurar os workflows de um projeto: autoria e validação (jelou workflow), testes locais com traces (jelou test), triagem de produção (jelou logs) e reinício de estado de usuário (jelou users).
A sincronização de workflows para arquivos locais (jelou link, pull, status, push, incoming) está documentada em Projetos e canais.

jelou workflow

jelou workflow tem 16 subcomandos no total (além dos de cima: update, set-default, delete/rm, hide, unhide, allow-user, allow-country, evaluate, skill, build, branches, canonicalize-branch, inject-ecommerce, adopt, authoring). Explore-os com jelou workflow --describe.
validate roda um pipeline canônico de várias fases (schema → autofix → normalize → ids → config → quality → whatsapp → edges → lint → finalize) e reporta { status, errorCount, warnCount } por fase. Com erros sai com código diferente de 0; --allow-warnings sai 0 se restarem apenas avisos. Flags adicionais: --fix (alias --write) canoniza o arquivo no mesmo lugar (cunha ids, normaliza tokens de branch, repara handles de edges); --quiet só imprime os arquivos com erros ou avisos; --out <path> salva o mesmo payload JSON em disco além da stdout. Com --partial <arquivo> você roda o validador completo sobre um rascunho em andamento em modo preview: devolve diagnósticos completos, mas nunca bloqueia — sempre sai com código 0, independente dos erros. Desde a v1.88, um hook de “validar ao escrever” roda esse mesmo preview automaticamente no instante em que um agente de IA escreve o JSON de um workflow, então os diagnósticos chegam imediatamente (são apenas informativos: nunca bloqueiam a escrita). Também desde a v1.88, validate passou a validar os tools/*.json também (não só os workflows/*.json) com as regras reais de push de tools, e não marca mais por erro o $output.set() dentro de um nó CODE de uma tool — essa é a forma correta de uma tool devolver um valor.

jelou test

Testa workflows localmente: envia mensagens, persiste traces e chats, e inspeciona-os.

Dashboard local de testes

Sobe uma interface web local de uma única URL (servidor Hono + UI React) para inspecionar visualmente seus testes de workflows — é a versão gráfica do que produzem jelou test send text, jelou test chats list e jelou test trace. O que mostra:
  • Targets / workflows — os workflows que você pode testar (os que têm execuções registradas, mais os do lockfile mesmo que ainda não tenham nenhuma).
  • Runs (chats de teste) — cada conversa de teste registrada, com seus turnos, a mensagem renderizada e seu estado terminal (STABLE, TIMEOUT, HARNESS_STALL, HARNESS_ERROR).
  • Trace por nó — para cada run, a execução passo a passo do workflow: cada nó com seu estado inicial e final.
Internamente serve estes endpoints somente leitura (/api/targets, /api/workflows, /api/runs, /api/runs/:id, /api/runs/:id/trace) e, se houver um perfil que possa enviar mensagens, permite iniciar chats novos a partir da UI (POST /api/chats, /api/runs/:id/messages). Com quais dados trabalha:
  • Lê os arquivos qa.db (SQLite) por target — os mesmos que criam e consultam os demais comandos jelou test. Não há um banco separado: o dashboard apenas os visualiza.
  • Os dados são isolados por repo (segmento repo-id = nome do diretório raiz do git + um hash curto) e por perfil. Por isso você deve executá-lo dentro do repo com suas execuções, ou apontar para outro com --repo <segmento>.
É apenas local (escuta no loopback); para acesso remoto use encaminhamento de portas por SSH: ssh -L 8766:localhost:8766 <host>.
Os bundles BrainOps jelou-build-workflow e jelou-test-workflow (skills) orquestram este ciclo de construir e testar workflows a partir de um agente de IA.

jelou logs — triagem de conversas de produção

Acesso somente leitura ao histórico de conversas de um bot. Permite descer de conversa → linha do tempo do chat → nó que falhou.
Todos aceitam --from/--to (ISO-8601), --cursor para paginar e --out <path> para salvar o envelope JSON. O --bot-id é o bot conectado ao canal — descubra-o com jelou channels list. O fluxo de drill-down imprime o próximo comando abaixo de cada execução FAILED.

jelou users reset

Reinicia em modo duro o estado em cache de um usuário com um bot (apaga as chaves state, skill e state_manual). Útil antes de retestar do zero ou para desbloquear um usuário preso em um loop.
É destrutivo: as conversas em andamento perdem seu contexto. --bot-id e --channel-id são mutuamente exclusivos; sob --agent/--no-input é necessário --yes.