Skip to main content

ToolContext

Struct ToolContext 

Source
pub struct ToolContext {
    pub cwd: PathBuf,
    pub cancel: CancellationToken,
    pub permission_checker: Arc<PermissionChecker>,
    pub verbose: bool,
    pub plan_mode: bool,
    pub file_cache: Option<Arc<Mutex<FileCache>>>,
    pub denial_tracker: Option<Arc<Mutex<DenialTracker>>>,
    pub task_manager: Option<Arc<TaskManager>>,
    pub session_allows: Option<Arc<Mutex<HashSet<String>>>>,
    pub permission_prompter: Option<Arc<dyn PermissionPrompter>>,
    pub sandbox: Option<Arc<SandboxExecutor>>,
}
Expand description

Context passed to every tool during execution.

Provides the working directory, cancellation token, permission checker, file cache, and other shared state. Created by the executor before each tool call.

Fields§

§cwd: PathBuf

Current working directory.

§cancel: CancellationToken

Cancellation token for cooperative cancellation.

§permission_checker: Arc<PermissionChecker>

Permission checker instance.

§verbose: bool

Whether to produce verbose output.

§plan_mode: bool

Plan mode: only read-only tools allowed.

§file_cache: Option<Arc<Mutex<FileCache>>>

File content cache for avoiding redundant reads.

§denial_tracker: Option<Arc<Mutex<DenialTracker>>>

Permission denial tracker for reporting.

§task_manager: Option<Arc<TaskManager>>

Shared background task manager.

§session_allows: Option<Arc<Mutex<HashSet<String>>>>

Tools allowed for the rest of the session (via “Allow for session” prompt).

§permission_prompter: Option<Arc<dyn PermissionPrompter>>

Permission prompter for interactive approval.

§sandbox: Option<Arc<SandboxExecutor>>

Process-level sandbox executor.

None means sandboxing is unavailable for this context (e.g. parallel read-only retry paths); subprocess-spawning tools should treat None as “pass through unchanged”. The main query loop populates this from crate::config::SandboxConfig.

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more