pub struct ResourceFileProvider { /* private fields */ }Expand description
Provider for a single file discovered under providers/resources/,
serving either static file bytes or a sandboxed TypeScript read() reader.
Implementations§
Source§impl ResourceFileProvider
impl ResourceFileProvider
Sourcepub fn from_file(
absolute_path: PathBuf,
relative_path: &Path,
canonical_root: &Path,
) -> Result<Self, ResourceFileError>
pub fn from_file( absolute_path: PathBuf, relative_path: &Path, canonical_root: &Path, ) -> Result<Self, ResourceFileError>
Builds a provider for one file discovered under providers/resources/.
relative_path is the file’s path relative to that directory
(already verified not to escape the provider root — see
filesystem::collect_resource_files). canonical_root is that
directory’s canonicalized path, re-checked at read time. A .ts
extension makes the file a dynamic reader; every other extension
makes it a static resource read directly from disk.
Trait Implementations§
Source§impl Clone for ResourceFileProvider
impl Clone for ResourceFileProvider
Source§fn clone(&self) -> ResourceFileProvider
fn clone(&self) -> ResourceFileProvider
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§impl Debug for ResourceFileProvider
impl Debug for ResourceFileProvider
Source§impl Provider for ResourceFileProvider
impl Provider for ResourceFileProvider
Source§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).Source§fn retire<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn retire<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Drains and releases provider-owned runtime resources after a registry
generation swap.
Source§fn suspend<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn suspend<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Parks runtime resources while preserving rollback capability.
Source§fn runtime_status(&self) -> Option<Value>
fn runtime_status(&self) -> Option<Value>
Returns product-neutral operator status for a stateful runtime.
Source§fn cancel_active(&self) -> bool
fn cancel_active(&self) -> bool
Cancels active work without waiting for provider dispatch to complete.
Source§fn reset_quarantine<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn reset_quarantine<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Clears runtime quarantine after explicit operator authorization.
Source§fn deactivate(&self)
fn deactivate(&self)
Stops new work while in-flight work drains on a retained generation.
Source§fn acquire_dispatch(&self) -> bool
fn acquire_dispatch(&self) -> bool
Reserves an invocation while this provider is still active.
Source§fn release_dispatch(&self)
fn release_dispatch(&self)
Releases a reservation acquired by
Provider::acquire_dispatch.Auto Trait Implementations§
impl Freeze for ResourceFileProvider
impl RefUnwindSafe for ResourceFileProvider
impl Send for ResourceFileProvider
impl Sync for ResourceFileProvider
impl Unpin for ResourceFileProvider
impl UnsafeUnpin for ResourceFileProvider
impl UnwindSafe for ResourceFileProvider
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