ai 4.0.38 → 4.0.39

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,17 @@
1
1
  # ai
2
2
 
3
+ ## 4.0.39
4
+
5
+ ### Patch Changes
6
+
7
+ - 00114c5: feat: expose IDGenerator and createIdGenerator
8
+ - 00114c5: feat (ui): generate and forward message ids for response messages
9
+ - Updated dependencies [00114c5]
10
+ - Updated dependencies [00114c5]
11
+ - @ai-sdk/provider-utils@2.0.8
12
+ - @ai-sdk/ui-utils@1.0.11
13
+ - @ai-sdk/react@1.0.12
14
+
3
15
  ## 4.0.38
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
+ import { IDGenerator } from '@ai-sdk/provider-utils';
2
+ export { ToolCall as CoreToolCall, ToolResult as CoreToolResult, IDGenerator, createIdGenerator, generateId } from '@ai-sdk/provider-utils';
1
3
  import { DataStreamString, ToolInvocation, Attachment, Schema, DeepPartial, Message, JSONValue as JSONValue$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
2
4
  export { AssistantMessage, AssistantStatus, Attachment, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DataStreamPart, DeepPartial, IdGenerator, JSONValue, Message, RequestOptions, Schema, ToolInvocation, UseAssistantOptions, formatAssistantStreamPart, formatDataStreamPart, jsonSchema, parseAssistantStreamPart, parseDataStreamPart, processDataStream, processTextStream } from '@ai-sdk/ui-utils';
3
- export { ToolCall as CoreToolCall, ToolResult as CoreToolResult, generateId } from '@ai-sdk/provider-utils';
4
5
  import { JSONValue, EmbeddingModelV1, EmbeddingModelV1Embedding, ImageModelV1, ImageModelV1CallWarning, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, LanguageModelV1CallOptions, AISDKError, LanguageModelV1FunctionToolCall, JSONSchema7, NoSuchModelError } from '@ai-sdk/provider';
5
6
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LanguageModelV1, LanguageModelV1CallOptions, LanguageModelV1Prompt, LanguageModelV1StreamPart, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
6
7
  import { ServerResponse } from 'node:http';
@@ -1404,26 +1405,6 @@ declare function tool<PARAMETERS extends Parameters, RESULT>(tool: CoreTool<PARA
1404
1405
  execute: undefined;
1405
1406
  };
1406
1407
 
1407
- /**
1408
- * Appends the CoreMessage[] from the response to a Message[] (for useChat).
1409
- * The messages are converted to Messages before being appended.
1410
- * Timestamps and IDs are generated for the new messages.
1411
- *
1412
- * @returns A new Message[] with the response messages appended.
1413
- */
1414
- declare function appendResponseMessages({ messages, responseMessages, }: {
1415
- messages: Message[];
1416
- responseMessages: CoreMessage[];
1417
- }): Message[];
1418
-
1419
- /**
1420
- Converts an array of messages from useChat into an array of CoreMessages that can be used
1421
- with the AI core functions (e.g. `streamText`).
1422
- */
1423
- declare function convertToCoreMessages<TOOLS extends Record<string, CoreTool> = never>(messages: Array<UIMessage>, options?: {
1424
- tools?: TOOLS;
1425
- }): CoreMessage[];
1426
-
1427
1408
  /**
1428
1409
  Create a union of the given object's values, and optionally specify which keys to get the values from.
1429
1410
 
@@ -1496,6 +1477,16 @@ type ToToolResultObject<TOOLS extends Record<string, CoreTool>> = ValueOf<{
1496
1477
  type ToolResultUnion<TOOLS extends Record<string, CoreTool>> = ToToolResultObject<ToToolsWithDefinedExecute<ToToolsWithExecute<TOOLS>>>;
1497
1478
  type ToolResultArray<TOOLS extends Record<string, CoreTool>> = Array<ToolResultUnion<TOOLS>>;
1498
1479
 
1480
+ /**
1481
+ A message that was generated during the generation process.
1482
+ It can be either an assistant message or a tool message.
1483
+ */
1484
+ type ResponseMessage = (CoreAssistantMessage | CoreToolMessage) & {
1485
+ /**
1486
+ Message ID generated by the AI SDK.
1487
+ */
1488
+ id: string;
1489
+ };
1499
1490
  /**
1500
1491
  * The result of a single step in the generation process.
1501
1492
  */
@@ -1538,10 +1529,11 @@ type StepResult<TOOLS extends Record<string, CoreTool>> = {
1538
1529
  */
1539
1530
  readonly response: LanguageModelResponseMetadata & {
1540
1531
  /**
1541
- The response messages that were generated during the call. It consists of an assistant message,
1542
- potentially containing tool calls.
1532
+ The response messages that were generated during the call.
1533
+ Response messages can be either assistant messages or tool messages.
1534
+ They contain a generated id.
1543
1535
  */
1544
- readonly messages: Array<CoreAssistantMessage | CoreToolMessage>;
1536
+ readonly messages: Array<ResponseMessage>;
1545
1537
  };
1546
1538
  /**
1547
1539
  Additional provider-specific metadata. They are passed through
@@ -1561,6 +1553,26 @@ type StepResult<TOOLS extends Record<string, CoreTool>> = {
1561
1553
  readonly isContinued: boolean;
1562
1554
  };
1563
1555
 
1556
+ /**
1557
+ * Appends the ResponseMessage[] from the response to a Message[] (for useChat).
1558
+ * The messages are converted to Messages before being appended.
1559
+ * Timestamps are generated for the new messages.
1560
+ *
1561
+ * @returns A new Message[] with the response messages appended.
1562
+ */
1563
+ declare function appendResponseMessages({ messages, responseMessages, }: {
1564
+ messages: Message[];
1565
+ responseMessages: ResponseMessage[];
1566
+ }): Message[];
1567
+
1568
+ /**
1569
+ Converts an array of messages from useChat into an array of CoreMessages that can be used
1570
+ with the AI core functions (e.g. `streamText`).
1571
+ */
1572
+ declare function convertToCoreMessages<TOOLS extends Record<string, CoreTool> = never>(messages: Array<UIMessage>, options?: {
1573
+ tools?: TOOLS;
1574
+ }): CoreMessage[];
1575
+
1564
1576
  /**
1565
1577
  The result of a `generateText` call.
1566
1578
  It contains the generated text, the tool calls that were made during the generation, and the results of the tool calls.
@@ -1761,13 +1773,14 @@ If set and supported by the model, calls will generate deterministic results.
1761
1773
  @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
1762
1774
 
1763
1775
  @param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.
1776
+ @param experimental_generateMessageId - Generate a unique ID for each message.
1764
1777
 
1765
1778
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
1766
1779
 
1767
1780
  @returns
1768
1781
  A result object that contains the generated text, the results of the tool calls, and additional information.
1769
1782
  */
1770
- declare function generateText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, OUTPUT_PARTIAL = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, maxSteps, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, _internal: { generateId, currentDate, }, onStepFinish, ...settings }: CallSettings & Prompt & {
1783
+ declare function generateText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, OUTPUT_PARTIAL = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, maxSteps, experimental_generateMessageId: generateMessageId, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, _internal: { generateId, currentDate, }, onStepFinish, ...settings }: CallSettings & Prompt & {
1771
1784
  /**
1772
1785
  The language model to use.
1773
1786
  */
@@ -1789,6 +1802,10 @@ By default, it's set to 1, which means that only a single LLM call is made.
1789
1802
  */
1790
1803
  maxSteps?: number;
1791
1804
  /**
1805
+ Generate a unique ID for each message.
1806
+ */
1807
+ experimental_generateMessageId?: IDGenerator;
1808
+ /**
1792
1809
  When enabled, the model will perform additional steps if the finish reason is "length" (experimental).
1793
1810
 
1794
1811
  By default, it's set to false.
@@ -1825,7 +1842,7 @@ A function that attempts to repair a tool call that failed to parse.
1825
1842
  * Internal. For test use only. May change without notice.
1826
1843
  */
1827
1844
  _internal?: {
1828
- generateId?: () => string;
1845
+ generateId?: IDGenerator;
1829
1846
  currentDate?: () => Date;
1830
1847
  };
1831
1848
  }): Promise<GenerateTextResult<TOOLS, OUTPUT>>;
@@ -2022,22 +2039,34 @@ type TextStreamPart<TOOLS extends Record<string, CoreTool>> = {
2022
2039
  } | ({
2023
2040
  type: 'tool-result';
2024
2041
  } & ToolResultUnion<TOOLS>) | {
2042
+ type: 'step-start';
2043
+ messageId: string;
2044
+ request: LanguageModelRequestMetadata;
2045
+ warnings: CallWarning[];
2046
+ } | {
2025
2047
  type: 'step-finish';
2026
- finishReason: FinishReason;
2048
+ messageId: string;
2027
2049
  logprobs?: LogProbs;
2028
- usage: LanguageModelUsage;
2029
2050
  request: LanguageModelRequestMetadata;
2030
- response: LanguageModelResponseMetadata;
2031
2051
  warnings: CallWarning[] | undefined;
2052
+ response: LanguageModelResponseMetadata;
2053
+ usage: LanguageModelUsage;
2054
+ finishReason: FinishReason;
2032
2055
  experimental_providerMetadata?: ProviderMetadata;
2033
2056
  isContinued: boolean;
2034
2057
  } | {
2035
2058
  type: 'finish';
2036
2059
  finishReason: FinishReason;
2037
- logprobs?: LogProbs;
2038
2060
  usage: LanguageModelUsage;
2039
- response: LanguageModelResponseMetadata;
2040
2061
  experimental_providerMetadata?: ProviderMetadata;
2062
+ /**
2063
+ * @deprecated will be moved into provider metadata
2064
+ */
2065
+ logprobs?: LogProbs;
2066
+ /**
2067
+ * @deprecated use response on step-finish instead
2068
+ */
2069
+ response: LanguageModelResponseMetadata;
2041
2070
  } | {
2042
2071
  type: 'error';
2043
2072
  error: unknown;
@@ -2112,6 +2141,7 @@ If set and supported by the model, calls will generate deterministic results.
2112
2141
  @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
2113
2142
 
2114
2143
  @param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.
2144
+ @param experimental_generateMessageId - Generate a unique ID for each message.
2115
2145
 
2116
2146
  @param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.
2117
2147
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
@@ -2121,7 +2151,7 @@ If set and supported by the model, calls will generate deterministic results.
2121
2151
  @return
2122
2152
  A result object for accessing different stream types and additional information.
2123
2153
  */
2124
- declare function streamText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, PARTIAL_OUTPUT = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, maxSteps, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_toolCallStreaming: toolCallStreaming, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, onChunk, onFinish, onStepFinish, _internal: { now, generateId, currentDate, }, ...settings }: CallSettings & Prompt & {
2154
+ declare function streamText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, PARTIAL_OUTPUT = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, maxSteps, experimental_generateMessageId: generateMessageId, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_toolCallStreaming: toolCallStreaming, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, onChunk, onFinish, onStepFinish, _internal: { now, generateId, currentDate, }, ...settings }: CallSettings & Prompt & {
2125
2155
  /**
2126
2156
  The language model to use.
2127
2157
  */
@@ -2143,6 +2173,10 @@ By default, it's set to 1, which means that only a single LLM call is made.
2143
2173
  */
2144
2174
  maxSteps?: number;
2145
2175
  /**
2176
+ Generate a unique ID for each message.
2177
+ */
2178
+ experimental_generateMessageId?: IDGenerator;
2179
+ /**
2146
2180
  When enabled, the model will perform additional steps if the finish reason is "length" (experimental).
2147
2181
 
2148
2182
  By default, it's set to false.
@@ -2202,15 +2236,15 @@ Details for all steps.
2202
2236
  readonly steps: StepResult<TOOLS>[];
2203
2237
  }) => Promise<void> | void;
2204
2238
  /**
2205
- Callback that is called when each step (LLM call) is finished, including intermediate steps.
2239
+ Callback that is called when each step (LLM call) is finished, including intermediate steps.
2206
2240
  */
2207
2241
  onStepFinish?: (event: StepResult<TOOLS>) => Promise<void> | void;
2208
2242
  /**
2209
- * Internal. For test use only. May change without notice.
2243
+ Internal. For test use only. May change without notice.
2210
2244
  */
2211
2245
  _internal?: {
2212
2246
  now?: () => number;
2213
- generateId?: () => string;
2247
+ generateId?: IDGenerator;
2214
2248
  currentDate?: () => Date;
2215
2249
  };
2216
2250
  }): StreamTextResult<TOOLS, PARTIAL_OUTPUT>;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import { IDGenerator } from '@ai-sdk/provider-utils';
2
+ export { ToolCall as CoreToolCall, ToolResult as CoreToolResult, IDGenerator, createIdGenerator, generateId } from '@ai-sdk/provider-utils';
1
3
  import { DataStreamString, ToolInvocation, Attachment, Schema, DeepPartial, Message, JSONValue as JSONValue$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
2
4
  export { AssistantMessage, AssistantStatus, Attachment, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DataStreamPart, DeepPartial, IdGenerator, JSONValue, Message, RequestOptions, Schema, ToolInvocation, UseAssistantOptions, formatAssistantStreamPart, formatDataStreamPart, jsonSchema, parseAssistantStreamPart, parseDataStreamPart, processDataStream, processTextStream } from '@ai-sdk/ui-utils';
3
- export { ToolCall as CoreToolCall, ToolResult as CoreToolResult, generateId } from '@ai-sdk/provider-utils';
4
5
  import { JSONValue, EmbeddingModelV1, EmbeddingModelV1Embedding, ImageModelV1, ImageModelV1CallWarning, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, LanguageModelV1CallOptions, AISDKError, LanguageModelV1FunctionToolCall, JSONSchema7, NoSuchModelError } from '@ai-sdk/provider';
5
6
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LanguageModelV1, LanguageModelV1CallOptions, LanguageModelV1Prompt, LanguageModelV1StreamPart, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
6
7
  import { ServerResponse } from 'node:http';
@@ -1404,26 +1405,6 @@ declare function tool<PARAMETERS extends Parameters, RESULT>(tool: CoreTool<PARA
1404
1405
  execute: undefined;
1405
1406
  };
1406
1407
 
1407
- /**
1408
- * Appends the CoreMessage[] from the response to a Message[] (for useChat).
1409
- * The messages are converted to Messages before being appended.
1410
- * Timestamps and IDs are generated for the new messages.
1411
- *
1412
- * @returns A new Message[] with the response messages appended.
1413
- */
1414
- declare function appendResponseMessages({ messages, responseMessages, }: {
1415
- messages: Message[];
1416
- responseMessages: CoreMessage[];
1417
- }): Message[];
1418
-
1419
- /**
1420
- Converts an array of messages from useChat into an array of CoreMessages that can be used
1421
- with the AI core functions (e.g. `streamText`).
1422
- */
1423
- declare function convertToCoreMessages<TOOLS extends Record<string, CoreTool> = never>(messages: Array<UIMessage>, options?: {
1424
- tools?: TOOLS;
1425
- }): CoreMessage[];
1426
-
1427
1408
  /**
1428
1409
  Create a union of the given object's values, and optionally specify which keys to get the values from.
1429
1410
 
@@ -1496,6 +1477,16 @@ type ToToolResultObject<TOOLS extends Record<string, CoreTool>> = ValueOf<{
1496
1477
  type ToolResultUnion<TOOLS extends Record<string, CoreTool>> = ToToolResultObject<ToToolsWithDefinedExecute<ToToolsWithExecute<TOOLS>>>;
1497
1478
  type ToolResultArray<TOOLS extends Record<string, CoreTool>> = Array<ToolResultUnion<TOOLS>>;
1498
1479
 
1480
+ /**
1481
+ A message that was generated during the generation process.
1482
+ It can be either an assistant message or a tool message.
1483
+ */
1484
+ type ResponseMessage = (CoreAssistantMessage | CoreToolMessage) & {
1485
+ /**
1486
+ Message ID generated by the AI SDK.
1487
+ */
1488
+ id: string;
1489
+ };
1499
1490
  /**
1500
1491
  * The result of a single step in the generation process.
1501
1492
  */
@@ -1538,10 +1529,11 @@ type StepResult<TOOLS extends Record<string, CoreTool>> = {
1538
1529
  */
1539
1530
  readonly response: LanguageModelResponseMetadata & {
1540
1531
  /**
1541
- The response messages that were generated during the call. It consists of an assistant message,
1542
- potentially containing tool calls.
1532
+ The response messages that were generated during the call.
1533
+ Response messages can be either assistant messages or tool messages.
1534
+ They contain a generated id.
1543
1535
  */
1544
- readonly messages: Array<CoreAssistantMessage | CoreToolMessage>;
1536
+ readonly messages: Array<ResponseMessage>;
1545
1537
  };
1546
1538
  /**
1547
1539
  Additional provider-specific metadata. They are passed through
@@ -1561,6 +1553,26 @@ type StepResult<TOOLS extends Record<string, CoreTool>> = {
1561
1553
  readonly isContinued: boolean;
1562
1554
  };
1563
1555
 
1556
+ /**
1557
+ * Appends the ResponseMessage[] from the response to a Message[] (for useChat).
1558
+ * The messages are converted to Messages before being appended.
1559
+ * Timestamps are generated for the new messages.
1560
+ *
1561
+ * @returns A new Message[] with the response messages appended.
1562
+ */
1563
+ declare function appendResponseMessages({ messages, responseMessages, }: {
1564
+ messages: Message[];
1565
+ responseMessages: ResponseMessage[];
1566
+ }): Message[];
1567
+
1568
+ /**
1569
+ Converts an array of messages from useChat into an array of CoreMessages that can be used
1570
+ with the AI core functions (e.g. `streamText`).
1571
+ */
1572
+ declare function convertToCoreMessages<TOOLS extends Record<string, CoreTool> = never>(messages: Array<UIMessage>, options?: {
1573
+ tools?: TOOLS;
1574
+ }): CoreMessage[];
1575
+
1564
1576
  /**
1565
1577
  The result of a `generateText` call.
1566
1578
  It contains the generated text, the tool calls that were made during the generation, and the results of the tool calls.
@@ -1761,13 +1773,14 @@ If set and supported by the model, calls will generate deterministic results.
1761
1773
  @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
1762
1774
 
1763
1775
  @param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.
1776
+ @param experimental_generateMessageId - Generate a unique ID for each message.
1764
1777
 
1765
1778
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
1766
1779
 
1767
1780
  @returns
1768
1781
  A result object that contains the generated text, the results of the tool calls, and additional information.
1769
1782
  */
1770
- declare function generateText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, OUTPUT_PARTIAL = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, maxSteps, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, _internal: { generateId, currentDate, }, onStepFinish, ...settings }: CallSettings & Prompt & {
1783
+ declare function generateText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, OUTPUT_PARTIAL = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries: maxRetriesArg, abortSignal, headers, maxSteps, experimental_generateMessageId: generateMessageId, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, _internal: { generateId, currentDate, }, onStepFinish, ...settings }: CallSettings & Prompt & {
1771
1784
  /**
1772
1785
  The language model to use.
1773
1786
  */
@@ -1789,6 +1802,10 @@ By default, it's set to 1, which means that only a single LLM call is made.
1789
1802
  */
1790
1803
  maxSteps?: number;
1791
1804
  /**
1805
+ Generate a unique ID for each message.
1806
+ */
1807
+ experimental_generateMessageId?: IDGenerator;
1808
+ /**
1792
1809
  When enabled, the model will perform additional steps if the finish reason is "length" (experimental).
1793
1810
 
1794
1811
  By default, it's set to false.
@@ -1825,7 +1842,7 @@ A function that attempts to repair a tool call that failed to parse.
1825
1842
  * Internal. For test use only. May change without notice.
1826
1843
  */
1827
1844
  _internal?: {
1828
- generateId?: () => string;
1845
+ generateId?: IDGenerator;
1829
1846
  currentDate?: () => Date;
1830
1847
  };
1831
1848
  }): Promise<GenerateTextResult<TOOLS, OUTPUT>>;
@@ -2022,22 +2039,34 @@ type TextStreamPart<TOOLS extends Record<string, CoreTool>> = {
2022
2039
  } | ({
2023
2040
  type: 'tool-result';
2024
2041
  } & ToolResultUnion<TOOLS>) | {
2042
+ type: 'step-start';
2043
+ messageId: string;
2044
+ request: LanguageModelRequestMetadata;
2045
+ warnings: CallWarning[];
2046
+ } | {
2025
2047
  type: 'step-finish';
2026
- finishReason: FinishReason;
2048
+ messageId: string;
2027
2049
  logprobs?: LogProbs;
2028
- usage: LanguageModelUsage;
2029
2050
  request: LanguageModelRequestMetadata;
2030
- response: LanguageModelResponseMetadata;
2031
2051
  warnings: CallWarning[] | undefined;
2052
+ response: LanguageModelResponseMetadata;
2053
+ usage: LanguageModelUsage;
2054
+ finishReason: FinishReason;
2032
2055
  experimental_providerMetadata?: ProviderMetadata;
2033
2056
  isContinued: boolean;
2034
2057
  } | {
2035
2058
  type: 'finish';
2036
2059
  finishReason: FinishReason;
2037
- logprobs?: LogProbs;
2038
2060
  usage: LanguageModelUsage;
2039
- response: LanguageModelResponseMetadata;
2040
2061
  experimental_providerMetadata?: ProviderMetadata;
2062
+ /**
2063
+ * @deprecated will be moved into provider metadata
2064
+ */
2065
+ logprobs?: LogProbs;
2066
+ /**
2067
+ * @deprecated use response on step-finish instead
2068
+ */
2069
+ response: LanguageModelResponseMetadata;
2041
2070
  } | {
2042
2071
  type: 'error';
2043
2072
  error: unknown;
@@ -2112,6 +2141,7 @@ If set and supported by the model, calls will generate deterministic results.
2112
2141
  @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
2113
2142
 
2114
2143
  @param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.
2144
+ @param experimental_generateMessageId - Generate a unique ID for each message.
2115
2145
 
2116
2146
  @param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.
2117
2147
  @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.
@@ -2121,7 +2151,7 @@ If set and supported by the model, calls will generate deterministic results.
2121
2151
  @return
2122
2152
  A result object for accessing different stream types and additional information.
2123
2153
  */
2124
- declare function streamText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, PARTIAL_OUTPUT = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, maxSteps, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_toolCallStreaming: toolCallStreaming, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, onChunk, onFinish, onStepFinish, _internal: { now, generateId, currentDate, }, ...settings }: CallSettings & Prompt & {
2154
+ declare function streamText<TOOLS extends Record<string, CoreTool>, OUTPUT = never, PARTIAL_OUTPUT = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, maxSteps, experimental_generateMessageId: generateMessageId, experimental_output: output, experimental_continueSteps: continueSteps, experimental_telemetry: telemetry, experimental_providerMetadata: providerMetadata, experimental_toolCallStreaming: toolCallStreaming, experimental_activeTools: activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, onChunk, onFinish, onStepFinish, _internal: { now, generateId, currentDate, }, ...settings }: CallSettings & Prompt & {
2125
2155
  /**
2126
2156
  The language model to use.
2127
2157
  */
@@ -2143,6 +2173,10 @@ By default, it's set to 1, which means that only a single LLM call is made.
2143
2173
  */
2144
2174
  maxSteps?: number;
2145
2175
  /**
2176
+ Generate a unique ID for each message.
2177
+ */
2178
+ experimental_generateMessageId?: IDGenerator;
2179
+ /**
2146
2180
  When enabled, the model will perform additional steps if the finish reason is "length" (experimental).
2147
2181
 
2148
2182
  By default, it's set to false.
@@ -2202,15 +2236,15 @@ Details for all steps.
2202
2236
  readonly steps: StepResult<TOOLS>[];
2203
2237
  }) => Promise<void> | void;
2204
2238
  /**
2205
- Callback that is called when each step (LLM call) is finished, including intermediate steps.
2239
+ Callback that is called when each step (LLM call) is finished, including intermediate steps.
2206
2240
  */
2207
2241
  onStepFinish?: (event: StepResult<TOOLS>) => Promise<void> | void;
2208
2242
  /**
2209
- * Internal. For test use only. May change without notice.
2243
+ Internal. For test use only. May change without notice.
2210
2244
  */
2211
2245
  _internal?: {
2212
2246
  now?: () => number;
2213
- generateId?: () => string;
2247
+ generateId?: IDGenerator;
2214
2248
  currentDate?: () => Date;
2215
2249
  };
2216
2250
  }): StreamTextResult<TOOLS, PARTIAL_OUTPUT>;