//! Query parsing, planning, and execution.
//!
//! The primary query type is `Retrieve` -- a typed AST representing
//! "given these constraints, rank content for me." Constructed via
//! `RetrieveBuilder` or (M3+) parsed from the query language.
//!
//! The `Search` query type combines BM25 text retrieval, ANN vector retrieval,
//! and RRF fusion with the same personalization, filtering, and diversity
//! pipeline as `Retrieve`. Constructed via `SearchBuilder`.

pub mod executor;
pub mod fusion;
pub mod retrieve;
pub mod search;
pub mod stats;
pub mod suggest;

pub use executor::RetrieveExecutor;
pub use fusion::{HybridFusion, RetrievalMode, ann_to_ranked, route_results};
pub use retrieve::{
    Cursor, ProfileRef, QueryError, Results, Retrieve, RetrieveBuilder, RetrieveResult, Signal,
};
pub use search::{Search, SearchBuilder, SearchResultItem, SearchResults, WithinScope};
pub use stats::QueryStats;
