use crate::lock::ItemKind;
use crate::types::DestPath;
use super::TargetAdapter;
#[derive(Debug)]
pub struct AgentsAdapter;
impl TargetAdapter for AgentsAdapter {
fn name(&self) -> &str {
".agents"
}
fn skill_variant_key(&self) -> Option<&str> {
None
}
fn default_dest_path(&self, kind: ItemKind, name: &str) -> Option<DestPath> {
let path = match kind {
ItemKind::Agent => format!("agents/{name}.md"),
ItemKind::Skill => format!("skills/{name}"),
ItemKind::Hook => format!("hooks/{name}"),
ItemKind::McpServer => format!("mcp/{name}"),
ItemKind::BootstrapDoc => format!("bootstrap/{name}/BOOTSTRAP.md"),
};
Some(DestPath::from(path.as_str()))
}
}