SDKProviderConverterMap: {
    ANTHROPIC: SDKConverters<
        ZodEffects<
            ZodDiscriminatedUnion<
                "role",
                [
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                role: ZodLiteral<"tool">;
                                tool_call_id: ZodString;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, 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",
                        >,
                    >,
                ],
            >,
            objectOutputType<
                {
                    content: ZodUnion<
                        [
                            ZodString,
                            ZodArray<
                                ZodDiscriminatedUnion<
                                    "type",
                                    [
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    ],
                                >,
                                "many",
                            >,
                        ],
                    >;
                    role: ZodEnum<["user", "assistant"]>;
                },
                ZodTypeAny,
                "passthrough",
            >,
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<(...), (...), (...), (...), (...)>;
                                    id: ZodString;
                                    type: ZodEffects<(...), (...), (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                { function: (...) & (...); id: string; type: "function" },
                                { function: (...) & (...); id: string; type?: (...) | (...) },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [ZodArray<ZodUnion<[(...), (...)]>, "many">, ZodString],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"user">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"system">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"developer">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodEffects<
            ZodDiscriminatedUnion<
                "type",
                [
                    ZodObject<
                        { text: ZodString; type: ZodLiteral<"text"> },
                        "strip",
                        ZodTypeAny,
                        { text: string; type: "text" },
                        { text: string; type: "text" },
                    >,
                    ZodObject<
                        {
                            image_url: ZodObject<
                                { url: ZodString },
                                "strip",
                                ZodTypeAny,
                                { url: string },
                                { url: string },
                            >;
                            type: ZodLiteral<"image_url">;
                        },
                        "strip",
                        ZodTypeAny,
                        { image_url: { url: string }; type: "image_url" },
                        { image_url: { url: string }; type: "image_url" },
                    >,
                ],
            >,

                | null
                | { source?: undefined; text: string; type: "text" }
                | {
                    source: {
                        data: string;
                        media_type: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
                        type: "base64";
                    };
                    text?: undefined;
                    type: "image";
                },
            | { text: string; type: "text" }
            | { image_url: { url: string }; type: "image_url" },
        >,
        ZodEffects<
            ZodUnion<
                [
                    ZodLiteral<"auto">,
                    ZodLiteral<"none">,
                    ZodLiteral<"required">,
                    ZodObject<
                        {
                            function: ZodObject<
                                { name: ZodString },
                                "strip",
                                ZodTypeAny,
                                { name: string },
                                { name: string },
                            >;
                            type: ZodLiteral<"function">;
                        },
                        "strip",
                        ZodTypeAny,
                        { function: { name: string }; type: "function" },
                        { function: { name: string }; type: "function" },
                    >,
                ],
            >,
            { name: string; type: "tool" } | { type: "auto" } | { type: "any" },

                | "none"
                | "auto"
                | "required"
                | { function: { name: string }; type: "function" },
        >,
        ZodEffects<
            ZodObject<
                {
                    function: ZodObject<
                        { arguments: ZodString; name: ZodString },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            { arguments: ZodString; name: ZodString },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            { arguments: ZodString; name: ZodString },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    id: ZodString;
                    type: ZodEffects<
                        ZodOptional<ZodLiteral<"function">>,
                        "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";
                },
            >,
            { id: string; input: JSONLiteral; name: string; type: "tool_use" },
            {
                function: { arguments: string; name: string } & {
                    [k: string]: unknown;
                };
                id: string;
                type?: "function";
            },
        >,
        ZodEffects<
            ZodObject<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                "passthrough",
                ZodTypeAny,
                objectOutputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
                objectInputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
            >,
            {
                description: string;
                input_schema: {
                    additionalProperties?: boolean;
                    properties: Record<
                        string,
                        | objectOutputType<
                            {
                                description: ZodOptional<(...)>;
                                enum: ZodOptional<(...)>;
                                type: ZodEnum<(...)>;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >
                        | { anyOf: objectOutputType<(...), (...), (...)>[] },
                    >;
                    required?: string[];
                    type: "object";
                } & { [k: string]: unknown };
                name: string;
            },
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodTypeAny,
    >;
    AZURE_OPENAI: SDKConverters<
        ZodDiscriminatedUnion<
            "role",
            [
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        name: ZodOptional<ZodString>;
                        role: ZodLiteral<"assistant">;
                        tool_call_id: ZodOptional<ZodString>;
                        tool_calls: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        function: ZodObject<(...), (...), (...), (...), (...)>;
                                        id: ZodString;
                                        type: ZodEffects<(...), (...), (...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    { function: (...) & (...); id: string; type: "function" },
                                    { function: (...) & (...); id: string; type?: (...) | (...) },
                                >,
                                "many",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >,
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        role: ZodLiteral<"tool">;
                        tool_call_id: ZodString;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "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",
                    >,
                >,
            ],
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { text: ZodString; type: ZodLiteral<"text"> },
                    "strip",
                    ZodTypeAny,
                    { text: string; type: "text" },
                    { text: string; type: "text" },
                >,
                ZodObject<
                    {
                        image_url: ZodObject<
                            { url: ZodString },
                            "strip",
                            ZodTypeAny,
                            { url: string },
                            { url: string },
                        >;
                        type: ZodLiteral<"image_url">;
                    },
                    "strip",
                    ZodTypeAny,
                    { image_url: { url: string }; type: "image_url" },
                    { image_url: { url: string }; type: "image_url" },
                >,
            ],
        >,
        ZodUnion<
            [
                ZodLiteral<"auto">,
                ZodLiteral<"none">,
                ZodLiteral<"required">,
                ZodObject<
                    {
                        function: ZodObject<
                            { name: ZodString },
                            "strip",
                            ZodTypeAny,
                            { name: string },
                            { name: string },
                        >;
                        type: ZodLiteral<"function">;
                    },
                    "strip",
                    ZodTypeAny,
                    { function: { name: string }; type: "function" },
                    { function: { name: string }; type: "function" },
                >,
            ],
        >,
        ZodObject<
            {
                function: ZodObject<
                    { arguments: ZodString; name: ZodString },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                id: ZodString;
                type: ZodEffects<
                    ZodOptional<ZodLiteral<"function">>,
                    "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";
            },
        >,
        ZodObject<
            {
                function: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        parameters: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                type: ZodLiteral<"function">;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodObject<
            {
                json_schema: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        schema: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<[(...), (...)]>>;
                                required: ZodOptional<ZodArray<ZodString, "many">>;
                                type: ZodLiteral<"object">;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectOutputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectInputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                >;
                type: ZodLiteral<"json_schema">;
            },
            "strip",
            ZodTypeAny,
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectOutputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectInputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
        >,
    >;
    OPENAI: SDKConverters<
        ZodDiscriminatedUnion<
            "role",
            [
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        name: ZodOptional<ZodString>;
                        role: ZodLiteral<"assistant">;
                        tool_call_id: ZodOptional<ZodString>;
                        tool_calls: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        function: ZodObject<(...), (...), (...), (...), (...)>;
                                        id: ZodString;
                                        type: ZodEffects<(...), (...), (...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    { function: (...) & (...); id: string; type: "function" },
                                    { function: (...) & (...); id: string; type?: (...) | (...) },
                                >,
                                "many",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >,
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        role: ZodLiteral<"tool">;
                        tool_call_id: ZodString;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "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",
                    >,
                >,
            ],
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { text: ZodString; type: ZodLiteral<"text"> },
                    "strip",
                    ZodTypeAny,
                    { text: string; type: "text" },
                    { text: string; type: "text" },
                >,
                ZodObject<
                    {
                        image_url: ZodObject<
                            { url: ZodString },
                            "strip",
                            ZodTypeAny,
                            { url: string },
                            { url: string },
                        >;
                        type: ZodLiteral<"image_url">;
                    },
                    "strip",
                    ZodTypeAny,
                    { image_url: { url: string }; type: "image_url" },
                    { image_url: { url: string }; type: "image_url" },
                >,
            ],
        >,
        ZodUnion<
            [
                ZodLiteral<"auto">,
                ZodLiteral<"none">,
                ZodLiteral<"required">,
                ZodObject<
                    {
                        function: ZodObject<
                            { name: ZodString },
                            "strip",
                            ZodTypeAny,
                            { name: string },
                            { name: string },
                        >;
                        type: ZodLiteral<"function">;
                    },
                    "strip",
                    ZodTypeAny,
                    { function: { name: string }; type: "function" },
                    { function: { name: string }; type: "function" },
                >,
            ],
        >,
        ZodObject<
            {
                function: ZodObject<
                    { arguments: ZodString; name: ZodString },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                id: ZodString;
                type: ZodEffects<
                    ZodOptional<ZodLiteral<"function">>,
                    "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";
            },
        >,
        ZodObject<
            {
                function: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        parameters: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                type: ZodLiteral<"function">;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodObject<
            {
                json_schema: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        schema: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<[(...), (...)]>>;
                                required: ZodOptional<ZodArray<ZodString, "many">>;
                                type: ZodLiteral<"object">;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectOutputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectInputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                >;
                type: ZodLiteral<"json_schema">;
            },
            "strip",
            ZodTypeAny,
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectOutputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectInputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
        >,
    >;
    PHOENIX: SDKConverters<
        ZodEffects<
            ZodDiscriminatedUnion<
                "role",
                [
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                role: ZodLiteral<"tool">;
                                tool_call_id: ZodString;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, 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",
                        >,
                    >,
                ],
            >,
            {
                content: | string
                | (
                    | { text: string; type: "text" }
                    | {
                        tool_call: { arguments: string; name: string; type: "function" };
                        tool_call_id: string;
                        type: "tool_call";
                    }
                    | {
                        tool_call_id: string;
                        tool_result: | null
                        | string
                        | number
                        | boolean
                        | unknown[]
                        | Record<string, unknown>;
                        type: "tool_result";
                    }
                )[];
                role: | "user"
                | "assistant"
                | "model"
                | "ai"
                | "tool"
                | "system"
                | "developer";
            },
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<(...), (...), (...), (...), (...)>;
                                    id: ZodString;
                                    type: ZodEffects<(...), (...), (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                { function: (...) & (...); id: string; type: "function" },
                                { function: (...) & (...); id: string; type?: (...) | (...) },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [ZodArray<ZodUnion<[(...), (...)]>, "many">, ZodString],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"user">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"system">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"developer">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodUnknown,
        ZodUnknown,
        ZodUnknown,
        ZodUnknown,
        ZodUnknown,
    >;
    VERCEL_AI: SDKConverters<
        ZodEffects<
            ZodDiscriminatedUnion<
                "role",
                [
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                role: ZodLiteral<"tool">;
                                tool_call_id: ZodString;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, 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",
                        >,
                    >,
                ],
            >,
            | { content: string; role: "system" }
            | {
                content:
                    | string
                    | (
                        | { text: string; type: "text" }
                        | { image: string; mimeType?: string; type: "image" }
                    )[];
                role: "user";
            }
            | {
                content: | string
                | (
                    | { text: string; type: "text" }
                    | {
                        args: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-call";
                    }
                )[];
                role: "assistant";
            }
            | {
                content: {
                    result: JSONLiteral;
                    toolCallId: string;
                    toolName: string;
                    type: "tool-result";
                }[];
                role: "tool";
            },
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<(...), (...), (...), (...), (...)>;
                                    id: ZodString;
                                    type: ZodEffects<(...), (...), (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                { function: (...) & (...); id: string; type: "function" },
                                { function: (...) & (...); id: string; type?: (...) | (...) },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [ZodArray<ZodUnion<[(...), (...)]>, "many">, ZodString],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"user">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"system">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"developer">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { text: ZodString; type: ZodLiteral<"text"> },
                    "strip",
                    ZodTypeAny,
                    { text: string; type: "text" },
                    { text: string; type: "text" },
                >,
                ZodObject<
                    {
                        image: ZodString;
                        mimeType: ZodOptional<ZodString>;
                        type: ZodLiteral<"image">;
                    },
                    "strip",
                    ZodTypeAny,
                    { image: string; mimeType?: string; type: "image" },
                    { image: string; mimeType?: string; type: "image" },
                >,
                ZodObject<
                    {
                        args: ZodType<JSONLiteral, ZodTypeDef, JSONLiteral>;
                        toolCallId: ZodString;
                        toolName: ZodString;
                        type: ZodLiteral<"tool-call">;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        args: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-call";
                    },
                    {
                        args: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-call";
                    },
                >,
                ZodObject<
                    {
                        result: ZodType<JSONLiteral, ZodTypeDef, JSONLiteral>;
                        toolCallId: ZodString;
                        toolName: ZodString;
                        type: ZodLiteral<"tool-result">;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        result: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-result";
                    },
                    {
                        result: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-result";
                    },
                >,
            ],
        >,
        ZodEffects<
            ZodUnion<
                [
                    ZodLiteral<"auto">,
                    ZodLiteral<"none">,
                    ZodLiteral<"required">,
                    ZodObject<
                        {
                            function: ZodObject<
                                { name: ZodString },
                                "strip",
                                ZodTypeAny,
                                { name: string },
                                { name: string },
                            >;
                            type: ZodLiteral<"function">;
                        },
                        "strip",
                        ZodTypeAny,
                        { function: { name: string }; type: "function" },
                        { function: { name: string }; type: "function" },
                    >,
                ],
            >,
            "none" | "auto" | "required" | { toolName: string; type: "tool" },

                | "none"
                | "auto"
                | "required"
                | { function: { name: string }; type: "function" },
        >,
        ZodObject<
            {
                args: ZodType<JSONLiteral, ZodTypeDef, JSONLiteral>;
                toolCallId: ZodString;
                toolName: ZodString;
                type: ZodLiteral<"tool-call">;
            },
            "strip",
            ZodTypeAny,
            {
                args: JSONLiteral;
                toolCallId: string;
                toolName: string;
                type: "tool-call";
            },
            {
                args: JSONLiteral;
                toolCallId: string;
                toolName: string;
                type: "tool-call";
            },
        >,
        ZodEffects<
            ZodObject<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                "passthrough",
                ZodTypeAny,
                objectOutputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
                objectInputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
            >,
            {
                description?: string;
                parameters: {
                    _type?: unknown;
                    jsonSchema?: Record<string, unknown>;
                    validate?: unknown;
                };
                type: "function";
            },
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodTypeAny,
    >;
} = ...

SDK Provider Converter Map

This map contains the converters for each SDK provider.

If a "from" direction is not supported for a particular provider, you can set the schema to z.unknown(), passing contents directly through, but forcing the caller to handle the unknown type.

Type declaration

  • ANTHROPIC: SDKConverters<
        ZodEffects<
            ZodDiscriminatedUnion<
                "role",
                [
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                role: ZodLiteral<"tool">;
                                tool_call_id: ZodString;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, 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",
                        >,
                    >,
                ],
            >,
            objectOutputType<
                {
                    content: ZodUnion<
                        [
                            ZodString,
                            ZodArray<
                                ZodDiscriminatedUnion<
                                    "type",
                                    [
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                        ZodObject<(...), (...), (...), (...), (...)>,
                                    ],
                                >,
                                "many",
                            >,
                        ],
                    >;
                    role: ZodEnum<["user", "assistant"]>;
                },
                ZodTypeAny,
                "passthrough",
            >,
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<(...), (...), (...), (...), (...)>;
                                    id: ZodString;
                                    type: ZodEffects<(...), (...), (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                { function: (...) & (...); id: string; type: "function" },
                                { function: (...) & (...); id: string; type?: (...) | (...) },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [ZodArray<ZodUnion<[(...), (...)]>, "many">, ZodString],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"user">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"system">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"developer">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodEffects<
            ZodDiscriminatedUnion<
                "type",
                [
                    ZodObject<
                        { text: ZodString; type: ZodLiteral<"text"> },
                        "strip",
                        ZodTypeAny,
                        { text: string; type: "text" },
                        { text: string; type: "text" },
                    >,
                    ZodObject<
                        {
                            image_url: ZodObject<
                                { url: ZodString },
                                "strip",
                                ZodTypeAny,
                                { url: string },
                                { url: string },
                            >;
                            type: ZodLiteral<"image_url">;
                        },
                        "strip",
                        ZodTypeAny,
                        { image_url: { url: string }; type: "image_url" },
                        { image_url: { url: string }; type: "image_url" },
                    >,
                ],
            >,

                | null
                | { source?: undefined; text: string; type: "text" }
                | {
                    source: {
                        data: string;
                        media_type: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
                        type: "base64";
                    };
                    text?: undefined;
                    type: "image";
                },
            | { text: string; type: "text" }
            | { image_url: { url: string }; type: "image_url" },
        >,
        ZodEffects<
            ZodUnion<
                [
                    ZodLiteral<"auto">,
                    ZodLiteral<"none">,
                    ZodLiteral<"required">,
                    ZodObject<
                        {
                            function: ZodObject<
                                { name: ZodString },
                                "strip",
                                ZodTypeAny,
                                { name: string },
                                { name: string },
                            >;
                            type: ZodLiteral<"function">;
                        },
                        "strip",
                        ZodTypeAny,
                        { function: { name: string }; type: "function" },
                        { function: { name: string }; type: "function" },
                    >,
                ],
            >,
            { name: string; type: "tool" } | { type: "auto" } | { type: "any" },

                | "none"
                | "auto"
                | "required"
                | { function: { name: string }; type: "function" },
        >,
        ZodEffects<
            ZodObject<
                {
                    function: ZodObject<
                        { arguments: ZodString; name: ZodString },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            { arguments: ZodString; name: ZodString },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            { arguments: ZodString; name: ZodString },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    id: ZodString;
                    type: ZodEffects<
                        ZodOptional<ZodLiteral<"function">>,
                        "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";
                },
            >,
            { id: string; input: JSONLiteral; name: string; type: "tool_use" },
            {
                function: { arguments: string; name: string } & {
                    [k: string]: unknown;
                };
                id: string;
                type?: "function";
            },
        >,
        ZodEffects<
            ZodObject<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                "passthrough",
                ZodTypeAny,
                objectOutputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
                objectInputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
            >,
            {
                description: string;
                input_schema: {
                    additionalProperties?: boolean;
                    properties: Record<
                        string,
                        | objectOutputType<
                            {
                                description: ZodOptional<(...)>;
                                enum: ZodOptional<(...)>;
                                type: ZodEnum<(...)>;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >
                        | { anyOf: objectOutputType<(...), (...), (...)>[] },
                    >;
                    required?: string[];
                    type: "object";
                } & { [k: string]: unknown };
                name: string;
            },
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodTypeAny,
    >
  • AZURE_OPENAI: SDKConverters<
        ZodDiscriminatedUnion<
            "role",
            [
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        name: ZodOptional<ZodString>;
                        role: ZodLiteral<"assistant">;
                        tool_call_id: ZodOptional<ZodString>;
                        tool_calls: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        function: ZodObject<(...), (...), (...), (...), (...)>;
                                        id: ZodString;
                                        type: ZodEffects<(...), (...), (...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    { function: (...) & (...); id: string; type: "function" },
                                    { function: (...) & (...); id: string; type?: (...) | (...) },
                                >,
                                "many",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >,
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        role: ZodLiteral<"tool">;
                        tool_call_id: ZodString;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "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",
                    >,
                >,
            ],
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { text: ZodString; type: ZodLiteral<"text"> },
                    "strip",
                    ZodTypeAny,
                    { text: string; type: "text" },
                    { text: string; type: "text" },
                >,
                ZodObject<
                    {
                        image_url: ZodObject<
                            { url: ZodString },
                            "strip",
                            ZodTypeAny,
                            { url: string },
                            { url: string },
                        >;
                        type: ZodLiteral<"image_url">;
                    },
                    "strip",
                    ZodTypeAny,
                    { image_url: { url: string }; type: "image_url" },
                    { image_url: { url: string }; type: "image_url" },
                >,
            ],
        >,
        ZodUnion<
            [
                ZodLiteral<"auto">,
                ZodLiteral<"none">,
                ZodLiteral<"required">,
                ZodObject<
                    {
                        function: ZodObject<
                            { name: ZodString },
                            "strip",
                            ZodTypeAny,
                            { name: string },
                            { name: string },
                        >;
                        type: ZodLiteral<"function">;
                    },
                    "strip",
                    ZodTypeAny,
                    { function: { name: string }; type: "function" },
                    { function: { name: string }; type: "function" },
                >,
            ],
        >,
        ZodObject<
            {
                function: ZodObject<
                    { arguments: ZodString; name: ZodString },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                id: ZodString;
                type: ZodEffects<
                    ZodOptional<ZodLiteral<"function">>,
                    "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";
            },
        >,
        ZodObject<
            {
                function: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        parameters: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                type: ZodLiteral<"function">;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodObject<
            {
                json_schema: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        schema: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<[(...), (...)]>>;
                                required: ZodOptional<ZodArray<ZodString, "many">>;
                                type: ZodLiteral<"object">;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectOutputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectInputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                >;
                type: ZodLiteral<"json_schema">;
            },
            "strip",
            ZodTypeAny,
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectOutputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectInputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
        >,
    >
  • OPENAI: SDKConverters<
        ZodDiscriminatedUnion<
            "role",
            [
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        name: ZodOptional<ZodString>;
                        role: ZodLiteral<"assistant">;
                        tool_call_id: ZodOptional<ZodString>;
                        tool_calls: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        function: ZodObject<(...), (...), (...), (...), (...)>;
                                        id: ZodString;
                                        type: ZodEffects<(...), (...), (...)>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    { function: (...) & (...); id: string; type: "function" },
                                    { function: (...) & (...); id: string; type?: (...) | (...) },
                                >,
                                "many",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >,
                ZodObject<
                    {
                        content: ZodUnion<
                            [
                                ZodArray<
                                    ZodObject<
                                        { text: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { text: ...; type: ... },
                                        { text: ...; type: ... },
                                    >,
                                    "many",
                                >,
                                ZodString,
                            ],
                        >;
                        role: ZodLiteral<"tool">;
                        tool_call_id: ZodString;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "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",
                    >,
                >,
            ],
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { text: ZodString; type: ZodLiteral<"text"> },
                    "strip",
                    ZodTypeAny,
                    { text: string; type: "text" },
                    { text: string; type: "text" },
                >,
                ZodObject<
                    {
                        image_url: ZodObject<
                            { url: ZodString },
                            "strip",
                            ZodTypeAny,
                            { url: string },
                            { url: string },
                        >;
                        type: ZodLiteral<"image_url">;
                    },
                    "strip",
                    ZodTypeAny,
                    { image_url: { url: string }; type: "image_url" },
                    { image_url: { url: string }; type: "image_url" },
                >,
            ],
        >,
        ZodUnion<
            [
                ZodLiteral<"auto">,
                ZodLiteral<"none">,
                ZodLiteral<"required">,
                ZodObject<
                    {
                        function: ZodObject<
                            { name: ZodString },
                            "strip",
                            ZodTypeAny,
                            { name: string },
                            { name: string },
                        >;
                        type: ZodLiteral<"function">;
                    },
                    "strip",
                    ZodTypeAny,
                    { function: { name: string }; type: "function" },
                    { function: { name: string }; type: "function" },
                >,
            ],
        >,
        ZodObject<
            {
                function: ZodObject<
                    { arguments: ZodString; name: ZodString },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        { arguments: ZodString; name: ZodString },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                id: ZodString;
                type: ZodEffects<
                    ZodOptional<ZodLiteral<"function">>,
                    "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";
            },
        >,
        ZodObject<
            {
                function: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        parameters: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "passthrough",
                    ZodTypeAny,
                    objectOutputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                    objectInputType<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >,
                >;
                type: ZodLiteral<"function">;
            },
            "passthrough",
            ZodTypeAny,
            objectOutputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodObject<
            {
                json_schema: ZodObject<
                    {
                        description: ZodOptional<ZodString>;
                        name: ZodString;
                        schema: ZodObject<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<[(...), (...)]>>;
                                required: ZodOptional<ZodArray<ZodString, "many">>;
                                type: ZodLiteral<"object">;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    additionalProperties: ZodOptional<ZodBoolean>;
                                    properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                    required: ZodOptional<ZodArray<(...), (...)>>;
                                    type: ZodLiteral<"object">;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectOutputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                    {
                        description?: string;
                        name: string;
                        schema: {
                            additionalProperties?: boolean;
                            properties: Record<
                                string,
                                objectInputType<(...), (...), (...)>
                                | { anyOf: ... },
                            >;
                            required?: string[];
                            type: "object";
                        } & { [k: string]: unknown };
                    },
                >;
                type: ZodLiteral<"json_schema">;
            },
            "strip",
            ZodTypeAny,
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectOutputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
            {
                json_schema: {
                    description?: string;
                    name: string;
                    schema: {
                        additionalProperties?: boolean;
                        properties: Record<
                            string,
                            | objectInputType<
                                { description: ...; enum: ...; type: ... },
                                ZodTypeAny,
                                "passthrough",
                            >
                            | { anyOf: (...)[] },
                        >;
                        required?: string[];
                        type: "object";
                    } & { [k: string]: unknown };
                };
                type: "json_schema";
            },
        >,
    >
  • PHOENIX: SDKConverters<
        ZodEffects<
            ZodDiscriminatedUnion<
                "role",
                [
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                role: ZodLiteral<"tool">;
                                tool_call_id: ZodString;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, 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",
                        >,
                    >,
                ],
            >,
            {
                content: | string
                | (
                    | { text: string; type: "text" }
                    | {
                        tool_call: { arguments: string; name: string; type: "function" };
                        tool_call_id: string;
                        type: "tool_call";
                    }
                    | {
                        tool_call_id: string;
                        tool_result: | null
                        | string
                        | number
                        | boolean
                        | unknown[]
                        | Record<string, unknown>;
                        type: "tool_result";
                    }
                )[];
                role: | "user"
                | "assistant"
                | "model"
                | "ai"
                | "tool"
                | "system"
                | "developer";
            },
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<(...), (...), (...), (...), (...)>;
                                    id: ZodString;
                                    type: ZodEffects<(...), (...), (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                { function: (...) & (...); id: string; type: "function" },
                                { function: (...) & (...); id: string; type?: (...) | (...) },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [ZodArray<ZodUnion<[(...), (...)]>, "many">, ZodString],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"user">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"system">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"developer">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodUnknown,
        ZodUnknown,
        ZodUnknown,
        ZodUnknown,
        ZodUnknown,
    >
  • VERCEL_AI: SDKConverters<
        ZodEffects<
            ZodDiscriminatedUnion<
                "role",
                [
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            name: ZodOptional<ZodString>;
                            role: ZodLiteral<"assistant">;
                            tool_call_id: ZodOptional<ZodString>;
                            tool_calls: ZodOptional<
                                ZodArray<
                                    ZodObject<
                                        { function: ...; id: ...; type: ... },
                                        "strip",
                                        ZodTypeAny,
                                        { function: ...; id: ...; type: ... },
                                        { function: ...; id: ...; type?: ... },
                                    >,
                                    "many",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                name: ZodOptional<ZodString>;
                                role: ZodLiteral<"assistant">;
                                tool_call_id: ZodOptional<ZodString>;
                                tool_calls: ZodOptional<
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                    ZodObject<
                        {
                            content: ZodUnion<
                                [
                                    ZodArray<ZodObject<(...), (...), (...), (...), (...)>, "many">,
                                    ZodString,
                                ],
                            >;
                            role: ZodLiteral<"tool">;
                            tool_call_id: ZodString;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, ZodString]>;
                                role: ZodLiteral<"tool">;
                                tool_call_id: ZodString;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                content: ZodUnion<[ZodArray<(...), (...)>, 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",
                        >,
                    >,
                ],
            >,
            | { content: string; role: "system" }
            | {
                content:
                    | string
                    | (
                        | { text: string; type: "text" }
                        | { image: string; mimeType?: string; type: "image" }
                    )[];
                role: "user";
            }
            | {
                content: | string
                | (
                    | { text: string; type: "text" }
                    | {
                        args: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-call";
                    }
                )[];
                role: "assistant";
            }
            | {
                content: {
                    result: JSONLiteral;
                    toolCallId: string;
                    toolName: string;
                    type: "tool-result";
                }[];
                role: "tool";
            },
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"assistant">;
                    tool_call_id: ZodOptional<ZodString>;
                    tool_calls: ZodOptional<
                        ZodArray<
                            ZodObject<
                                {
                                    function: ZodObject<(...), (...), (...), (...), (...)>;
                                    id: ZodString;
                                    type: ZodEffects<(...), (...), (...)>;
                                },
                                "strip",
                                ZodTypeAny,
                                { function: (...) & (...); id: string; type: "function" },
                                { function: (...) & (...); id: string; type?: (...) | (...) },
                            >,
                            "many",
                        >,
                    >;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    role: ZodLiteral<"tool">;
                    tool_call_id: ZodString;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodNullable<ZodString>;
                    name: ZodString;
                    role: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [ZodArray<ZodUnion<[(...), (...)]>, "many">, ZodString],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"user">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"system">;
                },
                ZodTypeAny,
                "passthrough",
            >
            | objectInputType<
                {
                    content: ZodUnion<
                        [
                            ZodArray<
                                ZodObject<
                                    { text: ...; type: ... },
                                    "strip",
                                    ZodTypeAny,
                                    { text: ...; type: ... },
                                    { text: ...; type: ... },
                                >,
                                "many",
                            >,
                            ZodString,
                        ],
                    >;
                    name: ZodOptional<ZodString>;
                    role: ZodLiteral<"developer">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodDiscriminatedUnion<
            "type",
            [
                ZodObject<
                    { text: ZodString; type: ZodLiteral<"text"> },
                    "strip",
                    ZodTypeAny,
                    { text: string; type: "text" },
                    { text: string; type: "text" },
                >,
                ZodObject<
                    {
                        image: ZodString;
                        mimeType: ZodOptional<ZodString>;
                        type: ZodLiteral<"image">;
                    },
                    "strip",
                    ZodTypeAny,
                    { image: string; mimeType?: string; type: "image" },
                    { image: string; mimeType?: string; type: "image" },
                >,
                ZodObject<
                    {
                        args: ZodType<JSONLiteral, ZodTypeDef, JSONLiteral>;
                        toolCallId: ZodString;
                        toolName: ZodString;
                        type: ZodLiteral<"tool-call">;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        args: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-call";
                    },
                    {
                        args: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-call";
                    },
                >,
                ZodObject<
                    {
                        result: ZodType<JSONLiteral, ZodTypeDef, JSONLiteral>;
                        toolCallId: ZodString;
                        toolName: ZodString;
                        type: ZodLiteral<"tool-result">;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        result: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-result";
                    },
                    {
                        result: JSONLiteral;
                        toolCallId: string;
                        toolName: string;
                        type: "tool-result";
                    },
                >,
            ],
        >,
        ZodEffects<
            ZodUnion<
                [
                    ZodLiteral<"auto">,
                    ZodLiteral<"none">,
                    ZodLiteral<"required">,
                    ZodObject<
                        {
                            function: ZodObject<
                                { name: ZodString },
                                "strip",
                                ZodTypeAny,
                                { name: string },
                                { name: string },
                            >;
                            type: ZodLiteral<"function">;
                        },
                        "strip",
                        ZodTypeAny,
                        { function: { name: string }; type: "function" },
                        { function: { name: string }; type: "function" },
                    >,
                ],
            >,
            "none" | "auto" | "required" | { toolName: string; type: "tool" },

                | "none"
                | "auto"
                | "required"
                | { function: { name: string }; type: "function" },
        >,
        ZodObject<
            {
                args: ZodType<JSONLiteral, ZodTypeDef, JSONLiteral>;
                toolCallId: ZodString;
                toolName: ZodString;
                type: ZodLiteral<"tool-call">;
            },
            "strip",
            ZodTypeAny,
            {
                args: JSONLiteral;
                toolCallId: string;
                toolName: string;
                type: "tool-call";
            },
            {
                args: JSONLiteral;
                toolCallId: string;
                toolName: string;
                type: "tool-call";
            },
        >,
        ZodEffects<
            ZodObject<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                "passthrough",
                ZodTypeAny,
                objectOutputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
                objectInputType<
                    {
                        function: ZodObject<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            "passthrough",
                            ZodTypeAny,
                            objectOutputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                            objectInputType<
                                {
                                    description: ZodOptional<ZodString>;
                                    name: ZodString;
                                    parameters: ZodObject<
                                        (...) & (...),
                                        "passthrough",
                                        ZodTypeAny,
                                        objectOutputType<(...), (...), (...)>,
                                        objectInputType<(...), (...), (...)>,
                                    >;
                                },
                                ZodTypeAny,
                                "passthrough",
                            >,
                        >;
                        type: ZodLiteral<"function">;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
            >,
            {
                description?: string;
                parameters: {
                    _type?: unknown;
                    jsonSchema?: Record<string, unknown>;
                    validate?: unknown;
                };
                type: "function";
            },
            objectInputType<
                {
                    function: ZodObject<
                        {
                            description: ZodOptional<ZodString>;
                            name: ZodString;
                            parameters: ZodObject<
                                {
                                    additionalProperties: ZodOptional<(...)>;
                                    properties: ZodRecord<(...), (...)>;
                                    required: ZodOptional<(...)>;
                                    type: ZodLiteral<(...)>;
                                } & { strict: ZodOptional<(...)> },
                                "passthrough",
                                ZodTypeAny,
                                objectOutputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                                objectInputType<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    ZodTypeAny,
                                    "passthrough",
                                >,
                            >;
                        },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                description: ZodOptional<ZodString>;
                                name: ZodString;
                                parameters: ZodObject<
                                    {
                                        additionalProperties: ...;
                                        properties: ...;
                                        required: ...;
                                        type: ...;
                                    } & { strict: ... },
                                    "passthrough",
                                    ZodTypeAny,
                                    objectOutputType<(...) & (...), ZodTypeAny, "passthrough">,
                                    objectInputType<(...) & (...), ZodTypeAny, "passthrough">,
                                >;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                    type: ZodLiteral<"function">;
                },
                ZodTypeAny,
                "passthrough",
            >,
        >,
        ZodTypeAny,
    >