pub struct ProtectedToolDyn { /* private fields */ }Expand description
Dynamic version of ProtectedTool for Arc<dyn Tool>.
Implementations§
Source§impl ProtectedToolDyn
impl ProtectedToolDyn
Sourcepub fn new(tool: Arc<dyn Tool>, access_control: Arc<AccessControl>) -> Self
pub fn new(tool: Arc<dyn Tool>, access_control: Arc<AccessControl>) -> Self
Create a new protected dynamic tool.
Sourcepub fn with_audit(
tool: Arc<dyn Tool>,
access_control: Arc<AccessControl>,
audit_sink: Arc<dyn AuditSink>,
) -> Self
pub fn with_audit( tool: Arc<dyn Tool>, access_control: Arc<AccessControl>, audit_sink: Arc<dyn AuditSink>, ) -> Self
Create a new protected dynamic tool with audit logging.
Trait Implementations§
Source§impl Tool for ProtectedToolDyn
impl Tool for ProtectedToolDyn
fn name(&self) -> &str
fn description(&self) -> &str
Source§fn enhanced_description(&self) -> String
fn enhanced_description(&self) -> String
Returns an enhanced description that may include additional notes.
For long-running tools, this includes a warning not to call the tool
again if it has already returned a pending status.
Default implementation returns the base description.
Source§fn is_long_running(&self) -> bool
fn is_long_running(&self) -> bool
Indicates whether the tool is a long-running operation.
Long-running tools typically return a task ID immediately and
complete the operation asynchronously.
fn parameters_schema(&self) -> Option<Value>
fn response_schema(&self) -> Option<Value>
fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: Arc<dyn ToolContext>,
args: Value,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for ProtectedToolDyn
impl !RefUnwindSafe for ProtectedToolDyn
impl Send for ProtectedToolDyn
impl Sync for ProtectedToolDyn
impl Unpin for ProtectedToolDyn
impl UnsafeUnpin for ProtectedToolDyn
impl !UnwindSafe for ProtectedToolDyn
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> ToolExt for Twhere
T: Tool,
impl<T> ToolExt for Twhere
T: Tool,
Source§fn with_access_control(self, ac: Arc<AccessControl>) -> ProtectedTool<Self>
fn with_access_control(self, ac: Arc<AccessControl>) -> ProtectedTool<Self>
Wrap this tool with access control.
Source§fn with_access_control_and_audit(
self,
ac: Arc<AccessControl>,
audit: Arc<dyn AuditSink>,
) -> ProtectedTool<Self>
fn with_access_control_and_audit( self, ac: Arc<AccessControl>, audit: Arc<dyn AuditSink>, ) -> ProtectedTool<Self>
Wrap this tool with access control and audit logging.