pub struct SkillRegistry { /* private fields */ }Expand description
A registry of discovered skills supporting progressive disclosure.
Built from a list of SkillResource entries, the registry provides:
- Metadata lookup by name (no body loading)
- Full skill body loading on demand
- Listing for prompt integration (auto-invocable vs all)
- Prompt-formatted skill summaries
Implementations§
Source§impl SkillRegistry
impl SkillRegistry
Sourcepub fn from_resources(resources: Vec<SkillResource>) -> Self
pub fn from_resources(resources: Vec<SkillResource>) -> Self
Build a registry from discovered skill resources.
Sourcepub fn get(&self, name: &str) -> Option<&SkillResource>
pub fn get(&self, name: &str) -> Option<&SkillResource>
Look up a skill by name, returning its resource (metadata only).
Sourcepub fn auto_invocable(&self) -> Vec<&SkillResource>
pub fn auto_invocable(&self) -> Vec<&SkillResource>
Return skills that may be automatically invoked by the model.
Excludes skills with disable-model-invocation: true.
Sourcepub fn load_body(
&self,
name: &str,
) -> Option<Result<String, SkillDiscoveryError>>
pub fn load_body( &self, name: &str, ) -> Option<Result<String, SkillDiscoveryError>>
Load the full body of a skill by name.
Returns None if the skill is not found or Some(Err(...)) if the
file cannot be read.
Sourcepub fn format_for_prompt(&self) -> String
pub fn format_for_prompt(&self) -> String
Format all skill metadata as a string suitable for inclusion in a system prompt or command listing.
Each skill is represented as a brief entry with name and description.
Auto Trait Implementations§
impl Freeze for SkillRegistry
impl RefUnwindSafe for SkillRegistry
impl Send for SkillRegistry
impl Sync for SkillRegistry
impl Unpin for SkillRegistry
impl UnsafeUnpin for SkillRegistry
impl UnwindSafe for SkillRegistry
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