Elevated Mode (/elevated Direktiven)

Was es macht

  • /elevated on läuft auf dem Gateway-Host und behält Exec-Freigaben bei (identisch mit /elevated ask).
  • /elevated full läuft auf dem Gateway-Host und genehmigt Exec automatisch (überspringt Exec-Freigaben).
  • /elevated ask läuft auf dem Gateway-Host, behält aber Exec-Freigaben bei (identisch mit /elevated on).
  • on/ask erzwingen nicht exec.security=full; die konfigurierte Security/Ask-Policy gilt weiterhin.
  • Ändert das Verhalten nur, wenn der Agent sandboxed ist (sonst läuft Exec bereits auf dem Host).
  • Direktiven-Formen: /elevated on|off|ask|full, /elev on|off|ask|full.
  • Nur on|off|ask|full werden akzeptiert; alles andere gibt einen Hinweis zurück und ändert den Status nicht.

Was es steuert (und was nicht)

  • Verfügbarkeits-Gates: tools.elevated ist die globale Baseline. agents.list[].tools.elevated kann Elevated pro Agent weiter einschränken (beide müssen erlauben).
  • Pro-Session-Status: /elevated on|off|ask|full setzt das Elevated-Level für den aktuellen Session-Key.
  • Inline-Direktive: /elevated on|ask|full innerhalb einer Nachricht gilt nur für diese Nachricht.
  • Gruppen: In Gruppenchats werden Elevated-Direktiven nur beachtet, wenn der Agent erwähnt wird. Command-only-Nachrichten, die Erwähnungs-Anforderungen umgehen, werden als erwähnt behandelt.
  • Host-Ausführung: Elevated erzwingt exec auf dem Gateway-Host; full setzt zusätzlich security=full.
  • Freigaben: full überspringt Exec-Freigaben; on/ask beachten sie, wenn Allowlist/Ask-Regeln es erfordern.
  • Nicht-sandboxed Agents: No-op für Location; betrifft nur Gating, Logging und Status.
  • Tool-Policy gilt weiterhin: Wenn exec durch die Tool-Policy verweigert wird, kann Elevated nicht verwendet werden.
  • Getrennt von /exec: /exec passt Pro-Session-Defaults für autorisierte Sender an und benötigt kein Elevated.

Auflösungsreihenfolge

  1. Inline-Direktive in der Nachricht (gilt nur für diese Nachricht).
  2. Session-Override (gesetzt durch Senden einer reinen Direktiven-Nachricht).
  3. Globaler Default (agents.defaults.elevatedDefault in der Config).

Session-Default setzen

  • Sende eine Nachricht, die nur die Direktive enthält (Leerzeichen erlaubt), z.B. /elevated full.
  • Eine Bestätigungsantwort wird gesendet (Elevated mode set to full... / Elevated mode disabled.).
  • Wenn Elevated-Zugriff deaktiviert ist oder der Sender nicht auf der genehmigten Allowlist steht, antwortet die Direktive mit einem umsetzbaren Fehler und ändert den Session-Status nicht.
  • Sende /elevated (oder /elevated:) ohne Argument, um das aktuelle Elevated-Level zu sehen.

Verfügbarkeit + Allowlists

  • Feature-Gate: tools.elevated.enabled (kann per Config standardmäßig aus sein, auch wenn der Code es unterstützt).
  • Sender-Allowlist: tools.elevated.allowFrom mit Provider-spezifischen Allowlists (z.B. discord, whatsapp).
  • Pro-Agent-Gate: agents.list[].tools.elevated.enabled (optional; kann nur weiter einschränken).
  • Pro-Agent-Allowlist: agents.list[].tools.elevated.allowFrom (optional; wenn gesetzt, muss der Sender sowohl die globale als auch die Pro-Agent-Allowlist erfüllen).
  • Discord-Fallback: Wenn tools.elevated.allowFrom.discord fehlt, wird die channels.discord.dm.allowFrom-Liste als Fallback verwendet. Setze tools.elevated.allowFrom.discord (auch []), um das zu überschreiben. Pro-Agent-Allowlists verwenden den Fallback nicht.
  • Alle Gates müssen durchlaufen; sonst wird Elevated als nicht verfügbar behandelt.

Logging + Status

  • Elevated-Exec-Aufrufe werden auf Info-Level geloggt.
  • Der Session-Status enthält den Elevated-Modus (z.B. elevated=ask, elevated=full).