pub mod auth;
pub mod config;
pub mod cors;
pub mod security;
pub use auth::{check_auth, AuthResult};
pub use config::{
AccessConfig, AgentEntry, AgentsConfig, ApiKeyConfig, BrainConfig, ClientRateLimitConfig,
DeliveryConfig, LlmConfig, LogFormat, LogRotation, LoggingConfig, ProviderEntry,
};
pub use security::ActionTier;
pub mod timeouts {
use std::time::Duration;
pub const EMBEDDING_OLLAMA: Duration = Duration::from_secs(120);
pub const EMBEDDING_OPENAI: Duration = Duration::from_secs(60);
pub const LLM_GENERATE: Duration = Duration::from_secs(90);
pub const HEALTH_CHECK: Duration = Duration::from_secs(2);
pub const DAEMON_SETUP: Duration = Duration::from_secs(30);
pub const STATUS_CHECK: Duration = Duration::from_secs(2);
}
pub fn normalize_keyword(word: &str) -> String {
word.trim_matches(|c: char| !c.is_alphanumeric())
.to_lowercase()
}