Skip to main content

ShellTool

Struct ShellTool 

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

The confined shell tool.

Registers under "shell". Accepts either argv form (program + args) or a free-form cmd string parsed by the safe-subset engine. Leash refusals (out-of-scope exec/fs, a refused construct) are returned as a structured denied envelope (denied: true), not a hard error.

Implementations§

Source§

impl ShellTool

Source

pub fn new() -> Self

Construct the tool with the real OS spawner, environment, and dir lister, and the default LimitsPolicy.

Source

pub fn with_config(limits: LimitsPolicy) -> Self

Construct with the real seams and a caller-supplied LimitsPolicy — the configurability seam (agent-bridle#143): tune timeouts / output / glob caps.

Source

pub fn with_output_observer( self, observer: Arc<dyn ShellOutputObserver>, ) -> Self

Attach a presentation-only observer for bounded stdout/stderr chunks.

The observer is queued only after leash admission. It receives at most the configured output cap per stream and cannot change authorization or the final result envelope. Delivery may finish asynchronously after the invocation returns; on_finish marks the queue-drained boundary.

Source

pub fn with_sandbox_policy(self, sandbox: SandboxPolicy) -> Self

Set the sandbox mechanism policy (read/exec allow-lists, ABI floors) the L3 backend enforces (I5-B, #144). The default is today’s built-in allow-lists.

Trait Implementations§

Source§

impl Clone for ShellTool

Source§

fn clone(&self) -> ShellTool

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ShellTool

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ShellTool

Source§

fn default() -> Self

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

impl Tool for ShellTool

Source§

fn name(&self) -> &str

The dispatch name (the key in tools/list and in crate::Registry::dispatch).
Source§

fn schema(&self) -> Value

The MCP inputSchema (JSON Schema) for this tool’s arguments.
Source§

fn invoke<'life0, 'life1, 'async_trait>( &'life0 self, args: Value, cx: &'life1 ToolContext, ) -> Pin<Box<dyn Future<Output = ToolResult<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Run the tool. The cx proves the leash was passed; the tool enforces per-operation policy by calling cx.check_exec, cx.check_path_*, etc.
Source§

fn required(&self) -> Caveats

The authority ceiling this tool promises to stay under. Read more

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V