@thanh01.pmt/curriculum-kit 1.4.35 → 1.4.37

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.
Files changed (35) hide show
  1. package/dist/ai/index.cjs +57 -1
  2. package/dist/ai/index.cjs.map +1 -1
  3. package/dist/ai/index.d.cts +2 -2
  4. package/dist/ai/index.d.ts +2 -2
  5. package/dist/ai/index.mjs +57 -1
  6. package/dist/ai/index.mjs.map +1 -1
  7. package/dist/{gateSettings-DabOqP6_.d.cts → gateSettings-oo5tCUS_.d.cts} +18 -0
  8. package/dist/{gateSettings-DabOqP6_.d.ts → gateSettings-oo5tCUS_.d.ts} +18 -0
  9. package/dist/index.cjs +793 -51
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +251 -74
  12. package/dist/index.d.ts +251 -74
  13. package/dist/index.mjs +775 -52
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/pipeline/index.cjs +57 -1
  16. package/dist/pipeline/index.cjs.map +1 -1
  17. package/dist/pipeline/index.mjs +57 -1
  18. package/dist/pipeline/index.mjs.map +1 -1
  19. package/dist/schemas/index.cjs +63 -1
  20. package/dist/schemas/index.cjs.map +1 -1
  21. package/dist/schemas/index.d.cts +436 -33
  22. package/dist/schemas/index.d.ts +436 -33
  23. package/dist/schemas/index.mjs +58 -2
  24. package/dist/schemas/index.mjs.map +1 -1
  25. package/dist/standards/index.d.cts +2 -2
  26. package/dist/standards/index.d.ts +2 -2
  27. package/dist/workflow/index.cjs +84 -2
  28. package/dist/workflow/index.cjs.map +1 -1
  29. package/dist/workflow/index.d.cts +3 -3
  30. package/dist/workflow/index.d.ts +3 -3
  31. package/dist/workflow/index.mjs +84 -2
  32. package/dist/workflow/index.mjs.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/{standardsCoverageGate-DR5YTtlt.d.cts → standardsCoverageGate-49pJq5t8.d.cts} +6 -6
  35. package/dist/{standardsCoverageGate-DR5YTtlt.d.ts → standardsCoverageGate-49pJq5t8.d.ts} +6 -6
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { PlanConstraints, TranslationPolicy, CurriculumPlan, PlanningGraph, PlanningNode, DependencyEdge, LessonPlan, DiagnosticQuizInput, ActivityLab, SlideDeck, CodeLab, DiagnosticQuiz } from './schemas/index.js';
2
- export { ActiveLearningWorkflow, ActiveLearningWorkflowSchema, ActivityLabSchema, ActivitySeqRow, ActivitySeqRowSchema, ActivityStepSchema, ArtifactContractRowSchema, AssessmentMapRowSchema, AssessmentObjective, AssessmentObjectiveSchema, BellRinger, BellRingerDay, BellRingerDaySchema, BellRingerInput, BellRingerSchema, BloomLevel, BloomLevelSchema, BronzeTier, BronzeTierSchema, CERConclusion, CERConclusionSchema, CardTierEnum, ChoiceBoard, ChoiceBoardInput, ChoiceBoardRubricRowSchema, ChoiceBoardSchema, ChoiceRuleSchema, ChoiceSquare, ChoiceSquareSchema, CodeLabSchema, CodeSnippet, CodeSnippetSchema, CompetencyRubricRow, CompetencyRubricRowSchema, ComputationalThinking, ComputationalThinkingSchema, CoreConcept, CoreConceptSchema, CourseObjective, CourseObjectiveSchema, CoverageReport, CoverageReportSchema, CurriculumArtifact, CurriculumArtifactSchema, CurriculumPlanSchema, CurriculumQualityReport, CurriculumQualityReportSchema, DependencyEdgeSchema, DepthAssignment, DepthAssignmentSchema, DepthLevel, DepthLevelSchema, DiagnosticQuestion, DiagnosticQuestionInput, DiagnosticQuestionSchema, DiagnosticQuizSchema, EDPPhaseEnum, EntryLevelSchema, ExitTicket, ExitTicketBugHunt, ExitTicketBugHuntSchema, ExitTicketMetacognitionSchema, ExitTicketQuickItemSchema, ExitTicketRecallPromptSchema, ExitTicketSchema, ExperimentalDesignSchema, Extension, ExtensionChallengeSchema, ExtensionSchema, FiveEFlowPhaseSchema, FiveEPhaseEnum, Glossary, GlossaryInput, GlossaryQuickRefRowSchema, GlossarySchema, GlossaryTerm, GlossaryTermSchema, GoldTier, GoldTierSchema, GraphicOrganizer, GraphicOrganizerInput, GraphicOrganizerItem, GraphicOrganizerItemSchema, GraphicOrganizerSchema, Handout, HandoutSchema, HandoutSection, HandoutSectionSchema, InstructionSection, InstructionSectionSchema, InstructionStep, InstructionStepSchema, JudgeCriterionSchema, LabTierTask, LabTierTaskSchema, LearningObjectiveInput, LearningObjectiveInputSchema, LearningObjectiveRow, LearningObjectiveRowSchema, LessonFlowPhase, LessonFlowPhaseSchema, LessonPlan5E, LessonPlan5ESchema, LessonPlanEDP, LessonPlanEDPSchema, LessonPlanSchema, LessonSectionSchema, MarpSlide, MarpSlideSchema, MentorCheatsheetSchema, MilestoneInput, MilestoneInputSchema, Misconception, MisconceptionSchema, NodeKindSchema, OrganizerTypeEnum, PhaseInput, PhaseInputSchema, PlanConstraintsSchema, PlannerInput, PlannerInputSchema, PlanningGraphSchema, PlanningNodeSchema, PlanningPhase, PrerequisiteDecision, PrerequisiteDecisionEntry, PrerequisiteDecisionEntrySchema, PrerequisiteDecisionSchema, ProductGoalSchema, ProgressiveHints, ProgressiveHintsSchema, ProjectGraph, ProjectGraphSchema, ProjectInstruction, ProjectInstructionSchema, ProjectProfile, ProjectProfileSchema, ProjectRoadmap, QualityAuditVerdictSchema, QuizOption, QuizOptionSchema, ResourceMapRowSchema, ReviewGame, ReviewGameExportRowSchema, ReviewGameInput, ReviewGameQuestion, ReviewGameQuestionSchema, ReviewGameSchema, RoadmapInput, RoadmapInputSchema, RotationStation, RotationStationSchema, Rubric, RubricCriteria, RubricCriteriaSchema, RubricSchema, ScaffoldDecision, ScaffoldDecisionEntry, ScaffoldDecisionEntrySchema, ScaffoldDecisionSchema, ScienceLab, ScienceLabInput, ScienceLabSchema, ScoringRubricRowSchema, SelfLab, SelfLabSchema, SelfPacedBundle, SelfPacedBundleSchema, SelfPacedChallenge, SelfPacedChallengeSchema, SessionPlan, SessionPlanSchema, SilverTier, SilverTierSchema, SlideDeckSchema, StandardizedTermRowSchema, StationRecordRowSchema, StationRotation, StationRotationInput, StationRotationSchema, StationTypeEnum, TaskCard, TaskCardSchema, TaskCards, TaskCardsInput, TaskCardsSchema, TeacherGuide, TeacherGuideSchema, TeachingScriptPhase, TeachingScriptPhaseSchema, TierLevelEnum, TierObjectiveSchema, TieredPractice, TieredPracticeSchema, TranslationPolicySchema, TroubleshootingEntry, TroubleshootingEntrySchema, TroubleshootingRow, TroubleshootingRowSchema, UnitPlan, UnitPlanSchema, UserJourneySchema, Worksheet, WorksheetItem, WorksheetItemSchema, WorksheetItemTypeEnum, WorksheetPart, WorksheetPartSchema, WorksheetSchema, validateCurriculumPlan } from './schemas/index.js';
1
+ import { PlanConstraints, TranslationPolicy, CurriculumPlan, PlanningGraph, PlanningNode, DependencyEdge, ConceptSpiralEncounter, SessionZpdStatus, PrerequisiteDecision, UnitPlan, WalkingSkeleton, MasteryGate, ConceptPrerequisiteEdge, LessonPlan, DiagnosticQuizInput, ActivityLab, SlideDeck, CodeLab, DiagnosticQuiz } from './schemas/index.js';
2
+ export { ActiveLearningWorkflow, ActiveLearningWorkflowSchema, ActivityLabSchema, ActivitySeqRow, ActivitySeqRowSchema, ActivityStepSchema, ArtifactContractRowSchema, AssessmentMapRowSchema, AssessmentObjective, AssessmentObjectiveSchema, BellRinger, BellRingerDay, BellRingerDaySchema, BellRingerInput, BellRingerSchema, BloomLevel, BloomLevelSchema, BronzeTier, BronzeTierSchema, CERConclusion, CERConclusionSchema, CardTierEnum, ChoiceBoard, ChoiceBoardInput, ChoiceBoardRubricRowSchema, ChoiceBoardSchema, ChoiceRuleSchema, ChoiceSquare, ChoiceSquareSchema, CodeLabSchema, CodeSnippet, CodeSnippetSchema, CompetencyRubricRow, CompetencyRubricRowSchema, ComputationalThinking, ComputationalThinkingSchema, ConceptPrerequisiteEdgeSchema, ConceptSpiralEncounterSchema, CoreConcept, CoreConceptSchema, CourseObjective, CourseObjectiveSchema, CoverageReport, CoverageReportSchema, CurriculumArtifact, CurriculumArtifactSchema, CurriculumPlanSchema, CurriculumQualityReport, CurriculumQualityReportSchema, DependencyEdgeSchema, DepthAssignment, DepthAssignmentSchema, DepthLevel, DepthLevelSchema, DiagnosticQuestion, DiagnosticQuestionInput, DiagnosticQuestionSchema, DiagnosticQuizSchema, EDPPhaseEnum, EntryLevelSchema, ExitTicket, ExitTicketBugHunt, ExitTicketBugHuntSchema, ExitTicketMetacognitionSchema, ExitTicketQuickItemSchema, ExitTicketRecallPromptSchema, ExitTicketSchema, ExperimentalDesignSchema, Extension, ExtensionChallengeSchema, ExtensionSchema, FiveEFlowPhaseSchema, FiveEPhaseEnum, Glossary, GlossaryInput, GlossaryQuickRefRowSchema, GlossarySchema, GlossaryTerm, GlossaryTermSchema, GoldTier, GoldTierSchema, GraphicOrganizer, GraphicOrganizerInput, GraphicOrganizerItem, GraphicOrganizerItemSchema, GraphicOrganizerSchema, Handout, HandoutSchema, HandoutSection, HandoutSectionSchema, InstructionSection, InstructionSectionSchema, InstructionStep, InstructionStepSchema, JudgeCriterionSchema, LabTierTask, LabTierTaskSchema, LearningObjectiveInput, LearningObjectiveInputSchema, LearningObjectiveRow, LearningObjectiveRowSchema, LessonFlowPhase, LessonFlowPhaseSchema, LessonPlan5E, LessonPlan5ESchema, LessonPlanEDP, LessonPlanEDPSchema, LessonPlanSchema, LessonSectionSchema, MarpSlide, MarpSlideSchema, MasteryGateSchema, MentorCheatsheetSchema, MilestoneInput, MilestoneInputSchema, Misconception, MisconceptionSchema, NodeKindSchema, OrganizerTypeEnum, PhaseInput, PhaseInputSchema, PlanConstraintsSchema, PlannerInput, PlannerInputSchema, PlanningGraphSchema, PlanningNodeSchema, PlanningPhase, PrerequisiteDecisionEntry, PrerequisiteDecisionEntrySchema, PrerequisiteDecisionSchema, ProductGoalSchema, ProgressiveHints, ProgressiveHintsSchema, ProjectGraph, ProjectGraphSchema, ProjectInstruction, ProjectInstructionSchema, ProjectProfile, ProjectProfileSchema, ProjectRoadmap, QualityAuditVerdictSchema, QuizOption, QuizOptionSchema, ResourceMapRowSchema, ReviewGame, ReviewGameExportRowSchema, ReviewGameInput, ReviewGameQuestion, ReviewGameQuestionSchema, ReviewGameSchema, RoadmapInput, RoadmapInputSchema, RotationStation, RotationStationSchema, Rubric, RubricCriteria, RubricCriteriaSchema, RubricSchema, ScaffoldDecision, ScaffoldDecisionEntry, ScaffoldDecisionEntrySchema, ScaffoldDecisionSchema, ScienceLab, ScienceLabInput, ScienceLabSchema, ScoringRubricRowSchema, SelfLab, SelfLabSchema, SelfPacedBundle, SelfPacedBundleSchema, SelfPacedChallenge, SelfPacedChallengeSchema, SessionPlan, SessionPlanSchema, SessionZpdStatusSchema, SilverTier, SilverTierSchema, SlideDeckSchema, StandardizedTermRowSchema, StationRecordRowSchema, StationRotation, StationRotationInput, StationRotationSchema, StationTypeEnum, TaskCard, TaskCardSchema, TaskCards, TaskCardsInput, TaskCardsSchema, TeacherGuide, TeacherGuideSchema, TeachingScriptPhase, TeachingScriptPhaseSchema, TierLevelEnum, TierObjectiveSchema, TieredPractice, TieredPracticeSchema, TranslationPolicySchema, TroubleshootingEntry, TroubleshootingEntrySchema, TroubleshootingRow, TroubleshootingRowSchema, UnitPlanSchema, UserJourneySchema, WalkingSkeletonSchema, Worksheet, WorksheetItem, WorksheetItemSchema, WorksheetItemTypeEnum, WorksheetPart, WorksheetPartSchema, WorksheetSchema, ZpdVerdict, ZpdVerdictSchema, validateCurriculumPlan } from './schemas/index.js';
3
3
  import { A as AIProviderName, M as ModelResolutionOptions } from './provider-factory-Bv-eIkhg.js';
4
4
  export { N as NVIDIA_MODELS, g as getAIModel } from './provider-factory-Bv-eIkhg.js';
5
5
  export { ActivityPromptInput, AsyncLLMJudgeInput, AuditCurriculumQualityInput, CodeLabPromptInput, DEFAULT_ENABLED_PROVIDERS, DiagnosticQuizPromptInput, ExtensionPromptInput, GenerateActivityInput, GenerateCodeLabInput, GenerateDiagnosticQuizInput, GenerateExtensionInput, GenerateHandoutInput, GenerateLessonMasterInput, GenerateProjectInstructionInput, GenerateSelfLabInput, GenerateSlidesInput, GenerateTeacherGuideInput, GenerateWorksheetInput, HandoutPromptInput, HtmlDeckSlidePromptInput, JudgeEvaluationResult, JudgePromptInput, LLMJudgeEngine, LessonPromptInput, MarpMarkdownSlidePromptInput, ModelPolicyResolution, ModelPolicyResolver, ModelProviderKey, MultiProviderPolicyResolution, ProjectInstructionPromptInput, SLIDE_CANONICAL_METHODOLOGY, SelfLabPromptInput, SlidesPromptInput, StreamDiagnosticQuizInput, StreamLessonMasterInput, StreamSelfLabInput, TeacherGuidePromptInput, WorksheetPromptInput, activityTools, analystTools, assessorTools, auditCurriculumQualityFlow, buildActivityPrompt, buildCodeLabPrompt, buildDiagnosticQuizPrompt, buildExtensionPrompt, buildHandoutPrompt, buildHtmlDeckSlidePrompt, buildJudgePrompt, buildLessonMasterPrompt, buildMarpMarkdownSlidePrompt, buildProjectInstructionPrompt, buildSelfLabPrompt, buildSlidesPrompt, buildTeacherGuidePrompt, buildWorksheetPrompt, contentTools, designerTools, generateActivityFlow, generateCodeLabFlow, generateDiagnosticQuizFlow, generateExtensionFlow, generateHandoutFlow, generateLessonMasterFlow, generateProjectInstructionFlow, generateSelfLabFlow, generateSlidesFlow, generateTeacherGuideFlow, generateWorksheetFlow, illustratorTools, packagerTools, researcherTools, reviewerTools, streamCurriculumAIInferenceWithTools, streamDiagnosticQuizFlow, streamLessonMasterFlow, streamSelfLabFlow, techSmeTools } from './ai/index.js';
@@ -10,10 +10,10 @@ 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-Bgk-C4K2.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-Bgk-C4K2.js';
12
12
  export { FileSystemCurriculumAdapter, FileSystemStorageOptions, STANDARD_SOT_FILES, StorageFactoryOptions, SupabaseCurriculumAdapter, SupabaseStorageConfig, atomicWriteFileSync, computeContentHash, createCurriculumStorage } from './storage/index.js';
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
- import { R as ResolvedGateSettings } from './gateSettings-DabOqP6_.js';
16
- export { A as ArtifactType, B as BoundaryPeek, b as CurriculumArtifactType, C as CurriculumGateMode, h as CurriculumHorizon, D as DEFAULT_GATE_SETTINGS, f as DetailedLessonBridge, E as ExtractCurriculumHorizonOptions, G as GateSettings, H as HorizonSessionSnapshot, i as HorizonValidationResult, c as ScaffoldingLevel, S as SingleArtifactRequest, a as SingleArtifactResult, k as extractCurriculumHorizon, g as gateModeFor, e as generateSingleArtifact, d as getArtifactMetadata, j as parseAllSessions, p as parseGateSettings, l as renderHorizonPromptBlock, r as resolveGateSettings, v as validateHorizonCompliance } from './gateSettings-DabOqP6_.js';
13
+ import { F as FrameworkPack, C as CoverageGateReport } from './standardsCoverageGate-49pJq5t8.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-49pJq5t8.js';
15
+ import { R as ResolvedGateSettings } from './gateSettings-oo5tCUS_.js';
16
+ export { A as ArtifactType, B as BoundaryPeek, b as CurriculumArtifactType, C as CurriculumGateMode, h as CurriculumHorizon, D as DEFAULT_GATE_SETTINGS, f as DetailedLessonBridge, E as ExtractCurriculumHorizonOptions, G as GateSettings, H as HorizonSessionSnapshot, i as HorizonValidationResult, c as ScaffoldingLevel, S as SingleArtifactRequest, a as SingleArtifactResult, k as extractCurriculumHorizon, g as gateModeFor, e as generateSingleArtifact, d as getArtifactMetadata, j as parseAllSessions, p as parseGateSettings, l as renderHorizonPromptBlock, r as resolveGateSettings, v as validateHorizonCompliance } from './gateSettings-oo5tCUS_.js';
17
17
  import { z } from 'zod';
18
18
  export { DeliveryPackResult, JobManifest, LocalWorkspaceManager, ParsedQuizQuestion, buildDeliveryPackages, exportAllProjectQuizzes, formatQuizzesToCsv, parseQuizMarkdown } from './publishers/index.js';
19
19
  export { G as GitPublishOptions, a as GitPublishResult, S as SupabasePublishOptions, b as SupabasePublishResult, p as publishToGitHub, c as publishToSupabase, u as uploadAssetToBucket } from './supabasePublisher-C627qXFT.js';
@@ -124,6 +124,162 @@ declare function extractScopeSequenceRows(framework: string): {
124
124
  };
125
125
  declare function lintCurriculumFramework(framework: string, expectedSessions?: number): FrameworkLintReport;
126
126
 
127
+ interface ExcerptOptions {
128
+ /**
129
+ * Canonical (English) section keys to prioritize, in order.
130
+ * Each key's body is included before moving to the next priority.
131
+ */
132
+ priorities?: string[];
133
+ /** Character budget for the excerpt (default 12_000, ~3k tokens). */
134
+ budget?: number;
135
+ /**
136
+ * Section Language Contract mapping (Record or raw contract markdown).
137
+ * Used to resolve localized headings (e.g. Vietnamese) to canonical keys.
138
+ */
139
+ sectionLanguageContract?: Record<string, Record<string, string>> | string;
140
+ /** File name or artifact type hint (e.g. 'LESSON', 'KNOWLEDGE_EXPOSITION'). */
141
+ artifactType?: string;
142
+ /**
143
+ * Source file name (e.g. `LESSON_U03_M01_L06.md`) — artifact type derived
144
+ * from it when `artifactType` is not given. Matches the web app's builder
145
+ * option so both call-sites share one contract.
146
+ */
147
+ fileName?: string;
148
+ /** Min chars below which the excerpt is flagged as insufficient (default 400). */
149
+ minContentChars?: number;
150
+ }
151
+ interface ExcerptResult {
152
+ /** Excerpt markdown safe to inject into prompt context blocks. */
153
+ excerpt: string;
154
+ /** True when the source parsed cleanly, passed sufficiency checks, and resolved priorities. */
155
+ verified: boolean;
156
+ /** True when canonical section resolution matched at least one priority section. */
157
+ sectionAware: boolean;
158
+ /** Canonical section keys included in the excerpt, in order. */
159
+ includedSections: string[];
160
+ /** Warning or error flags explaining why verified === false. */
161
+ issues: string[];
162
+ /** Approximate token count (chars / 4). */
163
+ tokenEstimate: number;
164
+ }
165
+ declare const DEFAULT_LESSON_PRIORITIES: string[];
166
+ /**
167
+ * Priorities for the canonical-lesson excerpt injected into SATELLITE artifact
168
+ * contexts (ACT, QUIZ, SLIDE, ...). Excludes 'Symbol & Identifier Ledger' —
169
+ * the symbol registry is injected as its own dedicated block
170
+ * ([MANDATORY CODE SYMBOL REGISTRY]) to avoid duplicated ground truth.
171
+ */
172
+ declare const SATELLITE_LESSON_PRIORITIES: string[];
173
+ declare const DEFAULT_KX_PRIORITIES: string[];
174
+ declare function buildSectionAwareExcerpt(markdown: string, opts?: ExcerptOptions): ExcerptResult;
175
+ declare function buildExpositionExcerpt(markdown: string, opts?: Omit<ExcerptOptions, 'priorities'>): ExcerptResult;
176
+ declare function buildLessonExcerpt(markdown: string, opts?: Omit<ExcerptOptions, 'priorities'>): ExcerptResult;
177
+ /**
178
+ * Normalizes SLC input into a two-level map: Record<ArtifactType, Record<CanonicalKey, LocalizedLabel>>
179
+ */
180
+ declare function normalizeSlcContract(slc: Record<string, Record<string, string>> | string | undefined): Record<string, Record<string, string>> | undefined;
181
+ /**
182
+ * Extracts code symbol & identifier contracts from LESSON markdown.
183
+ * Provides deterministic symbol names (Primary Struct/Class, Entry File, Key Functions)
184
+ * so all satellite agents (@activity, @illustrator, @assessor) inherit them verbatim.
185
+ */
186
+ interface SymbolLedgerResult {
187
+ primarySymbol?: string;
188
+ entryFileName?: string;
189
+ keySymbols: string[];
190
+ rawBlock: string;
191
+ }
192
+ declare function extractSymbolLedger(lessonMarkdown: string): SymbolLedgerResult;
193
+
194
+ type ContextRoutingMode = 'legacy' | 'hybrid';
195
+ interface SatContextResult {
196
+ /** Full context string to pass as the satellite prompt's user context. */
197
+ context: string;
198
+ /** Context blocks with provenance, for execution-history telemetry. */
199
+ blocks: Array<{
200
+ slot: string;
201
+ source: string;
202
+ chars: number;
203
+ verified: boolean;
204
+ issues: string[];
205
+ }>;
206
+ /** Aggregate — mirrors ExcerptResult semantics for the composite. */
207
+ verified: boolean;
208
+ sectionAware: boolean;
209
+ issues: string[];
210
+ /** Composite token estimate (chars/4). */
211
+ tokenEstimate: number;
212
+ /**
213
+ * The lesson-derived canonical excerpt THIS artifact type actually consumed
214
+ * (scoped lesson excerpt for LESSON-primary types, the activity-contract
215
+ * mini-slot for KX-only types, the full 12k excerpt in legacy mode). The
216
+ * satellite judge uses it as the drift-comparison ground truth (P49 G3).
217
+ */
218
+ canonicalExcerpt?: string;
219
+ }
220
+ interface SatelliteContextInput {
221
+ /** Artifact type (ACT, QUIZ, SLIDE, GUIDE, HANDOUT, WKS, CODE, EXT, EXIT_TICKET). */
222
+ artifactType: string;
223
+ /**
224
+ * Common context assembled by produceSingleLesson (framework, style guide, ref pack, session slice, standards, guardrails).
225
+ * In hybrid mode pass the KX-FREE composite (assembleCommonContext(sg, false)):
226
+ * the scoped per-type KX excerpt below becomes the single canonical-knowledge
227
+ * block, so KX is never injected twice.
228
+ */
229
+ commonContext: string;
230
+ /** Canonical LESSON markdown. */
231
+ lessonContent: string;
232
+ /** Pre-built full lesson excerpt (SATELLITE_LESSON_PRIORITIES, 12k) — reused for LESSON-primary types when no per-type override needed. */
233
+ lessonExcerpt: ExcerptResult;
234
+ /** KX markdown — the source for the per-type scoped KX excerpt (hybrid mode). */
235
+ expositionContent: string;
236
+ /** Section Language Contract raw markdown (bilingual heading resolution). */
237
+ slcMarkdown?: string;
238
+ /** Symbol ledger block already rendered by the caller (appended to LESSON-primary and CODE contexts). */
239
+ symbolLedgerBlock: string;
240
+ /** Pedagogy label for the legacy composite heading (byte-compat with pre-P49). */
241
+ pedagogyLabel?: string;
242
+ /** 'legacy' = old one-size-fits-all satelliteContext (default). 'hybrid' = per-type slots. */
243
+ mode?: ContextRoutingMode;
244
+ }
245
+ /**
246
+ * Extract ONLY the Activity Sequence rows whose Artifact Contract column
247
+ * assigns work to this artifact (fuzzy match on the last column), plus the
248
+ * table header. Bounded to `maxChars`; keeps first rows (sequence order).
249
+ * Returns '' when no row matches (caller falls back to nothing — the KX
250
+ * excerpt still carries the concept; the prompt text already demands
251
+ * alignment with the lesson's hands-on task).
252
+ */
253
+ declare function extractActivityContractRows(lessonContent: string, artifactType: string, maxChars?: number): string;
254
+ /**
255
+ * Extract the B-flow tiered scaffolding block (Bronze/Silver/Gold) for
256
+ * CODE/EXT — the plan's differentiation is often boilerplate (P49 G0), the
257
+ * LESSON flow tiers are the real per-lesson task ladder.
258
+ */
259
+ declare function extractTieredScaffoldingBlock(lessonContent: string, maxChars?: number): string;
260
+ /**
261
+ * Extract the LESSON 'Assessment Map' subsection (H3 inside 'A. Lesson Design
262
+ * Plan') for QUIZ/WKS — the H2-level excerpt builder cannot select it
263
+ * directly. Mirrors the heading-capture pattern of extractTieredScaffoldingBlock.
264
+ */
265
+ declare function extractAssessmentMap(lessonContent: string, maxChars?: number): string;
266
+ /**
267
+ * Build the satellite context for one artifact type.
268
+ * Returns the legacy composite when mode === 'legacy' (byte-identical to the
269
+ * pre-P49 behaviour) so the flag can shadow-compare safely.
270
+ */
271
+ declare function buildSatelliteContext(input: SatelliteContextInput): SatContextResult;
272
+ declare function isActivityAlignmentLogOnly(now?: Date): boolean;
273
+ interface ActivityAlignmentResult {
274
+ checked: boolean;
275
+ passed: boolean | null;
276
+ matchedTokens: string[];
277
+ missingTokens: string[];
278
+ /** 'log_only' until the shadow window closes, then 'enforcing'. */
279
+ mode: 'log_only' | 'enforcing';
280
+ }
281
+ declare function evaluateActivityAlignment(canonicalExcerpt: string | undefined, generatedContent: string, now?: Date): ActivityAlignmentResult;
282
+
127
283
  /**
128
284
  * Resolves and loads official canonical templates from docs/refs/templates or _templates/
129
285
  */
@@ -178,7 +334,20 @@ interface ProduceLessonOptions {
178
334
  studentEquipment?: string;
179
335
  classDynamic?: string;
180
336
  language?: string;
337
+ /** P49 G1.2/G2: pedagogical slots consumed by context routing (age-appropriate language, bridge hints). */
338
+ targetAge?: string;
339
+ targetAgeTier?: string;
340
+ entryBridge?: string;
341
+ assessmentStrategy?: string;
181
342
  };
343
+ /**
344
+ * P49 G2: Micro-Slot context routing mode. 'legacy' (default) = the
345
+ * pre-P49 one-size-fits-all satelliteContext. 'hybrid' = per-artifact
346
+ * whitelisted slots (LESSON-primary scoped excerpts; KX-only types get KX
347
+ * priorities + activity-contract mini-slot). Shadow-compare before
348
+ * flipping the app default.
349
+ */
350
+ contextRoutingMode?: ContextRoutingMode;
182
351
  /**
183
352
  * P46 RC2: host-provided inference override (Vercel AI SDK gateway).
184
353
  * When supplied, ALL lesson/satellite LLM calls route through it — the kit's
@@ -241,73 +410,6 @@ declare function produceBatchLessons(storage: ICurriculumStorage, projectId: str
241
410
  report: ProjectStatusReport;
242
411
  }>;
243
412
 
244
- interface ExcerptOptions {
245
- /**
246
- * Canonical (English) section keys to prioritize, in order.
247
- * Each key's body is included before moving to the next priority.
248
- */
249
- priorities?: string[];
250
- /** Character budget for the excerpt (default 12_000, ~3k tokens). */
251
- budget?: number;
252
- /**
253
- * Section Language Contract mapping (Record or raw contract markdown).
254
- * Used to resolve localized headings (e.g. Vietnamese) to canonical keys.
255
- */
256
- sectionLanguageContract?: Record<string, Record<string, string>> | string;
257
- /** File name or artifact type hint (e.g. 'LESSON', 'KNOWLEDGE_EXPOSITION'). */
258
- artifactType?: string;
259
- /**
260
- * Source file name (e.g. `LESSON_U03_M01_L06.md`) — artifact type derived
261
- * from it when `artifactType` is not given. Matches the web app's builder
262
- * option so both call-sites share one contract.
263
- */
264
- fileName?: string;
265
- /** Min chars below which the excerpt is flagged as insufficient (default 400). */
266
- minContentChars?: number;
267
- }
268
- interface ExcerptResult {
269
- /** Excerpt markdown safe to inject into prompt context blocks. */
270
- excerpt: string;
271
- /** True when the source parsed cleanly, passed sufficiency checks, and resolved priorities. */
272
- verified: boolean;
273
- /** True when canonical section resolution matched at least one priority section. */
274
- sectionAware: boolean;
275
- /** Canonical section keys included in the excerpt, in order. */
276
- includedSections: string[];
277
- /** Warning or error flags explaining why verified === false. */
278
- issues: string[];
279
- /** Approximate token count (chars / 4). */
280
- tokenEstimate: number;
281
- }
282
- declare const DEFAULT_LESSON_PRIORITIES: string[];
283
- /**
284
- * Priorities for the canonical-lesson excerpt injected into SATELLITE artifact
285
- * contexts (ACT, QUIZ, SLIDE, ...). Excludes 'Symbol & Identifier Ledger' —
286
- * the symbol registry is injected as its own dedicated block
287
- * ([MANDATORY CODE SYMBOL REGISTRY]) to avoid duplicated ground truth.
288
- */
289
- declare const SATELLITE_LESSON_PRIORITIES: string[];
290
- declare const DEFAULT_KX_PRIORITIES: string[];
291
- declare function buildSectionAwareExcerpt(markdown: string, opts?: ExcerptOptions): ExcerptResult;
292
- declare function buildExpositionExcerpt(markdown: string, opts?: Omit<ExcerptOptions, 'priorities'>): ExcerptResult;
293
- declare function buildLessonExcerpt(markdown: string, opts?: Omit<ExcerptOptions, 'priorities'>): ExcerptResult;
294
- /**
295
- * Normalizes SLC input into a two-level map: Record<ArtifactType, Record<CanonicalKey, LocalizedLabel>>
296
- */
297
- declare function normalizeSlcContract(slc: Record<string, Record<string, string>> | string | undefined): Record<string, Record<string, string>> | undefined;
298
- /**
299
- * Extracts code symbol & identifier contracts from LESSON markdown.
300
- * Provides deterministic symbol names (Primary Struct/Class, Entry File, Key Functions)
301
- * so all satellite agents (@activity, @illustrator, @assessor) inherit them verbatim.
302
- */
303
- interface SymbolLedgerResult {
304
- primarySymbol?: string;
305
- entryFileName?: string;
306
- keySymbols: string[];
307
- rawBlock: string;
308
- }
309
- declare function extractSymbolLedger(lessonMarkdown: string): SymbolLedgerResult;
310
-
311
413
  interface ProjectCreationPayload {
312
414
  projectName: string;
313
415
  projectCode: string;
@@ -646,6 +748,68 @@ interface PackingSpec {
646
748
  sessionDurationMinutes: number;
647
749
  }
648
750
  declare function computePackingSpec(constraints: PlanConstraints): PackingSpec;
751
+ declare function assignDepths(nodeIds: string[], nodeById: Map<string, PlanningNode>, conceptEncounterMap?: Map<string, number>): CurriculumPlan['sessions'][number]['depth_assignments'];
752
+ /**
753
+ * Bruner's Spiral Curriculum progression tracker across the entire course.
754
+ * Tracks encounter count per concept code:
755
+ * Encounter 1 -> Bloom ceiling: Understand, Depth: CIO
756
+ * Encounter 2 -> Bloom ceiling: Apply, Depth: SIO
757
+ * Encounter 3+ -> Bloom ceiling: Analyze, Depth: SIO
758
+ */
759
+ declare function computeConceptSpiralProgression(sessions: Array<{
760
+ id: string;
761
+ node_ids: string[];
762
+ }>, nodeById: Map<string, PlanningNode>): ConceptSpiralEncounter[];
763
+ /**
764
+ * P50-G1: Vygotsky ZPD & Cognitive Overload Guard.
765
+ * Evaluates session cognitive capacity against the cumulative horizon:
766
+ * - TOO_MANY_NEW: More than 2 new concepts (or >4 new keywords if conceptless) introduced in 1 session
767
+ * - NO_ZPD_BRIDGE: Session index > 0 with >1 new concepts and 0 known concepts from prior sessions
768
+ * Self-healing: If NO_ZPD_BRIDGE, injects a recap anchor into prerequisite decisions.
769
+ */
770
+ declare function checkSessionZpd(sessionIndex: number, nodeIds: string[], nodeById: Map<string, PlanningNode>, allSeenConcepts: Set<string>, allSeenKeywords: Set<string>, entryKw: Set<string>, warnings: string[]): {
771
+ status: SessionZpdStatus;
772
+ bridgeRepair?: {
773
+ node_id: string;
774
+ decision: PrerequisiteDecision;
775
+ reason: string;
776
+ };
777
+ };
778
+ /**
779
+ * P50-G3: Reigeluth Walking Skeleton Validator.
780
+ * Formulates Unit 1 as the Epitome (minimal end-to-end working software slice),
781
+ * and subsequent Units as Elaborations that deepen and expand specific subsystems.
782
+ */
783
+ declare function buildWalkingSkeleton(units: UnitPlan[], sessions: Array<{
784
+ id: string;
785
+ unit_id: string;
786
+ exit_evidence?: string[];
787
+ }>): WalkingSkeleton;
788
+ /**
789
+ * P50-G4: Inter-Phase Mastery Gates & Remediation Sprints.
790
+ * Builds formal competency gates between consecutive units with measurable
791
+ * acceptance criteria and a targeted 15-minute remediation protocol.
792
+ */
793
+ declare function buildMasteryGates(units: UnitPlan[], sessions: Array<{
794
+ id: string;
795
+ unit_id: string;
796
+ exit_evidence?: string[];
797
+ }>): MasteryGate[];
798
+ /**
799
+ * Drops symmetric edges (A->B and B->A) and performs DFS cycle detection
800
+ * to guarantee an acyclic concept prerequisite graph (curriculum_graph.py port).
801
+ */
802
+ declare function dropCyclicConceptEdges(edges: ConceptPrerequisiteEdge[]): ConceptPrerequisiteEdge[];
803
+ /**
804
+ * Gagné Cross-Concept Prerequisite DAG (ADR-0005 & curriculum_graph.py port).
805
+ * Derives cross-concept dependency edges from planning node dependencies,
806
+ * validates structure support (taught earlier in teaching order), flags hubs (fan-out >= 6),
807
+ * and eliminates cycles.
808
+ */
809
+ declare function buildConceptPrerequisites(sessions: Array<{
810
+ id: string;
811
+ node_ids: string[];
812
+ }>, nodeById: Map<string, PlanningNode>, edges: DependencyEdge[]): ConceptPrerequisiteEdge[];
649
813
  declare function buildCurriculumPlan(rawGraph: unknown, options: PlanOptions): Promise<PlanResult>;
650
814
  /** Extract the machine-readable slice the LESSON agent consumes for one session. */
651
815
  declare function extractSessionSlice(plan: CurriculumPlan, lessonCode: string): CurriculumPlan['sessions'][number];
@@ -1237,6 +1401,19 @@ declare class DeterministicStructuralLinter {
1237
1401
  findings: AcademicAuditFinding[];
1238
1402
  strengths: string[];
1239
1403
  };
1404
+ /**
1405
+ * P50: Validates macro-pedagogical invariants across a CurriculumPlan.
1406
+ * Checks:
1407
+ * 1. ZPD violations without self-healing recap (NO_ZPD_BRIDGE)
1408
+ * 2. Walking Skeleton existence (Unit 1 delivers working software)
1409
+ * 3. Inter-unit Mastery Gate presence
1410
+ */
1411
+ static lintPlan(plan: CurriculumPlan): {
1412
+ passed: boolean;
1413
+ score: number;
1414
+ findings: AcademicAuditFinding[];
1415
+ strengths: string[];
1416
+ };
1240
1417
  }
1241
1418
 
1242
1419
  interface AuditBundleInput {
@@ -1469,4 +1646,4 @@ declare function getSlideLayoutPresetById(id: string): SlideLayoutPreset | undef
1469
1646
  */
1470
1647
  declare function getSlideLayoutPresetsByCategory(category: SlideLayoutCategory): SlideLayoutPreset[];
1471
1648
 
1472
- export { ACT_TEMPLATE, AIProviderName, ARTIFACT_DEPENDENCY_ROUTING, ARTIFACT_EXECUTION_ORDER, type AcademicAuditFinding, AcademicAuditor, type AcademicDimension, ActivityLab, type ArtifactDependencyRule, type ArtifactProductionSpec, type AuditBundleInput, BELL_RINGER_TEMPLATE, BLOOM_ACTION_VERBS, BOM_TEMPLATE, BloomTaxonomyEvaluator, type BuildContextOptions, CHOICE_BOARD_TEMPLATE, CODE_LAB_TEMPLATE, CURRICULUM_SLASH_COMMANDS, ChunkType, CodeHardwareFeasibilityEvaluator, CodeLab, type ComprehensiveAcademicReport, ConstructiveAlignmentEvaluator, type ContextInjectionMeta, type ContextSourceKey, CoverageGateReport, CrossArtifactDriftEvaluator, CurriculumError, type CurriculumErrorCode, type CurriculumErrorDetail, CurriculumPlan, DEFAULT_KX_PRIORITIES, DEFAULT_LESSON_PRIORITIES, DEFAULT_STREAM_IDLE_MS, DEFAULT_STREAM_TOTAL_MS, DEFAULT_VIETNAMESE_SECTION_HEADINGS, DependencyEdge, type DependencyValidationResult, DeterministicPipelineRunner, DeterministicStructuralLinter, DiagnosticQuiz, DiagnosticQuizInput, type DimensionScore, EXIT_TICKET_TEMPLATE, EXPOSITION_REL, EXT_TEMPLATE, type ExcerptOptions, type ExcerptResult, type ExecuteCommandResult, ExpositionApprovalError, type ExpositionLlmFn, type ExpositionResult, type ExpositionStorage, type ExtractedJson, type ExtractedStreamChunk, type FindingSeverity, FiveEInstructionalEvaluator, type FrameworkLintFinding, type FrameworkLintReport, FrameworkPack, GLOSSARY_TEMPLATE, GRAPHIC_ORGANIZER_TEMPLATE, type GenerateExpositionOptions, GeneratedSlideArraySchema, GeneratedSlideSchema, HANDOUT_TEMPLATE, HybridBlueprintArraySchema, HybridBlueprintItemSchema, HybridDeckSlideArraySchema, HybridDeckSlideSchema, HybridPipelineError, ICurriculumStorage, LAYER_IDLE_BUDGET_MS, LAYER_TOTAL_BUDGET_MS, LESSON_PLAN_TEMPLATE, type LayerChunkCallback, type LayerPrefillOptions, type LayerPrefillResult, type LayoutBoxConfig, LessonPlan, MisconceptionEvaluator, ModelResolutionOptions, PROJECT_INSTRUCTION_TEMPLATE, type PackingSpec, type PedagogicalModel, type PipelineExecutionProgress, PlanConstraints, type PlanOptions, type PlanResult, type PlannerLlmFn, PlanningGraph, PlanningNode, type PrefillProviderEvent, type PreliminaryResearchResult, type ProduceLessonOptions, type ProduceLessonResult, type ProjectBriefingData, type ProjectClarification, type ProjectCreationPayload, type ProjectIntentAnalysisResult, ProjectStatusReport, type ProjectionMeta, QUIZ_TEMPLATE, QualityAuditReport, REVIEW_GAME_TEMPLATE, RUBRIC_TEMPLATE, ResolvedGateSettings, SATELLITE_LESSON_PRIORITIES, SCIENCE_LAB_TEMPLATE, SELF_LAB_TEMPLATE, SLIDE_LAYOUT_PRESETS, SLIDE_TEMPLATE, STATION_ROTATION_TEMPLATE, type SlashCommandDefinition, SlideBlueprintArraySchema, SlideBlueprintItemSchema, SlideDeck, type SlideEngine, type SlideLayoutCategory, type SlideLayoutData, type SlideLayoutPreset, type SlideProductionWorkflowOptions, type SlideProductionWorkflowResult, SmartResumeContext, type StreamAbortHandle, type StreamBudget, type StreamChunkExtractor, StreamRunnerOptions, type SymbolLedgerResult, TASK_CARDS_TEMPLATE, TEACHER_GUIDE_TEMPLATE, TIERED_PRACTICE_TEMPLATE, TranslationPolicy, type TranslationTarget, type TranslationTrigger, type ValidationOptions, WORKSHEET_TEMPLATE, analyzeProjectCreationIntent, assertAcyclic, auditQualityReport, buildCurriculumContext, buildCurriculumPlan, buildDomainLexiconGuardrail, buildExpositionContext, buildExpositionExcerpt, buildHeadingDirective, buildLanguageDirective, buildLessonExcerpt, buildSectionAwareExcerpt, buildSessionSliceContext, closeTruncatedJson, computePackingSpec, conductPreliminaryResearch, createAiInferenceError, createContextMissingError, createStreamAbortSignal, createStreamChunkExtractor, detectProjectPedagogy, emitUsage, ensureExpositionForLesson, ensureKnowledgeExposition, executeCurriculumCommand, executeSlideProductionWorkflow, expositionCacheKey, extractJsonArray, extractScopeSequenceRows, extractSectionHeadingsFromSLC, extractSessionSlice, extractStreamChunk, extractSymbolLedger, generatePhase1SotArtifacts, generatePhase2SotArtifacts, getLessonMetadata, getProjectArtifactScope, getProjectStatusReport, getSlideLayoutPresetById, getSlideLayoutPresetsByCategory, getSmartResumeContext, glossaryTermsForSession, ingestProjectGraphIntoProject, initializeProjectInStorage, isExpositionFresh, isTranslationDue, lintCurriculumFramework, loadCurriculumTemplate, loadSotTemplate, normalizePlanningGraph, normalizeSlcContract, parseRoadmapJsonToProjectPayload, produceBatchLessons, produceSingleLesson, renderFrameworkFromPlan, resolveStreamBudget, resolveTargetLanguageCode, resolveTranslationTargets, safeParseJson, slugifyProjectName, streamLLMWithFallback, streamLayerPrefillWithFallback, stripLlmJsonWrappers, targetLanguageDisplayName, topoSort, validateArtifactDependencies, validateHybridDeckSlides };
1649
+ export { ACT_TEMPLATE, AIProviderName, ARTIFACT_DEPENDENCY_ROUTING, ARTIFACT_EXECUTION_ORDER, type AcademicAuditFinding, AcademicAuditor, type AcademicDimension, type ActivityAlignmentResult, ActivityLab, type ArtifactDependencyRule, type ArtifactProductionSpec, type AuditBundleInput, BELL_RINGER_TEMPLATE, BLOOM_ACTION_VERBS, BOM_TEMPLATE, BloomTaxonomyEvaluator, type BuildContextOptions, CHOICE_BOARD_TEMPLATE, CODE_LAB_TEMPLATE, CURRICULUM_SLASH_COMMANDS, ChunkType, CodeHardwareFeasibilityEvaluator, CodeLab, type ComprehensiveAcademicReport, ConceptPrerequisiteEdge, ConceptSpiralEncounter, ConstructiveAlignmentEvaluator, type ContextInjectionMeta, type ContextRoutingMode, type ContextSourceKey, CoverageGateReport, CrossArtifactDriftEvaluator, CurriculumError, type CurriculumErrorCode, type CurriculumErrorDetail, CurriculumPlan, DEFAULT_KX_PRIORITIES, DEFAULT_LESSON_PRIORITIES, DEFAULT_STREAM_IDLE_MS, DEFAULT_STREAM_TOTAL_MS, DEFAULT_VIETNAMESE_SECTION_HEADINGS, DependencyEdge, type DependencyValidationResult, DeterministicPipelineRunner, DeterministicStructuralLinter, DiagnosticQuiz, DiagnosticQuizInput, type DimensionScore, EXIT_TICKET_TEMPLATE, EXPOSITION_REL, EXT_TEMPLATE, type ExcerptOptions, type ExcerptResult, type ExecuteCommandResult, ExpositionApprovalError, type ExpositionLlmFn, type ExpositionResult, type ExpositionStorage, type ExtractedJson, type ExtractedStreamChunk, type FindingSeverity, FiveEInstructionalEvaluator, type FrameworkLintFinding, type FrameworkLintReport, FrameworkPack, GLOSSARY_TEMPLATE, GRAPHIC_ORGANIZER_TEMPLATE, type GenerateExpositionOptions, GeneratedSlideArraySchema, GeneratedSlideSchema, HANDOUT_TEMPLATE, HybridBlueprintArraySchema, HybridBlueprintItemSchema, HybridDeckSlideArraySchema, HybridDeckSlideSchema, HybridPipelineError, ICurriculumStorage, LAYER_IDLE_BUDGET_MS, LAYER_TOTAL_BUDGET_MS, LESSON_PLAN_TEMPLATE, type LayerChunkCallback, type LayerPrefillOptions, type LayerPrefillResult, type LayoutBoxConfig, LessonPlan, MasteryGate, MisconceptionEvaluator, ModelResolutionOptions, PROJECT_INSTRUCTION_TEMPLATE, type PackingSpec, type PedagogicalModel, type PipelineExecutionProgress, PlanConstraints, type PlanOptions, type PlanResult, type PlannerLlmFn, PlanningGraph, PlanningNode, type PrefillProviderEvent, type PreliminaryResearchResult, PrerequisiteDecision, type ProduceLessonOptions, type ProduceLessonResult, type ProjectBriefingData, type ProjectClarification, type ProjectCreationPayload, type ProjectIntentAnalysisResult, ProjectStatusReport, type ProjectionMeta, QUIZ_TEMPLATE, QualityAuditReport, REVIEW_GAME_TEMPLATE, RUBRIC_TEMPLATE, ResolvedGateSettings, SATELLITE_LESSON_PRIORITIES, SCIENCE_LAB_TEMPLATE, SELF_LAB_TEMPLATE, SLIDE_LAYOUT_PRESETS, SLIDE_TEMPLATE, STATION_ROTATION_TEMPLATE, type SatContextResult, type SatelliteContextInput, SessionZpdStatus, type SlashCommandDefinition, SlideBlueprintArraySchema, SlideBlueprintItemSchema, SlideDeck, type SlideEngine, type SlideLayoutCategory, type SlideLayoutData, type SlideLayoutPreset, type SlideProductionWorkflowOptions, type SlideProductionWorkflowResult, SmartResumeContext, type StreamAbortHandle, type StreamBudget, type StreamChunkExtractor, StreamRunnerOptions, type SymbolLedgerResult, TASK_CARDS_TEMPLATE, TEACHER_GUIDE_TEMPLATE, TIERED_PRACTICE_TEMPLATE, TranslationPolicy, type TranslationTarget, type TranslationTrigger, UnitPlan, type ValidationOptions, WORKSHEET_TEMPLATE, WalkingSkeleton, analyzeProjectCreationIntent, assertAcyclic, assignDepths, auditQualityReport, buildConceptPrerequisites, buildCurriculumContext, buildCurriculumPlan, buildDomainLexiconGuardrail, buildExpositionContext, buildExpositionExcerpt, buildHeadingDirective, buildLanguageDirective, buildLessonExcerpt, buildMasteryGates, buildSatelliteContext, buildSectionAwareExcerpt, buildSessionSliceContext, buildWalkingSkeleton, checkSessionZpd, closeTruncatedJson, computeConceptSpiralProgression, computePackingSpec, conductPreliminaryResearch, createAiInferenceError, createContextMissingError, createStreamAbortSignal, createStreamChunkExtractor, detectProjectPedagogy, dropCyclicConceptEdges, emitUsage, ensureExpositionForLesson, ensureKnowledgeExposition, evaluateActivityAlignment, executeCurriculumCommand, executeSlideProductionWorkflow, expositionCacheKey, extractActivityContractRows, extractAssessmentMap, extractJsonArray, extractScopeSequenceRows, extractSectionHeadingsFromSLC, extractSessionSlice, extractStreamChunk, extractSymbolLedger, extractTieredScaffoldingBlock, generatePhase1SotArtifacts, generatePhase2SotArtifacts, getLessonMetadata, getProjectArtifactScope, getProjectStatusReport, getSlideLayoutPresetById, getSlideLayoutPresetsByCategory, getSmartResumeContext, glossaryTermsForSession, ingestProjectGraphIntoProject, initializeProjectInStorage, isActivityAlignmentLogOnly, isExpositionFresh, isTranslationDue, lintCurriculumFramework, loadCurriculumTemplate, loadSotTemplate, normalizePlanningGraph, normalizeSlcContract, parseRoadmapJsonToProjectPayload, produceBatchLessons, produceSingleLesson, renderFrameworkFromPlan, resolveStreamBudget, resolveTargetLanguageCode, resolveTranslationTargets, safeParseJson, slugifyProjectName, streamLLMWithFallback, streamLayerPrefillWithFallback, stripLlmJsonWrappers, targetLanguageDisplayName, topoSort, validateArtifactDependencies, validateHybridDeckSlides };