/**
 * 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;
}
