mod extra_path;
mod host_token;
mod load;
mod path;
mod walk;
#[cfg(test)]
mod tests;
use std::path::PathBuf;
pub const CURSOR_VENDOR_DENYLIST: &[&str] = &["shell", "canvas", "statusline"];
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DiscoveryOptions {
pub paths: Vec<String>,
pub ignore: Vec<String>,
pub disabled: Vec<String>,
pub vendor_roots: Vec<String>,
pub user_skills_dir: Option<PathBuf>,
pub ascii_names: bool,
pub implicit_roots: bool,
}
impl Default for DiscoveryOptions {
fn default() -> Self {
Self {
paths: Vec::new(),
ignore: Vec::new(),
disabled: Vec::new(),
vendor_roots: Vec::new(),
user_skills_dir: None,
ascii_names: false,
implicit_roots: true,
}
}
}
pub use path::{walk_cwd_to_git_root, with_home_override};
pub use walk::{
ValidationReport, discover, find_skill_by_name, format_watch_dirs, validate_path,
validate_path_with_options, watch_dirs,
};
#[cfg(test)]
use crate::miss::{
unknown_or_skipped_skill, unknown_or_skipped_skill_message, unknown_or_skipped_skill_named,
};
#[cfg(test)]
use extra_path::{
ExtraPathMd, classify_extra_path_md, extra_path_is_loose_collection,
load_classified_extra_path_package,
};
#[cfg(test)]
use host_token::{
host_token_collapses_after_whitespace, path_has_line_separator, str_has_line_separator,
};
#[cfg(test)]
use load::take_read_skill_md_paths;
#[cfg(test)]
use path::home_dir;