/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { UserLocation, UserLocation$inboundSchema, UserLocation$Outbound, UserLocation$outboundSchema, } from "./userlocation.js"; export const WebSearchPreviewToolDefinitionType = { WebSearchPreview: "web_search_preview", WebSearchPreview20250311: "web_search_preview_2025_03_11", } as const; export type WebSearchPreviewToolDefinitionType = ClosedEnum< typeof WebSearchPreviewToolDefinitionType >; export const WebSearchPreviewToolDefinitionSearchContextSize = { Low: "low", Medium: "medium", High: "high", } as const; export type WebSearchPreviewToolDefinitionSearchContextSize = ClosedEnum< typeof WebSearchPreviewToolDefinitionSearchContextSize >; /** * Web search preview tool definition: Enables the preview web search tool variant with optional context size and user location. */ export type WebSearchPreviewToolDefinition = { type: WebSearchPreviewToolDefinitionType; searchContextSize?: | WebSearchPreviewToolDefinitionSearchContextSize | undefined; userLocation?: UserLocation | undefined; }; /** @internal */ export const WebSearchPreviewToolDefinitionType$inboundSchema: z.ZodNativeEnum< typeof WebSearchPreviewToolDefinitionType > = z.nativeEnum(WebSearchPreviewToolDefinitionType); /** @internal */ export const WebSearchPreviewToolDefinitionType$outboundSchema: z.ZodNativeEnum< typeof WebSearchPreviewToolDefinitionType > = WebSearchPreviewToolDefinitionType$inboundSchema; /** @internal */ export const WebSearchPreviewToolDefinitionSearchContextSize$inboundSchema: z.ZodNativeEnum = z .nativeEnum(WebSearchPreviewToolDefinitionSearchContextSize); /** @internal */ export const WebSearchPreviewToolDefinitionSearchContextSize$outboundSchema: z.ZodNativeEnum = WebSearchPreviewToolDefinitionSearchContextSize$inboundSchema; /** @internal */ export const WebSearchPreviewToolDefinition$inboundSchema: z.ZodType< WebSearchPreviewToolDefinition, z.ZodTypeDef, unknown > = z.object({ type: WebSearchPreviewToolDefinitionType$inboundSchema, search_context_size: WebSearchPreviewToolDefinitionSearchContextSize$inboundSchema.optional(), user_location: UserLocation$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "search_context_size": "searchContextSize", "user_location": "userLocation", }); }); /** @internal */ export type WebSearchPreviewToolDefinition$Outbound = { type: string; search_context_size?: string | undefined; user_location?: UserLocation$Outbound | undefined; }; /** @internal */ export const WebSearchPreviewToolDefinition$outboundSchema: z.ZodType< WebSearchPreviewToolDefinition$Outbound, z.ZodTypeDef, WebSearchPreviewToolDefinition > = z.object({ type: WebSearchPreviewToolDefinitionType$outboundSchema, searchContextSize: WebSearchPreviewToolDefinitionSearchContextSize$outboundSchema.optional(), userLocation: UserLocation$outboundSchema.optional(), }).transform((v) => { return remap$(v, { searchContextSize: "search_context_size", userLocation: "user_location", }); }); export function webSearchPreviewToolDefinitionToJSON( webSearchPreviewToolDefinition: WebSearchPreviewToolDefinition, ): string { return JSON.stringify( WebSearchPreviewToolDefinition$outboundSchema.parse( webSearchPreviewToolDefinition, ), ); } export function webSearchPreviewToolDefinitionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => WebSearchPreviewToolDefinition$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'WebSearchPreviewToolDefinition' from JSON`, ); }