openAIMessageSchema: ZodDiscriminatedUnion<
    "role",
    [
        ZodObject<
            {
                content: ZodUnion<
                    [
                        ZodArray<
                            ZodObject<
                                { text: ZodString; type: ZodLiteral<"text"> },
                                "strip",
                                ZodTypeAny,
                                { text: string; type: "text" },
                                { text: string; type: "text" },
                            >,
                            "many",
                        >,
                        ZodString,
                    ],
                >;
                name: ZodOptional<ZodString>;
                role: ZodLiteral<"assistant">;
                tool_call_id: ZodOptional<ZodString>;
                tool_calls: ZodOptional<
                    ZodArray<
                        ZodObject<
                            {
                                function: ZodObject<
                                    { arguments: ZodString; name: ZodString },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<
                                        { arguments: ...; name: ... },
                                        ZodTypeAny,
                                        "passthrough",
                                    >,
                                    objectInputType<
                                        { arguments: ...; name: ... },
                                        ZodTypeAny,
                                        "passthrough",
                                    >,
                                >;
                                id: ZodString;
                                type: ZodEffects<
                                    ZodOptional<ZodLiteral<(...)>>,
                                    "function",
                                    undefined | "function",
                                >;
                            },
                            "strip",
                            ZodTypeAny,
                            {
                                function: { arguments: string; name: string } & {
                                    [k: string]: unknown;
                                };
                                id: string;
                                type: "function";
                            },
                            {
                                function: { arguments: string; name: string } & {
                                    [k: string]: unknown;
                                };
                                id: string;
                                type?: "function";
                            },
                        >,
                        "many",
                    >,
                >;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ZodString; type: ZodLiteral<(...)> },
                                    "strip",
                                    ZodTypeAny,
                                    { text: string; type: "text" },
                                    { text: string; type: "text" },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<
                                        { arguments: ...; name: ... },
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                    id: ZodString;
                                    type: ZodEffects<ZodOptional<(...)>, "function", (...) | (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    function: { arguments: ...; name: ... } & { [k: ...]: ... };
                                    id: string;
                                    type: "function";
                                },
                                {
                                    function: { arguments: ...; name: ... } & { [k: ...]: ... };
                                    id: string;
                                    type?: "function";
                                },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ZodString; type: ZodLiteral<(...)> },
                                    "strip",
                                    ZodTypeAny,
                                    { text: string; type: "text" },
                                    { text: string; type: "text" },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<
                                        { arguments: ...; name: ... },
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                    id: ZodString;
                                    type: ZodEffects<ZodOptional<(...)>, "function", (...) | (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                {
                                    function: { arguments: ...; name: ... } & { [k: ...]: ... };
                                    id: string;
                                    type: "function";
                                },
                                {
                                    function: { arguments: ...; name: ... } & { [k: ...]: ... };
                                    id: string;
                                    type?: "function";
                                },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodObject<
            {
                content: ZodUnion<
                    [
                        ZodArray<
                            ZodObject<
                                { text: ZodString; type: ZodLiteral<"text"> },
                                "strip",
                                ZodTypeAny,
                                { text: string; type: "text" },
                                { text: string; type: "text" },
                            >,
                            "many",
                        >,
                        ZodString,
                    ],
                >;
                role: ZodLiteral<"tool">;
                tool_call_id: ZodString;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ZodString; type: ZodLiteral<(...)> },
                                    "strip",
                                    ZodTypeAny,
                                    { text: string; type: "text" },
                                    { text: string; type: "text" },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ZodString; type: ZodLiteral<(...)> },
                                    "strip",
                                    ZodTypeAny,
                                    { text: string; type: "text" },
                                    { text: string; type: "text" },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodObject<
            {
                content: ZodNullable<ZodString>;
                name: ZodString;
                role: ZodLiteral<"function">;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
    ],
> = ...