export function zodFunction()

in helpers/zod.ts [88:118]


export function zodFunction<Parameters extends ZodType>(options: {
  name: string;
  parameters: Parameters;
  function?:
    | ((args: zodInfer<Parameters>) => unknown | Promise<unknown>)
    | undefined;
  description?: string | undefined;
}): AutoParseableTool<{
  arguments: Parameters;
  name: string;
  function: (args: zodInfer<Parameters>) => unknown;
}> {
  // @ts-expect-error TODO
  return makeParseableTool<any>(
    {
      type: "function",
      function: {
        name: options.name,
        parameters: zodToJsonSchema(options.parameters, { name: options.name }),
        strict: true,
        ...(options.description
          ? { description: options.description }
          : undefined),
      },
    },
    {
      callback: options.function,
      parser: (args) => options.parameters.parse(JSON.parse(args)),
    },
  );
}