pub struct SharedAdapter(/* private fields */);Expand description
Wraps a product-neutral soma_provider_core::Provider (as implemented by
every adapter in soma-provider-adapters) so it satisfies this crate’s
own Provider trait, which carries additional auth/scope fields
(principal, auth_mode, destructive_confirmed, limits) that no
shared adapter reads — see ProviderCall::provider_invocation(), which
this reuses to build the generic call. This is the mirror image of
CoreProviderAdapter below, which wraps the other direction.
Implementations§
Trait Implementations§
Source§fn clone(&self) -> SharedAdapter
fn clone(&self) -> SharedAdapter
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§fn catalog(&self) -> ProviderCatalog
fn catalog(&self) -> ProviderCatalog
The provider’s catalog — its tools, prompts, resources, and metadata.
Source§fn call<'life0, 'async_trait>(
&'life0 self,
call: ProviderCall,
) -> Pin<Box<dyn Future<Output = Result<ProviderOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn call<'life0, 'async_trait>(
&'life0 self,
call: ProviderCall,
) -> Pin<Box<dyn Future<Output = Result<ProviderOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Executes one provider action call and returns its output.
Source§fn dynamic_resource_templates(&self) -> Vec<DynamicResourceTemplate>
fn dynamic_resource_templates(&self) -> Vec<DynamicResourceTemplate>
Dynamic resource templates this provider serves. Every provider
inherits the empty default — only file-based dynamic resource
readers (
providers/resources/*.ts) override it.Source§fn supports_resource_reads(&self) -> bool
fn supports_resource_reads(&self) -> bool
Whether this provider can actually serve
read_resource calls.
catalog().resources is a schema-legal field on every provider
kind’s manifest (OpenAPI, MCP, ai-sdk, WASM, Python, generic JSON),
but only file-based ResourceFileProviders have any mechanism to
read content back — every other kind inherits read_resource’s
default error. ResourceIndex::register uses this to reject a
manifest that declares resources it can never serve at snapshot-build
time, rather than letting them appear in resources/list and always
fail resources/read with an opaque error.Source§fn read_resource<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
uri: &'life1 str,
params: &'life2 BTreeMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<ResourceReadOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn read_resource<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
uri: &'life1 str,
params: &'life2 BTreeMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<ResourceReadOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Reads resource content for a URI the registry has already matched
against either this provider’s
catalog().resources (exact,
params empty) or one of its dynamic_resource_templates()
(params holds captured path parameters).Auto Trait Implementations§
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,
§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