use std::sync::Arc;
use agent_contracts::context::budget::TokenBudgetPolicy;
use agent_contracts::{CompressionPipeline, PromptBuilder, SkillRegistry, ToolRegistry};
use agent_types::context::{FeatureFlags, TokenBudgetConfig};
use llm_client::LlmProviderWrapper;
pub struct RuntimeSnapshot {
pub llm_provider: Arc<LlmProviderWrapper>,
pub tool_registry: Arc<dyn ToolRegistry>,
pub skill_registry: Arc<dyn SkillRegistry>,
pub prompt_builder: Arc<dyn PromptBuilder>,
pub system_prompt: Arc<str>,
pub feature_flags: FeatureFlags,
pub compression_pipeline: Arc<dyn CompressionPipeline>,
pub max_turns: u32,
pub token_budget_config: TokenBudgetConfig,
pub token_budget_policy: Arc<dyn TokenBudgetPolicy>,
}