pub struct ToolInspectionManager { /* private fields */ }Expand description
Tool Inspection Manager
Provides unified tool inspection, permission checking, and confirmation flow. Integrates:
ModeManagerfor execution mode-based permissionsPermissionManagerfor persistent permission storage- Tool metadata registry for categorization
Implementations§
Source§impl ToolInspectionManager
impl ToolInspectionManager
Sourcepub fn with_mode_manager(mode_manager: ModeManager) -> Self
pub fn with_mode_manager(mode_manager: ModeManager) -> Self
Create with custom mode manager
Sourcepub fn register_tool(&self, metadata: ToolMetadata)
pub fn register_tool(&self, metadata: ToolMetadata)
Register a custom tool
Sourcepub fn get_tool_metadata(&self, tool_name: &str) -> Option<ToolMetadata>
pub fn get_tool_metadata(&self, tool_name: &str) -> Option<ToolMetadata>
Get tool metadata
Sourcepub fn current_mode(&self) -> ExecutionMode
pub fn current_mode(&self) -> ExecutionMode
Get the current execution mode
Sourcepub fn inspect_tool(
&self,
tool_name: &str,
arguments: Option<&str>,
) -> Result<InspectionResult, AppError>
pub fn inspect_tool( &self, tool_name: &str, arguments: Option<&str>, ) -> Result<InspectionResult, AppError>
Inspect a tool before execution
Returns an InspectionResult indicating whether the tool can be executed,
requires confirmation, or is blocked.
Sourcepub fn create_confirmation_request(
&self,
tool_name: &str,
arguments: &str,
) -> ConfirmationRequest
pub fn create_confirmation_request( &self, tool_name: &str, arguments: &str, ) -> ConfirmationRequest
Create a confirmation request
Sourcepub fn handle_confirmation(
&self,
request_id: &str,
response: ConfirmationResponse,
) -> Result<bool, AppError>
pub fn handle_confirmation( &self, request_id: &str, response: ConfirmationResponse, ) -> Result<bool, AppError>
Handle a confirmation response
Sourcepub fn pending_requests(&self) -> Vec<ConfirmationRequest>
pub fn pending_requests(&self) -> Vec<ConfirmationRequest>
Get pending confirmation requests
Sourcepub fn clear_pending(&self)
pub fn clear_pending(&self)
Clear all pending confirmations
Sourcepub fn list_tools(&self) -> Vec<ToolMetadata>
pub fn list_tools(&self) -> Vec<ToolMetadata>
List all registered tools
Sourcepub fn tools_by_category(&self, category: ToolCategory) -> Vec<ToolMetadata>
pub fn tools_by_category(&self, category: ToolCategory) -> Vec<ToolMetadata>
Get tools by category
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ToolInspectionManager
impl RefUnwindSafe for ToolInspectionManager
impl Send for ToolInspectionManager
impl Sync for ToolInspectionManager
impl Unpin for ToolInspectionManager
impl UnwindSafe for ToolInspectionManager
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().