Modo Elevado
Modo de ejecución elevado y directivas /elevated
Qué hace
- ''/elevated on'' ejecuta en el host del gateway y mantiene aprobaciones de exec (igual que ''/elevated ask'').
- ''/elevated full'' ejecuta en el host del gateway ''y'' auto-aprueba exec (omite aprobaciones de exec).
- ''/elevated ask'' ejecuta en el host del gateway pero mantiene aprobaciones de exec (igual que ''/elevated on'').
- ''on''/''ask'' ''no'' fuerzan ''exec.security=full''; la política de seguridad/ask configurada todavía aplica.
- Solo cambia el comportamiento cuando el agente está en sandbox (de lo contrario exec ya corre en el host).
- Formas de directiva: ''/elevated on|off|ask|full'', ''/elev on|off|ask|full''.
- Solo ''on|off|ask|full'' son aceptados; cualquier otra cosa devuelve una pista y no cambia el estado.
Qué controla (y qué no)
- ''Puertas de disponibilidad'': ''tools.elevated'' es la línea base global. ''agents.list[].tools.elevated'' puede restringir aún más elevated por agente (ambos deben permitir).
- ''Estado por sesión'': ''/elevated on|off|ask|full'' establece el nivel elevated para la clave de sesión actual.
- ''Directiva inline'': ''/elevated on|ask|full'' dentro de un mensaje aplica solo a ese mensaje.
- Grupos: En chats de grupo, las directivas elevated solo se respetan cuando el agente es mencionado. Los mensajes de solo comando que omiten requisitos de mención se tratan como mencionados.
- ''Ejecución en host'': elevated fuerza ''exec'' al host del gateway; ''full'' también establece ''security=full''.
- ''Aprobaciones'': ''full'' omite aprobaciones de exec; ''on''/''ask'' las respetan cuando reglas de allowlist/ask lo requieren.
- Agentes sin sandbox: no-op para ubicación; solo afecta gating, logging, y estado.
- ''Política de herramienta todavía aplica'': si ''exec'' es denegado por política de herramienta, elevated no puede usarse.
- ''Separado de ''/exec'''': ''/exec'' ajusta predeterminados por sesión para remitentes autorizados y no requiere elevated.
Orden de resolución
1. Directiva inline en el mensaje (aplica solo a ese mensaje).
2. Anulación de sesión (establecida enviando un mensaje de solo directiva).
3. Predeterminado global (''agents.defaults.elevatedDefault'' en config).
Establecer un predeterminado de sesión
- Envía un mensaje que es ''solo'' la directiva (espacios permitidos), ej. ''/elevated full''.
- Se envía respuesta de confirmación (''Modo elevado establecido a full...'' / ''Modo elevado deshabilitado.'').
- Si el acceso elevated está deshabilitado o el remitente no está en la lista permitida, la directiva responde con un error procesable y no cambia el estado de sesión.
- Envía ''/elevated'' (o ''/elevated:'') sin argumento para ver el nivel elevated actual.
Disponibilidad + listas permitidas
- Puerta de característica: ''tools.elevated.enabled'' (el predeterminado puede estar desactivado via config incluso si el código lo soporta).
- Lista permitida de remitentes: ''tools.elevated.allowFrom'' con listas permitidas por proveedor (ej. ''discord'', ''whatsapp'').
- Puerta por agente: ''agents.list[].tools.elevated.enabled'' (opcional; solo puede restringir más).
- Lista permitida por agente: ''agents.list[].tools.elevated.allowFrom'' (opcional; cuando está establecida, el remitente debe coincidir con ''ambas'' listas global + por agente).
- Fallback de Discord: si ''tools.elevated.allowFrom.discord'' se omite, la lista ''channels.discord.dm.allowFrom'' se usa como fallback. Establece ''tools.elevated.allowFrom.discord'' (incluso ''[]'') para anular. Las listas permitidas por agente ''no'' usan el fallback.
- Todas las puertas deben pasar; de lo contrario elevated se trata como no disponible.
Logging + estado
- Las llamadas de exec elevado se registran a nivel info.
- El estado de sesión incluye modo elevado (ej. ''elevated=ask'', ''elevated=full'').