diff --git a/src/packages/pnpm-lock.yaml b/src/packages/pnpm-lock.yaml index 40d0723fe8..3f75997cf6 100644 --- a/src/packages/pnpm-lock.yaml +++ b/src/packages/pnpm-lock.yaml @@ -1232,8 +1232,8 @@ importers: specifier: ^4.1.0 version: 4.1.0(encoding@0.1.13) '@google-cloud/storage': - specifier: ^7.11.1 - version: 7.16.0(encoding@0.1.13) + specifier: ^7.19.0 + version: 7.19.0(encoding@0.1.13) '@google-cloud/storage-transfer': specifier: ^3.3.0 version: 3.6.1(encoding@0.1.13) @@ -2870,8 +2870,8 @@ packages: resolution: {integrity: sha512-9F0R0URrS5YRoOaaTxLKYh9PNbN0YyPtuNXUUDpeQl3eIBY+ZZreVdhJfA5iAb8qq/dOfrZ4pnTjIysy0MHgPQ==} engines: {node: '>=14.0.0'} - '@google-cloud/storage@7.16.0': - resolution: {integrity: sha512-7/5LRgykyOfQENcm6hDKP8SX/u9XxE5YOiWOkgkwcoO+cG8xT/cyOvp9wwN3IxfdYgpHs8CE7Nq2PKX2lNaEXw==} + '@google-cloud/storage@7.19.0': + resolution: {integrity: sha512-n2FjE7NAOYyshogdc7KQOl/VZb4sneqPjWouSyia9CMDdMhRX5+RIbqalNmC7LOLzuLAN89VlF2HvG8na9G+zQ==} engines: {node: '>=14'} '@google/generative-ai@0.24.1': @@ -4796,6 +4796,9 @@ packages: '@types/node@24.2.1': resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==} + '@types/node@25.3.0': + resolution: {integrity: sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==} + '@types/nodemailer@7.0.4': resolution: {integrity: sha512-ee8fxWqOchH+Hv6MDDNNy028kwvVnLplrStm4Zf/3uHWw5zzo8FoYYeffpJtGs2wWysEumMH0ZIdMGMY1eMAow==} @@ -5254,6 +5257,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + activedirectory2@2.2.0: resolution: {integrity: sha512-uGbw74xttFG6hgocU8T1a0oDofLsyTp44BPTn42JN5C2QlyO5kRl2E7ZoUdfpFzV+yxhaQTKI+8QqRB5HONYvA==} engines: {node: '>=4.0'} @@ -5577,12 +5585,13 @@ packages: resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} engines: {node: '>=6.0.0'} - baseline-browser-mapping@2.8.20: - resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} hasBin: true - baseline-browser-mapping@2.9.19: - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + baseline-browser-mapping@2.8.20: + resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} hasBin: true basic-auth@2.0.1: @@ -7249,10 +7258,6 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-parser@4.5.3: - resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} - hasBin: true - fast-xml-parser@5.3.6: resolution: {integrity: sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA==} hasBin: true @@ -11245,9 +11250,6 @@ packages: resolution: {integrity: sha512-aT2BU9KkizY9SATf14WhhYVv2uOapBWX0OFWF4xvcj1mPaNotlSc2CsxpS4DS46ZueSppmCF5BX1sNYBtwBvfw==} engines: {node: '>=12.*'} - strnum@1.1.2: - resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} - strnum@2.1.2: resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} @@ -11737,6 +11739,9 @@ packages: undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} @@ -13633,7 +13638,7 @@ snapshots: - encoding - supports-color - '@google-cloud/storage@7.16.0(encoding@0.1.13)': + '@google-cloud/storage@7.19.0(encoding@0.1.13)': dependencies: '@google-cloud/paginator': 5.0.2 '@google-cloud/projectify': 4.0.0 @@ -13641,7 +13646,7 @@ snapshots: abort-controller: 3.0.0 async-retry: 1.3.3 duplexify: 4.1.3 - fast-xml-parser: 4.5.3 + fast-xml-parser: 5.3.6 gaxios: 6.7.1(encoding@0.1.13) google-auth-library: 9.15.1(encoding@0.1.13) html-entities: 2.6.0 @@ -16025,6 +16030,10 @@ snapshots: dependencies: undici-types: 7.10.0 + '@types/node@25.3.0': + dependencies: + undici-types: 7.18.2 + '@types/nodemailer@7.0.4': dependencies: '@aws-sdk/client-sesv2': 3.946.0 @@ -16489,9 +16498,9 @@ snapshots: setheader: 1.0.2 vary: 1.1.2 - acorn-import-phases@1.0.4(acorn@8.15.0): + acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -16505,6 +16514,8 @@ snapshots: acorn@8.15.0: {} + acorn@8.16.0: {} + activedirectory2@2.2.0: dependencies: abstract-logging: 2.0.1 @@ -16916,9 +16927,9 @@ snapshots: base64url@3.0.1: {} - baseline-browser-mapping@2.8.20: {} + baseline-browser-mapping@2.10.0: {} - baseline-browser-mapping@2.9.19: {} + baseline-browser-mapping@2.8.20: {} basic-auth@2.0.1: dependencies: @@ -17039,7 +17050,7 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.19 + baseline-browser-mapping: 2.10.0 caniuse-lite: 1.0.30001770 electron-to-chromium: 1.5.286 node-releases: 2.0.27 @@ -18900,10 +18911,6 @@ snapshots: fast-uri@3.1.0: {} - fast-xml-parser@4.5.3: - dependencies: - strnum: 1.1.2 - fast-xml-parser@5.3.6: dependencies: strnum: 2.1.2 @@ -20650,7 +20657,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 18.19.130 + '@types/node': 25.3.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -23914,8 +23921,6 @@ snapshots: '@types/node': 18.19.122 qs: 6.14.1 - strnum@1.1.2: {} - strnum@2.1.2: {} strongly-connected-components@1.0.1: {} @@ -24093,7 +24098,7 @@ snapshots: terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 + acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -24403,6 +24408,8 @@ snapshots: undici-types@7.10.0: {} + undici-types@7.18.2: {} + unicorn-magic@0.3.0: {} unified@11.0.5: @@ -24827,8 +24834,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.19.0 @@ -24859,8 +24866,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.19.0 diff --git a/src/packages/server/package.json b/src/packages/server/package.json index a18d75d1f3..0fb6fa6b72 100644 --- a/src/packages/server/package.json +++ b/src/packages/server/package.json @@ -51,7 +51,7 @@ "@google-cloud/bigquery": "^7.8.0", "@google-cloud/compute": "^4.7.0", "@google-cloud/monitoring": "^4.1.0", - "@google-cloud/storage": "^7.11.1", + "@google-cloud/storage": "^7.19.0", "@google-cloud/storage-transfer": "^3.3.0", "@isaacs/ttlcache": "^1.4.1", "@langchain/anthropic": "^1.3.18", diff --git a/src/packages/util/db-schema/llm-utils.ts b/src/packages/util/db-schema/llm-utils.ts index 3755149fe5..48025363cb 100644 --- a/src/packages/util/db-schema/llm-utils.ts +++ b/src/packages/util/db-schema/llm-utils.ts @@ -178,6 +178,7 @@ export const GOOGLE_MODELS = [ "gemini-2.0-flash-lite-8k", "gemini-3-flash-preview-16k", // Preview model, context limited to 16k "gemini-3-pro-preview-8k", // Preview model, context limited to 8k + "gemini-3.1-pro-preview-8k", // Preview model, context limited to 8k ] as const; export type GoogleModel = (typeof GOOGLE_MODELS)[number]; export function isGoogleModel(model: unknown): model is GoogleModel { @@ -197,6 +198,7 @@ const CANONICAL_GOOGLE_MODELS_THINKING = [ "gemini-2.5-pro", "gemini-3-flash-preview", "gemini-3-pro-preview", + "gemini-3.1-pro-preview", ] as const; export type CanonicalGoogleModel = (typeof CANONICAL_GOOGLE_MODELS)[number]; @@ -220,6 +222,7 @@ export const GOOGLE_MODEL_TO_ID: Partial<{ "gemini-2.5-pro-8k": "gemini-2.5-pro", "gemini-3-flash-preview-16k": "gemini-3-flash-preview", "gemini-3-pro-preview-8k": "gemini-3-pro-preview", + "gemini-3.1-pro-preview-8k": "gemini-3.1-pro-preview", } as const; /** @@ -359,6 +362,7 @@ export const USER_SELECTABLE_LLMS_BY_VENDOR: { m === "gpt-5-mini-8k", ), google: [ + "gemini-3.1-pro-preview-8k", "gemini-3-flash-preview-16k", "gemini-3-pro-preview-8k", "gemini-2.5-flash-8k", @@ -875,6 +879,7 @@ export const LLM_USERNAMES: LLM2String = { "gemini-2.5-flash-8k": "Gemini 2.5 Flash", "gemini-2.5-pro-8k": "Gemini 2.5 Pro", "gemini-3-pro-preview-8k": "Gemini 3 Pro", + "gemini-3.1-pro-preview-8k": "Gemini 3.1 Pro", "mistral-small-latest": "Mistral AI Small", "mistral-medium-latest": "Mistral AI Medium", "mistral-large-latest": "Mistral AI Large", @@ -967,6 +972,8 @@ export const LLM_DESCR: LLM2String = { "Google's Gemini 2.5 Pro Generative AI model (8k token context)", "gemini-3-pro-preview-8k": "Google's Gemini 3 Pro Generative AI model (8k token context)", + "gemini-3.1-pro-preview-8k": + "Google's Gemini 3.1 Pro model with enhanced reasoning (8k token context)", "mistral-small-latest": "Small general purpose tasks, text classification, customer service. (Mistral AI, 4k token context)", "mistral-medium-latest": @@ -1299,6 +1306,12 @@ export const LLM_COST: { [name in LanguageModelCore]: Cost } = { max_tokens: 8_000, free: false, }, + "gemini-3.1-pro-preview-8k": { + prompt_tokens: usd1Mtokens(2), + completion_tokens: usd1Mtokens(12), + max_tokens: 8_000, + free: false, + }, // https://mistral.ai/technology/ "mistral-small-latest": { prompt_tokens: usd1Mtokens(0.2), diff --git a/src/packages/util/db-schema/purchase-quotas.ts b/src/packages/util/db-schema/purchase-quotas.ts index d2a4f8e3ed..6eb24fad0f 100644 --- a/src/packages/util/db-schema/purchase-quotas.ts +++ b/src/packages/util/db-schema/purchase-quotas.ts @@ -346,6 +346,11 @@ export const QUOTA_SPEC: QuotaSpec = { color: GOOGLE_AI_COLOR, category: "ai", }, + "google-gemini-3.1-pro-preview-8k": { + display: LLM_USERNAMES["gemini-3.1-pro-preview-8k"], + color: GOOGLE_AI_COLOR, + category: "ai", + }, "xai-grok-4-1-fast-non-reasoning-16k": { display: LLM_USERNAMES["grok-4-1-fast-non-reasoning-16k"], color: XAI_COLOR,