import type { Metadata } from 'next'; import { ActionButton, AdminTitle, Notice } from '@/components/admin/ui'; import { flushCacheAction, recomputeQualityAction, recomputeStatsAction } from '@/lib/admin/actions'; import { requireAdmin } from '@/lib/admin/admin-api'; export const metadata: Metadata = { title: 'Cache & maintenance', robots: { index: false, follow: false } }; export const dynamic = 'force-dynamic'; export default async function AdminCachePage({ searchParams }: { searchParams: Promise> }) { await requireAdmin(); const sp = await searchParams; return ( <>
  • Flush API cache

    POST /admin/cache/flush — deletes every aia:api:* key. Safe; the next requests repopulate it.

    Flush
  • Recompute stats

    POST /admin/stats/recompute — refreshes the daily stats history row for today.

    Recompute stats
  • Recompute quality scores

    POST /admin/quality/recompute — recomputes completeness, primary-source ratio, freshness and conflicts for every entity. May take a while on a large database.

    Recompute quality
); }