Arize Phoenix TS
    Preparing search index...
    openAIMessageToPhoenixPrompt: ZodPipe<
        ZodDiscriminatedUnion<
            [
                ZodObject<
                    {
                        content: ZodUnion<
                            readonly [
                                ZodArray<
                                    ZodObject<{ text: ZodString; type: ZodLiteral<(...)> }, $strip>,
                                >,
                                ZodString,
                            ],
                        >;
                        name: ZodOptional<ZodString>;
                        role: ZodLiteral<"assistant">;
                        tool_call_id: ZodOptional<ZodString>;
                        tool_calls: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        function: ZodObject<{ arguments: ...; name: ... }, $loose>;
                                        id: ZodString;
                                        type: ZodPipe<ZodOptional<(...)>, ZodTransform<(...), (...)>>;
                                    },
                                    $strip,
                                >,
                            >,
                        >;
                    },
                    $loose,
                >,
                ZodObject<
                    {
                        content: ZodUnion<
                            readonly [
                                ZodArray<
                                    ZodObject<{ text: ZodString; type: ZodLiteral<(...)> }, $strip>,
                                >,
                                ZodString,
                            ],
                        >;
                        role: ZodLiteral<"tool">;
                        tool_call_id: ZodString;
                    },
                    $loose,
                >,
                ZodObject<
                    {
                        content: ZodNullable<ZodString>;
                        name: ZodString;
                        role: ZodLiteral<"function">;
                    },
                    $loose,
                >,
            ],
            "role",
        >,
        ZodTransform<
            {
                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: | string
                        | number
                        | boolean
                        | unknown[]
                        | Record<string, unknown>
                        | null;
                        type: "tool_result";
                    }
                )[];
                role: | "user"
                | "assistant"
                | "model"
                | "ai"
                | "tool"
                | "system"
                | "developer";
            },
            | {
                content: string
                | { text: string; type: "text" }[];
                name?: string;
                role: "assistant";
                tool_call_id?: string;
                tool_calls?: {
                    function: { arguments: string; name: string; [key: string]: unknown };
                    id: string;
                    type: "function";
                }[];
                [key: string]: unknown;
            }
            | {
                content: string
                | { text: string; type: "text" }[];
                role: "tool";
                tool_call_id: string;
                [key: string]: unknown;
            }
            | {
                content: string
                | null;
                name: string;
                role: "function";
                [key: string]: unknown;
            }
            | {
                content: | string
                | (
                    | { text: string; type: "text" }
                    | { image_url: { url: string }; type: "image_url" }
                )[];
                name?: string;
                role: "user";
                [key: string]: unknown;
            }
            | {
                content: string
                | { text: string; type: "text" }[];
                name?: string;
                role: "system";
                [key: string]: unknown;
            }
            | {
                content: string
                | { text: string; type: "text" }[];
                name?: string;
                role: "developer";
                [key: string]: unknown;
            },
        >,
    > = ...

    Hub → Spoke: Convert an OpenAI message to Prompt format