/* * 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"; /** * Function tool definition: Defines a callable function tool. Provide a tool name and parameters schema, with optional description and deferred loading. */ export type FunctionToolDefinition = { type: "function"; name: string; parameters: { [k: string]: any }; strict: boolean; description?: string | undefined; deferLoading?: boolean | undefined; }; /** @internal */ export const FunctionToolDefinition$inboundSchema: z.ZodType< FunctionToolDefinition, z.ZodTypeDef, unknown > = z.object({ type: z.literal("function"), name: z.string(), parameters: z.record(z.any()), strict: z.boolean(), description: z.string().optional(), defer_loading: z.boolean().optional(), }).transform((v) => { return remap$(v, { "defer_loading": "deferLoading", }); }); /** @internal */ export type FunctionToolDefinition$Outbound = { type: "function"; name: string; parameters: { [k: string]: any }; strict: boolean; description?: string | undefined; defer_loading?: boolean | undefined; }; /** @internal */ export const FunctionToolDefinition$outboundSchema: z.ZodType< FunctionToolDefinition$Outbound, z.ZodTypeDef, FunctionToolDefinition > = z.object({ type: z.literal("function"), name: z.string(), parameters: z.record(z.any()), strict: z.boolean(), description: z.string().optional(), deferLoading: z.boolean().optional(), }).transform((v) => { return remap$(v, { deferLoading: "defer_loading", }); }); export function functionToolDefinitionToJSON( functionToolDefinition: FunctionToolDefinition, ): string { return JSON.stringify( FunctionToolDefinition$outboundSchema.parse(functionToolDefinition), ); } export function functionToolDefinitionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FunctionToolDefinition$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FunctionToolDefinition' from JSON`, ); }