use std::collections::HashMap; use std::sync::Arc; use std::sync::Mutex as StdMutex; use aether_runtime::{ConcurrencyGate, DistributedConcurrencyGate}; use super::super::async_task::{VideoTaskPollerConfig, VideoTaskService}; use super::super::cache::{ AuthApiKeyLastUsedCache, AuthContextCache, DashboardResponseCache, DirectPlanBypassCache, SchedulerAffinityCache, SystemConfigCache, }; use super::super::data::GatewayDataState; use super::super::fallback_metrics; use super::super::rate_limit::FrontdoorUserRpmLimiter; use super::super::{provider_transport, usage}; use super::{ AdminBillingCollectorRecord, AdminBillingRuleRecord, AdminPaymentCallbackRecord, AdminWalletPaymentOrderRecord, AdminWalletRefundRecord, AdminWalletTransactionRecord, CachedProviderTransportSnapshot, FrontdoorCorsConfig, LocalExecutionRuntimeMissDiagnostic, LocalProviderDeleteTaskState, ProviderTransportSnapshotCacheKey, }; #[cfg(test)] type TestExecutionRuntimeSyncOverrideFn = dyn Fn( &aether_contracts::ExecutionPlan, ) -> Result + Send + Sync; #[cfg(test)] #[derive(Clone)] pub(crate) struct TestExecutionRuntimeSyncOverride( pub(crate) Arc, ); #[cfg(test)] impl std::fmt::Debug for TestExecutionRuntimeSyncOverride { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.write_str("TestExecutionRuntimeSyncOverride(..)") } } #[derive(Debug, Clone)] pub struct AppState { #[cfg(test)] pub(crate) execution_runtime_override_base_url: Option, #[cfg(test)] pub(crate) execution_runtime_sync_override: Option, pub(crate) data: Arc, pub(crate) usage_runtime: Arc, pub(crate) video_tasks: Arc, pub(crate) video_task_poller: Option, pub(crate) request_gate: Option>, pub(crate) distributed_request_gate: Option>, pub(crate) client: reqwest::Client, pub(crate) auth_context_cache: Arc, pub(crate) auth_api_key_last_used_cache: Arc, pub(crate) oauth_refresh: Arc, pub(crate) direct_plan_bypass_cache: Arc, pub(crate) scheduler_affinity_cache: Arc, pub(crate) dashboard_response_cache: Arc, pub(crate) system_config_cache: Arc, pub(crate) fallback_metrics: Arc, pub(crate) frontdoor_cors: Option>, pub(crate) frontdoor_user_rpm: Arc, pub(crate) tunnel: crate::tunnel::EmbeddedTunnelState, pub(crate) provider_transport_snapshot_cache: Arc>>, pub(crate) provider_key_rpm_resets: Arc>>, pub(crate) local_execution_runtime_miss_diagnostics: Arc>>, pub(crate) admin_monitoring_error_stats_reset_at: Arc>>, pub(crate) provider_delete_tasks: Arc>>, #[cfg(test)] pub(crate) provider_oauth_state_store: Option>>>, #[cfg(test)] pub(crate) provider_oauth_device_session_store: Option>>>, #[cfg(test)] pub(crate) provider_oauth_batch_task_store: Option>>>, #[cfg(test)] pub(crate) auth_session_store: Option>>>, #[cfg(test)] pub(crate) auth_email_verification_store: Option>>>, #[cfg(test)] pub(crate) auth_email_delivery_store: Option>>>, #[cfg(test)] pub(crate) auth_user_store: Option< Arc>>, >, #[cfg(test)] pub(crate) auth_user_model_capability_store: Option>>>, #[cfg(test)] pub(crate) auth_wallet_store: Option< Arc>>, >, #[cfg(test)] pub(crate) admin_wallet_payment_order_store: Option>>>, #[cfg(test)] pub(crate) admin_payment_callback_store: Option>>>, #[cfg(test)] pub(crate) admin_wallet_transaction_store: Option>>>, #[cfg(test)] pub(crate) admin_wallet_refund_store: Option>>>, #[cfg(test)] pub(crate) admin_billing_rule_store: Option>>>, #[cfg(test)] pub(crate) admin_billing_collector_store: Option>>>, #[cfg(test)] pub(crate) admin_security_blacklist_store: Option>>>, #[cfg(test)] pub(crate) admin_security_whitelist_store: Option>>>, #[cfg(test)] pub(crate) admin_monitoring_cache_affinity_store: Option>>>, #[cfg(test)] pub(crate) admin_monitoring_redis_key_store: Option>>>, #[cfg(test)] pub(crate) provider_oauth_token_url_overrides: Arc>>, }