ai 5.0.0-canary.15 → 5.0.0-canary.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 CHANGED
@@ -1,5 +1,20 @@
1
1
  # ai
2
2
 
3
+ ## 5.0.0-canary.16
4
+
5
+ ### Major Changes
6
+
7
+ - ec78cdc: chore (ai): remove "data" UIMessage role
8
+ - 8b86e99: chore (ai): replace `Message` with `UIMessage`
9
+ - 2524fc7: chore (ai): remove ui message toolInvocations property
10
+ - 175b868: chore (ai): rename reasoning UI parts 'reasoning' property to 'text'
11
+
12
+ ### Patch Changes
13
+
14
+ - 9b4d074: feat(streamObject): add enum support
15
+ - 28ad69e: fix(react-native): support experimental_attachments without FileList global
16
+ - ec5933d: chore (ai/mcp): add `assertCapability` method to experimental MCP client
17
+
3
18
  ## 5.0.0-canary.15
4
19
 
5
20
  ### Major Changes
package/dist/index.d.mts CHANGED
@@ -273,7 +273,7 @@ interface Attachment {
273
273
  /**
274
274
  * AI SDK UI Messages. They are used in the client and to communicate between the frontend and the API routes.
275
275
  */
276
- interface Message {
276
+ interface UIMessage {
277
277
  /**
278
278
  A unique identifier for the message.
279
279
  */
@@ -287,41 +287,26 @@ interface Message {
287
287
  */
288
288
  content: string;
289
289
  /**
290
- * Additional attachments to be sent along with the message.
290
+ Additional attachments to be sent along with the message.
291
291
  */
292
292
  experimental_attachments?: Attachment[];
293
293
  /**
294
- The 'data' role is deprecated.
294
+ The role of the message.
295
295
  */
296
- role: 'system' | 'user' | 'assistant' | 'data';
296
+ role: 'system' | 'user' | 'assistant';
297
297
  /**
298
- * Additional message-specific information added on the server via StreamData
298
+ Additional message-specific information added on the server via StreamData
299
299
  */
300
300
  annotations?: JSONValue$1[] | undefined;
301
301
  /**
302
- Tool invocations (that can be tool calls or tool results, depending on whether or not the invocation has finished)
303
- that the assistant made as part of this message.
302
+ The parts of the message. Use this for rendering the message in the UI.
304
303
 
305
- @deprecated Use `parts` instead.
304
+ Assistant messages can have text, reasoning and tool invocation parts.
305
+ User messages can have text parts.
306
306
  */
307
- toolInvocations?: Array<ToolInvocation>;
308
- /**
309
- * The parts of the message. Use this for rendering the message in the UI.
310
- *
311
- * Assistant messages can have text, reasoning and tool invocation parts.
312
- * User messages can have text parts.
313
- */
314
- parts?: Array<TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart>;
307
+ parts: Array<UIMessagePart>;
315
308
  }
316
- type UIMessage = Message & {
317
- /**
318
- * The parts of the message. Use this for rendering the message in the UI.
319
- *
320
- * Assistant messages can have text, reasoning and tool invocation parts.
321
- * User messages can have text parts.
322
- */
323
- parts: Array<TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart>;
324
- };
309
+ type UIMessagePart = TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart;
325
310
  /**
326
311
  * A text part of a message.
327
312
  */
@@ -340,7 +325,7 @@ type ReasoningUIPart = {
340
325
  /**
341
326
  * The reasoning text.
342
327
  */
343
- reasoning: string;
328
+ text: string;
344
329
  /**
345
330
  * The provider metadata.
346
331
  */
@@ -388,8 +373,8 @@ type FileUIPart = {
388
373
  type StepStartUIPart = {
389
374
  type: 'step-start';
390
375
  };
391
- type CreateMessage = Omit<Message, 'id'> & {
392
- id?: Message['id'];
376
+ type CreateUIMessage = Omit<UIMessage, 'id'> & {
377
+ id?: UIMessage['id'];
393
378
  };
394
379
  type ChatRequest = {
395
380
  /**
@@ -403,7 +388,7 @@ type ChatRequest = {
403
388
  /**
404
389
  The messages of the chat.
405
390
  */
406
- messages: Message[];
391
+ messages: UIMessage[];
407
392
  /**
408
393
  Additional data to be sent to the server.
409
394
  */
@@ -462,7 +447,7 @@ type UseChatOptions = {
462
447
  /**
463
448
  * Initial messages of the chat. Useful to load an existing chat history.
464
449
  */
465
- initialMessages?: Message[];
450
+ initialMessages?: UIMessage[];
466
451
  /**
467
452
  * Initial input of the chat.
468
453
  */
@@ -488,7 +473,7 @@ type UseChatOptions = {
488
473
  * @param options.usage The token usage of the message.
489
474
  * @param options.finishReason The finish reason of the message.
490
475
  */
491
- onFinish?: (message: Message, options: {
476
+ onFinish?: (message: UIMessage, options: {
492
477
  usage: LanguageModelUsage$1;
493
478
  finishReason: LanguageModelV2FinishReason;
494
479
  }) => void;
@@ -782,10 +767,6 @@ type PartialObject<ObjectType extends object> = {
782
767
 
783
768
  declare function extractMaxToolInvocationStep(toolInvocations: ToolInvocation[] | undefined): number | undefined;
784
769
 
785
- declare function fillMessageParts(messages: Message[]): UIMessage[];
786
-
787
- declare function getMessageParts(message: Message | CreateMessage | UIMessage): (TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart)[];
788
-
789
770
  /**
790
771
  * Performs a deep-equal comparison of two parsed JSON objects.
791
772
  *
@@ -1470,7 +1451,7 @@ type Prompt = {
1470
1451
  /**
1471
1452
  A list of messages. You can either use `prompt` or `messages` but not both.
1472
1453
  */
1473
- messages?: Array<CoreMessage> | Array<Omit<Message, 'id'>>;
1454
+ messages?: Array<CoreMessage> | Array<Omit<UIMessage, 'id'>>;
1474
1455
  };
1475
1456
 
1476
1457
  /**
@@ -1566,20 +1547,20 @@ declare const JSONRPCErrorSchema: z.ZodObject<{
1566
1547
  data?: unknown;
1567
1548
  }>;
1568
1549
  }, "strict", z.ZodTypeAny, {
1550
+ id: string | number;
1569
1551
  error: {
1570
1552
  code: number;
1571
1553
  message: string;
1572
1554
  data?: unknown;
1573
1555
  };
1574
- id: string | number;
1575
1556
  jsonrpc: "2.0";
1576
1557
  }, {
1558
+ id: string | number;
1577
1559
  error: {
1578
1560
  code: number;
1579
1561
  message: string;
1580
1562
  data?: unknown;
1581
1563
  };
1582
- id: string | number;
1583
1564
  jsonrpc: "2.0";
1584
1565
  }>;
1585
1566
  type JSONRPCError = z.infer<typeof JSONRPCErrorSchema>;
@@ -1700,20 +1681,20 @@ declare const JSONRPCMessageSchema: z.ZodUnion<[z.ZodObject<z.objectUtil.extendS
1700
1681
  data?: unknown;
1701
1682
  }>;
1702
1683
  }, "strict", z.ZodTypeAny, {
1684
+ id: string | number;
1703
1685
  error: {
1704
1686
  code: number;
1705
1687
  message: string;
1706
1688
  data?: unknown;
1707
1689
  };
1708
- id: string | number;
1709
1690
  jsonrpc: "2.0";
1710
1691
  }, {
1692
+ id: string | number;
1711
1693
  error: {
1712
1694
  code: number;
1713
1695
  message: string;
1714
1696
  data?: unknown;
1715
1697
  };
1716
- id: string | number;
1717
1698
  jsonrpc: "2.0";
1718
1699
  }>]>;
1719
1700
  type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;
@@ -2581,9 +2562,13 @@ declare function createMCPClient(config: MCPClientConfig): Promise<MCPClient>;
2581
2562
  * Tool parameters are automatically inferred from the server's JSON schema
2582
2563
  * if not explicitly provided in the tools configuration
2583
2564
  *
2565
+ * This client is meant to be used to communicate with a single server. To communicate and fetch tools across multiple servers, it's recommended to create a new client instance per server.
2566
+ *
2584
2567
  * Not supported:
2585
2568
  * - Client options (e.g. sampling, roots) as they are not needed for tool conversion
2586
2569
  * - Accepting notifications
2570
+ * - Session management (when passing a sessionId to an instance of the Streamable HTTP transport)
2571
+ * - Resumable SSE streams
2587
2572
  */
2588
2573
  declare class MCPClient {
2589
2574
  private transport;
@@ -2596,6 +2581,7 @@ declare class MCPClient {
2596
2581
  constructor({ transport: transportConfig, name, onUncaughtError, }: MCPClientConfig);
2597
2582
  init(): Promise<this>;
2598
2583
  close(): Promise<void>;
2584
+ private assertCapability;
2599
2585
  private request;
2600
2586
  private listTools;
2601
2587
  private callTool;
@@ -2923,9 +2909,9 @@ declare class NoSuchToolError extends AISDKError {
2923
2909
  * Otherwise, the new message will be appended.
2924
2910
  */
2925
2911
  declare function appendClientMessage({ messages, message, }: {
2926
- messages: Message[];
2927
- message: Message;
2928
- }): Message[];
2912
+ messages: UIMessage[];
2913
+ message: UIMessage;
2914
+ }): UIMessage[];
2929
2915
 
2930
2916
  /**
2931
2917
  * Appends the ResponseMessage[] from the response to a Message[] (for useChat).
@@ -2935,7 +2921,7 @@ declare function appendClientMessage({ messages, message, }: {
2935
2921
  * @returns A new Message[] with the response messages appended.
2936
2922
  */
2937
2923
  declare function appendResponseMessages({ messages, responseMessages, _internal: { currentDate }, }: {
2938
- messages: Message[];
2924
+ messages: UIMessage[];
2939
2925
  responseMessages: ResponseMessage[];
2940
2926
  /**
2941
2927
  Internal. For test use only. May change without notice.
@@ -2943,13 +2929,13 @@ declare function appendResponseMessages({ messages, responseMessages, _internal:
2943
2929
  _internal?: {
2944
2930
  currentDate?: () => Date;
2945
2931
  };
2946
- }): Message[];
2932
+ }): UIMessage[];
2947
2933
 
2948
2934
  /**
2949
2935
  Converts an array of messages from useChat into an array of CoreMessages that can be used
2950
2936
  with the AI core functions (e.g. `streamText`).
2951
2937
  */
2952
- declare function convertToCoreMessages<TOOLS extends ToolSet = never>(messages: Array<Omit<Message, 'id'>>, options?: {
2938
+ declare function convertToCoreMessages<TOOLS extends ToolSet = never>(messages: Array<Omit<UIMessage, 'id'>>, options?: {
2953
2939
  tools?: TOOLS;
2954
2940
  }): CoreMessage[];
2955
2941
 
@@ -4012,7 +3998,14 @@ This function streams the output. If you do not want to stream the output, use `
4012
3998
  @return
4013
3999
  A result object for accessing the partial object stream and additional information.
4014
4000
  */
4015
- declare function streamObject<RESULT extends SCHEMA extends z.Schema ? Output extends 'array' ? Array<z.infer<SCHEMA>> : z.infer<SCHEMA> : SCHEMA extends Schema<infer T> ? Output extends 'array' ? Array<T> : T : never, SCHEMA extends z.Schema | Schema = z.Schema<JSONValue$1>, Output extends 'object' | 'array' | 'no-schema' = 'object'>(options: Omit<CallSettings, 'stopSequences'> & Prompt & (Output extends 'no-schema' ? {} : {
4001
+ declare function streamObject<RESULT extends SCHEMA extends z.Schema ? Output extends 'array' ? Array<z.infer<SCHEMA>> : z.infer<SCHEMA> : SCHEMA extends Schema<infer T> ? Output extends 'array' ? Array<T> : T : never, SCHEMA extends z.Schema | Schema = z.Schema<JSONValue$1>, Output extends 'object' | 'array' | 'enum' | 'no-schema' = RESULT extends string ? 'enum' : 'object'>(options: Omit<CallSettings, 'stopSequences'> & Prompt & (Output extends 'enum' ? {
4002
+ /**
4003
+ The enum values that the model should use.
4004
+ */
4005
+ enum: Array<RESULT>;
4006
+ mode?: 'json';
4007
+ output: 'enum';
4008
+ } : Output extends 'no-schema' ? {} : {
4016
4009
  /**
4017
4010
  The schema of the object that the model should generate.
4018
4011
  */
@@ -4077,7 +4070,7 @@ Callback that is called when the LLM response and the final object validation ar
4077
4070
  currentDate?: () => Date;
4078
4071
  now?: () => number;
4079
4072
  };
4080
- }): StreamObjectResult<Output extends 'array' ? RESULT : DeepPartial<RESULT>, Output extends 'array' ? RESULT : RESULT, Output extends 'array' ? RESULT extends Array<infer U> ? AsyncIterableStream<U> : never : never>;
4073
+ }): StreamObjectResult<Output extends 'enum' ? string : Output extends 'array' ? RESULT : DeepPartial<RESULT>, Output extends 'array' ? RESULT : RESULT, Output extends 'array' ? RESULT extends Array<infer U> ? AsyncIterableStream<U> : never : never>;
4081
4074
 
4082
4075
  /**
4083
4076
  * A generated audio file.
@@ -4411,6 +4404,8 @@ declare function createProviderRegistry<PROVIDERS extends Record<string, Provide
4411
4404
  */
4412
4405
  declare const experimental_createProviderRegistry: typeof createProviderRegistry;
4413
4406
 
4407
+ declare function getToolInvocations(message: UIMessage): ToolInvocation[];
4408
+
4414
4409
  /**
4415
4410
  * Calculates the cosine similarity between two vectors. This is a useful metric for
4416
4411
  * comparing the similarity of two vectors such as embeddings.
@@ -4654,9 +4649,9 @@ declare class InvalidMessageRoleError extends AISDKError {
4654
4649
  declare const symbol$2: unique symbol;
4655
4650
  declare class MessageConversionError extends AISDKError {
4656
4651
  private readonly [symbol$2];
4657
- readonly originalMessage: Omit<Message, 'id'>;
4652
+ readonly originalMessage: Omit<UIMessage, 'id'>;
4658
4653
  constructor({ originalMessage, message, }: {
4659
- originalMessage: Omit<Message, 'id'>;
4654
+ originalMessage: Omit<UIMessage, 'id'>;
4660
4655
  message: string;
4661
4656
  });
4662
4657
  static isInstance(error: unknown): error is MessageConversionError;
@@ -4693,4 +4688,4 @@ declare class RetryError extends AISDKError {
4693
4688
  static isInstance(error: unknown): error is RetryError;
4694
4689
  }
4695
4690
 
4696
- export { AssistantContent, Attachment, CallSettings, CallWarning, ChatRequest, ChatRequestOptions, ChunkDetector, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateMessage, DataContent, DataStreamOptions, DataStreamPart, DataStreamString, DataStreamWriter, DeepPartial, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FilePart, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, IdGenerator, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, Message, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Prompt, Provider, ProviderMetadata, ProviderOptions, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RequestOptions, RetryError, SourceUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, TextUIPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolInvocation, ToolInvocationUIPart, ToolResultPart, ToolResultUnion, ToolSet, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIMessage, UseChatOptions, UseCompletionOptions, UserContent, appendClientMessage, appendResponseMessages, callChatApi, callCompletionApi, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractMaxToolInvocationStep, extractReasoningMiddleware, fillMessageParts, formatDataStreamPart, generateObject, generateText, getMessageParts, getTextFromDataUrl, isAssistantMessageWithCompletedToolCalls, isDeepEqualData, parseDataStreamPart, parsePartialJson, pipeDataStreamToResponse, prepareAttachmentsForRequest, processDataStream, processTextStream, shouldResubmitMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, updateToolCallResult, wrapLanguageModel };
4691
+ export { AssistantContent, Attachment, CallSettings, CallWarning, ChatRequest, ChatRequestOptions, ChunkDetector, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataContent, DataStreamOptions, DataStreamPart, DataStreamString, DataStreamWriter, DeepPartial, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FilePart, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, IdGenerator, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Prompt, Provider, ProviderMetadata, ProviderOptions, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RequestOptions, RetryError, SourceUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, TextUIPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolInvocation, ToolInvocationUIPart, ToolResultPart, ToolResultUnion, ToolSet, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIMessage, UIMessagePart, UseChatOptions, UseCompletionOptions, UserContent, appendClientMessage, appendResponseMessages, callChatApi, callCompletionApi, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractMaxToolInvocationStep, extractReasoningMiddleware, formatDataStreamPart, generateObject, generateText, getTextFromDataUrl, getToolInvocations, isAssistantMessageWithCompletedToolCalls, isDeepEqualData, parseDataStreamPart, parsePartialJson, pipeDataStreamToResponse, prepareAttachmentsForRequest, processDataStream, processTextStream, shouldResubmitMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, updateToolCallResult, wrapLanguageModel };
package/dist/index.d.ts CHANGED
@@ -273,7 +273,7 @@ interface Attachment {
273
273
  /**
274
274
  * AI SDK UI Messages. They are used in the client and to communicate between the frontend and the API routes.
275
275
  */
276
- interface Message {
276
+ interface UIMessage {
277
277
  /**
278
278
  A unique identifier for the message.
279
279
  */
@@ -287,41 +287,26 @@ interface Message {
287
287
  */
288
288
  content: string;
289
289
  /**
290
- * Additional attachments to be sent along with the message.
290
+ Additional attachments to be sent along with the message.
291
291
  */
292
292
  experimental_attachments?: Attachment[];
293
293
  /**
294
- The 'data' role is deprecated.
294
+ The role of the message.
295
295
  */
296
- role: 'system' | 'user' | 'assistant' | 'data';
296
+ role: 'system' | 'user' | 'assistant';
297
297
  /**
298
- * Additional message-specific information added on the server via StreamData
298
+ Additional message-specific information added on the server via StreamData
299
299
  */
300
300
  annotations?: JSONValue$1[] | undefined;
301
301
  /**
302
- Tool invocations (that can be tool calls or tool results, depending on whether or not the invocation has finished)
303
- that the assistant made as part of this message.
302
+ The parts of the message. Use this for rendering the message in the UI.
304
303
 
305
- @deprecated Use `parts` instead.
304
+ Assistant messages can have text, reasoning and tool invocation parts.
305
+ User messages can have text parts.
306
306
  */
307
- toolInvocations?: Array<ToolInvocation>;
308
- /**
309
- * The parts of the message. Use this for rendering the message in the UI.
310
- *
311
- * Assistant messages can have text, reasoning and tool invocation parts.
312
- * User messages can have text parts.
313
- */
314
- parts?: Array<TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart>;
307
+ parts: Array<UIMessagePart>;
315
308
  }
316
- type UIMessage = Message & {
317
- /**
318
- * The parts of the message. Use this for rendering the message in the UI.
319
- *
320
- * Assistant messages can have text, reasoning and tool invocation parts.
321
- * User messages can have text parts.
322
- */
323
- parts: Array<TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart>;
324
- };
309
+ type UIMessagePart = TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart;
325
310
  /**
326
311
  * A text part of a message.
327
312
  */
@@ -340,7 +325,7 @@ type ReasoningUIPart = {
340
325
  /**
341
326
  * The reasoning text.
342
327
  */
343
- reasoning: string;
328
+ text: string;
344
329
  /**
345
330
  * The provider metadata.
346
331
  */
@@ -388,8 +373,8 @@ type FileUIPart = {
388
373
  type StepStartUIPart = {
389
374
  type: 'step-start';
390
375
  };
391
- type CreateMessage = Omit<Message, 'id'> & {
392
- id?: Message['id'];
376
+ type CreateUIMessage = Omit<UIMessage, 'id'> & {
377
+ id?: UIMessage['id'];
393
378
  };
394
379
  type ChatRequest = {
395
380
  /**
@@ -403,7 +388,7 @@ type ChatRequest = {
403
388
  /**
404
389
  The messages of the chat.
405
390
  */
406
- messages: Message[];
391
+ messages: UIMessage[];
407
392
  /**
408
393
  Additional data to be sent to the server.
409
394
  */
@@ -462,7 +447,7 @@ type UseChatOptions = {
462
447
  /**
463
448
  * Initial messages of the chat. Useful to load an existing chat history.
464
449
  */
465
- initialMessages?: Message[];
450
+ initialMessages?: UIMessage[];
466
451
  /**
467
452
  * Initial input of the chat.
468
453
  */
@@ -488,7 +473,7 @@ type UseChatOptions = {
488
473
  * @param options.usage The token usage of the message.
489
474
  * @param options.finishReason The finish reason of the message.
490
475
  */
491
- onFinish?: (message: Message, options: {
476
+ onFinish?: (message: UIMessage, options: {
492
477
  usage: LanguageModelUsage$1;
493
478
  finishReason: LanguageModelV2FinishReason;
494
479
  }) => void;
@@ -782,10 +767,6 @@ type PartialObject<ObjectType extends object> = {
782
767
 
783
768
  declare function extractMaxToolInvocationStep(toolInvocations: ToolInvocation[] | undefined): number | undefined;
784
769
 
785
- declare function fillMessageParts(messages: Message[]): UIMessage[];
786
-
787
- declare function getMessageParts(message: Message | CreateMessage | UIMessage): (TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart | FileUIPart | StepStartUIPart)[];
788
-
789
770
  /**
790
771
  * Performs a deep-equal comparison of two parsed JSON objects.
791
772
  *
@@ -1470,7 +1451,7 @@ type Prompt = {
1470
1451
  /**
1471
1452
  A list of messages. You can either use `prompt` or `messages` but not both.
1472
1453
  */
1473
- messages?: Array<CoreMessage> | Array<Omit<Message, 'id'>>;
1454
+ messages?: Array<CoreMessage> | Array<Omit<UIMessage, 'id'>>;
1474
1455
  };
1475
1456
 
1476
1457
  /**
@@ -1566,20 +1547,20 @@ declare const JSONRPCErrorSchema: z.ZodObject<{
1566
1547
  data?: unknown;
1567
1548
  }>;
1568
1549
  }, "strict", z.ZodTypeAny, {
1550
+ id: string | number;
1569
1551
  error: {
1570
1552
  code: number;
1571
1553
  message: string;
1572
1554
  data?: unknown;
1573
1555
  };
1574
- id: string | number;
1575
1556
  jsonrpc: "2.0";
1576
1557
  }, {
1558
+ id: string | number;
1577
1559
  error: {
1578
1560
  code: number;
1579
1561
  message: string;
1580
1562
  data?: unknown;
1581
1563
  };
1582
- id: string | number;
1583
1564
  jsonrpc: "2.0";
1584
1565
  }>;
1585
1566
  type JSONRPCError = z.infer<typeof JSONRPCErrorSchema>;
@@ -1700,20 +1681,20 @@ declare const JSONRPCMessageSchema: z.ZodUnion<[z.ZodObject<z.objectUtil.extendS
1700
1681
  data?: unknown;
1701
1682
  }>;
1702
1683
  }, "strict", z.ZodTypeAny, {
1684
+ id: string | number;
1703
1685
  error: {
1704
1686
  code: number;
1705
1687
  message: string;
1706
1688
  data?: unknown;
1707
1689
  };
1708
- id: string | number;
1709
1690
  jsonrpc: "2.0";
1710
1691
  }, {
1692
+ id: string | number;
1711
1693
  error: {
1712
1694
  code: number;
1713
1695
  message: string;
1714
1696
  data?: unknown;
1715
1697
  };
1716
- id: string | number;
1717
1698
  jsonrpc: "2.0";
1718
1699
  }>]>;
1719
1700
  type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;
@@ -2581,9 +2562,13 @@ declare function createMCPClient(config: MCPClientConfig): Promise<MCPClient>;
2581
2562
  * Tool parameters are automatically inferred from the server's JSON schema
2582
2563
  * if not explicitly provided in the tools configuration
2583
2564
  *
2565
+ * This client is meant to be used to communicate with a single server. To communicate and fetch tools across multiple servers, it's recommended to create a new client instance per server.
2566
+ *
2584
2567
  * Not supported:
2585
2568
  * - Client options (e.g. sampling, roots) as they are not needed for tool conversion
2586
2569
  * - Accepting notifications
2570
+ * - Session management (when passing a sessionId to an instance of the Streamable HTTP transport)
2571
+ * - Resumable SSE streams
2587
2572
  */
2588
2573
  declare class MCPClient {
2589
2574
  private transport;
@@ -2596,6 +2581,7 @@ declare class MCPClient {
2596
2581
  constructor({ transport: transportConfig, name, onUncaughtError, }: MCPClientConfig);
2597
2582
  init(): Promise<this>;
2598
2583
  close(): Promise<void>;
2584
+ private assertCapability;
2599
2585
  private request;
2600
2586
  private listTools;
2601
2587
  private callTool;
@@ -2923,9 +2909,9 @@ declare class NoSuchToolError extends AISDKError {
2923
2909
  * Otherwise, the new message will be appended.
2924
2910
  */
2925
2911
  declare function appendClientMessage({ messages, message, }: {
2926
- messages: Message[];
2927
- message: Message;
2928
- }): Message[];
2912
+ messages: UIMessage[];
2913
+ message: UIMessage;
2914
+ }): UIMessage[];
2929
2915
 
2930
2916
  /**
2931
2917
  * Appends the ResponseMessage[] from the response to a Message[] (for useChat).
@@ -2935,7 +2921,7 @@ declare function appendClientMessage({ messages, message, }: {
2935
2921
  * @returns A new Message[] with the response messages appended.
2936
2922
  */
2937
2923
  declare function appendResponseMessages({ messages, responseMessages, _internal: { currentDate }, }: {
2938
- messages: Message[];
2924
+ messages: UIMessage[];
2939
2925
  responseMessages: ResponseMessage[];
2940
2926
  /**
2941
2927
  Internal. For test use only. May change without notice.
@@ -2943,13 +2929,13 @@ declare function appendResponseMessages({ messages, responseMessages, _internal:
2943
2929
  _internal?: {
2944
2930
  currentDate?: () => Date;
2945
2931
  };
2946
- }): Message[];
2932
+ }): UIMessage[];
2947
2933
 
2948
2934
  /**
2949
2935
  Converts an array of messages from useChat into an array of CoreMessages that can be used
2950
2936
  with the AI core functions (e.g. `streamText`).
2951
2937
  */
2952
- declare function convertToCoreMessages<TOOLS extends ToolSet = never>(messages: Array<Omit<Message, 'id'>>, options?: {
2938
+ declare function convertToCoreMessages<TOOLS extends ToolSet = never>(messages: Array<Omit<UIMessage, 'id'>>, options?: {
2953
2939
  tools?: TOOLS;
2954
2940
  }): CoreMessage[];
2955
2941
 
@@ -4012,7 +3998,14 @@ This function streams the output. If you do not want to stream the output, use `
4012
3998
  @return
4013
3999
  A result object for accessing the partial object stream and additional information.
4014
4000
  */
4015
- declare function streamObject<RESULT extends SCHEMA extends z.Schema ? Output extends 'array' ? Array<z.infer<SCHEMA>> : z.infer<SCHEMA> : SCHEMA extends Schema<infer T> ? Output extends 'array' ? Array<T> : T : never, SCHEMA extends z.Schema | Schema = z.Schema<JSONValue$1>, Output extends 'object' | 'array' | 'no-schema' = 'object'>(options: Omit<CallSettings, 'stopSequences'> & Prompt & (Output extends 'no-schema' ? {} : {
4001
+ declare function streamObject<RESULT extends SCHEMA extends z.Schema ? Output extends 'array' ? Array<z.infer<SCHEMA>> : z.infer<SCHEMA> : SCHEMA extends Schema<infer T> ? Output extends 'array' ? Array<T> : T : never, SCHEMA extends z.Schema | Schema = z.Schema<JSONValue$1>, Output extends 'object' | 'array' | 'enum' | 'no-schema' = RESULT extends string ? 'enum' : 'object'>(options: Omit<CallSettings, 'stopSequences'> & Prompt & (Output extends 'enum' ? {
4002
+ /**
4003
+ The enum values that the model should use.
4004
+ */
4005
+ enum: Array<RESULT>;
4006
+ mode?: 'json';
4007
+ output: 'enum';
4008
+ } : Output extends 'no-schema' ? {} : {
4016
4009
  /**
4017
4010
  The schema of the object that the model should generate.
4018
4011
  */
@@ -4077,7 +4070,7 @@ Callback that is called when the LLM response and the final object validation ar
4077
4070
  currentDate?: () => Date;
4078
4071
  now?: () => number;
4079
4072
  };
4080
- }): StreamObjectResult<Output extends 'array' ? RESULT : DeepPartial<RESULT>, Output extends 'array' ? RESULT : RESULT, Output extends 'array' ? RESULT extends Array<infer U> ? AsyncIterableStream<U> : never : never>;
4073
+ }): StreamObjectResult<Output extends 'enum' ? string : Output extends 'array' ? RESULT : DeepPartial<RESULT>, Output extends 'array' ? RESULT : RESULT, Output extends 'array' ? RESULT extends Array<infer U> ? AsyncIterableStream<U> : never : never>;
4081
4074
 
4082
4075
  /**
4083
4076
  * A generated audio file.
@@ -4411,6 +4404,8 @@ declare function createProviderRegistry<PROVIDERS extends Record<string, Provide
4411
4404
  */
4412
4405
  declare const experimental_createProviderRegistry: typeof createProviderRegistry;
4413
4406
 
4407
+ declare function getToolInvocations(message: UIMessage): ToolInvocation[];
4408
+
4414
4409
  /**
4415
4410
  * Calculates the cosine similarity between two vectors. This is a useful metric for
4416
4411
  * comparing the similarity of two vectors such as embeddings.
@@ -4654,9 +4649,9 @@ declare class InvalidMessageRoleError extends AISDKError {
4654
4649
  declare const symbol$2: unique symbol;
4655
4650
  declare class MessageConversionError extends AISDKError {
4656
4651
  private readonly [symbol$2];
4657
- readonly originalMessage: Omit<Message, 'id'>;
4652
+ readonly originalMessage: Omit<UIMessage, 'id'>;
4658
4653
  constructor({ originalMessage, message, }: {
4659
- originalMessage: Omit<Message, 'id'>;
4654
+ originalMessage: Omit<UIMessage, 'id'>;
4660
4655
  message: string;
4661
4656
  });
4662
4657
  static isInstance(error: unknown): error is MessageConversionError;
@@ -4693,4 +4688,4 @@ declare class RetryError extends AISDKError {
4693
4688
  static isInstance(error: unknown): error is RetryError;
4694
4689
  }
4695
4690
 
4696
- export { AssistantContent, Attachment, CallSettings, CallWarning, ChatRequest, ChatRequestOptions, ChunkDetector, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateMessage, DataContent, DataStreamOptions, DataStreamPart, DataStreamString, DataStreamWriter, DeepPartial, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FilePart, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, IdGenerator, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, Message, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Prompt, Provider, ProviderMetadata, ProviderOptions, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RequestOptions, RetryError, SourceUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, TextUIPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolInvocation, ToolInvocationUIPart, ToolResultPart, ToolResultUnion, ToolSet, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIMessage, UseChatOptions, UseCompletionOptions, UserContent, appendClientMessage, appendResponseMessages, callChatApi, callCompletionApi, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractMaxToolInvocationStep, extractReasoningMiddleware, fillMessageParts, formatDataStreamPart, generateObject, generateText, getMessageParts, getTextFromDataUrl, isAssistantMessageWithCompletedToolCalls, isDeepEqualData, parseDataStreamPart, parsePartialJson, pipeDataStreamToResponse, prepareAttachmentsForRequest, processDataStream, processTextStream, shouldResubmitMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, updateToolCallResult, wrapLanguageModel };
4691
+ export { AssistantContent, Attachment, CallSettings, CallWarning, ChatRequest, ChatRequestOptions, ChunkDetector, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataContent, DataStreamOptions, DataStreamPart, DataStreamString, DataStreamWriter, DeepPartial, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FilePart, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, IdGenerator, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Prompt, Provider, ProviderMetadata, ProviderOptions, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RequestOptions, RetryError, SourceUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, TextUIPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolInvocation, ToolInvocationUIPart, ToolResultPart, ToolResultUnion, ToolSet, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIMessage, UIMessagePart, UseChatOptions, UseCompletionOptions, UserContent, appendClientMessage, appendResponseMessages, callChatApi, callCompletionApi, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractMaxToolInvocationStep, extractReasoningMiddleware, formatDataStreamPart, generateObject, generateText, getTextFromDataUrl, getToolInvocations, isAssistantMessageWithCompletedToolCalls, isDeepEqualData, parseDataStreamPart, parsePartialJson, pipeDataStreamToResponse, prepareAttachmentsForRequest, processDataStream, processTextStream, shouldResubmitMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, updateToolCallResult, wrapLanguageModel };