ai 5.0.36 → 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 +6 -0
- package/dist/index.d.mts +52 -32
- package/dist/index.d.ts +52 -32
- package/dist/index.js +200 -189
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +200 -189
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -5683,17 +5683,217 @@ var DefaultStreamTextResult = class {
|
|
5683
5683
|
}
|
5684
5684
|
};
|
5685
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
|
+
|
5686
5875
|
// src/agent/agent.ts
|
5687
5876
|
var Agent = class {
|
5688
5877
|
constructor(settings) {
|
5689
5878
|
this.settings = settings;
|
5690
5879
|
}
|
5880
|
+
get tools() {
|
5881
|
+
return this.settings.tools;
|
5882
|
+
}
|
5691
5883
|
async generate(options) {
|
5692
5884
|
return generateText({ ...this.settings, ...options });
|
5693
5885
|
}
|
5694
5886
|
stream(options) {
|
5695
5887
|
return streamText({ ...this.settings, ...options });
|
5696
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
|
+
}
|
5697
5897
|
};
|
5698
5898
|
|
5699
5899
|
// src/embed/embed.ts
|
@@ -9600,195 +9800,6 @@ var AbstractChat = class {
|
|
9600
9800
|
}
|
9601
9801
|
};
|
9602
9802
|
|
9603
|
-
// src/ui/convert-to-model-messages.ts
|
9604
|
-
function convertToModelMessages(messages, options) {
|
9605
|
-
const modelMessages = [];
|
9606
|
-
if (options == null ? void 0 : options.ignoreIncompleteToolCalls) {
|
9607
|
-
messages = messages.map((message) => ({
|
9608
|
-
...message,
|
9609
|
-
parts: message.parts.filter(
|
9610
|
-
(part) => !isToolOrDynamicToolUIPart(part) || part.state !== "input-streaming" && part.state !== "input-available"
|
9611
|
-
)
|
9612
|
-
}));
|
9613
|
-
}
|
9614
|
-
for (const message of messages) {
|
9615
|
-
switch (message.role) {
|
9616
|
-
case "system": {
|
9617
|
-
const textParts = message.parts.filter((part) => part.type === "text");
|
9618
|
-
const providerMetadata = textParts.reduce((acc, part) => {
|
9619
|
-
if (part.providerMetadata != null) {
|
9620
|
-
return { ...acc, ...part.providerMetadata };
|
9621
|
-
}
|
9622
|
-
return acc;
|
9623
|
-
}, {});
|
9624
|
-
modelMessages.push({
|
9625
|
-
role: "system",
|
9626
|
-
content: textParts.map((part) => part.text).join(""),
|
9627
|
-
...Object.keys(providerMetadata).length > 0 ? { providerOptions: providerMetadata } : {}
|
9628
|
-
});
|
9629
|
-
break;
|
9630
|
-
}
|
9631
|
-
case "user": {
|
9632
|
-
modelMessages.push({
|
9633
|
-
role: "user",
|
9634
|
-
content: message.parts.filter(
|
9635
|
-
(part) => part.type === "text" || part.type === "file"
|
9636
|
-
).map((part) => {
|
9637
|
-
switch (part.type) {
|
9638
|
-
case "text":
|
9639
|
-
return {
|
9640
|
-
type: "text",
|
9641
|
-
text: part.text,
|
9642
|
-
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
9643
|
-
};
|
9644
|
-
case "file":
|
9645
|
-
return {
|
9646
|
-
type: "file",
|
9647
|
-
mediaType: part.mediaType,
|
9648
|
-
filename: part.filename,
|
9649
|
-
data: part.url,
|
9650
|
-
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
9651
|
-
};
|
9652
|
-
default:
|
9653
|
-
return part;
|
9654
|
-
}
|
9655
|
-
})
|
9656
|
-
});
|
9657
|
-
break;
|
9658
|
-
}
|
9659
|
-
case "assistant": {
|
9660
|
-
if (message.parts != null) {
|
9661
|
-
let processBlock2 = function() {
|
9662
|
-
var _a17, _b;
|
9663
|
-
if (block.length === 0) {
|
9664
|
-
return;
|
9665
|
-
}
|
9666
|
-
const content = [];
|
9667
|
-
for (const part of block) {
|
9668
|
-
if (part.type === "text") {
|
9669
|
-
content.push({
|
9670
|
-
type: "text",
|
9671
|
-
text: part.text,
|
9672
|
-
...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
|
9673
|
-
});
|
9674
|
-
} else if (part.type === "file") {
|
9675
|
-
content.push({
|
9676
|
-
type: "file",
|
9677
|
-
mediaType: part.mediaType,
|
9678
|
-
filename: part.filename,
|
9679
|
-
data: part.url
|
9680
|
-
});
|
9681
|
-
} else if (part.type === "reasoning") {
|
9682
|
-
content.push({
|
9683
|
-
type: "reasoning",
|
9684
|
-
text: part.text,
|
9685
|
-
providerOptions: part.providerMetadata
|
9686
|
-
});
|
9687
|
-
} else if (part.type === "dynamic-tool") {
|
9688
|
-
const toolName = part.toolName;
|
9689
|
-
if (part.state !== "input-streaming") {
|
9690
|
-
content.push({
|
9691
|
-
type: "tool-call",
|
9692
|
-
toolCallId: part.toolCallId,
|
9693
|
-
toolName,
|
9694
|
-
input: part.input,
|
9695
|
-
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
9696
|
-
});
|
9697
|
-
}
|
9698
|
-
} else if (isToolUIPart(part)) {
|
9699
|
-
const toolName = getToolName(part);
|
9700
|
-
if (part.state !== "input-streaming") {
|
9701
|
-
content.push({
|
9702
|
-
type: "tool-call",
|
9703
|
-
toolCallId: part.toolCallId,
|
9704
|
-
toolName,
|
9705
|
-
input: part.state === "output-error" ? (_a17 = part.input) != null ? _a17 : part.rawInput : part.input,
|
9706
|
-
providerExecuted: part.providerExecuted,
|
9707
|
-
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
9708
|
-
});
|
9709
|
-
if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
|
9710
|
-
content.push({
|
9711
|
-
type: "tool-result",
|
9712
|
-
toolCallId: part.toolCallId,
|
9713
|
-
toolName,
|
9714
|
-
output: createToolModelOutput({
|
9715
|
-
output: part.state === "output-error" ? part.errorText : part.output,
|
9716
|
-
tool: (_b = options == null ? void 0 : options.tools) == null ? void 0 : _b[toolName],
|
9717
|
-
errorMode: part.state === "output-error" ? "json" : "none"
|
9718
|
-
})
|
9719
|
-
});
|
9720
|
-
}
|
9721
|
-
}
|
9722
|
-
} else {
|
9723
|
-
const _exhaustiveCheck = part;
|
9724
|
-
throw new Error(`Unsupported part: ${_exhaustiveCheck}`);
|
9725
|
-
}
|
9726
|
-
}
|
9727
|
-
modelMessages.push({
|
9728
|
-
role: "assistant",
|
9729
|
-
content
|
9730
|
-
});
|
9731
|
-
const toolParts = block.filter(
|
9732
|
-
(part) => isToolUIPart(part) && part.providerExecuted !== true || part.type === "dynamic-tool"
|
9733
|
-
);
|
9734
|
-
if (toolParts.length > 0) {
|
9735
|
-
modelMessages.push({
|
9736
|
-
role: "tool",
|
9737
|
-
content: toolParts.map((toolPart) => {
|
9738
|
-
var _a18;
|
9739
|
-
switch (toolPart.state) {
|
9740
|
-
case "output-error":
|
9741
|
-
case "output-available": {
|
9742
|
-
const toolName = toolPart.type === "dynamic-tool" ? toolPart.toolName : getToolName(toolPart);
|
9743
|
-
return {
|
9744
|
-
type: "tool-result",
|
9745
|
-
toolCallId: toolPart.toolCallId,
|
9746
|
-
toolName,
|
9747
|
-
output: createToolModelOutput({
|
9748
|
-
output: toolPart.state === "output-error" ? toolPart.errorText : toolPart.output,
|
9749
|
-
tool: (_a18 = options == null ? void 0 : options.tools) == null ? void 0 : _a18[toolName],
|
9750
|
-
errorMode: toolPart.state === "output-error" ? "text" : "none"
|
9751
|
-
})
|
9752
|
-
};
|
9753
|
-
}
|
9754
|
-
default: {
|
9755
|
-
return null;
|
9756
|
-
}
|
9757
|
-
}
|
9758
|
-
}).filter(
|
9759
|
-
(output) => output != null
|
9760
|
-
)
|
9761
|
-
});
|
9762
|
-
}
|
9763
|
-
block = [];
|
9764
|
-
};
|
9765
|
-
var processBlock = processBlock2;
|
9766
|
-
let block = [];
|
9767
|
-
for (const part of message.parts) {
|
9768
|
-
if (part.type === "text" || part.type === "reasoning" || part.type === "file" || part.type === "dynamic-tool" || isToolUIPart(part)) {
|
9769
|
-
block.push(part);
|
9770
|
-
} else if (part.type === "step-start") {
|
9771
|
-
processBlock2();
|
9772
|
-
}
|
9773
|
-
}
|
9774
|
-
processBlock2();
|
9775
|
-
break;
|
9776
|
-
}
|
9777
|
-
break;
|
9778
|
-
}
|
9779
|
-
default: {
|
9780
|
-
const _exhaustiveCheck = message.role;
|
9781
|
-
throw new MessageConversionError({
|
9782
|
-
originalMessage: message,
|
9783
|
-
message: `Unsupported role: ${_exhaustiveCheck}`
|
9784
|
-
});
|
9785
|
-
}
|
9786
|
-
}
|
9787
|
-
}
|
9788
|
-
return modelMessages;
|
9789
|
-
}
|
9790
|
-
var convertToCoreMessages = convertToModelMessages;
|
9791
|
-
|
9792
9803
|
// src/ui/last-assistant-message-is-complete-with-tool-calls.ts
|
9793
9804
|
function lastAssistantMessageIsCompleteWithToolCalls({
|
9794
9805
|
messages
|