pub enum Capability {
Show 26 variants
FileRead(String),
FileWrite(String),
ShellExec(String),
Network(String),
Memory,
KnowledgeGraph,
BrowserControl,
AgentSpawn,
AgentMessage,
Schedule,
EventPublish,
SourceControl,
Container,
DataManipulation,
CodeAnalysis,
Archive,
Template,
Crypto,
PluginInvoke,
A2ADelegate,
McpAccess(String),
ChannelNotify,
SelfConfig,
SystemAutomation,
UiAutomation(String),
AppIntegration(String),
}Expand description
A capability that can be granted to a Fighter or Gorilla.
Capabilities follow a least-privilege model: agents only receive the permissions they need, scoped to specific patterns where applicable.
Variants§
FileRead(String)
Read files matching the given glob pattern.
FileWrite(String)
Write files matching the given glob pattern.
ShellExec(String)
Run shell commands matching the given pattern.
Network(String)
Make network requests to the given host/pattern.
Memory
Access the memory subsystem.
KnowledgeGraph
Access the knowledge graph.
BrowserControl
Control a browser instance.
AgentSpawn
Spawn new agents.
AgentMessage
Send messages to other agents.
Schedule
Create and manage scheduled tasks.
EventPublish
Publish events to the event bus.
SourceControl
Source control operations (git).
Container
Container operations (docker).
DataManipulation
Data manipulation (JSON, YAML, regex).
CodeAnalysis
Code analysis (search, symbols).
Archive
Archive operations (create, extract, list tar.gz).
Template
Template rendering operations.
Crypto
Cryptographic hash operations.
PluginInvoke
Invoke loaded WASM plugins (imported techniques).
A2ADelegate
Delegate tasks to remote A2A agents.
McpAccess(String)
Access MCP servers matching the given name pattern (e.g., “*” for all, “github” for specific).
ChannelNotify
Send proactive notifications to connected channels (Telegram, Slack, Discord, etc.).
SelfConfig
Self-configuration: modify own creed, heartbeats, and install skill packs.
SystemAutomation
System-level automation: screenshots, screen recording permission required.
UiAutomation(String)
UI automation scoped to a specific app (accessibility tree interaction). Use “*” to grant access to all apps.
AppIntegration(String)
Deep app integration scoped to a specific app (OCR, app-specific APIs). Use “*” to grant access to all apps.
Implementations§
Source§impl Capability
impl Capability
Sourcepub fn full_access() -> Vec<Capability>
pub fn full_access() -> Vec<Capability>
Returns a full-access capability set with wildcard scopes.
This is the default for user-facing fighters — they should be able to use any tool the LLM decides is appropriate. Restrict capabilities only when deploying sandboxed or multi-tenant agents.
Trait Implementations§
Source§impl Clone for Capability
impl Clone for Capability
Source§fn clone(&self) -> Capability
fn clone(&self) -> Capability
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Capability
impl Debug for Capability
Source§impl<'de> Deserialize<'de> for Capability
impl<'de> Deserialize<'de> for Capability
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for Capability
impl Display for Capability
Source§impl Hash for Capability
impl Hash for Capability
Source§impl PartialEq for Capability
impl PartialEq for Capability
Source§impl Serialize for Capability
impl Serialize for Capability
impl Eq for Capability
impl StructuralPartialEq for Capability
Auto Trait Implementations§
impl Freeze for Capability
impl RefUnwindSafe for Capability
impl Send for Capability
impl Sync for Capability
impl Unpin for Capability
impl UnsafeUnpin for Capability
impl UnwindSafe for Capability
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.