Coverage for src/local_deep_research/llm/providers/implementations/xai.py: 100%
14 statements
« prev ^ index » next coverage.py v7.15.1, created at 2026-07-20 01:24 +0000
« prev ^ index » next coverage.py v7.15.1, created at 2026-07-20 01:24 +0000
1"""xAI Grok LLM provider for Local Deep Research."""
3from ..base import Exposure
4from ..openai_base import OpenAICompatibleProvider
7class XAIProvider(OpenAICompatibleProvider):
8 """xAI Grok provider using OpenAI-compatible endpoint.
10 This uses xAI's OpenAI-compatible API endpoint to access Grok models.
11 """
13 provider_name = "xAI Grok"
14 api_key_setting = "llm.xai.api_key"
15 default_base_url = "https://api.x.ai/v1"
16 default_model = "" # User must explicitly pick a model — no silent fallback
18 # Metadata for auto-discovery
19 provider_key = "XAI"
20 company_name = "xAI"
21 is_cloud = True
22 # Egress exposure (ADR-0007): cloud inference sink — data leaves the box.
23 egress_exposure = Exposure.EXPOSING
25 @classmethod
26 def requires_auth_for_models(cls):
27 """xAI requires authentication for listing models."""
28 return True