UNPKG

@genkit-ai/anthropic

Version:

Genkit AI framework plugin for Anthropic APIs.

1,042 lines (1,039 loc) 280 kB
import { ModelReference, z, GenerateRequest, StreamingCallback, GenerateResponseData } from 'genkit'; import { ModelInfo, ModelAction, GenerateResponseChunkData } from 'genkit/model'; import { ClaudeModelParams, AnthropicConfigSchemaType, AnthropicConfigSchema, ClaudeRunnerParams } from './types.mjs'; import '@anthropic-ai/sdk'; import '@anthropic-ai/sdk/resources/messages'; /** * Copyright 2024 Bloom Labs Inc * Copyright 2025 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ type ConfigSchemaType = AnthropicConfigSchemaType; /** * Generic Claude model info for unknown/unsupported models. * Used when a model name is not in KNOWN_CLAUDE_MODELS. */ declare const GENERIC_MODEL_INFO: ModelInfo; /** * Advanced Claude model info for models that support JSON output. */ declare const ADVANCED_MODEL_INFO: ModelInfo; declare const KNOWN_MODELS: { readonly 'claude-opus-4-7': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; readonly 'claude-opus-4-6': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; readonly 'claude-opus-4-5': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; readonly 'claude-haiku-4-5': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; apiKey: z.ZodOptional<z.ZodString>; } & { tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"auto">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"auto">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"any">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"any">; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"tool">; name: z.ZodString; }, z.ZodTypeAny, "passthrough">>]>>; metadata: z.ZodOptional<z.ZodObject<{ user_id: z.ZodOptional<z.ZodString>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ user_id: z.ZodOptional<z.ZodString>; }, z.ZodTypeAny, "passthrough">>>; apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>; thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ enabled: z.ZodOptional<z.ZodBoolean>; budgetTokens: z.ZodOptional<z.ZodNumber>; adaptive: z.ZodOptional<z.ZodBoolean>; display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>; }, z.ZodTypeAny, "passthrough">>>; output_config: z.ZodOptional<z.ZodObject<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, { total: number; type?: "tokens" | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>; task_budget: z.ZodOptional<z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"tokens">>; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "tokens"; total: number; }, {