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

The zod schema for an anthropic tool definition