| import { NextRequest, NextResponse } from "next/server";
|
| import { isAuthenticated } from "@/shared/utils/apiAuth";
|
| import {
|
| clearReasoningCacheAll,
|
| deleteReasoningCacheEntry,
|
| getReasoningCacheServiceEntries,
|
| getReasoningCacheServiceStats,
|
| } from "@omniroute/open-sse/services/reasoningCache.ts";
|
| import { sanitizeErrorMessage } from "@omniroute/open-sse/utils/error";
|
|
|
| function errorMessage(error: unknown): string {
|
| return sanitizeErrorMessage(error);
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
| export async function GET(req: NextRequest) {
|
| if (!(await isAuthenticated(req))) {
|
| return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
| }
|
|
|
| try {
|
| const { searchParams } = new URL(req.url);
|
| const provider = searchParams.get("provider") || undefined;
|
| const model = searchParams.get("model") || undefined;
|
| const limit = parseInt(searchParams.get("limit") || "50", 10);
|
| const offset = parseInt(searchParams.get("offset") || "0", 10);
|
|
|
| const stats = getReasoningCacheServiceStats();
|
| const entries = getReasoningCacheServiceEntries({
|
| limit: Math.min(Math.max(limit, 1), 200),
|
| offset: Math.max(offset, 0),
|
| provider,
|
| model,
|
| });
|
|
|
| return NextResponse.json({ stats, entries });
|
| } catch (error) {
|
| return NextResponse.json({ error: errorMessage(error) }, { status: 500 });
|
| }
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
| export async function DELETE(req: NextRequest) {
|
| if (!(await isAuthenticated(req))) {
|
| return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
| }
|
|
|
| try {
|
| const { searchParams } = new URL(req.url);
|
| const toolCallId = searchParams.get("toolCallId") || undefined;
|
| const provider = searchParams.get("provider") || undefined;
|
|
|
| if (toolCallId) {
|
| const cleared = deleteReasoningCacheEntry(toolCallId);
|
| return NextResponse.json({
|
| ok: true,
|
| cleared,
|
| scope: "toolCallId",
|
| toolCallId,
|
| });
|
| }
|
|
|
| const cleared = clearReasoningCacheAll(provider);
|
|
|
| return NextResponse.json({
|
| ok: true,
|
| cleared,
|
| scope: provider ? "provider" : "all",
|
| ...(provider ? { provider } : {}),
|
| });
|
| } catch (error) {
|
| return NextResponse.json({ error: errorMessage(error) }, { status: 500 });
|
| }
|
| }
|
|
|