feat: implement curriculum management system including automated generation, enrichment, and versioning workflows

This commit is contained in:
RaymondVerhoef
2026-05-24 19:50:20 +02:00
parent 8e01b21a50
commit c5e23c77cd
15 changed files with 1354 additions and 623 deletions

View File

@@ -30,6 +30,29 @@ export const extractionResultSchema = z.object({
relations: z.array(extractionRelationSchema),
});
const curriculumWeekSchema = z.object({
week_number: z.number().int().min(1).max(26),
theme: z.string().min(1),
topic_ids: z.array(z.string().min(1)).min(1),
estimated_duration: z.number().int().min(15).max(45),
week_rationale: z.string().min(1),
});
export const curriculumScheduleSchema = z.object({
weeks: z.array(curriculumWeekSchema).length(26),
});
const topicEnrichmentSchemaDef = z.object({
id: z.string().min(1),
theme: z.string().min(1),
complexity_weight: z.number().int().min(1).max(5),
difficulty: z.enum(['introductory', 'intermediate', 'advanced']),
});
export const topicEnrichmentSchema = z.object({
topics: z.array(topicEnrichmentSchemaDef).min(1),
});
const articleSectionSchema = z.object({
heading: z.string().min(1),
@@ -185,6 +208,8 @@ export const replaceTakeawaysPatchSchema = z.object({
*/
export const toolSchemaRegistry = {
emit_knowledge_graph: extractionResultSchema,
emit_curriculum_schedule: curriculumScheduleSchema,
emit_topic_enrichment: topicEnrichmentSchema,
emit_learning_article: learningArticleSchema,
emit_learning_slides: learningSlidesSchema,
emit_learning_infographic: learningInfographicSchema,