| 587 | }; |
| 588 | |
| 589 | const checkAIProvider = (env: Env): string[] => { |
| 590 | if (!env.AI_ENABLED || env.NODE_ENV === "test") { |
| 591 | return []; |
| 592 | } |
| 593 | |
| 594 | if (env.AI_PROVIDER === "openai" && env.OPENAI_API_KEY === "") { |
| 595 | return [ |
| 596 | "AI_ENABLED=true with AI_PROVIDER=openai requires OPENAI_API_KEY (works for OpenAI, OpenRouter, Ollama via OPENAI_BASE_URL)", |
| 597 | ]; |
| 598 | } |
| 599 | |
| 600 | if (env.AI_PROVIDER === "anthropic" && env.ANTHROPIC_API_KEY === "") { |
| 601 | return [ |
| 602 | "AI_ENABLED=true with AI_PROVIDER=anthropic requires ANTHROPIC_API_KEY", |
| 603 | ]; |
| 604 | } |
| 605 | |
| 606 | return []; |
| 607 | }; |
| 608 | |
| 609 | const checkBilling = (env: Env): string[] => { |
| 610 | if (!env.BILLING_ENABLED || env.NODE_ENV === "test") { |