@convex-dev/agent
Version:
A agent component for Convex.
1,203 lines (1,202 loc) • 92.4 kB
TypeScript
/**
* Generated `ComponentApi` utility.
*
* THIS CODE IS AUTOMATICALLY GENERATED.
*
* To regenerate, run `npx convex dev`.
* @module
*/
import type { FunctionReference } from "convex/server";
/**
* A utility for referencing a Convex component's exposed API.
*
* Useful when expecting a parameter like `components.myComponent`.
* Usage:
* ```ts
* async function myFunction(ctx: QueryCtx, component: ComponentApi) {
* return ctx.runQuery(component.someFile.someQuery, { ...args });
* }
* ```
*/
export type ComponentApi<Name extends string | undefined = string | undefined> = {
apiKeys: {
destroy: FunctionReference<"mutation", "internal", {
apiKey?: string;
name?: string;
}, "missing" | "deleted" | "name mismatch" | "must provide either apiKey or name", Name>;
issue: FunctionReference<"mutation", "internal", {
name?: string;
}, string, Name>;
validate: FunctionReference<"query", "internal", {
apiKey: string;
}, boolean, Name>;
};
files: {
addFile: FunctionReference<"mutation", "internal", {
filename?: string;
hash: string;
mimeType: string;
storageId: string;
}, {
fileId: string;
storageId: string;
}, Name>;
copyFile: FunctionReference<"mutation", "internal", {
fileId: string;
}, null, Name>;
deleteFiles: FunctionReference<"mutation", "internal", {
fileIds: Array<string>;
force?: boolean;
}, Array<string>, Name>;
get: FunctionReference<"query", "internal", {
fileId: string;
}, null | {
_creationTime: number;
_id: string;
filename?: string;
hash: string;
lastTouchedAt: number;
mimeType: string;
refcount: number;
storageId: string;
}, Name>;
getFilesToDelete: FunctionReference<"query", "internal", {
paginationOpts: {
cursor: string | null;
endCursor?: string | null;
id?: number;
maximumBytesRead?: number;
maximumRowsRead?: number;
numItems: number;
};
}, {
continueCursor: string;
isDone: boolean;
page: Array<{
_creationTime: number;
_id: string;
filename?: string;
hash: string;
lastTouchedAt: number;
mimeType: string;
refcount: number;
storageId: string;
}>;
}, Name>;
useExistingFile: FunctionReference<"mutation", "internal", {
filename?: string;
hash: string;
}, null | {
fileId: string;
storageId: string;
}, Name>;
};
messages: {
addMessages: FunctionReference<"mutation", "internal", {
agentName?: string;
embeddings?: {
dimension: 128 | 256 | 512 | 768 | 1024 | 1408 | 1536 | 2048 | 3072 | 4096;
model: string;
vectors: Array<Array<number> | null>;
};
failPendingSteps?: boolean;
hideFromUserIdSearch?: boolean;
messages: Array<{
error?: string;
fileIds?: Array<string>;
finishReason?: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
message: {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
image: string | ArrayBuffer;
mimeType?: string;
providerOptions?: Record<string, Record<string, any>>;
type: "image";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "user";
} | {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
} | {
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
data: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "redacted-reasoning";
} | {
args: any;
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
toolCallId: string;
toolName: string;
type: "tool-call";
} | {
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
} | {
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "assistant";
} | {
content: Array<{
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "tool";
} | {
content: string;
providerOptions?: Record<string, Record<string, any>>;
role: "system";
};
model?: string;
provider?: string;
providerMetadata?: Record<string, Record<string, any>>;
reasoning?: string;
reasoningDetails?: Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
signature?: string;
text: string;
type: "text";
} | {
data: string;
type: "redacted";
}>;
sources?: Array<{
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type?: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
status?: "pending" | "success" | "failed";
text?: string;
usage?: {
cachedInputTokens?: number;
completionTokens: number;
promptTokens: number;
reasoningTokens?: number;
totalTokens: number;
};
warnings?: Array<{
details?: string;
setting: string;
type: "unsupported-setting";
} | {
details?: string;
tool: any;
type: "unsupported-tool";
} | {
message: string;
type: "other";
}>;
}>;
pendingMessageId?: string;
promptMessageId?: string;
threadId: string;
userId?: string;
}, {
messages: Array<{
_creationTime: number;
_id: string;
agentName?: string;
embeddingId?: string;
error?: string;
fileIds?: Array<string>;
finishReason?: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
id?: string;
message?: {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
image: string | ArrayBuffer;
mimeType?: string;
providerOptions?: Record<string, Record<string, any>>;
type: "image";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "user";
} | {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
} | {
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
data: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "redacted-reasoning";
} | {
args: any;
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
toolCallId: string;
toolName: string;
type: "tool-call";
} | {
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
} | {
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "assistant";
} | {
content: Array<{
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "tool";
} | {
content: string;
providerOptions?: Record<string, Record<string, any>>;
role: "system";
};
model?: string;
order: number;
provider?: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
reasoning?: string;
reasoningDetails?: Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
signature?: string;
text: string;
type: "text";
} | {
data: string;
type: "redacted";
}>;
sources?: Array<{
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type?: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
status: "pending" | "success" | "failed";
stepOrder: number;
text?: string;
threadId: string;
tool: boolean;
usage?: {
cachedInputTokens?: number;
completionTokens: number;
promptTokens: number;
reasoningTokens?: number;
totalTokens: number;
};
userId?: string;
warnings?: Array<{
details?: string;
setting: string;
type: "unsupported-setting";
} | {
details?: string;
tool: any;
type: "unsupported-tool";
} | {
message: string;
type: "other";
}>;
}>;
}, Name>;
cloneThread: FunctionReference<"action", "internal", {
batchSize?: number;
copyUserIdForVectorSearch?: boolean;
excludeToolMessages?: boolean;
insertAtOrder?: number;
limit?: number;
sourceThreadId: string;
statuses?: Array<"pending" | "success" | "failed">;
targetThreadId: string;
upToAndIncludingMessageId?: string;
}, number, Name>;
deleteByIds: FunctionReference<"mutation", "internal", {
messageIds: Array<string>;
}, Array<string>, Name>;
deleteByOrder: FunctionReference<"mutation", "internal", {
endOrder: number;
endStepOrder?: number;
startOrder: number;
startStepOrder?: number;
threadId: string;
}, {
isDone: boolean;
lastOrder?: number;
lastStepOrder?: number;
}, Name>;
finalizeMessage: FunctionReference<"mutation", "internal", {
messageId: string;
result: {
status: "success";
} | {
error: string;
status: "failed";
};
}, null, Name>;
getMessagesByIds: FunctionReference<"query", "internal", {
messageIds: Array<string>;
}, Array<null | {
_creationTime: number;
_id: string;
agentName?: string;
embeddingId?: string;
error?: string;
fileIds?: Array<string>;
finishReason?: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
id?: string;
message?: {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
image: string | ArrayBuffer;
mimeType?: string;
providerOptions?: Record<string, Record<string, any>>;
type: "image";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "user";
} | {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
} | {
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
data: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "redacted-reasoning";
} | {
args: any;
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
toolCallId: string;
toolName: string;
type: "tool-call";
} | {
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
} | {
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "assistant";
} | {
content: Array<{
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "tool";
} | {
content: string;
providerOptions?: Record<string, Record<string, any>>;
role: "system";
};
model?: string;
order: number;
provider?: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
reasoning?: string;
reasoningDetails?: Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
signature?: string;
text: string;
type: "text";
} | {
data: string;
type: "redacted";
}>;
sources?: Array<{
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type?: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
status: "pending" | "success" | "failed";
stepOrder: number;
text?: string;
threadId: string;
tool: boolean;
usage?: {
cachedInputTokens?: number;
completionTokens: number;
promptTokens: number;
reasoningTokens?: number;
totalTokens: number;
};
userId?: string;
warnings?: Array<{
details?: string;
setting: string;
type: "unsupported-setting";
} | {
details?: string;
tool: any;
type: "unsupported-tool";
} | {
message: string;
type: "other";
}>;
}>, Name>;
getMessageSearchFields: FunctionReference<"query", "internal", {
messageId: string;
}, {
embedding?: Array<number>;
embeddingModel?: string;
text?: string;
}, Name>;
listMessagesByThreadId: FunctionReference<"query", "internal", {
excludeToolMessages?: boolean;
order: "asc" | "desc";
paginationOpts?: {
cursor: string | null;
endCursor?: string | null;
id?: number;
maximumBytesRead?: number;
maximumRowsRead?: number;
numItems: number;
};
statuses?: Array<"pending" | "success" | "failed">;
threadId: string;
upToAndIncludingMessageId?: string;
}, {
continueCursor: string;
isDone: boolean;
page: Array<{
_creationTime: number;
_id: string;
agentName?: string;
embeddingId?: string;
error?: string;
fileIds?: Array<string>;
finishReason?: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
id?: string;
message?: {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
image: string | ArrayBuffer;
mimeType?: string;
providerOptions?: Record<string, Record<string, any>>;
type: "image";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "user";
} | {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
} | {
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
data: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "redacted-reasoning";
} | {
args: any;
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
toolCallId: string;
toolName: string;
type: "tool-call";
} | {
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
} | {
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "assistant";
} | {
content: Array<{
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";
value: any;
} | {
type: "error-text";
value: string;
} | {
type: "error-json";
value: any;
} | {
type: "content";
value: Array<{
text: string;
type: "text";
} | {
data: string;
mediaType: string;
type: "media";
}>;
};
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
result?: any;
toolCallId: string;
toolName: string;
type: "tool-result";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "tool";
} | {
content: string;
providerOptions?: Record<string, Record<string, any>>;
role: "system";
};
model?: string;
order: number;
provider?: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
reasoning?: string;
reasoningDetails?: Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
signature?: string;
text: string;
type: "text";
} | {
data: string;
type: "redacted";
}>;
sources?: Array<{
id: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "url";
title?: string;
type?: "source";
url: string;
} | {
filename?: string;
id: string;
mediaType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
sourceType: "document";
title: string;
type: "source";
}>;
status: "pending" | "success" | "failed";
stepOrder: number;
text?: string;
threadId: string;
tool: boolean;
usage?: {
cachedInputTokens?: number;
completionTokens: number;
promptTokens: number;
reasoningTokens?: number;
totalTokens: number;
};
userId?: string;
warnings?: Array<{
details?: string;
setting: string;
type: "unsupported-setting";
} | {
details?: string;
tool: any;
type: "unsupported-tool";
} | {
message: string;
type: "other";
}>;
}>;
pageStatus?: "SplitRecommended" | "SplitRequired" | null;
splitCursor?: string | null;
}, Name>;
searchMessages: FunctionReference<"action", "internal", {
embedding?: Array<number>;
embeddingModel?: string;
limit: number;
messageRange?: {
after: number;
before: number;
};
searchAllMessagesForUserId?: string;
targetMessageId?: string;
text?: string;
textSearch?: boolean;
threadId?: string;
vectorScoreThreshold?: number;
vectorSearch?: boolean;
}, Array<{
_creationTime: number;
_id: string;
agentName?: string;
embeddingId?: string;
error?: string;
fileIds?: Array<string>;
finishReason?: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
id?: string;
message?: {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
image: string | ArrayBuffer;
mimeType?: string;
providerOptions?: Record<string, Record<string, any>>;
type: "image";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
}>;
providerOptions?: Record<string, Record<string, any>>;
role: "user";
} | {
content: string | Array<{
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
text: string;
type: "text";
} | {
data: string | ArrayBuffer;
filename?: string;
mimeType: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "file";
} | {
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
signature?: string;
text: string;
type: "reasoning";
} | {
data: string;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
type: "redacted-reasoning";
} | {
args: any;
providerExecuted?: boolean;
providerMetadata?: Record<string, Record<string, any>>;
providerOptions?: Record<string, Record<string, any>>;
toolCallId: string;
toolName: string;
type: "tool-call";
} | {
args?: any;
experimental_content?: Array<{
text: string;
type: "text";
} | {
data: string;
mimeType?: string;
type: "image";
}>;
isError?: boolean;
output?: {
type: "text";
value: string;
} | {
type: "json";