pub struct Capabilities {
pub fs_read: Vec<PathPattern>,
pub fs_write: Vec<PathPattern>,
pub env_read: Vec<String>,
pub net: Vec<NetPattern>,
pub stdio: StdioCapability,
}Expand description
Plugin capability declarations
Plugins declare what system resources they need access to. The host will prompt users to grant these permissions before execution.
§Example
use sen_plugin_api::{Capabilities, PathPattern, StdioCapability};
let caps = Capabilities::default()
.with_fs_read(vec![PathPattern::new("./data").recursive()])
.with_fs_write(vec![PathPattern::new("./output")])
.with_stdio(StdioCapability::stdout_stderr());Fields§
§fs_read: Vec<PathPattern>Filesystem read access paths Relative paths resolved from CWD, supports ~ expansion
fs_write: Vec<PathPattern>Filesystem write access paths
env_read: Vec<String>Environment variable access patterns Supports glob: “MY_*”, exact: “HOME”
net: Vec<NetPattern>Network access patterns (WASI Preview 2)
stdio: StdioCapabilityStandard I/O access
Implementations§
Source§impl Capabilities
impl Capabilities
Sourcepub fn with_fs_read(self, paths: Vec<PathPattern>) -> Self
pub fn with_fs_read(self, paths: Vec<PathPattern>) -> Self
Add filesystem read paths
Sourcepub fn with_fs_write(self, paths: Vec<PathPattern>) -> Self
pub fn with_fs_write(self, paths: Vec<PathPattern>) -> Self
Add filesystem write paths
Sourcepub fn with_env_read(self, patterns: Vec<String>) -> Self
pub fn with_env_read(self, patterns: Vec<String>) -> Self
Add environment variable patterns
Sourcepub fn with_net(self, patterns: Vec<NetPattern>) -> Self
pub fn with_net(self, patterns: Vec<NetPattern>) -> Self
Add network patterns
Sourcepub fn with_stdio(self, stdio: StdioCapability) -> Self
pub fn with_stdio(self, stdio: StdioCapability) -> Self
Set stdio capabilities
Sourcepub fn is_subset_of(&self, other: &Capabilities) -> bool
pub fn is_subset_of(&self, other: &Capabilities) -> bool
Check if self is a subset of other (all requested capabilities are granted)
Sourcepub fn compute_hash(&self) -> String
pub fn compute_hash(&self) -> String
Compute hash for change detection
Uses blake3 for cross-process stability (unlike DefaultHasher which may produce different hashes across processes/runs).
Trait Implementations§
Source§impl Clone for Capabilities
impl Clone for Capabilities
Source§fn clone(&self) -> Capabilities
fn clone(&self) -> Capabilities
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more