1mod actions;
2mod archive_types;
3mod config_types;
4mod cwd;
5mod dispatch;
6mod embedding_types;
7mod eval_types;
8mod memory_types;
9mod procedure_types;
10mod query_types;
11mod review_types;
12mod rule_types;
13#[cfg(test)]
14mod tests;
15#[cfg(test)]
16mod tests_config;
17#[cfg(test)]
18mod tests_eval;
19#[cfg(test)]
20mod tests_governance;
21#[cfg(test)]
22mod tests_maintenance;
23#[cfg(test)]
24mod tests_procedures;
25#[cfg(test)]
26mod tests_raw;
27#[cfg(test)]
28mod tests_rules;
29#[cfg(test)]
30mod tests_trace;
31#[cfg(test)]
32mod tests_worker;
33mod types;
34mod worker_types;
35
36use anyhow::Result;
37use clap::{Command, CommandFactory, FromArgMatches};
38
39use types::Cli;
40
41pub async fn run() -> Result<()> {
42 let matches = cli_command().get_matches();
43 let cli = Cli::from_arg_matches(&matches)?;
44 dispatch::run_cli(cli).await
45}
46
47fn cli_command() -> Command {
48 let version = crate::build_info::version_label();
49 Cli::command()
50 .version(version.clone())
51 .long_version(version)
52}