pub mod claude_code;
pub mod cline;
pub mod codex_cli;
pub mod cursor;
use crate::core::envelope::alias::AliasTable;
fn tables() -> [&'static AliasTable; 4] {
[
&claude_code::ALIASES,
&codex_cli::ALIASES,
&cursor::ALIASES,
&cline::ALIASES,
]
}
pub fn aliases_for(source: &str) -> Option<&'static AliasTable> {
tables().into_iter().find(|table| table.agent == source)
}
pub fn binding_id(source: &str, renders: bool) -> String {
match aliases_for(source) {
Some(table) => table.binding_id(renders).to_string(),
None => format!("{}_hook", source.replace('-', "_")),
}
}