@thanh01.pmt/curriculum-kit 1.2.1 → 1.4.0

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
@@ -1893,6 +1893,54 @@ ${input.languageDirective}
1893
1893
 
1894
1894
  ${input.headingDirective}`.trim();
1895
1895
  }
1896
+ function buildHtmlDeckSlidePrompt(input) {
1897
+ const contract = input.customContract || `## HTML SLIDE ENGINE \u2014 AGENT GENERATION CONTRACT
1898
+ You generate structured slide decks for the LearnWell HTML Slide Presentation Engine.
1899
+ Your output MUST be a single, valid JSON object matching the Slide Deck JSON schema below.
1900
+
1901
+ ### \u{1F3A8} Available Layout Presets (Use layoutId):
1902
+ 1. **hero-cover**: Title/Cover slide with title, subtitle, presenter, date, tag.
1903
+ 2. **two-column-split**: Side-by-side comparison (col1Title, col1Items[], col2Title, col2Items[]).
1904
+ 3. **code-explainer**: Code walkthrough with filename, language, code, highlightLines, annotations[].
1905
+ 4. **metrics-3-card**: 3 key stat cards (card1Title, card1Val, card1Desc, card2..., card3...).
1906
+ 5. **process-flow**: Step-by-step pipeline (steps: [{ label, desc, status }]).
1907
+ 6. **quiz-checkpoint**: Quick multiple choice question (question, options[], answerIdx, explanation).
1908
+ 7. **tiered-practice-3cards**: Differentiated tiers (foundation, standard, challenge cards).
1909
+ 8. **takeaways-summary**: Summary review with bullet takeaways.
1910
+
1911
+ ### \u{1F399}\uFE0F Mandatory 3-Part Presenter Notes on EVERY slide:
1912
+ Every slide MUST include notes with:
1913
+ - Talk Track: 2-3 sentences speaking script
1914
+ - Cold-Call: 1 check question
1915
+ - Scaffolding Tip: 1 analogy or hint
1916
+
1917
+ ### Output JSON Format:
1918
+ \`\`\`json
1919
+ {
1920
+ "title": "${input.lessonTitle}",
1921
+ "theme": "ocean",
1922
+ "slides": [
1923
+ {
1924
+ "layoutId": "hero-cover",
1925
+ "slots": { "title": "${input.lessonTitle}", "subtitle": "..." },
1926
+ "notes": "Talk Track: ...\\nCold-Call: ...\\nScaffolding Tip: ..."
1927
+ }
1928
+ ]
1929
+ }
1930
+ \`\`\``;
1931
+ return `You are @illustrator & @content (Interactive HTML Slide Deck Presentation Architects).
1932
+ Based on Master Lesson Plan \`LESSON_${input.lessonCode}.md\`, pedagogical model (${input.pedagogyLabel}), and the HTML SLIDE ENGINE CONTRACT below, author the complete, highly engaging HTML presentation deck in JSON format: \`SLIDE_${input.lessonCode}\`.
1933
+
1934
+ ${contract}
1935
+
1936
+ ${input.languageDirective}
1937
+
1938
+ ${input.headingDirective}${input.glossaryBlock ? `
1939
+
1940
+ ${input.glossaryBlock}` : ""}
1941
+
1942
+ Output ONLY the raw JSON object. Do not include extra conversational text or markdown code fences.`.trim();
1943
+ }
1896
1944
 
1897
1945
  // src/ai/prompts/teacherGuidePrompt.ts
1898
1946
  function buildTeacherGuidePrompt(input) {
@@ -5038,6 +5086,7 @@ exports.buildCodeLabPrompt = buildCodeLabPrompt;
5038
5086
  exports.buildDiagnosticQuizPrompt = buildDiagnosticQuizPrompt;
5039
5087
  exports.buildExtensionPrompt = buildExtensionPrompt;
5040
5088
  exports.buildHandoutPrompt = buildHandoutPrompt;
5089
+ exports.buildHtmlDeckSlidePrompt = buildHtmlDeckSlidePrompt;
5041
5090
  exports.buildJudgePrompt = buildJudgePrompt;
5042
5091
  exports.buildLessonMasterPrompt = buildLessonMasterPrompt;
5043
5092
  exports.buildMarpMarkdownSlidePrompt = buildMarpMarkdownSlidePrompt;