diff --git a/packages/ai/src/ui/ui-messages.ts b/packages/ai/src/ui/ui-messages.ts index 422a76fb725c..da63b1139cc1 100644 --- a/packages/ai/src/ui/ui-messages.ts +++ b/packages/ai/src/ui/ui-messages.ts @@ -228,14 +228,14 @@ export type UIToolInvocation = { */ providerExecuted?: boolean; } & ( - | { + | { state: 'input-streaming'; input: DeepPartial['input']> | undefined; output?: never; errorText?: never; approval?: never; } - | { + | { state: 'input-available'; input: asUITool['input']; output?: never; @@ -243,7 +243,7 @@ export type UIToolInvocation = { callProviderMetadata?: ProviderMetadata; approval?: never; } - | { + | { state: 'approval-requested'; input: asUITool['input']; output?: never; @@ -255,7 +255,7 @@ export type UIToolInvocation = { reason?: never; }; } - | { + | { state: 'approval-responded'; input: asUITool['input']; output?: never; @@ -267,7 +267,7 @@ export type UIToolInvocation = { reason?: string; }; } - | { + | { state: 'output-available'; input: asUITool['input']; output: asUITool['output']; @@ -280,7 +280,7 @@ export type UIToolInvocation = { reason?: string; }; } - | { + | { state: 'output-error'; // TODO AI SDK 6: change to 'error' state input: asUITool['input'] | undefined; rawInput?: unknown; // TODO AI SDK 6: remove this field, input should be unknown @@ -293,7 +293,7 @@ export type UIToolInvocation = { reason?: string; }; } - | { + | { state: 'output-denied'; input: asUITool['input']; output?: never; @@ -305,7 +305,7 @@ export type UIToolInvocation = { reason?: string; }; } -); + ); export type ToolUIPart = ValueOf<{ [NAME in keyof TOOLS & string]: { @@ -332,14 +332,14 @@ export type DynamicToolUIPart = { */ providerExecuted?: boolean; } & ( - | { + | { state: 'input-streaming'; input: unknown | undefined; output?: never; errorText?: never; approval?: never; } - | { + | { state: 'input-available'; input: unknown; output?: never; @@ -347,7 +347,7 @@ export type DynamicToolUIPart = { callProviderMetadata?: ProviderMetadata; approval?: never; } - | { + | { state: 'approval-requested'; input: unknown; output?: never; @@ -359,7 +359,7 @@ export type DynamicToolUIPart = { reason?: never; }; } - | { + | { state: 'approval-responded'; input: unknown; output?: never; @@ -371,7 +371,7 @@ export type DynamicToolUIPart = { reason?: string; }; } - | { + | { state: 'output-available'; input: unknown; output: unknown; @@ -384,7 +384,7 @@ export type DynamicToolUIPart = { reason?: string; }; } - | { + | { state: 'output-error'; // TODO AI SDK 6: change to 'error' state input: unknown; output?: never; @@ -396,7 +396,7 @@ export type DynamicToolUIPart = { reason?: string; }; } - | { + | { state: 'output-denied'; input: unknown; output?: never; @@ -408,7 +408,7 @@ export type DynamicToolUIPart = { reason?: string; }; } -); + ); /** * Type guard to check if a message part is a text part. @@ -519,14 +519,14 @@ export type InferUIMessageToolOutputs = export type InferUIMessageToolCall = | ValueOf<{ - [NAME in keyof InferUIMessageTools]: ToolCall< - NAME & string, - InferUIMessageTools[NAME] extends { input: infer INPUT } - ? INPUT - : never - > & { dynamic?: false }; - }> - | (ToolCall & { dynamic: true }); + [NAME in keyof InferUIMessageTools]: ToolCall< + NAME & string, + InferUIMessageTools[NAME] extends { input: infer INPUT } + ? INPUT + : never + > & { dynamic?: false }; + }> + | (ToolCall & { dynamic: true }); export type InferUIMessagePart = UIMessagePart< InferUIMessageData,