import { asc } from 'drizzle-orm' import { z } from 'zod' import { DEFAULT_REQUIREMENTS, DEFAULT_SETTINGS, EMPTY_MEMORY } from '#shared/types' const schema = z.object({ title: z.string().min(1), description: z.string().default('') }) export default defineEventHandler(async (event) => { const body = await readJson(event, schema) const db = useDb() const id = newId() const firstModel = db.select().from(tables.models).orderBy(asc(tables.models.createdAt)).get() const modelId = firstModel?.id ?? null db.transaction((tx) => { tx.insert(tables.projects).values({ id, title: body.title, description: body.description, requirements: { ...DEFAULT_REQUIREMENTS }, settings: { ...DEFAULT_SETTINGS }, memory: structuredClone(EMPTY_MEMORY) }).run() tx.insert(tables.agents).values([ { id: newId(), projectId: id, role: 'editor', name: '主编', modelId }, { id: newId(), projectId: id, role: 'summarizer', name: '摘要员', modelId }, { id: newId(), projectId: id, role: 'writer', name: '作家·默认', modelId, styleNotes: '通用叙事' } ]).run() }) return { id } })