@plasius/learning 0.2.25 → 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 +41 -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 +726 -467
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +60 -413
- package/dist/index.d.ts +60 -413
- package/dist/index.js +145 -5903
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
package/dist/index.d.ts
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.js';
|
|
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.js';
|
|
413
3
|
|
|
414
4
|
/**
|
|
415
5
|
* Calculate a score solely from rubric criteria and objective check results.
|
|
@@ -481,6 +71,63 @@ 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
|
|
|
74
|
+
/** Stored host-issued assessment. No browser-supplied result may construct this authority. */
|
|
75
|
+
interface LearningCourseAssessmentRecordV1 {
|
|
76
|
+
missionId: string;
|
|
77
|
+
assessmentId: string;
|
|
78
|
+
referenceId: string;
|
|
79
|
+
sourceDigest: string;
|
|
80
|
+
result: AssessmentResultV1;
|
|
81
|
+
}
|
|
82
|
+
/** Account and timestamps are supplied by the storage adapter, not the contract. */
|
|
83
|
+
interface LearningCourseProgressV1 {
|
|
84
|
+
schemaVersion: "1";
|
|
85
|
+
moduleId: string;
|
|
86
|
+
moduleVersion: string;
|
|
87
|
+
completedStageIds: string[];
|
|
88
|
+
completedMissionIds: string[];
|
|
89
|
+
assessments: LearningCourseAssessmentRecordV1[];
|
|
90
|
+
completion: {
|
|
91
|
+
referenceId: string;
|
|
92
|
+
sourceDigest: string;
|
|
93
|
+
bestScore: number;
|
|
94
|
+
} | null;
|
|
95
|
+
}
|
|
96
|
+
/** Construct only after the host validates the activity-specific learner input. */
|
|
97
|
+
interface VerifiedLearningActivityV1 {
|
|
98
|
+
stageId: string;
|
|
99
|
+
sourceDigest: string;
|
|
100
|
+
accepted: boolean;
|
|
101
|
+
}
|
|
102
|
+
/** Rubric and check results come from trusted assessment execution, never a save body. */
|
|
103
|
+
interface LearningCourseAssessmentAuthorityV1 {
|
|
104
|
+
missionId: string;
|
|
105
|
+
assessmentId: string;
|
|
106
|
+
referenceId: string;
|
|
107
|
+
sourceDigest: string;
|
|
108
|
+
rubric: AssessmentRubricV1;
|
|
109
|
+
checks: AssessmentCheckResultV1[];
|
|
110
|
+
}
|
|
111
|
+
/** Parse storage-owned progress. This is not an accepted browser mutation shape. */
|
|
112
|
+
declare function parseLearningCourseProgress(course: LearningCourseV1, value: unknown): LearningCourseProgressV1;
|
|
113
|
+
/** Fresh course progress cannot inherit completion from project files or an old version. */
|
|
114
|
+
declare function createLearningCourseProgress(course: LearningCourseV1): LearningCourseProgressV1;
|
|
115
|
+
/** Saved navigation may revisit earned activities but cannot unlock later activities. */
|
|
116
|
+
declare function resolveLearningCourseStage(course: LearningCourseV1, progress: LearningCourseProgressV1, requestedId: string): string;
|
|
117
|
+
/**
|
|
118
|
+
* Record checks from a host-owned deterministic runner using the existing rubric
|
|
119
|
+
* calculator. A final assessment must cover the whole accumulated project.
|
|
120
|
+
* Hosts bind reference IDs and source digests to their authenticated transaction.
|
|
121
|
+
*/
|
|
122
|
+
declare function recordLearningCourseAssessment(course: LearningCourseV1, progress: LearningCourseProgressV1, authority: LearningCourseAssessmentAuthorityV1): LearningCourseProgressV1;
|
|
123
|
+
/**
|
|
124
|
+
* Advance one verified activity. Acknowledgements alone never earn a mission or
|
|
125
|
+
* badge. Failed assessments can be inspected, but repair and reward need passing
|
|
126
|
+
* evidence for the current project. Storage must never accept this proof as-is
|
|
127
|
+
* from a browser: the host validates each activity before constructing it.
|
|
128
|
+
*/
|
|
129
|
+
declare function completeVerifiedLearningActivity(course: LearningCourseV1, progress: LearningCourseProgressV1, proof: VerifiedLearningActivityV1): LearningCourseProgressV1;
|
|
130
|
+
|
|
484
131
|
/** Additive contract version for touch-first and spoken contextual help. */
|
|
485
132
|
declare const CONTEXTUAL_HELP_CONTRACT_VERSION_V1: "1.0.0";
|
|
486
133
|
declare const CONTEXTUAL_HELP_KINDS_V1: readonly ["command", "visual-block", "generated-code", "assessment-diagnostic"];
|
|
@@ -787,4 +434,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
787
434
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
788
435
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
789
436
|
|
|
790
|
-
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 };
|