#![forbid(unsafe_code)]
#![warn(missing_docs, clippy::pedantic)]
#![allow(clippy::module_name_repetitions)]
mod auth;
mod cache;
mod classify;
mod deferred;
mod layer;
mod metrics;
#[cfg(feature = "opentelemetry")]
mod opentelemetry_metrics;
#[cfg(test)]
mod properties;
mod task;
pub use auth::{
InMemoryTenantStore, MIN_API_KEY_BYTES, Tenant, TenantStore, WeakApiKey, hash_api_key,
validate_api_key_strength,
};
pub use classify::{ClassificationError, ProtocolHeaders, classify_protocol_headers};
pub use deferred::DeferredCompletions;
pub use layer::{EdgeConfig, EdgeConfigError, MeterBody, MeterLayer, MeterService};
pub use mcp_usage_core::{TaskAttribution, TaskOriginKind};
pub use metrics::{EdgeMetrics, MetricsSnapshot, UnaccountedReason};
#[cfg(feature = "opentelemetry")]
pub use opentelemetry_metrics::{OpenTelemetryMetrics, install_opentelemetry};
pub use task::{InMemoryTaskStore, TaskAttributionStore, TaskStoreError, TaskStoreFuture};
pub const PROTOCOL_VERSION_HEADER: &str = "mcp-protocol-version";
pub const METHOD_HEADER: &str = "mcp-method";
pub const NAME_HEADER: &str = "mcp-name";
pub const API_KEY_HEADER: &str = "x-api-key";