29 lines · 960 B · TypeScript
RawDownload
import { NextRequest } from "next/server";import { assertGitCwd, loadGitState, runGitAction } from "@/lib/agent/git/service"; export const runtime = "nodejs";export const dynamic = "force-dynamic"; export async function GET(request: NextRequest) {  const { cwd, error } = assertGitCwd(request.nextUrl.searchParams.get("cwd"));  if (error) return error;  try {    return Response.json(await loadGitState(cwd));  } catch (err) {    return Response.json({ error: message(err) }, { status: 400 });  }} export async function POST(request: NextRequest) {  const { cwd, error } = assertGitCwd(request.nextUrl.searchParams.get("cwd"));  if (error) return error;  try {    return Response.json(await runGitAction(cwd, { action: "init" }));  } catch (err) {    return Response.json({ error: message(err) }, { status: 400 });  }} function message(error: unknown): string {  return error instanceof Error ? error.message : "Git operation failed";}