//! steme-pharma: Self-serve CLI for exploring GLP-1 drug data in StemeDB.
//!
//! # Usage
//!
//! ```bash
//! # Ingest FDA data
//! steme-pharma ingest semaglutide,tirzepatide
//! steme-pharma ingest --with-conflicts
//!
//! # Query with skeptic lens (default)
//! steme-pharma query Semaglutide nausea_rate
//!
//! # Query with layered per-tier view
//! steme-pharma query Semaglutide nausea_rate --mode layered
//!
//! # Query with specific lens
//! steme-pharma query Semaglutide nausea_rate --mode recency
//!
//! # Compare two subjects
//! steme-pharma compare Semaglutide Tirzepatide -p nausea_rate
//!
//! # List predicates for a subject
//! steme-pharma explore Semaglutide
//!
//! # JSON output
//! steme-pharma query Semaglutide nausea_rate --format json
//! ```

// CLI binary - println/eprintln are appropriate for user-facing output
#![allow(clippy::print_stdout, clippy::print_stderr)]

#[path = "steme_pharma/cli.rs"]
mod cli;
#[path = "steme_pharma/commands.rs"]
mod commands;
#[path = "steme_pharma/helpers.rs"]
mod helpers;
#[path = "steme_pharma/output.rs"]
mod output;

use clap::Parser;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    cli::Cli::parse().run().await
}
