Files
vibn-frontend/app/api/projects/[projectId]/debug-knowledge/route.ts

60 lines
1.7 KiB
TypeScript

import { NextResponse } from 'next/server';
import { getAdminDb } from '@/lib/firebase/admin';
export async function GET(
request: Request,
context: { params: Promise<{ projectId: string }> | { projectId: string } }
) {
try {
const params = 'then' in context.params ? await context.params : context.params;
const projectId = params.projectId;
if (!projectId) {
return NextResponse.json({ error: 'Missing projectId' }, { status: 400 });
}
const adminDb = getAdminDb();
// Get ALL knowledge items for this project
const knowledgeSnapshot = await adminDb
.collection('knowledge_items')
.where('projectId', '==', projectId)
.get();
const items = knowledgeSnapshot.docs.map(doc => {
const data = doc.data();
return {
id: doc.id,
title: data.title,
sourceType: data.sourceType,
contentLength: data.content?.length || 0,
createdAt: data.createdAt,
tags: data.sourceMeta?.tags || [],
};
});
// Get project info
const projectDoc = await adminDb.collection('projects').doc(projectId).get();
const projectData = projectDoc.data();
return NextResponse.json({
projectId,
projectName: projectData?.name,
currentPhase: projectData?.currentPhase,
totalKnowledgeItems: items.length,
items,
extractionHandoff: projectData?.phaseData?.phaseHandoffs?.extraction,
});
} catch (error) {
console.error('[debug-knowledge] Error:', error);
return NextResponse.json(
{
error: 'Failed to debug knowledge',
details: error instanceof Error ? error.message : String(error),
},
{ status: 500 }
);
}
}