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.mjs
CHANGED
@@ -1150,13 +1150,14 @@ async function convertToLanguageModelPrompt({
|
|
1150
1150
|
];
|
1151
1151
|
}
|
1152
1152
|
function convertToLanguageModelMessage(message, downloadedAssets) {
|
1153
|
+
var _a15, _b, _c, _d, _e, _f;
|
1153
1154
|
const role = message.role;
|
1154
1155
|
switch (role) {
|
1155
1156
|
case "system": {
|
1156
1157
|
return {
|
1157
1158
|
role: "system",
|
1158
1159
|
content: message.content,
|
1159
|
-
providerMetadata: message.experimental_providerMetadata
|
1160
|
+
providerMetadata: (_a15 = message.providerOptions) != null ? _a15 : message.experimental_providerMetadata
|
1160
1161
|
};
|
1161
1162
|
}
|
1162
1163
|
case "user": {
|
@@ -1164,13 +1165,13 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
|
|
1164
1165
|
return {
|
1165
1166
|
role: "user",
|
1166
1167
|
content: [{ type: "text", text: message.content }],
|
1167
|
-
providerMetadata: message.experimental_providerMetadata
|
1168
|
+
providerMetadata: (_b = message.providerOptions) != null ? _b : message.experimental_providerMetadata
|
1168
1169
|
};
|
1169
1170
|
}
|
1170
1171
|
return {
|
1171
1172
|
role: "user",
|
1172
1173
|
content: message.content.map((part) => convertPartToLanguageModelPart(part, downloadedAssets)).filter((part) => part.type !== "text" || part.text !== ""),
|
1173
|
-
providerMetadata: message.experimental_providerMetadata
|
1174
|
+
providerMetadata: (_c = message.providerOptions) != null ? _c : message.experimental_providerMetadata
|
1174
1175
|
};
|
1175
1176
|
}
|
1176
1177
|
case "assistant": {
|
@@ -1178,7 +1179,7 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
|
|
1178
1179
|
return {
|
1179
1180
|
role: "assistant",
|
1180
1181
|
content: [{ type: "text", text: message.content }],
|
1181
|
-
providerMetadata: message.experimental_providerMetadata
|
1182
|
+
providerMetadata: (_d = message.providerOptions) != null ? _d : message.experimental_providerMetadata
|
1182
1183
|
};
|
1183
1184
|
}
|
1184
1185
|
return {
|
@@ -1187,28 +1188,31 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
|
|
1187
1188
|
// remove empty text parts:
|
1188
1189
|
(part) => part.type !== "text" || part.text !== ""
|
1189
1190
|
).map((part) => {
|
1190
|
-
const { experimental_providerMetadata, ...rest } = part;
|
1191
|
+
const { experimental_providerMetadata, providerOptions, ...rest } = part;
|
1191
1192
|
return {
|
1192
1193
|
...rest,
|
1193
|
-
providerMetadata: experimental_providerMetadata
|
1194
|
+
providerMetadata: providerOptions != null ? providerOptions : experimental_providerMetadata
|
1194
1195
|
};
|
1195
1196
|
}),
|
1196
|
-
providerMetadata: message.experimental_providerMetadata
|
1197
|
+
providerMetadata: (_e = message.providerOptions) != null ? _e : message.experimental_providerMetadata
|
1197
1198
|
};
|
1198
1199
|
}
|
1199
1200
|
case "tool": {
|
1200
1201
|
return {
|
1201
1202
|
role: "tool",
|
1202
|
-
content: message.content.map((part) =>
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1203
|
+
content: message.content.map((part) => {
|
1204
|
+
var _a16;
|
1205
|
+
return {
|
1206
|
+
type: "tool-result",
|
1207
|
+
toolCallId: part.toolCallId,
|
1208
|
+
toolName: part.toolName,
|
1209
|
+
result: part.result,
|
1210
|
+
content: part.experimental_content,
|
1211
|
+
isError: part.isError,
|
1212
|
+
providerMetadata: (_a16 = part.providerOptions) != null ? _a16 : part.experimental_providerMetadata
|
1213
|
+
};
|
1214
|
+
}),
|
1215
|
+
providerMetadata: (_f = message.providerOptions) != null ? _f : message.experimental_providerMetadata
|
1212
1216
|
};
|
1213
1217
|
}
|
1214
1218
|
default: {
|
@@ -1543,45 +1547,62 @@ function convertToCoreMessages(messages, options) {
|
|
1543
1547
|
coreMessages.push({ role: "assistant", content });
|
1544
1548
|
break;
|
1545
1549
|
}
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1550
|
+
const maxStep = toolInvocations.reduce((max, toolInvocation) => {
|
1551
|
+
var _a16;
|
1552
|
+
return Math.max(max, (_a16 = toolInvocation.step) != null ? _a16 : 0);
|
1553
|
+
}, 0);
|
1554
|
+
for (let i = 0; i <= maxStep; i++) {
|
1555
|
+
const stepInvocations = toolInvocations.filter(
|
1556
|
+
(toolInvocation) => {
|
1557
|
+
var _a16;
|
1558
|
+
return ((_a16 = toolInvocation.step) != null ? _a16 : 0) === i;
|
1559
|
+
}
|
1560
|
+
);
|
1561
|
+
if (stepInvocations.length === 0) {
|
1562
|
+
continue;
|
1563
|
+
}
|
1564
|
+
coreMessages.push({
|
1565
|
+
role: "assistant",
|
1566
|
+
content: [
|
1567
|
+
...stepInvocations.map(
|
1568
|
+
({ toolCallId, toolName, args }) => ({
|
1569
|
+
type: "tool-call",
|
1570
|
+
toolCallId,
|
1571
|
+
toolName,
|
1572
|
+
args
|
1573
|
+
})
|
1574
|
+
)
|
1575
|
+
]
|
1576
|
+
});
|
1577
|
+
coreMessages.push({
|
1578
|
+
role: "tool",
|
1579
|
+
content: stepInvocations.map((toolInvocation) => {
|
1580
|
+
if (!("result" in toolInvocation)) {
|
1581
|
+
throw new MessageConversionError({
|
1582
|
+
originalMessage: message,
|
1583
|
+
message: "ToolInvocation must have a result: " + JSON.stringify(toolInvocation)
|
1584
|
+
});
|
1585
|
+
}
|
1586
|
+
const { toolCallId, toolName, result } = toolInvocation;
|
1587
|
+
const tool2 = tools[toolName];
|
1588
|
+
return (tool2 == null ? void 0 : tool2.experimental_toToolResultContent) != null ? {
|
1589
|
+
type: "tool-result",
|
1553
1590
|
toolCallId,
|
1554
1591
|
toolName,
|
1555
|
-
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
1559
|
-
|
1560
|
-
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1569
|
-
const { toolCallId, toolName, result } = toolInvocation;
|
1570
|
-
const tool2 = tools[toolName];
|
1571
|
-
return (tool2 == null ? void 0 : tool2.experimental_toToolResultContent) != null ? {
|
1572
|
-
type: "tool-result",
|
1573
|
-
toolCallId,
|
1574
|
-
toolName,
|
1575
|
-
result: tool2.experimental_toToolResultContent(result),
|
1576
|
-
experimental_content: tool2.experimental_toToolResultContent(result)
|
1577
|
-
} : {
|
1578
|
-
type: "tool-result",
|
1579
|
-
toolCallId,
|
1580
|
-
toolName,
|
1581
|
-
result
|
1582
|
-
};
|
1583
|
-
})
|
1584
|
-
});
|
1592
|
+
result: tool2.experimental_toToolResultContent(result),
|
1593
|
+
experimental_content: tool2.experimental_toToolResultContent(result)
|
1594
|
+
} : {
|
1595
|
+
type: "tool-result",
|
1596
|
+
toolCallId,
|
1597
|
+
toolName,
|
1598
|
+
result
|
1599
|
+
};
|
1600
|
+
})
|
1601
|
+
});
|
1602
|
+
}
|
1603
|
+
if (content) {
|
1604
|
+
coreMessages.push({ role: "assistant", content });
|
1605
|
+
}
|
1585
1606
|
break;
|
1586
1607
|
}
|
1587
1608
|
case "data": {
|
@@ -1625,7 +1646,7 @@ function detectSingleMessageCharacteristics(message) {
|
|
1625
1646
|
"experimental_attachments" in message)) {
|
1626
1647
|
return "has-ui-specific-parts";
|
1627
1648
|
} else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
|
1628
|
-
"experimental_providerMetadata" in message)) {
|
1649
|
+
"experimental_providerMetadata" in message || "providerOptions" in message)) {
|
1629
1650
|
return "has-core-specific-parts";
|
1630
1651
|
} else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
|
1631
1652
|
return "message";
|
@@ -1679,25 +1700,30 @@ var toolResultContentSchema = z4.array(
|
|
1679
1700
|
var textPartSchema = z5.object({
|
1680
1701
|
type: z5.literal("text"),
|
1681
1702
|
text: z5.string(),
|
1703
|
+
providerOptions: providerMetadataSchema.optional(),
|
1682
1704
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1683
1705
|
});
|
1684
1706
|
var imagePartSchema = z5.object({
|
1685
1707
|
type: z5.literal("image"),
|
1686
1708
|
image: z5.union([dataContentSchema, z5.instanceof(URL)]),
|
1687
1709
|
mimeType: z5.string().optional(),
|
1710
|
+
providerOptions: providerMetadataSchema.optional(),
|
1688
1711
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1689
1712
|
});
|
1690
1713
|
var filePartSchema = z5.object({
|
1691
1714
|
type: z5.literal("file"),
|
1692
1715
|
data: z5.union([dataContentSchema, z5.instanceof(URL)]),
|
1693
1716
|
mimeType: z5.string(),
|
1717
|
+
providerOptions: providerMetadataSchema.optional(),
|
1694
1718
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1695
1719
|
});
|
1696
1720
|
var toolCallPartSchema = z5.object({
|
1697
1721
|
type: z5.literal("tool-call"),
|
1698
1722
|
toolCallId: z5.string(),
|
1699
1723
|
toolName: z5.string(),
|
1700
|
-
args: z5.unknown()
|
1724
|
+
args: z5.unknown(),
|
1725
|
+
providerOptions: providerMetadataSchema.optional(),
|
1726
|
+
experimental_providerMetadata: providerMetadataSchema.optional()
|
1701
1727
|
});
|
1702
1728
|
var toolResultPartSchema = z5.object({
|
1703
1729
|
type: z5.literal("tool-result"),
|
@@ -1706,6 +1732,7 @@ var toolResultPartSchema = z5.object({
|
|
1706
1732
|
result: z5.unknown(),
|
1707
1733
|
content: toolResultContentSchema.optional(),
|
1708
1734
|
isError: z5.boolean().optional(),
|
1735
|
+
providerOptions: providerMetadataSchema.optional(),
|
1709
1736
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1710
1737
|
});
|
1711
1738
|
|
@@ -1713,6 +1740,7 @@ var toolResultPartSchema = z5.object({
|
|
1713
1740
|
var coreSystemMessageSchema = z6.object({
|
1714
1741
|
role: z6.literal("system"),
|
1715
1742
|
content: z6.string(),
|
1743
|
+
providerOptions: providerMetadataSchema.optional(),
|
1716
1744
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1717
1745
|
});
|
1718
1746
|
var coreUserMessageSchema = z6.object({
|
@@ -1721,6 +1749,7 @@ var coreUserMessageSchema = z6.object({
|
|
1721
1749
|
z6.string(),
|
1722
1750
|
z6.array(z6.union([textPartSchema, imagePartSchema, filePartSchema]))
|
1723
1751
|
]),
|
1752
|
+
providerOptions: providerMetadataSchema.optional(),
|
1724
1753
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1725
1754
|
});
|
1726
1755
|
var coreAssistantMessageSchema = z6.object({
|
@@ -1729,11 +1758,13 @@ var coreAssistantMessageSchema = z6.object({
|
|
1729
1758
|
z6.string(),
|
1730
1759
|
z6.array(z6.union([textPartSchema, toolCallPartSchema]))
|
1731
1760
|
]),
|
1761
|
+
providerOptions: providerMetadataSchema.optional(),
|
1732
1762
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1733
1763
|
});
|
1734
1764
|
var coreToolMessageSchema = z6.object({
|
1735
1765
|
role: z6.literal("tool"),
|
1736
1766
|
content: z6.array(toolResultPartSchema),
|
1767
|
+
providerOptions: providerMetadataSchema.optional(),
|
1737
1768
|
experimental_providerMetadata: providerMetadataSchema.optional()
|
1738
1769
|
});
|
1739
1770
|
var coreMessageSchema = z6.union([
|
@@ -2249,7 +2280,8 @@ async function generateObject({
|
|
2249
2280
|
abortSignal,
|
2250
2281
|
headers,
|
2251
2282
|
experimental_telemetry: telemetry,
|
2252
|
-
experimental_providerMetadata
|
2283
|
+
experimental_providerMetadata,
|
2284
|
+
providerOptions = experimental_providerMetadata,
|
2253
2285
|
_internal: {
|
2254
2286
|
generateId: generateId3 = originalGenerateId,
|
2255
2287
|
currentDate = () => /* @__PURE__ */ new Date()
|
@@ -2376,7 +2408,7 @@ async function generateObject({
|
|
2376
2408
|
...prepareCallSettings(settings),
|
2377
2409
|
inputFormat: standardizedPrompt.type,
|
2378
2410
|
prompt: promptMessages,
|
2379
|
-
providerMetadata,
|
2411
|
+
providerMetadata: providerOptions,
|
2380
2412
|
abortSignal,
|
2381
2413
|
headers
|
2382
2414
|
});
|
@@ -2483,7 +2515,7 @@ async function generateObject({
|
|
2483
2515
|
...prepareCallSettings(settings),
|
2484
2516
|
inputFormat,
|
2485
2517
|
prompt: promptMessages,
|
2486
|
-
providerMetadata,
|
2518
|
+
providerMetadata: providerOptions,
|
2487
2519
|
abortSignal,
|
2488
2520
|
headers
|
2489
2521
|
});
|
@@ -2787,7 +2819,8 @@ function streamObject({
|
|
2787
2819
|
abortSignal,
|
2788
2820
|
headers,
|
2789
2821
|
experimental_telemetry: telemetry,
|
2790
|
-
experimental_providerMetadata
|
2822
|
+
experimental_providerMetadata,
|
2823
|
+
providerOptions = experimental_providerMetadata,
|
2791
2824
|
onFinish,
|
2792
2825
|
_internal: {
|
2793
2826
|
generateId: generateId3 = originalGenerateId2,
|
@@ -2820,7 +2853,7 @@ function streamObject({
|
|
2820
2853
|
messages,
|
2821
2854
|
schemaName,
|
2822
2855
|
schemaDescription,
|
2823
|
-
|
2856
|
+
providerOptions,
|
2824
2857
|
mode,
|
2825
2858
|
onFinish,
|
2826
2859
|
generateId: generateId3,
|
@@ -2842,7 +2875,7 @@ var DefaultStreamObjectResult = class {
|
|
2842
2875
|
messages,
|
2843
2876
|
schemaName,
|
2844
2877
|
schemaDescription,
|
2845
|
-
|
2878
|
+
providerOptions,
|
2846
2879
|
mode,
|
2847
2880
|
onFinish,
|
2848
2881
|
generateId: generateId3,
|
@@ -2923,7 +2956,7 @@ var DefaultStreamObjectResult = class {
|
|
2923
2956
|
modelSupportsImageUrls: model.supportsImageUrls,
|
2924
2957
|
modelSupportsUrl: model.supportsUrl
|
2925
2958
|
}),
|
2926
|
-
providerMetadata:
|
2959
|
+
providerMetadata: providerOptions,
|
2927
2960
|
abortSignal,
|
2928
2961
|
headers
|
2929
2962
|
};
|
@@ -2965,7 +2998,7 @@ var DefaultStreamObjectResult = class {
|
|
2965
2998
|
modelSupportsImageUrls: model.supportsImageUrls,
|
2966
2999
|
modelSupportsUrl: model.supportsUrl
|
2967
3000
|
}),
|
2968
|
-
providerMetadata:
|
3001
|
+
providerMetadata: providerOptions,
|
2969
3002
|
abortSignal,
|
2970
3003
|
headers
|
2971
3004
|
};
|
@@ -3647,7 +3680,8 @@ async function generateText({
|
|
3647
3680
|
experimental_output: output,
|
3648
3681
|
experimental_continueSteps: continueSteps = false,
|
3649
3682
|
experimental_telemetry: telemetry,
|
3650
|
-
experimental_providerMetadata
|
3683
|
+
experimental_providerMetadata,
|
3684
|
+
providerOptions = experimental_providerMetadata,
|
3651
3685
|
experimental_activeTools: activeTools,
|
3652
3686
|
experimental_repairToolCall: repairToolCall,
|
3653
3687
|
_internal: {
|
@@ -3780,7 +3814,7 @@ async function generateText({
|
|
3780
3814
|
inputFormat: promptFormat,
|
3781
3815
|
responseFormat: output == null ? void 0 : output.responseFormat({ model }),
|
3782
3816
|
prompt: promptMessages,
|
3783
|
-
providerMetadata,
|
3817
|
+
providerMetadata: providerOptions,
|
3784
3818
|
abortSignal,
|
3785
3819
|
headers
|
3786
3820
|
});
|
@@ -4511,7 +4545,8 @@ function streamText({
|
|
4511
4545
|
experimental_output: output,
|
4512
4546
|
experimental_continueSteps: continueSteps = false,
|
4513
4547
|
experimental_telemetry: telemetry,
|
4514
|
-
experimental_providerMetadata
|
4548
|
+
experimental_providerMetadata,
|
4549
|
+
providerOptions = experimental_providerMetadata,
|
4515
4550
|
experimental_toolCallStreaming = false,
|
4516
4551
|
toolCallStreaming = experimental_toolCallStreaming,
|
4517
4552
|
experimental_activeTools: activeTools,
|
@@ -4546,7 +4581,7 @@ function streamText({
|
|
4546
4581
|
maxSteps,
|
4547
4582
|
output,
|
4548
4583
|
continueSteps,
|
4549
|
-
|
4584
|
+
providerOptions,
|
4550
4585
|
onChunk,
|
4551
4586
|
onFinish,
|
4552
4587
|
onStepFinish,
|
@@ -4627,7 +4662,7 @@ var DefaultStreamTextResult = class {
|
|
4627
4662
|
maxSteps,
|
4628
4663
|
output,
|
4629
4664
|
continueSteps,
|
4630
|
-
|
4665
|
+
providerOptions,
|
4631
4666
|
onChunk,
|
4632
4667
|
onFinish,
|
4633
4668
|
onStepFinish,
|
@@ -4955,7 +4990,7 @@ var DefaultStreamTextResult = class {
|
|
4955
4990
|
inputFormat: promptFormat,
|
4956
4991
|
responseFormat: output == null ? void 0 : output.responseFormat({ model }),
|
4957
4992
|
prompt: promptMessages,
|
4958
|
-
providerMetadata,
|
4993
|
+
providerMetadata: providerOptions,
|
4959
4994
|
abortSignal,
|
4960
4995
|
headers
|
4961
4996
|
})
|
@@ -5705,41 +5740,62 @@ function appendClientMessage({
|
|
5705
5740
|
}
|
5706
5741
|
|
5707
5742
|
// core/prompt/append-response-messages.ts
|
5743
|
+
import {
|
5744
|
+
extractMaxToolInvocationStep
|
5745
|
+
} from "@ai-sdk/ui-utils";
|
5708
5746
|
function appendResponseMessages({
|
5709
5747
|
messages,
|
5710
5748
|
responseMessages
|
5711
5749
|
}) {
|
5712
|
-
var _a15;
|
5750
|
+
var _a15, _b;
|
5713
5751
|
const clonedMessages = structuredClone(messages);
|
5714
5752
|
for (const message of responseMessages) {
|
5715
5753
|
const role = message.role;
|
5754
|
+
const lastMessage = clonedMessages[clonedMessages.length - 1];
|
5755
|
+
const isLastMessageAssistant = lastMessage.role === "assistant";
|
5716
5756
|
switch (role) {
|
5717
5757
|
case "assistant": {
|
5718
|
-
|
5719
|
-
|
5720
|
-
id: message.id,
|
5721
|
-
createdAt: /* @__PURE__ */ new Date(),
|
5722
|
-
// generate a createdAt date for the message, will be overridden by the client
|
5723
|
-
// only include text in the content:
|
5724
|
-
content: typeof message.content === "string" ? message.content : message.content.filter((part) => part.type === "text").map((part) => part.text).join(""),
|
5725
|
-
// separate tool calls from the content:
|
5726
|
-
toolInvocations: (typeof message.content === "string" ? [] : message.content.filter((part) => part.type === "tool-call")).map((call) => ({
|
5758
|
+
let getToolInvocations2 = function(step) {
|
5759
|
+
return (typeof message.content === "string" ? [] : message.content.filter((part) => part.type === "tool-call")).map((call) => ({
|
5727
5760
|
state: "call",
|
5728
|
-
|
5729
|
-
|
5730
|
-
|
5761
|
+
step,
|
5762
|
+
args: call.args,
|
5763
|
+
toolCallId: call.toolCallId,
|
5764
|
+
toolName: call.toolName
|
5765
|
+
}));
|
5766
|
+
};
|
5767
|
+
var getToolInvocations = getToolInvocations2;
|
5768
|
+
const textContent = typeof message.content === "string" ? message.content : message.content.filter((part) => part.type === "text").map((part) => part.text).join("");
|
5769
|
+
if (isLastMessageAssistant) {
|
5770
|
+
const maxStep = extractMaxToolInvocationStep(
|
5771
|
+
lastMessage.toolInvocations
|
5772
|
+
);
|
5773
|
+
lastMessage.content = textContent;
|
5774
|
+
lastMessage.toolInvocations = [
|
5775
|
+
...(_a15 = lastMessage.toolInvocations) != null ? _a15 : [],
|
5776
|
+
...getToolInvocations2(maxStep === void 0 ? 0 : maxStep + 1)
|
5777
|
+
];
|
5778
|
+
} else {
|
5779
|
+
clonedMessages.push({
|
5780
|
+
role: "assistant",
|
5781
|
+
id: message.id,
|
5782
|
+
createdAt: /* @__PURE__ */ new Date(),
|
5783
|
+
// generate a createdAt date for the message, will be overridden by the client
|
5784
|
+
content: textContent,
|
5785
|
+
toolInvocations: getToolInvocations2(0)
|
5786
|
+
});
|
5787
|
+
}
|
5731
5788
|
break;
|
5732
5789
|
}
|
5733
5790
|
case "tool": {
|
5734
|
-
|
5735
|
-
(
|
5736
|
-
if (previousMessage.role !== "assistant") {
|
5791
|
+
(_b = lastMessage.toolInvocations) != null ? _b : lastMessage.toolInvocations = [];
|
5792
|
+
if (lastMessage.role !== "assistant") {
|
5737
5793
|
throw new Error(
|
5738
|
-
`Tool result must follow an assistant message: ${
|
5794
|
+
`Tool result must follow an assistant message: ${lastMessage.role}`
|
5739
5795
|
);
|
5740
5796
|
}
|
5741
5797
|
for (const part of message.content) {
|
5742
|
-
const toolCall =
|
5798
|
+
const toolCall = lastMessage.toolInvocations.find(
|
5743
5799
|
(call) => call.toolCallId === part.toolCallId
|
5744
5800
|
);
|
5745
5801
|
if (!toolCall) {
|