ai 5.0.14 → 5.0.16
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 +19 -1
- package/dist/index.d.ts +19 -1
- package/dist/index.js +228 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +218 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
@@ -9670,6 +9670,223 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
9670
9670
|
}
|
9671
9671
|
};
|
9672
9672
|
|
9673
|
+
// src/ui/validate-ui-messages.ts
|
9674
|
+
import { TypeValidationError as TypeValidationError4 } from "@ai-sdk/provider";
|
9675
|
+
import {
|
9676
|
+
validateTypes as validateTypes2
|
9677
|
+
} from "@ai-sdk/provider-utils";
|
9678
|
+
import { z as z10 } from "zod/v4";
|
9679
|
+
var textUIPartSchema = z10.object({
|
9680
|
+
type: z10.literal("text"),
|
9681
|
+
text: z10.string(),
|
9682
|
+
state: z10.enum(["streaming", "done"]).optional(),
|
9683
|
+
providerMetadata: providerMetadataSchema.optional()
|
9684
|
+
});
|
9685
|
+
var reasoningUIPartSchema = z10.object({
|
9686
|
+
type: z10.literal("reasoning"),
|
9687
|
+
text: z10.string(),
|
9688
|
+
state: z10.enum(["streaming", "done"]).optional(),
|
9689
|
+
providerMetadata: providerMetadataSchema.optional()
|
9690
|
+
});
|
9691
|
+
var sourceUrlUIPartSchema = z10.object({
|
9692
|
+
type: z10.literal("source-url"),
|
9693
|
+
sourceId: z10.string(),
|
9694
|
+
url: z10.string(),
|
9695
|
+
title: z10.string().optional(),
|
9696
|
+
providerMetadata: providerMetadataSchema.optional()
|
9697
|
+
});
|
9698
|
+
var sourceDocumentUIPartSchema = z10.object({
|
9699
|
+
type: z10.literal("source-document"),
|
9700
|
+
sourceId: z10.string(),
|
9701
|
+
mediaType: z10.string(),
|
9702
|
+
title: z10.string(),
|
9703
|
+
filename: z10.string().optional(),
|
9704
|
+
providerMetadata: providerMetadataSchema.optional()
|
9705
|
+
});
|
9706
|
+
var fileUIPartSchema = z10.object({
|
9707
|
+
type: z10.literal("file"),
|
9708
|
+
mediaType: z10.string(),
|
9709
|
+
filename: z10.string().optional(),
|
9710
|
+
url: z10.string(),
|
9711
|
+
providerMetadata: providerMetadataSchema.optional()
|
9712
|
+
});
|
9713
|
+
var stepStartUIPartSchema = z10.object({
|
9714
|
+
type: z10.literal("step-start")
|
9715
|
+
});
|
9716
|
+
var dataUIPartSchema = z10.object({
|
9717
|
+
type: z10.string().startsWith("data-"),
|
9718
|
+
id: z10.string().optional(),
|
9719
|
+
data: z10.unknown()
|
9720
|
+
});
|
9721
|
+
var dynamicToolUIPartSchemas = [
|
9722
|
+
z10.object({
|
9723
|
+
type: z10.literal("dynamic-tool"),
|
9724
|
+
toolName: z10.string(),
|
9725
|
+
toolCallId: z10.string(),
|
9726
|
+
state: z10.literal("input-streaming"),
|
9727
|
+
input: z10.unknown().optional(),
|
9728
|
+
output: z10.never().optional(),
|
9729
|
+
errorText: z10.never().optional()
|
9730
|
+
}),
|
9731
|
+
z10.object({
|
9732
|
+
type: z10.literal("dynamic-tool"),
|
9733
|
+
toolName: z10.string(),
|
9734
|
+
toolCallId: z10.string(),
|
9735
|
+
state: z10.literal("input-available"),
|
9736
|
+
input: z10.unknown(),
|
9737
|
+
output: z10.never().optional(),
|
9738
|
+
errorText: z10.never().optional(),
|
9739
|
+
callProviderMetadata: providerMetadataSchema.optional()
|
9740
|
+
}),
|
9741
|
+
z10.object({
|
9742
|
+
type: z10.literal("dynamic-tool"),
|
9743
|
+
toolName: z10.string(),
|
9744
|
+
toolCallId: z10.string(),
|
9745
|
+
state: z10.literal("output-available"),
|
9746
|
+
input: z10.unknown(),
|
9747
|
+
output: z10.unknown(),
|
9748
|
+
errorText: z10.never().optional(),
|
9749
|
+
callProviderMetadata: providerMetadataSchema.optional(),
|
9750
|
+
preliminary: z10.boolean().optional()
|
9751
|
+
}),
|
9752
|
+
z10.object({
|
9753
|
+
type: z10.literal("dynamic-tool"),
|
9754
|
+
toolName: z10.string(),
|
9755
|
+
toolCallId: z10.string(),
|
9756
|
+
state: z10.literal("output-error"),
|
9757
|
+
input: z10.unknown(),
|
9758
|
+
output: z10.never().optional(),
|
9759
|
+
errorText: z10.string(),
|
9760
|
+
callProviderMetadata: providerMetadataSchema.optional()
|
9761
|
+
})
|
9762
|
+
];
|
9763
|
+
var toolUIPartSchemas = [
|
9764
|
+
z10.object({
|
9765
|
+
type: z10.string().startsWith("tool-"),
|
9766
|
+
toolCallId: z10.string(),
|
9767
|
+
state: z10.literal("input-streaming"),
|
9768
|
+
input: z10.unknown().optional(),
|
9769
|
+
output: z10.never().optional(),
|
9770
|
+
errorText: z10.never().optional()
|
9771
|
+
}),
|
9772
|
+
z10.object({
|
9773
|
+
type: z10.string().startsWith("tool-"),
|
9774
|
+
toolCallId: z10.string(),
|
9775
|
+
state: z10.literal("input-available"),
|
9776
|
+
input: z10.unknown(),
|
9777
|
+
output: z10.never().optional(),
|
9778
|
+
errorText: z10.never().optional(),
|
9779
|
+
callProviderMetadata: providerMetadataSchema.optional()
|
9780
|
+
}),
|
9781
|
+
z10.object({
|
9782
|
+
type: z10.string().startsWith("tool-"),
|
9783
|
+
toolCallId: z10.string(),
|
9784
|
+
state: z10.literal("output-available"),
|
9785
|
+
input: z10.unknown(),
|
9786
|
+
output: z10.unknown(),
|
9787
|
+
errorText: z10.never().optional(),
|
9788
|
+
callProviderMetadata: providerMetadataSchema.optional(),
|
9789
|
+
preliminary: z10.boolean().optional()
|
9790
|
+
}),
|
9791
|
+
z10.object({
|
9792
|
+
type: z10.string().startsWith("tool-"),
|
9793
|
+
toolCallId: z10.string(),
|
9794
|
+
state: z10.literal("output-error"),
|
9795
|
+
input: z10.unknown(),
|
9796
|
+
output: z10.never().optional(),
|
9797
|
+
errorText: z10.string(),
|
9798
|
+
callProviderMetadata: providerMetadataSchema.optional()
|
9799
|
+
})
|
9800
|
+
];
|
9801
|
+
var uiMessageSchema = z10.object({
|
9802
|
+
id: z10.string(),
|
9803
|
+
role: z10.enum(["system", "user", "assistant"]),
|
9804
|
+
metadata: z10.unknown().optional(),
|
9805
|
+
parts: z10.array(
|
9806
|
+
z10.union([
|
9807
|
+
textUIPartSchema,
|
9808
|
+
reasoningUIPartSchema,
|
9809
|
+
sourceUrlUIPartSchema,
|
9810
|
+
sourceDocumentUIPartSchema,
|
9811
|
+
fileUIPartSchema,
|
9812
|
+
stepStartUIPartSchema,
|
9813
|
+
dataUIPartSchema,
|
9814
|
+
...dynamicToolUIPartSchemas,
|
9815
|
+
...toolUIPartSchemas
|
9816
|
+
])
|
9817
|
+
)
|
9818
|
+
});
|
9819
|
+
async function validateUIMessages({
|
9820
|
+
messages,
|
9821
|
+
metadataSchema,
|
9822
|
+
dataSchemas,
|
9823
|
+
tools
|
9824
|
+
}) {
|
9825
|
+
const validatedMessages = await validateTypes2({
|
9826
|
+
value: messages,
|
9827
|
+
schema: z10.array(uiMessageSchema)
|
9828
|
+
});
|
9829
|
+
if (metadataSchema) {
|
9830
|
+
for (const message of validatedMessages) {
|
9831
|
+
await validateTypes2({
|
9832
|
+
value: message.metadata,
|
9833
|
+
schema: metadataSchema
|
9834
|
+
});
|
9835
|
+
}
|
9836
|
+
}
|
9837
|
+
if (dataSchemas) {
|
9838
|
+
for (const message of validatedMessages) {
|
9839
|
+
const dataParts = message.parts.filter(
|
9840
|
+
(part) => part.type.startsWith("data-")
|
9841
|
+
);
|
9842
|
+
for (const dataPart of dataParts) {
|
9843
|
+
const dataName = dataPart.type.slice(5);
|
9844
|
+
const dataSchema = dataSchemas[dataName];
|
9845
|
+
if (!dataSchema) {
|
9846
|
+
throw new TypeValidationError4({
|
9847
|
+
value: dataPart.data,
|
9848
|
+
cause: `No data schema found for data part ${dataName}`
|
9849
|
+
});
|
9850
|
+
}
|
9851
|
+
await validateTypes2({
|
9852
|
+
value: dataPart.data,
|
9853
|
+
schema: dataSchema
|
9854
|
+
});
|
9855
|
+
}
|
9856
|
+
}
|
9857
|
+
}
|
9858
|
+
if (tools) {
|
9859
|
+
for (const message of validatedMessages) {
|
9860
|
+
const toolParts = message.parts.filter(
|
9861
|
+
(part) => part.type.startsWith("tool-")
|
9862
|
+
);
|
9863
|
+
for (const toolPart of toolParts) {
|
9864
|
+
const toolName = toolPart.type.slice(5);
|
9865
|
+
const tool3 = tools[toolName];
|
9866
|
+
if (!tool3) {
|
9867
|
+
throw new TypeValidationError4({
|
9868
|
+
value: toolPart.input,
|
9869
|
+
cause: `No tool schema found for tool part ${toolName}`
|
9870
|
+
});
|
9871
|
+
}
|
9872
|
+
if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
|
9873
|
+
await validateTypes2({
|
9874
|
+
value: toolPart.input,
|
9875
|
+
schema: tool3.inputSchema
|
9876
|
+
});
|
9877
|
+
}
|
9878
|
+
if (toolPart.state === "output-available" && tool3.outputSchema) {
|
9879
|
+
await validateTypes2({
|
9880
|
+
value: toolPart.output,
|
9881
|
+
schema: tool3.outputSchema
|
9882
|
+
});
|
9883
|
+
}
|
9884
|
+
}
|
9885
|
+
}
|
9886
|
+
}
|
9887
|
+
return validatedMessages;
|
9888
|
+
}
|
9889
|
+
|
9673
9890
|
// src/ui-message-stream/create-ui-message-stream.ts
|
9674
9891
|
import {
|
9675
9892
|
generateId as generateIdFunc2,
|
@@ -9899,6 +10116,7 @@ export {
|
|
9899
10116
|
tool2 as tool,
|
9900
10117
|
toolModelMessageSchema,
|
9901
10118
|
userModelMessageSchema,
|
10119
|
+
validateUIMessages,
|
9902
10120
|
wrapLanguageModel,
|
9903
10121
|
wrapProvider,
|
9904
10122
|
zodSchema
|