{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-FBMPTSBO.cjs","../src/libs/providers/ollama/ollama-embedding-model.ts"],"names":["OllamaEmbeddingModel","#config","#settings","modelId","settings","config","abortSignal","values","TooManyEmbeddingValuesForCallError","responseHeaders","response","postJsonToApi","ollamaFailedResponseHandler","createJsonResponseHandler"],"mappings":"AAAA;AACA,wDAAwC,4CCEjC,uDACgD,0BACvC,IAcHA,CAAAA,WAAN,KAA+D,CAC3DC,CAAAA,CAAAA,CACAC,CAAAA,CAAAA,gBAEA,oBAAA,CAAuB,KAAA,IAG5B,QAAA,CAAA,CAAmB,CACrB,OAAO,IAAA,CAAKD,CAAAA,CAAAA,CAAQ,QACtB,CAEA,IAAI,oBAAA,CAAA,CAA+B,CACjC,wBAAO,IAAA,CAAKC,CAAAA,CAAAA,CAAU,oBAAA,SAAwB,MAChD,CAEA,IAAI,qBAAA,CAAA,CAAiC,CACnC,MAAO,CAAA,CACT,CAEA,WAAA,CACEC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,qCACA,IAAA,CAAK,OAAA,CAAUF,CAAAA,CACf,IAAA,CAAKD,CAAAA,CAAAA,CAAYE,CAAAA,CACjB,IAAA,CAAKH,CAAAA,CAAAA,CAAUI,CACjB,CAEA,MAAM,OAAA,CAAQ,CACZ,WAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CACF,CAAA,CAEE,CACA,EAAA,CAAIA,CAAAA,CAAO,MAAA,CAAS,IAAA,CAAK,oBAAA,CACvB,MAAM,IAAIC,iDAAAA,CAAmC,CAC3C,oBAAA,CAAsB,IAAA,CAAK,oBAAA,CAC3B,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,QAAA,CAAU,IAAA,CAAK,QAAA,CACf,MAAA,CAAAD,CACF,CAAC,CAAA,CAGH,GAAM,CAAC,eAAA,CAAAE,CAAAA,CAAiB,KAAA,CAAOC,CAAQ,CAAA,CAAI,MAAMC,0CAAAA,CAC/C,WAAA,CAAAL,CAAAA,CACA,IAAA,CAAM,CACJ,KAAA,CAAOC,CAAAA,CACP,KAAA,CAAO,IAAA,CAAK,OACd,CAAA,CACA,qBAAA,CAAuBK,mBAAAA,CACvB,KAAA,CAAO,IAAA,CAAKX,CAAAA,CAAAA,CAAQ,KAAA,CACpB,OAAA,CAAS,IAAA,CAAKA,CAAAA,CAAAA,CAAQ,OAAA,CAAQ,CAAA,CAC9B,yBAAA,CAA2BY,sDAAAA,CAE3B,CAAA,CACA,GAAA,CAAK,CAAA,EAAA;ADzEg1B","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-FBMPTSBO.cjs","sourcesContent":[null,"import {\n  type EmbeddingModelV2,\n  TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {createJsonResponseHandler, postJsonToApi} from '@ai-sdk/provider-utils';\nimport {z} from 'zod';\n\nimport type {\n  OllamaEmbeddingModelId,\n  OllamaEmbeddingSettings,\n} from './ollama-embedding-settings.js';\nimport {ollamaFailedResponseHandler} from './ollama-error.js';\n\ntype OllamaEmbeddingConfig = {\n  baseURL: string;\n  fetch?: typeof fetch;\n  headers: () => Record<string, string | undefined>;\n  provider: string;\n};\nexport class OllamaEmbeddingModel implements EmbeddingModelV2<string> {\n  readonly #config: OllamaEmbeddingConfig;\n  readonly #settings: OllamaEmbeddingSettings;\n\n  readonly specificationVersion = 'v2';\n  readonly modelId: OllamaEmbeddingModelId;\n\n  get provider(): string {\n    return this.#config.provider;\n  }\n\n  get maxEmbeddingsPerCall(): number {\n    return this.#settings.maxEmbeddingsPerCall ?? 2048;\n  }\n\n  get supportsParallelCalls(): boolean {\n    return false;\n  }\n\n  constructor(\n    modelId: OllamaEmbeddingModelId,\n    settings: OllamaEmbeddingSettings,\n    config: OllamaEmbeddingConfig,\n  ) {\n    this.modelId = modelId;\n    this.#settings = settings;\n    this.#config = config;\n  }\n\n  async doEmbed({\n    abortSignal,\n    values,\n  }: Parameters<EmbeddingModelV2<string>['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV2<string>['doEmbed']>>\n  > {\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        modelId: this.modelId,\n        provider: this.provider,\n        values,\n      });\n    }\n\n    const {responseHeaders, value: response} = await postJsonToApi({\n      abortSignal,\n      body: {\n        input: values,\n        model: this.modelId,\n      },\n      failedResponseHandler: ollamaFailedResponseHandler,\n      fetch: this.#config.fetch,\n      headers: this.#config.headers(),\n      successfulResponseHandler: createJsonResponseHandler(\n        ollamaTextEmbeddingResponseSchema as any,\n      ),\n      url: `${this.#config.baseURL}/embed`,\n    });\n\n    const typedResponse = response as z.infer<\n      typeof ollamaTextEmbeddingResponseSchema\n    >;\n\n    return {\n      embeddings: typedResponse.embeddings,\n      response: {headers: responseHeaders},\n      usage: typedResponse.prompt_eval_count\n        ? {tokens: typedResponse.prompt_eval_count}\n        : undefined,\n    };\n  }\n}\n\nconst ollamaTextEmbeddingResponseSchema = z.object({\n  embeddings: z.array(z.array(z.number())),\n  prompt_eval_count: z.number().nullable(),\n});\n"]}