SPB Git
838 B · 17 lines typescript
1import { z } from "zod";2import { guarded, body, sse, json } from "@/lib/api";3import { runResearch } from "@/lib/research/engine";4import { sql } from "@/lib/db";56export const maxDuration = 900;78export const POST = guarded(async (req) => {9  const b = await body(req, z.object({ question: z.string().min(5).max(5000), modelId: z.string(), projectId: z.string().nullable().optional(), depth: z.enum(["quick", "standard", "deep"]).optional() }));10  return sse(async (emit, signal) => { await runResearch({ ...b, emit, signal }); }, req.signal);11});1213export const GET = guarded(async () => {14  const runs = await sql`SELECT id, conversation_id, question, model_id, status, cost_usd, created_at, completed_at, jsonb_array_length(sources) AS source_count FROM research_runs ORDER BY created_at DESC LIMIT 100`;15  return json({ runs });16});17
Files · main
Menu

Theme