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
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.
/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 comandosjelou 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.
--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.