//! TCP and gRPC front-ends for AstraeaDB.
//!
//! `AstraeaServer` runs a newline-delimited JSON request loop over TCP
//! (one `protocol::Request` per line, one `protocol::Response` per
//! line); the `grpc::AstraeaGrpcService` provides a parallel tonic
//! adapter. Both transports are thin and must route through a single
//! `RequestHandler::handle(Request) -> Response` so feature parity is
//! preserved. Cross-cutting concerns live in `AuthManager`,
//! `ConnectionManager`, `ServerMetrics`, and `TlsConfig`.
//!
//! Invariants: `request_type_name` in `server.rs` must have an arm for
//! every `Request` variant — it drives metrics and RBAC. Vector-aware
//! requests (`VectorSearch`, `HybridSearch`, `SemanticNeighbors`,
//! `SemanticWalk`, anchor-less `GraphRag`) require constructing the
//! server with `Some(vector_index)`; otherwise they return an error
//! rather than panic. `collect_graph_stats` and `resolve_node_ids(None,
//! ...)` probe IDs `1..10_000` sequentially and silently truncate.
pub use ;
pub use ;
pub use RequestHandler;
pub use ServerMetrics;
pub use ;
pub use ;
pub use ;