pub struct FilteredToolExecutor { /* private fields */ }Expand description
Wraps an ErasedToolExecutor and enforces a ToolPolicy plus an optional
additional denylist (disallowed).
All calls are checked against the policy and the denylist before being forwarded
to the inner executor. The denylist is evaluated first — a tool in disallowed
is blocked even if policy would allow it (deny wins). Rejected calls return a
descriptive ToolError.
Implementations§
Source§impl FilteredToolExecutor
impl FilteredToolExecutor
Sourcepub fn new(inner: Arc<dyn ErasedToolExecutor>, policy: ToolPolicy) -> Self
pub fn new(inner: Arc<dyn ErasedToolExecutor>, policy: ToolPolicy) -> Self
Create a new filtered executor.
Sourcepub fn with_disallowed(
inner: Arc<dyn ErasedToolExecutor>,
policy: ToolPolicy,
disallowed: Vec<String>,
) -> Self
pub fn with_disallowed( inner: Arc<dyn ErasedToolExecutor>, policy: ToolPolicy, disallowed: Vec<String>, ) -> Self
Create a new filtered executor with an additional denylist.
Tools in disallowed are blocked regardless of the base policy
(deny wins over allow).
Trait Implementations§
Source§impl ErasedToolExecutor for FilteredToolExecutor
impl ErasedToolExecutor for FilteredToolExecutor
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§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 is_tool_retryable_erased(&self, tool_id: &str) -> bool
fn is_tool_retryable_erased(&self, tool_id: &str) -> bool
Whether the executor can safely retry this tool call on a transient error.
fn execute_tool_call_confirmed_erased<'a>( &'a self, call: &'a ToolCall, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
Source§fn set_effective_trust(&self, _level: SkillTrustLevel)
fn set_effective_trust(&self, _level: SkillTrustLevel)
Set the effective trust level for the currently active skill. No-op by default.
Auto Trait Implementations§
impl Freeze for FilteredToolExecutor
impl !RefUnwindSafe for FilteredToolExecutor
impl Send for FilteredToolExecutor
impl Sync for FilteredToolExecutor
impl Unpin for FilteredToolExecutor
impl UnsafeUnpin for FilteredToolExecutor
impl !UnwindSafe for FilteredToolExecutor
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> 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