@plasius/learning 0.2.2 → 0.2.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/README.md +11 -1
- package/dist/index.cjs +222 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +221 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,6 +65,7 @@ import {
|
|
|
65
65
|
JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1,
|
|
66
66
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
67
67
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
68
|
+
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
68
69
|
assertValidMissionAuthoringBundle,
|
|
69
70
|
} from "@plasius/learning";
|
|
70
71
|
|
|
@@ -74,8 +75,13 @@ const roadHopper = JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1.modules.find(
|
|
|
74
75
|
const robotMaze = JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1.modules.find(
|
|
75
76
|
(module) => module.slug === "robot-maze-dash",
|
|
76
77
|
);
|
|
78
|
+
const skywing = JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1.modules.find(
|
|
79
|
+
(module) => module.slug === "skywing-sprint",
|
|
80
|
+
);
|
|
77
81
|
|
|
78
|
-
if (!roadHopper || !robotMaze
|
|
82
|
+
if (!roadHopper || !robotMaze || !skywing) {
|
|
83
|
+
throw new Error("Junior Coder module is missing");
|
|
84
|
+
}
|
|
79
85
|
|
|
80
86
|
assertValidMissionAuthoringBundle(
|
|
81
87
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
@@ -85,6 +91,10 @@ assertValidMissionAuthoringBundle(
|
|
|
85
91
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
86
92
|
robotMaze,
|
|
87
93
|
);
|
|
94
|
+
assertValidMissionAuthoringBundle(
|
|
95
|
+
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
96
|
+
skywing,
|
|
97
|
+
);
|
|
88
98
|
```
|
|
89
99
|
|
|
90
100
|
## Contract rules
|
package/dist/index.cjs
CHANGED
|
@@ -28,6 +28,7 @@ __export(index_exports, {
|
|
|
28
28
|
MISSION_AUTHORING_CONTRACT_VERSION_V1: () => MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
29
29
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: () => ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
30
30
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1: () => ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
31
|
+
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1: () => SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
31
32
|
assertValidLearningPath: () => assertValidLearningPath,
|
|
32
33
|
assertValidMissionAuthoringBundle: () => assertValidMissionAuthoringBundle,
|
|
33
34
|
calculateAssessment: () => calculateAssessment,
|
|
@@ -1341,6 +1342,226 @@ var ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1 = {
|
|
|
1341
1342
|
]
|
|
1342
1343
|
}
|
|
1343
1344
|
};
|
|
1345
|
+
var SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1 = {
|
|
1346
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1347
|
+
moduleId: "junior-coder.skywing-sprint",
|
|
1348
|
+
moduleVersion: "1.1.0",
|
|
1349
|
+
missionId: "skywing-sprint-mission-1",
|
|
1350
|
+
learner: {
|
|
1351
|
+
estimatedMinutes: 20,
|
|
1352
|
+
stages: [
|
|
1353
|
+
{
|
|
1354
|
+
kind: "learn",
|
|
1355
|
+
instruction: "Read how lift, gravity and gate-gap functions change Skywing's flight.",
|
|
1356
|
+
artifactIds: ["skywing-sprint-m1-art"]
|
|
1357
|
+
},
|
|
1358
|
+
{
|
|
1359
|
+
kind: "predict",
|
|
1360
|
+
instruction: "Predict whether Skywing will rise or fall after one lift pulse.",
|
|
1361
|
+
artifactIds: []
|
|
1362
|
+
},
|
|
1363
|
+
{
|
|
1364
|
+
kind: "build",
|
|
1365
|
+
instruction: "Adjust the three documented settings in the starter JavaScript.",
|
|
1366
|
+
artifactIds: ["skywing-sprint-m1-code"]
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
kind: "run",
|
|
1370
|
+
instruction: "Use the Run action button to start the private flight preview.",
|
|
1371
|
+
artifactIds: ["skywing-sprint-m1-code"]
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
kind: "assess",
|
|
1375
|
+
instruction: "Run the visible and protected deterministic flight checks.",
|
|
1376
|
+
artifactIds: []
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
kind: "inspect",
|
|
1380
|
+
instruction: "Compare the highlighted setting with the first goal that did not pass.",
|
|
1381
|
+
artifactIds: []
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
kind: "fix",
|
|
1385
|
+
instruction: "Change one setting, run again and observe the flight telemetry.",
|
|
1386
|
+
artifactIds: ["skywing-sprint-m1-code"]
|
|
1387
|
+
},
|
|
1388
|
+
{
|
|
1389
|
+
kind: "explain",
|
|
1390
|
+
instruction: "Explain how lift and gravity changed Skywing's vertical speed.",
|
|
1391
|
+
artifactIds: []
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
kind: "reward",
|
|
1395
|
+
instruction: "Collect the evidence-bound badge when the score and safety check pass.",
|
|
1396
|
+
artifactIds: []
|
|
1397
|
+
}
|
|
1398
|
+
],
|
|
1399
|
+
readinessChecks: [
|
|
1400
|
+
{
|
|
1401
|
+
id: "skywing-sprint-m1-predict-velocity",
|
|
1402
|
+
prompt: "Point to the setting that changes Skywing's upward push.",
|
|
1403
|
+
scored: false
|
|
1404
|
+
}
|
|
1405
|
+
],
|
|
1406
|
+
artifacts: [
|
|
1407
|
+
{
|
|
1408
|
+
id: "skywing-sprint-m1-code",
|
|
1409
|
+
kind: "starter-code",
|
|
1410
|
+
audience: "learner",
|
|
1411
|
+
solutionBearing: false
|
|
1412
|
+
},
|
|
1413
|
+
{
|
|
1414
|
+
id: "skywing-sprint-m1-art",
|
|
1415
|
+
kind: "starter-assets",
|
|
1416
|
+
audience: "learner",
|
|
1417
|
+
solutionBearing: false
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
id: "skywing-sprint-m1-printable",
|
|
1421
|
+
kind: "printable",
|
|
1422
|
+
audience: "learner",
|
|
1423
|
+
solutionBearing: false
|
|
1424
|
+
}
|
|
1425
|
+
],
|
|
1426
|
+
goals: [
|
|
1427
|
+
{
|
|
1428
|
+
id: "skywing-sprint-m1-starts",
|
|
1429
|
+
statement: "The JavaScript settings are valid and the private preview starts.",
|
|
1430
|
+
visibility: "visible",
|
|
1431
|
+
criterionIds: ["skywing-sprint-build"],
|
|
1432
|
+
completionRequired: true,
|
|
1433
|
+
aiRequired: false
|
|
1434
|
+
},
|
|
1435
|
+
{
|
|
1436
|
+
id: "skywing-sprint-m1-safe-flight",
|
|
1437
|
+
statement: "Lift and gravity create a controllable flight through the rescue gate.",
|
|
1438
|
+
visibility: "visible",
|
|
1439
|
+
criterionIds: [
|
|
1440
|
+
"skywing-sprint-goal-one",
|
|
1441
|
+
"skywing-sprint-goal-two"
|
|
1442
|
+
],
|
|
1443
|
+
completionRequired: true,
|
|
1444
|
+
aiRequired: false
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
id: "skywing-sprint-m1-private-runtime",
|
|
1448
|
+
statement: "The game stays inside the private educational preview boundary.",
|
|
1449
|
+
visibility: "visible",
|
|
1450
|
+
criterionIds: ["skywing-sprint-safety"],
|
|
1451
|
+
completionRequired: true,
|
|
1452
|
+
aiRequired: false
|
|
1453
|
+
}
|
|
1454
|
+
],
|
|
1455
|
+
interactions: [
|
|
1456
|
+
{
|
|
1457
|
+
id: "skywing-sprint-m1-run-control",
|
|
1458
|
+
description: "Start the private flight simulation.",
|
|
1459
|
+
primaryMode: "pointer",
|
|
1460
|
+
alternativeIds: ["skywing-sprint-m1-keyboard-run"]
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
id: "skywing-sprint-m1-flight-control",
|
|
1464
|
+
description: "Send a lift pulse while the preview is running.",
|
|
1465
|
+
primaryMode: "keyboard",
|
|
1466
|
+
alternativeIds: []
|
|
1467
|
+
},
|
|
1468
|
+
{
|
|
1469
|
+
id: "skywing-sprint-m1-flight-motion",
|
|
1470
|
+
description: "Observe Skywing moving through the animated gate preview.",
|
|
1471
|
+
primaryMode: "motion",
|
|
1472
|
+
alternativeIds: ["skywing-sprint-m1-reduced-motion"]
|
|
1473
|
+
}
|
|
1474
|
+
],
|
|
1475
|
+
accessibilityAlternatives: [
|
|
1476
|
+
{
|
|
1477
|
+
id: "skywing-sprint-m1-keyboard-run",
|
|
1478
|
+
modes: ["keyboard"],
|
|
1479
|
+
equivalentOutcome: true,
|
|
1480
|
+
description: "Press Enter or Space on the play-icon Run button to start the same preview."
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
id: "skywing-sprint-m1-reduced-motion",
|
|
1484
|
+
modes: ["text"],
|
|
1485
|
+
equivalentOutcome: true,
|
|
1486
|
+
description: "Use the position, velocity and gate-status text instead of animation."
|
|
1487
|
+
}
|
|
1488
|
+
],
|
|
1489
|
+
evidenceRequirements: [
|
|
1490
|
+
{
|
|
1491
|
+
id: "skywing-sprint-m1-assessment",
|
|
1492
|
+
goalIds: [
|
|
1493
|
+
"skywing-sprint-m1-starts",
|
|
1494
|
+
"skywing-sprint-m1-safe-flight",
|
|
1495
|
+
"skywing-sprint-m1-private-runtime"
|
|
1496
|
+
],
|
|
1497
|
+
kind: "assessment-result",
|
|
1498
|
+
retention: "entitlement",
|
|
1499
|
+
containsPersonalData: false
|
|
1500
|
+
},
|
|
1501
|
+
{
|
|
1502
|
+
id: "skywing-sprint-m1-explanation",
|
|
1503
|
+
goalIds: ["skywing-sprint-m1-safe-flight"],
|
|
1504
|
+
kind: "learner-explanation",
|
|
1505
|
+
retention: "attempt",
|
|
1506
|
+
containsPersonalData: false
|
|
1507
|
+
}
|
|
1508
|
+
],
|
|
1509
|
+
sideAdventures: [
|
|
1510
|
+
{
|
|
1511
|
+
id: "skywing-sprint-m1-remix",
|
|
1512
|
+
prompt: "Invent a new gate name and choose one setting to make the flight gentler.",
|
|
1513
|
+
completionRequired: false
|
|
1514
|
+
}
|
|
1515
|
+
],
|
|
1516
|
+
rewardBindings: [
|
|
1517
|
+
{
|
|
1518
|
+
id: "skywing-sprint-m1-badge",
|
|
1519
|
+
badgeId: "skywing-sprint-mission-complete",
|
|
1520
|
+
goalIds: [
|
|
1521
|
+
"skywing-sprint-m1-starts",
|
|
1522
|
+
"skywing-sprint-m1-safe-flight",
|
|
1523
|
+
"skywing-sprint-m1-private-runtime"
|
|
1524
|
+
],
|
|
1525
|
+
deterministic: true,
|
|
1526
|
+
random: false,
|
|
1527
|
+
tokenConvertible: false
|
|
1528
|
+
}
|
|
1529
|
+
]
|
|
1530
|
+
},
|
|
1531
|
+
facilitator: {
|
|
1532
|
+
artifacts: [
|
|
1533
|
+
{
|
|
1534
|
+
id: "skywing-sprint-m1-answer-key",
|
|
1535
|
+
kind: "answer-key",
|
|
1536
|
+
audience: "facilitator",
|
|
1537
|
+
solutionBearing: true
|
|
1538
|
+
},
|
|
1539
|
+
{
|
|
1540
|
+
id: "skywing-sprint-m1-protected-tests",
|
|
1541
|
+
kind: "protected-test",
|
|
1542
|
+
audience: "facilitator",
|
|
1543
|
+
solutionBearing: true
|
|
1544
|
+
}
|
|
1545
|
+
],
|
|
1546
|
+
protectedGoals: [
|
|
1547
|
+
{
|
|
1548
|
+
id: "skywing-sprint-m1-protected-resilience",
|
|
1549
|
+
statement: "The runtime clamps unsafe values and terminates bounded simulations.",
|
|
1550
|
+
visibility: "protected",
|
|
1551
|
+
criterionIds: [
|
|
1552
|
+
"skywing-sprint-edge-one",
|
|
1553
|
+
"skywing-sprint-edge-two"
|
|
1554
|
+
],
|
|
1555
|
+
completionRequired: false,
|
|
1556
|
+
aiRequired: false
|
|
1557
|
+
}
|
|
1558
|
+
],
|
|
1559
|
+
prompts: [
|
|
1560
|
+
"Ask the learner which direction a positive velocity moves Skywing before suggesting a setting change.",
|
|
1561
|
+
"Use the visible telemetry and function reference; never reveal protected numeric targets or expected source fragments."
|
|
1562
|
+
]
|
|
1563
|
+
}
|
|
1564
|
+
};
|
|
1344
1565
|
var ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1 = {
|
|
1345
1566
|
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1346
1567
|
moduleId: "junior-coder.road-hopper-rally",
|
|
@@ -1698,6 +1919,7 @@ ${summary}`);
|
|
|
1698
1919
|
MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1699
1920
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
1700
1921
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
1922
|
+
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
1701
1923
|
assertValidLearningPath,
|
|
1702
1924
|
assertValidMissionAuthoringBundle,
|
|
1703
1925
|
calculateAssessment,
|