#![allow(dead_code)]
pub use mockforge_registry_core::auth;
pub mod ai;
pub mod cache;
pub mod circuit_breaker;
pub mod config;
pub mod database;
pub mod deployment;
pub mod email;
pub mod error;
pub mod fly_logs;
pub mod fly_metrics;
pub mod handlers;
pub mod metrics;
pub mod middleware;
pub use mockforge_registry_core::models;
pub mod pillar_tracking_init;
pub mod redis;
pub mod routes;
pub mod run_queue;
pub mod storage;
pub use mockforge_registry_core::store;
pub use mockforge_registry_core::two_factor;
pub use mockforge_registry_core::validation;
pub mod workers;
use std::sync::Arc;
use crate::circuit_breaker::CircuitBreakerRegistry;
use crate::config::Config;
use crate::database::Database;
use crate::redis::RedisPool;
use crate::storage::PluginStorage;
use crate::store::RegistryStore;
#[derive(Clone)]
pub struct AppState {
pub db: Database,
pub storage: PluginStorage,
pub config: Config,
pub metrics: Arc<mockforge_observability::prometheus::MetricsRegistry>,
pub analytics_db: Option<mockforge_analytics::AnalyticsDatabase>,
pub redis: Option<RedisPool>,
pub circuit_breakers: CircuitBreakerRegistry,
pub store: Arc<dyn RegistryStore>,
}