Skip to main content
Estos comandos cubren el ciclo de construir, probar y depurar los workflows de un proyecto: autoría y validación (jelou workflow), pruebas locales con trazas (jelou test), triaje de producción (jelou logs) y reinicio de estado de usuario (jelou users).
La sincronización de workflows a archivos locales (jelou link, pull, status, push, incoming) se documenta en Proyectos y canales.

jelou workflow

jelou workflow tiene 16 subcomandos en total (además de los de arriba: update, set-default, delete/rm, hide, unhide, allow-user, allow-country, evaluate, skill, build, branches, canonicalize-branch, inject-ecommerce, adopt, authoring). Explóralos con jelou workflow --describe.
validate corre una tubería canónica de varias fases (schema → autofix → normalize → ids → config → quality → whatsapp → edges → lint → finalize) y reporta { status, errorCount, warnCount } por fase. Con errores sale con código distinto de 0; --allow-warnings sale 0 si solo quedan advertencias. Flags adicionales: --fix (alias --write) canoniza el archivo en el mismo lugar (acuña ids, normaliza tokens de branch, repara handles de edges); --quiet solo imprime los archivos con errores o advertencias; --out <path> guarda el mismo payload JSON en disco además de en stdout. Con --partial <archivo> corres el validador completo sobre un borrador en progreso en modo preview: devuelve diagnósticos completos pero nunca bloquea — siempre sale con código 0 sin importar los errores. Desde la v1.88, un hook de “validar al escribir” corre este mismo preview automáticamente en el instante en que un agente de IA escribe el JSON de un workflow, así que los diagnósticos llegan de inmediato (son solo informativos: nunca bloquean la escritura). También desde la v1.88, validate valida además los tools/*.json (no solo workflows/*.json) con las reglas reales de push de tools, y ya no marca por error $output.set() dentro de un nodo CODE de una tool — esa es la forma correcta en que una tool devuelve un valor.

jelou test

Prueba workflows localmente: envía mensajes, persiste trazas y chats, e inspecciónalos.

Dashboard local de pruebas

Levanta una interfaz web local de una sola URL (servidor Hono + UI React) para inspeccionar visualmente tus pruebas de workflows — es la versión gráfica de lo que producen jelou test send text, jelou test chats list y jelou test trace. Qué muestra:
  • Targets / workflows — los workflows que puedes probar (los que tienen corridas registradas, más los del lockfile aunque aún no tengan ninguna).
  • Runs (chats de prueba) — cada conversación de prueba registrada, con sus turnos, el mensaje renderizado y su estado terminal (STABLE, TIMEOUT, HARNESS_STALL, HARNESS_ERROR).
  • Traza por nodo — para cada run, la ejecución paso a paso del workflow: cada nodo con su estado inicial y final.
Internamente sirve estos endpoints de solo lectura (/api/targets, /api/workflows, /api/runs, /api/runs/:id, /api/runs/:id/trace) y, si hay un perfil que pueda enviar mensajes, permite iniciar chats nuevos desde la UI (POST /api/chats, /api/runs/:id/messages). Con qué datos trabaja:
  • Lee los archivos qa.db (SQLite) por target — los mismos que crean y consultan los demás comandos jelou test. No hay una base aparte: el dashboard solo los visualiza.
  • Los datos se aíslan por repo (segmento repo-id = nombre del directorio raíz de git + un hash corto) y por perfil. Por eso debes ejecutarlo dentro del repo con tus corridas, o apuntar a otro con --repo <segmento>.
Es solo local (escucha en loopback); para acceso remoto usa reenvío de puertos por SSH: ssh -L 8766:localhost:8766 <host>.
Los bundles BrainOps jelou-build-workflow y jelou-test-workflow (skills) orquestan este ciclo de construir y probar workflows desde un agente de IA.

jelou logs — triaje de conversaciones de producción

Acceso solo lectura al historial de conversaciones de un bot. Permite bajar de conversación → línea de tiempo del chat → nodo que falló.
Todos aceptan --from/--to (ISO-8601), --cursor para paginar y --out <path> para guardar el envelope JSON. El --bot-id es el bot conectado al canal — descúbrelo con jelou channels list. El flujo de drill-down imprime el siguiente comando bajo cada ejecución FAILED.

jelou users reset

Reinicia en duro el estado cacheado de un usuario con un bot (borra las claves state, skill y state_manual). Útil antes de re-probar desde cero o para desbloquear a un usuario atascado en un bucle.
Es destructivo: las conversaciones en curso pierden su contexto. --bot-id y --channel-id son mutuamente excluyentes; bajo --agent/--no-input se requiere --yes.