import { ChatOpenAI as LangchainChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { IMultiModalOption, IVisionChatModal } from '../../../src' export class ChatOpenRouter extends LangchainChatOpenAI implements IVisionChatModal { configuredModel: string configuredMaxToken?: number multiModalOption: IMultiModalOption id: string constructor(id: string, fields?: ChatOpenAIFields) { super(fields) this.id = id this.configuredModel = fields?.modelName ?? '' this.configuredMaxToken = fields?.maxTokens } revertToOriginalModel(): void { this.model = this.configuredModel this.maxTokens = this.configuredMaxToken } setMultiModalOption(multiModalOption: IMultiModalOption): void { this.multiModalOption = multiModalOption } setVisionModel(): void { // pass - OpenRouter models don't need model switching } }