pub(crate) struct EmbeddedSkillFile {
    pub(crate) skill: &'static str,
    pub(crate) relative_path: &'static str,
    pub(crate) contents: &'static str,
}

include!(concat!(env!("OUT_DIR"), "/embedded_skills.rs"));

pub(crate) fn embedded_skill_files() -> &'static [EmbeddedSkillFile] {
    EMBEDDED_SKILL_FILES
}

/// Returns the deduplicated, sorted set of skill directory names shipped in this binary.
pub(crate) fn embedded_skill_names() -> Vec<&'static str> {
    let mut names: Vec<&str> = EMBEDDED_SKILL_FILES.iter().map(|f| f.skill).collect();
    names.sort_unstable();
    names.dedup();
    names
}
