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

1"""xAI Grok LLM provider for Local Deep Research.""" 

2 

3from ..base import Exposure 

4from ..openai_base import OpenAICompatibleProvider 

5 

6 

7class XAIProvider(OpenAICompatibleProvider): 

8 """xAI Grok provider using OpenAI-compatible endpoint. 

9 

10 This uses xAI's OpenAI-compatible API endpoint to access Grok models. 

11 """ 

12 

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 

17 

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 

24 

25 @classmethod 

26 def requires_auth_for_models(cls): 

27 """xAI requires authentication for listing models.""" 

28 return True