@convex-dev/agent
Version:
A agent component for Convex.
1,107 lines • 215 kB
TypeScript
import { type AsyncIterableStream, type ChunkDetector, type StreamTextTransform, type TextStreamPart, type ToolSet, type UIMessageChunk } from "ai";
import { type ProviderOptions, type StreamArgs, type StreamMessage } from "../validators.js";
import type { ActionCtx, AgentComponent, MutationCtx, QueryCtx, SyncStreamsReturnValue } from "./types.js";
export declare const vStreamMessagesReturnValue: import("convex/values").VObject<{
splitCursor?: string | null | undefined;
pageStatus?: "SplitRecommended" | "SplitRequired" | null | undefined;
streams?: {
messages: {
userId?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
format?: "UIMessageChunk" | "TextStreamPart" | undefined;
status: "streaming" | "finished" | "aborted";
order: number;
stepOrder: number;
streamId: string;
}[];
kind: "list";
} | {
kind: "deltas";
deltas: {
streamId: string;
start: number;
end: number;
parts: any[];
}[];
} | undefined;
page: {
id?: string | undefined;
userId?: string | undefined;
embeddingId?: string | undefined;
fileIds?: string[] | undefined;
error?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
message?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "user";
content: string | ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
type: "image";
image: string | ArrayBuffer;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
filename?: string | undefined;
type: "file";
data: string | ArrayBuffer;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "assistant";
content: string | ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
filename?: string | undefined;
type: "file";
data: string | ArrayBuffer;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
signature?: string | undefined;
type: "reasoning";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "redacted-reasoning";
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
type: "tool-call";
toolCallId: string;
toolName: string;
input: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
input?: any;
providerExecuted?: boolean | undefined;
type: "tool-call";
toolCallId: string;
toolName: string;
args: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
output?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
reason?: string | undefined;
type: "execution-denied";
} | {
type: "content";
value: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
type: "media";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
type: "file-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "custom";
})[];
} | undefined;
result?: any;
isError?: boolean | undefined;
experimental_content?: ({
type: "text";
text: string;
} | {
mimeType?: string | undefined;
type: "image";
data: string;
})[] | undefined;
type: "tool-result";
toolCallId: string;
toolName: string;
} | {
title?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
id: string;
type: "source";
url: string;
sourceType: "url";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
id: string;
title: string;
type: "source";
mediaType: string;
sourceType: "document";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "tool-approval-request";
toolCallId: string;
approvalId: string;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "tool";
content: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
output?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
reason?: string | undefined;
type: "execution-denied";
} | {
type: "content";
value: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
type: "media";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
type: "file-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "custom";
})[];
} | undefined;
result?: any;
isError?: boolean | undefined;
experimental_content?: ({
type: "text";
text: string;
} | {
mimeType?: string | undefined;
type: "image";
data: string;
})[] | undefined;
type: "tool-result";
toolCallId: string;
toolName: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
providerExecuted?: boolean | undefined;
reason?: string | undefined;
type: "tool-approval-response";
approvalId: string;
approved: boolean;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "system";
content: string;
} | undefined;
text?: string | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
reasoning?: string | undefined;
usage?: {
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
promptTokens: number;
completionTokens: number;
totalTokens: number;
} | undefined;
sources?: ({
title?: string | undefined;
type?: "source" | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
id: string;
url: string;
sourceType: "url";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
id: string;
title: string;
type: "source";
mediaType: string;
sourceType: "document";
})[] | undefined;
warnings?: ({
details?: string | undefined;
type: "unsupported-setting";
setting: string;
} | {
details?: string | undefined;
type: "unsupported-tool";
tool: any;
} | {
type: "other";
message: string;
})[] | undefined;
finishReason?: "error" | "length" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
reasoningDetails?: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
signature?: string | undefined;
type: "reasoning";
text: string;
} | {
signature?: string | undefined;
type: "text";
text: string;
} | {
type: "redacted";
data: string;
})[] | undefined;
status: "pending" | "success" | "failed";
order: number;
_creationTime: number;
threadId: string;
stepOrder: number;
tool: boolean;
_id: string;
}[];
continueCursor: string;
isDone: boolean;
}, {
streams: import("convex/values").VUnion<{
messages: {
userId?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
format?: "UIMessageChunk" | "TextStreamPart" | undefined;
status: "streaming" | "finished" | "aborted";
order: number;
stepOrder: number;
streamId: string;
}[];
kind: "list";
} | {
kind: "deltas";
deltas: {
streamId: string;
start: number;
end: number;
parts: any[];
}[];
} | undefined, [import("convex/values").VObject<{
messages: {
userId?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
format?: "UIMessageChunk" | "TextStreamPart" | undefined;
status: "streaming" | "finished" | "aborted";
order: number;
stepOrder: number;
streamId: string;
}[];
kind: "list";
}, {
kind: import("convex/values").VLiteral<"list", "required">;
messages: import("convex/values").VArray<{
userId?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
format?: "UIMessageChunk" | "TextStreamPart" | undefined;
status: "streaming" | "finished" | "aborted";
order: number;
stepOrder: number;
streamId: string;
}[], import("convex/values").VObject<{
userId?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
format?: "UIMessageChunk" | "TextStreamPart" | undefined;
status: "streaming" | "finished" | "aborted";
order: number;
stepOrder: number;
streamId: string;
}, {
streamId: import("convex/values").VString<string, "required">;
status: import("convex/values").VUnion<"streaming" | "finished" | "aborted", [import("convex/values").VLiteral<"streaming", "required">, import("convex/values").VLiteral<"finished", "required">, import("convex/values").VLiteral<"aborted", "required">], "required", never>;
format: import("convex/values").VUnion<"UIMessageChunk" | "TextStreamPart" | undefined, [import("convex/values").VLiteral<"UIMessageChunk", "required">, import("convex/values").VLiteral<"TextStreamPart", "required">], "optional", never>;
order: import("convex/values").VFloat64<number, "required">;
stepOrder: import("convex/values").VFloat64<number, "required">;
userId: import("convex/values").VString<string | undefined, "optional">;
agentName: import("convex/values").VString<string | undefined, "optional">;
model: import("convex/values").VString<string | undefined, "optional">;
provider: import("convex/values").VString<string | undefined, "optional">;
providerOptions: import("convex/values").VRecord<Record<string, Record<string, any>> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VRecord<Record<string, any>, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "required", string>, "optional", string>;
}, "required", "status" | "userId" | "order" | "stepOrder" | "agentName" | "model" | "provider" | "providerOptions" | `providerOptions.${string}` | "format" | "streamId">, "required">;
}, "required", "messages" | "kind">, import("convex/values").VObject<{
kind: "deltas";
deltas: {
streamId: string;
start: number;
end: number;
parts: any[];
}[];
}, {
kind: import("convex/values").VLiteral<"deltas", "required">;
deltas: import("convex/values").VArray<{
streamId: string;
start: number;
end: number;
parts: any[];
}[], import("convex/values").VObject<{
streamId: string;
start: number;
end: number;
parts: any[];
}, {
streamId: import("convex/values").VString<string, "required">;
start: import("convex/values").VFloat64<number, "required">;
end: import("convex/values").VFloat64<number, "required">;
parts: import("convex/values").VArray<any[], import("convex/values").VAny<any, "required", string>, "required">;
}, "required", "streamId" | "start" | "end" | "parts">, "required">;
}, "required", "kind" | "deltas">], "optional", "messages" | "kind" | "deltas">;
page: import("convex/values").VArray<{
id?: string | undefined;
userId?: string | undefined;
embeddingId?: string | undefined;
fileIds?: string[] | undefined;
error?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
message?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "user";
content: string | ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
type: "image";
image: string | ArrayBuffer;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
filename?: string | undefined;
type: "file";
data: string | ArrayBuffer;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "assistant";
content: string | ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
filename?: string | undefined;
type: "file";
data: string | ArrayBuffer;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
signature?: string | undefined;
type: "reasoning";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "redacted-reasoning";
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
type: "tool-call";
toolCallId: string;
toolName: string;
input: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
input?: any;
providerExecuted?: boolean | undefined;
type: "tool-call";
toolCallId: string;
toolName: string;
args: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
output?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
reason?: string | undefined;
type: "execution-denied";
} | {
type: "content";
value: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
type: "media";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
type: "file-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "custom";
})[];
} | undefined;
result?: any;
isError?: boolean | undefined;
experimental_content?: ({
type: "text";
text: string;
} | {
mimeType?: string | undefined;
type: "image";
data: string;
})[] | undefined;
type: "tool-result";
toolCallId: string;
toolName: string;
} | {
title?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
id: string;
type: "source";
url: string;
sourceType: "url";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
id: string;
title: string;
type: "source";
mediaType: string;
sourceType: "document";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "tool-approval-request";
toolCallId: string;
approvalId: string;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "tool";
content: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
output?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
reason?: string | undefined;
type: "execution-denied";
} | {
type: "content";
value: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
type: "media";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
type: "file-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "custom";
})[];
} | undefined;
result?: any;
isError?: boolean | undefined;
experimental_content?: ({
type: "text";
text: string;
} | {
mimeType?: string | undefined;
type: "image";
data: string;
})[] | undefined;
type: "tool-result";
toolCallId: string;
toolName: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
providerExecuted?: boolean | undefined;
reason?: string | undefined;
type: "tool-approval-response";
approvalId: string;
approved: boolean;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "system";
content: string;
} | undefined;
text?: string | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
reasoning?: string | undefined;
usage?: {
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
promptTokens: number;
completionTokens: number;
totalTokens: number;
} | undefined;
sources?: ({
title?: string | undefined;
type?: "source" | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
id: string;
url: string;
sourceType: "url";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
id: string;
title: string;
type: "source";
mediaType: string;
sourceType: "document";
})[] | undefined;
warnings?: ({
details?: string | undefined;
type: "unsupported-setting";
setting: string;
} | {
details?: string | undefined;
type: "unsupported-tool";
tool: any;
} | {
type: "other";
message: string;
})[] | undefined;
finishReason?: "error" | "length" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
reasoningDetails?: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
signature?: string | undefined;
type: "reasoning";
text: string;
} | {
signature?: string | undefined;
type: "text";
text: string;
} | {
type: "redacted";
data: string;
})[] | undefined;
status: "pending" | "success" | "failed";
order: number;
_creationTime: number;
threadId: string;
stepOrder: number;
tool: boolean;
_id: string;
}[], import("convex/values").VObject<{
id?: string | undefined;
userId?: string | undefined;
embeddingId?: string | undefined;
fileIds?: string[] | undefined;
error?: string | undefined;
agentName?: string | undefined;
model?: string | undefined;
provider?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
message?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "user";
content: string | ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
type: "image";
image: string | ArrayBuffer;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
filename?: string | undefined;
type: "file";
data: string | ArrayBuffer;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "assistant";
content: string | ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
mediaType?: string | undefined;
mimeType?: string | undefined;
filename?: string | undefined;
type: "file";
data: string | ArrayBuffer;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
signature?: string | undefined;
type: "reasoning";
text: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "redacted-reasoning";
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
type: "tool-call";
toolCallId: string;
toolName: string;
input: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
input?: any;
providerExecuted?: boolean | undefined;
type: "tool-call";
toolCallId: string;
toolName: string;
args: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
output?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
reason?: string | undefined;
type: "execution-denied";
} | {
type: "content";
value: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
type: "media";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
type: "file-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "custom";
})[];
} | undefined;
result?: any;
isError?: boolean | undefined;
experimental_content?: ({
type: "text";
text: string;
} | {
mimeType?: string | undefined;
type: "image";
data: string;
})[] | undefined;
type: "tool-result";
toolCallId: string;
toolName: string;
} | {
title?: string | undefined;
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
id: string;
type: "source";
url: string;
sourceType: "url";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
id: string;
title: string;
type: "source";
mediaType: string;
sourceType: "document";
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
type: "tool-approval-request";
toolCallId: string;
approvalId: string;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "tool";
content: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
args?: any;
providerExecuted?: boolean | undefined;
output?: {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-text";
value: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "error-json";
value: any;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
reason?: string | undefined;
type: "execution-denied";
} | {
type: "content";
value: ({
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "text";
text: string;
} | {
type: "media";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
filename?: string | undefined;
type: "file-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-data";
mediaType: string;
data: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-url";
url: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "image-file-id";
fileId: string | Record<string, string>;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
type: "custom";
})[];
} | undefined;
result?: any;
isError?: boolean | undefined;
experimental_content?: ({
type: "text";
text: string;
} | {
mimeType?: string | undefined;
type: "image";
data: string;
})[] | undefined;
type: "tool-result";
toolCallId: string;
toolName: string;
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
providerExecuted?: boolean | undefined;
reason?: string | undefined;
type: "tool-approval-response";
approvalId: string;
approved: boolean;
})[];
} | {
providerOptions?: Record<string, Record<string, any>> | undefined;
role: "system";
content: string;
} | undefined;
text?: string | undefined;
providerMetadata?: Record<string, Record<string, any>> | undefined;
reasoning?: string | undefined;
usage?: {
reasoningTokens?: number | undefined;
cachedInputTokens?: number | undefined;
promptTokens: number;
completionTokens: number;
totalTokens: number;
} | undefined;
sources?: ({
title?: string | undefined;
type?: "source" | undefined;
providerOptions?: Record<string, Record<string, any>> | u