{"version":3,"sources":["../src/google-vertex-provider-node.ts","../src/google-vertex-auth-google-auth-library.ts","../src/google-vertex-provider.ts","../src/google-vertex-embedding-model.ts","../src/google-vertex-error.ts","../src/google-vertex-image-model.ts","../src/google-vertex-supported-file-url.ts"],"sourcesContent":["import { resolve } from '@ai-sdk/provider-utils';\nimport { GoogleAuthOptions } from 'google-auth-library';\nimport { generateAuthToken } from './google-vertex-auth-google-auth-library';\nimport {\n  createVertex as createVertexOriginal,\n  GoogleVertexProvider,\n  GoogleVertexProviderSettings as GoogleVertexProviderSettingsOriginal,\n} from './google-vertex-provider';\n\nexport interface GoogleVertexProviderSettings\n  extends GoogleVertexProviderSettingsOriginal {\n  /**\n Optional. The Authentication options provided by google-auth-library.\nComplete list of authentication options is documented in the\nGoogleAuthOptions interface:\nhttps://github.com/googleapis/google-auth-library-nodejs/blob/main/src/auth/googleauth.ts.\n   */\n  googleAuthOptions?: GoogleAuthOptions;\n}\n\nexport type { GoogleVertexProvider };\n\nexport function createVertex(\n  options: GoogleVertexProviderSettings = {},\n): GoogleVertexProvider {\n  return createVertexOriginal({\n    ...options,\n    headers: async () => ({\n      Authorization: `Bearer ${await generateAuthToken(\n        options.googleAuthOptions,\n      )}`,\n      ...(await resolve(options.headers)),\n    }),\n  });\n}\n\n/**\nDefault Google Vertex AI provider instance.\n */\nexport const vertex = createVertex();\n","import { GoogleAuth, GoogleAuthOptions } from 'google-auth-library';\n\nlet authInstance: GoogleAuth | null = null;\nlet authOptions: GoogleAuthOptions | null = null;\n\nfunction getAuth(options: GoogleAuthOptions) {\n  if (!authInstance || options !== authOptions) {\n    authInstance = new GoogleAuth({\n      scopes: ['https://www.googleapis.com/auth/cloud-platform'],\n      ...options,\n    });\n    authOptions = options;\n  }\n  return authInstance;\n}\n\nexport async function generateAuthToken(options?: GoogleAuthOptions) {\n  const auth = getAuth(options || {});\n  const client = await auth.getClient();\n  const token = await client.getAccessToken();\n  return token?.token || null;\n}\n\n// For testing purposes only\nexport function _resetAuthInstance() {\n  authInstance = null;\n}\n","import { LanguageModelV1, ProviderV1, ImageModelV1 } from '@ai-sdk/provider';\nimport {\n  FetchFunction,\n  generateId,\n  loadSetting,\n  Resolvable,\n  withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport {\n  GoogleVertexModelId,\n  GoogleVertexSettings,\n} from './google-vertex-settings';\nimport {\n  GoogleVertexEmbeddingModelId,\n  GoogleVertexEmbeddingSettings,\n} from './google-vertex-embedding-settings';\nimport { GoogleVertexEmbeddingModel } from './google-vertex-embedding-model';\nimport { GoogleGenerativeAILanguageModel } from '@ai-sdk/google/internal';\nimport { GoogleVertexImageModel } from './google-vertex-image-model';\nimport {\n  GoogleVertexImageModelId,\n  GoogleVertexImageSettings,\n} from './google-vertex-image-settings';\nimport { GoogleVertexConfig } from './google-vertex-config';\nimport { isSupportedFileUrl } from './google-vertex-supported-file-url';\n\nexport interface GoogleVertexProvider extends ProviderV1 {\n  /**\nCreates a model for text generation.\n   */\n  (\n    modelId: GoogleVertexModelId,\n    settings?: GoogleVertexSettings,\n  ): LanguageModelV1;\n\n  languageModel: (\n    modelId: GoogleVertexModelId,\n    settings?: GoogleVertexSettings,\n  ) => LanguageModelV1;\n\n  /**\n   * Creates a model for image generation.\n   */\n  image(\n    modelId: GoogleVertexImageModelId,\n    settings?: GoogleVertexImageSettings,\n  ): ImageModelV1;\n\n  /**\nCreates a model for image generation.\n   */\n  imageModel(\n    modelId: GoogleVertexImageModelId,\n    settings?: GoogleVertexImageSettings,\n  ): ImageModelV1;\n}\n\nexport interface GoogleVertexProviderSettings {\n  /**\nYour Google Vertex location. Defaults to the environment variable `GOOGLE_VERTEX_LOCATION`.\n   */\n  location?: string;\n\n  /**\nYour Google Vertex project. Defaults to the environment variable `GOOGLE_VERTEX_PROJECT`.\n  */\n  project?: string;\n\n  /**\n   * Headers to use for requests. Can be:\n   * - A headers object\n   * - A Promise that resolves to a headers object\n   * - A function that returns a headers object\n   * - A function that returns a Promise of a headers object\n   */\n  headers?: Resolvable<Record<string, string | undefined>>;\n\n  /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n    */\n  fetch?: FetchFunction;\n\n  // for testing\n  generateId?: () => string;\n\n  /**\nBase URL for the Google Vertex API calls.\n     */\n  baseURL?: string;\n}\n\n/**\nCreate a Google Vertex AI provider instance.\n */\nexport function createVertex(\n  options: GoogleVertexProviderSettings = {},\n): GoogleVertexProvider {\n  const loadVertexProject = () =>\n    loadSetting({\n      settingValue: options.project,\n      settingName: 'project',\n      environmentVariableName: 'GOOGLE_VERTEX_PROJECT',\n      description: 'Google Vertex project',\n    });\n\n  const loadVertexLocation = () =>\n    loadSetting({\n      settingValue: options.location,\n      settingName: 'location',\n      environmentVariableName: 'GOOGLE_VERTEX_LOCATION',\n      description: 'Google Vertex location',\n    });\n\n  const loadBaseURL = () => {\n    const region = loadVertexLocation();\n    const project = loadVertexProject();\n    return (\n      withoutTrailingSlash(options.baseURL) ??\n      `https://${region}-aiplatform.googleapis.com/v1/projects/${project}/locations/${region}/publishers/google`\n    );\n  };\n\n  const createConfig = (name: string): GoogleVertexConfig => {\n    return {\n      provider: `google.vertex.${name}`,\n      headers: options.headers ?? {},\n      fetch: options.fetch,\n      baseURL: loadBaseURL(),\n    };\n  };\n\n  const createChatModel = (\n    modelId: GoogleVertexModelId,\n    settings: GoogleVertexSettings = {},\n  ) => {\n    return new GoogleGenerativeAILanguageModel(modelId, settings, {\n      ...createConfig('chat'),\n      generateId: options.generateId ?? generateId,\n      isSupportedUrl: isSupportedFileUrl,\n    });\n  };\n\n  const createEmbeddingModel = (\n    modelId: GoogleVertexEmbeddingModelId,\n    settings: GoogleVertexEmbeddingSettings = {},\n  ) =>\n    new GoogleVertexEmbeddingModel(\n      modelId,\n      settings,\n      createConfig('embedding'),\n    );\n\n  const createImageModel = (\n    modelId: GoogleVertexImageModelId,\n    settings: GoogleVertexImageSettings = {},\n  ) => new GoogleVertexImageModel(modelId, settings, createConfig('image'));\n\n  const provider = function (\n    modelId: GoogleVertexModelId,\n    settings?: GoogleVertexSettings,\n  ) {\n    if (new.target) {\n      throw new Error(\n        'The Google Vertex AI model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createChatModel(modelId, settings);\n  };\n\n  provider.languageModel = createChatModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n\n  return provider;\n}\n","import {\n  EmbeddingModelV1,\n  TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  postJsonToApi,\n  resolve,\n  Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { googleVertexFailedResponseHandler } from './google-vertex-error';\nimport {\n  GoogleVertexEmbeddingModelId,\n  GoogleVertexEmbeddingSettings,\n} from './google-vertex-embedding-settings';\nimport { GoogleVertexConfig } from './google-vertex-config';\n\nexport class GoogleVertexEmbeddingModel implements EmbeddingModelV1<string> {\n  readonly specificationVersion = 'v1';\n  readonly modelId: GoogleVertexEmbeddingModelId;\n\n  private readonly config: GoogleVertexConfig;\n  private readonly settings: GoogleVertexEmbeddingSettings;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  get maxEmbeddingsPerCall(): number {\n    return 2048;\n  }\n\n  get supportsParallelCalls(): boolean {\n    return true;\n  }\n\n  constructor(\n    modelId: GoogleVertexEmbeddingModelId,\n    settings: GoogleVertexEmbeddingSettings,\n    config: GoogleVertexConfig,\n  ) {\n    this.modelId = modelId;\n    this.settings = settings;\n    this.config = config;\n  }\n\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\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        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values,\n      });\n    }\n\n    const mergedHeaders = combineHeaders(\n      await resolve(this.config.headers),\n      headers,\n    );\n\n    const url = `${this.config.baseURL}/models/${this.modelId}:predict`;\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url,\n      headers: mergedHeaders,\n      body: {\n        instances: values.map(value => ({ content: value })),\n        parameters: {\n          outputDimensionality: this.settings.outputDimensionality,\n        },\n      },\n      failedResponseHandler: googleVertexFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        googleVertexTextEmbeddingResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      embeddings: response.predictions.map(\n        prediction => prediction.embeddings.values,\n      ),\n      usage: {\n        tokens: response.predictions.reduce(\n          (tokenCount, prediction) =>\n            tokenCount + prediction.embeddings.statistics.token_count,\n          0,\n        ),\n      },\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 googleVertexTextEmbeddingResponseSchema = z.object({\n  predictions: z.array(\n    z.object({\n      embeddings: z.object({\n        values: z.array(z.number()),\n        statistics: z.object({\n          token_count: z.number(),\n        }),\n      }),\n    }),\n  ),\n});\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nconst googleVertexErrorDataSchema = z.object({\n  error: z.object({\n    code: z.number().nullable(),\n    message: z.string(),\n    status: z.string(),\n  }),\n});\n\nexport type GoogleVertexErrorData = z.infer<typeof googleVertexErrorDataSchema>;\n\nexport const googleVertexFailedResponseHandler = createJsonErrorResponseHandler(\n  {\n    errorSchema: googleVertexErrorDataSchema,\n    errorToMessage: data => data.error.message,\n  },\n);\n","import { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport {\n  Resolvable,\n  combineHeaders,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { googleVertexFailedResponseHandler } from './google-vertex-error';\nimport {\n  GoogleVertexImageModelId,\n  GoogleVertexImageSettings,\n} from './google-vertex-image-settings';\n\ninterface GoogleVertexImageModelConfig {\n  provider: string;\n  baseURL: string;\n  headers?: Resolvable<Record<string, string | undefined>>;\n  fetch?: typeof fetch;\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/image/generate-images\nexport class GoogleVertexImageModel implements ImageModelV1 {\n  readonly specificationVersion = 'v1';\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  get maxImagesPerCall(): number {\n    // https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api#parameter_list\n    return this.settings.maxImagesPerCall ?? 4;\n  }\n\n  constructor(\n    readonly modelId: GoogleVertexImageModelId,\n    readonly settings: GoogleVertexImageSettings,\n    private config: GoogleVertexImageModelConfig,\n  ) {}\n\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal,\n  }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n    Awaited<ReturnType<ImageModelV1['doGenerate']>>\n  > {\n    const warnings: Array<ImageModelV1CallWarning> = [];\n\n    if (size != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'size',\n        details:\n          'This model does not support the `size` option. Use `aspectRatio` instead.',\n      });\n    }\n\n    const vertexImageOptions = parseProviderOptions({\n      provider: 'vertex',\n      providerOptions,\n      schema: vertexImageProviderOptionsSchema,\n    });\n\n    const body = {\n      instances: [{ prompt }],\n      parameters: {\n        sampleCount: n,\n        ...(aspectRatio != null ? { aspectRatio } : {}),\n        ...(seed != null ? { seed } : {}),\n        ...(vertexImageOptions ?? {}),\n      },\n    };\n\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: `${this.config.baseURL}/models/${this.modelId}:predict`,\n      headers: combineHeaders(await resolve(this.config.headers), headers),\n      body,\n      failedResponseHandler: googleVertexFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        vertexImageResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      images:\n        response.predictions?.map(\n          (p: { bytesBase64Encoded: string }) => p.bytesBase64Encoded,\n        ) ?? [],\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\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 vertexImageResponseSchema = z.object({\n  predictions: z.array(z.object({ bytesBase64Encoded: z.string() })).nullish(),\n});\n\nconst vertexImageProviderOptionsSchema = z.object({\n  negativePrompt: z.string().nullish(),\n  personGeneration: z\n    .enum(['dont_allow', 'allow_adult', 'allow_all'])\n    .nullish(),\n  safetySetting: z\n    .enum([\n      'block_low_and_above',\n      'block_medium_and_above',\n      'block_only_high',\n      'block_none',\n    ])\n    .nullish(),\n  addWatermark: z.boolean().nullish(),\n  storageUri: z.string().nullish(),\n});\nexport type GoogleVertexImageProviderOptions = z.infer<\n  typeof vertexImageProviderOptionsSchema\n>;\n","// https://firebase.google.com/docs/vertex-ai/input-file-requirements\n// The definition of supported file URLs reduces to a simple protocol check as\n// any publicly accessible file can be used as input.\nexport function isSupportedFileUrl(url: URL) {\n  return ['http:', 'https:', 'gs:'].includes(url.protocol);\n}\n"],"mappings":"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","names":["resolve","z","z","combineHeaders","createJsonResponseHandler","postJsonToApi","resolve","z","postJsonToApi","combineHeaders","resolve","createJsonResponseHandler","z","createVertex","resolve"]}