Interfaz TUI Interactiva
gz-ia incorpora una interfaz de usuario en terminal (TUI) moderna, visual y accesible, construida con las librerías líderes del ecosistema Go: Bubble Tea, Lipgloss y Huh ([internal/clients/tui](file:///home/gountzjs/eworkspace/projects/gountz-harness/internal/clients/tui)).
Cómo Iniciar la TUI
Puedes acceder a la interfaz interactiva simplemente ejecutando:
gz-ia
# o equivalentemente:
gz-ia startAnatomía de la Pantalla Principal
Al abrir gz-ia, la TUI presenta dos secciones principales:
┌─────────────────────────┐ gz-ia — Universal AI Terminal Harness
│ ____ │ -------------------------------------
│ / ___| ____ │ OS: Linux (x86_64)
│ | | _ |_ / │ Kernel: 6.8.0-generic
│ | |_| | / / │ Terminal: xterm-256color
│ \____|/___| │ Go: go1.23.1
│ │ Harness: v0.0.1 (commit: a1b2c3d)
└─────────────────────────┘ -------------------------------------
? Selecciona una acción:
> [1] Iniciar nuevo chat con agente
[2] Sesiones activas e historial
[3] Actualizar gz-ia (update)
[4] Cerrar / Salir- Banner Fastfetch de Telemetría: Muestra en tiempo real las especificaciones del sistema operativo, versión del kernel, tipo de terminal, versión de Go y release de
gz-ia. - Menú de Selección Rápida: Navegación fluida por teclado para gestionar el ciclo de vida completo de tus agentes.
Flujos Interactivos
1. Iniciar Nuevo Chat con un Agente
El asistente de lanzamiento opera en dos pasos guiados con validación activa:
- Selección de Motor de IA:
- Evalúa en vivo la presencia de los binarios en tu sistema.
- Marca cada agente con
[✓](listo para usar) o[✗](no instalado). - Preselecciona automáticamente el primer agente disponible.
- Si seleccionas un agente que no está en tu
$PATH, la TUI previene el fallo y despliega de inmediato el comando de instalación sugerido (InstallHint).
- Selección del Nivel de Permisos:
- Permite escoger entre
supervised(confirmación paso a paso),autonomous(auto-aprobación en worktree aislado) oreadonly(planificación y auditoría). - Cada pantalla incluye la opción explícita
[←] Volver al menú principalpara evitar trampas de navegación.
- Permite escoger entre
2. Exploración de Sesiones e Historial
Permite gestionar los registros locales de .harness/sessions/:
- Ver Detalles: Muestra el ID de sesión, estado (
RUNNING,COMPLETED,FAILED,KILLED), rama de git asociada, ruta del worktree y métricas de ejecución. - Reanudar Sesión: Reconecta la terminal con el agente original usando
--continueo--resumeen su worktree correspondiente. - Detener Proceso (
kill): Envía señales controladas (SIGTERMseguido deSIGKILLsi es necesario) para finalizar agentes huérfanos o colgados. - Eliminar Registro (
delete): Limpia la metadata de la sesión y destruye el worktree y la rama de Git asociada de forma segura.
3. Actualizador Integrado
Permite comprobar la existencia de nuevas versiones publicadas en Nexus o Forgejo:
- Consulta los endpoints en segundo plano sin congelar la terminal.
- Si hay una actualización disponible, muestra los detalles y solicita confirmación con un cuadro de diálogo
huh.NewConfirm(). - Si el binario ya está al día, informa amigablemente con un panel de estilo Lipgloss.
Atajos de Teclado y Accesibilidad
| Tecla / Combinación | Acción |
|---|---|
↑ / k | Mover la selección hacia arriba |
↓ / j | Mover la selección hacia abajo |
Enter | Confirmar y ejecutar la opción seleccionada |
Esc / q | Volver al menú anterior o cancelar la operación |
Ctrl+C | Salir limpiamente de la TUI |
Degradación Elegante UTF-8
La TUI está diseñada para funcionar a la perfección tanto en terminales con fuentes completas Nerd Font como en emuladores estándar con soporte UTF-8 básico.
Filosofía CLI-First: Todo lo de la TUI está en la CLI
Recuerda que la TUI es únicamente una interfaz visual. Absolutamente todas las acciones realizables en la TUI cuentan con su equivalente exacto en la línea de comandos:
- Iniciar chat $\rightarrow$
gz-ia chat -p <driver> -m <perm> - Listar sesiones $\rightarrow$
gz-ia session list - Reanudar sesión $\rightarrow$
gz-ia session resume <id> - Matar proceso $\rightarrow$
gz-ia session kill <id> - Actualizar binario $\rightarrow$
gz-ia update
