/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { AllowedTools, AllowedTools$inboundSchema, AllowedTools$Outbound, AllowedTools$outboundSchema, } from "./allowedtools.js"; import { CustomToolChoice, CustomToolChoice$inboundSchema, CustomToolChoice$Outbound, CustomToolChoice$outboundSchema, } from "./customtoolchoice.js"; import { FunctionToolChoice, FunctionToolChoice$inboundSchema, FunctionToolChoice$Outbound, FunctionToolChoice$outboundSchema, } from "./functiontoolchoice.js"; import { HostedToolChoice, HostedToolChoice$inboundSchema, HostedToolChoice$Outbound, HostedToolChoice$outboundSchema, } from "./hostedtoolchoice.js"; import { MCPToolChoice, MCPToolChoice$inboundSchema, MCPToolChoice$Outbound, MCPToolChoice$outboundSchema, } from "./mcptoolchoice.js"; import { ToolChoiceMode, ToolChoiceMode$inboundSchema, ToolChoiceMode$outboundSchema, } from "./toolchoicemode.js"; export type ToolChoice = | AllowedTools | FunctionToolChoice | MCPToolChoice | CustomToolChoice | HostedToolChoice | ToolChoiceMode; /** @internal */ export const ToolChoice$inboundSchema: z.ZodType< ToolChoice, z.ZodTypeDef, unknown > = z.union([ AllowedTools$inboundSchema, FunctionToolChoice$inboundSchema, MCPToolChoice$inboundSchema, CustomToolChoice$inboundSchema, HostedToolChoice$inboundSchema, ToolChoiceMode$inboundSchema, ]); /** @internal */ export type ToolChoice$Outbound = | AllowedTools$Outbound | FunctionToolChoice$Outbound | MCPToolChoice$Outbound | CustomToolChoice$Outbound | HostedToolChoice$Outbound | string; /** @internal */ export const ToolChoice$outboundSchema: z.ZodType< ToolChoice$Outbound, z.ZodTypeDef, ToolChoice > = z.union([ AllowedTools$outboundSchema, FunctionToolChoice$outboundSchema, MCPToolChoice$outboundSchema, CustomToolChoice$outboundSchema, HostedToolChoice$outboundSchema, ToolChoiceMode$outboundSchema, ]); export function toolChoiceToJSON(toolChoice: ToolChoice): string { return JSON.stringify(ToolChoice$outboundSchema.parse(toolChoice)); } export function toolChoiceFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ToolChoice$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ToolChoice' from JSON`, ); }