@plasius/learning 0.2.17 → 0.2.19
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 +29 -1
- package/dist/index.cjs +566 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +564 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -512,6 +512,10 @@ declare const VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1: MissionAuthoringBund
|
|
|
512
512
|
declare const VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
513
513
|
/** Goal-led Vibe prototype mission; all idea choices and changes are bounded. */
|
|
514
514
|
declare const VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
515
|
+
/** Accessible fictional care dashboard with bounded component and timer state. */
|
|
516
|
+
declare const CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
517
|
+
/** Safe responsive mission-control dashboard backed only by a serial simulator. */
|
|
518
|
+
declare const ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
515
519
|
/** Accessible fictional planner mission with a private bounded persistence simulator. */
|
|
516
520
|
declare const ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
517
521
|
declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
@@ -521,4 +525,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
521
525
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
522
526
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
523
527
|
|
|
524
|
-
export { ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1, type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, BEACON_BOT_MISSION_ONE_AUTHORING_V1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, DANCE_ROVER_MISSION_ONE_AUTHORING_V1, 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 MissionBoundedSuggestionV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionFunctionParameterV1, type MissionFunctionReferenceV1, type MissionHardwareAcquisitionScopeV1, type MissionHardwareComponentDisclosureV1, type MissionHardwareDisclosureV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionPhysicalSafeguardsV1, 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, OBSTACLE_EXPLORER_MISSION_ONE_AUTHORING_V1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RAINBOW_RESCUE_ROVER_MISSION_ONE_AUTHORING_V1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SERVO_CREATURE_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1, VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
|
528
|
+
export { ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1, type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, BEACON_BOT_MISSION_ONE_AUTHORING_V1, type BadgeDefinitionV1, CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, DANCE_ROVER_MISSION_ONE_AUTHORING_V1, 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 MissionBoundedSuggestionV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionFunctionParameterV1, type MissionFunctionReferenceV1, type MissionHardwareAcquisitionScopeV1, type MissionHardwareComponentDisclosureV1, type MissionHardwareDisclosureV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionPhysicalSafeguardsV1, 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, OBSTACLE_EXPLORER_MISSION_ONE_AUTHORING_V1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RAINBOW_RESCUE_ROVER_MISSION_ONE_AUTHORING_V1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1, SERVO_CREATURE_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1, VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
package/dist/index.d.ts
CHANGED
|
@@ -512,6 +512,10 @@ declare const VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1: MissionAuthoringBund
|
|
|
512
512
|
declare const VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
513
513
|
/** Goal-led Vibe prototype mission; all idea choices and changes are bounded. */
|
|
514
514
|
declare const VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
515
|
+
/** Accessible fictional care dashboard with bounded component and timer state. */
|
|
516
|
+
declare const CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
517
|
+
/** Safe responsive mission-control dashboard backed only by a serial simulator. */
|
|
518
|
+
declare const ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
515
519
|
/** Accessible fictional planner mission with a private bounded persistence simulator. */
|
|
516
520
|
declare const ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
517
521
|
declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
@@ -521,4 +525,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
521
525
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
522
526
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
523
527
|
|
|
524
|
-
export { ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1, type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, BEACON_BOT_MISSION_ONE_AUTHORING_V1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, DANCE_ROVER_MISSION_ONE_AUTHORING_V1, 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 MissionBoundedSuggestionV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionFunctionParameterV1, type MissionFunctionReferenceV1, type MissionHardwareAcquisitionScopeV1, type MissionHardwareComponentDisclosureV1, type MissionHardwareDisclosureV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionPhysicalSafeguardsV1, 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, OBSTACLE_EXPLORER_MISSION_ONE_AUTHORING_V1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RAINBOW_RESCUE_ROVER_MISSION_ONE_AUTHORING_V1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SERVO_CREATURE_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1, VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
|
528
|
+
export { ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1, type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, BEACON_BOT_MISSION_ONE_AUTHORING_V1, type BadgeDefinitionV1, CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, DANCE_ROVER_MISSION_ONE_AUTHORING_V1, 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 MissionBoundedSuggestionV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionFunctionParameterV1, type MissionFunctionReferenceV1, type MissionHardwareAcquisitionScopeV1, type MissionHardwareComponentDisclosureV1, type MissionHardwareDisclosureV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionPhysicalSafeguardsV1, 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, OBSTACLE_EXPLORER_MISSION_ONE_AUTHORING_V1, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, PIXEL_TRAIL_CHALLENGE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RAINBOW_RESCUE_ROVER_MISSION_ONE_AUTHORING_V1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1, SERVO_CREATURE_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1, VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
package/dist/index.js
CHANGED
|
@@ -5434,6 +5434,568 @@ var VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1 = {
|
|
|
5434
5434
|
]
|
|
5435
5435
|
}
|
|
5436
5436
|
};
|
|
5437
|
+
var CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1 = {
|
|
5438
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
5439
|
+
moduleId: "junior-coder.creature-care-dashboard",
|
|
5440
|
+
moduleVersion: "1.1.0",
|
|
5441
|
+
missionId: "creature-care-dashboard-mission-1",
|
|
5442
|
+
learner: {
|
|
5443
|
+
estimatedMinutes: 20,
|
|
5444
|
+
stages: [
|
|
5445
|
+
{
|
|
5446
|
+
kind: "learn",
|
|
5447
|
+
instruction: "Read how components, events, status displays, timers, responsive layout and reduced motion build an accessible fictional creature dashboard.",
|
|
5448
|
+
artifactIds: ["creature-care-dashboard-m1-guide"]
|
|
5449
|
+
},
|
|
5450
|
+
{
|
|
5451
|
+
kind: "predict",
|
|
5452
|
+
instruction: "Predict which parts of the status card should update and which movement should stop when reduced motion is enabled.",
|
|
5453
|
+
artifactIds: ["creature-care-dashboard-m1-status-cards"]
|
|
5454
|
+
},
|
|
5455
|
+
{
|
|
5456
|
+
kind: "build",
|
|
5457
|
+
instruction: "Change only the supplied creature, care status, timer, layout and reduced-motion settings.",
|
|
5458
|
+
artifactIds: ["creature-care-dashboard-m1-code"]
|
|
5459
|
+
},
|
|
5460
|
+
{
|
|
5461
|
+
kind: "run",
|
|
5462
|
+
instruction: "Use the action-icon Run button to update the private dashboard preview and its equivalent text status.",
|
|
5463
|
+
artifactIds: ["creature-care-dashboard-m1-code"]
|
|
5464
|
+
},
|
|
5465
|
+
{
|
|
5466
|
+
kind: "assess",
|
|
5467
|
+
instruction: "Run deterministic component, event, timer, status, responsive-layout and accessibility checks.",
|
|
5468
|
+
artifactIds: []
|
|
5469
|
+
},
|
|
5470
|
+
{
|
|
5471
|
+
kind: "inspect",
|
|
5472
|
+
instruction: "Compare the observed dashboard state with the selected status card and highlighted reduced-motion setting.",
|
|
5473
|
+
artifactIds: ["creature-care-dashboard-m1-code"]
|
|
5474
|
+
},
|
|
5475
|
+
{
|
|
5476
|
+
kind: "fix",
|
|
5477
|
+
instruction: "Review and accept or reject the exact reduced-motion change yourself, then rerun every check.",
|
|
5478
|
+
artifactIds: ["creature-care-dashboard-m1-code"]
|
|
5479
|
+
},
|
|
5480
|
+
{
|
|
5481
|
+
kind: "explain",
|
|
5482
|
+
instruction: "Explain how events update component state, how the timer stays bounded and why reduced motion matters.",
|
|
5483
|
+
artifactIds: []
|
|
5484
|
+
},
|
|
5485
|
+
{
|
|
5486
|
+
kind: "reward",
|
|
5487
|
+
instruction: "Collect the evidence-bound care badge after the score reaches 80 and every privacy and accessibility check passes.",
|
|
5488
|
+
artifactIds: []
|
|
5489
|
+
}
|
|
5490
|
+
],
|
|
5491
|
+
readinessChecks: [
|
|
5492
|
+
{
|
|
5493
|
+
id: "creature-care-dashboard-m1-status-check",
|
|
5494
|
+
prompt: "Find the creature card, care status, timer and text summary that must all describe the same private state.",
|
|
5495
|
+
scored: false
|
|
5496
|
+
}
|
|
5497
|
+
],
|
|
5498
|
+
artifacts: [
|
|
5499
|
+
{
|
|
5500
|
+
id: "creature-care-dashboard-m1-code",
|
|
5501
|
+
kind: "starter-code",
|
|
5502
|
+
audience: "learner",
|
|
5503
|
+
solutionBearing: false
|
|
5504
|
+
},
|
|
5505
|
+
{
|
|
5506
|
+
id: "creature-care-dashboard-m1-guide",
|
|
5507
|
+
kind: "starter-assets",
|
|
5508
|
+
audience: "learner",
|
|
5509
|
+
solutionBearing: false
|
|
5510
|
+
},
|
|
5511
|
+
{
|
|
5512
|
+
id: "creature-care-dashboard-m1-status-cards",
|
|
5513
|
+
kind: "sample-data",
|
|
5514
|
+
audience: "learner",
|
|
5515
|
+
solutionBearing: false
|
|
5516
|
+
}
|
|
5517
|
+
],
|
|
5518
|
+
goals: [
|
|
5519
|
+
{
|
|
5520
|
+
id: "creature-care-dashboard-m1-starts",
|
|
5521
|
+
statement: "The responsive creature-card component, labelled status display and bounded timer state are valid and start.",
|
|
5522
|
+
visibility: "visible",
|
|
5523
|
+
criterionIds: ["creature-care-dashboard-build"],
|
|
5524
|
+
completionRequired: true,
|
|
5525
|
+
aiRequired: false
|
|
5526
|
+
},
|
|
5527
|
+
{
|
|
5528
|
+
id: "creature-care-dashboard-m1-behaviour",
|
|
5529
|
+
statement: "A supplied event updates the fictional creature status and timer while the responsive dashboard keeps one consistent state.",
|
|
5530
|
+
visibility: "visible",
|
|
5531
|
+
criterionIds: [
|
|
5532
|
+
"creature-care-dashboard-goal-one",
|
|
5533
|
+
"creature-care-dashboard-goal-two",
|
|
5534
|
+
"creature-care-dashboard-goal-three"
|
|
5535
|
+
],
|
|
5536
|
+
completionRequired: true,
|
|
5537
|
+
aiRequired: false
|
|
5538
|
+
},
|
|
5539
|
+
{
|
|
5540
|
+
id: "creature-care-dashboard-m1-accessible-private",
|
|
5541
|
+
statement: "The dashboard enables reduced motion, keeps an equivalent text status and uses no network, personal data or real schedule.",
|
|
5542
|
+
visibility: "visible",
|
|
5543
|
+
criterionIds: ["creature-care-dashboard-safety"],
|
|
5544
|
+
completionRequired: true,
|
|
5545
|
+
aiRequired: false
|
|
5546
|
+
}
|
|
5547
|
+
],
|
|
5548
|
+
interactions: [
|
|
5549
|
+
{
|
|
5550
|
+
id: "creature-care-dashboard-m1-editor",
|
|
5551
|
+
description: "Edit the five documented dashboard calls using keyboard or pointer controls.",
|
|
5552
|
+
primaryMode: "keyboard",
|
|
5553
|
+
alternativeIds: []
|
|
5554
|
+
},
|
|
5555
|
+
{
|
|
5556
|
+
id: "creature-care-dashboard-m1-run",
|
|
5557
|
+
description: "Activate the labelled action-icon Run control.",
|
|
5558
|
+
primaryMode: "pointer",
|
|
5559
|
+
alternativeIds: ["creature-care-dashboard-m1-keyboard-run"]
|
|
5560
|
+
},
|
|
5561
|
+
{
|
|
5562
|
+
id: "creature-care-dashboard-m1-review",
|
|
5563
|
+
description: "Review and accept or reject the exact labelled diff.",
|
|
5564
|
+
primaryMode: "keyboard",
|
|
5565
|
+
alternativeIds: []
|
|
5566
|
+
}
|
|
5567
|
+
],
|
|
5568
|
+
accessibilityAlternatives: [
|
|
5569
|
+
{
|
|
5570
|
+
id: "creature-care-dashboard-m1-keyboard-run",
|
|
5571
|
+
description: "Focus the Run action button and press Enter or Space to produce the same dashboard and text telemetry.",
|
|
5572
|
+
modes: ["keyboard"],
|
|
5573
|
+
equivalentOutcome: true
|
|
5574
|
+
}
|
|
5575
|
+
],
|
|
5576
|
+
evidenceRequirements: [
|
|
5577
|
+
{
|
|
5578
|
+
id: "creature-care-dashboard-m1-assessment",
|
|
5579
|
+
goalIds: [
|
|
5580
|
+
"creature-care-dashboard-m1-starts",
|
|
5581
|
+
"creature-care-dashboard-m1-behaviour",
|
|
5582
|
+
"creature-care-dashboard-m1-accessible-private"
|
|
5583
|
+
],
|
|
5584
|
+
kind: "assessment-result",
|
|
5585
|
+
retention: "entitlement",
|
|
5586
|
+
containsPersonalData: false
|
|
5587
|
+
},
|
|
5588
|
+
{
|
|
5589
|
+
id: "creature-care-dashboard-m1-explanation",
|
|
5590
|
+
goalIds: ["creature-care-dashboard-m1-accessible-private"],
|
|
5591
|
+
kind: "learner-explanation",
|
|
5592
|
+
retention: "attempt",
|
|
5593
|
+
containsPersonalData: false
|
|
5594
|
+
}
|
|
5595
|
+
],
|
|
5596
|
+
sideAdventures: [
|
|
5597
|
+
{
|
|
5598
|
+
id: "creature-care-dashboard-m1-remix",
|
|
5599
|
+
prompt: "Choose another supplied creature, status and responsive layout while preserving the timer and reduced-motion evidence.",
|
|
5600
|
+
completionRequired: false
|
|
5601
|
+
}
|
|
5602
|
+
],
|
|
5603
|
+
rewardBindings: [
|
|
5604
|
+
{
|
|
5605
|
+
id: "creature-care-dashboard-m1-badge",
|
|
5606
|
+
badgeId: "creature-care-dashboard-mission-complete",
|
|
5607
|
+
goalIds: [
|
|
5608
|
+
"creature-care-dashboard-m1-starts",
|
|
5609
|
+
"creature-care-dashboard-m1-behaviour",
|
|
5610
|
+
"creature-care-dashboard-m1-accessible-private"
|
|
5611
|
+
],
|
|
5612
|
+
deterministic: true,
|
|
5613
|
+
random: false,
|
|
5614
|
+
tokenConvertible: false
|
|
5615
|
+
}
|
|
5616
|
+
],
|
|
5617
|
+
functionReference: [
|
|
5618
|
+
{
|
|
5619
|
+
id: "creature-care-dashboard-function-creature",
|
|
5620
|
+
signature: "chooseCreature(creature)",
|
|
5621
|
+
summary: "Chooses one supplied fictional creature for the main component card.",
|
|
5622
|
+
parameters: [{ name: "creature", type: "text", description: "Use Moon Moth, Cloud Cat or Pebble Dragon." }],
|
|
5623
|
+
effect: "Updates the creature card heading, illustration label and equivalent text status.",
|
|
5624
|
+
example: 'chooseCreature("Moon Moth");'
|
|
5625
|
+
},
|
|
5626
|
+
{
|
|
5627
|
+
id: "creature-care-dashboard-function-status",
|
|
5628
|
+
signature: "setCareStatus(status)",
|
|
5629
|
+
summary: "Chooses one supplied care state for the fictional creature.",
|
|
5630
|
+
parameters: [{ name: "status", type: "text", description: "Use Resting, Ready to play or Snack time." }],
|
|
5631
|
+
effect: "Updates the visible component status and accessible live-status text.",
|
|
5632
|
+
example: 'setCareStatus("Ready to play");'
|
|
5633
|
+
},
|
|
5634
|
+
{
|
|
5635
|
+
id: "creature-care-dashboard-function-timer",
|
|
5636
|
+
signature: "setCareTimer(seconds)",
|
|
5637
|
+
summary: "Sets a short simulated care timer from a supplied safe value.",
|
|
5638
|
+
parameters: [{ name: "seconds", type: "number", description: "Use 5, 10 or 15 simulated seconds." }],
|
|
5639
|
+
effect: "Updates bounded timer state and text telemetry without scheduling background work.",
|
|
5640
|
+
example: "setCareTimer(10);"
|
|
5641
|
+
},
|
|
5642
|
+
{
|
|
5643
|
+
id: "creature-care-dashboard-function-layout",
|
|
5644
|
+
signature: "setDashboardLayout(layout)",
|
|
5645
|
+
summary: "Chooses one supplied responsive card arrangement.",
|
|
5646
|
+
parameters: [{ name: "layout", type: "text", description: "Use single, cosy-grid or wide-grid." }],
|
|
5647
|
+
effect: "Changes the simulated preview layout while keeping the same reading and keyboard order.",
|
|
5648
|
+
example: 'setDashboardLayout("cosy-grid");'
|
|
5649
|
+
},
|
|
5650
|
+
{
|
|
5651
|
+
id: "creature-care-dashboard-function-motion",
|
|
5652
|
+
signature: "setReducedMotion(enabled)",
|
|
5653
|
+
summary: "Turns the reduced-motion presentation on or off.",
|
|
5654
|
+
parameters: [{ name: "enabled", type: "Boolean", description: "Use true to stop decorative movement." }],
|
|
5655
|
+
effect: "Disables decorative preview animation while preserving status, timer and event feedback.",
|
|
5656
|
+
example: "setReducedMotion(true);"
|
|
5657
|
+
}
|
|
5658
|
+
],
|
|
5659
|
+
boundedSuggestion: {
|
|
5660
|
+
id: "creature-care-dashboard-m1-reduced-motion-diff",
|
|
5661
|
+
source: "authored-fallback",
|
|
5662
|
+
intent: "Keep the fictional care dashboard understandable without decorative movement.",
|
|
5663
|
+
constraints: [
|
|
5664
|
+
"Change exactly one documented reduced-motion setting.",
|
|
5665
|
+
"Preserve the supplied creature, status, timer, responsive layout and text telemetry.",
|
|
5666
|
+
"Do not add network, external scripts, trackers, personal data, real schedules or background tasks."
|
|
5667
|
+
],
|
|
5668
|
+
permittedArtifactId: "creature-care-dashboard-m1-code",
|
|
5669
|
+
originalSnippet: "setReducedMotion(false);",
|
|
5670
|
+
replacementSnippet: "setReducedMotion(true);",
|
|
5671
|
+
explanationPrompt: "Which decorative movement stopped, and which event, timer and text evidence stayed available?",
|
|
5672
|
+
aiOptional: false,
|
|
5673
|
+
learnerApprovalRequired: true,
|
|
5674
|
+
alternatives: ["accept", "reject"]
|
|
5675
|
+
}
|
|
5676
|
+
},
|
|
5677
|
+
facilitator: {
|
|
5678
|
+
artifacts: [
|
|
5679
|
+
{
|
|
5680
|
+
id: "creature-care-dashboard-m1-answer-key",
|
|
5681
|
+
kind: "answer-key",
|
|
5682
|
+
audience: "facilitator",
|
|
5683
|
+
solutionBearing: true
|
|
5684
|
+
},
|
|
5685
|
+
{
|
|
5686
|
+
id: "creature-care-dashboard-m1-protected-tests",
|
|
5687
|
+
kind: "protected-test",
|
|
5688
|
+
audience: "facilitator",
|
|
5689
|
+
solutionBearing: true
|
|
5690
|
+
},
|
|
5691
|
+
{
|
|
5692
|
+
id: "creature-care-dashboard-m1-safety-notes",
|
|
5693
|
+
kind: "facilitator-note",
|
|
5694
|
+
audience: "facilitator",
|
|
5695
|
+
solutionBearing: true
|
|
5696
|
+
}
|
|
5697
|
+
],
|
|
5698
|
+
protectedGoals: [
|
|
5699
|
+
{
|
|
5700
|
+
id: "creature-care-dashboard-m1-protected-boundary",
|
|
5701
|
+
statement: "The dashboard rejects arbitrary text, personal data, real schedules, scripts, network calls, tracking, unbounded timers and inaccessible motion-only feedback.",
|
|
5702
|
+
visibility: "protected",
|
|
5703
|
+
criterionIds: [
|
|
5704
|
+
"creature-care-dashboard-edge-one",
|
|
5705
|
+
"creature-care-dashboard-edge-two"
|
|
5706
|
+
],
|
|
5707
|
+
completionRequired: false,
|
|
5708
|
+
aiRequired: false
|
|
5709
|
+
}
|
|
5710
|
+
],
|
|
5711
|
+
prompts: [
|
|
5712
|
+
"Ask the learner to identify the component state, event result, timer and text-equivalent evidence before discussing reduced motion.",
|
|
5713
|
+
"Use only the supplied fictional creature and status cards; redirect names, real schedules and personal details to safe choices.",
|
|
5714
|
+
"Reject must preserve source, and provider failure must never block the deterministic authored path."
|
|
5715
|
+
]
|
|
5716
|
+
}
|
|
5717
|
+
};
|
|
5718
|
+
var ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1 = {
|
|
5719
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
5720
|
+
moduleId: "junior-coder.robot-mission-control",
|
|
5721
|
+
moduleVersion: "1.1.0",
|
|
5722
|
+
missionId: "robot-mission-control-mission-1",
|
|
5723
|
+
learner: {
|
|
5724
|
+
estimatedMinutes: 20,
|
|
5725
|
+
stages: [
|
|
5726
|
+
{
|
|
5727
|
+
kind: "learn",
|
|
5728
|
+
instruction: "Read how commands, a fail-safe state machine, confirmations, telemetry charts and the five documented functions build a simulated mission-control panel.",
|
|
5729
|
+
artifactIds: ["robot-mission-control-m1-guide"]
|
|
5730
|
+
},
|
|
5731
|
+
{
|
|
5732
|
+
kind: "predict",
|
|
5733
|
+
instruction: "Predict whether a planned command may leave STOP when the safety confirmation is disabled.",
|
|
5734
|
+
artifactIds: ["robot-mission-control-m1-command-cards"]
|
|
5735
|
+
},
|
|
5736
|
+
{
|
|
5737
|
+
kind: "build",
|
|
5738
|
+
instruction: "Change only the supplied command, confirmation, telemetry rate, chart mode and serial-simulation settings.",
|
|
5739
|
+
artifactIds: ["robot-mission-control-m1-code"]
|
|
5740
|
+
},
|
|
5741
|
+
{
|
|
5742
|
+
kind: "run",
|
|
5743
|
+
instruction: "Use the action-icon Run button to update the private simulated controls, chart and text telemetry.",
|
|
5744
|
+
artifactIds: ["robot-mission-control-m1-code"]
|
|
5745
|
+
},
|
|
5746
|
+
{
|
|
5747
|
+
kind: "assess",
|
|
5748
|
+
instruction: "Run deterministic command, state-machine, safety-confirmation, telemetry and responsive-layout checks.",
|
|
5749
|
+
artifactIds: []
|
|
5750
|
+
},
|
|
5751
|
+
{
|
|
5752
|
+
kind: "inspect",
|
|
5753
|
+
instruction: "Compare the observed STOP state with the planned command and highlighted safety-confirmation setting.",
|
|
5754
|
+
artifactIds: ["robot-mission-control-m1-code"]
|
|
5755
|
+
},
|
|
5756
|
+
{
|
|
5757
|
+
kind: "fix",
|
|
5758
|
+
instruction: "Review and accept or reject the exact safety-confirmation change yourself, then rerun every check.",
|
|
5759
|
+
artifactIds: ["robot-mission-control-m1-code"]
|
|
5760
|
+
},
|
|
5761
|
+
{
|
|
5762
|
+
kind: "explain",
|
|
5763
|
+
instruction: "Explain how confirmation changes the state machine and why the chart and text telemetry must agree.",
|
|
5764
|
+
artifactIds: []
|
|
5765
|
+
},
|
|
5766
|
+
{
|
|
5767
|
+
kind: "reward",
|
|
5768
|
+
instruction: "Collect the evidence-bound mission-control badge after the score reaches 80 and every mandatory STOP test passes.",
|
|
5769
|
+
artifactIds: []
|
|
5770
|
+
}
|
|
5771
|
+
],
|
|
5772
|
+
readinessChecks: [
|
|
5773
|
+
{
|
|
5774
|
+
id: "robot-mission-control-m1-stop-check",
|
|
5775
|
+
prompt: "Find the planned command, current STOP state, confirmation and text telemetry before running the simulator.",
|
|
5776
|
+
scored: false
|
|
5777
|
+
}
|
|
5778
|
+
],
|
|
5779
|
+
artifacts: [
|
|
5780
|
+
{
|
|
5781
|
+
id: "robot-mission-control-m1-code",
|
|
5782
|
+
kind: "starter-code",
|
|
5783
|
+
audience: "learner",
|
|
5784
|
+
solutionBearing: false
|
|
5785
|
+
},
|
|
5786
|
+
{
|
|
5787
|
+
id: "robot-mission-control-m1-guide",
|
|
5788
|
+
kind: "starter-assets",
|
|
5789
|
+
audience: "learner",
|
|
5790
|
+
solutionBearing: false
|
|
5791
|
+
},
|
|
5792
|
+
{
|
|
5793
|
+
id: "robot-mission-control-m1-command-cards",
|
|
5794
|
+
kind: "sample-data",
|
|
5795
|
+
audience: "learner",
|
|
5796
|
+
solutionBearing: false
|
|
5797
|
+
}
|
|
5798
|
+
],
|
|
5799
|
+
goals: [
|
|
5800
|
+
{
|
|
5801
|
+
id: "robot-mission-control-m1-starts",
|
|
5802
|
+
statement: "The responsive control component, chart and text telemetry build with a valid simulated command state machine.",
|
|
5803
|
+
visibility: "visible",
|
|
5804
|
+
criterionIds: ["robot-mission-control-build"],
|
|
5805
|
+
completionRequired: true,
|
|
5806
|
+
aiRequired: false
|
|
5807
|
+
},
|
|
5808
|
+
{
|
|
5809
|
+
id: "robot-mission-control-m1-behaviour",
|
|
5810
|
+
statement: "A confirmed command moves the state machine from STOP and updates the chart and serial simulation with matching bounded telemetry.",
|
|
5811
|
+
visibility: "visible",
|
|
5812
|
+
criterionIds: [
|
|
5813
|
+
"robot-mission-control-goal-one",
|
|
5814
|
+
"robot-mission-control-goal-two",
|
|
5815
|
+
"robot-mission-control-goal-three"
|
|
5816
|
+
],
|
|
5817
|
+
completionRequired: true,
|
|
5818
|
+
aiRequired: false
|
|
5819
|
+
},
|
|
5820
|
+
{
|
|
5821
|
+
id: "robot-mission-control-m1-safe-private",
|
|
5822
|
+
statement: "Without confirmation the simulator stays in STOP, exposes responsive text telemetry and never opens a real serial port or controls hardware.",
|
|
5823
|
+
visibility: "visible",
|
|
5824
|
+
criterionIds: ["robot-mission-control-safety"],
|
|
5825
|
+
completionRequired: true,
|
|
5826
|
+
aiRequired: false
|
|
5827
|
+
}
|
|
5828
|
+
],
|
|
5829
|
+
interactions: [
|
|
5830
|
+
{
|
|
5831
|
+
id: "robot-mission-control-m1-editor",
|
|
5832
|
+
description: "Edit the five documented mission-control calls using keyboard or pointer controls.",
|
|
5833
|
+
primaryMode: "keyboard",
|
|
5834
|
+
alternativeIds: []
|
|
5835
|
+
},
|
|
5836
|
+
{
|
|
5837
|
+
id: "robot-mission-control-m1-run",
|
|
5838
|
+
description: "Activate the labelled action-icon Run control.",
|
|
5839
|
+
primaryMode: "pointer",
|
|
5840
|
+
alternativeIds: ["robot-mission-control-m1-keyboard-run"]
|
|
5841
|
+
},
|
|
5842
|
+
{
|
|
5843
|
+
id: "robot-mission-control-m1-review",
|
|
5844
|
+
description: "Review and accept or reject the exact labelled safety diff.",
|
|
5845
|
+
primaryMode: "keyboard",
|
|
5846
|
+
alternativeIds: []
|
|
5847
|
+
}
|
|
5848
|
+
],
|
|
5849
|
+
accessibilityAlternatives: [
|
|
5850
|
+
{
|
|
5851
|
+
id: "robot-mission-control-m1-keyboard-run",
|
|
5852
|
+
description: "Focus the Run action button and press Enter or Space to produce the same controls, chart and text telemetry.",
|
|
5853
|
+
modes: ["keyboard"],
|
|
5854
|
+
equivalentOutcome: true
|
|
5855
|
+
}
|
|
5856
|
+
],
|
|
5857
|
+
evidenceRequirements: [
|
|
5858
|
+
{
|
|
5859
|
+
id: "robot-mission-control-m1-assessment",
|
|
5860
|
+
goalIds: [
|
|
5861
|
+
"robot-mission-control-m1-starts",
|
|
5862
|
+
"robot-mission-control-m1-behaviour",
|
|
5863
|
+
"robot-mission-control-m1-safe-private"
|
|
5864
|
+
],
|
|
5865
|
+
kind: "assessment-result",
|
|
5866
|
+
retention: "entitlement",
|
|
5867
|
+
containsPersonalData: false
|
|
5868
|
+
},
|
|
5869
|
+
{
|
|
5870
|
+
id: "robot-mission-control-m1-explanation",
|
|
5871
|
+
goalIds: ["robot-mission-control-m1-safe-private"],
|
|
5872
|
+
kind: "learner-explanation",
|
|
5873
|
+
retention: "attempt",
|
|
5874
|
+
containsPersonalData: false
|
|
5875
|
+
}
|
|
5876
|
+
],
|
|
5877
|
+
sideAdventures: [
|
|
5878
|
+
{
|
|
5879
|
+
id: "robot-mission-control-m1-remix",
|
|
5880
|
+
prompt: "Choose another supplied command or chart mode and explain which confirmation and STOP evidence must remain.",
|
|
5881
|
+
completionRequired: false
|
|
5882
|
+
}
|
|
5883
|
+
],
|
|
5884
|
+
rewardBindings: [
|
|
5885
|
+
{
|
|
5886
|
+
id: "robot-mission-control-m1-badge",
|
|
5887
|
+
badgeId: "robot-mission-control-mission-complete",
|
|
5888
|
+
goalIds: [
|
|
5889
|
+
"robot-mission-control-m1-starts",
|
|
5890
|
+
"robot-mission-control-m1-behaviour",
|
|
5891
|
+
"robot-mission-control-m1-safe-private"
|
|
5892
|
+
],
|
|
5893
|
+
deterministic: true,
|
|
5894
|
+
random: false,
|
|
5895
|
+
tokenConvertible: false
|
|
5896
|
+
}
|
|
5897
|
+
],
|
|
5898
|
+
functionReference: [
|
|
5899
|
+
{
|
|
5900
|
+
id: "robot-mission-control-function-command",
|
|
5901
|
+
signature: "planCommand(command)",
|
|
5902
|
+
summary: "Plans one supplied command for the simulated robot state machine.",
|
|
5903
|
+
parameters: [{ name: "command", type: "text", description: "Use scan, hold-position or return-to-base." }],
|
|
5904
|
+
effect: "Updates the planned-command panel but cannot leave STOP without confirmation.",
|
|
5905
|
+
example: 'planCommand("scan");'
|
|
5906
|
+
},
|
|
5907
|
+
{
|
|
5908
|
+
id: "robot-mission-control-function-confirmation",
|
|
5909
|
+
signature: "setSafetyConfirmation(enabled)",
|
|
5910
|
+
summary: "Controls whether the planned simulated command has explicit safety confirmation.",
|
|
5911
|
+
parameters: [{ name: "enabled", type: "Boolean", description: "Use true only after checking the planned command." }],
|
|
5912
|
+
effect: "Allows the simulator state machine to leave STOP; it never approves or controls physical hardware.",
|
|
5913
|
+
example: "setSafetyConfirmation(true);"
|
|
5914
|
+
},
|
|
5915
|
+
{
|
|
5916
|
+
id: "robot-mission-control-function-rate",
|
|
5917
|
+
signature: "setTelemetryRate(samplesPerSecond)",
|
|
5918
|
+
summary: "Sets a bounded simulated telemetry sampling rate.",
|
|
5919
|
+
parameters: [{ name: "samplesPerSecond", type: "number", description: "Use 1, 2 or 4 simulated samples per second." }],
|
|
5920
|
+
effect: "Changes bounded chart and text sample spacing without starting background work.",
|
|
5921
|
+
example: "setTelemetryRate(2);"
|
|
5922
|
+
},
|
|
5923
|
+
{
|
|
5924
|
+
id: "robot-mission-control-function-chart",
|
|
5925
|
+
signature: "setChartMode(mode)",
|
|
5926
|
+
summary: "Chooses one supplied responsive telemetry presentation.",
|
|
5927
|
+
parameters: [{ name: "mode", type: "text", description: "Use line, bars or text-only." }],
|
|
5928
|
+
effect: "Changes the preview chart while preserving equivalent labelled text telemetry.",
|
|
5929
|
+
example: 'setChartMode("line");'
|
|
5930
|
+
},
|
|
5931
|
+
{
|
|
5932
|
+
id: "robot-mission-control-function-serial",
|
|
5933
|
+
signature: "simulateSerial(enabled)",
|
|
5934
|
+
summary: "Turns the bounded serial-message simulator on or off.",
|
|
5935
|
+
parameters: [{ name: "enabled", type: "Boolean", description: "Use true to show simulated messages." }],
|
|
5936
|
+
effect: "Produces labelled local simulator messages; it never opens Web Serial or a physical connection.",
|
|
5937
|
+
example: "simulateSerial(true);"
|
|
5938
|
+
}
|
|
5939
|
+
],
|
|
5940
|
+
boundedSuggestion: {
|
|
5941
|
+
id: "robot-mission-control-m1-confirmation-diff",
|
|
5942
|
+
source: "authored-fallback",
|
|
5943
|
+
intent: "Confirm the supplied simulated command before the state machine leaves STOP.",
|
|
5944
|
+
constraints: [
|
|
5945
|
+
"Change exactly one documented safety-confirmation setting.",
|
|
5946
|
+
"Preserve the supplied command, telemetry rate, chart mode, serial simulation and text telemetry.",
|
|
5947
|
+
"Do not add Web Serial, network, external scripts, hardware control, personal data or automatic approval."
|
|
5948
|
+
],
|
|
5949
|
+
permittedArtifactId: "robot-mission-control-m1-code",
|
|
5950
|
+
originalSnippet: "setSafetyConfirmation(false);",
|
|
5951
|
+
replacementSnippet: "setSafetyConfirmation(true);",
|
|
5952
|
+
explanationPrompt: "Which state-machine transition became possible, and what keeps the exercise separate from physical hardware?",
|
|
5953
|
+
aiOptional: false,
|
|
5954
|
+
learnerApprovalRequired: true,
|
|
5955
|
+
alternatives: ["accept", "reject"]
|
|
5956
|
+
}
|
|
5957
|
+
},
|
|
5958
|
+
facilitator: {
|
|
5959
|
+
artifacts: [
|
|
5960
|
+
{
|
|
5961
|
+
id: "robot-mission-control-m1-answer-key",
|
|
5962
|
+
kind: "answer-key",
|
|
5963
|
+
audience: "facilitator",
|
|
5964
|
+
solutionBearing: true
|
|
5965
|
+
},
|
|
5966
|
+
{
|
|
5967
|
+
id: "robot-mission-control-m1-protected-tests",
|
|
5968
|
+
kind: "protected-test",
|
|
5969
|
+
audience: "facilitator",
|
|
5970
|
+
solutionBearing: true
|
|
5971
|
+
},
|
|
5972
|
+
{
|
|
5973
|
+
id: "robot-mission-control-m1-safety-notes",
|
|
5974
|
+
kind: "facilitator-note",
|
|
5975
|
+
audience: "facilitator",
|
|
5976
|
+
solutionBearing: true
|
|
5977
|
+
}
|
|
5978
|
+
],
|
|
5979
|
+
protectedGoals: [
|
|
5980
|
+
{
|
|
5981
|
+
id: "robot-mission-control-m1-protected-boundary",
|
|
5982
|
+
statement: "The dashboard rejects arbitrary commands, invalid rates, scripts, network access, Web Serial, hardware control, personal data and any unconfirmed transition away from STOP.",
|
|
5983
|
+
visibility: "protected",
|
|
5984
|
+
criterionIds: [
|
|
5985
|
+
"robot-mission-control-edge-one",
|
|
5986
|
+
"robot-mission-control-edge-two"
|
|
5987
|
+
],
|
|
5988
|
+
completionRequired: false,
|
|
5989
|
+
aiRequired: false
|
|
5990
|
+
}
|
|
5991
|
+
],
|
|
5992
|
+
prompts: [
|
|
5993
|
+
"Ask the learner to identify the planned command, current state, confirmation and equivalent text telemetry before suggesting a change.",
|
|
5994
|
+
"Keep every command and message inside the simulator; the website never opens serial or controls hardware.",
|
|
5995
|
+
"Reject must preserve source, and provider failure must never block deterministic completion."
|
|
5996
|
+
]
|
|
5997
|
+
}
|
|
5998
|
+
};
|
|
5437
5999
|
var ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1 = {
|
|
5438
6000
|
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
5439
6001
|
moduleId: "junior-coder.adventure-mission-planner",
|
|
@@ -6068,6 +6630,7 @@ ${summary}`);
|
|
|
6068
6630
|
export {
|
|
6069
6631
|
ADVENTURE_MISSION_PLANNER_MISSION_ONE_AUTHORING_V1,
|
|
6070
6632
|
BEACON_BOT_MISSION_ONE_AUTHORING_V1,
|
|
6633
|
+
CREATURE_CARE_DASHBOARD_MISSION_ONE_AUTHORING_V1,
|
|
6071
6634
|
DANCE_ROVER_MISSION_ONE_AUTHORING_V1,
|
|
6072
6635
|
JUNIOR_CODER_MISSION_STAGE_ORDER_V1,
|
|
6073
6636
|
JUNIOR_CODER_MODULE_PRICE_V1_1,
|
|
@@ -6083,6 +6646,7 @@ export {
|
|
|
6083
6646
|
RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1,
|
|
6084
6647
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
6085
6648
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
6649
|
+
ROBOT_MISSION_CONTROL_MISSION_ONE_AUTHORING_V1,
|
|
6086
6650
|
SERVO_CREATURE_MISSION_ONE_AUTHORING_V1,
|
|
6087
6651
|
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
6088
6652
|
STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1,
|