llm 1.3.8

A Rust library unifying multiple LLM backends.
Documentation
mod loader;
mod types;

use std::path::Path;

pub use loader::{load_skills, SkillError};
pub use types::Skill;

#[derive(Debug, Default, Clone)]
pub struct SkillCatalog {
    skills: Vec<Skill>,
}

impl SkillCatalog {
    pub fn load(dir: &Path) -> Result<Self, SkillError> {
        let skills = load_skills(dir)?;
        Ok(Self { skills })
    }

    pub fn list(&self) -> &[Skill] {
        &self.skills
    }

    pub fn find(&self, name: &str) -> Option<&Skill> {
        self.skills.iter().find(|skill| skill.matches(name))
    }
}