@convex-dev/agent
Version:
A agent component for Convex.
50 lines • 2.8 kB
TypeScript
import type { FileUIPart } from "@ai-sdk/ui-utils";
import { type Message as AIMessage, type AssistantContent, type CoreMessage, type DataContent, type FilePart, type GenerateObjectResult, type ImagePart, type StepResult, type ToolContent, type ToolSet, type UserContent } from "ai";
import type { MessageWithMetadata } from "./validators.js";
import type { ActionCtx, AgentComponent } from "./client/types.js";
import type { RunMutationCtx } from "./client/types.js";
export type AIMessageWithoutId = Omit<AIMessage, "id">;
export type SerializeUrlsAndUint8Arrays<T> = T extends URL ? string : T extends Uint8Array | ArrayBufferLike ? ArrayBuffer : T extends Array<infer Inner> ? Array<SerializeUrlsAndUint8Arrays<Inner>> : T extends Record<string, any> ? {
[K in keyof T]: SerializeUrlsAndUint8Arrays<T[K]>;
} : T;
export type Content = UserContent | AssistantContent | ToolContent;
export type SerializedContent = SerializeUrlsAndUint8Arrays<Content>;
export type SerializedMessage = SerializeUrlsAndUint8Arrays<CoreMessage>;
export declare function serializeMessage(ctx: ActionCtx | RunMutationCtx, component: AgentComponent, messageWithId: CoreMessage & {
id?: string;
}): Promise<{
message: SerializedMessage;
fileIds?: string[];
}>;
export declare function deserializeMessage(message: SerializedMessage): CoreMessage;
export declare function serializeNewMessagesInStep<TOOLS extends ToolSet>(ctx: ActionCtx, component: AgentComponent, step: StepResult<TOOLS>, metadata: {
model: string;
provider: string;
}): Promise<MessageWithMetadata[]>;
export declare function serializeObjectResult(result: GenerateObjectResult<unknown>, metadata: {
model: string;
provider: string;
}): {
messages: MessageWithMetadata[];
};
export declare function serializeContent(ctx: ActionCtx | RunMutationCtx, component: AgentComponent, content: Content): Promise<{
content: SerializedContent;
fileIds?: string[];
}>;
export declare function deserializeContent(content: SerializedContent): Content;
/**
* Return a best-guess MIME type based on the magic-number signature
* found at the start of an ArrayBuffer.
*
* @param buf – the source ArrayBuffer
* @returns the detected MIME type, or `"application/octet-stream"` if unknown
*/
export declare function guessMimeType(buf: ArrayBuffer | string): string;
export declare function serializeDataOrUrl(dataOrUrl: DataContent | URL): ArrayBuffer | string;
export declare function deserializeUrl(urlOrString: string | ArrayBuffer): URL | DataContent;
export declare function toUIFilePart(part: ImagePart | FilePart): FileUIPart;
export declare function promptOrMessagesToCoreMessages(args: {
prompt?: string;
messages?: CoreMessage[] | AIMessageWithoutId[];
}): CoreMessage[];
//# sourceMappingURL=mapping.d.ts.map