@plasius/learning 0.3.0 → 0.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/README.md +16 -0
- package/dist/chunk-OXWMIHYI.js +6076 -0
- package/dist/chunk-OXWMIHYI.js.map +1 -0
- package/dist/course-authoring-DImvrK5r.d.cts +514 -0
- package/dist/course-authoring-DImvrK5r.d.ts +514 -0
- package/dist/courses/robot-maze-dash.cjs +355 -0
- package/dist/courses/robot-maze-dash.cjs.map +1 -0
- package/dist/courses/robot-maze-dash.d.cts +6 -0
- package/dist/courses/robot-maze-dash.d.ts +6 -0
- package/dist/courses/robot-maze-dash.js +196 -0
- package/dist/courses/robot-maze-dash.js.map +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -504
- package/dist/index.d.ts +3 -504
- package/dist/index.js +44 -6048
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,415 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** Commercial states deliberately separate pilot grants from public checkout. */
|
|
4
|
-
type CommercialStateV1 = "pilot-grant-only" | "fixed-price" | "retired";
|
|
5
|
-
/** The four deterministic assessment dimensions and their product meanings. */
|
|
6
|
-
type AssessmentDimensionV1 = "structure" | "behaviour" | "resilience" | "safety";
|
|
7
|
-
type ScoreBandV1 = "keep-exploring" | "nearly-there" | "mission-complete" | "mastered";
|
|
8
|
-
type CourseMaterialAudienceV1 = "learner" | "facilitator";
|
|
9
|
-
type CourseMaterialKindV1 = "child-guide" | "mission-cards" | "starter-project" | "asset-pack" | "printable" | "facilitator-guide" | "answer-key" | "protected-tests" | "hardware-guide";
|
|
10
|
-
type ModuleAgentRoleV1 = "assessor" | "debugger" | "fix-guide" | "concept-explainer";
|
|
11
|
-
type HardwareModeV1 = "none" | "optional" | "physical-first";
|
|
12
|
-
type HardwareVerificationStatusV1 = "not-applicable" | "pending-bench-test" | "verified";
|
|
13
|
-
/** A material record contains metadata only; storage and signed URLs are adapter concerns. */
|
|
14
|
-
interface CourseMaterialV1 {
|
|
15
|
-
id: string;
|
|
16
|
-
kind: CourseMaterialKindV1;
|
|
17
|
-
audience: CourseMaterialAudienceV1;
|
|
18
|
-
title?: string;
|
|
19
|
-
}
|
|
20
|
-
/** Learner and facilitator materials are deliberately separated. */
|
|
21
|
-
interface CourseMaterialsManifestV1 {
|
|
22
|
-
version: string;
|
|
23
|
-
learner: CourseMaterialV1[];
|
|
24
|
-
facilitator: CourseMaterialV1[];
|
|
25
|
-
}
|
|
26
|
-
/** A physical item disclosed before a Guardian creates a purchase quote. */
|
|
27
|
-
interface HardwareItemV1 {
|
|
28
|
-
id: string;
|
|
29
|
-
label: string;
|
|
30
|
-
quantity: number;
|
|
31
|
-
requirement: "required" | "optional";
|
|
32
|
-
exactSpecification: string;
|
|
33
|
-
adultOnly: boolean;
|
|
34
|
-
stage: "core" | "servo" | "rover" | "sensor" | "camera";
|
|
35
|
-
}
|
|
36
|
-
/** Immutable hardware and preparation disclosure for a module version. */
|
|
37
|
-
interface HardwareRequirementManifestV1 {
|
|
38
|
-
requirementsVersion: string;
|
|
39
|
-
mode: HardwareModeV1;
|
|
40
|
-
hardwareIncluded: false;
|
|
41
|
-
simulatorAvailable: boolean;
|
|
42
|
-
verificationStatus: HardwareVerificationStatusV1;
|
|
43
|
-
publicSaleBlocked: boolean;
|
|
44
|
-
preparationMinutes: number;
|
|
45
|
-
items: HardwareItemV1[];
|
|
46
|
-
warnings: string[];
|
|
47
|
-
supportedPlatforms: string[];
|
|
48
|
-
}
|
|
49
|
-
/** One short, observable learning goal inside a mission. */
|
|
50
|
-
interface LearningGoalV1 {
|
|
51
|
-
id: string;
|
|
52
|
-
statement: string;
|
|
53
|
-
evidence: "assessment" | "explanation" | "adult-signoff";
|
|
54
|
-
}
|
|
55
|
-
/** A 15–25 minute unit following learn, predict, build, assess and explain. */
|
|
56
|
-
interface MissionV1 {
|
|
57
|
-
id: string;
|
|
58
|
-
title: string;
|
|
59
|
-
estimatedMinutes: number;
|
|
60
|
-
concepts: string[];
|
|
61
|
-
goals: LearningGoalV1[];
|
|
62
|
-
sideAdventure: string;
|
|
63
|
-
}
|
|
64
|
-
/** One objective source of points in an assessment rubric. */
|
|
65
|
-
interface AssessmentCriterionV1 {
|
|
66
|
-
id: string;
|
|
67
|
-
label: string;
|
|
68
|
-
dimension: AssessmentDimensionV1;
|
|
69
|
-
points: number;
|
|
70
|
-
mandatory: boolean;
|
|
71
|
-
visibility: "visible" | "protected";
|
|
72
|
-
}
|
|
73
|
-
/** The immutable assessment authority for a module challenge. */
|
|
74
|
-
interface AssessmentRubricV1 {
|
|
75
|
-
version: string;
|
|
76
|
-
completionScore: 80;
|
|
77
|
-
criteria: AssessmentCriterionV1[];
|
|
78
|
-
}
|
|
79
|
-
interface AssessmentCheckResultV1 {
|
|
80
|
-
criterionId: string;
|
|
81
|
-
passed: boolean;
|
|
82
|
-
sourceLocation?: {
|
|
83
|
-
fileId?: string;
|
|
84
|
-
blockId?: string;
|
|
85
|
-
startLine?: number;
|
|
86
|
-
endLine?: number;
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
interface AssessmentResultV1 {
|
|
90
|
-
score: number;
|
|
91
|
-
band: ScoreBandV1;
|
|
92
|
-
completed: boolean;
|
|
93
|
-
passedCriterionIds: string[];
|
|
94
|
-
failedCriterionIds: string[];
|
|
95
|
-
failedMandatoryCriterionIds: string[];
|
|
96
|
-
}
|
|
97
|
-
/** A constrained module-agent role; score and reward authority are always false. */
|
|
98
|
-
interface ModuleAgentDefinitionV1 {
|
|
99
|
-
id: string;
|
|
100
|
-
role: ModuleAgentRoleV1;
|
|
101
|
-
evidenceBound: true;
|
|
102
|
-
maySuggestSingleFix: boolean;
|
|
103
|
-
mayAssignScore: false;
|
|
104
|
-
mayAwardReward: false;
|
|
105
|
-
mayPublish: false;
|
|
106
|
-
mayControlHardware: false;
|
|
107
|
-
}
|
|
108
|
-
/** Structured feedback that a deterministic or AI-backed adapter may return. */
|
|
109
|
-
interface ModuleAgentFeedbackV1 {
|
|
110
|
-
role: ModuleAgentRoleV1;
|
|
111
|
-
assessmentScore: number;
|
|
112
|
-
passedGoalIds: string[];
|
|
113
|
-
failedGoalIds: string[];
|
|
114
|
-
explanation: string;
|
|
115
|
-
expectedBehaviour: string;
|
|
116
|
-
suggestedExperiment?: string;
|
|
117
|
-
sourceLocation?: AssessmentCheckResultV1["sourceLocation"];
|
|
118
|
-
scoreAuthority: "deterministic-assessment";
|
|
119
|
-
}
|
|
120
|
-
/** Ordinary Token subunits used as a pilot shadow or fixed price. */
|
|
121
|
-
interface ModuleReferencePriceV1 {
|
|
122
|
-
/** Reference copy only; this is never a cash balance or redemption promise. */
|
|
123
|
-
currency: "GBP";
|
|
124
|
-
/** Canonical GBP minor units. */
|
|
125
|
-
minorUnits: string;
|
|
126
|
-
basis: "nominal-reference";
|
|
127
|
-
cashRedemptionAllowed: false;
|
|
128
|
-
}
|
|
129
|
-
interface ModulePricingV1 {
|
|
130
|
-
state: CommercialStateV1;
|
|
131
|
-
tokenSubunits: string;
|
|
132
|
-
referencePrice?: ModuleReferencePriceV1;
|
|
133
|
-
includesMaterials: true;
|
|
134
|
-
includesAssessmentRetries: true;
|
|
135
|
-
includesAgents: true;
|
|
136
|
-
includesHostingAllowance: boolean;
|
|
137
|
-
}
|
|
138
|
-
interface BadgeDefinitionV1 {
|
|
139
|
-
id: string;
|
|
140
|
-
title: string;
|
|
141
|
-
evidence: "mission-score" | "module-score" | "adult-physical-signoff";
|
|
142
|
-
tradeable: false;
|
|
143
|
-
tokenConvertible: false;
|
|
144
|
-
}
|
|
145
|
-
/** Immutable package export selected by the catalog without importing it. */
|
|
146
|
-
declare const EXTERNAL_LEARNING_CONTENT_REFERENCE_VERSION_V1: "1";
|
|
147
|
-
interface ExternalLearningContentReferenceV1 {
|
|
148
|
-
/** Exact public package name; ranges and aliases are not permitted. */
|
|
149
|
-
packageName: string;
|
|
150
|
-
/** Exact semantic version without a range operator. */
|
|
151
|
-
packageVersion: string;
|
|
152
|
-
/** Named ESM/CJS export containing the immutable content manifest. */
|
|
153
|
-
exportName: string;
|
|
154
|
-
/** Exact schema version declared by the referenced exported manifest. */
|
|
155
|
-
schemaVersion: string;
|
|
156
|
-
/** Lower-case SHA-256 of the canonical exported manifest JSON. */
|
|
157
|
-
sha256: string;
|
|
158
|
-
}
|
|
159
|
-
/** One immutable, independently sellable module version. */
|
|
160
|
-
interface LearningModuleVersionV1 {
|
|
161
|
-
id: string;
|
|
162
|
-
slug: string;
|
|
163
|
-
version: string;
|
|
164
|
-
contentRevision: string;
|
|
165
|
-
title: string;
|
|
166
|
-
category: ModuleCategoryV1;
|
|
167
|
-
summary: string;
|
|
168
|
-
estimatedMinutes: number;
|
|
169
|
-
tools: string[];
|
|
170
|
-
concepts: string[];
|
|
171
|
-
selfContained: true;
|
|
172
|
-
prerequisiteModuleIds: string[];
|
|
173
|
-
pricing: ModulePricingV1;
|
|
174
|
-
materials: CourseMaterialsManifestV1;
|
|
175
|
-
hardware: HardwareRequirementManifestV1;
|
|
176
|
-
missions: MissionV1[];
|
|
177
|
-
assessment: AssessmentRubricV1;
|
|
178
|
-
agents: ModuleAgentDefinitionV1[];
|
|
179
|
-
badges: BadgeDefinitionV1[];
|
|
180
|
-
/** Optional separately released content implementation pinned by digest. */
|
|
181
|
-
externalContent?: ExternalLearningContentReferenceV1;
|
|
182
|
-
}
|
|
183
|
-
/** A versioned path is a recommendation and never a paid prerequisite chain. */
|
|
184
|
-
interface LearningPathVersionV1 {
|
|
185
|
-
id: string;
|
|
186
|
-
slug: string;
|
|
187
|
-
version: string;
|
|
188
|
-
title: string;
|
|
189
|
-
description: string;
|
|
190
|
-
catalogState: "pilot" | "public" | "retired";
|
|
191
|
-
publicLaunchAtomic: true;
|
|
192
|
-
featureFlag: string;
|
|
193
|
-
modules: LearningModuleVersionV1[];
|
|
194
|
-
}
|
|
195
|
-
/** Entitlement records bind a subject to an immutable module version. */
|
|
196
|
-
interface ModuleEntitlementV1 {
|
|
197
|
-
entitlementId: string;
|
|
198
|
-
subjectAccountId: string;
|
|
199
|
-
moduleId: string;
|
|
200
|
-
moduleVersion: string;
|
|
201
|
-
source: "pilot-grant" | "module-allowance-purchase" | "support-grant" | "admin-test-grant";
|
|
202
|
-
state: "pending" | "active" | "revoked";
|
|
203
|
-
economyTransactionId?: string;
|
|
204
|
-
grantedAt: string;
|
|
205
|
-
}
|
|
206
|
-
interface AttemptEvidenceV1 {
|
|
207
|
-
attemptId: string;
|
|
208
|
-
moduleId: string;
|
|
209
|
-
moduleVersion: string;
|
|
210
|
-
assessment: AssessmentResultV1;
|
|
211
|
-
sourceDigest: string;
|
|
212
|
-
recordedAt: string;
|
|
213
|
-
adultPhysicalSignoff?: {
|
|
214
|
-
signedByActorAccountId: string;
|
|
215
|
-
checklistVersion: string;
|
|
216
|
-
signedAt: string;
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
interface GuardianAiConsentV1 {
|
|
220
|
-
actorAccountId: string;
|
|
221
|
-
subjectAccountId: string;
|
|
222
|
-
policyVersion: string;
|
|
223
|
-
state: "granted" | "withdrawn";
|
|
224
|
-
recordedAt: string;
|
|
225
|
-
}
|
|
226
|
-
/** A static project snapshot is immutable and separately approved for publishing. */
|
|
227
|
-
interface PublishedStaticProjectSnapshotV1 {
|
|
228
|
-
snapshotId: string;
|
|
229
|
-
subjectAccountId: string;
|
|
230
|
-
moduleId: string;
|
|
231
|
-
sourceDigest: string;
|
|
232
|
-
randomSlug: string;
|
|
233
|
-
guardianApprovalId: string;
|
|
234
|
-
state: "pending-review" | "published" | "expired" | "unpublished";
|
|
235
|
-
expiresAt: string;
|
|
236
|
-
}
|
|
237
|
-
/** Canonical learner journey shared by interactive and printable adapters. */
|
|
238
|
-
declare const MISSION_AUTHORING_CONTRACT_VERSION_V1: "1.0.0";
|
|
239
|
-
type MissionStageKindV1 = "learn" | "predict" | "build" | "run" | "assess" | "inspect" | "fix" | "explain" | "reward";
|
|
240
|
-
type MissionArtifactKindV1 = "starter-code" | "starter-assets" | "sample-data" | "printable" | "facilitator-note" | "answer-key" | "protected-test";
|
|
241
|
-
/** Metadata only: storage and authorized delivery remain adapter concerns. */
|
|
242
|
-
interface MissionArtifactReferenceV1 {
|
|
243
|
-
id: string;
|
|
244
|
-
kind: MissionArtifactKindV1;
|
|
245
|
-
audience: CourseMaterialAudienceV1;
|
|
246
|
-
solutionBearing: boolean;
|
|
247
|
-
}
|
|
248
|
-
interface MissionReadinessCheckV1 {
|
|
249
|
-
id: string;
|
|
250
|
-
prompt: string;
|
|
251
|
-
scored: false;
|
|
252
|
-
}
|
|
253
|
-
interface MissionStageCardV1 {
|
|
254
|
-
kind: MissionStageKindV1;
|
|
255
|
-
instruction: string;
|
|
256
|
-
artifactIds: string[];
|
|
257
|
-
}
|
|
258
|
-
interface MissionAuthoringGoalV1 {
|
|
259
|
-
id: string;
|
|
260
|
-
statement: string;
|
|
261
|
-
visibility: "visible" | "protected";
|
|
262
|
-
criterionIds: string[];
|
|
263
|
-
completionRequired: boolean;
|
|
264
|
-
aiRequired: boolean;
|
|
265
|
-
}
|
|
266
|
-
type MissionInteractionModeV1 = "keyboard" | "pointer" | "drag" | "audio" | "colour" | "motion" | "text" | "shape" | "symbol" | "reduced-motion";
|
|
267
|
-
interface MissionInteractionRequirementV1 {
|
|
268
|
-
id: string;
|
|
269
|
-
description: string;
|
|
270
|
-
primaryMode: MissionInteractionModeV1;
|
|
271
|
-
alternativeIds: string[];
|
|
272
|
-
}
|
|
273
|
-
interface MissionAccessibilityAlternativeV1 {
|
|
274
|
-
id: string;
|
|
275
|
-
modes: MissionInteractionModeV1[];
|
|
276
|
-
equivalentOutcome: true;
|
|
277
|
-
description: string;
|
|
278
|
-
}
|
|
279
|
-
type MissionEvidenceKindV1 = "assessment-result" | "learner-explanation" | "project-snapshot" | "adult-signoff";
|
|
280
|
-
type MissionEvidenceRetentionV1 = "attempt" | "entitlement" | "adult-signoff";
|
|
281
|
-
interface MissionEvidenceRequirementV1 {
|
|
282
|
-
id: string;
|
|
283
|
-
goalIds: string[];
|
|
284
|
-
kind: MissionEvidenceKindV1;
|
|
285
|
-
retention: MissionEvidenceRetentionV1;
|
|
286
|
-
containsPersonalData: false;
|
|
287
|
-
}
|
|
288
|
-
interface MissionSideAdventureV1 {
|
|
289
|
-
id: string;
|
|
290
|
-
prompt: string;
|
|
291
|
-
completionRequired: false;
|
|
292
|
-
}
|
|
293
|
-
interface MissionRewardBindingV1 {
|
|
294
|
-
id: string;
|
|
295
|
-
badgeId: string;
|
|
296
|
-
goalIds: string[];
|
|
297
|
-
deterministic: true;
|
|
298
|
-
random: false;
|
|
299
|
-
tokenConvertible: false;
|
|
300
|
-
}
|
|
301
|
-
interface MissionFunctionParameterV1 {
|
|
302
|
-
name: string;
|
|
303
|
-
type: string;
|
|
304
|
-
description: string;
|
|
305
|
-
}
|
|
306
|
-
/** Learner-safe documentation for one bounded host or simulator function. */
|
|
307
|
-
interface MissionFunctionReferenceV1 {
|
|
308
|
-
id: string;
|
|
309
|
-
signature: string;
|
|
310
|
-
summary: string;
|
|
311
|
-
parameters: MissionFunctionParameterV1[];
|
|
312
|
-
effect: string;
|
|
313
|
-
example: string;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* One learner-safe change proposal. A mission may expose a diff for a single
|
|
317
|
-
* authored artifact and always leaves the final accept/reject decision to the
|
|
318
|
-
* learner. Live AI is an optional adapter concern, never a completion input.
|
|
319
|
-
*/
|
|
320
|
-
interface MissionBoundedSuggestionV1 {
|
|
321
|
-
id: string;
|
|
322
|
-
source: "authored-fallback";
|
|
323
|
-
intent: string;
|
|
324
|
-
constraints: string[];
|
|
325
|
-
permittedArtifactId: string;
|
|
326
|
-
originalSnippet: string;
|
|
327
|
-
replacementSnippet: string;
|
|
328
|
-
explanationPrompt: string;
|
|
329
|
-
aiOptional: false;
|
|
330
|
-
learnerApprovalRequired: true;
|
|
331
|
-
alternatives: ["accept", "reject"];
|
|
332
|
-
}
|
|
333
|
-
/** The only mission projection safe to return to a learner. */
|
|
334
|
-
interface LearnerMissionAuthoringV1 {
|
|
335
|
-
estimatedMinutes: number;
|
|
336
|
-
stages: MissionStageCardV1[];
|
|
337
|
-
readinessChecks: MissionReadinessCheckV1[];
|
|
338
|
-
artifacts: MissionArtifactReferenceV1[];
|
|
339
|
-
goals: MissionAuthoringGoalV1[];
|
|
340
|
-
interactions: MissionInteractionRequirementV1[];
|
|
341
|
-
accessibilityAlternatives: MissionAccessibilityAlternativeV1[];
|
|
342
|
-
evidenceRequirements: MissionEvidenceRequirementV1[];
|
|
343
|
-
sideAdventures: MissionSideAdventureV1[];
|
|
344
|
-
rewardBindings: MissionRewardBindingV1[];
|
|
345
|
-
functionReference?: MissionFunctionReferenceV1[];
|
|
346
|
-
boundedSuggestion?: MissionBoundedSuggestionV1;
|
|
347
|
-
}
|
|
348
|
-
/** Protected authoring data must never be projected through learner APIs. */
|
|
349
|
-
interface FacilitatorMissionAuthoringV1 {
|
|
350
|
-
artifacts: MissionArtifactReferenceV1[];
|
|
351
|
-
protectedGoals: MissionAuthoringGoalV1[];
|
|
352
|
-
prompts: string[];
|
|
353
|
-
}
|
|
354
|
-
type MissionHardwareAcquisitionScopeV1 = "complete-path" | "incremental";
|
|
355
|
-
/** Per-item verification authority for a physical mission disclosure. */
|
|
356
|
-
interface MissionHardwareComponentDisclosureV1 {
|
|
357
|
-
itemId: string;
|
|
358
|
-
quantity: number;
|
|
359
|
-
acquisitionScope: MissionHardwareAcquisitionScopeV1;
|
|
360
|
-
verificationStatus: HardwareVerificationStatusV1;
|
|
361
|
-
compatibilityClaimed: boolean;
|
|
362
|
-
physicalCompletionEligible: boolean;
|
|
363
|
-
}
|
|
364
|
-
/** Adult and simulator boundaries that consuming workspaces must preserve. */
|
|
365
|
-
interface MissionPhysicalSafeguardsV1 {
|
|
366
|
-
adultAssemblyRequired: true;
|
|
367
|
-
adultAcknowledgementRequiredForExport: true;
|
|
368
|
-
websiteMayControlHardware: false;
|
|
369
|
-
simulatorCompletionAvailable: true;
|
|
370
|
-
simulatedBadgeId: string;
|
|
371
|
-
physicalBadgeId: string;
|
|
372
|
-
physicalBadgeRequiresAdultSignoff: true;
|
|
373
|
-
adultAssemblySteps: string[];
|
|
374
|
-
powerRequirements: string[];
|
|
375
|
-
cableRequirements: string[];
|
|
376
|
-
softwarePrerequisites: string[];
|
|
377
|
-
warnings: string[];
|
|
378
|
-
unrelatedHardwareNotRequired: string[];
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Additive mission-level projection of one immutable catalog hardware manifest.
|
|
382
|
-
* It distinguishes the complete reusable path kit from this module's additions.
|
|
383
|
-
*/
|
|
384
|
-
interface MissionHardwareDisclosureV1 {
|
|
385
|
-
requirementsVersion: string;
|
|
386
|
-
hardwareIncluded: false;
|
|
387
|
-
completePathItemIds: string[];
|
|
388
|
-
incrementalItemIds: string[];
|
|
389
|
-
components: MissionHardwareComponentDisclosureV1[];
|
|
390
|
-
safeguards: MissionPhysicalSafeguardsV1;
|
|
391
|
-
}
|
|
392
|
-
/** Additive authoring detail keyed to one immutable catalog mission. */
|
|
393
|
-
interface MissionAuthoringBundleV1 {
|
|
394
|
-
version: string;
|
|
395
|
-
moduleId: string;
|
|
396
|
-
moduleVersion: string;
|
|
397
|
-
missionId: string;
|
|
398
|
-
learner: LearnerMissionAuthoringV1;
|
|
399
|
-
facilitator: FacilitatorMissionAuthoringV1;
|
|
400
|
-
hardware?: MissionHardwareDisclosureV1;
|
|
401
|
-
}
|
|
402
|
-
interface MissionAuthoringValidationIssueV1 {
|
|
403
|
-
code: "bundle-version-mismatch" | "module-reference-mismatch" | "mission-reference-mismatch" | "invalid-duration" | "missing-stage" | "duplicate-stage" | "stage-order" | "missing-readiness-check" | "scored-readiness-check" | "missing-starter-artifact" | "learner-artifact-leak" | "facilitator-artifact-leak" | "unknown-artifact" | "duplicate-id" | "missing-visible-goal" | "missing-protected-goal" | "invalid-goal-projection" | "duplicate-goal-id" | "unknown-criterion" | "criterion-visibility-mismatch" | "rubric-total" | "rubric-dimension-total" | "duplicate-criterion-id" | "missing-mandatory-safety" | "missing-safety-evidence" | "ai-dependent-completion" | "inaccessible-interaction" | "unknown-accessibility-alternative" | "non-equivalent-accessibility-alternative" | "missing-evidence" | "unknown-evidence-goal" | "personal-data-evidence" | "missing-side-adventure" | "mandatory-side-adventure" | "invalid-reward" | "hardware-module-mismatch" | "hardware-requirements-version-mismatch" | "hardware-item-mismatch" | "hardware-verification-claim" | "unsafe-physical-export" | "invalid-hardware-reward" | "invalid-function-reference" | "invalid-bounded-suggestion";
|
|
404
|
-
message: string;
|
|
405
|
-
path: string;
|
|
406
|
-
}
|
|
407
|
-
interface LearningValidationIssueV1 {
|
|
408
|
-
code: "duplicate-module-id" | "duplicate-module-slug" | "module-not-self-contained" | "paid-prerequisite" | "missing-materials" | "facilitator-material-leak" | "learner-material-leak" | "invalid-token-subunits" | "invalid-reference-price" | "rubric-total" | "rubric-dimension-total" | "duplicate-criterion-id" | "missing-mandatory-safety" | "missing-hardware-items" | "invalid-agent-authority" | "missing-missions" | "invalid-external-content-reference";
|
|
409
|
-
message: string;
|
|
410
|
-
moduleId?: string;
|
|
411
|
-
path: string;
|
|
412
|
-
}
|
|
1
|
+
import { A as AssessmentRubricV1, a as AssessmentCheckResultV1, b as AssessmentResultV1, c as LearningModuleVersionV1, d as LearningPathVersionV1, L as LearningCourseV1, e as LearningValidationIssueV1, M as MissionAuthoringBundleV1, f as MissionAuthoringValidationIssueV1, E as ExternalLearningContentReferenceV1 } from './course-authoring-DImvrK5r.cjs';
|
|
2
|
+
export { g as AssessmentCriterionV1, h as AssessmentDimensionV1, i as AttemptEvidenceV1, B as BadgeDefinitionV1, j as CommercialStateV1, k as CourseMaterialAudienceV1, l as CourseMaterialKindV1, m as CourseMaterialV1, n as CourseMaterialsManifestV1, C as CoursePracticeQuestion, o as EXTERNAL_LEARNING_CONTENT_REFERENCE_VERSION_V1, F as FacilitatorMissionAuthoringV1, G as GuardianAiConsentV1, H as HardwareItemV1, p as HardwareModeV1, q as HardwareRequirementManifestV1, r as HardwareVerificationStatusV1, s as LEARNING_COURSE_LIMITS, t as LEARNING_COURSE_STAGE_ORDER, u as LearnerMissionAuthoringV1, v as LearningCourseDraftV1, w as LearningCourseInputError, x as LearningCourseMissionV1, y as LearningCourseStageV1, z as LearningCourseValidationIssueV1, D as LearningGoalV1, I as LearningProjectFileV1, J as LearningProjectLanguageV1, K as LearningProjectV1, N as LearningSaveSlotIdV1, O as MISSION_AUTHORING_CONTRACT_VERSION_V1, P as MissionAccessibilityAlternativeV1, Q as MissionArtifactKindV1, R as MissionArtifactReferenceV1, S as MissionAuthoringGoalV1, T as MissionBoundedSuggestionV1, U as MissionEvidenceKindV1, V as MissionEvidenceRequirementV1, W as MissionEvidenceRetentionV1, X as MissionFunctionParameterV1, Y as MissionFunctionReferenceV1, Z as MissionHardwareAcquisitionScopeV1, _ as MissionHardwareComponentDisclosureV1, $ as MissionHardwareDisclosureV1, a0 as MissionInteractionModeV1, a1 as MissionInteractionRequirementV1, a2 as MissionPhysicalSafeguardsV1, a3 as MissionReadinessCheckV1, a4 as MissionRewardBindingV1, a5 as MissionSideAdventureV1, a6 as MissionStageCardV1, a7 as MissionStageKindV1, a8 as MissionV1, a9 as ModuleAgentDefinitionV1, aa as ModuleAgentFeedbackV1, ab as ModuleAgentRoleV1, ac as ModuleCategoryV1, ad as ModuleEntitlementV1, ae as ModulePricingV1, af as ModuleReferencePriceV1, ag as PublishedStaticProjectSnapshotV1, ah as ScoreBandV1, ai as parseLearningCourse, aj as parseLearningCourseDraft, ak as parseLearningProject, al as parseLearningSaveSlotId, am as validateLearningCourse } from './course-authoring-DImvrK5r.cjs';
|
|
413
3
|
|
|
414
4
|
/**
|
|
415
5
|
* Calculate a score solely from rubric criteria and objective check results.
|
|
@@ -481,97 +71,6 @@ declare const JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_4: LearningPathVersionV1;
|
|
|
481
71
|
/** Current pilot catalog for server adapters that intentionally follow releases. */
|
|
482
72
|
declare const JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT: LearningPathVersionV1;
|
|
483
73
|
|
|
484
|
-
/** Stable activity order for complete courses; legacy authoring remains immutable. */
|
|
485
|
-
declare const LEARNING_COURSE_STAGE_ORDER: readonly ["learn", "predict", "build", "run", "assess", "inspect", "fix", "explain", "reward"];
|
|
486
|
-
declare const LEARNING_COURSE_LIMITS: Readonly<{
|
|
487
|
-
missions: 6;
|
|
488
|
-
stagesPerMission: 9;
|
|
489
|
-
projectFiles: 8;
|
|
490
|
-
sourceCharactersPerFile: 64000;
|
|
491
|
-
sourceCharactersPerProject: 96000;
|
|
492
|
-
}>;
|
|
493
|
-
type LearningProjectLanguageV1 = "javascript" | "python" | "cpp" | "html" | "css" | "blocks" | "json";
|
|
494
|
-
interface LearningProjectFileV1 {
|
|
495
|
-
path: string;
|
|
496
|
-
source: string;
|
|
497
|
-
}
|
|
498
|
-
interface LearningProjectV1 {
|
|
499
|
-
files: LearningProjectFileV1[];
|
|
500
|
-
}
|
|
501
|
-
interface LearningCourseStageV1 {
|
|
502
|
-
id: string;
|
|
503
|
-
kind: MissionStageKindV1;
|
|
504
|
-
title: string;
|
|
505
|
-
instruction: string;
|
|
506
|
-
help: string;
|
|
507
|
-
}
|
|
508
|
-
interface LearningCourseMissionV1 {
|
|
509
|
-
id: string;
|
|
510
|
-
title: string;
|
|
511
|
-
concepts: string[];
|
|
512
|
-
estimatedMinutes: number;
|
|
513
|
-
goals: string[];
|
|
514
|
-
assessmentId: string;
|
|
515
|
-
stages: LearningCourseStageV1[];
|
|
516
|
-
extension: string;
|
|
517
|
-
}
|
|
518
|
-
/** Learner-safe content only. Protected scenarios and solutions are host-owned. */
|
|
519
|
-
interface LearningCourseV1 {
|
|
520
|
-
schemaVersion: "1";
|
|
521
|
-
moduleId: string;
|
|
522
|
-
moduleVersion: string;
|
|
523
|
-
slug: string;
|
|
524
|
-
title: string;
|
|
525
|
-
summary: string;
|
|
526
|
-
runtimeId: string;
|
|
527
|
-
category: ModuleCategoryV1;
|
|
528
|
-
estimatedMinutes: number;
|
|
529
|
-
completionAssessmentId: string;
|
|
530
|
-
projectFiles: {
|
|
531
|
-
path: string;
|
|
532
|
-
language: LearningProjectLanguageV1;
|
|
533
|
-
maximumCharacters: number;
|
|
534
|
-
}[];
|
|
535
|
-
starterProject: LearningProjectV1;
|
|
536
|
-
reference: {
|
|
537
|
-
name: string;
|
|
538
|
-
signature: string;
|
|
539
|
-
description: string;
|
|
540
|
-
example: string;
|
|
541
|
-
}[];
|
|
542
|
-
missions: LearningCourseMissionV1[];
|
|
543
|
-
completionBadge: {
|
|
544
|
-
id: string;
|
|
545
|
-
title: string;
|
|
546
|
-
};
|
|
547
|
-
}
|
|
548
|
-
/** The only learner-owned save inputs. Progress/evidence are never draft authority. */
|
|
549
|
-
interface LearningCourseDraftV1 {
|
|
550
|
-
schemaVersion: "1";
|
|
551
|
-
moduleVersion: string;
|
|
552
|
-
activeStageId: string;
|
|
553
|
-
project: LearningProjectV1;
|
|
554
|
-
}
|
|
555
|
-
type LearningSaveSlotIdV1 = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
|
|
556
|
-
interface LearningCourseValidationIssueV1 {
|
|
557
|
-
code: "invalid-manifest" | "mission-count" | "stage-order" | "duplicate-id" | "incomplete-content" | "invalid-project";
|
|
558
|
-
path: string;
|
|
559
|
-
}
|
|
560
|
-
/** Errors contain no source, learner text or caller-supplied identifiers. */
|
|
561
|
-
declare class LearningCourseInputError extends Error {
|
|
562
|
-
constructor();
|
|
563
|
-
}
|
|
564
|
-
/** Validate every file against the declared editable set; never preserve extra fields. */
|
|
565
|
-
declare function parseLearningProject(course: Pick<LearningCourseV1, "projectFiles">, value: unknown): LearningProjectV1;
|
|
566
|
-
/** Parse untrusted saves without accepting identity, scores, completion or evidence. */
|
|
567
|
-
declare function parseLearningCourseDraft(course: LearningCourseV1, value: unknown): LearningCourseDraftV1;
|
|
568
|
-
/** An account owns one autosave and nine explicitly managed slots per course version. */
|
|
569
|
-
declare function parseLearningSaveSlotId(value: unknown): LearningSaveSlotIdV1;
|
|
570
|
-
/** Structural publication gate. Working runtime/curriculum acceptance is additional. */
|
|
571
|
-
declare function validateLearningCourse(value: unknown): LearningCourseValidationIssueV1[];
|
|
572
|
-
/** Validate an external learner manifest and detach it from the supplied object. */
|
|
573
|
-
declare function parseLearningCourse(value: unknown): LearningCourseV1;
|
|
574
|
-
|
|
575
74
|
/** Stored host-issued assessment. No browser-supplied result may construct this authority. */
|
|
576
75
|
interface LearningCourseAssessmentRecordV1 {
|
|
577
76
|
missionId: string;
|
|
@@ -935,4 +434,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
935
434
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
936
435
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
937
436
|
|
|
938
|
-
export { ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1, type AdventureMissionPlannerSafeRenderV1,
|
|
437
|
+
export { ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1, type AdventureMissionPlannerSafeRenderV1, AssessmentCheckResultV1, AssessmentResultV1, AssessmentRubricV1, BEACON_BOT_MISSION_ONE_AUTHORING_V1, CONTEXTUAL_HELP_CONTRACT_VERSION_V1, CONTEXTUAL_HELP_KINDS_V1, CONTEXTUAL_VOICE_INTENTS_V1, CONTEXTUAL_VOICE_SUGGESTED_ACTIONS_V1, CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1, type CanonicalSpokenHelpDescriptorV1, type ContextualHelpIdentifierV1, type ContextualHelpKindV1, type ContextualVoiceAnswerV1, type ContextualVoiceIntentV1, type ContextualVoiceQuestionMetadataV1, type ContextualVoiceQuestionResultV1, type ContextualVoiceSuggestedActionV1, type CreatureCareDashboardSafeRenderV1, DANCE_ROVER_MISSION_ONE_AUTHORING_V1, ExternalLearningContentReferenceV1, type GuardianVoiceConsentStateV1, type GuardianVoiceConsentV1, type GuardianVoiceProcessingRouteV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_PADDLE_PULSE_V2, JUNIOR_CODER_ROAD_HOPPER_RALLY_V2, JUNIOR_CODER_ROAD_HOPPER_RALLY_V2_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_2, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_3, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_4, type LearningCourseAssessmentAuthorityV1, type LearningCourseAssessmentRecordV1, type LearningCourseProgressV1, LearningCourseV1, LearningModuleVersionV1, LearningPathVersionV1, LearningValidationIssueV1, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, MissionAuthoringBundleV1, MissionAuthoringValidationIssueV1, OBSTACLE_EXPLORER_MISSION_ONE_AUTHORING_V1, PADDLE_PULSE_EXTERNAL_CONTENT_V1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, RAINBOW_RESCUE_ROVER_MISSION_ONE_AUTHORING_V1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_EXTERNAL_CONTENT_V1, ROAD_HOPPER_RALLY_EXTERNAL_CONTENT_V2, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1, type RobotMissionControlSafeRenderV1, SERVO_CREATURE_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, STATIC_PROJECT_APPROVAL_STATEMENT_VERSION_V1, STATIC_PROJECT_DEFAULT_LIFETIME_DAYS_V1, STATIC_PROJECT_MAX_SOURCE_CHARACTERS_V1, STATIC_PROJECT_PUBLISHING_CONTRACT_VERSION_V1, STATIC_PROJECT_SAFETY_CHECK_IDS_V1, STATIC_PROJECT_SCANNER_VERSION_V1, type StaticProjectContractIssueV1, type StaticProjectGuardianApprovalV1, type StaticProjectModuleSlugV1, type StaticProjectPublicationV1, type StaticProjectSafeRenderV1, type StaticProjectSafetyCheckIdV1, type StaticProjectSafetyCheckV1, type StaticProjectSafetyScanV1, type StaticProjectSnapshotV1, VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1, VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, type VerifiedLearningActivityV1, type VoiceHelpAvailabilityReasonV1, type VoiceHelpAvailabilityV1, assertValidCanonicalSpokenHelpDescriptor, assertValidContextualHelpIdentifier, assertValidContextualVoiceQuestionMetadata, assertValidContextualVoiceQuestionResult, assertValidGuardianVoiceConsent, assertValidLearningPath, assertValidMissionAuthoringBundle, assertValidStaticProjectGuardianApproval, assertValidStaticProjectPublication, assertValidStaticProjectSnapshot, assertValidVoiceHelpAvailability, calculateAssessment, completeVerifiedLearningActivity, createLearningCourseProgress, isExternalLearningContentReferenceV1, parseLearningCourseProgress, recordLearningCourseAssessment, resolveLearningCourseStage, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle, validateStaticProjectGuardianApproval, validateStaticProjectPublication, validateStaticProjectSnapshot };
|