@plasius/learning 0.2.6 → 0.2.8
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 +19 -1
- package/dist/index.cjs +444 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.js +442 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -382,6 +382,18 @@ declare const SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
|
382
382
|
* and ball controls without receiving protected collision targets or answers.
|
|
383
383
|
*/
|
|
384
384
|
declare const PADDLE_PULSE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
|
+
/**
|
|
386
|
+
* Original first mission for Pixel Trail Challenge. Learners use documented,
|
|
387
|
+
* bounded Python host functions without receiving protected coordinates,
|
|
388
|
+
* expected source fragments or list/collision edge answers.
|
|
389
|
+
*/
|
|
390
|
+
declare const PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
391
|
+
/**
|
|
392
|
+
* Original first mission for Star Defender Squadron. Learners launch bounded
|
|
393
|
+
* JavaScript entities, patterns, health and rescue projectiles while protected
|
|
394
|
+
* pass targets and runtime edge cases remain facilitator-only.
|
|
395
|
+
*/
|
|
396
|
+
declare const STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
397
|
/**
|
|
386
398
|
* Original first mission for Rescue Crew Commander. The learner arranges a
|
|
387
399
|
* typed visual program and can inspect its synchronized JavaScript projection,
|
|
@@ -402,4 +414,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
402
414
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
403
415
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
404
416
|
|
|
405
|
-
export { type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, type FacilitatorMissionAuthoringV1, type GuardianAiConsentV1, type HardwareItemV1, type HardwareModeV1, type HardwareRequirementManifestV1, type HardwareVerificationStatusV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, type LearnerMissionAuthoringV1, type LearningGoalV1, type LearningModuleVersionV1, type LearningPathVersionV1, type LearningValidationIssueV1, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, MISSION_AUTHORING_CONTRACT_VERSION_V1, type MissionAccessibilityAlternativeV1, type MissionArtifactKindV1, type MissionArtifactReferenceV1, type MissionAuthoringBundleV1, type MissionAuthoringGoalV1, type MissionAuthoringValidationIssueV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionReadinessCheckV1, type MissionRewardBindingV1, type MissionSideAdventureV1, type MissionStageCardV1, type MissionStageKindV1, type MissionV1, type ModuleAgentDefinitionV1, type ModuleAgentFeedbackV1, type ModuleAgentRoleV1, type ModuleCategoryV1, type ModuleEntitlementV1, type ModulePricingV1, type ModuleReferencePriceV1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
|
417
|
+
export { type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, type FacilitatorMissionAuthoringV1, type GuardianAiConsentV1, type HardwareItemV1, type HardwareModeV1, type HardwareRequirementManifestV1, type HardwareVerificationStatusV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, type LearnerMissionAuthoringV1, type LearningGoalV1, type LearningModuleVersionV1, type LearningPathVersionV1, type LearningValidationIssueV1, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, MISSION_AUTHORING_CONTRACT_VERSION_V1, type MissionAccessibilityAlternativeV1, type MissionArtifactKindV1, type MissionArtifactReferenceV1, type MissionAuthoringBundleV1, type MissionAuthoringGoalV1, type MissionAuthoringValidationIssueV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionReadinessCheckV1, type MissionRewardBindingV1, type MissionSideAdventureV1, type MissionStageCardV1, type MissionStageKindV1, type MissionV1, type ModuleAgentDefinitionV1, type ModuleAgentFeedbackV1, type ModuleAgentRoleV1, type ModuleCategoryV1, type ModuleEntitlementV1, type ModulePricingV1, type ModuleReferencePriceV1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
package/dist/index.d.ts
CHANGED
|
@@ -382,6 +382,18 @@ declare const SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
|
382
382
|
* and ball controls without receiving protected collision targets or answers.
|
|
383
383
|
*/
|
|
384
384
|
declare const PADDLE_PULSE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
|
+
/**
|
|
386
|
+
* Original first mission for Pixel Trail Challenge. Learners use documented,
|
|
387
|
+
* bounded Python host functions without receiving protected coordinates,
|
|
388
|
+
* expected source fragments or list/collision edge answers.
|
|
389
|
+
*/
|
|
390
|
+
declare const PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
391
|
+
/**
|
|
392
|
+
* Original first mission for Star Defender Squadron. Learners launch bounded
|
|
393
|
+
* JavaScript entities, patterns, health and rescue projectiles while protected
|
|
394
|
+
* pass targets and runtime edge cases remain facilitator-only.
|
|
395
|
+
*/
|
|
396
|
+
declare const STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
397
|
/**
|
|
386
398
|
* Original first mission for Rescue Crew Commander. The learner arranges a
|
|
387
399
|
* typed visual program and can inspect its synchronized JavaScript projection,
|
|
@@ -402,4 +414,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
402
414
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
403
415
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
404
416
|
|
|
405
|
-
export { type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, type FacilitatorMissionAuthoringV1, type GuardianAiConsentV1, type HardwareItemV1, type HardwareModeV1, type HardwareRequirementManifestV1, type HardwareVerificationStatusV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, type LearnerMissionAuthoringV1, type LearningGoalV1, type LearningModuleVersionV1, type LearningPathVersionV1, type LearningValidationIssueV1, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, MISSION_AUTHORING_CONTRACT_VERSION_V1, type MissionAccessibilityAlternativeV1, type MissionArtifactKindV1, type MissionArtifactReferenceV1, type MissionAuthoringBundleV1, type MissionAuthoringGoalV1, type MissionAuthoringValidationIssueV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionReadinessCheckV1, type MissionRewardBindingV1, type MissionSideAdventureV1, type MissionStageCardV1, type MissionStageKindV1, type MissionV1, type ModuleAgentDefinitionV1, type ModuleAgentFeedbackV1, type ModuleAgentRoleV1, type ModuleCategoryV1, type ModuleEntitlementV1, type ModulePricingV1, type ModuleReferencePriceV1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
|
417
|
+
export { type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, type FacilitatorMissionAuthoringV1, type GuardianAiConsentV1, type HardwareItemV1, type HardwareModeV1, type HardwareRequirementManifestV1, type HardwareVerificationStatusV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, type LearnerMissionAuthoringV1, type LearningGoalV1, type LearningModuleVersionV1, type LearningPathVersionV1, type LearningValidationIssueV1, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, MISSION_AUTHORING_CONTRACT_VERSION_V1, type MissionAccessibilityAlternativeV1, type MissionArtifactKindV1, type MissionArtifactReferenceV1, type MissionAuthoringBundleV1, type MissionAuthoringGoalV1, type MissionAuthoringValidationIssueV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionReadinessCheckV1, type MissionRewardBindingV1, type MissionSideAdventureV1, type MissionStageCardV1, type MissionStageKindV1, type MissionV1, type ModuleAgentDefinitionV1, type ModuleAgentFeedbackV1, type ModuleAgentRoleV1, type ModuleCategoryV1, type ModuleEntitlementV1, type ModulePricingV1, type ModuleReferencePriceV1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
package/dist/index.js
CHANGED
|
@@ -1742,6 +1742,446 @@ var PADDLE_PULSE_MISSION_ONE_AUTHORING_V1 = {
|
|
|
1742
1742
|
]
|
|
1743
1743
|
}
|
|
1744
1744
|
};
|
|
1745
|
+
var PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1 = {
|
|
1746
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1747
|
+
moduleId: "junior-coder.pixel-trail-challenge",
|
|
1748
|
+
moduleVersion: "1.1.0",
|
|
1749
|
+
missionId: "pixel-trail-challenge-mission-1",
|
|
1750
|
+
learner: {
|
|
1751
|
+
estimatedMinutes: 20,
|
|
1752
|
+
stages: [
|
|
1753
|
+
{
|
|
1754
|
+
kind: "learn",
|
|
1755
|
+
instruction: "Read what set_direction(), set_trail_limit() and place_energy_orb() do in the private Python preview.",
|
|
1756
|
+
artifactIds: ["pixel-trail-challenge-m1-art"]
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
kind: "predict",
|
|
1760
|
+
instruction: "Predict the next grid square and how the trail list will change after one move.",
|
|
1761
|
+
artifactIds: []
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
kind: "build",
|
|
1765
|
+
instruction: "Adjust the three documented Python calls so the pixel follows a safe trail toward the energy orb.",
|
|
1766
|
+
artifactIds: ["pixel-trail-challenge-m1-code"]
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
kind: "run",
|
|
1770
|
+
instruction: "Use the Run action button to start the private grid preview.",
|
|
1771
|
+
artifactIds: ["pixel-trail-challenge-m1-code"]
|
|
1772
|
+
},
|
|
1773
|
+
{
|
|
1774
|
+
kind: "assess",
|
|
1775
|
+
instruction: "Run the visible and protected deterministic trail checks.",
|
|
1776
|
+
artifactIds: []
|
|
1777
|
+
},
|
|
1778
|
+
{
|
|
1779
|
+
kind: "inspect",
|
|
1780
|
+
instruction: "Compare the highlighted Python line with the first goal that did not pass.",
|
|
1781
|
+
artifactIds: []
|
|
1782
|
+
},
|
|
1783
|
+
{
|
|
1784
|
+
kind: "fix",
|
|
1785
|
+
instruction: "Change one direction, trail or orb setting, run again and inspect the position and list-length telemetry.",
|
|
1786
|
+
artifactIds: ["pixel-trail-challenge-m1-code"]
|
|
1787
|
+
},
|
|
1788
|
+
{
|
|
1789
|
+
kind: "explain",
|
|
1790
|
+
instruction: "Explain how the direction changed the position and why the trail list kept only recent squares.",
|
|
1791
|
+
artifactIds: []
|
|
1792
|
+
},
|
|
1793
|
+
{
|
|
1794
|
+
kind: "reward",
|
|
1795
|
+
instruction: "Collect the evidence-bound badge when the score and private-runtime safety check pass.",
|
|
1796
|
+
artifactIds: []
|
|
1797
|
+
}
|
|
1798
|
+
],
|
|
1799
|
+
readinessChecks: [
|
|
1800
|
+
{
|
|
1801
|
+
id: "pixel-trail-challenge-m1-find-direction",
|
|
1802
|
+
prompt: "Point to the Python call that chooses the pixel's next direction.",
|
|
1803
|
+
scored: false
|
|
1804
|
+
}
|
|
1805
|
+
],
|
|
1806
|
+
artifacts: [
|
|
1807
|
+
{
|
|
1808
|
+
id: "pixel-trail-challenge-m1-code",
|
|
1809
|
+
kind: "starter-code",
|
|
1810
|
+
audience: "learner",
|
|
1811
|
+
solutionBearing: false
|
|
1812
|
+
},
|
|
1813
|
+
{
|
|
1814
|
+
id: "pixel-trail-challenge-m1-art",
|
|
1815
|
+
kind: "starter-assets",
|
|
1816
|
+
audience: "learner",
|
|
1817
|
+
solutionBearing: false
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
id: "pixel-trail-challenge-m1-printable",
|
|
1821
|
+
kind: "printable",
|
|
1822
|
+
audience: "learner",
|
|
1823
|
+
solutionBearing: false
|
|
1824
|
+
}
|
|
1825
|
+
],
|
|
1826
|
+
goals: [
|
|
1827
|
+
{
|
|
1828
|
+
id: "pixel-trail-challenge-m1-starts",
|
|
1829
|
+
statement: "The Python settings are valid and the private grid preview starts.",
|
|
1830
|
+
visibility: "visible",
|
|
1831
|
+
criterionIds: ["pixel-trail-challenge-build"],
|
|
1832
|
+
completionRequired: true,
|
|
1833
|
+
aiRequired: false
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
id: "pixel-trail-challenge-m1-safe-trail",
|
|
1837
|
+
statement: "The pixel moves in the chosen direction, keeps a bounded trail list and reaches the energy orb.",
|
|
1838
|
+
visibility: "visible",
|
|
1839
|
+
criterionIds: [
|
|
1840
|
+
"pixel-trail-challenge-goal-one",
|
|
1841
|
+
"pixel-trail-challenge-goal-two"
|
|
1842
|
+
],
|
|
1843
|
+
completionRequired: true,
|
|
1844
|
+
aiRequired: false
|
|
1845
|
+
},
|
|
1846
|
+
{
|
|
1847
|
+
id: "pixel-trail-challenge-m1-private-runtime",
|
|
1848
|
+
statement: "The program stays inside the private Python worker and host-provided grid API.",
|
|
1849
|
+
visibility: "visible",
|
|
1850
|
+
criterionIds: ["pixel-trail-challenge-safety"],
|
|
1851
|
+
completionRequired: true,
|
|
1852
|
+
aiRequired: false
|
|
1853
|
+
}
|
|
1854
|
+
],
|
|
1855
|
+
interactions: [
|
|
1856
|
+
{
|
|
1857
|
+
id: "pixel-trail-challenge-m1-run-control",
|
|
1858
|
+
description: "Start the private Python grid simulation.",
|
|
1859
|
+
primaryMode: "pointer",
|
|
1860
|
+
alternativeIds: ["pixel-trail-challenge-m1-keyboard-run"]
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
id: "pixel-trail-challenge-m1-direction-control",
|
|
1864
|
+
description: "Change the active movement direction with labelled arrow controls or arrow keys.",
|
|
1865
|
+
primaryMode: "keyboard",
|
|
1866
|
+
alternativeIds: []
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
id: "pixel-trail-challenge-m1-trail-motion",
|
|
1870
|
+
description: "Observe the pixel, recent trail squares and energy orb on the grid.",
|
|
1871
|
+
primaryMode: "motion",
|
|
1872
|
+
alternativeIds: ["pixel-trail-challenge-m1-telemetry"]
|
|
1873
|
+
}
|
|
1874
|
+
],
|
|
1875
|
+
accessibilityAlternatives: [
|
|
1876
|
+
{
|
|
1877
|
+
id: "pixel-trail-challenge-m1-keyboard-run",
|
|
1878
|
+
modes: ["keyboard"],
|
|
1879
|
+
equivalentOutcome: true,
|
|
1880
|
+
description: "Press Enter or Space on the play-icon Run button to start the same preview."
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
id: "pixel-trail-challenge-m1-telemetry",
|
|
1884
|
+
modes: ["text", "shape", "reduced-motion"],
|
|
1885
|
+
equivalentOutcome: true,
|
|
1886
|
+
description: "Read row, column, direction, trail length and orb status without animation or colour dependence."
|
|
1887
|
+
}
|
|
1888
|
+
],
|
|
1889
|
+
evidenceRequirements: [
|
|
1890
|
+
{
|
|
1891
|
+
id: "pixel-trail-challenge-m1-assessment",
|
|
1892
|
+
goalIds: [
|
|
1893
|
+
"pixel-trail-challenge-m1-starts",
|
|
1894
|
+
"pixel-trail-challenge-m1-safe-trail",
|
|
1895
|
+
"pixel-trail-challenge-m1-private-runtime"
|
|
1896
|
+
],
|
|
1897
|
+
kind: "assessment-result",
|
|
1898
|
+
retention: "entitlement",
|
|
1899
|
+
containsPersonalData: false
|
|
1900
|
+
},
|
|
1901
|
+
{
|
|
1902
|
+
id: "pixel-trail-challenge-m1-explanation",
|
|
1903
|
+
goalIds: ["pixel-trail-challenge-m1-safe-trail"],
|
|
1904
|
+
kind: "learner-explanation",
|
|
1905
|
+
retention: "attempt",
|
|
1906
|
+
containsPersonalData: false
|
|
1907
|
+
}
|
|
1908
|
+
],
|
|
1909
|
+
sideAdventures: [
|
|
1910
|
+
{
|
|
1911
|
+
id: "pixel-trail-challenge-m1-remix",
|
|
1912
|
+
prompt: "Invent an original energy-orb symbol and describe a new safe grid rule for collecting it.",
|
|
1913
|
+
completionRequired: false
|
|
1914
|
+
}
|
|
1915
|
+
],
|
|
1916
|
+
rewardBindings: [
|
|
1917
|
+
{
|
|
1918
|
+
id: "pixel-trail-challenge-m1-badge",
|
|
1919
|
+
badgeId: "pixel-trail-challenge-mission-complete",
|
|
1920
|
+
goalIds: [
|
|
1921
|
+
"pixel-trail-challenge-m1-starts",
|
|
1922
|
+
"pixel-trail-challenge-m1-safe-trail",
|
|
1923
|
+
"pixel-trail-challenge-m1-private-runtime"
|
|
1924
|
+
],
|
|
1925
|
+
deterministic: true,
|
|
1926
|
+
random: false,
|
|
1927
|
+
tokenConvertible: false
|
|
1928
|
+
}
|
|
1929
|
+
]
|
|
1930
|
+
},
|
|
1931
|
+
facilitator: {
|
|
1932
|
+
artifacts: [
|
|
1933
|
+
{
|
|
1934
|
+
id: "pixel-trail-challenge-m1-answer-key",
|
|
1935
|
+
kind: "answer-key",
|
|
1936
|
+
audience: "facilitator",
|
|
1937
|
+
solutionBearing: true
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
id: "pixel-trail-challenge-m1-protected-tests",
|
|
1941
|
+
kind: "protected-test",
|
|
1942
|
+
audience: "facilitator",
|
|
1943
|
+
solutionBearing: true
|
|
1944
|
+
}
|
|
1945
|
+
],
|
|
1946
|
+
protectedGoals: [
|
|
1947
|
+
{
|
|
1948
|
+
id: "pixel-trail-challenge-m1-protected-resilience",
|
|
1949
|
+
statement: "The worker rejects invalid directions, clamps trail capacity and terminates bounded grid simulations before list or collision abuse.",
|
|
1950
|
+
visibility: "protected",
|
|
1951
|
+
criterionIds: [
|
|
1952
|
+
"pixel-trail-challenge-edge-one",
|
|
1953
|
+
"pixel-trail-challenge-edge-two"
|
|
1954
|
+
],
|
|
1955
|
+
completionRequired: false,
|
|
1956
|
+
aiRequired: false
|
|
1957
|
+
}
|
|
1958
|
+
],
|
|
1959
|
+
prompts: [
|
|
1960
|
+
"Ask the learner to predict the next row and column before suggesting a Python edit.",
|
|
1961
|
+
"Use the function reference and visible telemetry; never reveal protected coordinates, numeric targets or expected source fragments."
|
|
1962
|
+
]
|
|
1963
|
+
}
|
|
1964
|
+
};
|
|
1965
|
+
var STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1 = {
|
|
1966
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1967
|
+
moduleId: "junior-coder.star-defender-squadron",
|
|
1968
|
+
moduleVersion: "1.1.0",
|
|
1969
|
+
missionId: "star-defender-squadron-mission-1",
|
|
1970
|
+
learner: {
|
|
1971
|
+
estimatedMinutes: 20,
|
|
1972
|
+
stages: [
|
|
1973
|
+
{
|
|
1974
|
+
kind: "learn",
|
|
1975
|
+
instruction: "Read what createSquadron(), setRescueWave(), setShieldHealth() and launchRescueBeam() do in the private JavaScript preview.",
|
|
1976
|
+
artifactIds: ["star-defender-squadron-m1-art"]
|
|
1977
|
+
},
|
|
1978
|
+
{
|
|
1979
|
+
kind: "predict",
|
|
1980
|
+
instruction: "Predict where the squadron and rescue beam will travel, and which health value will change after the wave.",
|
|
1981
|
+
artifactIds: []
|
|
1982
|
+
},
|
|
1983
|
+
{
|
|
1984
|
+
kind: "build",
|
|
1985
|
+
instruction: "Adjust the four documented JavaScript calls so the original squadron launches a safe rescue wave.",
|
|
1986
|
+
artifactIds: ["star-defender-squadron-m1-code"]
|
|
1987
|
+
},
|
|
1988
|
+
{
|
|
1989
|
+
kind: "run",
|
|
1990
|
+
instruction: "Use the Run action button to start the private Star Defender preview.",
|
|
1991
|
+
artifactIds: ["star-defender-squadron-m1-code"]
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
kind: "assess",
|
|
1995
|
+
instruction: "Run the visible and protected deterministic squadron checks.",
|
|
1996
|
+
artifactIds: []
|
|
1997
|
+
},
|
|
1998
|
+
{
|
|
1999
|
+
kind: "inspect",
|
|
2000
|
+
instruction: "Compare the highlighted JavaScript line with the first mission goal that did not pass.",
|
|
2001
|
+
artifactIds: []
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
kind: "fix",
|
|
2005
|
+
instruction: "Change one squadron, wave, shield or beam setting, then rerun and inspect the entity and health telemetry.",
|
|
2006
|
+
artifactIds: ["star-defender-squadron-m1-code"]
|
|
2007
|
+
},
|
|
2008
|
+
{
|
|
2009
|
+
kind: "explain",
|
|
2010
|
+
instruction: "Explain how the wave pattern moved the entities and how shields protected the rescue mission.",
|
|
2011
|
+
artifactIds: []
|
|
2012
|
+
},
|
|
2013
|
+
{
|
|
2014
|
+
kind: "reward",
|
|
2015
|
+
instruction: "Collect the evidence-bound badge when the score and private-runtime safety check pass.",
|
|
2016
|
+
artifactIds: []
|
|
2017
|
+
}
|
|
2018
|
+
],
|
|
2019
|
+
readinessChecks: [
|
|
2020
|
+
{
|
|
2021
|
+
id: "star-defender-squadron-m1-find-wave",
|
|
2022
|
+
prompt: "Point to the JavaScript call that chooses the rescue-wave pattern.",
|
|
2023
|
+
scored: false
|
|
2024
|
+
}
|
|
2025
|
+
],
|
|
2026
|
+
artifacts: [
|
|
2027
|
+
{
|
|
2028
|
+
id: "star-defender-squadron-m1-code",
|
|
2029
|
+
kind: "starter-code",
|
|
2030
|
+
audience: "learner",
|
|
2031
|
+
solutionBearing: false
|
|
2032
|
+
},
|
|
2033
|
+
{
|
|
2034
|
+
id: "star-defender-squadron-m1-art",
|
|
2035
|
+
kind: "starter-assets",
|
|
2036
|
+
audience: "learner",
|
|
2037
|
+
solutionBearing: false
|
|
2038
|
+
},
|
|
2039
|
+
{
|
|
2040
|
+
id: "star-defender-squadron-m1-printable",
|
|
2041
|
+
kind: "printable",
|
|
2042
|
+
audience: "learner",
|
|
2043
|
+
solutionBearing: false
|
|
2044
|
+
}
|
|
2045
|
+
],
|
|
2046
|
+
goals: [
|
|
2047
|
+
{
|
|
2048
|
+
id: "star-defender-squadron-m1-starts",
|
|
2049
|
+
statement: "The JavaScript settings are valid and the private squadron preview starts.",
|
|
2050
|
+
visibility: "visible",
|
|
2051
|
+
criterionIds: ["star-defender-squadron-build"],
|
|
2052
|
+
completionRequired: true,
|
|
2053
|
+
aiRequired: false
|
|
2054
|
+
},
|
|
2055
|
+
{
|
|
2056
|
+
id: "star-defender-squadron-m1-rescue-wave",
|
|
2057
|
+
statement: "The original squadron follows the chosen pattern, keeps safe shield health and launches a rescue beam.",
|
|
2058
|
+
visibility: "visible",
|
|
2059
|
+
criterionIds: [
|
|
2060
|
+
"star-defender-squadron-goal-one",
|
|
2061
|
+
"star-defender-squadron-goal-two"
|
|
2062
|
+
],
|
|
2063
|
+
completionRequired: true,
|
|
2064
|
+
aiRequired: false
|
|
2065
|
+
},
|
|
2066
|
+
{
|
|
2067
|
+
id: "star-defender-squadron-m1-private-runtime",
|
|
2068
|
+
statement: "The program stays inside the private JavaScript worker and host-provided space-rescue API.",
|
|
2069
|
+
visibility: "visible",
|
|
2070
|
+
criterionIds: ["star-defender-squadron-safety"],
|
|
2071
|
+
completionRequired: true,
|
|
2072
|
+
aiRequired: false
|
|
2073
|
+
}
|
|
2074
|
+
],
|
|
2075
|
+
interactions: [
|
|
2076
|
+
{
|
|
2077
|
+
id: "star-defender-squadron-m1-run-control",
|
|
2078
|
+
description: "Start the private JavaScript squadron simulation.",
|
|
2079
|
+
primaryMode: "pointer",
|
|
2080
|
+
alternativeIds: ["star-defender-squadron-m1-keyboard-run"]
|
|
2081
|
+
},
|
|
2082
|
+
{
|
|
2083
|
+
id: "star-defender-squadron-m1-code-control",
|
|
2084
|
+
description: "Edit the documented squadron, wave, shield and beam calls.",
|
|
2085
|
+
primaryMode: "keyboard",
|
|
2086
|
+
alternativeIds: []
|
|
2087
|
+
},
|
|
2088
|
+
{
|
|
2089
|
+
id: "star-defender-squadron-m1-wave-motion",
|
|
2090
|
+
description: "Observe squadron entities, wave paths, shields and the rescue beam.",
|
|
2091
|
+
primaryMode: "motion",
|
|
2092
|
+
alternativeIds: ["star-defender-squadron-m1-telemetry"]
|
|
2093
|
+
}
|
|
2094
|
+
],
|
|
2095
|
+
accessibilityAlternatives: [
|
|
2096
|
+
{
|
|
2097
|
+
id: "star-defender-squadron-m1-keyboard-run",
|
|
2098
|
+
modes: ["keyboard"],
|
|
2099
|
+
equivalentOutcome: true,
|
|
2100
|
+
description: "Press Enter or Space on the play-icon Run button to start the same preview."
|
|
2101
|
+
},
|
|
2102
|
+
{
|
|
2103
|
+
id: "star-defender-squadron-m1-telemetry",
|
|
2104
|
+
modes: ["text", "shape", "reduced-motion"],
|
|
2105
|
+
equivalentOutcome: true,
|
|
2106
|
+
description: "Read entity count, pattern, shield health, beam state and rescue result without animation or colour dependence."
|
|
2107
|
+
}
|
|
2108
|
+
],
|
|
2109
|
+
evidenceRequirements: [
|
|
2110
|
+
{
|
|
2111
|
+
id: "star-defender-squadron-m1-assessment",
|
|
2112
|
+
goalIds: [
|
|
2113
|
+
"star-defender-squadron-m1-starts",
|
|
2114
|
+
"star-defender-squadron-m1-rescue-wave",
|
|
2115
|
+
"star-defender-squadron-m1-private-runtime"
|
|
2116
|
+
],
|
|
2117
|
+
kind: "assessment-result",
|
|
2118
|
+
retention: "entitlement",
|
|
2119
|
+
containsPersonalData: false
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
id: "star-defender-squadron-m1-explanation",
|
|
2123
|
+
goalIds: ["star-defender-squadron-m1-rescue-wave"],
|
|
2124
|
+
kind: "learner-explanation",
|
|
2125
|
+
retention: "attempt",
|
|
2126
|
+
containsPersonalData: false
|
|
2127
|
+
}
|
|
2128
|
+
],
|
|
2129
|
+
sideAdventures: [
|
|
2130
|
+
{
|
|
2131
|
+
id: "star-defender-squadron-m1-remix",
|
|
2132
|
+
prompt: "Invent an original rescue-squadron emblem and describe a new safe wave pattern for a later level.",
|
|
2133
|
+
completionRequired: false
|
|
2134
|
+
}
|
|
2135
|
+
],
|
|
2136
|
+
rewardBindings: [
|
|
2137
|
+
{
|
|
2138
|
+
id: "star-defender-squadron-m1-badge",
|
|
2139
|
+
badgeId: "star-defender-squadron-mission-complete",
|
|
2140
|
+
goalIds: [
|
|
2141
|
+
"star-defender-squadron-m1-starts",
|
|
2142
|
+
"star-defender-squadron-m1-rescue-wave",
|
|
2143
|
+
"star-defender-squadron-m1-private-runtime"
|
|
2144
|
+
],
|
|
2145
|
+
deterministic: true,
|
|
2146
|
+
random: false,
|
|
2147
|
+
tokenConvertible: false
|
|
2148
|
+
}
|
|
2149
|
+
]
|
|
2150
|
+
},
|
|
2151
|
+
facilitator: {
|
|
2152
|
+
artifacts: [
|
|
2153
|
+
{
|
|
2154
|
+
id: "star-defender-squadron-m1-answer-key",
|
|
2155
|
+
kind: "answer-key",
|
|
2156
|
+
audience: "facilitator",
|
|
2157
|
+
solutionBearing: true
|
|
2158
|
+
},
|
|
2159
|
+
{
|
|
2160
|
+
id: "star-defender-squadron-m1-protected-tests",
|
|
2161
|
+
kind: "protected-test",
|
|
2162
|
+
audience: "facilitator",
|
|
2163
|
+
solutionBearing: true
|
|
2164
|
+
}
|
|
2165
|
+
],
|
|
2166
|
+
protectedGoals: [
|
|
2167
|
+
{
|
|
2168
|
+
id: "star-defender-squadron-m1-protected-resilience",
|
|
2169
|
+
statement: "The worker rejects invalid entity, pattern, health and projectile settings and terminates bounded wave simulations.",
|
|
2170
|
+
visibility: "protected",
|
|
2171
|
+
criterionIds: [
|
|
2172
|
+
"star-defender-squadron-edge-one",
|
|
2173
|
+
"star-defender-squadron-edge-two"
|
|
2174
|
+
],
|
|
2175
|
+
completionRequired: false,
|
|
2176
|
+
aiRequired: false
|
|
2177
|
+
}
|
|
2178
|
+
],
|
|
2179
|
+
prompts: [
|
|
2180
|
+
"Ask the learner to predict the squadron path and shield change before suggesting a JavaScript edit.",
|
|
2181
|
+
"Use the function reference and visible telemetry; never reveal protected numeric targets, pattern answers or expected source fragments."
|
|
2182
|
+
]
|
|
2183
|
+
}
|
|
2184
|
+
};
|
|
1745
2185
|
var RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1 = {
|
|
1746
2186
|
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1747
2187
|
moduleId: "junior-coder.rescue-crew-commander",
|
|
@@ -2544,10 +2984,12 @@ export {
|
|
|
2544
2984
|
METEOR_SHIELD_MISSION_ONE_AUTHORING_V1,
|
|
2545
2985
|
MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
2546
2986
|
PADDLE_PULSE_MISSION_ONE_AUTHORING_V1,
|
|
2987
|
+
PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1,
|
|
2547
2988
|
RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1,
|
|
2548
2989
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
2549
2990
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
2550
2991
|
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
2992
|
+
STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1,
|
|
2551
2993
|
assertValidLearningPath,
|
|
2552
2994
|
assertValidMissionAuthoringBundle,
|
|
2553
2995
|
calculateAssessment,
|