Mapa de estados
referencia| estado | trigger | UI | badge modelo |
|---|---|---|---|
| Loading | Stream NDJSON · tokens pendientes | Avatar con pulso celeste + burbuja vacía con shimmer | cloud o local en header |
| Error | Ollama no contesta en localhost:11434 · timeout | Hairline tricolor + «El modelo local no responde» + «Eve sigue activo» + Reintentar | Header mantiene local |
| Vacío | agentAllowList vacío · rol invitado | Marca + una frase + «Pedir acceso» fantasma · sin lista fake | — |
| HITL | input.requested · locker.query | Card con tag, llamada en marino noche, Rechazar / Aprobar → línea «Aprobado · sandbox local» | Ops suele usar local · mismo Eve |
| ⌘K | Atajo ⌘K · icono de búsqueda en la cabecera de la lista | Paleta sobre la pantalla: ir a agente o grupo, personalizar, nota de voz, cerrar sesión | Muestra cloud/local como pista de cada agente |
| Grabando | Mic pulsado | Barra de voz: punto rojo que respira + timer, onda celeste, cancelar / detener | — |
| Transcribiendo | Audio detenido | Franja celeste con hairline que camina · composer bloqueado | — |
| Toast | Transcripción lista · guardado | Pill marino con punto lima sobre el composer · 2 s | — |
Eve es siempre el runtime. cloud = modelo vía API (Anthropic, OpenAI…). local = modelo on-prem (Ollama/vLLM). Ambos en el mismo deploy Eve · POST /eve/agents/<key>/eve/v1/session. El usuario ve dónde corre el cerebro, no otra infraestructura.
Móvil · siete estados
iPhone · 390pxStream NDJSON activo · el avatar pulsa y la burbuja vacía brilla en celeste mientras llegan tokens · badge local
El modelo local no responde
Ollama no contesta en localhost:11434. Nada se pierde: el hilo espera.
Modelo local caído · sin icono de alarma: hairline marino→celeste→lima, «Eve sigue activo» y reintentar sin perder el hilo
Agentes.
Sin agentes asignados
Tu rol Invitado aún no tiene roster.
RBAC · roster vacío · sin icono genérico: marca, una frase y «Pedir acceso» fantasma
Ejecutar en sandbox local
Ops quiere consultar el locker con credenciales on-prem. Los datos no salen del servidor.
locker.query({ container: "CGMU1234567" })Card con tag y punto celeste, llamada en marino noche, Rechazar fantasma / Aprobar pill · el operador solo aprueba en chat
locker.query · sandbox localAl aprobar, la card sale y queda una línea de sistema con punto lima · el hilo sigue
Transcribiendo: hairline marino que camina (sin spinner) · al terminar, toast marino «Transcripción lista» y texto editable en el composer
Grabando: punto rojo que respira junto al timer, onda celeste, cancelar fantasma y detener en marino · el composer se retira
Desktop · error con sidebar
Grok Bot · splitEl modelo local no responde
Ollama no contesta en localhost:11434. Nada se pierde: el hilo espera.
Transiciones
comportamientoCuándo aparece cada estado
- Loading → chat — al recibir primer token del stream o completar tool call · sin puntitos, sin rings
- Chat → HITL — evento
input.requestedpausa composer hastainputResponses - Chat → error — fallo de red o 5xx al crear/continuar sesión · historial local intacto
- Auth → vacío — JWT con rol sin agentes · nunca mostrar roster parcial u oculto
- Voz → texto — mic graba audio · transcripción aparece en composer editable antes de enviar (no se manda como audio)
- Desktop error — sidebar de lista permanece · preview del hilo fallido en fila activa