Skip to main content

BashTool

Struct BashTool 

Source
pub struct BashTool { /* private fields */ }
Expand description

A single-tool ToolSet exposing bash.

Implementations§

Source§

impl BashTool

Source

pub fn new(name: impl Into<String>) -> Self

Source

pub fn with_timeout(self, d: Duration) -> Self

Source

pub fn with_env_allowlist<I, S>(self, names: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Restrict the subprocess environment to the listed variables. The child starts with no env, then the allowlisted names are copied over from the parent’s env (silently skipped if unset). Recommended for eval / CI / untrusted-LLM work:

let tool = BashTool::default()
    .with_env_allowlist(["PATH", "HOME", "USER", "SHELL", "LANG"]);

This hides *_API_KEY, AWS_*, ANTHROPIC_*, SSH agent sockets, and similar secrets from the subprocess. Without an allowlist the subprocess inherits the full environment.

Trait Implementations§

Source§

impl Default for BashTool

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl ToolSet for BashTool

Source§

fn specs(&self) -> &[ToolSpec]

Tool specifications the LLM sees in CompletionRequest.tools.
Source§

fn execute<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, name: &'life1 str, input: Value, ctx: &'life2 ToolContext, ) -> Pin<Box<dyn Future<Output = ToolOutcome> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Execute a tool by name. name is guaranteed to be one returned from specs() by the caller; implementations return ToolOutcome::ExecutionError if that invariant is violated.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.