Version 3 of the kit: - Radix UI replaced with Base UI (using the Shadcn UI patterns) - next-intl replaces react-i18next - enhanceAction deprecated; usage moved to next-safe-action - main layout now wrapped with [locale] path segment - Teams only mode - Layout updates - Zod v4 - Next.js 16.2 - Typescript 6 - All other dependencies updated - Removed deprecated Edge CSRF - Dynamic Github Action runner
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { PRDManager } from '@kit/mcp-server/prd-manager';
|
|
|
|
import { relative } from 'node:path';
|
|
|
|
interface PRDSummary {
|
|
filename: string;
|
|
title: string;
|
|
lastUpdated: string;
|
|
progress: number;
|
|
totalStories: number;
|
|
completedStories: number;
|
|
}
|
|
|
|
export async function loadPRDs(): Promise<PRDSummary[]> {
|
|
try {
|
|
PRDManager.setRootPath(relative(process.cwd(), '../..'));
|
|
|
|
// Use the actual PRDManager to list PRDs
|
|
const prdFiles = await PRDManager.listPRDs();
|
|
|
|
const prdSummaries: PRDSummary[] = [];
|
|
|
|
// Load each PRD to get its details
|
|
for (const filename of prdFiles) {
|
|
try {
|
|
const content = await PRDManager.getPRDContent(filename);
|
|
const prd = JSON.parse(content);
|
|
|
|
prdSummaries.push({
|
|
filename,
|
|
title: prd.introduction.title,
|
|
lastUpdated: prd.metadata.lastUpdated,
|
|
progress: prd.progress.overall,
|
|
totalStories: prd.progress.total,
|
|
completedStories: prd.progress.completed,
|
|
});
|
|
} catch (prdError) {
|
|
console.error(`Failed to load PRD ${filename}:`, prdError);
|
|
// Continue with other PRDs even if one fails
|
|
}
|
|
}
|
|
|
|
return prdSummaries;
|
|
} catch (error) {
|
|
console.error('Failed to load PRDs:', error);
|
|
return [];
|
|
}
|
|
}
|