@ai-sdk/google 4.0.109 → 4.0.110
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 +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -10
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +54 -9
- package/dist/internal/index.js.map +1 -1
- package/docs/15-google.mdx +14 -10
- package/package.json +2 -2
- package/src/convert-to-google-messages.ts +61 -7
- package/src/google-error.ts +37 -0
- package/src/google-language-model.ts +10 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["_$__google_prompt0.GoogleContent","_$__google_prompt0.GoogleSystemInstruction"],"sources":["../../src/google-prompt.ts","../../src/google-language-model-options.ts","../../src/google-language-model.ts","../../src/google-speech-model-options.ts","../../src/google-speech-model.ts","../../src/google-speech-input.ts","../../src/google-tools.ts","../../src/interactions/google-interactions-language-model-options.ts","../../src/interactions/google-interactions-language-model.ts","../../src/interactions/google-interactions-agent.ts"],"mappings":";;;;KAcY;EACV,OAAO;IAAQ;;;KAGL;EACV;EACA,OAAO,MAAM;;cAGF,2BAAyB,EAAA;;;;GAOpC,EAAA,KAAA;;KAGU,sBAAsB,EAAE,aAAa;KAErC;EACN;EAAc;EAAmB;;EAEjC;IAAc;IAAkB;;EAChC,gBAAgB;EAChB;EACA;;EAGA;IAAgB;IAAa;IAAc;;EAC3C;;EAGA;IACE;IACA;IACA;IACA,QAAQ,MAAM;;;EAIhB;IAAY;IAAkB;;EAC9B,gBAAgB;EAChB;EACA;;EAGA;IACE;IACA;IACA;;EAEF;;EAGA;IACE;IACA;IACA;;EAEF;;EAGA;IACE;IACA;;;EAIF;IACE;IACA;;;KAII;EAEN;IAAc;IAAkB;;;EAGhC;IAAY;IAAkB;;;;;KCxFxB;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["_$__google_prompt0.GoogleContent","_$__google_prompt0.GoogleSystemInstruction"],"sources":["../../src/google-prompt.ts","../../src/google-language-model-options.ts","../../src/google-language-model.ts","../../src/google-speech-model-options.ts","../../src/google-speech-model.ts","../../src/google-speech-input.ts","../../src/google-tools.ts","../../src/interactions/google-interactions-language-model-options.ts","../../src/interactions/google-interactions-language-model.ts","../../src/interactions/google-interactions-agent.ts"],"mappings":"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"}
|
package/dist/internal/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, convertBase64ToUint8Array, convertJsonResponseToolStream, convertToBase64, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonResponseHandler, createNullLanguageModelUsage, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, delay, detectMediaType, downloadBlob, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, isAbortError, isCustomReasoning, isFullMediaType, isUrlSupported, lazySchema, mapReasoningToProviderBudget, mapReasoningToProviderEffort, parseProviderOptions, postJsonToApi, resolve, resolveFullMediaType, resolveProviderReference, secureJsonParse, serializeModelOptions, withUserAgentSuffix, zodSchema } from "@ai-sdk/provider-utils";
|
|
1
|
+
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, convertBase64ToUint8Array, convertJsonResponseToolStream, convertToBase64, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonResponseHandler, createNullLanguageModelUsage, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, delay, detectMediaType, downloadBlob, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, isAbortError, isCustomReasoning, isFullMediaType, isUrlSupported, lazySchema, mapReasoningToProviderBudget, mapReasoningToProviderEffort, parseProviderOptions, postJsonToApi, resolve, resolveFullMediaType, resolveProviderReference, secureJsonParse, serializeModelOptions, stringifyWithBigIntAndCycles, withUserAgentSuffix, zodSchema } from "@ai-sdk/provider-utils";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
import { InvalidArgumentError, UnsupportedFunctionalityError } from "@ai-sdk/provider";
|
|
4
4
|
//#region src/continue-google-stream.ts
|
|
@@ -175,13 +175,28 @@ function convertUrlToolResultPart(url) {
|
|
|
175
175
|
data: parsedDataUrl.data
|
|
176
176
|
} };
|
|
177
177
|
}
|
|
178
|
-
function containsJSONSchemaReference(value) {
|
|
179
|
-
if (
|
|
180
|
-
if (
|
|
181
|
-
|
|
178
|
+
function containsJSONSchemaReference(value, seen = /* @__PURE__ */ new WeakSet()) {
|
|
179
|
+
if (value === null || typeof value !== "object") return false;
|
|
180
|
+
if (seen.has(value)) return false;
|
|
181
|
+
seen.add(value);
|
|
182
|
+
if (Array.isArray(value)) return value.some((item) => containsJSONSchemaReference(item, seen));
|
|
183
|
+
return Object.entries(value).some(([key, nestedValue]) => key === "$ref" || containsJSONSchemaReference(nestedValue, seen));
|
|
182
184
|
}
|
|
183
185
|
function serializeFunctionResponseContent(value) {
|
|
184
|
-
|
|
186
|
+
if (containsJSONSchemaReference(value)) return stringifyWithBigIntAndCycles(value);
|
|
187
|
+
return containsNonJsonValue(value) ? secureJsonParse(stringifyWithBigIntAndCycles(value)) : value;
|
|
188
|
+
}
|
|
189
|
+
function containsNonJsonValue(value, ancestors = /* @__PURE__ */ new Set()) {
|
|
190
|
+
if (typeof value === "bigint") return true;
|
|
191
|
+
if (typeof value !== "object" || value === null) return false;
|
|
192
|
+
if (typeof value.toJSON === "function") return true;
|
|
193
|
+
if (ancestors.has(value)) return true;
|
|
194
|
+
ancestors.add(value);
|
|
195
|
+
try {
|
|
196
|
+
return Object.values(value).some((item) => containsNonJsonValue(item, ancestors));
|
|
197
|
+
} finally {
|
|
198
|
+
ancestors.delete(value);
|
|
199
|
+
}
|
|
185
200
|
}
|
|
186
201
|
function appendToolResultParts(parts, toolName, outputValue, toolCallId, includeFunctionCallIds = true, supportedUrls = {}) {
|
|
187
202
|
const functionResponseParts = [];
|
|
@@ -422,7 +437,7 @@ function convertToGoogleMessages(prompt, options) {
|
|
|
422
437
|
functionCall: {
|
|
423
438
|
...includeFunctionCallIds && part.toolCallId != null ? { id: part.toolCallId } : {},
|
|
424
439
|
name: part.toolName,
|
|
425
|
-
args: part.input
|
|
440
|
+
args: parseToolCallInput(part.input)
|
|
426
441
|
},
|
|
427
442
|
thoughtSignature: effectiveThoughtSignature
|
|
428
443
|
};
|
|
@@ -510,6 +525,14 @@ function convertToGoogleMessages(prompt, options) {
|
|
|
510
525
|
contents
|
|
511
526
|
};
|
|
512
527
|
}
|
|
528
|
+
function parseToolCallInput(input) {
|
|
529
|
+
if (typeof input !== "string") return input;
|
|
530
|
+
try {
|
|
531
|
+
return secureJsonParse(input);
|
|
532
|
+
} catch {
|
|
533
|
+
return input;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
513
536
|
//#endregion
|
|
514
537
|
//#region src/download-tool-result-files.ts
|
|
515
538
|
/**
|
|
@@ -618,6 +641,27 @@ const googleFailedResponseHandler = createJsonErrorResponseHandler({
|
|
|
618
641
|
errorSchema: googleErrorDataSchema,
|
|
619
642
|
errorToMessage: (data) => data.error.message
|
|
620
643
|
});
|
|
644
|
+
function mapGoogleErrorStatusToHttpStatusCode(status) {
|
|
645
|
+
switch (status) {
|
|
646
|
+
case "CANCELLED": return 499;
|
|
647
|
+
case "INVALID_ARGUMENT":
|
|
648
|
+
case "FAILED_PRECONDITION":
|
|
649
|
+
case "OUT_OF_RANGE": return 400;
|
|
650
|
+
case "DEADLINE_EXCEEDED": return 504;
|
|
651
|
+
case "NOT_FOUND": return 404;
|
|
652
|
+
case "ALREADY_EXISTS":
|
|
653
|
+
case "ABORTED": return 409;
|
|
654
|
+
case "PERMISSION_DENIED": return 403;
|
|
655
|
+
case "UNAUTHENTICATED": return 401;
|
|
656
|
+
case "RESOURCE_EXHAUSTED": return 429;
|
|
657
|
+
case "UNIMPLEMENTED": return 501;
|
|
658
|
+
case "UNKNOWN":
|
|
659
|
+
case "INTERNAL":
|
|
660
|
+
case "DATA_LOSS": return 500;
|
|
661
|
+
case "UNAVAILABLE": return 503;
|
|
662
|
+
default: return;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
621
665
|
//#endregion
|
|
622
666
|
//#region src/sanitize-response-json-schema.ts
|
|
623
667
|
/**
|
|
@@ -2034,14 +2078,15 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
2034
2078
|
raw: void 0
|
|
2035
2079
|
};
|
|
2036
2080
|
const error = value.error;
|
|
2081
|
+
const statusCode = error.code ?? mapGoogleErrorStatusToHttpStatusCode(error.status);
|
|
2037
2082
|
controller.enqueue({
|
|
2038
2083
|
type: "error",
|
|
2039
2084
|
error: createProviderStreamError({
|
|
2040
2085
|
message: error.message,
|
|
2041
2086
|
type: error.status,
|
|
2042
2087
|
code: error.code ?? void 0,
|
|
2043
|
-
statusCode
|
|
2044
|
-
isRetryable:
|
|
2088
|
+
statusCode,
|
|
2089
|
+
isRetryable: statusCode != null && (statusCode === 408 || statusCode === 409 || statusCode === 429 || statusCode >= 500),
|
|
2045
2090
|
data: error
|
|
2046
2091
|
})
|
|
2047
2092
|
});
|