/* * 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"; import { WebSearchFilters, WebSearchFilters$inboundSchema, WebSearchFilters$Outbound, WebSearchFilters$outboundSchema, } from "./websearchfilters.js"; export const WebSearchToolDefinitionType = { WebSearch: "web_search", WebSearch20250826: "web_search_2025_08_26", } as const; export type WebSearchToolDefinitionType = ClosedEnum< typeof WebSearchToolDefinitionType >; export const SearchContextSize = { Low: "low", Medium: "medium", High: "high", } as const; export type SearchContextSize = ClosedEnum; /** * Web search tool definition: Enables web search with optional domain filters, search context size, and approximate user location. */ export type WebSearchToolDefinition = { type: WebSearchToolDefinitionType; filters?: WebSearchFilters | undefined; searchContextSize?: SearchContextSize | undefined; userLocation?: UserLocation | undefined; }; /** @internal */ export const WebSearchToolDefinitionType$inboundSchema: z.ZodNativeEnum< typeof WebSearchToolDefinitionType > = z.nativeEnum(WebSearchToolDefinitionType); /** @internal */ export const WebSearchToolDefinitionType$outboundSchema: z.ZodNativeEnum< typeof WebSearchToolDefinitionType > = WebSearchToolDefinitionType$inboundSchema; /** @internal */ export const SearchContextSize$inboundSchema: z.ZodNativeEnum< typeof SearchContextSize > = z.nativeEnum(SearchContextSize); /** @internal */ export const SearchContextSize$outboundSchema: z.ZodNativeEnum< typeof SearchContextSize > = SearchContextSize$inboundSchema; /** @internal */ export const WebSearchToolDefinition$inboundSchema: z.ZodType< WebSearchToolDefinition, z.ZodTypeDef, unknown > = z.object({ type: WebSearchToolDefinitionType$inboundSchema, filters: WebSearchFilters$inboundSchema.optional(), search_context_size: SearchContextSize$inboundSchema.default("medium"), user_location: UserLocation$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "search_context_size": "searchContextSize", "user_location": "userLocation", }); }); /** @internal */ export type WebSearchToolDefinition$Outbound = { type: string; filters?: WebSearchFilters$Outbound | undefined; search_context_size: string; user_location?: UserLocation$Outbound | undefined; }; /** @internal */ export const WebSearchToolDefinition$outboundSchema: z.ZodType< WebSearchToolDefinition$Outbound, z.ZodTypeDef, WebSearchToolDefinition > = z.object({ type: WebSearchToolDefinitionType$outboundSchema, filters: WebSearchFilters$outboundSchema.optional(), searchContextSize: SearchContextSize$outboundSchema.default("medium"), userLocation: UserLocation$outboundSchema.optional(), }).transform((v) => { return remap$(v, { searchContextSize: "search_context_size", userLocation: "user_location", }); }); export function webSearchToolDefinitionToJSON( webSearchToolDefinition: WebSearchToolDefinition, ): string { return JSON.stringify( WebSearchToolDefinition$outboundSchema.parse(webSearchToolDefinition), ); } export function webSearchToolDefinitionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => WebSearchToolDefinition$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'WebSearchToolDefinition' from JSON`, ); }