use tracing::info;
use tracing_subscriber::{fmt, EnvFilter};
use xbp_cli::{api, cli};
#[tokio::main]
async fn main() {
fmt()
.with_env_filter(EnvFilter::from_default_env())
.with_ansi(cli::ui::should_emit_ansi())
.init();
if std::env::var("PORT_XBP_MCP").is_ok() {
info!("Starting XBP MCP server mode");
if let Err(e) = xbp_mcp::serve_from_env().await {
eprintln!("MCP server error: {}", e);
std::process::exit(1);
}
} else if std::env::var("PORT_XBP_API").is_ok() {
info!("Starting XBP API server mode");
if let Err(e) = api::start_api_server().await {
eprintln!("API server error: {}", e);
std::process::exit(1);
}
} else if let Err(e) = cli::run().await {
eprintln!("{}", e);
std::process::exit(1);
}
}