{"version":3,"sources":["../src/index.ts","../src/voyage-provider.ts","../src/voyage-embedding-model.ts","../src/voyage-error.ts","../src/voyage-multimodal-embedding-model.ts"],"sourcesContent":["export { createVoyage, voyage } from './voyage-provider';\nexport type { VoyageProvider, VoyageProviderSettings } from './voyage-provider';\nexport {\n  type ImageEmbeddingInput,\n  type MultimodalEmbeddingInput,\n  type MultimodalEmbeddingModel,\n  type TextEmbeddingInput,\n} from './voyage-multimodal-embedding-model';\n","import type {\n  EmbeddingModelV1,\n  LanguageModelV1,\n  ProviderV1,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  loadApiKey,\n  withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { VoyageEmbeddingModel } from './voyage-embedding-model';\nimport type {\n  VoyageEmbeddingModelId,\n  VoyageEmbeddingSettings,\n} from './voyage-embedding-settings';\nimport type { VoyageMultimodalEmbeddingModelId } from './voyage-multimodal-embedding-settings';\nimport type { VoyageMultimodalEmbeddingSettings } from './voyage-multimodal-embedding-settings';\nimport {\n  MultimodalEmbeddingModel,\n  type ImageEmbeddingInput,\n  type MultimodalEmbeddingInput,\n} from './voyage-multimodal-embedding-model';\n\nexport interface VoyageProvider extends ProviderV1 {\n  (\n    modelId: VoyageEmbeddingModelId,\n    settings?: VoyageEmbeddingSettings,\n  ): EmbeddingModelV1<string>;\n\n  /**\n  @deprecated Use `textEmbeddingModel()` instead.\n     */\n  embedding(\n    modelId: VoyageEmbeddingModelId,\n    settings?: VoyageEmbeddingSettings,\n  ): EmbeddingModelV1<string>;\n\n  /**\n  @deprecated Use `textEmbeddingModel()` instead.\n     */\n  textEmbedding(\n    modelId: VoyageEmbeddingModelId,\n    settings?: VoyageEmbeddingSettings,\n  ): EmbeddingModelV1<string>;\n\n  textEmbeddingModel: (\n    modelId: VoyageEmbeddingModelId,\n    settings?: VoyageEmbeddingSettings,\n  ) => EmbeddingModelV1<string>;\n\n  imageEmbeddingModel: (\n    modelId: VoyageMultimodalEmbeddingModelId,\n    settings?: VoyageMultimodalEmbeddingSettings,\n  ) => EmbeddingModelV1<ImageEmbeddingInput>;\n\n  multimodalEmbeddingModel: (\n    modelId: VoyageMultimodalEmbeddingModelId,\n    settings?: VoyageMultimodalEmbeddingSettings,\n  ) => EmbeddingModelV1<MultimodalEmbeddingInput>;\n}\n\nexport interface VoyageProviderSettings {\n  /**\n   * Use a different URL prefix for API calls, e.g. to use proxy servers.\n   * The default prefix is `https://api.voyageai.com/v1`.\n   *\n   * @see https://docs.voyageai.com/reference\n   */\n  baseURL?: string;\n\n  /**\n  API key that is being send using the `Authorization` header.\n  It defaults to the `VOYAGE_API_KEY` environment variable.\n     */\n  apiKey?: string;\n\n  /**\n  Custom headers to include in the requests.\n       */\n  headers?: Record<string, string>;\n\n  /**\n  Custom fetch implementation. You can use it as a middleware to intercept requests,\n  or to provide a custom fetch implementation for e.g. testing.\n      */\n  fetch?: FetchFunction;\n}\n\n/**\n  Create a Voyage AI provider instance.\n   */\nexport function createVoyage(\n  options: VoyageProviderSettings = {},\n): VoyageProvider {\n  const baseURL =\n    withoutTrailingSlash(options.baseURL) ?? 'https://api.voyageai.com/v1';\n\n  const getHeaders = () => ({\n    Authorization: `Bearer ${loadApiKey({\n      apiKey: options.apiKey,\n      environmentVariableName: 'VOYAGE_API_KEY',\n      description: 'Voyage',\n    })}`,\n    ...options.headers,\n  });\n\n  const createEmbeddingModel = (\n    modelId: VoyageEmbeddingModelId,\n    settings: VoyageEmbeddingSettings = {},\n  ) =>\n    new VoyageEmbeddingModel(modelId, settings, {\n      provider: 'voyage.embedding',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createImageEmbeddingModel = (\n    modelId: VoyageMultimodalEmbeddingModelId,\n    settings: VoyageMultimodalEmbeddingSettings = {},\n  ) =>\n    new MultimodalEmbeddingModel(\n      modelId,\n      settings,\n      {\n        provider: 'voyage.image.embedding',\n        baseURL,\n        headers: getHeaders,\n        fetch: options.fetch,\n      },\n      'image',\n    );\n\n  const createMultimodalEmbeddingModel = (\n    modelId: VoyageMultimodalEmbeddingModelId,\n    settings: VoyageMultimodalEmbeddingSettings = {},\n  ) =>\n    new MultimodalEmbeddingModel(\n      modelId,\n      settings,\n      {\n        provider: 'voyage.multimodal.embedding',\n        baseURL,\n        headers: getHeaders,\n        fetch: options.fetch,\n      },\n      'multimodal',\n    );\n\n  const provider = function (\n    modelId: VoyageEmbeddingModelId,\n    settings?: VoyageEmbeddingSettings,\n  ) {\n    if (new.target) {\n      throw new Error(\n        'The Voyage model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createEmbeddingModel(modelId, settings);\n  };\n\n  provider.embedding = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.imageEmbeddingModel = createImageEmbeddingModel;\n  provider.multimodalEmbeddingModel = createMultimodalEmbeddingModel;\n\n  provider.chat = provider.languageModel = (): LanguageModelV1 => {\n    throw new Error('languageModel method is not implemented.');\n  };\n\n  return provider as VoyageProvider;\n}\n\n/**\n  Default Voyage provider instance.\n   */\nexport const voyage = createVoyage();\n","import {\n  type EmbeddingModelV1,\n  TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  type FetchFunction,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nimport type {\n  VoyageEmbeddingModelId,\n  VoyageEmbeddingSettings,\n} from '@/voyage-embedding-settings';\nimport { voyageFailedResponseHandler } from '@/voyage-error';\n\ntype VoyageEmbeddingConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n};\n\nexport class VoyageEmbeddingModel implements EmbeddingModelV1<string> {\n  readonly specificationVersion = 'v1';\n  readonly modelId: VoyageEmbeddingModelId;\n\n  private readonly config: VoyageEmbeddingConfig;\n  private readonly settings: VoyageEmbeddingSettings;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  get maxEmbeddingsPerCall(): number {\n    return 128;\n  }\n\n  get supportsParallelCalls(): boolean {\n    return false;\n  }\n\n  constructor(\n    modelId: VoyageEmbeddingModelId,\n    settings: VoyageEmbeddingSettings,\n    config: VoyageEmbeddingConfig,\n  ) {\n    this.modelId = modelId;\n    this.settings = settings;\n    this.config = config;\n  }\n\n  async doEmbed({\n    abortSignal,\n    values,\n    headers,\n  }: Parameters<EmbeddingModelV1<string>['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV1<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        input_type: this.settings.inputType,\n        truncation: this.settings.truncation,\n        output_dimension: this.settings.outputDimension,\n        output_dtype: this.settings.outputDtype,\n      },\n      failedResponseHandler: voyageFailedResponseHandler,\n      fetch: this.config.fetch,\n      headers: combineHeaders(this.config.headers(), headers),\n      successfulResponseHandler: createJsonResponseHandler(\n        voyageTextEmbeddingResponseSchema,\n      ),\n      url: `${this.config.baseURL}/embeddings`,\n    });\n\n    return {\n      embeddings: response.data.map((item) => item.embedding),\n      usage: response.usage\n        ? { tokens: response.usage.total_tokens }\n        : undefined,\n      rawResponse: { headers: responseHeaders },\n    };\n  }\n}\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst voyageTextEmbeddingResponseSchema = z.object({\n  data: z.array(z.object({ embedding: z.array(z.number()) })),\n  usage: z.object({ total_tokens: z.number() }).nullish(),\n});\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nconst voyageErrorDataSchema = z.object({\n  error: z.object({\n    code: z.string().nullable(),\n    message: z.string(),\n    param: z.any().nullable(),\n    type: z.string(),\n  }),\n});\n\nexport type VoyageErrorData = z.infer<typeof voyageErrorDataSchema>;\n\nexport const voyageFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: voyageErrorDataSchema,\n  errorToMessage: (data) => data.error.message,\n});\n","import {\n  type EmbeddingModelV1,\n  TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  type FetchFunction,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nimport type {\n  VoyageMultimodalEmbeddingModelId,\n  VoyageMultimodalEmbeddingSettings,\n} from '@/voyage-multimodal-embedding-settings';\nimport { voyageFailedResponseHandler } from '@/voyage-error';\n\ntype VoyageEmbeddingConfig = {\n  baseURL: string;\n  fetch?: FetchFunction;\n  headers: () => Record<string, string | undefined>;\n  provider: string;\n};\n\n// Basic input types\n\n// URL or base64 image\nexport type ImageInput = string;\n\n// Text\nexport type TextInput = string;\n\n// Core content structure that mirrors the API\nexport type ContentItem =\n  | { type: 'text'; text: string }\n  | { type: 'image_url'; image_url: string }\n  | { type: 'image_base64'; image_base64: string };\n\n// For batching multiple content items into a single embedding\nexport type MultimodalContent = {\n  text?: TextInput[];\n  image?: ImageInput[];\n};\n\n// Text embedding model inputs\nexport type TextEmbeddingInput =\n  | TextInput // Single text\n  | TextInput[] // Multiple texts as one embedding\n  | { text: TextInput | TextInput[] }; // Alternative format (single or multiple texts)\n\n// Image embedding model inputs\nexport type ImageEmbeddingInput =\n  | ImageInput // Single image\n  | ImageInput[] // Multiple images as one embedding\n  | { image: ImageInput | ImageInput[] }; // Alternative format (single or multiple images)\n\n// Multimodal embedding model inputs\nexport type MultimodalEmbeddingInput =\n  | TextInput // Single text\n  | ImageInput // Single image\n  | TextInput[] // Multiple texts as one embedding\n  | ImageInput[] // Multiple images as one embedding\n  | MultimodalContent // Mixed content with explicit structure\n  | { text: TextInput | TextInput[] } // Alternative format (single or multiple texts)\n  | { image: ImageInput | ImageInput[] } // Alternative format (single or multiple images)\n  | { content: ContentItem[] }; // Pre-formatted content items\n\n// API-compatible types for Voyage multimodal embeddings\nexport type VoyageMultimodalContentItem =\n  | {\n      type: 'text';\n      text: string;\n    }\n  | {\n      type: 'image_url';\n      image_url: string;\n    }\n  | {\n      type: 'image_base64';\n      image_base64: string;\n    };\n\nexport type VoyageMultimodalInput = {\n  content: VoyageMultimodalContentItem[];\n};\n\nexport class MultimodalEmbeddingModel<T> implements EmbeddingModelV1<T> {\n  readonly specificationVersion = 'v1';\n  readonly modelId: VoyageMultimodalEmbeddingModelId;\n  readonly modelType: 'multimodal' | 'image';\n\n  private readonly config: VoyageEmbeddingConfig;\n  private readonly settings: VoyageMultimodalEmbeddingSettings;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  get maxEmbeddingsPerCall(): number {\n    return 128;\n  }\n\n  get supportsParallelCalls(): boolean {\n    return false;\n  }\n\n  constructor(\n    modelId: VoyageMultimodalEmbeddingModelId,\n    settings: VoyageMultimodalEmbeddingSettings,\n    config: VoyageEmbeddingConfig,\n    modelType: 'multimodal' | 'image',\n  ) {\n    this.modelId = modelId;\n    this.settings = settings;\n    this.config = config;\n    this.modelType = modelType;\n  }\n\n  private transformInputs(values: T[]): VoyageMultimodalInput[] {\n    return values.map((value) => this.transformSingleInput(value));\n  }\n\n  private transformSingleInput(value: T): VoyageMultimodalInput {\n    // Handle string inputs\n    if (typeof value === 'string') {\n      if (this.modelType === 'image') {\n        // For image model, treat strings as image URLs or base64\n        return this.createImageContent(value);\n      }\n      // For multimodal model, treat strings as text unless they look like images\n      if (this.isImageString(value)) {\n        return this.createImageContent(value);\n      }\n      return this.createTextContent(value);\n    }\n\n    // Handle array inputs\n    if (Array.isArray(value)) {\n      return this.transformArrayInput(value);\n    }\n\n    // Handle object inputs\n    const input = value as Record<string, unknown>;\n\n    // Handle pre-formatted content items { content: ContentItem[] }\n    if (input.content && Array.isArray(input.content)) {\n      return this.transformContentArray(input.content);\n    }\n\n    // Handle MultimodalContent format { text?: string[], image?: string[] }\n    if (input.text || input.image) {\n      return this.transformMultimodalContent(input);\n    }\n\n    // Fallback: treat as text if it's a primitive value (only for multimodal)\n    if (this.modelType === 'multimodal') {\n      return this.createTextContent(String(value));\n    }\n\n    throw new Error(\n      `Unsupported input format for ${this.modelType} model: ${JSON.stringify(value)}`,\n    );\n  }\n\n  private transformArrayInput(array: unknown[]): VoyageMultimodalInput {\n    const contentItems: VoyageMultimodalContentItem[] = [];\n\n    for (const item of array) {\n      if (typeof item === 'string') {\n        if (this.isImageString(item)) {\n          contentItems.push(this.createImageContentItem(item));\n        } else {\n          if (this.modelType === 'image') {\n            throw new Error(\n              'Text content not supported in image embedding model',\n            );\n          }\n          contentItems.push({ type: 'text', text: item });\n        }\n      } else {\n        throw new Error('Array items must be strings');\n      }\n    }\n\n    return { content: contentItems };\n  }\n\n  private transformContentArray(content: unknown[]): VoyageMultimodalInput {\n    const contentItems: VoyageMultimodalContentItem[] = [];\n\n    for (const item of content) {\n      const contentItem = item as Record<string, unknown>;\n\n      // Handle pre-formatted API items\n      if (\n        contentItem.type &&\n        (contentItem.text || contentItem.image_url || contentItem.image_base64)\n      ) {\n        contentItems.push(contentItem as VoyageMultimodalContentItem);\n        continue;\n      }\n\n      // Handle legacy format with text and image arrays\n      if (contentItem.text && Array.isArray(contentItem.text)) {\n        if (this.modelType === 'image') {\n          throw new Error(\n            'Text content not supported in image embedding model',\n          );\n        }\n        for (const textItem of contentItem.text) {\n          contentItems.push({ type: 'text', text: String(textItem) });\n        }\n      }\n\n      if (contentItem.image && Array.isArray(contentItem.image)) {\n        for (const imageItem of contentItem.image) {\n          const imageStr = String(imageItem);\n          contentItems.push(this.createImageContentItem(imageStr));\n        }\n      }\n\n      // Handle individual properties\n      if (typeof contentItem.text === 'string') {\n        if (this.modelType === 'image') {\n          throw new Error(\n            'Text content not supported in image embedding model',\n          );\n        }\n        contentItems.push({ type: 'text', text: contentItem.text });\n      }\n\n      if (typeof contentItem.image === 'string') {\n        contentItems.push(this.createImageContentItem(contentItem.image));\n      }\n    }\n\n    return { content: contentItems };\n  }\n\n  private transformMultimodalContent(\n    input: Record<string, unknown>,\n  ): VoyageMultimodalInput {\n    const contentItems: VoyageMultimodalContentItem[] = [];\n\n    // Handle text array or single text\n    if (input.text !== undefined) {\n      if (this.modelType === 'image') {\n        throw new Error('Text content not supported in image embedding model');\n      }\n\n      if (Array.isArray(input.text)) {\n        for (const textItem of input.text) {\n          contentItems.push({ type: 'text', text: String(textItem) });\n        }\n      } else if (typeof input.text === 'string') {\n        contentItems.push({ type: 'text', text: input.text });\n      }\n    }\n\n    // Handle image array or single image\n    if (input.image !== undefined) {\n      if (Array.isArray(input.image)) {\n        for (const imageItem of input.image) {\n          const imageStr = String(imageItem);\n          contentItems.push(this.createImageContentItem(imageStr));\n        }\n      } else if (typeof input.image === 'string') {\n        contentItems.push(this.createImageContentItem(input.image));\n      }\n    }\n\n    return { content: contentItems };\n  }\n\n  private createTextContent(text: string): VoyageMultimodalInput {\n    return {\n      content: [{ type: 'text', text }],\n    };\n  }\n\n  private createImageContent(image: string): VoyageMultimodalInput {\n    return {\n      content: [this.createImageContentItem(image)],\n    };\n  }\n\n  private createImageContentItem(image: string): VoyageMultimodalContentItem {\n    return this.isBase64Image(image)\n      ? { type: 'image_base64', image_base64: image }\n      : { type: 'image_url', image_url: image };\n  }\n\n  private isImageString(str: string): boolean {\n    return this.isBase64Image(str) || this.isImageUrl(str);\n  }\n\n  private isImageUrl(str: string): boolean {\n    try {\n      const url = new URL(str);\n      return /\\.(jpg|jpeg|png|gif|bmp|webp|svg)$/i.test(url.pathname);\n    } catch {\n      return false;\n    }\n  }\n\n  private isBase64Image(image: string): boolean {\n    return image.startsWith('data:image/') && image.includes(';base64,');\n  }\n\n  async doEmbed({\n    abortSignal,\n    values,\n    headers,\n  }: Parameters<EmbeddingModelV1<T>['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV1<T>['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    // Transform the user input to the expected format for API\n    // https://docs.voyageai.com/reference/multimodal-embeddings-api\n    const transformedInputs = this.transformInputs(values);\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      abortSignal,\n      body: {\n        inputs: transformedInputs,\n        model: this.modelId,\n        input_type: this.settings.inputType,\n        truncation: this.settings.truncation,\n        output_encoding: this.settings.outputEncoding,\n      },\n      failedResponseHandler: voyageFailedResponseHandler,\n      fetch: this.config.fetch,\n      headers: combineHeaders(this.config.headers(), headers),\n      successfulResponseHandler: createJsonResponseHandler(\n        voyageMultimodalEmbeddingResponseSchema,\n      ),\n      url: `${this.config.baseURL}/multimodalembeddings`,\n    });\n\n    return {\n      embeddings: response.data.map((item) => item.embedding),\n      usage: response.usage\n        ? { tokens: response.usage.total_tokens }\n        : undefined,\n      rawResponse: { headers: responseHeaders },\n    };\n  }\n}\n\nconst voyageMultimodalEmbeddingResponseSchema = z.object({\n  data: z.array(\n    z.object({\n      object: z.literal('embedding'),\n      embedding: z.array(z.number()),\n      index: z.number(),\n    }),\n  ),\n  usage: z.object({\n    text_tokens: z.number().nullish(),\n    image_pixels: z.number().nullish(),\n    total_tokens: z.number(),\n  }),\n  model: z.string(),\n});\n"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_zod","import_provider","import_provider_utils","import_zod"]}