ai 4.1.10 → 4.1.12
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 +16 -0
- package/dist/index.d.mts +102 -18
- package/dist/index.d.ts +102 -18
- package/dist/index.js +164 -110
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +144 -88
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/rsc/dist/index.d.ts +53 -5
- package/rsc/dist/rsc-server.d.mts +53 -5
- package/rsc/dist/rsc-server.mjs +90 -58
- package/rsc/dist/rsc-server.mjs.map +1 -1
package/dist/index.js
CHANGED
@@ -69,17 +69,17 @@ __export(streams_exports, {
|
|
69
69
|
experimental_generateImage: () => generateImage,
|
70
70
|
experimental_wrapLanguageModel: () => experimental_wrapLanguageModel,
|
71
71
|
extractReasoningMiddleware: () => extractReasoningMiddleware,
|
72
|
-
formatAssistantStreamPart: () =>
|
73
|
-
formatDataStreamPart: () =>
|
72
|
+
formatAssistantStreamPart: () => import_ui_utils10.formatAssistantStreamPart,
|
73
|
+
formatDataStreamPart: () => import_ui_utils10.formatDataStreamPart,
|
74
74
|
generateId: () => import_provider_utils14.generateId,
|
75
75
|
generateObject: () => generateObject,
|
76
76
|
generateText: () => generateText,
|
77
|
-
jsonSchema: () =>
|
78
|
-
parseAssistantStreamPart: () =>
|
79
|
-
parseDataStreamPart: () =>
|
77
|
+
jsonSchema: () => import_ui_utils10.jsonSchema,
|
78
|
+
parseAssistantStreamPart: () => import_ui_utils10.parseAssistantStreamPart,
|
79
|
+
parseDataStreamPart: () => import_ui_utils10.parseDataStreamPart,
|
80
80
|
pipeDataStreamToResponse: () => pipeDataStreamToResponse,
|
81
|
-
processDataStream: () =>
|
82
|
-
processTextStream: () =>
|
81
|
+
processDataStream: () => import_ui_utils10.processDataStream,
|
82
|
+
processTextStream: () => import_ui_utils10.processTextStream,
|
83
83
|
simulateReadableStream: () => simulateReadableStream,
|
84
84
|
smoothStream: () => smoothStream,
|
85
85
|
streamObject: () => streamObject,
|
@@ -91,7 +91,7 @@ module.exports = __toCommonJS(streams_exports);
|
|
91
91
|
|
92
92
|
// core/index.ts
|
93
93
|
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
94
|
-
var
|
94
|
+
var import_ui_utils10 = require("@ai-sdk/ui-utils");
|
95
95
|
|
96
96
|
// core/data-stream/create-data-stream.ts
|
97
97
|
var import_ui_utils = require("@ai-sdk/ui-utils");
|
@@ -1221,13 +1221,14 @@ async function convertToLanguageModelPrompt({
|
|
1221
1221
|
];
|
1222
1222
|
}
|
1223
1223
|
function convertToLanguageModelMessage(message, downloadedAssets) {
|
1224
|
+
var _a15, _b, _c, _d, _e, _f;
|
1224
1225
|
const role = message.role;
|
1225
1226
|
switch (role) {
|
1226
1227
|
case "system": {
|
1227
1228
|
return {
|
1228
1229
|
role: "system",
|
1229
1230
|
content: message.content,
|
1230
|
-
providerMetadata: message.experimental_providerMetadata
|
1231
|
+
providerMetadata: (_a15 = message.providerOptions) != null ? _a15 : message.experimental_providerMetadata
|
1231
1232
|
};
|
1232
1233
|
}
|
1233
1234
|
case "user": {
|
@@ -1235,13 +1236,13 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
|
|
1235
1236
|
return {
|
1236
1237
|
role: "user",
|
1237
1238
|
content: [{ type: "text", text: message.content }],
|
1238
|
-
providerMetadata: message.experimental_providerMetadata
|
1239
|
+
providerMetadata: (_b = message.providerOptions) != null ? _b : message.experimental_providerMetadata
|
1239
1240
|
};
|
1240
1241
|
}
|
1241
1242
|
return {
|
1242
1243
|
role: "user",
|
1243
1244
|
content: message.content.map((part) => convertPartToLanguageModelPart(part, downloadedAssets)).filter((part) => part.type !== "text" || part.text !== ""),
|
1244
|
-
providerMetadata: message.experimental_providerMetadata
|
1245
|
+
providerMetadata: (_c = message.providerOptions) != null ? _c : message.experimental_providerMetadata
|
1245
1246
|
};
|
1246
1247
|
}
|
1247
1248
|
case "assistant": {
|
@@ -1249,7 +1250,7 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
|
|
1249
1250
|
return {
|
1250
1251
|
role: "assistant",
|
1251
1252
|
content: [{ type: "text", text: message.content }],
|
1252
|
-
providerMetadata: message.experimental_providerMetadata
|
1253
|
+
providerMetadata: (_d = message.providerOptions) != null ? _d : message.experimental_providerMetadata
|
1253
1254
|
};
|
1254
1255
|
}
|
1255
1256
|
return {
|
@@ -1258,28 +1259,31 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
|
|
1258
1259
|
// remove empty text parts:
|
1259
1260
|
(part) => part.type !== "text" || part.text !== ""
|
1260
1261
|
).map((part) => {
|
1261
|
-
const { experimental_providerMetadata, ...rest } = part;
|
1262
|
+
const { experimental_providerMetadata, providerOptions, ...rest } = part;
|
1262
1263
|
return {
|
1263
1264
|
...rest,
|
1264
|
-
providerMetadata: experimental_providerMetadata
|
1265
|
+
providerMetadata: providerOptions != null ? providerOptions : experimental_providerMetadata
|
1265
1266
|
};
|
1266
1267
|
}),
|
1267
|
-
providerMetadata: message.experimental_providerMetadata
|
1268
|
+
providerMetadata: (_e = message.providerOptions) != null ? _e : message.experimental_providerMetadata
|
1268
1269
|
};
|
1269
1270
|
}
|
1270
1271
|
case "tool": {
|
1271
1272
|
return {
|
1272
1273
|
role: "tool",
|
1273
|
-
content: message.content.map((part) =>
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1274
|
+
content: message.content.map((part) => {
|
1275
|
+
var _a16;
|
1276
|
+
return {
|
1277
|
+
type: "tool-result",
|
1278
|
+
toolCallId: part.toolCallId,
|
1279
|
+
toolName: part.toolName,
|
1280
|
+
result: part.result,
|
1281
|
+
content: part.experimental_content,
|
1282
|
+
isError: part.isError,
|
1283
|
+
providerMetadata: (_a16 = part.providerOptions) != null ? _a16 : part.experimental_providerMetadata
|
1284
|
+
};
|
1285
|
+
}),
|
1286
|
+
providerMetadata: (_f = message.providerOptions) != null ? _f : message.experimental_providerMetadata
|
1283
1287
|
};
|
1284
1288
|
}
|
1285
1289
|
default: {
|
@@ -1614,45 +1618,62 @@ function convertToCoreMessages(messages, options) {
|
|
1614
1618
|
coreMessages.push({ role: "assistant", content });
|
1615
1619
|
break;
|
1616
1620
|
}
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1621
|
+
const maxStep = toolInvocations.reduce((max, toolInvocation) => {
|
1622
|
+
var _a16;
|
1623
|
+
return Math.max(max, (_a16 = toolInvocation.step) != null ? _a16 : 0);
|
1624
|
+
}, 0);
|
1625
|
+
for (let i = 0; i <= maxStep; i++) {
|
1626
|
+
const stepInvocations = toolInvocations.filter(
|
1627
|
+
(toolInvocation) => {
|
1628
|
+
var _a16;
|
1629
|
+
return ((_a16 = toolInvocation.step) != null ? _a16 : 0) === i;
|
1630
|
+
}
|
1631
|
+
);
|
1632
|
+
if (stepInvocations.length === 0) {
|
1633
|
+
continue;
|
1634
|
+
}
|
1635
|
+
coreMessages.push({
|
1636
|
+
role: "assistant",
|
1637
|
+
content: [
|
1638
|
+
...stepInvocations.map(
|
1639
|
+
({ toolCallId, toolName, args }) => ({
|
1640
|
+
type: "tool-call",
|
1641
|
+
toolCallId,
|
1642
|
+
toolName,
|
1643
|
+
args
|
1644
|
+
})
|
1645
|
+
)
|
1646
|
+
]
|
1647
|
+
});
|
1648
|
+
coreMessages.push({
|
1649
|
+
role: "tool",
|
1650
|
+
content: stepInvocations.map((toolInvocation) => {
|
1651
|
+
if (!("result" in toolInvocation)) {
|
1652
|
+
throw new MessageConversionError({
|
1653
|
+
originalMessage: message,
|
1654
|
+
message: "ToolInvocation must have a result: " + JSON.stringify(toolInvocation)
|
1655
|
+
});
|
1656
|
+
}
|
1657
|
+
const { toolCallId, toolName, result } = toolInvocation;
|
1658
|
+
const tool2 = tools[toolName];
|
1659
|
+
return (tool2 == null ? void 0 : tool2.experimental_toToolResultContent) != null ? {
|
1660
|
+
type: "tool-result",
|
1624
1661
|
toolCallId,
|
1625
1662
|
toolName,
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
const { toolCallId, toolName, result } = toolInvocation;
|
1641
|
-
const tool2 = tools[toolName];
|
1642
|
-
return (tool2 == null ? void 0 : tool2.experimental_toToolResultContent) != null ? {
|
1643
|
-
type: "tool-result",
|
1644
|
-
toolCallId,
|
1645
|
-
toolName,
|
1646
|
-
result: tool2.experimental_toToolResultContent(result),
|
1647
|
-
experimental_content: tool2.experimental_toToolResultContent(result)
|
1648
|
-
} : {
|
1649
|
-
type: "tool-result",
|
1650
|
-
toolCallId,
|
1651
|
-
toolName,
|
1652
|
-
result
|
1653
|
-
};
|
1654
|
-
})
|
1655
|
-
});
|
1663
|
+
result: tool2.experimental_toToolResultContent(result),
|
1664
|
+
experimental_content: tool2.experimental_toToolResultContent(result)
|
1665
|
+
} : {
|
1666
|
+
type: "tool-result",
|
1667
|
+
toolCallId,
|
1668
|
+
toolName,
|
1669
|
+
result
|
1670
|
+
};
|
1671
|
+
})
|
1672
|
+
});
|
1673
|
+
}
|
1674
|
+
if (content) {
|
1675
|
+
coreMessages.push({ role: "assistant", content });
|
1676
|
+
}
|
1656
1677
|
break;
|
1657
1678
|
}
|
1658
1679
|
case "data": {
|
@@ -1696,7 +1717,7 @@ function detectSingleMessageCharacteristics(message) {
|
|
1696
1717
|
"experimental_attachments" in message)) {
|
1697
1718
|
return "has-ui-specific-parts";
|
1698
1719
|
} else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
|
1699
|
-
"experimental_providerMetadata" in message)) {
|
1720
|
+
"experimental_providerMetadata" in message || "providerOptions" in message)) {
|
1700
1721
|
return "has-core-specific-parts";
|
1701
1722
|
} else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
|
1702
1723
|
return "message";
|
@@ -1750,25 +1771,30 @@ var toolResultContentSchema = import_zod4.z.array(
|
|
1750
1771
|
var textPartSchema = import_zod5.z.object({
|
1751
1772
|
type: import_zod5.z.literal("text"),
|
1752
1773
|
text: import_zod5.z.string(),
|
1774
|
+
providerOptions: providerMetadataSchema.optional(),
|
1753
1775
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1754
1776
|
});
|
1755
1777
|
var imagePartSchema = import_zod5.z.object({
|
1756
1778
|
type: import_zod5.z.literal("image"),
|
1757
1779
|
image: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
|
1758
1780
|
mimeType: import_zod5.z.string().optional(),
|
1781
|
+
providerOptions: providerMetadataSchema.optional(),
|
1759
1782
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1760
1783
|
});
|
1761
1784
|
var filePartSchema = import_zod5.z.object({
|
1762
1785
|
type: import_zod5.z.literal("file"),
|
1763
1786
|
data: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
|
1764
1787
|
mimeType: import_zod5.z.string(),
|
1788
|
+
providerOptions: providerMetadataSchema.optional(),
|
1765
1789
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1766
1790
|
});
|
1767
1791
|
var toolCallPartSchema = import_zod5.z.object({
|
1768
1792
|
type: import_zod5.z.literal("tool-call"),
|
1769
1793
|
toolCallId: import_zod5.z.string(),
|
1770
1794
|
toolName: import_zod5.z.string(),
|
1771
|
-
args: import_zod5.z.unknown()
|
1795
|
+
args: import_zod5.z.unknown(),
|
1796
|
+
providerOptions: providerMetadataSchema.optional(),
|
1797
|
+
experimental_providerMetadata: providerMetadataSchema.optional()
|
1772
1798
|
});
|
1773
1799
|
var toolResultPartSchema = import_zod5.z.object({
|
1774
1800
|
type: import_zod5.z.literal("tool-result"),
|
@@ -1777,6 +1803,7 @@ var toolResultPartSchema = import_zod5.z.object({
|
|
1777
1803
|
result: import_zod5.z.unknown(),
|
1778
1804
|
content: toolResultContentSchema.optional(),
|
1779
1805
|
isError: import_zod5.z.boolean().optional(),
|
1806
|
+
providerOptions: providerMetadataSchema.optional(),
|
1780
1807
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1781
1808
|
});
|
1782
1809
|
|
@@ -1784,6 +1811,7 @@ var toolResultPartSchema = import_zod5.z.object({
|
|
1784
1811
|
var coreSystemMessageSchema = import_zod6.z.object({
|
1785
1812
|
role: import_zod6.z.literal("system"),
|
1786
1813
|
content: import_zod6.z.string(),
|
1814
|
+
providerOptions: providerMetadataSchema.optional(),
|
1787
1815
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1788
1816
|
});
|
1789
1817
|
var coreUserMessageSchema = import_zod6.z.object({
|
@@ -1792,6 +1820,7 @@ var coreUserMessageSchema = import_zod6.z.object({
|
|
1792
1820
|
import_zod6.z.string(),
|
1793
1821
|
import_zod6.z.array(import_zod6.z.union([textPartSchema, imagePartSchema, filePartSchema]))
|
1794
1822
|
]),
|
1823
|
+
providerOptions: providerMetadataSchema.optional(),
|
1795
1824
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1796
1825
|
});
|
1797
1826
|
var coreAssistantMessageSchema = import_zod6.z.object({
|
@@ -1800,11 +1829,13 @@ var coreAssistantMessageSchema = import_zod6.z.object({
|
|
1800
1829
|
import_zod6.z.string(),
|
1801
1830
|
import_zod6.z.array(import_zod6.z.union([textPartSchema, toolCallPartSchema]))
|
1802
1831
|
]),
|
1832
|
+
providerOptions: providerMetadataSchema.optional(),
|
1803
1833
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1804
1834
|
});
|
1805
1835
|
var coreToolMessageSchema = import_zod6.z.object({
|
1806
1836
|
role: import_zod6.z.literal("tool"),
|
1807
1837
|
content: import_zod6.z.array(toolResultPartSchema),
|
1838
|
+
providerOptions: providerMetadataSchema.optional(),
|
1808
1839
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1809
1840
|
});
|
1810
1841
|
var coreMessageSchema = import_zod6.z.union([
|
@@ -2315,7 +2346,8 @@ async function generateObject({
|
|
2315
2346
|
abortSignal,
|
2316
2347
|
headers,
|
2317
2348
|
experimental_telemetry: telemetry,
|
2318
|
-
experimental_providerMetadata
|
2349
|
+
experimental_providerMetadata,
|
2350
|
+
providerOptions = experimental_providerMetadata,
|
2319
2351
|
_internal: {
|
2320
2352
|
generateId: generateId3 = originalGenerateId,
|
2321
2353
|
currentDate = () => /* @__PURE__ */ new Date()
|
@@ -2442,7 +2474,7 @@ async function generateObject({
|
|
2442
2474
|
...prepareCallSettings(settings),
|
2443
2475
|
inputFormat: standardizedPrompt.type,
|
2444
2476
|
prompt: promptMessages,
|
2445
|
-
providerMetadata,
|
2477
|
+
providerMetadata: providerOptions,
|
2446
2478
|
abortSignal,
|
2447
2479
|
headers
|
2448
2480
|
});
|
@@ -2549,7 +2581,7 @@ async function generateObject({
|
|
2549
2581
|
...prepareCallSettings(settings),
|
2550
2582
|
inputFormat,
|
2551
2583
|
prompt: promptMessages,
|
2552
|
-
providerMetadata,
|
2584
|
+
providerMetadata: providerOptions,
|
2553
2585
|
abortSignal,
|
2554
2586
|
headers
|
2555
2587
|
});
|
@@ -2850,7 +2882,8 @@ function streamObject({
|
|
2850
2882
|
abortSignal,
|
2851
2883
|
headers,
|
2852
2884
|
experimental_telemetry: telemetry,
|
2853
|
-
experimental_providerMetadata
|
2885
|
+
experimental_providerMetadata,
|
2886
|
+
providerOptions = experimental_providerMetadata,
|
2854
2887
|
onFinish,
|
2855
2888
|
_internal: {
|
2856
2889
|
generateId: generateId3 = originalGenerateId2,
|
@@ -2883,7 +2916,7 @@ function streamObject({
|
|
2883
2916
|
messages,
|
2884
2917
|
schemaName,
|
2885
2918
|
schemaDescription,
|
2886
|
-
|
2919
|
+
providerOptions,
|
2887
2920
|
mode,
|
2888
2921
|
onFinish,
|
2889
2922
|
generateId: generateId3,
|
@@ -2905,7 +2938,7 @@ var DefaultStreamObjectResult = class {
|
|
2905
2938
|
messages,
|
2906
2939
|
schemaName,
|
2907
2940
|
schemaDescription,
|
2908
|
-
|
2941
|
+
providerOptions,
|
2909
2942
|
mode,
|
2910
2943
|
onFinish,
|
2911
2944
|
generateId: generateId3,
|
@@ -2986,7 +3019,7 @@ var DefaultStreamObjectResult = class {
|
|
2986
3019
|
modelSupportsImageUrls: model.supportsImageUrls,
|
2987
3020
|
modelSupportsUrl: model.supportsUrl
|
2988
3021
|
}),
|
2989
|
-
providerMetadata:
|
3022
|
+
providerMetadata: providerOptions,
|
2990
3023
|
abortSignal,
|
2991
3024
|
headers
|
2992
3025
|
};
|
@@ -3028,7 +3061,7 @@ var DefaultStreamObjectResult = class {
|
|
3028
3061
|
modelSupportsImageUrls: model.supportsImageUrls,
|
3029
3062
|
modelSupportsUrl: model.supportsUrl
|
3030
3063
|
}),
|
3031
|
-
providerMetadata:
|
3064
|
+
providerMetadata: providerOptions,
|
3032
3065
|
abortSignal,
|
3033
3066
|
headers
|
3034
3067
|
};
|
@@ -3710,7 +3743,8 @@ async function generateText({
|
|
3710
3743
|
experimental_output: output,
|
3711
3744
|
experimental_continueSteps: continueSteps = false,
|
3712
3745
|
experimental_telemetry: telemetry,
|
3713
|
-
experimental_providerMetadata
|
3746
|
+
experimental_providerMetadata,
|
3747
|
+
providerOptions = experimental_providerMetadata,
|
3714
3748
|
experimental_activeTools: activeTools,
|
3715
3749
|
experimental_repairToolCall: repairToolCall,
|
3716
3750
|
_internal: {
|
@@ -3843,7 +3877,7 @@ async function generateText({
|
|
3843
3877
|
inputFormat: promptFormat,
|
3844
3878
|
responseFormat: output == null ? void 0 : output.responseFormat({ model }),
|
3845
3879
|
prompt: promptMessages,
|
3846
|
-
providerMetadata,
|
3880
|
+
providerMetadata: providerOptions,
|
3847
3881
|
abortSignal,
|
3848
3882
|
headers
|
3849
3883
|
});
|
@@ -4559,7 +4593,8 @@ function streamText({
|
|
4559
4593
|
experimental_output: output,
|
4560
4594
|
experimental_continueSteps: continueSteps = false,
|
4561
4595
|
experimental_telemetry: telemetry,
|
4562
|
-
experimental_providerMetadata
|
4596
|
+
experimental_providerMetadata,
|
4597
|
+
providerOptions = experimental_providerMetadata,
|
4563
4598
|
experimental_toolCallStreaming = false,
|
4564
4599
|
toolCallStreaming = experimental_toolCallStreaming,
|
4565
4600
|
experimental_activeTools: activeTools,
|
@@ -4594,7 +4629,7 @@ function streamText({
|
|
4594
4629
|
maxSteps,
|
4595
4630
|
output,
|
4596
4631
|
continueSteps,
|
4597
|
-
|
4632
|
+
providerOptions,
|
4598
4633
|
onChunk,
|
4599
4634
|
onFinish,
|
4600
4635
|
onStepFinish,
|
@@ -4675,7 +4710,7 @@ var DefaultStreamTextResult = class {
|
|
4675
4710
|
maxSteps,
|
4676
4711
|
output,
|
4677
4712
|
continueSteps,
|
4678
|
-
|
4713
|
+
providerOptions,
|
4679
4714
|
onChunk,
|
4680
4715
|
onFinish,
|
4681
4716
|
onStepFinish,
|
@@ -5003,7 +5038,7 @@ var DefaultStreamTextResult = class {
|
|
5003
5038
|
inputFormat: promptFormat,
|
5004
5039
|
responseFormat: output == null ? void 0 : output.responseFormat({ model }),
|
5005
5040
|
prompt: promptMessages,
|
5006
|
-
providerMetadata,
|
5041
|
+
providerMetadata: providerOptions,
|
5007
5042
|
abortSignal,
|
5008
5043
|
headers
|
5009
5044
|
})
|
@@ -5753,41 +5788,60 @@ function appendClientMessage({
|
|
5753
5788
|
}
|
5754
5789
|
|
5755
5790
|
// core/prompt/append-response-messages.ts
|
5791
|
+
var import_ui_utils9 = require("@ai-sdk/ui-utils");
|
5756
5792
|
function appendResponseMessages({
|
5757
5793
|
messages,
|
5758
5794
|
responseMessages
|
5759
5795
|
}) {
|
5760
|
-
var _a15;
|
5796
|
+
var _a15, _b;
|
5761
5797
|
const clonedMessages = structuredClone(messages);
|
5762
5798
|
for (const message of responseMessages) {
|
5763
5799
|
const role = message.role;
|
5800
|
+
const lastMessage = clonedMessages[clonedMessages.length - 1];
|
5801
|
+
const isLastMessageAssistant = lastMessage.role === "assistant";
|
5764
5802
|
switch (role) {
|
5765
5803
|
case "assistant": {
|
5766
|
-
|
5767
|
-
|
5768
|
-
id: message.id,
|
5769
|
-
createdAt: /* @__PURE__ */ new Date(),
|
5770
|
-
// generate a createdAt date for the message, will be overridden by the client
|
5771
|
-
// only include text in the content:
|
5772
|
-
content: typeof message.content === "string" ? message.content : message.content.filter((part) => part.type === "text").map((part) => part.text).join(""),
|
5773
|
-
// separate tool calls from the content:
|
5774
|
-
toolInvocations: (typeof message.content === "string" ? [] : message.content.filter((part) => part.type === "tool-call")).map((call) => ({
|
5804
|
+
let getToolInvocations2 = function(step) {
|
5805
|
+
return (typeof message.content === "string" ? [] : message.content.filter((part) => part.type === "tool-call")).map((call) => ({
|
5775
5806
|
state: "call",
|
5776
|
-
|
5777
|
-
|
5778
|
-
|
5807
|
+
step,
|
5808
|
+
args: call.args,
|
5809
|
+
toolCallId: call.toolCallId,
|
5810
|
+
toolName: call.toolName
|
5811
|
+
}));
|
5812
|
+
};
|
5813
|
+
var getToolInvocations = getToolInvocations2;
|
5814
|
+
const textContent = typeof message.content === "string" ? message.content : message.content.filter((part) => part.type === "text").map((part) => part.text).join("");
|
5815
|
+
if (isLastMessageAssistant) {
|
5816
|
+
const maxStep = (0, import_ui_utils9.extractMaxToolInvocationStep)(
|
5817
|
+
lastMessage.toolInvocations
|
5818
|
+
);
|
5819
|
+
lastMessage.content = textContent;
|
5820
|
+
lastMessage.toolInvocations = [
|
5821
|
+
...(_a15 = lastMessage.toolInvocations) != null ? _a15 : [],
|
5822
|
+
...getToolInvocations2(maxStep === void 0 ? 0 : maxStep + 1)
|
5823
|
+
];
|
5824
|
+
} else {
|
5825
|
+
clonedMessages.push({
|
5826
|
+
role: "assistant",
|
5827
|
+
id: message.id,
|
5828
|
+
createdAt: /* @__PURE__ */ new Date(),
|
5829
|
+
// generate a createdAt date for the message, will be overridden by the client
|
5830
|
+
content: textContent,
|
5831
|
+
toolInvocations: getToolInvocations2(0)
|
5832
|
+
});
|
5833
|
+
}
|
5779
5834
|
break;
|
5780
5835
|
}
|
5781
5836
|
case "tool": {
|
5782
|
-
|
5783
|
-
(
|
5784
|
-
if (previousMessage.role !== "assistant") {
|
5837
|
+
(_b = lastMessage.toolInvocations) != null ? _b : lastMessage.toolInvocations = [];
|
5838
|
+
if (lastMessage.role !== "assistant") {
|
5785
5839
|
throw new Error(
|
5786
|
-
`Tool result must follow an assistant message: ${
|
5840
|
+
`Tool result must follow an assistant message: ${lastMessage.role}`
|
5787
5841
|
);
|
5788
5842
|
}
|
5789
5843
|
for (const part of message.content) {
|
5790
|
-
const toolCall =
|
5844
|
+
const toolCall = lastMessage.toolInvocations.find(
|
5791
5845
|
(call) => call.toolCallId === part.toolCallId
|
5792
5846
|
);
|
5793
5847
|
if (!toolCall) {
|
@@ -5994,7 +6048,7 @@ function simulateReadableStream({
|
|
5994
6048
|
}
|
5995
6049
|
|
5996
6050
|
// streams/assistant-response.ts
|
5997
|
-
var
|
6051
|
+
var import_ui_utils11 = require("@ai-sdk/ui-utils");
|
5998
6052
|
function AssistantResponse({ threadId, messageId }, process2) {
|
5999
6053
|
const stream = new ReadableStream({
|
6000
6054
|
async start(controller) {
|
@@ -6003,20 +6057,20 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
6003
6057
|
const sendMessage = (message) => {
|
6004
6058
|
controller.enqueue(
|
6005
6059
|
textEncoder.encode(
|
6006
|
-
(0,
|
6060
|
+
(0, import_ui_utils11.formatAssistantStreamPart)("assistant_message", message)
|
6007
6061
|
)
|
6008
6062
|
);
|
6009
6063
|
};
|
6010
6064
|
const sendDataMessage = (message) => {
|
6011
6065
|
controller.enqueue(
|
6012
6066
|
textEncoder.encode(
|
6013
|
-
(0,
|
6067
|
+
(0, import_ui_utils11.formatAssistantStreamPart)("data_message", message)
|
6014
6068
|
)
|
6015
6069
|
);
|
6016
6070
|
};
|
6017
6071
|
const sendError = (errorMessage) => {
|
6018
6072
|
controller.enqueue(
|
6019
|
-
textEncoder.encode((0,
|
6073
|
+
textEncoder.encode((0, import_ui_utils11.formatAssistantStreamPart)("error", errorMessage))
|
6020
6074
|
);
|
6021
6075
|
};
|
6022
6076
|
const forwardStream = async (stream2) => {
|
@@ -6027,7 +6081,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
6027
6081
|
case "thread.message.created": {
|
6028
6082
|
controller.enqueue(
|
6029
6083
|
textEncoder.encode(
|
6030
|
-
(0,
|
6084
|
+
(0, import_ui_utils11.formatAssistantStreamPart)("assistant_message", {
|
6031
6085
|
id: value.data.id,
|
6032
6086
|
role: "assistant",
|
6033
6087
|
content: [{ type: "text", text: { value: "" } }]
|
@@ -6041,7 +6095,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
6041
6095
|
if ((content == null ? void 0 : content.type) === "text" && ((_b = content.text) == null ? void 0 : _b.value) != null) {
|
6042
6096
|
controller.enqueue(
|
6043
6097
|
textEncoder.encode(
|
6044
|
-
(0,
|
6098
|
+
(0, import_ui_utils11.formatAssistantStreamPart)("text", content.text.value)
|
6045
6099
|
)
|
6046
6100
|
);
|
6047
6101
|
}
|
@@ -6058,7 +6112,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
6058
6112
|
};
|
6059
6113
|
controller.enqueue(
|
6060
6114
|
textEncoder.encode(
|
6061
|
-
(0,
|
6115
|
+
(0, import_ui_utils11.formatAssistantStreamPart)("assistant_control_data", {
|
6062
6116
|
threadId,
|
6063
6117
|
messageId
|
6064
6118
|
})
|
@@ -6096,7 +6150,7 @@ __export(langchain_adapter_exports, {
|
|
6096
6150
|
toDataStream: () => toDataStream,
|
6097
6151
|
toDataStreamResponse: () => toDataStreamResponse
|
6098
6152
|
});
|
6099
|
-
var
|
6153
|
+
var import_ui_utils12 = require("@ai-sdk/ui-utils");
|
6100
6154
|
|
6101
6155
|
// streams/stream-callbacks.ts
|
6102
6156
|
function createCallbacksTransformer(callbacks = {}) {
|
@@ -6152,7 +6206,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
6152
6206
|
).pipeThrough(createCallbacksTransformer(callbacks)).pipeThrough(new TextDecoderStream()).pipeThrough(
|
6153
6207
|
new TransformStream({
|
6154
6208
|
transform: async (chunk, controller) => {
|
6155
|
-
controller.enqueue((0,
|
6209
|
+
controller.enqueue((0, import_ui_utils12.formatDataStreamPart)("text", chunk));
|
6156
6210
|
}
|
6157
6211
|
})
|
6158
6212
|
);
|
@@ -6204,7 +6258,7 @@ __export(llamaindex_adapter_exports, {
|
|
6204
6258
|
toDataStreamResponse: () => toDataStreamResponse2
|
6205
6259
|
});
|
6206
6260
|
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
6207
|
-
var
|
6261
|
+
var import_ui_utils13 = require("@ai-sdk/ui-utils");
|
6208
6262
|
function toDataStreamInternal2(stream, callbacks) {
|
6209
6263
|
const trimStart = trimStartOfStream();
|
6210
6264
|
return (0, import_provider_utils15.convertAsyncIteratorToReadableStream)(stream[Symbol.asyncIterator]()).pipeThrough(
|
@@ -6216,7 +6270,7 @@ function toDataStreamInternal2(stream, callbacks) {
|
|
6216
6270
|
).pipeThrough(createCallbacksTransformer(callbacks)).pipeThrough(new TextDecoderStream()).pipeThrough(
|
6217
6271
|
new TransformStream({
|
6218
6272
|
transform: async (chunk, controller) => {
|
6219
|
-
controller.enqueue((0,
|
6273
|
+
controller.enqueue((0, import_ui_utils13.formatDataStreamPart)("text", chunk));
|
6220
6274
|
}
|
6221
6275
|
})
|
6222
6276
|
);
|
@@ -6258,7 +6312,7 @@ function trimStartOfStream() {
|
|
6258
6312
|
}
|
6259
6313
|
|
6260
6314
|
// streams/stream-data.ts
|
6261
|
-
var
|
6315
|
+
var import_ui_utils14 = require("@ai-sdk/ui-utils");
|
6262
6316
|
|
6263
6317
|
// util/constants.ts
|
6264
6318
|
var HANGING_STREAM_WARNING_TIME_MS = 15 * 1e3;
|
@@ -6310,7 +6364,7 @@ var StreamData = class {
|
|
6310
6364
|
throw new Error("Stream controller is not initialized.");
|
6311
6365
|
}
|
6312
6366
|
this.controller.enqueue(
|
6313
|
-
this.encoder.encode((0,
|
6367
|
+
this.encoder.encode((0, import_ui_utils14.formatDataStreamPart)("data", [value]))
|
6314
6368
|
);
|
6315
6369
|
}
|
6316
6370
|
appendMessageAnnotation(value) {
|
@@ -6321,7 +6375,7 @@ var StreamData = class {
|
|
6321
6375
|
throw new Error("Stream controller is not initialized.");
|
6322
6376
|
}
|
6323
6377
|
this.controller.enqueue(
|
6324
|
-
this.encoder.encode((0,
|
6378
|
+
this.encoder.encode((0, import_ui_utils14.formatDataStreamPart)("message_annotations", [value]))
|
6325
6379
|
);
|
6326
6380
|
}
|
6327
6381
|
};
|