@thanh01.pmt/curriculum-kit 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ai/index.cjs CHANGED
@@ -90,6 +90,8 @@ function getSuggestedActionForCode(code) {
90
90
  return "N\u1ED9i dung sinh ra thi\u1EBFu c\xE1c ph\u1EA7n b\u1EAFt bu\u1ED9c [REQUIRED]. H\xE3y k\xEDch ho\u1EA1t ki\u1EC3m th\u1EED ho\u1EB7c b\u1EA5m Rerun.";
91
91
  case "ERR_STORAGE_IO_FAILED":
92
92
  return "L\u1ED7i \u0111\u1ECDc/ghi t\u1EC7p tin tr\xEAn h\u1EC7 th\u1ED1ng l\u01B0u tr\u1EEF. Ki\u1EC3m tra quy\u1EC1n ghi th\u01B0 m\u1EE5c output/projects.";
93
+ case "ERR_CONTEXT_MISSING":
94
+ return "Thi\u1EBFu ngu\u1ED3n tri th\u1EE9c b\u1EAFt bu\u1ED9c (KNOWLEDGE_EXPOSITION ho\u1EB7c CANONICAL LESSON) theo Dependency Routing Matrix. Vui l\xF2ng t\u1EA1o ho\u1EB7c \u0111\u1ED3ng b\u1ED9 t\xE0i li\u1EC7u ngu\u1ED3n tr\u01B0\u1EDBc.";
93
95
  default:
94
96
  return "B\u1EA5m Rerun \u0111\u1EC3 th\u1EED l\u1EA1i ho\u1EB7c ki\u1EC3m tra nh\u1EADt k\xFD h\u1EC7 th\u1ED1ng.";
95
97
  }
@@ -107,6 +109,7 @@ function isCodeRetryable(code) {
107
109
  case "ERR_TASK_GATE_BLOCKED":
108
110
  case "ERR_METERED_LIMIT_EXCEEDED":
109
111
  case "ERR_SCHEMA_CONTRACT_VIOLATION":
112
+ case "ERR_CONTEXT_MISSING":
110
113
  return false;
111
114
  default:
112
115
  return true;
@@ -1851,6 +1854,45 @@ Return a single valid JSON object matching SlideDeckSchema with these exact keys
1851
1854
  }
1852
1855
  `.trim();
1853
1856
  }
1857
+ var SLIDE_CANONICAL_METHODOLOGY = `
1858
+ MANDATORY 12-14 SLIDE MICRO-CYCLE STRUCTURE (Delimited by '---'):
1859
+ 1. **Slide 1 [Title & Mission]:** Real-world inquiry hook and overarching build mission
1860
+ 2. **Slide 2 [Agenda & Roadmap]:** Timing and milestone breakdown table
1861
+ 3. **Slide 3 [Warm-Up / Prior Knowledge]:** 2-column recall + 60-second diagnostic challenge card
1862
+ 4. **Slide 4 [High-Stakes Hook Scenario]:** Authentic engineering/domain crisis card + dilemma constraint
1863
+ 5. **Slide 5 [Core Concept 1: Mental Model]:** Definition, intuitive everyday analogy, and golden rule card
1864
+ 6. **Slide 6 [Architecture & Visual Flow]:** Clean Mermaid diagram (flowchart or sequenceDiagram) + 3 flow steps
1865
+ 7. **Slide 7 [Core Concept 2: Syntax / Mechanism Anatomy]:** Side-by-side runnable code + anatomy breakdown & syntax trap card
1866
+ 8. **Slide 8 [Guided Practice: Try It Now]:** 3-minute active desk task card with starter hint and success criteria
1867
+ 9. **Slide 9 [Integrated Hands-On Lab]:** 3-tier differentiated challenge cards (Bronze / Silver / Gold) + gotcha alert card
1868
+ 10. **Slide 10 [Traffic Light Checkpoint & Pitfalls]:** Formative self-check cards (\u{1F7E2}/\u{1F7E1}/\u{1F534}) & diagnostic test question
1869
+ 11. **Slide 11 [Exit Ticket & Metacognition]:** 2 scenario-based check questions + 1 metacognitive reflection prompt
1870
+ 12. **Slide 12 [Summary & Next Steps]:** 3 core golden rules + preview card of next upcoming milestone
1871
+
1872
+ Mandatory Canvas & Presentation Invariants:
1873
+ - A slide is an INTERACTIVE PROJECTION CANVAS, NOT a textbook! Absolutely NO dense paragraphs or walls of text.
1874
+ - Follow the 6x6 rule: Maximum 4-6 bullet points per slide, maximum 8-12 words per bullet.
1875
+ - Structure slides using \`<div class="columns"><div>...</div><div>...</div></div>\` and \`<div class="card">\`, \`<div class="card highlight">\`, \`<div class="card warning">\`, \`<div class="card success">\`.
1876
+ - MANDATORY PRESENTER NOTES ON EVERY SLIDE: Every slide MUST end with \`<!-- Presenter Notes: ... -->\` containing:
1877
+ * SCRIPT: 60-90s teacher talk track with intuitive analogies.
1878
+ * COLD CALL / CHECK: Specific diagnostic question to ask students.
1879
+ * SCAFFOLDING / GOTCHA: Guidance for students who get stuck.
1880
+ * PACING: Recommended minutes for the slide.
1881
+ - Output 100% valid Marp Markdown.
1882
+ `.trim();
1883
+ function buildMarpMarkdownSlidePrompt(input) {
1884
+ return `You are @illustrator & @content (Pedagogical Slide Deck Presentation Specialists).
1885
+ Based on Master Lesson Plan \`LESSON_${input.lessonCode}.md\`, lesson context, and the MARP SLIDE TEMPLATE below, author the complete, highly engaging Marp presentation deck: \`SLIDE_${input.lessonCode}.md\`.
1886
+
1887
+ [MARP SLIDE TEMPLATE SCAFFOLD]:
1888
+ ${input.templateScaffold}
1889
+
1890
+ ${SLIDE_CANONICAL_METHODOLOGY}
1891
+
1892
+ ${input.languageDirective}
1893
+
1894
+ ${input.headingDirective}`.trim();
1895
+ }
1854
1896
 
1855
1897
  // src/ai/prompts/teacherGuidePrompt.ts
1856
1898
  function buildTeacherGuidePrompt(input) {
@@ -1990,13 +2032,13 @@ Evaluate the candidate artifact across these 6 dimensions:
1990
2032
  - 0 pts: Missing critical sections.
1991
2033
 
1992
2034
  5. **Technical & Conceptual Accuracy (15 pts):**
1993
- - 15 pts: Code snippets, logic flows, architectural descriptions, and Mermaid diagrams are conceptually sound, valid, and free of syntax hallucinations.
2035
+ - 15 pts: Code snippets, logic flows, architectural descriptions, and Mermaid diagrams are conceptually sound and valid. If \`canonicalExposition\` or \`[KNOWLEDGE_EXPOSITION]\` is provided, content strictly adheres to canonical concepts without contradicting definitions or examples.
1994
2036
  - 8 pts: Minor syntax inaccuracies or unidiomatic code that does not break core concepts.
1995
- - 0 pts: Severe technical hallucinations, broken logic, or invalid diagrams.
2037
+ - 0 pts: Severe technical hallucinations, broken logic, invalid diagrams, or direct contradiction of canonical exposition knowledge.
1996
2038
 
1997
2039
  6. **Contract Consistency & Zero-Drift (10 pts):**
1998
- - 10 pts: Satellite artifact strictly adheres to the scope, tech stack, and objectives of Lesson ${lessonId} without introducing unrelated topics.
1999
- - 0-5 pts: Scope drift or topic divergence detected.
2040
+ - 10 pts: Satellite artifact strictly adheres to the scope, tech stack, and objectives of Lesson ${lessonId} without introducing unrelated topics. If \`canonicalLessonExcerpt\` is present in candidate JSON, all satellite phases/activities strictly operationalize the master Lesson Flow and Activity Sequence without inventing divergent timelines.
2041
+ - 0-5 pts: Scope drift, topic divergence, or disjoint activity sequence detected compared to master lesson.
2000
2042
 
2001
2043
  ## VERDICT RULES
2002
2044
  - **PASS:** Score >= 80 AND Language Adherence = true AND Standards Alignment >= 12 (when STANDARDS GROUND TRUTH is present).
@@ -4986,6 +5028,7 @@ exports.DEFAULT_ENABLED_PROVIDERS = DEFAULT_ENABLED_PROVIDERS;
4986
5028
  exports.LLMJudgeEngine = LLMJudgeEngine;
4987
5029
  exports.ModelPolicyResolver = ModelPolicyResolver;
4988
5030
  exports.NVIDIA_MODELS = NVIDIA_MODELS;
5031
+ exports.SLIDE_CANONICAL_METHODOLOGY = SLIDE_CANONICAL_METHODOLOGY;
4989
5032
  exports.activityTools = activityTools;
4990
5033
  exports.analystTools = analystTools;
4991
5034
  exports.assessorTools = assessorTools;
@@ -4997,6 +5040,7 @@ exports.buildExtensionPrompt = buildExtensionPrompt;
4997
5040
  exports.buildHandoutPrompt = buildHandoutPrompt;
4998
5041
  exports.buildJudgePrompt = buildJudgePrompt;
4999
5042
  exports.buildLessonMasterPrompt = buildLessonMasterPrompt;
5043
+ exports.buildMarpMarkdownSlidePrompt = buildMarpMarkdownSlidePrompt;
5000
5044
  exports.buildProjectInstructionPrompt = buildProjectInstructionPrompt;
5001
5045
  exports.buildSelfLabPrompt = buildSelfLabPrompt;
5002
5046
  exports.buildSlidesPrompt = buildSlidesPrompt;