Coverage for src/lexigram/ai/cli/doctor.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""CLI doctor checks for lexigram-ai.""" 

2 

3from __future__ import annotations 

4 

5import os 

6 

7 

8def check_ai_api_keys() -> dict[str, object]: 

9 """Check that at least one AI API key is configured. 

10 

11 Looks for ``OPENAI_API_KEY`` or ``ANTHROPIC_API_KEY`` environment variables. 

12 

13 Returns: 

14 A DoctorCheckResult-compatible dict. 

15 """ 

16 keys_found = [ 

17 key for key in ("OPENAI_API_KEY", "ANTHROPIC_API_KEY") if os.environ.get(key) 

18 ] 

19 if keys_found: 

20 return {"status": "ok", "message": f"Found API keys: {', '.join(keys_found)}"} 

21 return { 

22 "status": "warning", 

23 "message": "No AI API keys found. Set OPENAI_API_KEY or ANTHROPIC_API_KEY.", 

24 }