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)),
},
);
}