import { OpenAIProvider } from "../openai/OpenAIProvider.js";
import { DEFAULT_OPENROUTER_BASE_URL } from "../../constants.js";
import { OpenRouterCapabilities } from "./Capabilities.js";
export class OpenRouterProvider extends OpenAIProvider {
    capabilities = {
        supportsVision: (model) => OpenRouterCapabilities.supportsVision(model),
        supportsTools: (model) => OpenRouterCapabilities.supportsTools(model),
        supportsStructuredOutput: (model) => OpenRouterCapabilities.supportsStructuredOutput(model),
        supportsEmbeddings: (model) => OpenRouterCapabilities.supportsEmbeddings(model),
        supportsImageGeneration: (model) => OpenRouterCapabilities.supportsImageGeneration(model),
        supportsTranscription: (model) => OpenRouterCapabilities.supportsTranscription(model),
        supportsModeration: (model) => OpenRouterCapabilities.supportsModeration(model),
        supportsReasoning: (model) => OpenRouterCapabilities.supportsReasoning(model),
        supportsDeveloperRole: (_model) => true,
        supportsPrediction: (_model) => false,
        getContextWindow: (model) => OpenRouterCapabilities.getContextWindow(model) || null
    };
    constructor(options) {
        super({
            apiKey: options.apiKey,
            baseUrl: options.baseUrl || DEFAULT_OPENROUTER_BASE_URL
        });
    }
    providerName() {
        return "OpenRouter";
    }
}
