pub struct MemorySearchDispatcher { /* private fields */ }Expand description
Tool dispatcher that provides the memory_search tool.
Wraps an Arc<dyn MemoryStore> and exposes semantic search as an
agent-callable tool. Created by the factory when the memory-store-session
feature is enabled.
Implementations§
Source§impl MemorySearchDispatcher
impl MemorySearchDispatcher
Sourcepub fn new(store: Arc<dyn MemoryStore>, scope: MemorySearchScope) -> Self
pub fn new(store: Arc<dyn MemoryStore>, scope: MemorySearchScope) -> Self
Create a new memory search dispatcher backed by the given store.
Sourcepub fn for_session(store: Arc<dyn MemoryStore>, session_id: SessionId) -> Self
pub fn for_session(store: Arc<dyn MemoryStore>, session_id: SessionId) -> Self
Create a dispatcher scoped to the canonical memory owner for a session.
Trait Implementations§
Source§impl AgentToolDispatcher for MemorySearchDispatcher
impl AgentToolDispatcher for MemorySearchDispatcher
Source§fn dispatch<'life0, 'life1, 'async_trait>(
&'life0 self,
call: ToolCallView<'life1>,
) -> Pin<Box<dyn Future<Output = Result<ToolDispatchOutcome, ToolError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn dispatch<'life0, 'life1, 'async_trait>(
&'life0 self,
call: ToolCallView<'life1>,
) -> Pin<Box<dyn Future<Output = Result<ToolDispatchOutcome, ToolError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a tool call, returning the transcript result and any async operations. Read more
Source§fn tool_catalog_capabilities(&self) -> ToolCatalogCapabilities
fn tool_catalog_capabilities(&self) -> ToolCatalogCapabilities
Query exact catalog support for this dispatcher. Read more
Source§fn tool_catalog(&self) -> Arc<[ToolCatalogEntry]>
fn tool_catalog(&self) -> Arc<[ToolCatalogEntry]>
Return the precedence-resolved tool catalog for this dispatcher. Read more
Source§fn pending_catalog_sources(&self) -> Arc<[String]>
fn pending_catalog_sources(&self) -> Arc<[String]>
Return non-draining pending source names for exact-catalog discovery. Read more
Source§fn dispatch_with_context<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: ToolCallView<'life1>,
_context: &'life2 ToolDispatchContext,
) -> Pin<Box<dyn Future<Output = Result<ToolDispatchOutcome, ToolError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn dispatch_with_context<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: ToolCallView<'life1>,
_context: &'life2 ToolDispatchContext,
) -> Pin<Box<dyn Future<Output = Result<ToolDispatchOutcome, ToolError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Execute a tool call with the current turn’s typed dispatch context. Read more
Source§fn poll_external_updates<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ExternalToolUpdate> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn poll_external_updates<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ExternalToolUpdate> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Poll for external tool updates from background operations (e.g. async MCP loading). Read more
Source§fn external_tool_surface_snapshot(&self) -> Option<ExternalToolSurfaceSnapshot>
fn external_tool_surface_snapshot(&self) -> Option<ExternalToolSurfaceSnapshot>
Snapshot the live external tool-surface machine state, if supported. Read more
Source§fn capabilities(&self) -> DispatcherCapabilities
fn capabilities(&self) -> DispatcherCapabilities
Query which optional bindings this dispatcher supports.
Source§fn bind_ops_lifecycle(
self: Arc<Self>,
_registry: Arc<dyn OpsLifecycleRegistry>,
_owner_bridge_session_id: SessionId,
) -> Result<BindOutcome, OpsLifecycleBindError>
fn bind_ops_lifecycle( self: Arc<Self>, _registry: Arc<dyn OpsLifecycleRegistry>, _owner_bridge_session_id: SessionId, ) -> Result<BindOutcome, OpsLifecycleBindError>
Bind a session-canonical ops registry into this dispatcher. Read more
Source§fn completion_enrichment(&self) -> Option<Arc<dyn CompletionEnrichmentProvider>>
fn completion_enrichment(&self) -> Option<Arc<dyn CompletionEnrichmentProvider>>
Return the completion enrichment provider, if available. Read more
Source§fn bind_mcp_server_lifecycle_handle(
&self,
_handle: Arc<dyn McpServerLifecycleHandle>,
)
fn bind_mcp_server_lifecycle_handle( &self, _handle: Arc<dyn McpServerLifecycleHandle>, )
Bind a session-scoped MCP server lifecycle handle (Phase 5G / T5g). Read more
Source§fn bind_external_tool_surface_handle(
&self,
_handle: Arc<dyn ExternalToolSurfaceHandle>,
)
fn bind_external_tool_surface_handle( &self, _handle: Arc<dyn ExternalToolSurfaceHandle>, )
Bind the session-canonical external tool-surface handle. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for MemorySearchDispatcher
impl !UnwindSafe for MemorySearchDispatcher
impl Freeze for MemorySearchDispatcher
impl Send for MemorySearchDispatcher
impl Sync for MemorySearchDispatcher
impl Unpin for MemorySearchDispatcher
impl UnsafeUnpin for MemorySearchDispatcher
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 more