Add Vertex as an AI provider (#32450)

GitOrigin-RevId: 20d895350ee13a7683f178bc83b87f0e765c7af6
This commit is contained in:
Alf Eaton
2026-04-30 12:14:51 +01:00
committed by Copybot
parent 94018faafc
commit f00dab5cc0
4 changed files with 119 additions and 60 deletions

View File

@@ -140,14 +140,11 @@
"zod-validation-error": "4.0.1",
"simple-oauth2": "5.0.0",
"@types/simple-oauth2": "5.0.7",
"@ai-sdk/mcp": "1.0.25",
"@ai-sdk/openai": "3.0.41",
"@node-oauth/oauth2-server": "5.3.0",
"@phosphor-icons/react": "2.1.7",
"@slack/webhook": "7.0.2",
"@stripe/react-stripe-js": "3.9.0",
"@stripe/stripe-js": "7.7.0",
"ai": "6.0.116",
"cache-flow": "1.9.0",
"focus-trap-react": "11.0.4",
"i18next-http-middleware": "3.5.0",
@@ -158,7 +155,6 @@
"rate-limiter-flexible": "2.4.1",
"react-hook-form": "7.71.1",
"stripe": "18.4.0",
"@ai-sdk/react": "3.0.118",
"@babel/plugin-proposal-decorators": "7.28.0",
"@floating-ui/react": "0.27.16",
"@juggle/resize-observer": "3.3.1",

View File

@@ -51,3 +51,5 @@ QUEUE_PROCESSING_ENABLED=true
CURRENT_IMAGE_NAME=texlive-full:2025.1
ALLOWED_IMAGE_NAMES=[{"imageName":"texlive-full:2025.1","imageDesc":"2025"},{"imageName":"wl_texlive:2018.1","imageDesc":"2018"}]
ENABLE_PANDOC_CONVERSIONS=true
GOOGLE_VERTEX_PROJECT=overleaf-dev
GOOGLE_VERTEX_LOCATION=global

View File

@@ -75,8 +75,9 @@
"safari > 14"
],
"dependencies": {
"@ai-sdk/mcp": "^1.0.25",
"@ai-sdk/openai": "^3.0.41",
"@ai-sdk/google-vertex": "^4.0.113",
"@ai-sdk/mcp": "^1.0.37",
"@ai-sdk/openai": "^3.0.54",
"@aws-sdk/client-ses": "^3.994.0",
"@contentful/rich-text-html-renderer": "^16.0.2",
"@contentful/rich-text-types": "^16.0.2",
@@ -106,7 +107,7 @@
"@tanstack/react-table": "^8.21.3",
"@xmldom/xmldom": "^0.7.13",
"accepts": "^1.3.7",
"ai": "^6.0.116",
"ai": "^6.0.169",
"ajv": "^8.12.0",
"archiver": "^5.3.0",
"async": "^3.2.5",
@@ -197,7 +198,7 @@
"zod-validation-error": "^4.0.1"
},
"devDependencies": {
"@ai-sdk/react": "^3.0.118",
"@ai-sdk/react": "^3.0.172",
"@babel/core": "^7.28.5",
"@babel/plugin-proposal-decorators": "^7.28.0",
"@babel/preset-env": "^7.28.5",

164
yarn.lock
View File

@@ -19,77 +19,129 @@ __metadata:
languageName: node
linkType: hard
"@ai-sdk/gateway@npm:3.0.66":
version: 3.0.66
resolution: "@ai-sdk/gateway@npm:3.0.66"
"@ai-sdk/anthropic@npm:3.0.72":
version: 3.0.72
resolution: "@ai-sdk/anthropic@npm:3.0.72"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.19"
"@vercel/oidc": "npm:3.1.0"
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/bfc61de36de750216d5f483c234b96ca3098fafdab56ac555be82bf186844bb6aebf224f31acc88501fffd89bed2277827e5a7c8445d9271350952340639746b
checksum: 10c0/3646f75dd0ae0accd747963c9c1a6e0901df6971931e0947f9cc5f31f7a680ba1ca65ef28c3dd10e586569d64b8f155d8eae3af9aa9e21eff114c59fb23f95c1
languageName: node
linkType: hard
"@ai-sdk/mcp@npm:1.0.25":
version: 1.0.25
resolution: "@ai-sdk/mcp@npm:1.0.25"
"@ai-sdk/gateway@npm:3.0.105":
version: 3.0.105
resolution: "@ai-sdk/gateway@npm:3.0.105"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.19"
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
"@vercel/oidc": "npm:3.2.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/5fd95080ed1e9056aba46bbffc8d5fd1e871eda9d99f3cc2c86628353851cfd47a6c162898558186b2c0f8b53bbb665949922781ce231f46e53195ff1732294b
languageName: node
linkType: hard
"@ai-sdk/google-vertex@npm:^4.0.113":
version: 4.0.113
resolution: "@ai-sdk/google-vertex@npm:4.0.113"
dependencies:
"@ai-sdk/anthropic": "npm:3.0.72"
"@ai-sdk/google": "npm:3.0.65"
"@ai-sdk/openai-compatible": "npm:2.0.42"
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
google-auth-library: "npm:^10.5.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/2f04dff74bafcda4ed314ffdbed533b813f2b811be6186cf2cfa804e95b89599ea5b0e9097537a3bd9b75196e6b57a73bbf574cbb64f924a0e2e4993f760d632
languageName: node
linkType: hard
"@ai-sdk/google@npm:3.0.65":
version: 3.0.65
resolution: "@ai-sdk/google@npm:3.0.65"
dependencies:
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/c6944fd07e3e6acf7d6bf43d6fa2fdc1f8d20b564d8d9b95370cb63847245c9b80cedc11c0641a12a7b8d2eabe1b00c91e633fba224715724edf230ba57af0a9
languageName: node
linkType: hard
"@ai-sdk/mcp@npm:^1.0.37":
version: 1.0.37
resolution: "@ai-sdk/mcp@npm:1.0.37"
dependencies:
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
pkce-challenge: "npm:^5.0.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/8b625b5a984d8ab2ad04bf32da91e1852b532c81a022b1a11a3de5eccefba0fbcd2ff553cafa2f48ecce634ef79d60e715783d28a6a3119d2eff05afb22bfefc
checksum: 10c0/449fb2b77c6a5e4b61503f95529f9b858bcbc2983fe926c4376815fef5e26207f0cd2d912798daab0f705db84bc2f798f6671828ebb4b1ad07df7b62fdb71d90
languageName: node
linkType: hard
"@ai-sdk/openai@npm:3.0.41":
version: 3.0.41
resolution: "@ai-sdk/openai@npm:3.0.41"
"@ai-sdk/openai-compatible@npm:2.0.42":
version: 2.0.42
resolution: "@ai-sdk/openai-compatible@npm:2.0.42"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.19"
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/411d4b5a22e03dcb9cb036232f84b7d1fced34f98d980987d6652ec8c02fefcd9ce819a427635e9186d5023192c8066f22919c32e88659d73049a827f0e82762
checksum: 10c0/bdc512c52eb426c2bfe0724713b7f1ee949f59cccff6dc8c4a0bc216b7b38f541ba2c50505562751b33363ec9f178ec63adf6f0c9592a772678bcf2097f07a6c
languageName: node
linkType: hard
"@ai-sdk/provider-utils@npm:4.0.19":
version: 4.0.19
resolution: "@ai-sdk/provider-utils@npm:4.0.19"
"@ai-sdk/openai@npm:^3.0.54":
version: 3.0.54
resolution: "@ai-sdk/openai@npm:3.0.54"
dependencies:
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/bff3d42749f04effbdfddaf860fe80da7a017706e80018926418996e80b6f34f94841d8327d0dafdbb21b3474e8e4022b37e9dfc61a498a8b7a26fffbaf2cd04
languageName: node
linkType: hard
"@ai-sdk/provider-utils@npm:4.0.24":
version: 4.0.24
resolution: "@ai-sdk/provider-utils@npm:4.0.24"
dependencies:
"@ai-sdk/provider": "npm:3.0.9"
"@standard-schema/spec": "npm:^1.1.0"
eventsource-parser: "npm:^3.0.6"
eventsource-parser: "npm:^3.0.8"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/fdfdcef09b3897769dd7e5c67c92188ee37339e1cd68974b57a0ab47efee080bc614d1df7d28f5a3183344ccb38e0380982adf2340e78a8f90e311595a3fff1f
checksum: 10c0/43473a865313118bcafbe8d4b5ab37e5c10036da8ba975af9808f2d1b8dfac5747a5ec8da06788fc135eeb045ef51f3e068293f4cefe53ce8eb98db514e68915
languageName: node
linkType: hard
"@ai-sdk/provider@npm:3.0.8":
version: 3.0.8
resolution: "@ai-sdk/provider@npm:3.0.8"
"@ai-sdk/provider@npm:3.0.9":
version: 3.0.9
resolution: "@ai-sdk/provider@npm:3.0.9"
dependencies:
json-schema: "npm:^0.4.0"
checksum: 10c0/c68637c0139a6ce8af17bac1d7d539f531860026237c5c971dcecda2daa8b1e42d8c05e1e664ece60c15edb325c0253fd5b091ee54d32f870a750a493acbb0b7
checksum: 10c0/507b30f2b15392ed4718efe2e618ee571fdea4eabbc09f38da8e2d6f839137d0d521b77ca279f55c349fe12f2a069abb4f320ebf87249c881b634f32997ae65c
languageName: node
linkType: hard
"@ai-sdk/react@npm:3.0.118":
version: 3.0.118
resolution: "@ai-sdk/react@npm:3.0.118"
"@ai-sdk/react@npm:^3.0.172":
version: 3.0.172
resolution: "@ai-sdk/react@npm:3.0.172"
dependencies:
"@ai-sdk/provider-utils": "npm:4.0.19"
ai: "npm:6.0.116"
"@ai-sdk/provider-utils": "npm:4.0.24"
ai: "npm:6.0.170"
swr: "npm:^2.2.5"
throttleit: "npm:2.1.0"
peerDependencies:
react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1
checksum: 10c0/270ca2b77d181dfbd9a451c73fb144a6a9ee2683162db9eb5c538fa03503594aacddda6be2c027cefc0b495e1626bd18951e942eb99e0412152e10ebb41f0b64
checksum: 10c0/6fbfefdb9ad124b48cd019238e81f60f53fc6f59c4144ec90733069a7f98440f78345be57356d2f748dfcc0f5b0f2d57be5cc9eb7b1e0b5b1ccac769400da407
languageName: node
linkType: hard
@@ -7160,9 +7212,10 @@ __metadata:
version: 0.0.0-use.local
resolution: "@overleaf/web@workspace:services/web"
dependencies:
"@ai-sdk/mcp": "npm:^1.0.25"
"@ai-sdk/openai": "npm:^3.0.41"
"@ai-sdk/react": "npm:^3.0.118"
"@ai-sdk/google-vertex": "npm:^4.0.113"
"@ai-sdk/mcp": "npm:^1.0.37"
"@ai-sdk/openai": "npm:^3.0.54"
"@ai-sdk/react": "npm:^3.0.172"
"@aws-sdk/client-ses": "npm:^3.994.0"
"@babel/core": "npm:^7.28.5"
"@babel/plugin-proposal-decorators": "npm:^7.28.0"
@@ -7285,7 +7338,7 @@ __metadata:
accepts: "npm:^1.3.7"
acorn: "npm:^7.1.1"
acorn-walk: "npm:^7.1.1"
ai: "npm:^6.0.116"
ai: "npm:^6.0.169"
ajv: "npm:^8.12.0"
algoliasearch: "npm:^3.35.1"
archiver: "npm:^5.3.0"
@@ -12020,10 +12073,10 @@ __metadata:
languageName: node
linkType: hard
"@vercel/oidc@npm:3.1.0":
version: 3.1.0
resolution: "@vercel/oidc@npm:3.1.0"
checksum: 10c0/f57278ed4b4c022c7ca85e8baa5f9bdb2623397abfa0e5dbfd75de283c8e5dc534d64dac1364b5ad8c96d00eb2d469886e6f7b640f6f195def5766950ad8ce71
"@vercel/oidc@npm:3.2.0":
version: 3.2.0
resolution: "@vercel/oidc@npm:3.2.0"
checksum: 10c0/98318d3236f58c296616c8c2e1655b268c7bf58525bcd985adac7af6d900e05fc610f6f03ce2ff4bdcd3df7885a40c0ca44fdc761f122dcfe15a78c2756b0243
languageName: node
linkType: hard
@@ -12646,17 +12699,17 @@ __metadata:
languageName: node
linkType: hard
"ai@npm:6.0.116":
version: 6.0.116
resolution: "ai@npm:6.0.116"
"ai@npm:6.0.170, ai@npm:^6.0.169":
version: 6.0.170
resolution: "ai@npm:6.0.170"
dependencies:
"@ai-sdk/gateway": "npm:3.0.66"
"@ai-sdk/provider": "npm:3.0.8"
"@ai-sdk/provider-utils": "npm:4.0.19"
"@ai-sdk/gateway": "npm:3.0.105"
"@ai-sdk/provider": "npm:3.0.9"
"@ai-sdk/provider-utils": "npm:4.0.24"
"@opentelemetry/api": "npm:1.9.0"
peerDependencies:
zod: ^3.25.76 || ^4.1.8
checksum: 10c0/6487297914defe015e391fcf67fb21ff784a4844be695df553018d69ce8a1b9ae906ae02effecb911c8f0dcfb41288a70d195149e1e5cc80e5fb73f0bb2d73a4
checksum: 10c0/529a71efffba24eb3ce1ffa3062f355f4c140df25605bbe5818ce84619961e19c5e9f3ff62dbb91d554a45bf3dd399e924561d9ee4cd129e7eabe077054e53ce
languageName: node
linkType: hard
@@ -18207,13 +18260,20 @@ __metadata:
languageName: node
linkType: hard
"eventsource-parser@npm:^3.0.0, eventsource-parser@npm:^3.0.6":
"eventsource-parser@npm:^3.0.0":
version: 3.0.6
resolution: "eventsource-parser@npm:3.0.6"
checksum: 10c0/70b8ccec7dac767ef2eca43f355e0979e70415701691382a042a2df8d6a68da6c2fca35363669821f3da876d29c02abe9b232964637c1b6635c940df05ada78a
languageName: node
linkType: hard
"eventsource-parser@npm:^3.0.8":
version: 3.0.8
resolution: "eventsource-parser@npm:3.0.8"
checksum: 10c0/3a73eee85311f33b12fa558381a477c1bdcf8c024a429a9d48f87b043e328c26d24ed280fd7ca92e2fdd4c8c37f749b758420c1533778aaca2beabf895024efa
languageName: node
linkType: hard
"execa@npm:4.1.0":
version: 4.1.0
resolution: "execa@npm:4.1.0"
@@ -19767,7 +19827,7 @@ __metadata:
languageName: node
linkType: hard
"google-auth-library@npm:^10.0.0-rc.1":
"google-auth-library@npm:^10.0.0-rc.1, google-auth-library@npm:^10.5.0":
version: 10.6.2
resolution: "google-auth-library@npm:10.6.2"
dependencies: