/** * Health check endpoint for docs-chat API. */ import type { VercelRequest, VercelResponse } from "@vercel/node"; import { DocsStore } from "../rag/store-upstash.js"; const corsHeaders: Record = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, OPTIONS", "Access-Control-Allow-Headers": "Content-Type", }; export default async function handler(req: VercelRequest, res: VercelResponse) { // Handle CORS preflight if (req.method === "OPTIONS") { Object.entries(corsHeaders).forEach(([key, value]) => { res.setHeader(key, value); }); res.status(204).end(); return; } if (req.method !== "GET") { res.status(405).json({ error: "Method not allowed" }); return; } try { const store = new DocsStore(); const count = await store.count(); Object.entries(corsHeaders).forEach(([key, value]) => { res.setHeader(key, value); }); res.status(200).json({ ok: true, chunks: count, mode: "upstash-vector" }); } catch (err) { console.error("Health check error:", err); res.status(500).json({ ok: false, error: "Failed to connect to vector store" }); } }