@thanh01.pmt/curriculum-kit 1.4.12 → 1.4.13
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.d.cts +77 -77
- package/dist/ai/index.d.ts +77 -77
- package/dist/index.cjs +18 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +18 -14
- package/dist/index.mjs.map +1 -1
- package/dist/schemas/index.d.cts +980 -980
- package/dist/schemas/index.d.ts +980 -980
- package/dist/standards/index.d.cts +2 -2
- package/dist/standards/index.d.ts +2 -2
- package/dist/{standardsCoverageGate-CwBk5P6m.d.cts → standardsCoverageGate-DR5YTtlt.d.cts} +12 -12
- package/dist/{standardsCoverageGate-CwBk5P6m.d.ts → standardsCoverageGate-DR5YTtlt.d.ts} +12 -12
- package/dist/workflow/index.cjs.map +1 -1
- package/dist/workflow/index.d.cts +1 -1
- package/dist/workflow/index.d.ts +1 -1
- package/dist/workflow/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -10,8 +10,8 @@ export { A as AutoRepairOptions, a as AutoRepairResult, B as BundleTier, G as Ge
|
|
|
10
10
|
import { I as ICurriculumStorage, P as ProjectStatusReport, S as SmartResumeContext, Q as QualityAuditReport } from './types-BUJGYiep.cjs';
|
|
11
11
|
export { b as ArtifactLifecycleInfo, A as ArtifactLifecycleState, L as LessonArtifactSummary, c as PipelineState, R as ReviewRecord, a as SotDocument, T as TaskLifecycleState } from './types-BUJGYiep.cjs';
|
|
12
12
|
export { FileSystemCurriculumAdapter, FileSystemStorageOptions, STANDARD_SOT_FILES, StorageFactoryOptions, SupabaseCurriculumAdapter, SupabaseStorageConfig, computeContentHash, createCurriculumStorage } from './storage/index.cjs';
|
|
13
|
-
import { F as FrameworkPack, C as CoverageGateReport } from './standardsCoverageGate-
|
|
14
|
-
export { B as BloomHintSchema, a as ClassificationSchema, m as CoverageGateInput, h as FrameworkMapping, d as FrameworkMappingSchema, f as FrameworkPackManifest, b as FrameworkPackManifestSchema, e as FrameworkPackSchema, g as FrameworkStatement, c as FrameworkStatementSchema, G as GradeBandSchema, i as MappingKind, M as MappingKindSchema, P as PackLintIssue, k as PackValidationResult, j as RecordProvenance, R as RecordProvenanceSchema, S as StatementCoverageRow, n as evaluateStandardsCoverage, l as lintFrameworkPack, v as validateFrameworkPack } from './standardsCoverageGate-
|
|
13
|
+
import { F as FrameworkPack, C as CoverageGateReport } from './standardsCoverageGate-DR5YTtlt.cjs';
|
|
14
|
+
export { B as BloomHintSchema, a as ClassificationSchema, m as CoverageGateInput, h as FrameworkMapping, d as FrameworkMappingSchema, f as FrameworkPackManifest, b as FrameworkPackManifestSchema, e as FrameworkPackSchema, g as FrameworkStatement, c as FrameworkStatementSchema, G as GradeBandSchema, i as MappingKind, M as MappingKindSchema, P as PackLintIssue, k as PackValidationResult, j as RecordProvenance, R as RecordProvenanceSchema, S as StatementCoverageRow, n as evaluateStandardsCoverage, l as lintFrameworkPack, v as validateFrameworkPack } from './standardsCoverageGate-DR5YTtlt.cjs';
|
|
15
15
|
import { R as ResolvedGateSettings } from './gateSettings-L3FR2-MO.cjs';
|
|
16
16
|
export { A as ArtifactType, b as CurriculumArtifactType, C as CurriculumGateMode, D as DEFAULT_GATE_SETTINGS, G as GateSettings, c as ScaffoldingLevel, S as SingleArtifactRequest, a as SingleArtifactResult, g as gateModeFor, e as generateSingleArtifact, d as getArtifactMetadata, p as parseGateSettings, r as resolveGateSettings } from './gateSettings-L3FR2-MO.cjs';
|
|
17
17
|
export { DeliveryPackResult, JobManifest, LocalWorkspaceManager, ParsedQuizQuestion, buildDeliveryPackages, exportAllProjectQuizzes, formatQuizzesToCsv, parseQuizMarkdown } from './publishers/index.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ export { A as AutoRepairOptions, a as AutoRepairResult, B as BundleTier, G as Ge
|
|
|
10
10
|
import { I as ICurriculumStorage, P as ProjectStatusReport, S as SmartResumeContext, Q as QualityAuditReport } from './types-BUJGYiep.js';
|
|
11
11
|
export { b as ArtifactLifecycleInfo, A as ArtifactLifecycleState, L as LessonArtifactSummary, c as PipelineState, R as ReviewRecord, a as SotDocument, T as TaskLifecycleState } from './types-BUJGYiep.js';
|
|
12
12
|
export { FileSystemCurriculumAdapter, FileSystemStorageOptions, STANDARD_SOT_FILES, StorageFactoryOptions, SupabaseCurriculumAdapter, SupabaseStorageConfig, computeContentHash, createCurriculumStorage } from './storage/index.js';
|
|
13
|
-
import { F as FrameworkPack, C as CoverageGateReport } from './standardsCoverageGate-
|
|
14
|
-
export { B as BloomHintSchema, a as ClassificationSchema, m as CoverageGateInput, h as FrameworkMapping, d as FrameworkMappingSchema, f as FrameworkPackManifest, b as FrameworkPackManifestSchema, e as FrameworkPackSchema, g as FrameworkStatement, c as FrameworkStatementSchema, G as GradeBandSchema, i as MappingKind, M as MappingKindSchema, P as PackLintIssue, k as PackValidationResult, j as RecordProvenance, R as RecordProvenanceSchema, S as StatementCoverageRow, n as evaluateStandardsCoverage, l as lintFrameworkPack, v as validateFrameworkPack } from './standardsCoverageGate-
|
|
13
|
+
import { F as FrameworkPack, C as CoverageGateReport } from './standardsCoverageGate-DR5YTtlt.js';
|
|
14
|
+
export { B as BloomHintSchema, a as ClassificationSchema, m as CoverageGateInput, h as FrameworkMapping, d as FrameworkMappingSchema, f as FrameworkPackManifest, b as FrameworkPackManifestSchema, e as FrameworkPackSchema, g as FrameworkStatement, c as FrameworkStatementSchema, G as GradeBandSchema, i as MappingKind, M as MappingKindSchema, P as PackLintIssue, k as PackValidationResult, j as RecordProvenance, R as RecordProvenanceSchema, S as StatementCoverageRow, n as evaluateStandardsCoverage, l as lintFrameworkPack, v as validateFrameworkPack } from './standardsCoverageGate-DR5YTtlt.js';
|
|
15
15
|
import { R as ResolvedGateSettings } from './gateSettings-L3FR2-MO.js';
|
|
16
16
|
export { A as ArtifactType, b as CurriculumArtifactType, C as CurriculumGateMode, D as DEFAULT_GATE_SETTINGS, G as GateSettings, c as ScaffoldingLevel, S as SingleArtifactRequest, a as SingleArtifactResult, g as gateModeFor, e as generateSingleArtifact, d as getArtifactMetadata, p as parseGateSettings, r as resolveGateSettings } from './gateSettings-L3FR2-MO.js';
|
|
17
17
|
export { DeliveryPackResult, JobManifest, LocalWorkspaceManager, ParsedQuizQuestion, buildDeliveryPackages, exportAllProjectQuizzes, formatQuizzesToCsv, parseQuizMarkdown } from './publishers/index.js';
|
package/dist/index.mjs
CHANGED
|
@@ -1278,7 +1278,7 @@ var init_lessonFlowParser = __esm({
|
|
|
1278
1278
|
|
|
1279
1279
|
// src/ai/prompts/slideBlueprintPrompt.ts
|
|
1280
1280
|
function buildSlideBlueprintPrompt(params) {
|
|
1281
|
-
const { lessonFlow, targetSlideCount
|
|
1281
|
+
const { lessonFlow, targetSlideCount, stylePresetName = "Blue Professional" } = params;
|
|
1282
1282
|
const activitiesSummary = lessonFlow.activities.map(
|
|
1283
1283
|
(a) => `Seq ${a.seq} [${a.phase}]: ${a.purpose} (Teacher: ${a.teacherMove} | Student: ${a.studentAction} | Time: ${a.time})`
|
|
1284
1284
|
).join("\n");
|
|
@@ -1286,9 +1286,11 @@ function buildSlideBlueprintPrompt(params) {
|
|
|
1286
1286
|
(p) => `Phase "${p.phaseName}" (${p.timing || "Standard"}):
|
|
1287
1287
|
${p.content.slice(0, 500)}...`
|
|
1288
1288
|
).join("\n\n");
|
|
1289
|
+
const countGuidance = targetSlideCount ? `The target is approximately ${targetSlideCount} slides.` : `Determine the organic, optimal number of slides (typically 12 to 25 slides) based directly on the number of activities, instructional moves, and depth of content in the LESSON plan.`;
|
|
1289
1290
|
return `
|
|
1290
1291
|
You are @illustrator, Chief Slide Architect for the Course Builder OS.
|
|
1291
|
-
Your task is to analyze the canonical LESSON plan and architect an authoritative, high-fidelity **SLIDE BLUEPRINT
|
|
1292
|
+
Your task is to analyze the canonical LESSON plan and architect an authoritative, high-fidelity **SLIDE BLUEPRINT**.
|
|
1293
|
+
${countGuidance}
|
|
1292
1294
|
|
|
1293
1295
|
### \u{1F3DB}\uFE0F PEDAGOGICAL GROUND TRUTH (FROM CANONICAL LESSON):
|
|
1294
1296
|
- Lesson Title: "${lessonFlow.lessonTitle}"
|
|
@@ -1306,17 +1308,18 @@ ${phasesSummary || lessonFlow.rawContent.slice(0, 3e3)}
|
|
|
1306
1308
|
---
|
|
1307
1309
|
|
|
1308
1310
|
### \u{1F3AF} ARCHITECTURAL RULES (STRICTLY INVARIANT):
|
|
1309
|
-
1. **PEDAGOGICAL FIDELITY (1-TO-1 PROJECTION)**:
|
|
1311
|
+
1. **ORGANIC PEDAGOGICAL FIDELITY (1-TO-1 PROJECTION)**:
|
|
1310
1312
|
- The slide sequence MUST follow the EXACT flow of the LESSON phases (${lessonFlow.pedagogicalModel.toUpperCase()}).
|
|
1313
|
+
- The number of slides is determined by the substance of the lesson \u2014 do NOT stretch thin content or cram rich multi-step labs into too few slides.
|
|
1311
1314
|
- Do NOT invent artificial phases that do not exist in the lesson plan.
|
|
1312
1315
|
- For example:
|
|
1313
|
-
* If 5E: Engage
|
|
1314
|
-
* If EDP: Ask/Problem
|
|
1315
|
-
* If PBL: Driving Question
|
|
1316
|
+
* If 5E: Engage -> Explore -> Explain -> Elaborate -> Evaluate.
|
|
1317
|
+
* If EDP: Ask/Problem -> Imagine & Plan -> Create & Prototype -> Test & Debug -> Improve & Share.
|
|
1318
|
+
* If PBL: Driving Question -> Inquiry -> Milestone Sprint -> Review & Exhibition.
|
|
1316
1319
|
|
|
1317
|
-
2. **CHUNKY CLUSTERS (
|
|
1318
|
-
-
|
|
1319
|
-
- Each cluster
|
|
1320
|
+
2. **CHUNKY CLUSTERS (4 TO 6 SLIDES PER CLUSTER)**:
|
|
1321
|
+
- Partition the slides into natural clusters corresponding to the major pedagogical transitions in the lesson.
|
|
1322
|
+
- Each cluster MUST contain 4 to 6 slides to ensure downstream token generation remains focused, high-fidelity, and non-repetitive.
|
|
1320
1323
|
|
|
1321
1324
|
3. **SEMANTIC LAYOUT SLOTS (CHOOSE FROM VERIFIED TEMPLATES)**:
|
|
1322
1325
|
Use one of these valid layoutIds for each slide:
|
|
@@ -1463,7 +1466,7 @@ async function executeSlideProductionWorkflow(options) {
|
|
|
1463
1466
|
lessonMarkdown,
|
|
1464
1467
|
lessonCode,
|
|
1465
1468
|
lessonTitle,
|
|
1466
|
-
targetSlideCount
|
|
1469
|
+
targetSlideCount,
|
|
1467
1470
|
stylePresetId = "blue-professional",
|
|
1468
1471
|
language = "Vietnamese",
|
|
1469
1472
|
languageDirective = "",
|
|
@@ -1482,7 +1485,8 @@ async function executeSlideProductionWorkflow(options) {
|
|
|
1482
1485
|
presentationKitCore = await import('@thanh01.pmt/presentation-kit');
|
|
1483
1486
|
} catch {
|
|
1484
1487
|
}
|
|
1485
|
-
|
|
1488
|
+
const countLabel = targetSlideCount ? `${targetSlideCount} ` : "h\u1EEFu c\u01A1 ";
|
|
1489
|
+
onProgress?.("@illustrator", `[1/4] Ph\xE2n t\xEDch m\u1EA1ch b\xE0i gi\u1EA3ng LESSON & L\u1EADp D\xE0n \xFD ${countLabel}Slides...`);
|
|
1486
1490
|
const lessonFlow = parseLessonFlow(lessonMarkdown);
|
|
1487
1491
|
const stylePreset = presentationKitSkills?.getStylePreset ? presentationKitSkills.getStylePreset(stylePresetId) : { name: "Blue Professional" };
|
|
1488
1492
|
const blueprintPrompt = buildSlideBlueprintPrompt({
|
|
@@ -1506,12 +1510,13 @@ async function executeSlideProductionWorkflow(options) {
|
|
|
1506
1510
|
blueprintItems = JSON.parse(jsonrepair(extractCleanJson(rawBlueprint)));
|
|
1507
1511
|
} catch (e) {
|
|
1508
1512
|
console.warn(`[SlideProductionWorkflow] Failed parsing blueprint JSON, constructing fallback:`, e);
|
|
1509
|
-
|
|
1513
|
+
const fallbackCount = targetSlideCount || Math.max(12, Math.min(24, Math.max(lessonFlow.phases.length, 4) * 4));
|
|
1514
|
+
blueprintItems = Array.from({ length: fallbackCount }, (_, i) => ({
|
|
1510
1515
|
slideIndex: i + 1,
|
|
1511
1516
|
clusterId: Math.floor(i / 5) + 1,
|
|
1512
1517
|
clusterTitle: `Cluster ${Math.floor(i / 5) + 1}`,
|
|
1513
1518
|
lessonPhase: lessonFlow.phases[Math.min(i, lessonFlow.phases.length - 1)]?.phaseName || "Content",
|
|
1514
|
-
layoutId: i === 0 ? "hero-cover" : i ===
|
|
1519
|
+
layoutId: i === 0 ? "hero-cover" : i === fallbackCount - 1 ? "summary-takeaways" : "split-concept-code",
|
|
1515
1520
|
title: `Slide ${i + 1}: ${lessonTitle}`,
|
|
1516
1521
|
pedagogicalGoal: `Teach step ${i + 1} of ${lessonTitle}`,
|
|
1517
1522
|
contentFocus: ["Key point 1", "Key point 2", "Key point 3"]
|
|
@@ -25816,7 +25821,6 @@ ${buildHeadingDirective("QUIZ", slcMarkdown, targetLang)}`;
|
|
|
25816
25821
|
lessonMarkdown: lessonContent || "",
|
|
25817
25822
|
lessonCode,
|
|
25818
25823
|
lessonTitle,
|
|
25819
|
-
targetSlideCount: 20,
|
|
25820
25824
|
stylePresetId: "blue-professional",
|
|
25821
25825
|
language: targetLang || "Vietnamese",
|
|
25822
25826
|
languageDirective,
|