openAIToolDefinitionToAnthropic: ZodEffects<
    ZodObject<
        {
            function: ZodObject<
                {
                    description: ZodOptional<ZodString>;
                    name: ZodString;
                    parameters: ZodObject<
                        {
                            additionalProperties: ZodOptional<ZodBoolean>;
                            properties: ZodRecord<ZodString, ZodUnion<[(...), (...)]>>;
                            required: ZodOptional<ZodArray<ZodString, "many">>;
                            type: ZodLiteral<"object">;
                        } & { strict: ZodOptional<ZodBoolean> },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                },
                "passthrough",
                ZodTypeAny,
                objectOutputType<
                    {
                        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",
                            >,
                        >;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
                objectInputType<
                    {
                        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",
                            >,
                        >;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
            >;
            type: ZodLiteral<"function">;
        },
        "passthrough",
        ZodTypeAny,
        objectOutputType<
            {
                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">;
            },
            ZodTypeAny,
            "passthrough",
        >,
        objectInputType<
            {
                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">;
            },
            ZodTypeAny,
            "passthrough",
        >,
    >,
    {
        description: string;
        input_schema: {
            additionalProperties?: boolean;
            properties: Record<
                string,
                | objectOutputType<
                    {
                        description: ZodOptional<ZodString>;
                        enum: ZodOptional<ZodArray<ZodString, "many">>;
                        type: ZodEnum<
                            [
                                "string",
                                "number",
                                "boolean",
                                "object",
                                "array",
                                "null",
                                "integer",
                            ],
                        >;
                    },
                    ZodTypeAny,
                    "passthrough",
                >
                | {
                    anyOf: objectOutputType<
                        {
                            description: ZodOptional<(...)>;
                            enum: ZodOptional<(...)>;
                            type: ZodEnum<(...)>;
                        },
                        ZodTypeAny,
                        "passthrough",
                    >[];
                },
            >;
            required?: string[];
            type: "object";
        } & { [k: string]: unknown };
        name: string;
    },
    objectInputType<
        {
            function: ZodObject<
                {
                    description: ZodOptional<ZodString>;
                    name: ZodString;
                    parameters: ZodObject<
                        {
                            additionalProperties: ZodOptional<ZodBoolean>;
                            properties: ZodRecord<ZodString, ZodUnion<[(...), (...)]>>;
                            required: ZodOptional<ZodArray<ZodString, "many">>;
                            type: ZodLiteral<"object">;
                        } & { strict: ZodOptional<ZodBoolean> },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            ZodTypeAny,
                            "passthrough",
                        >,
                        objectInputType<
                            {
                                additionalProperties: ZodOptional<ZodBoolean>;
                                properties: ZodRecord<ZodString, ZodUnion<(...)>>;
                                required: ZodOptional<ZodArray<(...), (...)>>;
                                type: ZodLiteral<"object">;
                            } & { strict: ZodOptional<ZodBoolean> },
                            ZodTypeAny,
                            "passthrough",
                        >,
                    >;
                },
                "passthrough",
                ZodTypeAny,
                objectOutputType<
                    {
                        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",
                            >,
                        >;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
                objectInputType<
                    {
                        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",
                            >,
                        >;
                    },
                    ZodTypeAny,
                    "passthrough",
                >,
            >;
            type: ZodLiteral<"function">;
        },
        ZodTypeAny,
        "passthrough",
    >,
> = ...

Parse incoming object as an OpenAI tool call and immediately convert to Anthropic format