Files
Chris Tate ddae61805e inline mode (#107)
* ai sdk

* chat

* move more to lib

* fixes

* refactor

* fixes

* streamdown

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* data-spec

* fixes

* sortable

* github

* tools

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* tables

* fixes

* fixes

* rename to chat

* fixes docs

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fix lint

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes
2026-02-13 17:53:03 -06:00

37 lines
988 B
TypeScript

import { agent } from "@/lib/agent";
import {
convertToModelMessages,
createUIMessageStream,
createUIMessageStreamResponse,
type UIMessage,
} from "ai";
import { pipeJsonRender } from "@json-render/core";
export const maxDuration = 60;
export async function POST(req: Request) {
const body = await req.json();
const uiMessages: UIMessage[] = body.messages;
if (!uiMessages || !Array.isArray(uiMessages) || uiMessages.length === 0) {
return new Response(
JSON.stringify({ error: "messages array is required" }),
{
status: 400,
headers: { "Content-Type": "application/json" },
},
);
}
const modelMessages = await convertToModelMessages(uiMessages);
const result = await agent.stream({ messages: modelMessages });
const stream = createUIMessageStream({
execute: async ({ writer }) => {
writer.merge(pipeJsonRender(result.toUIMessageStream()));
},
});
return createUIMessageStreamResponse({ stream });
}