ai 7.0.84 → 7.0.86
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 +22 -0
- package/dist/index.d.ts +46 -12
- package/dist/index.js +521 -502
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +23 -3
- package/dist/internal/index.js +141 -149
- package/dist/internal/index.js.map +1 -1
- package/dist/test/index.js +1 -1
- package/dist/test/index.js.map +1 -1
- package/docs/03-agents/06-tool-approvals.mdx +6 -3
- package/docs/03-agents/07-workflow-agent.mdx +43 -0
- package/docs/03-ai-sdk-core/35-image-generation.mdx +22 -5
- package/docs/03-ai-sdk-harnesses/02-harness-agent.mdx +25 -6
- package/docs/07-reference/04-ai-sdk-workflow/01-workflow-agent.mdx +25 -0
- package/package.json +13 -13
- package/src/batch/batch-types.ts +4 -1
- package/src/batch/batch.ts +38 -9
- package/src/generate-image/generate-image-result.ts +40 -0
- package/src/generate-image/generate-image.ts +126 -28
- package/src/generate-image/index.ts +4 -1
- package/src/generate-text/convert-language-model-content.ts +206 -0
- package/src/generate-text/generate-text.ts +3 -196
- package/src/generate-text/generated-file.ts +15 -1
- package/src/util/canonical-hash.ts +3 -1
package/dist/internal/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _ai_sdk_provider from '@ai-sdk/provider';
|
|
2
|
-
import { EmbeddingModelV4Embedding,
|
|
2
|
+
import { EmbeddingModelV4Embedding, LanguageModelV4Source, SharedV4Warning, LanguageModelV4, LanguageModelV3, LanguageModelV2, SharedV4ProviderMetadata, JSONObject, LanguageModelV4Usage, LanguageModelV4CallOptions, LanguageModelV4Prompt, AISDKError, LanguageModelV4ToolCall, JSONSchema7, ProviderV4, ProviderV3, ProviderV2, LanguageModelV4ToolResultOutput, LanguageModelV4ToolChoice, LanguageModelV4FunctionTool, LanguageModelV4ProviderTool } from '@ai-sdk/provider';
|
|
3
3
|
import { GatewayModelId } from '@ai-sdk/gateway';
|
|
4
|
-
import { ModelMessage, AssistantModelMessage, ToolModelMessage, ProviderOptions, ToolSet, SystemModelMessage, Context, InferToolSetContext, Arrayable, InferToolInput, InferToolOutput, ReasoningPart, ReasoningFilePart,
|
|
4
|
+
import { ModelMessage, AssistantModelMessage, ToolModelMessage, ProviderOptions, ToolSet, SystemModelMessage, Context, InferToolSetContext, Arrayable, InferToolInput, InferToolOutput, ReasoningPart, ReasoningFilePart, MaybePromiseLike, ToolExecutionOptions, InferToolContext, ToolResultOutput, Tool, Experimental_SandboxSession, RetryFunction, ToolApprovalRequest, ToolApprovalResponse, ToolResultPart } from '@ai-sdk/provider-utils';
|
|
5
5
|
export { convertAsyncIteratorToReadableStream } from '@ai-sdk/provider-utils';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -803,6 +803,10 @@ interface GeneratedFile {
|
|
|
803
803
|
* @see https://www.iana.org/assignments/media-types/media-types.xhtml
|
|
804
804
|
*/
|
|
805
805
|
readonly mediaType: string;
|
|
806
|
+
/**
|
|
807
|
+
* Provider-specific metadata for this file.
|
|
808
|
+
*/
|
|
809
|
+
readonly providerMetadata?: Record<string, JSONObject>;
|
|
806
810
|
}
|
|
807
811
|
|
|
808
812
|
/**
|
|
@@ -2688,6 +2692,22 @@ declare function collectToolApprovals<TOOLS extends ToolSet>({ messages, }: {
|
|
|
2688
2692
|
deniedToolApprovals: Array<CollectedToolApprovals<TOOLS>>;
|
|
2689
2693
|
};
|
|
2690
2694
|
|
|
2695
|
+
declare function signToolApproval({ secret, approvalId, toolCallId, toolName, input, }: {
|
|
2696
|
+
secret: string | Uint8Array;
|
|
2697
|
+
approvalId: string;
|
|
2698
|
+
toolCallId: string;
|
|
2699
|
+
toolName: string;
|
|
2700
|
+
input: unknown;
|
|
2701
|
+
}): Promise<string>;
|
|
2702
|
+
declare function verifyToolApprovalSignature({ secret, signature, approvalId, toolCallId, toolName, input, }: {
|
|
2703
|
+
secret: string | Uint8Array;
|
|
2704
|
+
signature: string;
|
|
2705
|
+
approvalId: string;
|
|
2706
|
+
toolCallId: string;
|
|
2707
|
+
toolName: string;
|
|
2708
|
+
input: unknown;
|
|
2709
|
+
}): Promise<boolean>;
|
|
2710
|
+
|
|
2691
2711
|
/**
|
|
2692
2712
|
* Re-validates approved tool approvals reconstructed from client-supplied
|
|
2693
2713
|
* message history before they are executed. Checks HMAC signature (when
|
|
@@ -2717,4 +2737,4 @@ declare function toResponseMessages<TOOLS extends ToolSet>({ content: inputConte
|
|
|
2717
2737
|
tools: TOOLS | undefined;
|
|
2718
2738
|
}): Promise<Array<AssistantModelMessage | ToolModelMessage>>;
|
|
2719
2739
|
|
|
2720
|
-
export { CollectedToolApprovals, DefaultStepResult, DownloadFunction, addLanguageModelUsage, asLanguageModelUsage, collectToolApprovals, convertToLanguageModelPrompt, createAsyncIterableStream, createDefaultDownloadFunction, createNullLanguageModelUsage, createRestrictedTelemetryDispatcher, createTelemetryDispatcher, createToolModelOutput, downloadAssets, mapToolResultOutput, mergeAbortSignals, mergeCallbacks, parseToolCall, prepareLanguageModelCallOptions as prepareCallSettings, prepareLanguageModelCallOptions, prepareRetries, prepareToolChoice, prepareTools, resolveLanguageModel, standardizePrompt, toResponseMessages, validateApprovedToolApprovals };
|
|
2740
|
+
export { type CollectedToolApprovals, DefaultStepResult, type DownloadFunction, addLanguageModelUsage, asLanguageModelUsage, collectToolApprovals, convertToLanguageModelPrompt, createAsyncIterableStream, createDefaultDownloadFunction, createNullLanguageModelUsage, createRestrictedTelemetryDispatcher, createTelemetryDispatcher, createToolModelOutput, downloadAssets, mapToolResultOutput, mergeAbortSignals, mergeCallbacks, parseToolCall, prepareLanguageModelCallOptions as prepareCallSettings, prepareLanguageModelCallOptions, prepareRetries, prepareToolChoice, prepareTools, resolveLanguageModel, signToolApproval, standardizePrompt, toResponseMessages, validateApprovedToolApprovals, verifyToolApprovalSignature };
|
package/dist/internal/index.js
CHANGED
|
@@ -11,8 +11,7 @@ function asAsyncIterableStream(stream) {
|
|
|
11
11
|
let finished = false;
|
|
12
12
|
async function cleanup(cancelStream) {
|
|
13
13
|
var _a12;
|
|
14
|
-
if (finished)
|
|
15
|
-
return;
|
|
14
|
+
if (finished) return;
|
|
16
15
|
finished = true;
|
|
17
16
|
try {
|
|
18
17
|
if (cancelStream) {
|
|
@@ -92,7 +91,7 @@ import {
|
|
|
92
91
|
} from "@ai-sdk/provider-utils";
|
|
93
92
|
|
|
94
93
|
// src/version.ts
|
|
95
|
-
var VERSION = true ? "7.0.
|
|
94
|
+
var VERSION = true ? "7.0.86" : "0.0.0-test";
|
|
96
95
|
|
|
97
96
|
// src/util/download/download.ts
|
|
98
97
|
var download = async ({
|
|
@@ -163,8 +162,7 @@ function mergeObjects(base, overrides) {
|
|
|
163
162
|
}
|
|
164
163
|
if (Object.prototype.hasOwnProperty.call(overrides, key)) {
|
|
165
164
|
const overridesValue = overrides[key];
|
|
166
|
-
if (overridesValue === void 0)
|
|
167
|
-
continue;
|
|
165
|
+
if (overridesValue === void 0) continue;
|
|
168
166
|
const baseValue = key in base ? base[key] : void 0;
|
|
169
167
|
const isSourceObject = overridesValue !== null && typeof overridesValue === "object" && !Array.isArray(overridesValue) && !(overridesValue instanceof Date) && !(overridesValue instanceof RegExp);
|
|
170
168
|
const isTargetObject = baseValue !== null && baseValue !== void 0 && typeof baseValue === "object" && !Array.isArray(baseValue) && !(baseValue instanceof Date) && !(baseValue instanceof RegExp);
|
|
@@ -192,8 +190,8 @@ import { AISDKError } from "@ai-sdk/provider";
|
|
|
192
190
|
var name = "AI_InvalidDataContentError";
|
|
193
191
|
var marker = `vercel.ai.error.${name}`;
|
|
194
192
|
var symbol = Symbol.for(marker);
|
|
195
|
-
var _a;
|
|
196
|
-
var InvalidDataContentError = class extends AISDKError {
|
|
193
|
+
var _a, _b;
|
|
194
|
+
var InvalidDataContentError = class extends (_b = AISDKError, _a = symbol, _b) {
|
|
197
195
|
constructor({
|
|
198
196
|
content,
|
|
199
197
|
cause,
|
|
@@ -207,7 +205,6 @@ var InvalidDataContentError = class extends AISDKError {
|
|
|
207
205
|
return AISDKError.hasMarker(error, marker);
|
|
208
206
|
}
|
|
209
207
|
};
|
|
210
|
-
_a = symbol;
|
|
211
208
|
|
|
212
209
|
// src/prompt/split-data-url.ts
|
|
213
210
|
function splitDataUrl(dataUrl) {
|
|
@@ -227,8 +224,7 @@ function splitDataUrl(dataUrl) {
|
|
|
227
224
|
|
|
228
225
|
// src/prompt/file-part-data.ts
|
|
229
226
|
function isTaggedFileData(value) {
|
|
230
|
-
if (typeof value !== "object" || value === null)
|
|
231
|
-
return false;
|
|
227
|
+
if (typeof value !== "object" || value === null) return false;
|
|
232
228
|
const type = value.type;
|
|
233
229
|
return type === "data" || type === "url" || type === "reference" || type === "text";
|
|
234
230
|
}
|
|
@@ -393,8 +389,8 @@ import { AISDKError as AISDKError2 } from "@ai-sdk/provider";
|
|
|
393
389
|
var name2 = "AI_InvalidMessageRoleError";
|
|
394
390
|
var marker2 = `vercel.ai.error.${name2}`;
|
|
395
391
|
var symbol2 = Symbol.for(marker2);
|
|
396
|
-
var _a2;
|
|
397
|
-
var InvalidMessageRoleError = class extends AISDKError2 {
|
|
392
|
+
var _a2, _b2;
|
|
393
|
+
var InvalidMessageRoleError = class extends (_b2 = AISDKError2, _a2 = symbol2, _b2) {
|
|
398
394
|
constructor({
|
|
399
395
|
role,
|
|
400
396
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
@@ -407,15 +403,14 @@ var InvalidMessageRoleError = class extends AISDKError2 {
|
|
|
407
403
|
return AISDKError2.hasMarker(error, marker2);
|
|
408
404
|
}
|
|
409
405
|
};
|
|
410
|
-
_a2 = symbol2;
|
|
411
406
|
|
|
412
407
|
// src/error/missing-tool-result-error.ts
|
|
413
408
|
import { AISDKError as AISDKError3 } from "@ai-sdk/provider";
|
|
414
409
|
var name3 = "AI_MissingToolResultsError";
|
|
415
410
|
var marker3 = `vercel.ai.error.${name3}`;
|
|
416
411
|
var symbol3 = Symbol.for(marker3);
|
|
417
|
-
var _a3;
|
|
418
|
-
var MissingToolResultsError = class extends AISDKError3 {
|
|
412
|
+
var _a3, _b3;
|
|
413
|
+
var MissingToolResultsError = class extends (_b3 = AISDKError3, _a3 = symbol3, _b3) {
|
|
419
414
|
constructor({ toolCallIds }) {
|
|
420
415
|
super({
|
|
421
416
|
name: name3,
|
|
@@ -430,7 +425,6 @@ var MissingToolResultsError = class extends AISDKError3 {
|
|
|
430
425
|
return AISDKError3.hasMarker(error, marker3);
|
|
431
426
|
}
|
|
432
427
|
};
|
|
433
|
-
_a3 = symbol3;
|
|
434
428
|
|
|
435
429
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
436
430
|
async function convertToLanguageModelPrompt({
|
|
@@ -950,6 +944,8 @@ function mapToolResultOutput({
|
|
|
950
944
|
providerOptions: item.providerOptions
|
|
951
945
|
};
|
|
952
946
|
}
|
|
947
|
+
// The "image-*" types are legacy and deprecated.
|
|
948
|
+
// TODO: remove migration in v8 in combination with the removal of these types from the provider utils.
|
|
953
949
|
case "image-data": {
|
|
954
950
|
warnings.push({
|
|
955
951
|
type: "deprecated",
|
|
@@ -1566,8 +1562,8 @@ import { AISDKError as AISDKError4 } from "@ai-sdk/provider";
|
|
|
1566
1562
|
var name4 = "AI_InvalidArgumentError";
|
|
1567
1563
|
var marker4 = `vercel.ai.error.${name4}`;
|
|
1568
1564
|
var symbol4 = Symbol.for(marker4);
|
|
1569
|
-
var _a4;
|
|
1570
|
-
var InvalidArgumentError = class extends AISDKError4 {
|
|
1565
|
+
var _a4, _b4;
|
|
1566
|
+
var InvalidArgumentError = class extends (_b4 = AISDKError4, _a4 = symbol4, _b4) {
|
|
1571
1567
|
constructor({
|
|
1572
1568
|
parameter,
|
|
1573
1569
|
value,
|
|
@@ -1585,7 +1581,6 @@ var InvalidArgumentError = class extends AISDKError4 {
|
|
|
1585
1581
|
return AISDKError4.hasMarker(error, marker4);
|
|
1586
1582
|
}
|
|
1587
1583
|
};
|
|
1588
|
-
_a4 = symbol4;
|
|
1589
1584
|
|
|
1590
1585
|
// src/prompt/prepare-language-model-call-options.ts
|
|
1591
1586
|
function prepareLanguageModelCallOptions({
|
|
@@ -1694,8 +1689,8 @@ import { AISDKError as AISDKError5 } from "@ai-sdk/provider";
|
|
|
1694
1689
|
var name5 = "AI_RetryError";
|
|
1695
1690
|
var marker5 = `vercel.ai.error.${name5}`;
|
|
1696
1691
|
var symbol5 = Symbol.for(marker5);
|
|
1697
|
-
var _a5;
|
|
1698
|
-
var RetryError = class extends AISDKError5 {
|
|
1692
|
+
var _a5, _b5;
|
|
1693
|
+
var RetryError = class extends (_b5 = AISDKError5, _a5 = symbol5, _b5) {
|
|
1699
1694
|
constructor({
|
|
1700
1695
|
message,
|
|
1701
1696
|
reason,
|
|
@@ -1711,7 +1706,6 @@ var RetryError = class extends AISDKError5 {
|
|
|
1711
1706
|
return AISDKError5.hasMarker(error, marker5);
|
|
1712
1707
|
}
|
|
1713
1708
|
};
|
|
1714
|
-
_a5 = symbol5;
|
|
1715
1709
|
|
|
1716
1710
|
// src/util/retry-with-exponential-backoff.ts
|
|
1717
1711
|
function getRetryDelayInMs({
|
|
@@ -1719,8 +1713,7 @@ function getRetryDelayInMs({
|
|
|
1719
1713
|
exponentialBackoffDelay
|
|
1720
1714
|
}) {
|
|
1721
1715
|
const headers = APICallError.isInstance(error) ? error.responseHeaders : APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
|
|
1722
|
-
if (!headers)
|
|
1723
|
-
return exponentialBackoffDelay;
|
|
1716
|
+
if (!headers) return exponentialBackoffDelay;
|
|
1724
1717
|
let ms;
|
|
1725
1718
|
const retryAfterMs = headers["retry-after-ms"];
|
|
1726
1719
|
if (retryAfterMs) {
|
|
@@ -1831,13 +1824,13 @@ function createNullLanguageModelUsage() {
|
|
|
1831
1824
|
};
|
|
1832
1825
|
}
|
|
1833
1826
|
function addLanguageModelUsage(usage1, usage2) {
|
|
1834
|
-
var _a12,
|
|
1827
|
+
var _a12, _b12, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
1835
1828
|
return {
|
|
1836
1829
|
inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
|
|
1837
1830
|
inputTokenDetails: {
|
|
1838
1831
|
noCacheTokens: addTokenCounts(
|
|
1839
1832
|
(_a12 = usage1.inputTokenDetails) == null ? void 0 : _a12.noCacheTokens,
|
|
1840
|
-
(
|
|
1833
|
+
(_b12 = usage2.inputTokenDetails) == null ? void 0 : _b12.noCacheTokens
|
|
1841
1834
|
),
|
|
1842
1835
|
cacheReadTokens: addTokenCounts(
|
|
1843
1836
|
(_c = usage1.inputTokenDetails) == null ? void 0 : _c.cacheReadTokens,
|
|
@@ -1892,8 +1885,8 @@ import { AISDKError as AISDKError6 } from "@ai-sdk/provider";
|
|
|
1892
1885
|
var name6 = "AI_InvalidToolApprovalError";
|
|
1893
1886
|
var marker6 = `vercel.ai.error.${name6}`;
|
|
1894
1887
|
var symbol6 = Symbol.for(marker6);
|
|
1895
|
-
var _a6;
|
|
1896
|
-
var InvalidToolApprovalError = class extends AISDKError6 {
|
|
1888
|
+
var _a6, _b6;
|
|
1889
|
+
var InvalidToolApprovalError = class extends (_b6 = AISDKError6, _a6 = symbol6, _b6) {
|
|
1897
1890
|
constructor({ approvalId }) {
|
|
1898
1891
|
super({
|
|
1899
1892
|
name: name6,
|
|
@@ -1906,15 +1899,14 @@ var InvalidToolApprovalError = class extends AISDKError6 {
|
|
|
1906
1899
|
return AISDKError6.hasMarker(error, marker6);
|
|
1907
1900
|
}
|
|
1908
1901
|
};
|
|
1909
|
-
_a6 = symbol6;
|
|
1910
1902
|
|
|
1911
1903
|
// src/error/invalid-tool-approval-signature-error.ts
|
|
1912
1904
|
import { AISDKError as AISDKError7 } from "@ai-sdk/provider";
|
|
1913
1905
|
var name7 = "AI_InvalidToolApprovalSignatureError";
|
|
1914
1906
|
var marker7 = `vercel.ai.error.${name7}`;
|
|
1915
1907
|
var symbol7 = Symbol.for(marker7);
|
|
1916
|
-
var _a7;
|
|
1917
|
-
var InvalidToolApprovalSignatureError = class extends AISDKError7 {
|
|
1908
|
+
var _a7, _b7;
|
|
1909
|
+
var InvalidToolApprovalSignatureError = class extends (_b7 = AISDKError7, _a7 = symbol7, _b7) {
|
|
1918
1910
|
constructor({
|
|
1919
1911
|
approvalId,
|
|
1920
1912
|
toolCallId,
|
|
@@ -1932,15 +1924,14 @@ var InvalidToolApprovalSignatureError = class extends AISDKError7 {
|
|
|
1932
1924
|
return AISDKError7.hasMarker(error, marker7);
|
|
1933
1925
|
}
|
|
1934
1926
|
};
|
|
1935
|
-
_a7 = symbol7;
|
|
1936
1927
|
|
|
1937
1928
|
// src/error/invalid-tool-input-error.ts
|
|
1938
1929
|
import { AISDKError as AISDKError8, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
|
|
1939
1930
|
var name8 = "AI_InvalidToolInputError";
|
|
1940
1931
|
var marker8 = `vercel.ai.error.${name8}`;
|
|
1941
1932
|
var symbol8 = Symbol.for(marker8);
|
|
1942
|
-
var _a8;
|
|
1943
|
-
var InvalidToolInputError = class extends AISDKError8 {
|
|
1933
|
+
var _a8, _b8;
|
|
1934
|
+
var InvalidToolInputError = class extends (_b8 = AISDKError8, _a8 = symbol8, _b8) {
|
|
1944
1935
|
constructor({
|
|
1945
1936
|
toolInput,
|
|
1946
1937
|
toolName,
|
|
@@ -1956,15 +1947,14 @@ var InvalidToolInputError = class extends AISDKError8 {
|
|
|
1956
1947
|
return AISDKError8.hasMarker(error, marker8);
|
|
1957
1948
|
}
|
|
1958
1949
|
};
|
|
1959
|
-
_a8 = symbol8;
|
|
1960
1950
|
|
|
1961
1951
|
// src/error/tool-call-not-found-for-approval-error.ts
|
|
1962
1952
|
import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
|
|
1963
1953
|
var name9 = "AI_ToolCallNotFoundForApprovalError";
|
|
1964
1954
|
var marker9 = `vercel.ai.error.${name9}`;
|
|
1965
1955
|
var symbol9 = Symbol.for(marker9);
|
|
1966
|
-
var _a9;
|
|
1967
|
-
var ToolCallNotFoundForApprovalError = class extends AISDKError9 {
|
|
1956
|
+
var _a9, _b9;
|
|
1957
|
+
var ToolCallNotFoundForApprovalError = class extends (_b9 = AISDKError9, _a9 = symbol9, _b9) {
|
|
1968
1958
|
constructor({
|
|
1969
1959
|
toolCallId,
|
|
1970
1960
|
approvalId
|
|
@@ -1981,15 +1971,14 @@ var ToolCallNotFoundForApprovalError = class extends AISDKError9 {
|
|
|
1981
1971
|
return AISDKError9.hasMarker(error, marker9);
|
|
1982
1972
|
}
|
|
1983
1973
|
};
|
|
1984
|
-
_a9 = symbol9;
|
|
1985
1974
|
|
|
1986
1975
|
// src/error/no-such-tool-error.ts
|
|
1987
1976
|
import { AISDKError as AISDKError10 } from "@ai-sdk/provider";
|
|
1988
1977
|
var name10 = "AI_NoSuchToolError";
|
|
1989
1978
|
var marker10 = `vercel.ai.error.${name10}`;
|
|
1990
1979
|
var symbol10 = Symbol.for(marker10);
|
|
1991
|
-
var _a10;
|
|
1992
|
-
var NoSuchToolError = class extends AISDKError10 {
|
|
1980
|
+
var _a10, _b10;
|
|
1981
|
+
var NoSuchToolError = class extends (_b10 = AISDKError10, _a10 = symbol10, _b10) {
|
|
1993
1982
|
constructor({
|
|
1994
1983
|
toolName,
|
|
1995
1984
|
availableTools = void 0,
|
|
@@ -2004,15 +1993,14 @@ var NoSuchToolError = class extends AISDKError10 {
|
|
|
2004
1993
|
return AISDKError10.hasMarker(error, marker10);
|
|
2005
1994
|
}
|
|
2006
1995
|
};
|
|
2007
|
-
_a10 = symbol10;
|
|
2008
1996
|
|
|
2009
1997
|
// src/error/tool-call-repair-error.ts
|
|
2010
1998
|
import { AISDKError as AISDKError11, getErrorMessage as getErrorMessage3 } from "@ai-sdk/provider";
|
|
2011
1999
|
var name11 = "AI_ToolCallRepairError";
|
|
2012
2000
|
var marker11 = `vercel.ai.error.${name11}`;
|
|
2013
2001
|
var symbol11 = Symbol.for(marker11);
|
|
2014
|
-
var _a11;
|
|
2015
|
-
var ToolCallRepairError = class extends AISDKError11 {
|
|
2002
|
+
var _a11, _b11;
|
|
2003
|
+
var ToolCallRepairError = class extends (_b11 = AISDKError11, _a11 = symbol11, _b11) {
|
|
2016
2004
|
constructor({
|
|
2017
2005
|
cause,
|
|
2018
2006
|
originalError,
|
|
@@ -2026,7 +2014,6 @@ var ToolCallRepairError = class extends AISDKError11 {
|
|
|
2026
2014
|
return AISDKError11.hasMarker(error, marker11);
|
|
2027
2015
|
}
|
|
2028
2016
|
};
|
|
2029
|
-
_a11 = symbol11;
|
|
2030
2017
|
|
|
2031
2018
|
// src/error/unsupported-model-version-error.ts
|
|
2032
2019
|
import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
|
|
@@ -2074,8 +2061,7 @@ function asEmbeddingModelV3(model) {
|
|
|
2074
2061
|
});
|
|
2075
2062
|
return new Proxy(model, {
|
|
2076
2063
|
get(target, prop) {
|
|
2077
|
-
if (prop === "specificationVersion")
|
|
2078
|
-
return "v3";
|
|
2064
|
+
if (prop === "specificationVersion") return "v3";
|
|
2079
2065
|
return target[prop];
|
|
2080
2066
|
}
|
|
2081
2067
|
});
|
|
@@ -2089,8 +2075,7 @@ function asEmbeddingModelV4(model) {
|
|
|
2089
2075
|
const v3Model = model.specificationVersion === "v2" ? asEmbeddingModelV3(model) : model;
|
|
2090
2076
|
return new Proxy(v3Model, {
|
|
2091
2077
|
get(target, prop) {
|
|
2092
|
-
if (prop === "specificationVersion")
|
|
2093
|
-
return "v4";
|
|
2078
|
+
if (prop === "specificationVersion") return "v4";
|
|
2094
2079
|
return target[prop];
|
|
2095
2080
|
}
|
|
2096
2081
|
});
|
|
@@ -2107,8 +2092,7 @@ function asImageModelV3(model) {
|
|
|
2107
2092
|
});
|
|
2108
2093
|
return new Proxy(model, {
|
|
2109
2094
|
get(target, prop) {
|
|
2110
|
-
if (prop === "specificationVersion")
|
|
2111
|
-
return "v3";
|
|
2095
|
+
if (prop === "specificationVersion") return "v3";
|
|
2112
2096
|
return target[prop];
|
|
2113
2097
|
}
|
|
2114
2098
|
});
|
|
@@ -2122,8 +2106,7 @@ function asImageModelV4(model) {
|
|
|
2122
2106
|
const v3Model = model.specificationVersion === "v2" ? asImageModelV3(model) : model;
|
|
2123
2107
|
return new Proxy(v3Model, {
|
|
2124
2108
|
get(target, prop) {
|
|
2125
|
-
if (prop === "specificationVersion")
|
|
2126
|
-
return "v4";
|
|
2109
|
+
if (prop === "specificationVersion") return "v4";
|
|
2127
2110
|
return target[prop];
|
|
2128
2111
|
}
|
|
2129
2112
|
});
|
|
@@ -2216,8 +2199,7 @@ function asLanguageModelV4(model) {
|
|
|
2216
2199
|
const v3Model = model.specificationVersion === "v2" ? asLanguageModelV3(model) : model;
|
|
2217
2200
|
return new Proxy(v3Model, {
|
|
2218
2201
|
get(target, prop) {
|
|
2219
|
-
if (prop === "specificationVersion")
|
|
2220
|
-
return "v4";
|
|
2202
|
+
if (prop === "specificationVersion") return "v4";
|
|
2221
2203
|
return target[prop];
|
|
2222
2204
|
}
|
|
2223
2205
|
});
|
|
@@ -2230,8 +2212,7 @@ function asRerankingModelV4(model) {
|
|
|
2230
2212
|
}
|
|
2231
2213
|
return new Proxy(model, {
|
|
2232
2214
|
get(target, prop) {
|
|
2233
|
-
if (prop === "specificationVersion")
|
|
2234
|
-
return "v4";
|
|
2215
|
+
if (prop === "specificationVersion") return "v4";
|
|
2235
2216
|
return target[prop];
|
|
2236
2217
|
}
|
|
2237
2218
|
});
|
|
@@ -2248,8 +2229,7 @@ function asSpeechModelV3(model) {
|
|
|
2248
2229
|
});
|
|
2249
2230
|
return new Proxy(model, {
|
|
2250
2231
|
get(target, prop) {
|
|
2251
|
-
if (prop === "specificationVersion")
|
|
2252
|
-
return "v3";
|
|
2232
|
+
if (prop === "specificationVersion") return "v3";
|
|
2253
2233
|
return target[prop];
|
|
2254
2234
|
}
|
|
2255
2235
|
});
|
|
@@ -2263,8 +2243,7 @@ function asSpeechModelV4(model) {
|
|
|
2263
2243
|
const v3Model = model.specificationVersion === "v2" ? asSpeechModelV3(model) : model;
|
|
2264
2244
|
return new Proxy(v3Model, {
|
|
2265
2245
|
get(target, prop) {
|
|
2266
|
-
if (prop === "specificationVersion")
|
|
2267
|
-
return "v4";
|
|
2246
|
+
if (prop === "specificationVersion") return "v4";
|
|
2268
2247
|
return target[prop];
|
|
2269
2248
|
}
|
|
2270
2249
|
});
|
|
@@ -2281,8 +2260,7 @@ function asTranscriptionModelV3(model) {
|
|
|
2281
2260
|
});
|
|
2282
2261
|
return new Proxy(model, {
|
|
2283
2262
|
get(target, prop) {
|
|
2284
|
-
if (prop === "specificationVersion")
|
|
2285
|
-
return "v3";
|
|
2263
|
+
if (prop === "specificationVersion") return "v3";
|
|
2286
2264
|
return target[prop];
|
|
2287
2265
|
}
|
|
2288
2266
|
});
|
|
@@ -2296,8 +2274,7 @@ function asTranscriptionModelV4(model) {
|
|
|
2296
2274
|
const v3Model = model.specificationVersion === "v2" ? asTranscriptionModelV3(model) : model;
|
|
2297
2275
|
return new Proxy(v3Model, {
|
|
2298
2276
|
get(target, prop) {
|
|
2299
|
-
if (prop === "specificationVersion")
|
|
2300
|
-
return "v4";
|
|
2277
|
+
if (prop === "specificationVersion") return "v4";
|
|
2301
2278
|
return target[prop];
|
|
2302
2279
|
}
|
|
2303
2280
|
});
|
|
@@ -2557,7 +2534,7 @@ function createTelemetryDispatcher({
|
|
|
2557
2534
|
var _a12;
|
|
2558
2535
|
return (_a12 = integration[key]) == null ? void 0 : _a12.bind(integration);
|
|
2559
2536
|
}).filter(Boolean).map(
|
|
2560
|
-
(callback) => (event) => callback(augmentEvent(event, telemetryMetadata))
|
|
2537
|
+
(callback) => ((event) => callback(augmentEvent(event, telemetryMetadata)))
|
|
2561
2538
|
);
|
|
2562
2539
|
const mergedIntegrationCallback = mergeCallbacks(...integrationCallbacks);
|
|
2563
2540
|
return async (event) => {
|
|
@@ -3199,88 +3176,6 @@ function collectToolApprovals({
|
|
|
3199
3176
|
return { approvedToolApprovals, deniedToolApprovals };
|
|
3200
3177
|
}
|
|
3201
3178
|
|
|
3202
|
-
// src/generate-text/validate-tool-approvals.ts
|
|
3203
|
-
import {
|
|
3204
|
-
asSchema as asSchema3,
|
|
3205
|
-
isExecutableTool,
|
|
3206
|
-
safeValidateTypes as safeValidateTypes3
|
|
3207
|
-
} from "@ai-sdk/provider-utils";
|
|
3208
|
-
|
|
3209
|
-
// src/generate-text/validate-tool-context.ts
|
|
3210
|
-
import { validateTypes } from "@ai-sdk/provider-utils";
|
|
3211
|
-
async function validateToolContext({
|
|
3212
|
-
toolName,
|
|
3213
|
-
context,
|
|
3214
|
-
contextSchema
|
|
3215
|
-
}) {
|
|
3216
|
-
if (contextSchema == null) {
|
|
3217
|
-
return context;
|
|
3218
|
-
}
|
|
3219
|
-
return await validateTypes({
|
|
3220
|
-
value: context,
|
|
3221
|
-
schema: contextSchema,
|
|
3222
|
-
context: {
|
|
3223
|
-
field: "tool context",
|
|
3224
|
-
entityName: toolName
|
|
3225
|
-
}
|
|
3226
|
-
});
|
|
3227
|
-
}
|
|
3228
|
-
|
|
3229
|
-
// src/generate-text/resolve-tool-approval.ts
|
|
3230
|
-
async function resolveToolApproval({
|
|
3231
|
-
tools,
|
|
3232
|
-
toolCall,
|
|
3233
|
-
toolApproval,
|
|
3234
|
-
messages,
|
|
3235
|
-
toolsContext,
|
|
3236
|
-
runtimeContext
|
|
3237
|
-
}) {
|
|
3238
|
-
if (toolApproval != null && typeof toolApproval === "function") {
|
|
3239
|
-
return normalizeToolApprovalStatus(
|
|
3240
|
-
await toolApproval({
|
|
3241
|
-
toolCall,
|
|
3242
|
-
tools,
|
|
3243
|
-
toolsContext,
|
|
3244
|
-
messages,
|
|
3245
|
-
runtimeContext
|
|
3246
|
-
})
|
|
3247
|
-
);
|
|
3248
|
-
}
|
|
3249
|
-
const toolName = toolCall.toolName;
|
|
3250
|
-
const tool = getOwn(tools, toolName);
|
|
3251
|
-
const input = toolCall.input;
|
|
3252
|
-
const userDefinedToolApprovalStatus = getOwn(toolApproval, toolName);
|
|
3253
|
-
if (userDefinedToolApprovalStatus != null) {
|
|
3254
|
-
const approvalStatus = typeof userDefinedToolApprovalStatus === "function" ? await userDefinedToolApprovalStatus(input, {
|
|
3255
|
-
toolCallId: toolCall.toolCallId,
|
|
3256
|
-
messages,
|
|
3257
|
-
toolContext: await validateToolContext({
|
|
3258
|
-
toolName,
|
|
3259
|
-
context: getOwn(toolsContext, toolName),
|
|
3260
|
-
contextSchema: tool == null ? void 0 : tool.contextSchema
|
|
3261
|
-
}),
|
|
3262
|
-
runtimeContext
|
|
3263
|
-
}) : userDefinedToolApprovalStatus;
|
|
3264
|
-
return normalizeToolApprovalStatus(approvalStatus);
|
|
3265
|
-
}
|
|
3266
|
-
if ((tool == null ? void 0 : tool.needsApproval) == null) {
|
|
3267
|
-
return { type: "not-applicable" };
|
|
3268
|
-
}
|
|
3269
|
-
const needsApproval = typeof tool.needsApproval === "function" ? await tool.needsApproval(input, {
|
|
3270
|
-
toolCallId: toolCall.toolCallId,
|
|
3271
|
-
messages,
|
|
3272
|
-
context: await validateToolContext({
|
|
3273
|
-
toolName,
|
|
3274
|
-
context: getOwn(toolsContext, toolName),
|
|
3275
|
-
contextSchema: tool == null ? void 0 : tool.contextSchema
|
|
3276
|
-
})
|
|
3277
|
-
}) : tool.needsApproval;
|
|
3278
|
-
return needsApproval ? { type: "user-approval" } : { type: "not-applicable" };
|
|
3279
|
-
}
|
|
3280
|
-
function normalizeToolApprovalStatus(status) {
|
|
3281
|
-
return status === void 0 ? { type: "not-applicable" } : typeof status === "string" ? { type: status } : status;
|
|
3282
|
-
}
|
|
3283
|
-
|
|
3284
3179
|
// src/generate-text/tool-approval-signature.ts
|
|
3285
3180
|
import { convertBase64ToUint8Array } from "@ai-sdk/provider-utils";
|
|
3286
3181
|
|
|
@@ -3295,7 +3190,7 @@ function canonicalJSON(value) {
|
|
|
3295
3190
|
return JSON.stringify(value);
|
|
3296
3191
|
}
|
|
3297
3192
|
if (Array.isArray(value)) {
|
|
3298
|
-
return `[${value.map(canonicalJSON).join(",")}]`;
|
|
3193
|
+
return `[${value.map((element) => element === void 0 ? "null" : canonicalJSON(element)).join(",")}]`;
|
|
3299
3194
|
}
|
|
3300
3195
|
const keys = Object.keys(value).sort();
|
|
3301
3196
|
const entries = keys.map(
|
|
@@ -3348,6 +3243,19 @@ ${toolName}
|
|
|
3348
3243
|
${inputDigest}`
|
|
3349
3244
|
);
|
|
3350
3245
|
}
|
|
3246
|
+
async function signToolApproval({
|
|
3247
|
+
secret,
|
|
3248
|
+
approvalId,
|
|
3249
|
+
toolCallId,
|
|
3250
|
+
toolName,
|
|
3251
|
+
input
|
|
3252
|
+
}) {
|
|
3253
|
+
const key = await importKey(secret);
|
|
3254
|
+
const inputDigest = await hashCanonical(input);
|
|
3255
|
+
const payload = buildPayload(approvalId, toolCallId, toolName, inputDigest);
|
|
3256
|
+
const sig = await crypto.subtle.sign("HMAC", key, payload);
|
|
3257
|
+
return toBase64url(new Uint8Array(sig));
|
|
3258
|
+
}
|
|
3351
3259
|
async function verifyToolApprovalSignature({
|
|
3352
3260
|
secret,
|
|
3353
3261
|
signature,
|
|
@@ -3375,6 +3283,88 @@ async function verifyToolApprovalSignature({
|
|
|
3375
3283
|
return false;
|
|
3376
3284
|
}
|
|
3377
3285
|
|
|
3286
|
+
// src/generate-text/validate-tool-approvals.ts
|
|
3287
|
+
import {
|
|
3288
|
+
asSchema as asSchema3,
|
|
3289
|
+
isExecutableTool,
|
|
3290
|
+
safeValidateTypes as safeValidateTypes3
|
|
3291
|
+
} from "@ai-sdk/provider-utils";
|
|
3292
|
+
|
|
3293
|
+
// src/generate-text/validate-tool-context.ts
|
|
3294
|
+
import { validateTypes } from "@ai-sdk/provider-utils";
|
|
3295
|
+
async function validateToolContext({
|
|
3296
|
+
toolName,
|
|
3297
|
+
context,
|
|
3298
|
+
contextSchema
|
|
3299
|
+
}) {
|
|
3300
|
+
if (contextSchema == null) {
|
|
3301
|
+
return context;
|
|
3302
|
+
}
|
|
3303
|
+
return await validateTypes({
|
|
3304
|
+
value: context,
|
|
3305
|
+
schema: contextSchema,
|
|
3306
|
+
context: {
|
|
3307
|
+
field: "tool context",
|
|
3308
|
+
entityName: toolName
|
|
3309
|
+
}
|
|
3310
|
+
});
|
|
3311
|
+
}
|
|
3312
|
+
|
|
3313
|
+
// src/generate-text/resolve-tool-approval.ts
|
|
3314
|
+
async function resolveToolApproval({
|
|
3315
|
+
tools,
|
|
3316
|
+
toolCall,
|
|
3317
|
+
toolApproval,
|
|
3318
|
+
messages,
|
|
3319
|
+
toolsContext,
|
|
3320
|
+
runtimeContext
|
|
3321
|
+
}) {
|
|
3322
|
+
if (toolApproval != null && typeof toolApproval === "function") {
|
|
3323
|
+
return normalizeToolApprovalStatus(
|
|
3324
|
+
await toolApproval({
|
|
3325
|
+
toolCall,
|
|
3326
|
+
tools,
|
|
3327
|
+
toolsContext,
|
|
3328
|
+
messages,
|
|
3329
|
+
runtimeContext
|
|
3330
|
+
})
|
|
3331
|
+
);
|
|
3332
|
+
}
|
|
3333
|
+
const toolName = toolCall.toolName;
|
|
3334
|
+
const tool = getOwn(tools, toolName);
|
|
3335
|
+
const input = toolCall.input;
|
|
3336
|
+
const userDefinedToolApprovalStatus = getOwn(toolApproval, toolName);
|
|
3337
|
+
if (userDefinedToolApprovalStatus != null) {
|
|
3338
|
+
const approvalStatus = typeof userDefinedToolApprovalStatus === "function" ? await userDefinedToolApprovalStatus(input, {
|
|
3339
|
+
toolCallId: toolCall.toolCallId,
|
|
3340
|
+
messages,
|
|
3341
|
+
toolContext: await validateToolContext({
|
|
3342
|
+
toolName,
|
|
3343
|
+
context: getOwn(toolsContext, toolName),
|
|
3344
|
+
contextSchema: tool == null ? void 0 : tool.contextSchema
|
|
3345
|
+
}),
|
|
3346
|
+
runtimeContext
|
|
3347
|
+
}) : userDefinedToolApprovalStatus;
|
|
3348
|
+
return normalizeToolApprovalStatus(approvalStatus);
|
|
3349
|
+
}
|
|
3350
|
+
if ((tool == null ? void 0 : tool.needsApproval) == null) {
|
|
3351
|
+
return { type: "not-applicable" };
|
|
3352
|
+
}
|
|
3353
|
+
const needsApproval = typeof tool.needsApproval === "function" ? await tool.needsApproval(input, {
|
|
3354
|
+
toolCallId: toolCall.toolCallId,
|
|
3355
|
+
messages,
|
|
3356
|
+
context: await validateToolContext({
|
|
3357
|
+
toolName,
|
|
3358
|
+
context: getOwn(toolsContext, toolName),
|
|
3359
|
+
contextSchema: tool == null ? void 0 : tool.contextSchema
|
|
3360
|
+
})
|
|
3361
|
+
}) : tool.needsApproval;
|
|
3362
|
+
return needsApproval ? { type: "user-approval" } : { type: "not-applicable" };
|
|
3363
|
+
}
|
|
3364
|
+
function normalizeToolApprovalStatus(status) {
|
|
3365
|
+
return status === void 0 ? { type: "not-applicable" } : typeof status === "string" ? { type: status } : status;
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3378
3368
|
// src/generate-text/validate-tool-approvals.ts
|
|
3379
3369
|
async function validateApprovedToolApprovals({
|
|
3380
3370
|
approvedToolApprovals,
|
|
@@ -3684,8 +3674,10 @@ export {
|
|
|
3684
3674
|
prepareToolChoice,
|
|
3685
3675
|
prepareTools,
|
|
3686
3676
|
resolveLanguageModel,
|
|
3677
|
+
signToolApproval,
|
|
3687
3678
|
standardizePrompt,
|
|
3688
3679
|
toResponseMessages,
|
|
3689
|
-
validateApprovedToolApprovals
|
|
3680
|
+
validateApprovedToolApprovals,
|
|
3681
|
+
verifyToolApprovalSignature
|
|
3690
3682
|
};
|
|
3691
3683
|
//# sourceMappingURL=index.js.map
|