pub struct CapabilityRegistry { /* private fields */ }Expand description
Holds all runtime capabilities keyed by tool name.
Implementations§
Source§impl CapabilityRegistry
impl CapabilityRegistry
pub fn new() -> Self
pub async fn is_empty(&self) -> bool
pub async fn register( &self, cap: Arc<dyn Capability>, ) -> Result<(), RegistrationError>
pub async fn register_all( &self, capabilities: Vec<Arc<dyn Capability>>, ) -> Vec<(String, RegistrationError)>
pub async fn get(&self, name: &str) -> Option<Arc<dyn Capability>>
pub async fn catalog(&self) -> Vec<CapabilitySummary>
pub async fn list_names(&self) -> Vec<String>
Sourcepub async fn reload_plugin(
&self,
plugin_name: &str,
new_capabilities: Vec<Arc<dyn Capability>>,
) -> Vec<(String, RegistrationError)>
pub async fn reload_plugin( &self, plugin_name: &str, new_capabilities: Vec<Arc<dyn Capability>>, ) -> Vec<(String, RegistrationError)>
Remove all capabilities previously attributed to plugin_name, then register new_capabilities.
Holds the write lock for the entire operation so the pipeline never sees a partial tool set during hot-reload.
Sourcepub async fn reload_mcp_server(
&self,
server_name: &str,
new_capabilities: Vec<Arc<dyn Capability>>,
) -> Result<(), RegistrationError>
pub async fn reload_mcp_server( &self, server_name: &str, new_capabilities: Vec<Arc<dyn Capability>>, ) -> Result<(), RegistrationError>
Atomically replace all capabilities from a specific MCP server.
Holds the write lock for the entire operation so the pipeline never sees a partial tool set during hot-reload.
Sourcepub async fn sync_from_tool_registry(
&self,
registry: Arc<ToolRegistry>,
) -> Result<(), String>
pub async fn sync_from_tool_registry( &self, registry: Arc<ToolRegistry>, ) -> Result<(), String>
Replace the catalog with one entry per tool in registry (stable name order).
Sourcepub async fn resync_tools(
&self,
registry: Arc<ToolRegistry>,
) -> Result<(), String>
pub async fn resync_tools( &self, registry: Arc<ToolRegistry>, ) -> Result<(), String>
Rebuild capabilities from tools (e.g. after hot-loading plugins into ToolRegistry).
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for CapabilityRegistry
impl !RefUnwindSafe for CapabilityRegistry
impl Send for CapabilityRegistry
impl Sync for CapabilityRegistry
impl Unpin for CapabilityRegistry
impl UnsafeUnpin for CapabilityRegistry
impl !UnwindSafe for CapabilityRegistry
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
Source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
Source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref