import sys
from unittest.mock import MagicMock

# Mock missing dependencies
for module in [
    'anthropic', 'httpx', 'structlog', 'firecrawl', 'tenacity',
    'pydantic', 'pydantic_settings', 'yaml'
]:
    sys.modules[module] = MagicMock()

# Some specific mocks for tenacity to avoid issues with decorators
tenacity = sys.modules['tenacity']
tenacity.retry = lambda *args, **kwargs: lambda f: f

# Mock structlog.get_logger + contextvars
structlog = sys.modules['structlog']
structlog.get_logger.return_value = MagicMock()
sys.modules['structlog.contextvars'] = MagicMock()

# Mock pydantic
pydantic = sys.modules['pydantic']
pydantic.Field = MagicMock()

# Mock pydantic_settings
pydantic_settings = sys.modules['pydantic_settings']
pydantic_settings.BaseSettings = MagicMock
pydantic_settings.SettingsConfigDict = MagicMock
