/* * 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 { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ComparisonFilter, ComparisonFilter$inboundSchema, ComparisonFilter$Outbound, ComparisonFilter$outboundSchema, } from "./comparisonfilter.js"; import { CompoundFilter, CompoundFilter$inboundSchema, CompoundFilter$Outbound, CompoundFilter$outboundSchema, } from "./compoundfilter.js"; import { RankingOptions, RankingOptions$inboundSchema, RankingOptions$Outbound, RankingOptions$outboundSchema, } from "./rankingoptions.js"; export type FileSearchToolDefinitionFilters = | (ComparisonFilter & { type: "eq" }) | (ComparisonFilter & { type: "ne" }) | (ComparisonFilter & { type: "gt" }) | (ComparisonFilter & { type: "gte" }) | (ComparisonFilter & { type: "lt" }) | (ComparisonFilter & { type: "lte" }) | (CompoundFilter & { type: "and" }) | (CompoundFilter & { type: "or" }); /** * File search tool definition: Configures semantic search over one or more vector stores, with optional filters, ranking options, and result limits. */ export type FileSearchToolDefinition = { type: "file_search"; vectorStoreIds: Array; filters?: | (ComparisonFilter & { type: "eq" }) | (ComparisonFilter & { type: "ne" }) | (ComparisonFilter & { type: "gt" }) | (ComparisonFilter & { type: "gte" }) | (ComparisonFilter & { type: "lt" }) | (ComparisonFilter & { type: "lte" }) | (CompoundFilter & { type: "and" }) | (CompoundFilter & { type: "or" }) | undefined; maxNumResults?: number | undefined; rankingOptions?: RankingOptions | undefined; }; /** @internal */ export const FileSearchToolDefinitionFilters$inboundSchema: z.ZodType< FileSearchToolDefinitionFilters, z.ZodTypeDef, unknown > = z.union([ ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("eq") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("ne") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("gt") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("gte") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("lt") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("lte") })), CompoundFilter$inboundSchema.and(z.object({ type: z.literal("and") })), CompoundFilter$inboundSchema.and(z.object({ type: z.literal("or") })), ]); /** @internal */ export type FileSearchToolDefinitionFilters$Outbound = | (ComparisonFilter$Outbound & { type: "eq" }) | (ComparisonFilter$Outbound & { type: "ne" }) | (ComparisonFilter$Outbound & { type: "gt" }) | (ComparisonFilter$Outbound & { type: "gte" }) | (ComparisonFilter$Outbound & { type: "lt" }) | (ComparisonFilter$Outbound & { type: "lte" }) | (CompoundFilter$Outbound & { type: "and" }) | (CompoundFilter$Outbound & { type: "or" }); /** @internal */ export const FileSearchToolDefinitionFilters$outboundSchema: z.ZodType< FileSearchToolDefinitionFilters$Outbound, z.ZodTypeDef, FileSearchToolDefinitionFilters > = z.union([ ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("eq") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("ne") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("gt") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("gte") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("lt") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("lte") })), CompoundFilter$outboundSchema.and(z.object({ type: z.literal("and") })), CompoundFilter$outboundSchema.and(z.object({ type: z.literal("or") })), ]); export function fileSearchToolDefinitionFiltersToJSON( fileSearchToolDefinitionFilters: FileSearchToolDefinitionFilters, ): string { return JSON.stringify( FileSearchToolDefinitionFilters$outboundSchema.parse( fileSearchToolDefinitionFilters, ), ); } export function fileSearchToolDefinitionFiltersFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FileSearchToolDefinitionFilters$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FileSearchToolDefinitionFilters' from JSON`, ); } /** @internal */ export const FileSearchToolDefinition$inboundSchema: z.ZodType< FileSearchToolDefinition, z.ZodTypeDef, unknown > = z.object({ type: z.literal("file_search"), vector_store_ids: z.array(z.string()), filters: z.union([ ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("eq") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("ne") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("gt") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("gte") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("lt") })), ComparisonFilter$inboundSchema.and(z.object({ type: z.literal("lte") })), CompoundFilter$inboundSchema.and(z.object({ type: z.literal("and") })), CompoundFilter$inboundSchema.and(z.object({ type: z.literal("or") })), ]).optional(), max_num_results: z.number().int().optional(), ranking_options: RankingOptions$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "vector_store_ids": "vectorStoreIds", "max_num_results": "maxNumResults", "ranking_options": "rankingOptions", }); }); /** @internal */ export type FileSearchToolDefinition$Outbound = { type: "file_search"; vector_store_ids: Array; filters?: | (ComparisonFilter$Outbound & { type: "eq" }) | (ComparisonFilter$Outbound & { type: "ne" }) | (ComparisonFilter$Outbound & { type: "gt" }) | (ComparisonFilter$Outbound & { type: "gte" }) | (ComparisonFilter$Outbound & { type: "lt" }) | (ComparisonFilter$Outbound & { type: "lte" }) | (CompoundFilter$Outbound & { type: "and" }) | (CompoundFilter$Outbound & { type: "or" }) | undefined; max_num_results?: number | undefined; ranking_options?: RankingOptions$Outbound | undefined; }; /** @internal */ export const FileSearchToolDefinition$outboundSchema: z.ZodType< FileSearchToolDefinition$Outbound, z.ZodTypeDef, FileSearchToolDefinition > = z.object({ type: z.literal("file_search"), vectorStoreIds: z.array(z.string()), filters: z.union([ ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("eq") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("ne") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("gt") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("gte") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("lt") })), ComparisonFilter$outboundSchema.and(z.object({ type: z.literal("lte") })), CompoundFilter$outboundSchema.and(z.object({ type: z.literal("and") })), CompoundFilter$outboundSchema.and(z.object({ type: z.literal("or") })), ]).optional(), maxNumResults: z.number().int().optional(), rankingOptions: RankingOptions$outboundSchema.optional(), }).transform((v) => { return remap$(v, { vectorStoreIds: "vector_store_ids", maxNumResults: "max_num_results", rankingOptions: "ranking_options", }); }); export function fileSearchToolDefinitionToJSON( fileSearchToolDefinition: FileSearchToolDefinition, ): string { return JSON.stringify( FileSearchToolDefinition$outboundSchema.parse(fileSearchToolDefinition), ); } export function fileSearchToolDefinitionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FileSearchToolDefinition$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FileSearchToolDefinition' from JSON`, ); }