{"version":3,"sources":["/Users/Raffael.Prem/WebstormProjects/agentest/dist/openai-compatible-Y5VYQTXJ.cjs","../src/llm/openai-compatible.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACJA,wCAA6B;AAetB,SAAS,8BAAA,CACd,OAAA,EACA,OAAA,EACa;AACb,EAAA,MAAM,YAAA,EACJ,OAAA,CAAQ,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,SAAS,CAAA,CAAE,OAAA,EAAS,EAAA,EACzD,oBAAA,CAAqB,OAAA,CAAQ,SAAS,EAAA,EACtC,KAAA,CAAA;AACN,EAAA,MAAM,SAAA,EAAW,kCAAA;AAAa,IAC5B,OAAA,EAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,MAAA,mBAAQ,OAAA,CAAQ,MAAA,UAAU,cAAA;AAAA,IAC1B,GAAI,YAAA,EAAc,EAAE,KAAA,EAAO,YAAY,EAAA,EAAI,CAAC;AAAA,EAC9C,CAAC,CAAA;AACD,EAAA,OAAO,iDAAA,QAAkB,CAAS,IAAA,CAAK,OAAO,CAAA,EAAG,mBAAA,EAAqB,OAAA,CAAQ,SAAS,CAAA;AACzF;AAEA,SAAS,oBAAA,CAAqB,KAAA,EAA8C;AAC1E,EAAA,OAAO,MAAA,CAAO,KAAA,EAAO,IAAA,EAAA,GAAS;AAC5B,IAAA,GAAA,iBAAI,IAAA,2BAAM,OAAA,GAAQ,OAAO,IAAA,CAAK,KAAA,IAAS,QAAA,EAAU;AAC/C,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACnC,QAAA,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,EAAE,GAAG,MAAA,EAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;AAAA,MAClE,EAAA,UAAQ;AAAA,MAER;AAAA,IACF;AACA,IAAA,OAAO,KAAA,CAAM,KAAA,EAAO,IAAI,CAAA;AAAA,EAC1B,CAAA;AACF;ADhBA;AACE;AACF,wEAAC","file":"/Users/Raffael.Prem/WebstormProjects/agentest/dist/openai-compatible-Y5VYQTXJ.cjs","sourcesContent":[null,"import { createOpenAI } from '@ai-sdk/openai'\nimport { createLLMProvider, type LLMProvider } from './provider.js'\n\nexport interface OpenAICompatibleOptions {\n  baseURL: string\n  apiKey?: string\n  timeoutMs?: number\n  /**\n   * Extra fields to merge into every JSON request body sent to the endpoint.\n   * Useful for vendor-specific params not exposed by the AI SDK, e.g.\n   * `{ chat_template_kwargs: { enable_thinking: false } }` for Qwen3 models.\n   */\n  extraBody?: Record<string, unknown>\n}\n\nexport function createOpenAICompatibleProvider(\n  modelId: string,\n  options: OpenAICompatibleOptions,\n): LLMProvider {\n  const customFetch =\n    options.extraBody && Object.keys(options.extraBody).length > 0\n      ? createExtraBodyFetch(options.extraBody)\n      : undefined\n  const provider = createOpenAI({\n    baseURL: options.baseURL,\n    apiKey: options.apiKey ?? 'not-needed',\n    ...(customFetch ? { fetch: customFetch } : {}),\n  })\n  return createLLMProvider(provider.chat(modelId), 'openai-compatible', options.timeoutMs)\n}\n\nfunction createExtraBodyFetch(extra: Record<string, unknown>): typeof fetch {\n  return async (input, init) => {\n    if (init?.body && typeof init.body === 'string') {\n      try {\n        const parsed = JSON.parse(init.body) as Record<string, unknown>\n        init = { ...init, body: JSON.stringify({ ...parsed, ...extra }) }\n      } catch {\n        // Non-JSON body — leave it alone.\n      }\n    }\n    return fetch(input, init)\n  }\n}\n"]}