use clap::Parser; use sandbox_agent::cli::{ init_logging, run_command, CliConfig, CliError, Command, GigacodeCli, OpencodeArgs, }; fn main() { if let Err(err) = run() { tracing::error!(error = %err, "gigacode failed"); std::process::exit(1); } } fn run() -> Result<(), CliError> { let started = std::time::Instant::now(); let cli = GigacodeCli::parse(); let config = CliConfig { token: cli.token, no_token: cli.no_token, gigacode: true, }; let yolo = cli.yolo; let command = match cli.command { Some(Command::Opencode(mut args)) => { args.yolo = args.yolo || yolo; Command::Opencode(args) } Some(other) => other, None => { let mut args = OpencodeArgs::default(); args.yolo = yolo; Command::Opencode(args) } }; if let Err(err) = init_logging(&command) { eprintln!("failed to init logging: {err}"); return Err(err); } tracing::info!( command = ?command, startup_ms = started.elapsed().as_millis() as u64, "gigacode.run: command starting" ); let command_started = std::time::Instant::now(); let result = run_command(&command, &config); tracing::info!( command = ?command, command_ms = command_started.elapsed().as_millis() as u64, total_ms = started.elapsed().as_millis() as u64, "gigacode.run: command exited" ); result }