pub struct SkillInvokeExecutor { /* private fields */ }Expand description
Tool executor that returns a skill body by name with trust-aware sanitization.
Holds a shared reference to the skill registry and a per-turn trust snapshot
refreshed by the agent loop. Both are cheap Arc clones — no allocation on hot path.
Implementations§
Source§impl SkillInvokeExecutor
impl SkillInvokeExecutor
Sourcepub fn new(
registry: Arc<RwLock<SkillRegistry>>,
trust_snapshot: Arc<RwLock<HashMap<String, SkillTrustLevel>>>,
) -> Self
pub fn new( registry: Arc<RwLock<SkillRegistry>>, trust_snapshot: Arc<RwLock<HashMap<String, SkillTrustLevel>>>, ) -> Self
Create a new executor with shared registry and trust snapshot.
Both Arcs must be the same instances held by the agent so updates are
visible without re-constructing the executor.
Trait Implementations§
Source§impl Clone for SkillInvokeExecutor
impl Clone for SkillInvokeExecutor
Source§fn clone(&self) -> SkillInvokeExecutor
fn clone(&self) -> SkillInvokeExecutor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SkillInvokeExecutor
impl Debug for SkillInvokeExecutor
Source§impl ToolExecutor for SkillInvokeExecutor
impl ToolExecutor for SkillInvokeExecutor
Source§async fn execute(
&self,
_response: &str,
) -> Result<Option<ToolOutput>, ToolError>
async fn execute( &self, _response: &str, ) -> Result<Option<ToolOutput>, ToolError>
Parse
response for fenced tool blocks and execute them. Read moreSource§fn tool_definitions(&self) -> Vec<ToolDef>
fn tool_definitions(&self) -> Vec<ToolDef>
Return the tool definitions this executor can handle. Read more
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>
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). Read more
Source§fn execute_tool_call_confirmed(
&self,
call: &ToolCall,
) -> impl Future<Output = Result<Option<ToolOutput>, ToolError>> + Send
fn execute_tool_call_confirmed( &self, call: &ToolCall, ) -> impl Future<Output = Result<Option<ToolOutput>, ToolError>> + Send
Execute a structured tool call bypassing confirmation checks. Read more
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. Read more
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. Read more
Auto Trait Implementations§
impl Freeze for SkillInvokeExecutor
impl !RefUnwindSafe for SkillInvokeExecutor
impl Send for SkillInvokeExecutor
impl Sync for SkillInvokeExecutor
impl Unpin for SkillInvokeExecutor
impl UnsafeUnpin for SkillInvokeExecutor
impl !UnwindSafe for SkillInvokeExecutor
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>>
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_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 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.
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.
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