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
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""CLI doctor checks for lexigram-ai."""
3from __future__ import annotations
5import os
8def check_ai_api_keys() -> dict[str, object]:
9 """Check that at least one AI API key is configured.
11 Looks for ``OPENAI_API_KEY`` or ``ANTHROPIC_API_KEY`` environment variables.
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 }