WebChat (UI del WebSocket del Gateway)

Estado: la UI de chat SwiftUI de macOS/iOS se comunica directamente con el WebSocket del Gateway.

Qué es

  • Una UI de chat nativa para el gateway (sin navegador embebido ni servidor estático local).
  • Usa las mismas sesiones y reglas de enrutamiento que otros canales.
  • Enrutamiento determinista: las respuestas siempre vuelven a WebChat.

Inicio rápido

  1. Inicia el gateway.
  2. Abre la UI de WebChat (app macOS/iOS) o la pestaña de chat del Control UI.
  3. Asegúrate de que la auth del gateway esté configurada (requerida por defecto, incluso en loopback).

Cómo funciona (comportamiento)

  • La UI se conecta al WebSocket del Gateway y usa chat.history, chat.send y chat.inject.
  • chat.history tiene límites de tamaño para estabilidad: el Gateway puede truncar campos de texto largos, omitir metadata pesada y reemplazar entradas sobredimensionadas con [chat.history omitted: message too large].
  • chat.inject agrega una nota del asistente directamente a la transcripción y la transmite a la UI (sin ejecución del agente).
  • Las ejecuciones abortadas pueden mantener la salida parcial del asistente visible en la UI.
  • El Gateway persiste el texto parcial del asistente abortado en el historial de transcripción cuando existe salida en buffer, y marca esas entradas con metadata de aborto.
  • El historial siempre se obtiene del gateway (sin observación de archivos locales).
  • Si el gateway es inaccesible, WebChat es de solo lectura.

Panel de herramientas de agentes en Control UI

  • El panel de herramientas de /agents del Control UI obtiene un catálogo en runtime vía tools.catalog y etiqueta cada herramienta como core o plugin:<id> (más optional para herramientas opcionales de plugin).
  • Si tools.catalog no está disponible, el panel recurre a una lista estática integrada.
  • El panel edita la configuración de perfil y sobreescrituras, pero el acceso efectivo en runtime sigue la precedencia de políticas (allow/deny, sobreescrituras por agente y por proveedor/canal).

Uso remoto

  • El modo remoto tuneliza el WebSocket del gateway sobre SSH/Tailscale.
  • No necesitas ejecutar un servidor WebChat separado.

Referencia de configuración (WebChat)

Configuración completa: Configuración

Opciones de canal:

  • No hay bloque webchat.* dedicado. WebChat usa el endpoint del gateway + los ajustes de auth indicados abajo.

Opciones globales relacionadas:

  • gateway.port, gateway.bind: host/puerto del WebSocket.
  • gateway.auth.mode, gateway.auth.token, gateway.auth.password: auth del WebSocket (token/contraseña).
  • gateway.auth.mode: "trusted-proxy": auth por reverse-proxy para clientes de navegador (consulta Auth de proxy de confianza).
  • gateway.remote.url, gateway.remote.token, gateway.remote.password: destino del gateway remoto.
  • session.*: almacenamiento de sesión y valores por defecto de clave principal.