pub struct ShellExecutor { /* private fields */ }Expand description
Bash block extraction and execution via tokio::process::Command.
Implementations§
Source§impl ShellExecutor
impl ShellExecutor
pub fn new(config: &ShellConfig) -> Self
Sourcepub fn set_skill_env(&self, env: Option<HashMap<String, String>>)
pub fn set_skill_env(&self, env: Option<HashMap<String, String>>)
Set environment variables to inject when executing the active skill’s bash blocks.
pub fn with_audit(self, logger: AuditLogger) -> Self
pub fn with_tool_event_tx(self, tx: ToolEventTx) -> Self
pub fn with_permissions(self, policy: PermissionPolicy) -> Self
pub fn with_cancel_token(self, token: CancellationToken) -> Self
pub fn with_output_filters(self, registry: OutputFilterRegistry) -> Self
Sourcepub async fn execute_confirmed(
&self,
response: &str,
) -> Result<Option<ToolOutput>, ToolError>
pub async fn execute_confirmed( &self, response: &str, ) -> Result<Option<ToolOutput>, ToolError>
Execute a bash block bypassing the confirmation check (called after user confirms).
§Errors
Returns ToolError on blocked commands, sandbox violations, or execution failures.
Trait Implementations§
Source§impl Debug for ShellExecutor
impl Debug for ShellExecutor
Source§impl ToolExecutor for ShellExecutor
impl ToolExecutor for ShellExecutor
async fn execute(&self, response: &str) -> Result<Option<ToolOutput>, ToolError>
Source§fn tool_definitions(&self) -> Vec<ToolDef>
fn tool_definitions(&self) -> Vec<ToolDef>
Return tool definitions this executor can handle.
Source§async fn execute_tool_call(
&self,
call: &ToolCall,
) -> Result<Option<ToolOutput>, ToolError>
async fn execute_tool_call( &self, call: &ToolCall, ) -> Result<Option<ToolOutput>, ToolError>
Execute a structured tool call. Returns
None if tool_id is not handled.Source§fn set_skill_env(&self, env: Option<HashMap<String, String>>)
fn set_skill_env(&self, env: Option<HashMap<String, String>>)
Inject environment variables for the currently active skill. No-op by default.
Source§fn execute_confirmed(
&self,
response: &str,
) -> impl Future<Output = Result<Option<ToolOutput>, ToolError>> + Send
fn execute_confirmed( &self, response: &str, ) -> impl Future<Output = Result<Option<ToolOutput>, ToolError>> + Send
Execute bypassing confirmation checks (called after user approves).
Default: delegates to
execute.Auto Trait Implementations§
impl !Freeze for ShellExecutor
impl !RefUnwindSafe for ShellExecutor
impl Send for ShellExecutor
impl Sync for ShellExecutor
impl Unpin for ShellExecutor
impl UnsafeUnpin for ShellExecutor
impl !UnwindSafe for ShellExecutor
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> ErasedToolExecutor for Twhere
T: ToolExecutor,
impl<T> ErasedToolExecutor for Twhere
T: ToolExecutor,
fn execute_erased<'a>( &'a self, response: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
fn execute_confirmed_erased<'a>( &'a self, response: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
fn tool_definitions_erased(&self) -> Vec<ToolDef>
fn execute_tool_call_erased<'a>( &'a self, call: &'a ToolCall, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
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> 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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request