@plasius/learning 0.2.9 → 0.2.10
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 +15 -2
- package/dist/index.cjs +391 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +390 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -455,6 +455,12 @@ declare const STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1: MissionAuthoringB
|
|
|
455
455
|
* otherwise.
|
|
456
456
|
*/
|
|
457
457
|
declare const BEACON_BOT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
458
|
+
/**
|
|
459
|
+
* First Servo Creature robotics mission. The learner creates a bounded pose,
|
|
460
|
+
* mood and interaction sequence in the simulator. Physical servo power and
|
|
461
|
+
* movement remain unavailable until the exact reference build is bench tested.
|
|
462
|
+
*/
|
|
463
|
+
declare const SERVO_CREATURE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
458
464
|
/**
|
|
459
465
|
* Original first mission for Rescue Crew Commander. The learner arranges a
|
|
460
466
|
* typed visual program and can inspect its synchronized JavaScript projection,
|
|
@@ -475,4 +481,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
475
481
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
476
482
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
477
483
|
|
|
478
|
-
export { 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, 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 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, 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 };
|
|
484
|
+
export { 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, 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 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, 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, SERVO_CREATURE_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
|
@@ -455,6 +455,12 @@ declare const STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1: MissionAuthoringB
|
|
|
455
455
|
* otherwise.
|
|
456
456
|
*/
|
|
457
457
|
declare const BEACON_BOT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
458
|
+
/**
|
|
459
|
+
* First Servo Creature robotics mission. The learner creates a bounded pose,
|
|
460
|
+
* mood and interaction sequence in the simulator. Physical servo power and
|
|
461
|
+
* movement remain unavailable until the exact reference build is bench tested.
|
|
462
|
+
*/
|
|
463
|
+
declare const SERVO_CREATURE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
458
464
|
/**
|
|
459
465
|
* Original first mission for Rescue Crew Commander. The learner arranges a
|
|
460
466
|
* typed visual program and can inspect its synchronized JavaScript projection,
|
|
@@ -475,4 +481,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
475
481
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
476
482
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
477
483
|
|
|
478
|
-
export { 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, 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 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, 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 };
|
|
484
|
+
export { 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, 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 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, 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, SERVO_CREATURE_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
|
@@ -2675,6 +2675,395 @@ var BEACON_BOT_MISSION_ONE_AUTHORING_V1 = {
|
|
|
2675
2675
|
}
|
|
2676
2676
|
}
|
|
2677
2677
|
};
|
|
2678
|
+
var SERVO_CREATURE_MISSION_ONE_AUTHORING_V1 = {
|
|
2679
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
2680
|
+
moduleId: "junior-coder.servo-creature",
|
|
2681
|
+
moduleVersion: "1.1.0",
|
|
2682
|
+
missionId: "servo-creature-mission-1",
|
|
2683
|
+
learner: {
|
|
2684
|
+
estimatedMinutes: 20,
|
|
2685
|
+
stages: [
|
|
2686
|
+
{
|
|
2687
|
+
kind: "learn",
|
|
2688
|
+
instruction: "Read what setServoAngle(), waitMs(), repeatMovement(), setCreatureMood() and readTouchSensor() do in the private Servo Creature simulator.",
|
|
2689
|
+
artifactIds: ["servo-creature-m1-art"]
|
|
2690
|
+
},
|
|
2691
|
+
{
|
|
2692
|
+
kind: "predict",
|
|
2693
|
+
instruction: "Predict the creature's labelled angle, mood, repeat count and simulated touch response before the sequence runs.",
|
|
2694
|
+
artifactIds: []
|
|
2695
|
+
},
|
|
2696
|
+
{
|
|
2697
|
+
kind: "build",
|
|
2698
|
+
instruction: "Adjust the five documented C++-style calls to create one bounded creature movement sequence.",
|
|
2699
|
+
artifactIds: ["servo-creature-m1-code"]
|
|
2700
|
+
},
|
|
2701
|
+
{
|
|
2702
|
+
kind: "run",
|
|
2703
|
+
instruction: "Use the Run action button to start the private Servo Creature simulator.",
|
|
2704
|
+
artifactIds: ["servo-creature-m1-code"]
|
|
2705
|
+
},
|
|
2706
|
+
{
|
|
2707
|
+
kind: "assess",
|
|
2708
|
+
instruction: "Run the visible and protected deterministic pose, mood and interaction checks.",
|
|
2709
|
+
artifactIds: []
|
|
2710
|
+
},
|
|
2711
|
+
{
|
|
2712
|
+
kind: "inspect",
|
|
2713
|
+
instruction: "Compare the highlighted C++-style line with the first movement goal that did not pass.",
|
|
2714
|
+
artifactIds: []
|
|
2715
|
+
},
|
|
2716
|
+
{
|
|
2717
|
+
kind: "fix",
|
|
2718
|
+
instruction: "Change one angle, wait, repeat, mood or simulated touch call, then rerun and inspect the text telemetry.",
|
|
2719
|
+
artifactIds: ["servo-creature-m1-code"]
|
|
2720
|
+
},
|
|
2721
|
+
{
|
|
2722
|
+
kind: "explain",
|
|
2723
|
+
instruction: "Explain how the bounded calls created a safe movement and how the simulated interaction changed the creature's response.",
|
|
2724
|
+
artifactIds: []
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
kind: "reward",
|
|
2728
|
+
instruction: "Collect the simulated badge when the score and private-runtime safety check pass; physical completion remains adult-only.",
|
|
2729
|
+
artifactIds: []
|
|
2730
|
+
}
|
|
2731
|
+
],
|
|
2732
|
+
readinessChecks: [
|
|
2733
|
+
{
|
|
2734
|
+
id: "servo-creature-m1-find-angle-limit",
|
|
2735
|
+
prompt: "Find the documented safe minimum and maximum angle before changing the creature's pose.",
|
|
2736
|
+
scored: false
|
|
2737
|
+
}
|
|
2738
|
+
],
|
|
2739
|
+
artifacts: [
|
|
2740
|
+
{
|
|
2741
|
+
id: "servo-creature-m1-code",
|
|
2742
|
+
kind: "starter-code",
|
|
2743
|
+
audience: "learner",
|
|
2744
|
+
solutionBearing: false
|
|
2745
|
+
},
|
|
2746
|
+
{
|
|
2747
|
+
id: "servo-creature-m1-art",
|
|
2748
|
+
kind: "starter-assets",
|
|
2749
|
+
audience: "learner",
|
|
2750
|
+
solutionBearing: false
|
|
2751
|
+
},
|
|
2752
|
+
{
|
|
2753
|
+
id: "servo-creature-m1-printable",
|
|
2754
|
+
kind: "printable",
|
|
2755
|
+
audience: "learner",
|
|
2756
|
+
solutionBearing: false
|
|
2757
|
+
}
|
|
2758
|
+
],
|
|
2759
|
+
goals: [
|
|
2760
|
+
{
|
|
2761
|
+
id: "servo-creature-m1-starts",
|
|
2762
|
+
statement: "The documented C++-style settings are valid and the private simulator starts.",
|
|
2763
|
+
visibility: "visible",
|
|
2764
|
+
criterionIds: ["servo-creature-build"],
|
|
2765
|
+
completionRequired: true,
|
|
2766
|
+
aiRequired: false
|
|
2767
|
+
},
|
|
2768
|
+
{
|
|
2769
|
+
id: "servo-creature-m1-movement-sequence",
|
|
2770
|
+
statement: "The creature completes a bounded angle, timing, mood and interaction sequence.",
|
|
2771
|
+
visibility: "visible",
|
|
2772
|
+
criterionIds: ["servo-creature-goal-one", "servo-creature-goal-two"],
|
|
2773
|
+
completionRequired: true,
|
|
2774
|
+
aiRequired: false
|
|
2775
|
+
},
|
|
2776
|
+
{
|
|
2777
|
+
id: "servo-creature-m1-private-runtime",
|
|
2778
|
+
statement: "The program stays inside the private simulator and never accesses physical hardware, the network or browser storage.",
|
|
2779
|
+
visibility: "visible",
|
|
2780
|
+
criterionIds: ["servo-creature-safety"],
|
|
2781
|
+
completionRequired: true,
|
|
2782
|
+
aiRequired: false
|
|
2783
|
+
}
|
|
2784
|
+
],
|
|
2785
|
+
interactions: [
|
|
2786
|
+
{
|
|
2787
|
+
id: "servo-creature-m1-run-control",
|
|
2788
|
+
description: "Start the private Servo Creature movement simulation.",
|
|
2789
|
+
primaryMode: "pointer",
|
|
2790
|
+
alternativeIds: ["servo-creature-m1-keyboard-run"]
|
|
2791
|
+
},
|
|
2792
|
+
{
|
|
2793
|
+
id: "servo-creature-m1-code-control",
|
|
2794
|
+
description: "Edit the documented angle, timing, repeat, mood and interaction calls.",
|
|
2795
|
+
primaryMode: "keyboard",
|
|
2796
|
+
alternativeIds: []
|
|
2797
|
+
},
|
|
2798
|
+
{
|
|
2799
|
+
id: "servo-creature-m1-pose-motion",
|
|
2800
|
+
description: "Observe the bounded creature pose and movement sequence.",
|
|
2801
|
+
primaryMode: "motion",
|
|
2802
|
+
alternativeIds: ["servo-creature-m1-telemetry"]
|
|
2803
|
+
}
|
|
2804
|
+
],
|
|
2805
|
+
accessibilityAlternatives: [
|
|
2806
|
+
{
|
|
2807
|
+
id: "servo-creature-m1-keyboard-run",
|
|
2808
|
+
modes: ["keyboard"],
|
|
2809
|
+
equivalentOutcome: true,
|
|
2810
|
+
description: "Press Enter or Space on the play-icon Run button to start the same simulator."
|
|
2811
|
+
},
|
|
2812
|
+
{
|
|
2813
|
+
id: "servo-creature-m1-telemetry",
|
|
2814
|
+
modes: ["text", "shape", "symbol", "reduced-motion"],
|
|
2815
|
+
equivalentOutcome: true,
|
|
2816
|
+
description: "Read the angle, mood, repeat count, elapsed milliseconds and touch state without animation."
|
|
2817
|
+
}
|
|
2818
|
+
],
|
|
2819
|
+
evidenceRequirements: [
|
|
2820
|
+
{
|
|
2821
|
+
id: "servo-creature-m1-assessment",
|
|
2822
|
+
goalIds: [
|
|
2823
|
+
"servo-creature-m1-starts",
|
|
2824
|
+
"servo-creature-m1-movement-sequence",
|
|
2825
|
+
"servo-creature-m1-private-runtime"
|
|
2826
|
+
],
|
|
2827
|
+
kind: "assessment-result",
|
|
2828
|
+
retention: "entitlement",
|
|
2829
|
+
containsPersonalData: false
|
|
2830
|
+
},
|
|
2831
|
+
{
|
|
2832
|
+
id: "servo-creature-m1-explanation",
|
|
2833
|
+
goalIds: ["servo-creature-m1-movement-sequence"],
|
|
2834
|
+
kind: "learner-explanation",
|
|
2835
|
+
retention: "attempt",
|
|
2836
|
+
containsPersonalData: false
|
|
2837
|
+
}
|
|
2838
|
+
],
|
|
2839
|
+
sideAdventures: [
|
|
2840
|
+
{
|
|
2841
|
+
id: "servo-creature-m1-remix",
|
|
2842
|
+
prompt: "Invent an original creature mood and describe a text or symbol cue that makes its pose understandable without movement.",
|
|
2843
|
+
completionRequired: false
|
|
2844
|
+
}
|
|
2845
|
+
],
|
|
2846
|
+
rewardBindings: [
|
|
2847
|
+
{
|
|
2848
|
+
id: "servo-creature-m1-simulated-badge",
|
|
2849
|
+
badgeId: "servo-creature-mission-complete",
|
|
2850
|
+
goalIds: [
|
|
2851
|
+
"servo-creature-m1-starts",
|
|
2852
|
+
"servo-creature-m1-movement-sequence",
|
|
2853
|
+
"servo-creature-m1-private-runtime"
|
|
2854
|
+
],
|
|
2855
|
+
deterministic: true,
|
|
2856
|
+
random: false,
|
|
2857
|
+
tokenConvertible: false
|
|
2858
|
+
}
|
|
2859
|
+
],
|
|
2860
|
+
functionReference: [
|
|
2861
|
+
{
|
|
2862
|
+
id: "servo-creature-function-angle",
|
|
2863
|
+
signature: "setServoAngle(degrees)",
|
|
2864
|
+
summary: "Chooses one safe labelled creature pose in the private simulator.",
|
|
2865
|
+
parameters: [
|
|
2866
|
+
{
|
|
2867
|
+
name: "degrees",
|
|
2868
|
+
type: "whole number",
|
|
2869
|
+
description: "A bounded angle from 30 to 150 degrees."
|
|
2870
|
+
}
|
|
2871
|
+
],
|
|
2872
|
+
effect: "Updates the simulator's labelled angle and pose cue without generating PWM or accessing a physical servo.",
|
|
2873
|
+
example: "setServoAngle(90);"
|
|
2874
|
+
},
|
|
2875
|
+
{
|
|
2876
|
+
id: "servo-creature-function-wait",
|
|
2877
|
+
signature: "waitMs(duration)",
|
|
2878
|
+
summary: "Adds one safe wait to the simulated movement timeline.",
|
|
2879
|
+
parameters: [
|
|
2880
|
+
{
|
|
2881
|
+
name: "duration",
|
|
2882
|
+
type: "whole number",
|
|
2883
|
+
description: "A bounded number of milliseconds from 100 to 1000."
|
|
2884
|
+
}
|
|
2885
|
+
],
|
|
2886
|
+
effect: "Advances simulated elapsed time; it never blocks the website or holds a physical servo under load.",
|
|
2887
|
+
example: "waitMs(300);"
|
|
2888
|
+
},
|
|
2889
|
+
{
|
|
2890
|
+
id: "servo-creature-function-repeat",
|
|
2891
|
+
signature: "repeatMovement(count)",
|
|
2892
|
+
summary: "Repeats the current simulated pose a safe number of times.",
|
|
2893
|
+
parameters: [
|
|
2894
|
+
{
|
|
2895
|
+
name: "count",
|
|
2896
|
+
type: "whole number",
|
|
2897
|
+
description: "A bounded repeat count from 1 to 4."
|
|
2898
|
+
}
|
|
2899
|
+
],
|
|
2900
|
+
effect: "Adds a fixed number of labelled pose steps to the private simulator timeline.",
|
|
2901
|
+
example: "repeatMovement(3);"
|
|
2902
|
+
},
|
|
2903
|
+
{
|
|
2904
|
+
id: "servo-creature-function-mood",
|
|
2905
|
+
signature: "setCreatureMood(mood)",
|
|
2906
|
+
summary: "Chooses the creature's labelled expression for the simulated pose.",
|
|
2907
|
+
parameters: [
|
|
2908
|
+
{
|
|
2909
|
+
name: "mood",
|
|
2910
|
+
type: "string",
|
|
2911
|
+
description: "Use calm, curious or happy."
|
|
2912
|
+
}
|
|
2913
|
+
],
|
|
2914
|
+
effect: "Updates the simulator's text and symbol mood cue without moving physical parts.",
|
|
2915
|
+
example: 'setCreatureMood("curious");'
|
|
2916
|
+
},
|
|
2917
|
+
{
|
|
2918
|
+
id: "servo-creature-function-touch",
|
|
2919
|
+
signature: "readTouchSensor()",
|
|
2920
|
+
summary: "Reads the simulator's fictional touch state for one interaction response.",
|
|
2921
|
+
parameters: [],
|
|
2922
|
+
effect: "Returns touched or clear from simulator state only; it cannot access a physical sensor.",
|
|
2923
|
+
example: "const touchState = readTouchSensor();"
|
|
2924
|
+
}
|
|
2925
|
+
]
|
|
2926
|
+
},
|
|
2927
|
+
facilitator: {
|
|
2928
|
+
artifacts: [
|
|
2929
|
+
{
|
|
2930
|
+
id: "servo-creature-m1-answer-key",
|
|
2931
|
+
kind: "answer-key",
|
|
2932
|
+
audience: "facilitator",
|
|
2933
|
+
solutionBearing: true
|
|
2934
|
+
},
|
|
2935
|
+
{
|
|
2936
|
+
id: "servo-creature-m1-protected-tests",
|
|
2937
|
+
kind: "protected-test",
|
|
2938
|
+
audience: "facilitator",
|
|
2939
|
+
solutionBearing: true
|
|
2940
|
+
},
|
|
2941
|
+
{
|
|
2942
|
+
id: "servo-creature-m1-adult-hardware-guide",
|
|
2943
|
+
kind: "facilitator-note",
|
|
2944
|
+
audience: "facilitator",
|
|
2945
|
+
solutionBearing: true
|
|
2946
|
+
}
|
|
2947
|
+
],
|
|
2948
|
+
protectedGoals: [
|
|
2949
|
+
{
|
|
2950
|
+
id: "servo-creature-m1-protected-resilience",
|
|
2951
|
+
statement: "The simulator rejects unsupported moods, out-of-range angles, excessive waits or repeats and any physical-hardware request.",
|
|
2952
|
+
visibility: "protected",
|
|
2953
|
+
criterionIds: ["servo-creature-edge-one", "servo-creature-edge-two"],
|
|
2954
|
+
completionRequired: false,
|
|
2955
|
+
aiRequired: false
|
|
2956
|
+
}
|
|
2957
|
+
],
|
|
2958
|
+
prompts: [
|
|
2959
|
+
"Ask the learner to predict the labelled pose timeline before suggesting one bounded change.",
|
|
2960
|
+
"Use the function reference and visible telemetry; never provide servo wiring, power or movement advice to a learner.",
|
|
2961
|
+
"Physical export stays unavailable until an adult acknowledges the exact manifest and every servo power component has verified bench-test evidence."
|
|
2962
|
+
]
|
|
2963
|
+
},
|
|
2964
|
+
hardware: {
|
|
2965
|
+
requirementsVersion: "1.0.0",
|
|
2966
|
+
hardwareIncluded: false,
|
|
2967
|
+
completePathItemIds: [
|
|
2968
|
+
"pico-2-w",
|
|
2969
|
+
"breadboard",
|
|
2970
|
+
"usb-data-cable",
|
|
2971
|
+
"jumper-wires",
|
|
2972
|
+
"micro-servo",
|
|
2973
|
+
"servo-power"
|
|
2974
|
+
],
|
|
2975
|
+
incrementalItemIds: ["micro-servo", "servo-power"],
|
|
2976
|
+
components: [
|
|
2977
|
+
{
|
|
2978
|
+
itemId: "pico-2-w",
|
|
2979
|
+
quantity: 1,
|
|
2980
|
+
acquisitionScope: "complete-path",
|
|
2981
|
+
verificationStatus: "pending-bench-test",
|
|
2982
|
+
compatibilityClaimed: false,
|
|
2983
|
+
physicalCompletionEligible: false
|
|
2984
|
+
},
|
|
2985
|
+
{
|
|
2986
|
+
itemId: "breadboard",
|
|
2987
|
+
quantity: 1,
|
|
2988
|
+
acquisitionScope: "complete-path",
|
|
2989
|
+
verificationStatus: "pending-bench-test",
|
|
2990
|
+
compatibilityClaimed: false,
|
|
2991
|
+
physicalCompletionEligible: false
|
|
2992
|
+
},
|
|
2993
|
+
{
|
|
2994
|
+
itemId: "usb-data-cable",
|
|
2995
|
+
quantity: 1,
|
|
2996
|
+
acquisitionScope: "complete-path",
|
|
2997
|
+
verificationStatus: "pending-bench-test",
|
|
2998
|
+
compatibilityClaimed: false,
|
|
2999
|
+
physicalCompletionEligible: false
|
|
3000
|
+
},
|
|
3001
|
+
{
|
|
3002
|
+
itemId: "jumper-wires",
|
|
3003
|
+
quantity: 12,
|
|
3004
|
+
acquisitionScope: "complete-path",
|
|
3005
|
+
verificationStatus: "pending-bench-test",
|
|
3006
|
+
compatibilityClaimed: false,
|
|
3007
|
+
physicalCompletionEligible: false
|
|
3008
|
+
},
|
|
3009
|
+
{
|
|
3010
|
+
itemId: "micro-servo",
|
|
3011
|
+
quantity: 1,
|
|
3012
|
+
acquisitionScope: "incremental",
|
|
3013
|
+
verificationStatus: "pending-bench-test",
|
|
3014
|
+
compatibilityClaimed: false,
|
|
3015
|
+
physicalCompletionEligible: false
|
|
3016
|
+
},
|
|
3017
|
+
{
|
|
3018
|
+
itemId: "servo-power",
|
|
3019
|
+
quantity: 1,
|
|
3020
|
+
acquisitionScope: "incremental",
|
|
3021
|
+
verificationStatus: "pending-bench-test",
|
|
3022
|
+
compatibilityClaimed: false,
|
|
3023
|
+
physicalCompletionEligible: false
|
|
3024
|
+
}
|
|
3025
|
+
],
|
|
3026
|
+
safeguards: {
|
|
3027
|
+
adultAssemblyRequired: true,
|
|
3028
|
+
adultAcknowledgementRequiredForExport: true,
|
|
3029
|
+
websiteMayControlHardware: false,
|
|
3030
|
+
simulatorCompletionAvailable: true,
|
|
3031
|
+
simulatedBadgeId: "servo-creature-mission-complete",
|
|
3032
|
+
physicalBadgeId: "servo-creature-physical-builder",
|
|
3033
|
+
physicalBadgeRequiresAdultSignoff: true,
|
|
3034
|
+
adultAssemblySteps: [
|
|
3035
|
+
"Confirm the exact servo, external supply and connector identities against the requirements manifest.",
|
|
3036
|
+
"Assemble and inspect the disconnected signal and common-ground wiring before learner use.",
|
|
3037
|
+
"Secure the creature linkage, lift or restrain moving parts and complete the adult bench-test record."
|
|
3038
|
+
],
|
|
3039
|
+
powerRequirements: [
|
|
3040
|
+
"Use an external regulated servo supply sized for the verified servo; do not power the servo from a Pico GPIO pin.",
|
|
3041
|
+
"Connect one common signal ground between the verified servo supply and Pico only as shown in the adult guide.",
|
|
3042
|
+
"Disconnect every power source before changing wiring or creature linkages."
|
|
3043
|
+
],
|
|
3044
|
+
cableRequirements: [
|
|
3045
|
+
"One known data-capable USB cable compatible with the Pico 2 W.",
|
|
3046
|
+
"Insulated jumper leads and a verified servo connector arrangement documented by the adult guide."
|
|
3047
|
+
],
|
|
3048
|
+
softwarePrerequisites: [
|
|
3049
|
+
"Supported Pico SDK toolchain on Raspberry Pi OS or a documented desktop environment.",
|
|
3050
|
+
"Known-good Servo Creature recovery firmware with adult-owned neutral-pose and stop behaviour."
|
|
3051
|
+
],
|
|
3052
|
+
warnings: [
|
|
3053
|
+
"Hardware is not included with the module.",
|
|
3054
|
+
"No listed servo or power arrangement currently claims compatibility or physical-completion eligibility.",
|
|
3055
|
+
"Pinch points, stalled servos and unsuitable power supplies can cause heat or movement; adult assembly and testing are mandatory.",
|
|
3056
|
+
"The simulator and simulated badge remain available without physical equipment."
|
|
3057
|
+
],
|
|
3058
|
+
unrelatedHardwareNotRequired: [
|
|
3059
|
+
"Camera Module 3 or Raspberry Pi Zero 2 W",
|
|
3060
|
+
"motor driver, motors or rover chassis",
|
|
3061
|
+
"physical touch or IR sensor",
|
|
3062
|
+
"LED or infrared beacon parts"
|
|
3063
|
+
]
|
|
3064
|
+
}
|
|
3065
|
+
}
|
|
3066
|
+
};
|
|
2678
3067
|
var RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1 = {
|
|
2679
3068
|
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
2680
3069
|
moduleId: "junior-coder.rescue-crew-commander",
|
|
@@ -3482,6 +3871,7 @@ export {
|
|
|
3482
3871
|
RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1,
|
|
3483
3872
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
3484
3873
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
3874
|
+
SERVO_CREATURE_MISSION_ONE_AUTHORING_V1,
|
|
3485
3875
|
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
3486
3876
|
STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1,
|
|
3487
3877
|
assertValidLearningPath,
|