#![forbid(unsafe_code)]
#![allow(clippy::result_large_err)]
pub mod arguments;
pub mod catalog;
pub mod context;
pub mod cursor;
pub mod dates;
pub mod descriptions;
pub mod error;
pub mod fixes;
pub mod graph;
pub mod history;
pub mod links;
pub mod names;
pub mod paths;
pub mod planner;
pub mod query;
pub mod read;
pub mod reference;
pub mod select;
pub mod store_index;
pub mod translate;
pub mod version;
pub use catalog::{MINIMAL_TOOLS, Profile, Surface, ToolOutcome, ToolSpec};
pub use context::{SemanticVec, StoreContext, Target, glob_to_like};
pub use cursor::{decode_cursor, decode_path_cursor, encode_cursor};
pub use error::{Result, SurfaceError};
pub use names::{UnknownNames, VocabularyCache};
pub use paths::{reference_path, storage_path};
pub use planner::SqlitePlanner;
pub use query::{
OqxResult, QueryOptions, collect_semantic_phrases, embed_phrases, query, query_ast,
rewrite_query,
};
pub use version::{BuildInfo, MCP_PROTOCOL_VERSION, version_info};
pub const SPEC_VERSION: &str = "4.9";
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
#[cfg(test)]
mod version_tests {
use super::SPEC_VERSION;
#[test]
fn spec_version_matches_the_crate_line() {
let crate_version = env!("CARGO_PKG_VERSION");
assert!(
crate_version.starts_with(&format!("{SPEC_VERSION}.")),
"crate {crate_version} must track spec {SPEC_VERSION}.x"
);
}
}