ai 5.0.35 → 5.0.37
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 +12 -0
- package/dist/index.d.mts +53 -32
- package/dist/index.d.ts +53 -32
- package/dist/index.js +203 -189
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +202 -189
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -5,6 +5,7 @@ var __export = (target, all) => {
|
|
5
5
|
};
|
6
6
|
|
7
7
|
// src/index.ts
|
8
|
+
import { gateway as gateway2 } from "@ai-sdk/gateway";
|
8
9
|
import {
|
9
10
|
asSchema as asSchema5,
|
10
11
|
createIdGenerator as createIdGenerator5,
|
@@ -5682,17 +5683,217 @@ var DefaultStreamTextResult = class {
|
|
5682
5683
|
}
|
5683
5684
|
};
|
5684
5685
|
|
5686
|
+
// src/ui/convert-to-model-messages.ts
|
5687
|
+
function convertToModelMessages(messages, options) {
|
5688
|
+
const modelMessages = [];
|
5689
|
+
if (options == null ? void 0 : options.ignoreIncompleteToolCalls) {
|
5690
|
+
messages = messages.map((message) => ({
|
5691
|
+
...message,
|
5692
|
+
parts: message.parts.filter(
|
5693
|
+
(part) => !isToolOrDynamicToolUIPart(part) || part.state !== "input-streaming" && part.state !== "input-available"
|
5694
|
+
)
|
5695
|
+
}));
|
5696
|
+
}
|
5697
|
+
for (const message of messages) {
|
5698
|
+
switch (message.role) {
|
5699
|
+
case "system": {
|
5700
|
+
const textParts = message.parts.filter((part) => part.type === "text");
|
5701
|
+
const providerMetadata = textParts.reduce((acc, part) => {
|
5702
|
+
if (part.providerMetadata != null) {
|
5703
|
+
return { ...acc, ...part.providerMetadata };
|
5704
|
+
}
|
5705
|
+
return acc;
|
5706
|
+
}, {});
|
5707
|
+
modelMessages.push({
|
5708
|
+
role: "system",
|
5709
|
+
content: textParts.map((part) => part.text).join(""),
|
5710
|
+
...Object.keys(providerMetadata).length > 0 ? { providerOptions: providerMetadata } : {}
|
5711
|
+
});
|
5712
|
+
break;
|
5713
|
+
}
|
5714
|
+
case "user": {
|
5715
|
+
modelMessages.push({
|
5716
|
+
role: "user",
|
5717
|
+
content: message.parts.filter(
|
5718
|
+
(part) => part.type === "text" || part.type === "file"
|
5719
|
+
).map((part) => {
|
5720
|
+
switch (part.type) {
|
5721
|
+
case "text":
|
5722
|
+
return {
|
5723
|
+
type: "text",
|
5724
|
+
text: part.text,
|
5725
|
+
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
5726
|
+
};
|
5727
|
+
case "file":
|
5728
|
+
return {
|
5729
|
+
type: "file",
|
5730
|
+
mediaType: part.mediaType,
|
5731
|
+
filename: part.filename,
|
5732
|
+
data: part.url,
|
5733
|
+
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
5734
|
+
};
|
5735
|
+
default:
|
5736
|
+
return part;
|
5737
|
+
}
|
5738
|
+
})
|
5739
|
+
});
|
5740
|
+
break;
|
5741
|
+
}
|
5742
|
+
case "assistant": {
|
5743
|
+
if (message.parts != null) {
|
5744
|
+
let processBlock2 = function() {
|
5745
|
+
var _a17, _b;
|
5746
|
+
if (block.length === 0) {
|
5747
|
+
return;
|
5748
|
+
}
|
5749
|
+
const content = [];
|
5750
|
+
for (const part of block) {
|
5751
|
+
if (part.type === "text") {
|
5752
|
+
content.push({
|
5753
|
+
type: "text",
|
5754
|
+
text: part.text,
|
5755
|
+
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
5756
|
+
});
|
5757
|
+
} else if (part.type === "file") {
|
5758
|
+
content.push({
|
5759
|
+
type: "file",
|
5760
|
+
mediaType: part.mediaType,
|
5761
|
+
filename: part.filename,
|
5762
|
+
data: part.url
|
5763
|
+
});
|
5764
|
+
} else if (part.type === "reasoning") {
|
5765
|
+
content.push({
|
5766
|
+
type: "reasoning",
|
5767
|
+
text: part.text,
|
5768
|
+
providerOptions: part.providerMetadata
|
5769
|
+
});
|
5770
|
+
} else if (part.type === "dynamic-tool") {
|
5771
|
+
const toolName = part.toolName;
|
5772
|
+
if (part.state !== "input-streaming") {
|
5773
|
+
content.push({
|
5774
|
+
type: "tool-call",
|
5775
|
+
toolCallId: part.toolCallId,
|
5776
|
+
toolName,
|
5777
|
+
input: part.input,
|
5778
|
+
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
5779
|
+
});
|
5780
|
+
}
|
5781
|
+
} else if (isToolUIPart(part)) {
|
5782
|
+
const toolName = getToolName(part);
|
5783
|
+
if (part.state !== "input-streaming") {
|
5784
|
+
content.push({
|
5785
|
+
type: "tool-call",
|
5786
|
+
toolCallId: part.toolCallId,
|
5787
|
+
toolName,
|
5788
|
+
input: part.state === "output-error" ? (_a17 = part.input) != null ? _a17 : part.rawInput : part.input,
|
5789
|
+
providerExecuted: part.providerExecuted,
|
5790
|
+
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
5791
|
+
});
|
5792
|
+
if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
|
5793
|
+
content.push({
|
5794
|
+
type: "tool-result",
|
5795
|
+
toolCallId: part.toolCallId,
|
5796
|
+
toolName,
|
5797
|
+
output: createToolModelOutput({
|
5798
|
+
output: part.state === "output-error" ? part.errorText : part.output,
|
5799
|
+
tool: (_b = options == null ? void 0 : options.tools) == null ? void 0 : _b[toolName],
|
5800
|
+
errorMode: part.state === "output-error" ? "json" : "none"
|
5801
|
+
})
|
5802
|
+
});
|
5803
|
+
}
|
5804
|
+
}
|
5805
|
+
} else {
|
5806
|
+
const _exhaustiveCheck = part;
|
5807
|
+
throw new Error(`Unsupported part: ${_exhaustiveCheck}`);
|
5808
|
+
}
|
5809
|
+
}
|
5810
|
+
modelMessages.push({
|
5811
|
+
role: "assistant",
|
5812
|
+
content
|
5813
|
+
});
|
5814
|
+
const toolParts = block.filter(
|
5815
|
+
(part) => isToolUIPart(part) && part.providerExecuted !== true || part.type === "dynamic-tool"
|
5816
|
+
);
|
5817
|
+
if (toolParts.length > 0) {
|
5818
|
+
modelMessages.push({
|
5819
|
+
role: "tool",
|
5820
|
+
content: toolParts.map((toolPart) => {
|
5821
|
+
var _a18;
|
5822
|
+
switch (toolPart.state) {
|
5823
|
+
case "output-error":
|
5824
|
+
case "output-available": {
|
5825
|
+
const toolName = toolPart.type === "dynamic-tool" ? toolPart.toolName : getToolName(toolPart);
|
5826
|
+
return {
|
5827
|
+
type: "tool-result",
|
5828
|
+
toolCallId: toolPart.toolCallId,
|
5829
|
+
toolName,
|
5830
|
+
output: createToolModelOutput({
|
5831
|
+
output: toolPart.state === "output-error" ? toolPart.errorText : toolPart.output,
|
5832
|
+
tool: (_a18 = options == null ? void 0 : options.tools) == null ? void 0 : _a18[toolName],
|
5833
|
+
errorMode: toolPart.state === "output-error" ? "text" : "none"
|
5834
|
+
})
|
5835
|
+
};
|
5836
|
+
}
|
5837
|
+
default: {
|
5838
|
+
return null;
|
5839
|
+
}
|
5840
|
+
}
|
5841
|
+
}).filter(
|
5842
|
+
(output) => output != null
|
5843
|
+
)
|
5844
|
+
});
|
5845
|
+
}
|
5846
|
+
block = [];
|
5847
|
+
};
|
5848
|
+
var processBlock = processBlock2;
|
5849
|
+
let block = [];
|
5850
|
+
for (const part of message.parts) {
|
5851
|
+
if (part.type === "text" || part.type === "reasoning" || part.type === "file" || part.type === "dynamic-tool" || isToolUIPart(part)) {
|
5852
|
+
block.push(part);
|
5853
|
+
} else if (part.type === "step-start") {
|
5854
|
+
processBlock2();
|
5855
|
+
}
|
5856
|
+
}
|
5857
|
+
processBlock2();
|
5858
|
+
break;
|
5859
|
+
}
|
5860
|
+
break;
|
5861
|
+
}
|
5862
|
+
default: {
|
5863
|
+
const _exhaustiveCheck = message.role;
|
5864
|
+
throw new MessageConversionError({
|
5865
|
+
originalMessage: message,
|
5866
|
+
message: `Unsupported role: ${_exhaustiveCheck}`
|
5867
|
+
});
|
5868
|
+
}
|
5869
|
+
}
|
5870
|
+
}
|
5871
|
+
return modelMessages;
|
5872
|
+
}
|
5873
|
+
var convertToCoreMessages = convertToModelMessages;
|
5874
|
+
|
5685
5875
|
// src/agent/agent.ts
|
5686
5876
|
var Agent = class {
|
5687
5877
|
constructor(settings) {
|
5688
5878
|
this.settings = settings;
|
5689
5879
|
}
|
5880
|
+
get tools() {
|
5881
|
+
return this.settings.tools;
|
5882
|
+
}
|
5690
5883
|
async generate(options) {
|
5691
5884
|
return generateText({ ...this.settings, ...options });
|
5692
5885
|
}
|
5693
5886
|
stream(options) {
|
5694
5887
|
return streamText({ ...this.settings, ...options });
|
5695
5888
|
}
|
5889
|
+
/**
|
5890
|
+
* Creates a response object that streams UI messages to the client.
|
5891
|
+
*/
|
5892
|
+
respond(options) {
|
5893
|
+
return this.stream({
|
5894
|
+
prompt: convertToModelMessages(options.messages)
|
5895
|
+
}).toUIMessageStreamResponse();
|
5896
|
+
}
|
5696
5897
|
};
|
5697
5898
|
|
5698
5899
|
// src/embed/embed.ts
|
@@ -9599,195 +9800,6 @@ var AbstractChat = class {
|
|
9599
9800
|
}
|
9600
9801
|
};
|
9601
9802
|
|
9602
|
-
// src/ui/convert-to-model-messages.ts
|
9603
|
-
function convertToModelMessages(messages, options) {
|
9604
|
-
const modelMessages = [];
|
9605
|
-
if (options == null ? void 0 : options.ignoreIncompleteToolCalls) {
|
9606
|
-
messages = messages.map((message) => ({
|
9607
|
-
...message,
|
9608
|
-
parts: message.parts.filter(
|
9609
|
-
(part) => !isToolOrDynamicToolUIPart(part) || part.state !== "input-streaming" && part.state !== "input-available"
|
9610
|
-
)
|
9611
|
-
}));
|
9612
|
-
}
|
9613
|
-
for (const message of messages) {
|
9614
|
-
switch (message.role) {
|
9615
|
-
case "system": {
|
9616
|
-
const textParts = message.parts.filter((part) => part.type === "text");
|
9617
|
-
const providerMetadata = textParts.reduce((acc, part) => {
|
9618
|
-
if (part.providerMetadata != null) {
|
9619
|
-
return { ...acc, ...part.providerMetadata };
|
9620
|
-
}
|
9621
|
-
return acc;
|
9622
|
-
}, {});
|
9623
|
-
modelMessages.push({
|
9624
|
-
role: "system",
|
9625
|
-
content: textParts.map((part) => part.text).join(""),
|
9626
|
-
...Object.keys(providerMetadata).length > 0 ? { providerOptions: providerMetadata } : {}
|
9627
|
-
});
|
9628
|
-
break;
|
9629
|
-
}
|
9630
|
-
case "user": {
|
9631
|
-
modelMessages.push({
|
9632
|
-
role: "user",
|
9633
|
-
content: message.parts.filter(
|
9634
|
-
(part) => part.type === "text" || part.type === "file"
|
9635
|
-
).map((part) => {
|
9636
|
-
switch (part.type) {
|
9637
|
-
case "text":
|
9638
|
-
return {
|
9639
|
-
type: "text",
|
9640
|
-
text: part.text,
|
9641
|
-
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
9642
|
-
};
|
9643
|
-
case "file":
|
9644
|
-
return {
|
9645
|
-
type: "file",
|
9646
|
-
mediaType: part.mediaType,
|
9647
|
-
filename: part.filename,
|
9648
|
-
data: part.url,
|
9649
|
-
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
9650
|
-
};
|
9651
|
-
default:
|
9652
|
-
return part;
|
9653
|
-
}
|
9654
|
-
})
|
9655
|
-
});
|
9656
|
-
break;
|
9657
|
-
}
|
9658
|
-
case "assistant": {
|
9659
|
-
if (message.parts != null) {
|
9660
|
-
let processBlock2 = function() {
|
9661
|
-
var _a17, _b;
|
9662
|
-
if (block.length === 0) {
|
9663
|
-
return;
|
9664
|
-
}
|
9665
|
-
const content = [];
|
9666
|
-
for (const part of block) {
|
9667
|
-
if (part.type === "text") {
|
9668
|
-
content.push({
|
9669
|
-
type: "text",
|
9670
|
-
text: part.text,
|
9671
|
-
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
9672
|
-
});
|
9673
|
-
} else if (part.type === "file") {
|
9674
|
-
content.push({
|
9675
|
-
type: "file",
|
9676
|
-
mediaType: part.mediaType,
|
9677
|
-
filename: part.filename,
|
9678
|
-
data: part.url
|
9679
|
-
});
|
9680
|
-
} else if (part.type === "reasoning") {
|
9681
|
-
content.push({
|
9682
|
-
type: "reasoning",
|
9683
|
-
text: part.text,
|
9684
|
-
providerOptions: part.providerMetadata
|
9685
|
-
});
|
9686
|
-
} else if (part.type === "dynamic-tool") {
|
9687
|
-
const toolName = part.toolName;
|
9688
|
-
if (part.state !== "input-streaming") {
|
9689
|
-
content.push({
|
9690
|
-
type: "tool-call",
|
9691
|
-
toolCallId: part.toolCallId,
|
9692
|
-
toolName,
|
9693
|
-
input: part.input,
|
9694
|
-
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
9695
|
-
});
|
9696
|
-
}
|
9697
|
-
} else if (isToolUIPart(part)) {
|
9698
|
-
const toolName = getToolName(part);
|
9699
|
-
if (part.state !== "input-streaming") {
|
9700
|
-
content.push({
|
9701
|
-
type: "tool-call",
|
9702
|
-
toolCallId: part.toolCallId,
|
9703
|
-
toolName,
|
9704
|
-
input: part.state === "output-error" ? (_a17 = part.input) != null ? _a17 : part.rawInput : part.input,
|
9705
|
-
providerExecuted: part.providerExecuted,
|
9706
|
-
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
9707
|
-
});
|
9708
|
-
if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
|
9709
|
-
content.push({
|
9710
|
-
type: "tool-result",
|
9711
|
-
toolCallId: part.toolCallId,
|
9712
|
-
toolName,
|
9713
|
-
output: createToolModelOutput({
|
9714
|
-
output: part.state === "output-error" ? part.errorText : part.output,
|
9715
|
-
tool: (_b = options == null ? void 0 : options.tools) == null ? void 0 : _b[toolName],
|
9716
|
-
errorMode: part.state === "output-error" ? "json" : "none"
|
9717
|
-
})
|
9718
|
-
});
|
9719
|
-
}
|
9720
|
-
}
|
9721
|
-
} else {
|
9722
|
-
const _exhaustiveCheck = part;
|
9723
|
-
throw new Error(`Unsupported part: ${_exhaustiveCheck}`);
|
9724
|
-
}
|
9725
|
-
}
|
9726
|
-
modelMessages.push({
|
9727
|
-
role: "assistant",
|
9728
|
-
content
|
9729
|
-
});
|
9730
|
-
const toolParts = block.filter(
|
9731
|
-
(part) => isToolUIPart(part) && part.providerExecuted !== true || part.type === "dynamic-tool"
|
9732
|
-
);
|
9733
|
-
if (toolParts.length > 0) {
|
9734
|
-
modelMessages.push({
|
9735
|
-
role: "tool",
|
9736
|
-
content: toolParts.map((toolPart) => {
|
9737
|
-
var _a18;
|
9738
|
-
switch (toolPart.state) {
|
9739
|
-
case "output-error":
|
9740
|
-
case "output-available": {
|
9741
|
-
const toolName = toolPart.type === "dynamic-tool" ? toolPart.toolName : getToolName(toolPart);
|
9742
|
-
return {
|
9743
|
-
type: "tool-result",
|
9744
|
-
toolCallId: toolPart.toolCallId,
|
9745
|
-
toolName,
|
9746
|
-
output: createToolModelOutput({
|
9747
|
-
output: toolPart.state === "output-error" ? toolPart.errorText : toolPart.output,
|
9748
|
-
tool: (_a18 = options == null ? void 0 : options.tools) == null ? void 0 : _a18[toolName],
|
9749
|
-
errorMode: toolPart.state === "output-error" ? "text" : "none"
|
9750
|
-
})
|
9751
|
-
};
|
9752
|
-
}
|
9753
|
-
default: {
|
9754
|
-
return null;
|
9755
|
-
}
|
9756
|
-
}
|
9757
|
-
}).filter(
|
9758
|
-
(output) => output != null
|
9759
|
-
)
|
9760
|
-
});
|
9761
|
-
}
|
9762
|
-
block = [];
|
9763
|
-
};
|
9764
|
-
var processBlock = processBlock2;
|
9765
|
-
let block = [];
|
9766
|
-
for (const part of message.parts) {
|
9767
|
-
if (part.type === "text" || part.type === "reasoning" || part.type === "file" || part.type === "dynamic-tool" || isToolUIPart(part)) {
|
9768
|
-
block.push(part);
|
9769
|
-
} else if (part.type === "step-start") {
|
9770
|
-
processBlock2();
|
9771
|
-
}
|
9772
|
-
}
|
9773
|
-
processBlock2();
|
9774
|
-
break;
|
9775
|
-
}
|
9776
|
-
break;
|
9777
|
-
}
|
9778
|
-
default: {
|
9779
|
-
const _exhaustiveCheck = message.role;
|
9780
|
-
throw new MessageConversionError({
|
9781
|
-
originalMessage: message,
|
9782
|
-
message: `Unsupported role: ${_exhaustiveCheck}`
|
9783
|
-
});
|
9784
|
-
}
|
9785
|
-
}
|
9786
|
-
}
|
9787
|
-
return modelMessages;
|
9788
|
-
}
|
9789
|
-
var convertToCoreMessages = convertToModelMessages;
|
9790
|
-
|
9791
9803
|
// src/ui/last-assistant-message-is-complete-with-tool-calls.ts
|
9792
9804
|
function lastAssistantMessageIsCompleteWithToolCalls({
|
9793
9805
|
messages
|
@@ -10270,6 +10282,7 @@ export {
|
|
10270
10282
|
generateSpeech as experimental_generateSpeech,
|
10271
10283
|
transcribe as experimental_transcribe,
|
10272
10284
|
extractReasoningMiddleware,
|
10285
|
+
gateway2 as gateway,
|
10273
10286
|
generateId2 as generateId,
|
10274
10287
|
generateObject,
|
10275
10288
|
generateText,
|