@ai-sdk/google 2.0.103 → 2.0.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +64 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -36
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +61 -33
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +61 -33
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/internal/index.mjs
CHANGED
|
@@ -1288,7 +1288,7 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1288
1288
|
};
|
|
1289
1289
|
}
|
|
1290
1290
|
async doGenerate(options) {
|
|
1291
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
1291
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
1292
1292
|
const { args, warnings } = await this.getArgs(options);
|
|
1293
1293
|
const body = JSON.stringify(args);
|
|
1294
1294
|
const mergedHeaders = combineHeaders(
|
|
@@ -1312,18 +1312,20 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1312
1312
|
rawValue: rawResponse
|
|
1313
1313
|
} = await generateContent(args);
|
|
1314
1314
|
const continuedParts = [];
|
|
1315
|
+
const groundingMetadataPerRequest = [];
|
|
1315
1316
|
let continuedUsageMetadata;
|
|
1316
1317
|
const firstPromptTokenCount = (_a = response.usageMetadata) == null ? void 0 : _a.promptTokenCount;
|
|
1317
1318
|
while (true) {
|
|
1318
1319
|
const candidate2 = (_b = response.candidates) == null ? void 0 : _b[0];
|
|
1320
|
+
groundingMetadataPerRequest.push((_c = candidate2 == null ? void 0 : candidate2.groundingMetadata) != null ? _c : null);
|
|
1319
1321
|
const continuationToken = (candidate2 == null ? void 0 : candidate2.finishReason) === "CONTINUATION" ? candidate2.continuationToken : void 0;
|
|
1320
1322
|
if (continuationToken == null) {
|
|
1321
1323
|
break;
|
|
1322
1324
|
}
|
|
1323
|
-
continuedParts.push(...(
|
|
1325
|
+
continuedParts.push(...(_e = (_d = candidate2 == null ? void 0 : candidate2.content) == null ? void 0 : _d.parts) != null ? _e : []);
|
|
1324
1326
|
continuedUsageMetadata = addGoogleGenerativeAIUsageMetadata(
|
|
1325
1327
|
continuedUsageMetadata,
|
|
1326
|
-
(
|
|
1328
|
+
(_f = response.usageMetadata) != null ? _f : void 0
|
|
1327
1329
|
);
|
|
1328
1330
|
({
|
|
1329
1331
|
responseHeaders,
|
|
@@ -1331,18 +1333,18 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1331
1333
|
rawValue: rawResponse
|
|
1332
1334
|
} = await generateContent({ ...args, continuationToken }));
|
|
1333
1335
|
}
|
|
1334
|
-
const candidate = (
|
|
1335
|
-
const promptBlockReason = (
|
|
1336
|
+
const candidate = (_g = response.candidates) == null ? void 0 : _g[0];
|
|
1337
|
+
const promptBlockReason = (_h = response.promptFeedback) == null ? void 0 : _h.blockReason;
|
|
1336
1338
|
const isPromptBlocked = (candidate == null ? void 0 : candidate.finishReason) == null && promptBlockReason != null;
|
|
1337
1339
|
const content = [];
|
|
1338
|
-
const parts = [...continuedParts, ...(
|
|
1340
|
+
const parts = [...continuedParts, ...(_j = (_i = candidate == null ? void 0 : candidate.content) == null ? void 0 : _i.parts) != null ? _j : []];
|
|
1339
1341
|
const usageMetadata = addGoogleGenerativeAIUsageMetadata(
|
|
1340
1342
|
continuedUsageMetadata,
|
|
1341
|
-
(
|
|
1343
|
+
(_k = response.usageMetadata) != null ? _k : void 0
|
|
1342
1344
|
);
|
|
1343
1345
|
let lastCodeExecutionToolCallId;
|
|
1344
1346
|
for (const part of parts) {
|
|
1345
|
-
if ("executableCode" in part && ((
|
|
1347
|
+
if ("executableCode" in part && ((_l = part.executableCode) == null ? void 0 : _l.code)) {
|
|
1346
1348
|
const toolCallId = this.config.generateId();
|
|
1347
1349
|
lastCodeExecutionToolCallId = toolCallId;
|
|
1348
1350
|
content.push({
|
|
@@ -1383,7 +1385,7 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1383
1385
|
} else if ("functionCall" in part) {
|
|
1384
1386
|
content.push({
|
|
1385
1387
|
type: "tool-call",
|
|
1386
|
-
toolCallId: (
|
|
1388
|
+
toolCallId: (_m = part.functionCall.id) != null ? _m : this.config.generateId(),
|
|
1387
1389
|
toolName: part.functionCall.name,
|
|
1388
1390
|
input: JSON.stringify(part.functionCall.args),
|
|
1389
1391
|
providerMetadata: part.thoughtSignature ? { google: { thoughtSignature: part.thoughtSignature } } : void 0
|
|
@@ -1396,10 +1398,10 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1396
1398
|
});
|
|
1397
1399
|
}
|
|
1398
1400
|
}
|
|
1399
|
-
const sources = (
|
|
1401
|
+
const sources = (_n = extractSources({
|
|
1400
1402
|
groundingMetadata: candidate == null ? void 0 : candidate.groundingMetadata,
|
|
1401
1403
|
generateId: this.config.generateId
|
|
1402
|
-
})) != null ?
|
|
1404
|
+
})) != null ? _n : [];
|
|
1403
1405
|
for (const source of sources) {
|
|
1404
1406
|
content.push(source);
|
|
1405
1407
|
}
|
|
@@ -1410,21 +1412,22 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1410
1412
|
hasToolCalls: content.some((part) => part.type === "tool-call")
|
|
1411
1413
|
}),
|
|
1412
1414
|
usage: {
|
|
1413
|
-
inputTokens: (
|
|
1414
|
-
outputTokens: (
|
|
1415
|
-
totalTokens: (
|
|
1416
|
-
reasoningTokens: (
|
|
1417
|
-
cachedInputTokens: (
|
|
1415
|
+
inputTokens: (_o = usageMetadata == null ? void 0 : usageMetadata.promptTokenCount) != null ? _o : void 0,
|
|
1416
|
+
outputTokens: (_p = usageMetadata == null ? void 0 : usageMetadata.candidatesTokenCount) != null ? _p : void 0,
|
|
1417
|
+
totalTokens: (_q = usageMetadata == null ? void 0 : usageMetadata.totalTokenCount) != null ? _q : void 0,
|
|
1418
|
+
reasoningTokens: (_r = usageMetadata == null ? void 0 : usageMetadata.thoughtsTokenCount) != null ? _r : void 0,
|
|
1419
|
+
cachedInputTokens: (_s = usageMetadata == null ? void 0 : usageMetadata.cachedContentTokenCount) != null ? _s : void 0
|
|
1418
1420
|
},
|
|
1419
1421
|
warnings,
|
|
1420
1422
|
providerMetadata: {
|
|
1421
1423
|
google: {
|
|
1422
|
-
promptFeedback: (
|
|
1423
|
-
groundingMetadata: (
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1424
|
+
promptFeedback: (_t = response.promptFeedback) != null ? _t : null,
|
|
1425
|
+
groundingMetadata: (_u = candidate == null ? void 0 : candidate.groundingMetadata) != null ? _u : null,
|
|
1426
|
+
...groundingMetadataPerRequest.length > 1 ? { groundingMetadataPerRequest } : {},
|
|
1427
|
+
urlContextMetadata: (_v = candidate == null ? void 0 : candidate.urlContextMetadata) != null ? _v : null,
|
|
1428
|
+
safetyRatings: (_w = candidate == null ? void 0 : candidate.safetyRatings) != null ? _w : null,
|
|
1429
|
+
serviceTier: (_x = response.serviceTier) != null ? _x : null,
|
|
1430
|
+
...(candidate == null ? void 0 : candidate.continuationToken) != null && candidate.finishReason === "MAX_TOKENS" ? { continuationToken: candidate.continuationToken } : {},
|
|
1428
1431
|
...continuedUsageMetadata != null && firstPromptTokenCount != null ? { initialPromptTokenCount: firstPromptTokenCount } : {},
|
|
1429
1432
|
usageMetadata: usageMetadata != null ? usageMetadata : null
|
|
1430
1433
|
}
|
|
@@ -1456,14 +1459,27 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1456
1459
|
fetch: this.config.fetch
|
|
1457
1460
|
});
|
|
1458
1461
|
const { responseHeaders, value: firstResponse } = await streamGenerateContent(args);
|
|
1462
|
+
const groundingMetadataPerRequest = [];
|
|
1463
|
+
let requestGroundingMetadata = null;
|
|
1459
1464
|
const response = continueGoogleStream({
|
|
1460
1465
|
stream: firstResponse,
|
|
1461
1466
|
getContinuationToken: (chunk) => {
|
|
1462
1467
|
var _a, _b;
|
|
1463
1468
|
const candidate = (_a = chunk.candidates) == null ? void 0 : _a[0];
|
|
1469
|
+
if ((candidate == null ? void 0 : candidate.groundingMetadata) != null) {
|
|
1470
|
+
requestGroundingMetadata = candidate.groundingMetadata;
|
|
1471
|
+
}
|
|
1464
1472
|
return (candidate == null ? void 0 : candidate.finishReason) === "CONTINUATION" ? (_b = candidate.continuationToken) != null ? _b : void 0 : void 0;
|
|
1465
1473
|
},
|
|
1466
|
-
continueStream: async (continuationToken) =>
|
|
1474
|
+
continueStream: async (continuationToken) => {
|
|
1475
|
+
const { value } = await streamGenerateContent({
|
|
1476
|
+
...args,
|
|
1477
|
+
continuationToken
|
|
1478
|
+
});
|
|
1479
|
+
groundingMetadataPerRequest.push(requestGroundingMetadata);
|
|
1480
|
+
requestGroundingMetadata = null;
|
|
1481
|
+
return value;
|
|
1482
|
+
}
|
|
1467
1483
|
});
|
|
1468
1484
|
let finishReason = "unknown";
|
|
1469
1485
|
const usage = {
|
|
@@ -1741,6 +1757,18 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
1741
1757
|
id: currentReasoningBlockId
|
|
1742
1758
|
});
|
|
1743
1759
|
}
|
|
1760
|
+
if (groundingMetadataPerRequest.length > 0) {
|
|
1761
|
+
providerMetadata = {
|
|
1762
|
+
...providerMetadata,
|
|
1763
|
+
google: {
|
|
1764
|
+
...providerMetadata == null ? void 0 : providerMetadata.google,
|
|
1765
|
+
groundingMetadataPerRequest: [
|
|
1766
|
+
...groundingMetadataPerRequest,
|
|
1767
|
+
requestGroundingMetadata
|
|
1768
|
+
]
|
|
1769
|
+
}
|
|
1770
|
+
};
|
|
1771
|
+
}
|
|
1744
1772
|
controller.enqueue({
|
|
1745
1773
|
type: "finish",
|
|
1746
1774
|
finishReason,
|
|
@@ -1958,13 +1986,13 @@ var getSafetyRatingSchema = () => z3.object({
|
|
|
1958
1986
|
severityScore: z3.number().nullish(),
|
|
1959
1987
|
blocked: z3.boolean().nullish()
|
|
1960
1988
|
});
|
|
1961
|
-
var tokenDetailsSchema = z3.array(
|
|
1989
|
+
var tokenDetailsSchema = () => z3.array(
|
|
1962
1990
|
z3.object({
|
|
1963
1991
|
modality: z3.string(),
|
|
1964
1992
|
tokenCount: z3.number()
|
|
1965
1993
|
})
|
|
1966
1994
|
).nullish();
|
|
1967
|
-
var usageSchema = z3.object({
|
|
1995
|
+
var usageSchema = () => z3.object({
|
|
1968
1996
|
cachedContentTokenCount: z3.number().nullish(),
|
|
1969
1997
|
thoughtsTokenCount: z3.number().nullish(),
|
|
1970
1998
|
promptTokenCount: z3.number().nullish(),
|
|
@@ -1973,8 +2001,8 @@ var usageSchema = z3.object({
|
|
|
1973
2001
|
// https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerateContentResponse#TrafficType
|
|
1974
2002
|
trafficType: z3.string().nullish(),
|
|
1975
2003
|
// https://ai.google.dev/api/generate-content#Modality
|
|
1976
|
-
promptTokensDetails: tokenDetailsSchema,
|
|
1977
|
-
candidatesTokensDetails: tokenDetailsSchema
|
|
2004
|
+
promptTokensDetails: tokenDetailsSchema(),
|
|
2005
|
+
candidatesTokensDetails: tokenDetailsSchema()
|
|
1978
2006
|
});
|
|
1979
2007
|
var getUrlContextMetadataSchema = () => z3.object({
|
|
1980
2008
|
urlMetadata: z3.array(
|
|
@@ -1997,7 +2025,7 @@ var responseSchema = lazySchema3(
|
|
|
1997
2025
|
urlContextMetadata: getUrlContextMetadataSchema().nullish()
|
|
1998
2026
|
})
|
|
1999
2027
|
).nullish(),
|
|
2000
|
-
usageMetadata: usageSchema.nullish(),
|
|
2028
|
+
usageMetadata: usageSchema().nullish(),
|
|
2001
2029
|
promptFeedback: z3.object({
|
|
2002
2030
|
blockReason: z3.string().nullish(),
|
|
2003
2031
|
safetyRatings: z3.array(getSafetyRatingSchema()).nullish()
|
|
@@ -2019,7 +2047,7 @@ var chunkSchema = lazySchema3(
|
|
|
2019
2047
|
urlContextMetadata: getUrlContextMetadataSchema().nullish()
|
|
2020
2048
|
})
|
|
2021
2049
|
).nullish(),
|
|
2022
|
-
usageMetadata: usageSchema.nullish(),
|
|
2050
|
+
usageMetadata: usageSchema().nullish(),
|
|
2023
2051
|
promptFeedback: z3.object({
|
|
2024
2052
|
blockReason: z3.string().nullish(),
|
|
2025
2053
|
safetyRatings: z3.array(getSafetyRatingSchema()).nullish()
|
|
@@ -2065,7 +2093,7 @@ import {
|
|
|
2065
2093
|
zodSchema as zodSchema5
|
|
2066
2094
|
} from "@ai-sdk/provider-utils";
|
|
2067
2095
|
import { z as z6 } from "zod/v4";
|
|
2068
|
-
var fileSearchArgsBaseSchema = z6.object({
|
|
2096
|
+
var fileSearchArgsBaseSchema = () => z6.object({
|
|
2069
2097
|
/** The names of the file_search_stores to retrieve from.
|
|
2070
2098
|
* Example: `fileSearchStores/my-file-search-store-123`
|
|
2071
2099
|
*/
|
|
@@ -2082,7 +2110,7 @@ var fileSearchArgsBaseSchema = z6.object({
|
|
|
2082
2110
|
).optional()
|
|
2083
2111
|
}).passthrough();
|
|
2084
2112
|
var fileSearchArgsSchema = lazySchema5(
|
|
2085
|
-
() => zodSchema5(fileSearchArgsBaseSchema)
|
|
2113
|
+
() => zodSchema5(fileSearchArgsBaseSchema())
|
|
2086
2114
|
);
|
|
2087
2115
|
var fileSearch = createProviderDefinedToolFactory2({
|
|
2088
2116
|
id: "google.file_search",
|
|
@@ -2110,7 +2138,7 @@ import {
|
|
|
2110
2138
|
zodSchema as zodSchema7
|
|
2111
2139
|
} from "@ai-sdk/provider-utils";
|
|
2112
2140
|
import { z as z8 } from "zod/v4";
|
|
2113
|
-
var googleSearchToolArgsBaseSchema = z8.object({
|
|
2141
|
+
var googleSearchToolArgsBaseSchema = () => z8.object({
|
|
2114
2142
|
searchTypes: z8.object({
|
|
2115
2143
|
webSearch: z8.object({}).optional(),
|
|
2116
2144
|
imageSearch: z8.object({}).optional()
|
|
@@ -2121,7 +2149,7 @@ var googleSearchToolArgsBaseSchema = z8.object({
|
|
|
2121
2149
|
}).optional()
|
|
2122
2150
|
}).passthrough();
|
|
2123
2151
|
var googleSearchToolArgsSchema = lazySchema7(
|
|
2124
|
-
() => zodSchema7(googleSearchToolArgsBaseSchema)
|
|
2152
|
+
() => zodSchema7(googleSearchToolArgsBaseSchema())
|
|
2125
2153
|
);
|
|
2126
2154
|
var googleSearch = createProviderDefinedToolFactory4({
|
|
2127
2155
|
id: "google.google_search",
|