import { NextRequest, NextResponse } from "next/server";
import { compactAguiHistory, estimateHistoryTokens } from "@optage/sdk";
import type { AguiMessage } from "@optage/sdk";

export const runtime = "nodejs";

interface CompactRequestBody {
  messages?: AguiMessage[];
  summaryPrompt?: string;
}

export async function POST(request: NextRequest) {
  const body = (await request.json()) as CompactRequestBody;
  const messages = Array.isArray(body.messages) ? body.messages : [];

  if (messages.length === 0) {
    return NextResponse.json({
      compacted: false,
      estimatedTokensBefore: 0,
      history: [],
    });
  }

  const estimatedTokensBefore = estimateHistoryTokens(messages);
  const history = await compactAguiHistory(messages, {
    summaryPrompt: body.summaryPrompt,
  });

  return NextResponse.json({
    compacted: true,
    estimatedTokensBefore,
    history,
  });
}
