Files
clientsflow/Frontend/server/api/chat.post.ts
2026-02-18 09:37:48 +07:00

34 lines
952 B
TypeScript

import { readBody } from "h3";
import { persistChatMessage, runCrmAgentFor } from "../agent/crmAgent";
import { getAuthContext } from "../utils/auth";
export default defineEventHandler(async (event) => {
const body = await readBody<{ text?: string }>(event);
const text = (body?.text ?? "").trim();
if (!text) {
throw createError({ statusCode: 400, statusMessage: "text is required" });
}
const auth = await getAuthContext(event);
await persistChatMessage({
teamId: auth.teamId,
conversationId: auth.conversationId,
authorUserId: auth.userId,
role: "USER",
text,
});
const reply = await runCrmAgentFor({ teamId: auth.teamId, userId: auth.userId, userText: text });
await persistChatMessage({
teamId: auth.teamId,
conversationId: auth.conversationId,
authorUserId: null,
role: "ASSISTANT",
text: reply.text,
plan: reply.plan,
tools: reply.tools,
});
return { ok: true };
});