ai 5.0.263 → 5.0.264
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 +13 -0
- package/dist/index.js +46 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46 -30
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +13 -4
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +13 -4
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# ai
|
|
2
2
|
|
|
3
|
+
## 5.0.264
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 594787e: fix(provider): preserve opaque file URI strings for provider serialization
|
|
8
|
+
- 7b19d17: fix(ai): prevent duplicate content types in chat transport requests
|
|
9
|
+
- 907e4c9: Fix streamed tool input callbacks firing out of order on newer Node.js versions by awaiting start and delta callbacks before invoking `onInputAvailable`.
|
|
10
|
+
- Updated dependencies [594787e]
|
|
11
|
+
- Updated dependencies [391ad4a]
|
|
12
|
+
- @ai-sdk/provider@2.0.5
|
|
13
|
+
- @ai-sdk/gateway@2.0.156
|
|
14
|
+
- @ai-sdk/provider-utils@3.0.38
|
|
15
|
+
|
|
3
16
|
## 5.0.263
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -816,7 +816,7 @@ function detectMediaType({
|
|
|
816
816
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
817
817
|
|
|
818
818
|
// src/version.ts
|
|
819
|
-
var VERSION = true ? "5.0.
|
|
819
|
+
var VERSION = true ? "5.0.264" : "0.0.0-test";
|
|
820
820
|
|
|
821
821
|
// src/util/download/download.ts
|
|
822
822
|
var download = async ({
|
|
@@ -1026,12 +1026,14 @@ function convertToLanguageModelMessage({
|
|
|
1026
1026
|
const { data, mediaType } = convertToLanguageModelV2DataContent(
|
|
1027
1027
|
part.data
|
|
1028
1028
|
);
|
|
1029
|
+
const originalUrl = getOriginalUrl(part.data, data);
|
|
1029
1030
|
return {
|
|
1030
1031
|
type: "file",
|
|
1031
1032
|
data,
|
|
1032
1033
|
filename: part.filename,
|
|
1033
1034
|
mediaType: mediaType != null ? mediaType : part.mediaType,
|
|
1034
|
-
providerOptions
|
|
1035
|
+
providerOptions,
|
|
1036
|
+
...originalUrl != null ? { originalUrl } : {}
|
|
1035
1037
|
};
|
|
1036
1038
|
}
|
|
1037
1039
|
case "reasoning": {
|
|
@@ -1127,6 +1129,9 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1127
1129
|
).filter((file) => file != null)
|
|
1128
1130
|
);
|
|
1129
1131
|
}
|
|
1132
|
+
function getOriginalUrl(originalData, convertedData) {
|
|
1133
|
+
return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
|
|
1134
|
+
}
|
|
1130
1135
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1131
1136
|
var _a16;
|
|
1132
1137
|
if (part.type === "text") {
|
|
@@ -1151,11 +1156,13 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1151
1156
|
const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV2DataContent(originalData);
|
|
1152
1157
|
let mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;
|
|
1153
1158
|
let data = convertedData;
|
|
1159
|
+
let originalUrl = getOriginalUrl(originalData, convertedData);
|
|
1154
1160
|
if (data instanceof URL) {
|
|
1155
1161
|
const downloadedFile = downloadedAssets[data.toString()];
|
|
1156
1162
|
if (downloadedFile) {
|
|
1157
1163
|
data = downloadedFile.data;
|
|
1158
1164
|
mediaType != null ? mediaType : mediaType = downloadedFile.mediaType;
|
|
1165
|
+
originalUrl = void 0;
|
|
1159
1166
|
}
|
|
1160
1167
|
}
|
|
1161
1168
|
switch (type) {
|
|
@@ -1169,7 +1176,8 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1169
1176
|
// any image
|
|
1170
1177
|
filename: void 0,
|
|
1171
1178
|
data,
|
|
1172
|
-
providerOptions: part.providerOptions
|
|
1179
|
+
providerOptions: part.providerOptions,
|
|
1180
|
+
...originalUrl != null ? { originalUrl } : {}
|
|
1173
1181
|
};
|
|
1174
1182
|
}
|
|
1175
1183
|
case "file": {
|
|
@@ -1181,7 +1189,8 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1181
1189
|
mediaType,
|
|
1182
1190
|
filename: part.filename,
|
|
1183
1191
|
data,
|
|
1184
|
-
providerOptions: part.providerOptions
|
|
1192
|
+
providerOptions: part.providerOptions,
|
|
1193
|
+
...originalUrl != null ? { originalUrl } : {}
|
|
1185
1194
|
};
|
|
1186
1195
|
}
|
|
1187
1196
|
}
|
|
@@ -4616,8 +4625,10 @@ function runToolsTransformation({
|
|
|
4616
4625
|
}
|
|
4617
4626
|
});
|
|
4618
4627
|
}
|
|
4628
|
+
const activeToolCallToolNames = /* @__PURE__ */ new Map();
|
|
4619
4629
|
const forwardStream = new TransformStream({
|
|
4620
4630
|
async transform(chunk, controller) {
|
|
4631
|
+
var _a16, _b, _c, _d;
|
|
4621
4632
|
const chunkType = chunk.type;
|
|
4622
4633
|
switch (chunkType) {
|
|
4623
4634
|
case "stream-start":
|
|
@@ -4627,9 +4638,6 @@ function runToolsTransformation({
|
|
|
4627
4638
|
case "reasoning-start":
|
|
4628
4639
|
case "reasoning-delta":
|
|
4629
4640
|
case "reasoning-end":
|
|
4630
|
-
case "tool-input-start":
|
|
4631
|
-
case "tool-input-delta":
|
|
4632
|
-
case "tool-input-end":
|
|
4633
4641
|
case "source":
|
|
4634
4642
|
case "response-metadata":
|
|
4635
4643
|
case "error":
|
|
@@ -4637,6 +4645,36 @@ function runToolsTransformation({
|
|
|
4637
4645
|
controller.enqueue(chunk);
|
|
4638
4646
|
break;
|
|
4639
4647
|
}
|
|
4648
|
+
case "tool-input-start": {
|
|
4649
|
+
activeToolCallToolNames.set(chunk.id, chunk.toolName);
|
|
4650
|
+
await ((_b = (_a16 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a16.onInputStart) == null ? void 0 : _b.call(_a16, {
|
|
4651
|
+
toolCallId: chunk.id,
|
|
4652
|
+
messages,
|
|
4653
|
+
abortSignal,
|
|
4654
|
+
experimental_context
|
|
4655
|
+
}));
|
|
4656
|
+
controller.enqueue(chunk);
|
|
4657
|
+
break;
|
|
4658
|
+
}
|
|
4659
|
+
case "tool-input-delta": {
|
|
4660
|
+
const toolName = activeToolCallToolNames.get(chunk.id);
|
|
4661
|
+
if (toolName != null) {
|
|
4662
|
+
await ((_d = (_c = tools == null ? void 0 : tools[toolName]) == null ? void 0 : _c.onInputDelta) == null ? void 0 : _d.call(_c, {
|
|
4663
|
+
inputTextDelta: chunk.delta,
|
|
4664
|
+
toolCallId: chunk.id,
|
|
4665
|
+
messages,
|
|
4666
|
+
abortSignal,
|
|
4667
|
+
experimental_context
|
|
4668
|
+
}));
|
|
4669
|
+
}
|
|
4670
|
+
controller.enqueue(chunk);
|
|
4671
|
+
break;
|
|
4672
|
+
}
|
|
4673
|
+
case "tool-input-end": {
|
|
4674
|
+
activeToolCallToolNames.delete(chunk.id);
|
|
4675
|
+
controller.enqueue(chunk);
|
|
4676
|
+
break;
|
|
4677
|
+
}
|
|
4640
4678
|
case "file": {
|
|
4641
4679
|
controller.enqueue({
|
|
4642
4680
|
type: "file",
|
|
@@ -5381,7 +5419,6 @@ var DefaultStreamTextResult = class {
|
|
|
5381
5419
|
const stepToolCalls = [];
|
|
5382
5420
|
const stepToolOutputs = [];
|
|
5383
5421
|
let warnings;
|
|
5384
|
-
const activeToolCallToolNames = {};
|
|
5385
5422
|
let stepFinishReason = "unknown";
|
|
5386
5423
|
let stepUsage = {
|
|
5387
5424
|
inputTokens: void 0,
|
|
@@ -5499,16 +5536,7 @@ var DefaultStreamTextResult = class {
|
|
|
5499
5536
|
break;
|
|
5500
5537
|
}
|
|
5501
5538
|
case "tool-input-start": {
|
|
5502
|
-
activeToolCallToolNames[chunk.id] = chunk.toolName;
|
|
5503
5539
|
const tool2 = stepToolSet == null ? void 0 : stepToolSet[chunk.toolName];
|
|
5504
|
-
if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {
|
|
5505
|
-
await tool2.onInputStart({
|
|
5506
|
-
toolCallId: chunk.id,
|
|
5507
|
-
messages: stepInputMessages,
|
|
5508
|
-
abortSignal,
|
|
5509
|
-
experimental_context
|
|
5510
|
-
});
|
|
5511
|
-
}
|
|
5512
5540
|
controller.enqueue({
|
|
5513
5541
|
...chunk,
|
|
5514
5542
|
dynamic: (tool2 == null ? void 0 : tool2.type) === "dynamic"
|
|
@@ -5516,22 +5544,10 @@ var DefaultStreamTextResult = class {
|
|
|
5516
5544
|
break;
|
|
5517
5545
|
}
|
|
5518
5546
|
case "tool-input-end": {
|
|
5519
|
-
delete activeToolCallToolNames[chunk.id];
|
|
5520
5547
|
controller.enqueue(chunk);
|
|
5521
5548
|
break;
|
|
5522
5549
|
}
|
|
5523
5550
|
case "tool-input-delta": {
|
|
5524
|
-
const toolName = activeToolCallToolNames[chunk.id];
|
|
5525
|
-
const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolName];
|
|
5526
|
-
if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {
|
|
5527
|
-
await tool2.onInputDelta({
|
|
5528
|
-
inputTextDelta: chunk.delta,
|
|
5529
|
-
toolCallId: chunk.id,
|
|
5530
|
-
messages: stepInputMessages,
|
|
5531
|
-
abortSignal,
|
|
5532
|
-
experimental_context
|
|
5533
|
-
});
|
|
5534
|
-
}
|
|
5535
5551
|
controller.enqueue(chunk);
|
|
5536
5552
|
break;
|
|
5537
5553
|
}
|
|
@@ -9625,7 +9641,7 @@ var HttpChatTransport = class {
|
|
|
9625
9641
|
const response = await fetch2(api, {
|
|
9626
9642
|
method: "POST",
|
|
9627
9643
|
headers: {
|
|
9628
|
-
"
|
|
9644
|
+
"content-type": "application/json",
|
|
9629
9645
|
...headers
|
|
9630
9646
|
},
|
|
9631
9647
|
body: JSON.stringify(body),
|