/** * Anthropic SDK singleton. * * Lazy: the client is constructed on first access so importing this module is * cheap and doesn't require ANTHROPIC_API_KEY to be set at boot. Throws on * first use if the env var is missing. */ import Anthropic from '@anthropic-ai/sdk'; let instance: Anthropic | null = null; export function getAnthropicClient(): Anthropic { if (instance) return instance; const apiKey = process.env.ANTHROPIC_API_KEY; if (!apiKey) { throw new Error( 'ANTHROPIC_API_KEY is not set. The AI Ticket Analyzer cannot run without it.' ); } instance = new Anthropic({ apiKey }); return instance; } export function isAnthropicConfigured(): boolean { return !!process.env.ANTHROPIC_API_KEY; } /** Test-only: replace the singleton (e.g. with a vitest-mocked client). */ export function _setAnthropicClientForTests(client: Anthropic | null): void { instance = client; }