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

Hub → Spoke: Convert an OpenAI message to Prompt format