pub struct ShellSkill { /* private fields */ }Expand description
Shell execution skill with production-grade command validation.
Commands are parsed into segments (split on shell metacharacters) and each
segment’s base command is validated against the configured CommandPolicy.
Additionally, a set of unconditionally dangerous patterns is always blocked
regardless of policy configuration.
Implementations§
Source§impl ShellSkill
impl ShellSkill
Sourcepub fn with_policy(policy: CommandPolicy) -> Self
pub fn with_policy(policy: CommandPolicy) -> Self
Create a new ShellSkill with a custom CommandPolicy.
Sourcepub fn with_max_stdout_bytes(self, max: usize) -> Self
pub fn with_max_stdout_bytes(self, max: usize) -> Self
Set the maximum number of bytes to capture from stdout.
Sourcepub fn with_max_stderr_bytes(self, max: usize) -> Self
pub fn with_max_stderr_bytes(self, max: usize) -> Self
Set the maximum number of bytes to capture from stderr.
Trait Implementations§
Source§impl Default for ShellSkill
impl Default for ShellSkill
Source§impl Skill for ShellSkill
impl Skill for ShellSkill
Source§fn descriptor(&self) -> &SkillDescriptor
fn descriptor(&self) -> &SkillDescriptor
Return the skill’s metadata descriptor.
Source§fn validate_arguments(
&self,
call: &ToolCall,
permissions: &PermissionSet,
) -> ArgentorResult<()>
fn validate_arguments( &self, call: &ToolCall, permissions: &PermissionSet, ) -> ArgentorResult<()>
Validate that the specific arguments in this tool call are permitted
by the given permission set. Override for skills that need argument-level checks.
Default: always returns Ok(()) (no argument-level validation).
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
call: ToolCall,
) -> Pin<Box<dyn Future<Output = ArgentorResult<ToolResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
call: ToolCall,
) -> Pin<Box<dyn Future<Output = ArgentorResult<ToolResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the skill with the given tool call.
Auto Trait Implementations§
impl Freeze for ShellSkill
impl RefUnwindSafe for ShellSkill
impl Send for ShellSkill
impl Sync for ShellSkill
impl Unpin for ShellSkill
impl UnsafeUnpin for ShellSkill
impl UnwindSafe for ShellSkill
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
Mutably borrows from an owned value. Read more
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more