import { errorResponses, safeGetJsonBody, validateRequestBody } from "@/lib/api-utils"; import { isConvexEnabled } from "@/lib/convex/enabled"; import { getAuthedConvexClient } from "@/lib/convex/route"; import { startMnoteCliAgentHostRun, type MnoteCliAgentRunPayload, } from "@/lib/server/mnote-cli-agent-host"; export const dynamic = "force-dynamic"; export async function POST(request: Request) { const payload = await safeGetJsonBody(request); if (!payload) { return errorResponses.badRequest("请求体不能为空"); } const validationError = validateRequestBody(payload, ["messages"] as const); if (validationError) return validationError; if (!Array.isArray(payload.messages) || payload.messages.length === 0) { return errorResponses.badRequest("缺少 messages"); } let userId = ""; let userEmail: string | undefined; let userName: string | undefined; if (isConvexEnabled()) { const { auth } = await getAuthedConvexClient(); userId = auth.userId ?? ""; userEmail = auth.email; userName = auth.name; } if (!userId) { return errorResponses.unauthorized(); } return startMnoteCliAgentHostRun({ request, userId, userEmail, userName, payload, }); }