mod actions;
mod archive_types;
mod config_types;
mod context_types;
mod cwd;
mod dispatch;
mod doctor_types;
mod dream_backfill_types;
mod embedding_types;
#[cfg(feature = "eval")]
mod eval_types;
mod memory_types;
mod model_types;
mod procedure_types;
mod query_types;
mod reranker_types;
mod review_types;
mod rule_types;
#[cfg(test)]
mod tests;
#[cfg(test)]
mod tests_config;
#[cfg(test)]
mod tests_doctor;
#[cfg(all(test, feature = "eval"))]
mod tests_eval;
#[cfg(test)]
mod tests_governance;
#[cfg(test)]
mod tests_maintenance;
#[cfg(test)]
mod tests_procedures;
#[cfg(test)]
mod tests_raw;
#[cfg(test)]
mod tests_rules;
#[cfg(test)]
mod tests_trace;
#[cfg(test)]
mod tests_worker;
mod types;
mod worker_types;
use anyhow::Result;
use clap::{Command, CommandFactory, FromArgMatches};
use types::Cli;
pub async fn run() -> Result<()> {
let matches = cli_command().get_matches();
let cli = Cli::from_arg_matches(&matches)?;
dispatch::run_cli(cli).await
}
fn cli_command() -> Command {
let version = crate::build_info::version_label();
Cli::command()
.version(version.clone())
.long_version(version)
}