@thanh01.pmt/curriculum-kit 1.0.1 → 1.0.3
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/index-BIhxrUEa.d.cts +359 -0
- package/dist/index-BvWC_xXe.d.ts +359 -0
- package/dist/index.cjs +313 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -53
- package/dist/index.d.ts +3 -53
- package/dist/index.mjs +312 -19
- package/dist/index.mjs.map +1 -1
- package/dist/workflow/index.cjs +1167 -21
- package/dist/workflow/index.cjs.map +1 -1
- package/dist/workflow/index.d.cts +6 -294
- package/dist/workflow/index.d.ts +6 -294
- package/dist/workflow/index.mjs +1164 -21
- package/dist/workflow/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { MilestoneInput, LessonPlan, CurriculumQualityReport, ActivityLab, CodeLab, SelfLab, DiagnosticQuiz, SlideDeck, Handout, Worksheet, TeacherGuide, Extension, ProjectRoadmap } from './schemas/index.cjs';
|
|
2
|
+
import { M as ModelResolutionOptions } from './provider-factory-DH3udYlN.cjs';
|
|
3
|
+
import { G as GitPublishOptions, a as GitPublishResult, S as SupabasePublishOptions, b as SupabasePublishResult } from './supabasePublisher-C627qXFT.cjs';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { F as FrameworkPack, m as CoverageGateReport } from './standardsCoverageGate-BWAkXY76.cjs';
|
|
6
|
+
|
|
7
|
+
type ArtifactType = 'lesson' | 'slide' | 'act' | 'quiz' | 'guide' | 'handout' | 'worksheet' | 'rubric' | 'ext' | 'glossary' | 'codelab' | 'bom' | 'exit_ticket' | 'tiered_practice' | 'choice_board' | 'science_lab' | 'task_cards' | 'station_rotation' | 'bell_ringer' | 'review_game' | 'graphic_organizer';
|
|
8
|
+
type ScaffoldingLevel = 'foundation' | 'balanced' | 'advanced';
|
|
9
|
+
interface SingleArtifactRequest {
|
|
10
|
+
artifactType: ArtifactType;
|
|
11
|
+
topic: string;
|
|
12
|
+
lessonId?: string;
|
|
13
|
+
lessonTitle?: string;
|
|
14
|
+
pedagogy?: '5e' | 'edp' | 'pbl' | 'general';
|
|
15
|
+
targetAge?: string;
|
|
16
|
+
scaffoldingLevel?: ScaffoldingLevel;
|
|
17
|
+
hardwarePlatform?: string[];
|
|
18
|
+
gradeLevel?: string;
|
|
19
|
+
studentCount?: string;
|
|
20
|
+
language?: string;
|
|
21
|
+
extraContext?: string;
|
|
22
|
+
config?: Record<string, any>;
|
|
23
|
+
contextSot?: {
|
|
24
|
+
framework?: string;
|
|
25
|
+
learnerProfile?: string;
|
|
26
|
+
lessonPlan?: string;
|
|
27
|
+
handout?: string;
|
|
28
|
+
};
|
|
29
|
+
options?: {
|
|
30
|
+
model?: string;
|
|
31
|
+
temperature?: number;
|
|
32
|
+
openrouterKey?: string;
|
|
33
|
+
alibabaKey?: string;
|
|
34
|
+
deepseekKey?: string;
|
|
35
|
+
geminiKey?: string;
|
|
36
|
+
nvidiaKey?: string;
|
|
37
|
+
openaiKey?: string;
|
|
38
|
+
anthropicKey?: string;
|
|
39
|
+
};
|
|
40
|
+
onChunk?: (chunk: string, type: 'content' | 'thought') => void;
|
|
41
|
+
}
|
|
42
|
+
interface SingleArtifactResult {
|
|
43
|
+
artifactType: ArtifactType;
|
|
44
|
+
filename: string;
|
|
45
|
+
content: string;
|
|
46
|
+
persona: string;
|
|
47
|
+
thought?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Maps artifact type to default canonical filename and responsible agent persona
|
|
51
|
+
*/
|
|
52
|
+
declare function getArtifactMetadata(type: ArtifactType, lessonId?: string, pedagogy?: string): {
|
|
53
|
+
filename: string;
|
|
54
|
+
persona: string;
|
|
55
|
+
templateFile: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Universal Single Artifact Generator Service for all 21 Pedagogical JTBD Artifacts
|
|
59
|
+
*/
|
|
60
|
+
declare function generateSingleArtifact(req: SingleArtifactRequest): Promise<SingleArtifactResult>;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Gate Settings — toàn bộ logic "ai kiểm artifact nào" nằm ở đây, trong kit.
|
|
64
|
+
* Composer chỉ gọi: resolveGateSettings(projectConfig.gateModes) rồi dùng kết quả.
|
|
65
|
+
*
|
|
66
|
+
* Vocabulary chuẩn (duy nhất, không có biến thể thứ hai):
|
|
67
|
+
* 'OFF' — không kiểm
|
|
68
|
+
* 'LLM_JUDGE' — Agent kiểm (LLM-as-Judge)
|
|
69
|
+
* 'HITL' — Human kiểm (human-in-the-loop)
|
|
70
|
+
*
|
|
71
|
+
* Phạm vi phủ: SOT foundation (Learner Profile, Framework, Style Guide — duyệt trước khi
|
|
72
|
+
* sinh content) + toàn bộ content artifacts.
|
|
73
|
+
*/
|
|
74
|
+
type CurriculumGateMode = 'OFF' | 'LLM_JUDGE' | 'HITL';
|
|
75
|
+
type CurriculumArtifactType = 'LEARNER_PROFILE' | 'PROJECT_BRIEF' | 'REFERENCE_PACK' | 'CURRICULUM_FRAMEWORK' | 'KNOWLEDGE_EXPOSITION' | 'STYLE_GUIDE' | 'ART_DIRECTION' | 'LESSON' | 'ACT' | 'QUIZ' | 'SLIDE' | 'GUIDE' | 'WKS' | 'HANDOUT' | 'EXT' | 'CODE' | 'MEDIA_SCRIPT' | 'EXIT_TICKET';
|
|
76
|
+
type GateSettings = Partial<Record<CurriculumArtifactType, CurriculumGateMode>>;
|
|
77
|
+
type ResolvedGateSettings = Readonly<Record<CurriculumArtifactType, CurriculumGateMode>>;
|
|
78
|
+
/** Mặc định trùng hành vi production hiện tại: SOT nền = HITL, LESSON/CODE = Agent kiểm, còn lại OFF. */
|
|
79
|
+
declare const DEFAULT_GATE_SETTINGS: ResolvedGateSettings;
|
|
80
|
+
/**
|
|
81
|
+
* Chuẩn hoá config thô (vd: gateModes đọc từ project.config.json của Composer) thành GateSettings.
|
|
82
|
+
* Key/value không nhận diện được bị bỏ qua — config sai không bao giờ làm workflow chết.
|
|
83
|
+
*/
|
|
84
|
+
declare function parseGateSettings(raw: unknown): GateSettings;
|
|
85
|
+
/**
|
|
86
|
+
* Điểm vào DUY NHẤT: raw config (hoặc đã chuẩn hoá) → settings đầy đủ cho mọi artifact type.
|
|
87
|
+
* Key không có trong config nhận DEFAULT_GATE_SETTINGS.
|
|
88
|
+
*/
|
|
89
|
+
declare function resolveGateSettings(raw?: unknown): ResolvedGateSettings;
|
|
90
|
+
/** Mode đã resolve cho 1 artifact type. */
|
|
91
|
+
declare function gateModeFor(resolved: ResolvedGateSettings, type: CurriculumArtifactType): CurriculumGateMode;
|
|
92
|
+
|
|
93
|
+
interface GenerateMasterLessonStepInput {
|
|
94
|
+
milestone: MilestoneInput;
|
|
95
|
+
language: string;
|
|
96
|
+
topic?: string;
|
|
97
|
+
targetAudience?: string;
|
|
98
|
+
contextContinuity?: string;
|
|
99
|
+
/** Pre-rendered STANDARDS CONTEXT block (verbatim standard statements). */
|
|
100
|
+
standardsContext?: string;
|
|
101
|
+
modelOptions?: ModelResolutionOptions;
|
|
102
|
+
}
|
|
103
|
+
declare function generateMasterLessonStep(input: GenerateMasterLessonStepInput): Promise<LessonPlan>;
|
|
104
|
+
interface JudgeMasterLessonStepInput {
|
|
105
|
+
lessonId: string;
|
|
106
|
+
lesson: LessonPlan;
|
|
107
|
+
language: string;
|
|
108
|
+
targetObjectives: Array<{
|
|
109
|
+
code: string;
|
|
110
|
+
description: string;
|
|
111
|
+
bloomLevel: string;
|
|
112
|
+
}>;
|
|
113
|
+
/** Verbatim standard statements (canonical ID -> text) for the Standards Alignment judge dimension. */
|
|
114
|
+
standardStatements?: Record<string, string>;
|
|
115
|
+
modelOptions?: ModelResolutionOptions;
|
|
116
|
+
}
|
|
117
|
+
declare function judgeMasterLessonStep(input: JudgeMasterLessonStepInput): Promise<CurriculumQualityReport>;
|
|
118
|
+
interface RepairMasterLessonStepInput {
|
|
119
|
+
milestone: MilestoneInput;
|
|
120
|
+
language: string;
|
|
121
|
+
topic?: string;
|
|
122
|
+
targetAudience?: string;
|
|
123
|
+
auditReport: CurriculumQualityReport;
|
|
124
|
+
/** Pre-rendered STANDARDS CONTEXT block — kept across repair so grounding is never lost. */
|
|
125
|
+
standardsContext?: string;
|
|
126
|
+
modelOptions?: ModelResolutionOptions;
|
|
127
|
+
}
|
|
128
|
+
declare function repairMasterLessonStep(input: RepairMasterLessonStepInput): Promise<LessonPlan>;
|
|
129
|
+
|
|
130
|
+
declare function generateActivityStep(options: {
|
|
131
|
+
lesson: LessonPlan;
|
|
132
|
+
language: string;
|
|
133
|
+
modelOptions?: ModelResolutionOptions;
|
|
134
|
+
}): Promise<ActivityLab>;
|
|
135
|
+
declare function generateCodeLabStep(options: {
|
|
136
|
+
lesson: LessonPlan;
|
|
137
|
+
activity: ActivityLab;
|
|
138
|
+
language: string;
|
|
139
|
+
targetTechStack?: string[];
|
|
140
|
+
modelOptions?: ModelResolutionOptions;
|
|
141
|
+
}): Promise<CodeLab>;
|
|
142
|
+
declare function generateSelfLabStep(options: {
|
|
143
|
+
milestone: MilestoneInput;
|
|
144
|
+
language: string;
|
|
145
|
+
targetTechStack?: string[];
|
|
146
|
+
modelOptions?: ModelResolutionOptions;
|
|
147
|
+
}): Promise<SelfLab>;
|
|
148
|
+
declare function generateDiagnosticQuizStep(options: {
|
|
149
|
+
milestone: MilestoneInput;
|
|
150
|
+
language: string;
|
|
151
|
+
modelOptions?: ModelResolutionOptions;
|
|
152
|
+
}): Promise<DiagnosticQuiz>;
|
|
153
|
+
declare function generateSlidesStep(options: {
|
|
154
|
+
lesson: LessonPlan;
|
|
155
|
+
language: string;
|
|
156
|
+
modelOptions?: ModelResolutionOptions;
|
|
157
|
+
}): Promise<SlideDeck>;
|
|
158
|
+
declare function generateHandoutStep(options: {
|
|
159
|
+
lesson: LessonPlan;
|
|
160
|
+
language: string;
|
|
161
|
+
modelOptions?: ModelResolutionOptions;
|
|
162
|
+
}): Promise<Handout>;
|
|
163
|
+
declare function generateWorksheetStep(options: {
|
|
164
|
+
lesson: LessonPlan;
|
|
165
|
+
language: string;
|
|
166
|
+
modelOptions?: ModelResolutionOptions;
|
|
167
|
+
}): Promise<Worksheet>;
|
|
168
|
+
declare function generateTeacherGuideStep(options: {
|
|
169
|
+
lesson: LessonPlan;
|
|
170
|
+
activity: ActivityLab;
|
|
171
|
+
language: string;
|
|
172
|
+
modelOptions?: ModelResolutionOptions;
|
|
173
|
+
}): Promise<TeacherGuide>;
|
|
174
|
+
declare function generateExtensionStep(options: {
|
|
175
|
+
lesson: LessonPlan;
|
|
176
|
+
activity: ActivityLab;
|
|
177
|
+
language: string;
|
|
178
|
+
modelOptions?: ModelResolutionOptions;
|
|
179
|
+
}): Promise<Extension>;
|
|
180
|
+
|
|
181
|
+
interface JudgeSatelliteStepInput {
|
|
182
|
+
artifactType: string;
|
|
183
|
+
artifactId: string;
|
|
184
|
+
artifact: unknown;
|
|
185
|
+
language: string;
|
|
186
|
+
targetObjectives: Array<{
|
|
187
|
+
code: string;
|
|
188
|
+
description: string;
|
|
189
|
+
bloomLevel: string;
|
|
190
|
+
}>;
|
|
191
|
+
standardStatements?: Record<string, string>;
|
|
192
|
+
modelOptions?: ModelResolutionOptions;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Gate step for satellite artifacts (LLM_JUDGE mode).
|
|
196
|
+
* Judges any artifact JSON against the same 6-dimension rubric; returns the report.
|
|
197
|
+
* The workflow decides what to do with the verdict (log / block / store) — gate config stays the single source of truth.
|
|
198
|
+
*/
|
|
199
|
+
declare function judgeSatelliteStep(input: JudgeSatelliteStepInput): Promise<CurriculumQualityReport>;
|
|
200
|
+
|
|
201
|
+
interface SaveMilestoneArtifactsInput {
|
|
202
|
+
jobId: string;
|
|
203
|
+
milestoneSlug: string;
|
|
204
|
+
lesson: LessonPlan;
|
|
205
|
+
activity?: ActivityLab;
|
|
206
|
+
codeLab?: CodeLab;
|
|
207
|
+
selfLab?: SelfLab;
|
|
208
|
+
quiz?: DiagnosticQuiz;
|
|
209
|
+
slides?: SlideDeck;
|
|
210
|
+
handout?: Handout;
|
|
211
|
+
worksheet?: Worksheet;
|
|
212
|
+
teacherGuide?: TeacherGuide;
|
|
213
|
+
extension?: Extension;
|
|
214
|
+
cheatSheetMarkdown?: string;
|
|
215
|
+
baseWorkspaceDir?: string;
|
|
216
|
+
}
|
|
217
|
+
interface SavedMilestoneResult {
|
|
218
|
+
milestoneSlug: string;
|
|
219
|
+
savedFiles: string[];
|
|
220
|
+
}
|
|
221
|
+
declare function saveMilestoneToWorkspaceStep(input: SaveMilestoneArtifactsInput): Promise<SavedMilestoneResult>;
|
|
222
|
+
declare function publishToGitStep(options: GitPublishOptions): Promise<GitPublishResult>;
|
|
223
|
+
declare function publishToSupabaseStep(options: SupabasePublishOptions): Promise<SupabasePublishResult>;
|
|
224
|
+
|
|
225
|
+
declare const approvalPayloadSchema: z.ZodObject<{
|
|
226
|
+
approved: z.ZodBoolean;
|
|
227
|
+
reviewerName: z.ZodOptional<z.ZodString>;
|
|
228
|
+
feedback: z.ZodOptional<z.ZodString>;
|
|
229
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
230
|
+
}, "strip", z.ZodTypeAny, {
|
|
231
|
+
approved: boolean;
|
|
232
|
+
feedback?: string | undefined;
|
|
233
|
+
timestamp?: string | undefined;
|
|
234
|
+
reviewerName?: string | undefined;
|
|
235
|
+
}, {
|
|
236
|
+
approved: boolean;
|
|
237
|
+
feedback?: string | undefined;
|
|
238
|
+
timestamp?: string | undefined;
|
|
239
|
+
reviewerName?: string | undefined;
|
|
240
|
+
}>;
|
|
241
|
+
type ApprovalPayload = z.infer<typeof approvalPayloadSchema>;
|
|
242
|
+
/**
|
|
243
|
+
* Durable Hook for Human-in-the-Loop curriculum approval gates.
|
|
244
|
+
* Pauses workflow with zero compute cost until an authorized user approves via UI/API.
|
|
245
|
+
*/
|
|
246
|
+
declare const lessonApprovalHook: any;
|
|
247
|
+
|
|
248
|
+
interface ExecuteWithRateLimitOptions<T> {
|
|
249
|
+
stepName: string;
|
|
250
|
+
fn: () => Promise<T>;
|
|
251
|
+
maxAttempts?: number;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Wraps async LLM functions to automatically catch 429/503/transient network errors
|
|
255
|
+
* and throw a durable RetryableError with exponential backoff for Vercel Workflow runtime.
|
|
256
|
+
*/
|
|
257
|
+
declare function withRateLimitBackoff<T>(options: ExecuteWithRateLimitOptions<T>): Promise<T>;
|
|
258
|
+
|
|
259
|
+
interface MilestoneWorkflowInput {
|
|
260
|
+
jobId: string;
|
|
261
|
+
milestone: MilestoneInput;
|
|
262
|
+
language?: string;
|
|
263
|
+
topic?: string;
|
|
264
|
+
targetAudience?: string;
|
|
265
|
+
techStack?: string[];
|
|
266
|
+
bundleTier?: 'minimum' | 'full';
|
|
267
|
+
baseWorkspaceDir?: string;
|
|
268
|
+
modelOptions?: ModelResolutionOptions;
|
|
269
|
+
/** Adopted Framework Packs (hydrated from the Standards Registry) for standards-grounded generation. */
|
|
270
|
+
standardsPacks?: FrameworkPack[];
|
|
271
|
+
/** Hard-block the milestone when standards coverage FAILs (default: true when packs provided). */
|
|
272
|
+
enforceStandardsCoverage?: boolean;
|
|
273
|
+
/** Gate Settings thô (vd: gateModes từ project.config.json) — kit tự chuẩn hoá. */
|
|
274
|
+
gateSettings?: unknown;
|
|
275
|
+
}
|
|
276
|
+
interface MilestoneWorkflowResult {
|
|
277
|
+
milestoneId: string;
|
|
278
|
+
milestoneSlug: string;
|
|
279
|
+
status: 'SUCCESS' | 'FAILED';
|
|
280
|
+
savedResult: SavedMilestoneResult;
|
|
281
|
+
judgeReport?: CurriculumQualityReport;
|
|
282
|
+
/** Per-artifact-type judge reports for satellites (Gate mode LLM_JUDGE only). */
|
|
283
|
+
satelliteJudgeReports?: Record<string, CurriculumQualityReport>;
|
|
284
|
+
/** The resolved gate settings actually applied in this run (for traceability). */
|
|
285
|
+
gatesResolved?: Record<string, string>;
|
|
286
|
+
/** Set when a Gate (e.g. HITL rejection) BLOCKED downstream production. */
|
|
287
|
+
gateBlocked?: {
|
|
288
|
+
artifactType: string;
|
|
289
|
+
reason: 'HITL_REJECTED' | 'HITL_REJECTED_V2';
|
|
290
|
+
feedback?: string;
|
|
291
|
+
};
|
|
292
|
+
standardsCoverage?: CoverageGateReport;
|
|
293
|
+
artifacts: {
|
|
294
|
+
lesson: LessonPlan;
|
|
295
|
+
activity?: ActivityLab;
|
|
296
|
+
codeLab?: CodeLab;
|
|
297
|
+
selfLab?: SelfLab;
|
|
298
|
+
quiz?: DiagnosticQuiz;
|
|
299
|
+
slides?: SlideDeck;
|
|
300
|
+
handout?: Handout;
|
|
301
|
+
worksheet?: Worksheet;
|
|
302
|
+
teacherGuide?: TeacherGuide;
|
|
303
|
+
extension?: Extension;
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Child Workflow: Executes fine-grained durable generation for a single Milestone.
|
|
308
|
+
* Uses Step-level memoization, automatic LLM retries, and parallel satellite generation.
|
|
309
|
+
*/
|
|
310
|
+
declare function generateMilestoneWorkflow(input: MilestoneWorkflowInput): Promise<MilestoneWorkflowResult>;
|
|
311
|
+
|
|
312
|
+
interface GenerateRoadmapWorkflowInput {
|
|
313
|
+
jobId?: string;
|
|
314
|
+
roadmap: ProjectRoadmap;
|
|
315
|
+
language?: string;
|
|
316
|
+
bundleTier?: 'minimum' | 'full';
|
|
317
|
+
batchSize?: number;
|
|
318
|
+
/** Gate Settings thô (vd: gateModes từ project.config.json) — kit tự chuẩn hoá. */
|
|
319
|
+
gateSettings?: unknown;
|
|
320
|
+
baseWorkspaceDir?: string;
|
|
321
|
+
gitPublishOptions?: Omit<GitPublishOptions, 'jobId' | 'localJobDir'>;
|
|
322
|
+
supabasePublishOptions?: Omit<SupabasePublishOptions, 'jobId' | 'courseTitle' | 'topic' | 'language' | 'milestones'>;
|
|
323
|
+
modelOptions?: ModelResolutionOptions;
|
|
324
|
+
}
|
|
325
|
+
interface RoadmapWorkflowSummary {
|
|
326
|
+
jobId: string;
|
|
327
|
+
courseTitle: string;
|
|
328
|
+
topic: string;
|
|
329
|
+
language: string;
|
|
330
|
+
totalMilestones: number;
|
|
331
|
+
successfulMilestones: number;
|
|
332
|
+
failedMilestones: number;
|
|
333
|
+
results: Array<{
|
|
334
|
+
milestoneId: string;
|
|
335
|
+
status: 'FULFILLED' | 'REJECTED';
|
|
336
|
+
result?: MilestoneWorkflowResult;
|
|
337
|
+
error?: string;
|
|
338
|
+
}>;
|
|
339
|
+
gitPublishResult?: GitPublishResult;
|
|
340
|
+
supabasePublishResult?: SupabasePublishResult;
|
|
341
|
+
workspaceDir: string;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Parent Workflow: Orchestrates durable generation of an entire Curriculum Roadmap.
|
|
345
|
+
* Implements Batching (Pattern 1), Failure Isolation, and Dual-Target Publishing (Git + Supabase).
|
|
346
|
+
*/
|
|
347
|
+
declare function generateRoadmapWorkflow(input: GenerateRoadmapWorkflowInput): Promise<RoadmapWorkflowSummary>;
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* Step-level durable execution for generating a single standalone artifact.
|
|
351
|
+
*/
|
|
352
|
+
declare function executeSingleArtifactStep(request: SingleArtifactRequest): Promise<SingleArtifactResult>;
|
|
353
|
+
/**
|
|
354
|
+
* Workflow for on-demand single artifact generation.
|
|
355
|
+
* Supports Vercel Workflow durable execution, step memoization, and automatic retry.
|
|
356
|
+
*/
|
|
357
|
+
declare function generateSingleArtifactWorkflow(request: SingleArtifactRequest): Promise<SingleArtifactResult>;
|
|
358
|
+
|
|
359
|
+
export { type ArtifactType as A, parseGateSettings as B, type CurriculumGateMode as C, DEFAULT_GATE_SETTINGS as D, resolveGateSettings as E, gateModeFor as F, type GenerateMasterLessonStepInput as G, approvalPayloadSchema as H, type ApprovalPayload as I, type JudgeMasterLessonStepInput as J, lessonApprovalHook as K, type ExecuteWithRateLimitOptions as L, withRateLimitBackoff as M, type MilestoneWorkflowInput as N, type MilestoneWorkflowResult as O, generateMilestoneWorkflow as P, type GenerateRoadmapWorkflowInput as Q, type ResolvedGateSettings as R, type ScaffoldingLevel as S, type RoadmapWorkflowSummary as T, generateRoadmapWorkflow as U, executeSingleArtifactStep as V, generateSingleArtifactWorkflow as W, type SingleArtifactRequest as a, type SingleArtifactResult as b, generateSingleArtifact as c, generateMasterLessonStep as d, type RepairMasterLessonStepInput as e, generateActivityStep as f, getArtifactMetadata as g, generateCodeLabStep as h, generateSelfLabStep as i, judgeMasterLessonStep as j, generateDiagnosticQuizStep as k, generateSlidesStep as l, generateHandoutStep as m, generateWorksheetStep as n, generateTeacherGuideStep as o, generateExtensionStep as p, type JudgeSatelliteStepInput as q, repairMasterLessonStep as r, judgeSatelliteStep as s, type SaveMilestoneArtifactsInput as t, type SavedMilestoneResult as u, saveMilestoneToWorkspaceStep as v, publishToGitStep as w, publishToSupabaseStep as x, type CurriculumArtifactType as y, type GateSettings as z };
|