use crate::template::FileFragment;
#[derive(Debug, Clone)]
pub struct DependencySpec {
pub crate_name: &'static str,
pub version: &'static str,
pub features: Vec<&'static str>,
}
#[derive(Debug, Clone)]
pub struct AddonCodeFragments {
pub imports: Vec<&'static str>,
pub initialization: &'static str,
pub agent_builder_calls: &'static str,
pub env_vars: Vec<(&'static str, &'static str)>,
pub additional_files: Vec<FileFragment>,
}
#[derive(Debug, Clone)]
pub struct CapabilityAddon {
pub name: &'static str,
pub description: &'static str,
pub required_features: Vec<&'static str>,
pub additional_deps: Vec<DependencySpec>,
pub init_priority: u8,
pub incompatible_with: Vec<&'static str>,
pub code_fragments: AddonCodeFragments,
}