Genkit JS API reference
    Preparing search index...

    Class GenerateResponse<O>

    GenerateResponse is the result from a generate() call and contains one or more generated candidate messages.

    Type Parameters

    • O = unknown

    Implements

    Index

    Constructors

    • Type Parameters

      • O = unknown

      Parameters

      • response: {
            candidates?: {
                custom?: unknown;
                finishMessage?: string;
                finishReason:
                    | "length"
                    | "stop"
                    | "other"
                    | "unknown"
                    | "interrupted"
                    | "blocked"
                    | "aborted";
                index: number;
                message: {
                    content: (
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text: string;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media: { contentType?: string; url: string };
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest: {
                                input?: unknown;
                                name: string;
                                partial?: boolean;
                                ref?: string;
                            };
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse: { name: string; output?: unknown; ref?: (...) | (...) } & {
                                content?: (...) | (...);
                            };
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom: Record<string, any>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning: string;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource: { uri: string };
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                    )[];
                    metadata?: Record<string, unknown>;
                    role: "user" | "model" | "tool" | "system";
                };
                usage?: {
                    cachedContentTokens?: number;
                    custom?: Record<string, number>;
                    inputAudioFiles?: number;
                    inputCharacters?: number;
                    inputImages?: number;
                    inputTokens?: number;
                    inputVideos?: number;
                    outputAudioFiles?: number;
                    outputCharacters?: number;
                    outputImages?: number;
                    outputTokens?: number;
                    outputVideos?: number;
                    thoughtsTokens?: number;
                    totalTokens?: number;
                };
            }[];
            custom?: unknown;
            finishMessage?: string;
            finishReason?: | "length"
            | "stop"
            | "other"
            | "unknown"
            | "interrupted"
            | "blocked"
            | "aborted";
            latencyMs?: number;
            message?: {
                content: (
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text: string;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media: { contentType?: string; url: string };
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest: {
                            input?: unknown;
                            name: string;
                            partial?: boolean;
                            ref?: string;
                        };
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse: { name: string; output?: unknown; ref?: string } & {
                            content?: (
                                (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                                | (...)
                            )[];
                        };
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom: Record<string, any>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning: string;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource: { uri: string };
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                )[];
                metadata?: Record<string, unknown>;
                role: "user" | "model" | "tool" | "system";
            };
            operation?: {
                action?: string;
                done?: boolean;
                error?: z.objectOutputType<
                    { message: z.ZodString },
                    z.ZodTypeAny,
                    "passthrough",
                >;
                id: string;
                metadata?: Record<string, any>;
                output?: any;
            };
            raw?: unknown;
            request?: {
                candidates?: number;
                config?: any;
                docs?: {
                    content: (
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text: string;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media: { contentType?: (...) | (...); url: string };
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest: {
                                input?: unknown;
                                name: string;
                                partial?: (...) | (...) | (...);
                                ref?: (...) | (...);
                            };
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse: { name: ...; output?: ...; ref?: ... } & {
                                content?: ...;
                            };
                        }
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom: Record<string, any>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning: string;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<(...), (...)>;
                            reasoning?: undefined;
                            resource: { uri: string };
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                    )[];
                    metadata?: Record<string, any>;
                }[];
                messages: {
                    content: (
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text: string;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media: { contentType?: string; url: string };
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest: {
                                input?: unknown;
                                name: string;
                                partial?: boolean;
                                ref?: string;
                            };
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse: { name: string; output?: unknown; ref?: (...) | (...) } & {
                                content?: (...) | (...);
                            };
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom: Record<string, any>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning: string;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: Record<string, unknown>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: Record<string, unknown>;
                            reasoning?: undefined;
                            resource: { uri: string };
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                    )[];
                    metadata?: Record<string, unknown>;
                    role: "user" | "model" | "tool" | "system";
                }[];
                output?: {
                    constrained?: boolean;
                    contentType?: string;
                    format?: string;
                    schema?: Record<string, any>;
                };
                toolChoice?: "required"
                | "auto"
                | "none";
                tools?: {
                    description: string;
                    inputSchema?: Record<string, any> | null;
                    metadata?: Record<string, any>;
                    name: string;
                    outputSchema?: Record<string, any> | null;
                }[];
            };
            usage?: {
                cachedContentTokens?: number;
                custom?: Record<string, number>;
                inputAudioFiles?: number;
                inputCharacters?: number;
                inputImages?: number;
                inputTokens?: number;
                inputVideos?: number;
                outputAudioFiles?: number;
                outputCharacters?: number;
                outputImages?: number;
                outputTokens?: number;
                outputVideos?: number;
                thoughtsTokens?: number;
                totalTokens?: number;
            };
        }
      • Optionaloptions: { parser?: MessageParser<O>; request?: GenerateRequest<z.ZodTypeAny> }

      Returns GenerateResponse<O>

    Properties

    custom: unknown

    Provider-specific response data.

    finishMessage?: string

    Additional information about why the model stopped generating, if any.

    finishReason:
        | "length"
        | "stop"
        | "other"
        | "unknown"
        | "interrupted"
        | "blocked"
        | "aborted"

    The reason generation stopped for this request.

    message?: Message<O>

    The generated message.

    model?: string

    Name of the model used.

    operation?: Operation<
        {
            candidates?: {
                custom?: unknown;
                finishMessage?: string;
                finishReason: | "length"
                | "stop"
                | "other"
                | "unknown"
                | "interrupted"
                | "blocked"
                | "aborted";
                index: number;
                message: {
                    content: (
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text: string;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media: { contentType?: ...; url: ... };
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest: { input?: ...; name: ...; partial?: ...; ref?: ... };
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse: (...) & (...);
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning: string;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource: { uri: ... };
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                    )[];
                    metadata?: Record<string, unknown>;
                    role: "user" | "model" | "tool" | "system";
                };
                usage?: {
                    cachedContentTokens?: number;
                    custom?: Record<string, number>;
                    inputAudioFiles?: number;
                    inputCharacters?: number;
                    inputImages?: number;
                    inputTokens?: number;
                    inputVideos?: number;
                    outputAudioFiles?: number;
                    outputCharacters?: number;
                    outputImages?: number;
                    outputTokens?: number;
                    outputVideos?: number;
                    thoughtsTokens?: number;
                    totalTokens?: number;
                };
            }[];
            custom?: unknown;
            finishMessage?: string;
            finishReason?: | "length"
            | "stop"
            | "other"
            | "unknown"
            | "interrupted"
            | "blocked"
            | "aborted";
            latencyMs?: number;
            message?: {
                content: (
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text: string;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media: { contentType?: string; url: string };
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest: {
                            input?: unknown;
                            name: string;
                            partial?: boolean;
                            ref?: string;
                        };
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse: { name: string; output?: unknown; ref?: (...) | (...) } & {
                            content?: (...) | (...);
                        };
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom: Record<string, any>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning: string;
                        resource?: undefined;
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                    | {
                        custom?: Record<string, unknown>;
                        data?: unknown;
                        media?: undefined;
                        metadata?: Record<string, unknown>;
                        reasoning?: undefined;
                        resource: { uri: string };
                        text?: undefined;
                        toolRequest?: undefined;
                        toolResponse?: undefined;
                    }
                )[];
                metadata?: Record<string, unknown>;
                role: "user" | "model" | "tool" | "system";
            };
            operation?: {
                action?: string;
                done?: boolean;
                error?: z.objectOutputType<
                    { message: z.ZodString },
                    z.ZodTypeAny,
                    "passthrough",
                >;
                id: string;
                metadata?: Record<string, any>;
                output?: any;
            };
            raw?: unknown;
            request?: {
                candidates?: number;
                config?: any;
                docs?: {
                    content: (
                        | {
                            custom?: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource?: ...;
                            text: ...;
                            toolRequest?: ...;
                            toolResponse?: ...;
                        }
                        | {
                            custom?: ...;
                            data?: ...;
                            media: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource?: ...;
                            text?: ...;
                            toolRequest?: ...;
                            toolResponse?: ...;
                        }
                        | {
                            custom?: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource?: ...;
                            text?: ...;
                            toolRequest: ...;
                            toolResponse?: ...;
                        }
                        | {
                            custom?: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource?: ...;
                            text?: ...;
                            toolRequest?: ...;
                            toolResponse: ...;
                        }
                        | {
                            custom?: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource?: ...;
                            text?: ...;
                            toolRequest?: ...;
                            toolResponse?: ...;
                        }
                        | {
                            custom: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource?: ...;
                            text?: ...;
                            toolRequest?: ...;
                            toolResponse?: ...;
                        }
                        | {
                            custom?: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning: ...;
                            resource?: ...;
                            text?: ...;
                            toolRequest?: ...;
                            toolResponse?: ...;
                        }
                        | {
                            custom?: ...;
                            data?: ...;
                            media?: ...;
                            metadata?: ...;
                            reasoning?: ...;
                            resource: ...;
                            text?: ...;
                            toolRequest?: ...;
                            toolResponse?: ...;
                        }
                    )[];
                    metadata?: Record<string, any>;
                }[];
                messages: {
                    content: (
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text: string;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media: { contentType?: ...; url: ... };
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest: { input?: ...; name: ...; partial?: ...; ref?: ... };
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse: (...) & (...);
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom: Record<(...), (...)>;
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning: string;
                            resource?: undefined;
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                        | {
                            custom?: (...)
                            | (...);
                            data?: unknown;
                            media?: undefined;
                            metadata?: (...) | (...);
                            reasoning?: undefined;
                            resource: { uri: ... };
                            text?: undefined;
                            toolRequest?: undefined;
                            toolResponse?: undefined;
                        }
                    )[];
                    metadata?: Record<string, unknown>;
                    role: "user" | "model" | "tool" | "system";
                }[];
                output?: {
                    constrained?: boolean;
                    contentType?: string;
                    format?: string;
                    schema?: Record<string, any>;
                };
                toolChoice?: "required"
                | "auto"
                | "none";
                tools?: {
                    description: string;
                    inputSchema?: Record<string, any> | null;
                    metadata?: Record<string, any>;
                    name: string;
                    outputSchema?: Record<string, any> | null;
                }[];
            };
            usage?: {
                cachedContentTokens?: number;
                custom?: Record<string, number>;
                inputAudioFiles?: number;
                inputCharacters?: number;
                inputImages?: number;
                inputTokens?: number;
                inputVideos?: number;
                outputAudioFiles?: number;
                outputCharacters?: number;
                outputImages?: number;
                outputTokens?: number;
                outputVideos?: number;
                thoughtsTokens?: number;
                totalTokens?: number;
            };
        },
    >

    Model generation long running operation.

    parser?: MessageParser<O>

    The parser for output parsing of this response.

    raw: unknown

    Provider-specific response data.

    The request that generated this response.

    usage: {
        cachedContentTokens?: number;
        custom?: Record<string, number>;
        inputAudioFiles?: number;
        inputCharacters?: number;
        inputImages?: number;
        inputTokens?: number;
        inputVideos?: number;
        outputAudioFiles?: number;
        outputCharacters?: number;
        outputImages?: number;
        outputTokens?: number;
        outputVideos?: number;
        thoughtsTokens?: number;
        totalTokens?: number;
    }

    Usage information.

    Accessors

    • get data(): O | null

      Returns the first detected data part of the generated message.

      Returns O | null

      The first data part detected in the candidate (if any).

    • get interrupts(): {
          custom?: Record<string, unknown>;
          data?: unknown;
          media?: undefined;
          metadata?: Record<string, unknown>;
          reasoning?: undefined;
          resource?: undefined;
          text?: undefined;
          toolRequest: {
              input?: unknown;
              name: string;
              partial?: boolean;
              ref?: string;
          };
          toolResponse?: undefined;
      }[]

      Returns all tool requests annotated as interrupts found in the generated message.

      Returns {
          custom?: Record<string, unknown>;
          data?: unknown;
          media?: undefined;
          metadata?: Record<string, unknown>;
          reasoning?: undefined;
          resource?: undefined;
          text?: undefined;
          toolRequest: {
              input?: unknown;
              name: string;
              partial?: boolean;
              ref?: string;
          };
          toolResponse?: undefined;
      }[]

      A list of ToolRequestParts.

    • get media(): { contentType?: string; url: string } | null

      Returns the first detected media part in the generated message. Useful for extracting (for example) an image from a generation expected to create one.

      Returns { contentType?: string; url: string } | null

      The first detected media part in the candidate.

    • get messages(): {
          content: (
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text: string;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media: { contentType?: string; url: string };
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest: {
                      input?: unknown;
                      name: string;
                      partial?: boolean;
                      ref?: string;
                  };
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse: { name: string; output?: unknown; ref?: string } & {
                      content?: (
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                      )[];
                  };
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom: Record<string, any>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning: string;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource: { uri: string };
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
          )[];
          metadata?: Record<string, unknown>;
          role: "user" | "model" | "tool" | "system";
      }[]

      Returns the message history for the request by concatenating the model response to the list of messages from the request. The result of this method can be safely serialized to JSON for persistence in a database.

      Returns {
          content: (
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text: string;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media: { contentType?: string; url: string };
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest: {
                      input?: unknown;
                      name: string;
                      partial?: boolean;
                      ref?: string;
                  };
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse: { name: string; output?: unknown; ref?: string } & {
                      content?: (
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning: ...;
                              resource?: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                          | {
                              custom?: ...;
                              data?: ...;
                              media?: ...;
                              metadata?: ...;
                              reasoning?: ...;
                              resource: ...;
                              text?: ...;
                              toolRequest?: ...;
                              toolResponse?: ...;
                          }
                      )[];
                  };
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom: Record<string, any>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning: string;
                  resource?: undefined;
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
              | {
                  custom?: Record<string, unknown>;
                  data?: unknown;
                  media?: undefined;
                  metadata?: Record<string, unknown>;
                  reasoning?: undefined;
                  resource: { uri: string };
                  text?: undefined;
                  toolRequest?: undefined;
                  toolResponse?: undefined;
              }
          )[];
          metadata?: Record<string, unknown>;
          role: "user" | "model" | "tool" | "system";
      }[]

      A serializable list of messages compatible with generate({history}).

    • get output(): O | null

      If the generated message contains a data part, it is returned. Otherwise, the output() method extracts the first valid JSON object or array from the text contained in the selected candidate's message and returns it.

      Returns O | null

      The structured output contained in the selected candidate.

    • get reasoning(): string

      Concatenates all reasoning parts present in the generated message with no delimiter.

      Returns string

      A string of all concatenated reasoning parts.

    • get text(): string

      Concatenates all text parts present in the generated message with no delimiter.

      Returns string

      A string of all concatenated text parts.

    • get toolRequests(): {
          custom?: Record<string, unknown>;
          data?: unknown;
          media?: undefined;
          metadata?: Record<string, unknown>;
          reasoning?: undefined;
          resource?: undefined;
          text?: undefined;
          toolRequest: {
              input?: unknown;
              name: string;
              partial?: boolean;
              ref?: string;
          };
          toolResponse?: undefined;
      }[]

      Returns all tool request found in the generated message.

      Returns {
          custom?: Record<string, unknown>;
          data?: unknown;
          media?: undefined;
          metadata?: Record<string, unknown>;
          reasoning?: undefined;
          resource?: undefined;
          text?: undefined;
          toolRequest: {
              input?: unknown;
              name: string;
              partial?: boolean;
              ref?: string;
          };
          toolResponse?: undefined;
      }[]

      Array of all tool request found in the candidate.

    Methods

    • Throws an error if the response does not contain valid output.

      Returns void

    • Returns {
          custom?: unknown;
          finishMessage?: string;
          finishReason:
              | "length"
              | "stop"
              | "other"
              | "unknown"
              | "interrupted"
              | "blocked"
              | "aborted";
          latencyMs?: number;
          message?: {
              content: (
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource?: undefined;
                      text: string;
                      toolRequest?: undefined;
                      toolResponse?: undefined;
                  }
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media: { contentType?: string; url: string };
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource?: undefined;
                      text?: undefined;
                      toolRequest?: undefined;
                      toolResponse?: undefined;
                  }
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource?: undefined;
                      text?: undefined;
                      toolRequest: {
                          input?: unknown;
                          name: string;
                          partial?: boolean;
                          ref?: string;
                      };
                      toolResponse?: undefined;
                  }
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource?: undefined;
                      text?: undefined;
                      toolRequest?: undefined;
                      toolResponse: { name: string; output?: unknown; ref?: string } & {
                          content?: (
                              (...)
                              | (...)
                              | (...)
                              | (...)
                              | (...)
                              | (...)
                              | (...)
                              | (...)
                          )[];
                      };
                  }
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource?: undefined;
                      text?: undefined;
                      toolRequest?: undefined;
                      toolResponse?: undefined;
                  }
                  | {
                      custom: Record<string, any>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource?: undefined;
                      text?: undefined;
                      toolRequest?: undefined;
                      toolResponse?: undefined;
                  }
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning: string;
                      resource?: undefined;
                      text?: undefined;
                      toolRequest?: undefined;
                      toolResponse?: undefined;
                  }
                  | {
                      custom?: Record<string, unknown>;
                      data?: unknown;
                      media?: undefined;
                      metadata?: Record<string, unknown>;
                      reasoning?: undefined;
                      resource: { uri: string };
                      text?: undefined;
                      toolRequest?: undefined;
                      toolResponse?: undefined;
                  }
              )[];
              metadata?: Record<string, unknown>;
              role: "user" | "model" | "tool" | "system";
          };
          operation?: {
              action?: string;
              done?: boolean;
              error?: z.objectOutputType<
                  { message: z.ZodString },
                  z.ZodTypeAny,
                  "passthrough",
              >;
              id: string;
              metadata?: Record<string, any>;
              output?: any;
          };
          raw?: unknown;
          request?: {
              candidates?: number;
              config?: any;
              docs?: {
                  content: (
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text: string;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media: { contentType?: (...) | (...); url: string };
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest: {
                              input?: unknown;
                              name: string;
                              partial?: (...) | (...) | (...);
                              ref?: (...) | (...);
                          };
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse: { name: ...; output?: ...; ref?: ... } & {
                              content?: ...;
                          };
                      }
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom: Record<string, any>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning: string;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<(...), (...)>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<(...), (...)>;
                          reasoning?: undefined;
                          resource: { uri: string };
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                  )[];
                  metadata?: Record<string, any>;
              }[];
              messages: {
                  content: (
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text: string;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media: { contentType?: string; url: string };
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest: {
                              input?: unknown;
                              name: string;
                              partial?: boolean;
                              ref?: string;
                          };
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse: { name: string; output?: unknown; ref?: (...) | (...) } & {
                              content?: (...) | (...);
                          };
                      }
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom: Record<string, any>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning: string;
                          resource?: undefined;
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                      | {
                          custom?: Record<string, unknown>;
                          data?: unknown;
                          media?: undefined;
                          metadata?: Record<string, unknown>;
                          reasoning?: undefined;
                          resource: { uri: string };
                          text?: undefined;
                          toolRequest?: undefined;
                          toolResponse?: undefined;
                      }
                  )[];
                  metadata?: Record<string, unknown>;
                  role: "user" | "model" | "tool" | "system";
              }[];
              output?: {
                  constrained?: boolean;
                  contentType?: string;
                  format?: string;
                  schema?: Record<string, any>;
              };
              toolChoice?: "required"
              | "auto"
              | "none";
              tools?: {
                  description: string;
                  inputSchema?: Record<string, any> | null;
                  metadata?: Record<string, any>;
                  name: string;
                  outputSchema?: Record<string, any> | null;
              }[];
          };
          usage?: {
              cachedContentTokens?: number;
              custom?: Record<string, number>;
              inputAudioFiles?: number;
              inputCharacters?: number;
              inputImages?: number;
              inputTokens?: number;
              inputVideos?: number;
              outputAudioFiles?: number;
              outputCharacters?: number;
              outputImages?: number;
              outputTokens?: number;
              outputVideos?: number;
              thoughtsTokens?: number;
              totalTokens?: number;
          };
      }