use anyhow::{Result, anyhow};
use crate::sidecars::{self, SidecarInstallOptions};
#[derive(Debug, Default, Clone)]
pub struct InstallOptions {
pub sidecars_only: bool,
pub skip_kumiho: bool,
pub skip_operator: bool,
pub dry_run: bool,
pub python: Option<String>,
}
pub async fn run(opts: InstallOptions) -> Result<()> {
if !opts.sidecars_only {
return Err(anyhow!(
"Full install is not yet implemented as a Rust subcommand.\n\
Use one of:\n \
construct install --sidecars-only # install Kumiho + Operator Python MCP sidecars\n \
./install.sh # full POSIX install (source build + sidecars + onboard)\n \
setup.bat # full Windows install"
));
}
sidecars::install_sidecars(&SidecarInstallOptions {
skip_kumiho: opts.skip_kumiho,
skip_operator: opts.skip_operator,
dry_run: opts.dry_run,
python: opts.python,
})
.await
}