import { createPhysicsBatchCurationReport, type PhysicsSeedFactoryReport, } from "./physicsLessonSeedFactory"; export type { PhysicsSeedFactoryReport }; export function buildPhysicsSeedFactoryReport(): PhysicsSeedFactoryReport { return createPhysicsBatchCurationReport(); } export function formatPhysicsSeedFactoryReport(report: PhysicsSeedFactoryReport): string { const lines: string[] = []; lines.push(`Total Physics chapters: ${report.totalPhysicsChapters}`); lines.push(`Curated chapters (teachable): ${report.curatedChapters.join(", ") || "none"}`); lines.push(`Uncurated chapters: ${report.uncuratedChapters.join(", ") || "none"}`); lines.push(`Source-repaired chapters: ${report.sourceRepairedChapters.join(", ") || "none"}`); lines.push( `Curation-ready (source repaired, final seeds MISSING, NOT teachable): ${ report.curationReadyChapters.join(", ") || "none" }`, ); lines.push(`Draftable chapters: ${report.draftableChapters.join(", ") || "none"}`); lines.push( `Blocked chapters: ${ report.blockedChapters.map((chapter) => `${chapter.chapterId} (${chapter.reason})`).join(", ") || "none" }`, ); lines.push(`Next recommended batch: ${report.nextRecommendedBatch.join(", ") || "none"}`); lines.push(`Next recommended action: ${report.nextRecommendedAction}`); lines.push("Coverage by chapter:"); for (const chapter of report.coverageByChapter) { lines.push( `- ${chapter.chapterId} ${chapter.chapterTitle}: [${chapter.curationStatus}] ${chapter.sourceConfidence}` + `${chapter.sourceRepaired ? ", source_repaired" : ""}, curated=${chapter.curatedSeedCount}` + `, finalSeeds=${chapter.finalSeedsPresent ? "present" : "missing"}, missing=${chapter.missingMissionTypes.join(", ") || "none"}`, ); if (chapter.warnings.length) { lines.push(` warnings: ${chapter.warnings.join("; ")}`); } } return lines.join("\n"); }