export async function POST(req: Request) {
const session = await getSession(req.headers);
if (!session || !session.user) {
return new Response('Unauthorized', { status: 401 });
}
const {
messages,
webSearch,
}: {
messages: UIMessage[];
webSearch: boolean;
} = await req.json();
runtimeContext.set('isSearchEnabled', webSearch);
const stream = await agent.streamVNext(messages, {
format: 'aisdk',
runtimeContext,
memory: {
resource: `user_${session.user.id}`,
thread: `chat_${session.user.id}`,
},
});
return stream.toUIMessageStreamResponse({
sendSources: true,
sendReasoning: true,
});
}
export async function GET(req: Request) {
const session = await getSession(req.headers);
if (!session || !session.user) {
return new Response('Unauthorized', { status: 401 });
}
try {
const result = await (
await agent.getMemory()
)?.query({
threadId: `chat_${session.user.id}`,
});
return NextResponse.json(result?.uiMessages || []);
} catch (error) {
console.error('Error fetching chat history:', error);
return new Response('Internal server error', { status: 500 });
}
}
export async function POST(req: Request) {
const session = await getSession(req.headers);
if (!session || !session.user) {
return new Response('Unauthorized', { status: 401 });
}
const {
messages,
webSearch,
}: {
messages: UIMessage[];
webSearch: boolean;
} = await req.json();
runtimeContext.set('isSearchEnabled', webSearch);
const stream = await agent.streamVNext(messages, {
format: 'aisdk',
runtimeContext,
memory: {
resource: `user_${session.user.id}`,
thread: `chat_${session.user.id}`,
},
});
return stream.toUIMessageStreamResponse({
sendSources: true,
sendReasoning: true,
});
}
export async function GET(req: Request) {
const session = await getSession(req.headers);
if (!session || !session.user) {
return new Response('Unauthorized', { status: 401 });
}
try {
const result = await (
await agent.getMemory()
)?.query({
threadId: `chat_${session.user.id}`,
});
return NextResponse.json(result?.uiMessages || []);
} catch (error) {
console.error('Error fetching chat history:', error);
return new Response('Internal server error', { status: 500 });
}
}