Arize Phoenix TS
    Preparing search index...
    openAIToolDefinitionSchema: ZodObject<
        {
            function: ZodObject<
                {
                    description: ZodOptional<ZodString>;
                    name: ZodString;
                    parameters: ZodObject<
                        {
                            additionalProperties: ZodOptional<ZodBoolean>;
                            properties: ZodRecord<
                                ZodString,
                                ZodUnion<
                                    readonly [
                                        ZodObject<{ description: ...; enum: ...; type: ... }, $loose>,
                                        ZodObject<{ anyOf: ... }, $strip>,
                                    ],
                                >,
                            >;
                            required: ZodOptional<ZodArray<ZodString>>;
                            strict: ZodOptional<ZodBoolean>;
                            type: ZodLiteral<"object">;
                        },
                        $loose,
                    >;
                },
                $loose,
            >;
            type: ZodLiteral<"function">;
        },
        $loose,
    > = ...

    The schema for an OpenAI tool definition

    https://platform.openai.com/docs/guides/structured-outputs/supported-schemas

    Note: The nested passThrough's are used to allow for extra keys in JSON schema, however, they do not actually allow for extra keys when the zod schema is used for parsing. This is to allow more flexibility for users to define their own tools according