import * as z from "zod";
import { messageSchema } from "@turbostarter/ai/pdf/schema";
import { handle } from "@turbostarter/api/utils";
import { api } from "~/lib/api/server";
import { getMetadata } from "~/lib/metadata";
import { ChatComposer } from "~/modules/pdf/composer";
import { Chat } from "~/modules/pdf/thread";
export const generateMetadata = async ({
params,
}: {
params: Promise<{ id: string; locale: string }>;
}) => {
const id = (await params).id;
const chat = await handle(api.ai.pdf.chats[":id"].$get)({
param: { id },
});
return getMetadata({
...(chat?.name && { title: chat.name }),
})({ params });
};
const PdfChat = async ({ params }: { params: Promise<{ id: string }> }) => {
const id = (await params).id;
const messages = await handle(api.ai.pdf.chats[":id"].messages.$get, {
schema: z.array(messageSchema),
})({
param: { id },
});
const initialMessages = messages.map((message) => ({
...message,
parts: [
{
type: "text" as const,
text: message.content,
},
],
}));
return (
<>