// LiteLLM proxy provider using the OpenAI-compatible chat completions API.

import { OpenAICompatibleProvider } from './openai-compatible.mjs';

export class LiteLLMProvider extends OpenAICompatibleProvider {
  constructor(config = {}) {
    const baseUrl = config.baseUrl?.replace(/\/+$/, '') || null;
    const model = config.model || null;

    super({
      ...config,
      name: 'litellm',
      baseUrl: baseUrl || 'http://localhost:4000/v1',
      model: model || 'unconfigured',
      requiresApiKey: true,
    });

    this.baseUrl = baseUrl;
    this.model = model;
  }

  get isConfigured() {
    return Boolean(this.baseUrl && this.apiKey && this.model);
  }

  get status() {
    if (!this.baseUrl) return { state: 'misconfigured', reason: 'LLM_BASE_URL is required for LiteLLM' };
    if (!this.apiKey) return { state: 'misconfigured', reason: 'LLM_API_KEY is required for LiteLLM' };
    if (!this.model) return { state: 'misconfigured', reason: 'LLM_MODEL is required for LiteLLM' };
    return { state: 'configured', provider: this.name, model: this.model, baseUrl: this.baseUrl };
  }
}
