@plasius/learning 0.2.14 → 0.2.15

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/dist/index.d.cts CHANGED
@@ -508,6 +508,8 @@ declare const RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1: MissionAuthoringBu
508
508
  declare const METEOR_SHIELD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
509
509
  /** Bounded first Vibe mission; no open prompt or provider is required. */
510
510
  declare const VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
511
+ /** Evidence-led Vibe repair mission; no open prompt or provider is required. */
512
+ declare const VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
511
513
  /** Original first-mission exemplar; no protected content appears in learner data. */
512
514
  declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
513
515
 
@@ -516,4 +518,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
516
518
  /** Fail fast when a path is not safe to publish or consume. */
517
519
  declare function assertValidLearningPath(path: LearningPathVersionV1): void;
518
520
 
519
- 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, 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_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
521
+ 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, 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, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
package/dist/index.d.ts CHANGED
@@ -508,6 +508,8 @@ declare const RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1: MissionAuthoringBu
508
508
  declare const METEOR_SHIELD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
509
509
  /** Bounded first Vibe mission; no open prompt or provider is required. */
510
510
  declare const VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
511
+ /** Evidence-led Vibe repair mission; no open prompt or provider is required. */
512
+ declare const VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
511
513
  /** Original first-mission exemplar; no protected content appears in learner data. */
512
514
  declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
513
515
 
@@ -516,4 +518,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
516
518
  /** Fail fast when a path is not safe to publish or consume. */
517
519
  declare function assertValidLearningPath(path: LearningPathVersionV1): void;
518
520
 
519
- 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, 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_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
521
+ 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, 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, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
package/dist/index.js CHANGED
@@ -4874,6 +4874,280 @@ var VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1 = {
4874
4874
  ]
4875
4875
  }
4876
4876
  };
4877
+ var VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1 = {
4878
+ version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
4879
+ moduleId: "junior-coder.vibe-bug-detective",
4880
+ moduleVersion: "1.1.0",
4881
+ missionId: "vibe-bug-detective-mission-1",
4882
+ learner: {
4883
+ estimatedMinutes: 20,
4884
+ stages: [
4885
+ {
4886
+ kind: "learn",
4887
+ instruction: "Read how setRobotDirection(), setRobotSteps() and placeRescueBeacon() control the supplied mini-game.",
4888
+ artifactIds: ["vibe-bug-detective-m1-guide"]
4889
+ },
4890
+ {
4891
+ kind: "predict",
4892
+ instruction: "Predict why the robot moves away from the beacon before viewing the one-line repair.",
4893
+ artifactIds: ["vibe-bug-detective-m1-evidence-card"]
4894
+ },
4895
+ {
4896
+ kind: "build",
4897
+ instruction: "Open the intentionally broken mini-game without changing files outside its documented settings artifact.",
4898
+ artifactIds: ["vibe-bug-detective-m1-code"]
4899
+ },
4900
+ {
4901
+ kind: "run",
4902
+ instruction: "Use the Run action button to reproduce the bug in the private JavaScript preview.",
4903
+ artifactIds: ["vibe-bug-detective-m1-code"]
4904
+ },
4905
+ {
4906
+ kind: "assess",
4907
+ instruction: "Run deterministic checks to collect failure evidence before reviewing any suggested fix.",
4908
+ artifactIds: []
4909
+ },
4910
+ {
4911
+ kind: "inspect",
4912
+ instruction: "Compare observed leftward movement with the expected right-side beacon goal and the single authored diff.",
4913
+ artifactIds: ["vibe-bug-detective-m1-code"]
4914
+ },
4915
+ {
4916
+ kind: "fix",
4917
+ instruction: "Accept or reject the exact direction repair yourself, then rerun every regression check.",
4918
+ artifactIds: ["vibe-bug-detective-m1-code"]
4919
+ },
4920
+ {
4921
+ kind: "explain",
4922
+ instruction: "Explain which evidence identified the bug and why the minimal change fixed it without changing other behaviour.",
4923
+ artifactIds: []
4924
+ },
4925
+ {
4926
+ kind: "reward",
4927
+ instruction: "Collect the evidence-bound badge after the deterministic score reaches 80 and every safety check passes.",
4928
+ artifactIds: []
4929
+ }
4930
+ ],
4931
+ readinessChecks: [
4932
+ {
4933
+ id: "vibe-bug-detective-m1-read-evidence",
4934
+ prompt: "Point to the observed direction and the beacon position before choosing a repair.",
4935
+ scored: false
4936
+ }
4937
+ ],
4938
+ artifacts: [
4939
+ {
4940
+ id: "vibe-bug-detective-m1-code",
4941
+ kind: "starter-code",
4942
+ audience: "learner",
4943
+ solutionBearing: false
4944
+ },
4945
+ {
4946
+ id: "vibe-bug-detective-m1-guide",
4947
+ kind: "starter-assets",
4948
+ audience: "learner",
4949
+ solutionBearing: false
4950
+ },
4951
+ {
4952
+ id: "vibe-bug-detective-m1-evidence-card",
4953
+ kind: "printable",
4954
+ audience: "learner",
4955
+ solutionBearing: false
4956
+ }
4957
+ ],
4958
+ goals: [
4959
+ {
4960
+ id: "vibe-bug-detective-m1-starts",
4961
+ statement: "The intentionally broken JavaScript mini-game remains structurally valid and starts.",
4962
+ visibility: "visible",
4963
+ criterionIds: ["vibe-bug-detective-build"],
4964
+ completionRequired: true,
4965
+ aiRequired: false
4966
+ },
4967
+ {
4968
+ id: "vibe-bug-detective-m1-repair",
4969
+ statement: "The robot travels three steps toward the right-side rescue beacon after one minimal direction repair.",
4970
+ visibility: "visible",
4971
+ criterionIds: [
4972
+ "vibe-bug-detective-goal-one",
4973
+ "vibe-bug-detective-goal-two",
4974
+ "vibe-bug-detective-goal-three"
4975
+ ],
4976
+ completionRequired: true,
4977
+ aiRequired: false
4978
+ },
4979
+ {
4980
+ id: "vibe-bug-detective-m1-regression-safety",
4981
+ statement: "The repair preserves the bounded step and beacon settings inside the private sandbox.",
4982
+ visibility: "visible",
4983
+ criterionIds: ["vibe-bug-detective-safety"],
4984
+ completionRequired: true,
4985
+ aiRequired: false
4986
+ }
4987
+ ],
4988
+ interactions: [
4989
+ {
4990
+ id: "vibe-bug-detective-m1-run-control",
4991
+ description: "Reproduce the supplied mini-game bug in the private preview.",
4992
+ primaryMode: "pointer",
4993
+ alternativeIds: ["vibe-bug-detective-m1-keyboard-run"]
4994
+ },
4995
+ {
4996
+ id: "vibe-bug-detective-m1-diff-review",
4997
+ description: "Read the labelled removed and added direction lines beside the assessment evidence.",
4998
+ primaryMode: "text",
4999
+ alternativeIds: []
5000
+ },
5001
+ {
5002
+ id: "vibe-bug-detective-m1-accept-control",
5003
+ description: "Approve the exact immutable repair snapshot.",
5004
+ primaryMode: "pointer",
5005
+ alternativeIds: ["vibe-bug-detective-m1-keyboard-review"]
5006
+ },
5007
+ {
5008
+ id: "vibe-bug-detective-m1-reject-control",
5009
+ description: "Reject the repair and preserve the current broken source.",
5010
+ primaryMode: "pointer",
5011
+ alternativeIds: ["vibe-bug-detective-m1-keyboard-review"]
5012
+ }
5013
+ ],
5014
+ accessibilityAlternatives: [
5015
+ {
5016
+ id: "vibe-bug-detective-m1-keyboard-run",
5017
+ modes: ["keyboard"],
5018
+ equivalentOutcome: true,
5019
+ description: "Press Enter or Space on the play-icon Run button to reproduce the same bug."
5020
+ },
5021
+ {
5022
+ id: "vibe-bug-detective-m1-keyboard-review",
5023
+ modes: ["keyboard", "text", "reduced-motion"],
5024
+ equivalentOutcome: true,
5025
+ description: "Read the text evidence and labelled diff, then focus Accept or Reject and press Enter or Space."
5026
+ }
5027
+ ],
5028
+ evidenceRequirements: [
5029
+ {
5030
+ id: "vibe-bug-detective-m1-assessment",
5031
+ goalIds: [
5032
+ "vibe-bug-detective-m1-starts",
5033
+ "vibe-bug-detective-m1-repair",
5034
+ "vibe-bug-detective-m1-regression-safety"
5035
+ ],
5036
+ kind: "assessment-result",
5037
+ retention: "entitlement",
5038
+ containsPersonalData: false
5039
+ },
5040
+ {
5041
+ id: "vibe-bug-detective-m1-explanation",
5042
+ goalIds: ["vibe-bug-detective-m1-repair"],
5043
+ kind: "learner-explanation",
5044
+ retention: "attempt",
5045
+ containsPersonalData: false
5046
+ }
5047
+ ],
5048
+ sideAdventures: [
5049
+ {
5050
+ id: "vibe-bug-detective-m1-regression-inventor",
5051
+ prompt: "Invent one extra regression test that proves the robot still stops at the rescue beacon.",
5052
+ completionRequired: false
5053
+ }
5054
+ ],
5055
+ rewardBindings: [
5056
+ {
5057
+ id: "vibe-bug-detective-m1-badge",
5058
+ badgeId: "vibe-bug-detective-mission-complete",
5059
+ goalIds: [
5060
+ "vibe-bug-detective-m1-starts",
5061
+ "vibe-bug-detective-m1-repair",
5062
+ "vibe-bug-detective-m1-regression-safety"
5063
+ ],
5064
+ deterministic: true,
5065
+ random: false,
5066
+ tokenConvertible: false
5067
+ }
5068
+ ],
5069
+ functionReference: [
5070
+ {
5071
+ id: "vibe-bug-detective-function-direction",
5072
+ signature: "setRobotDirection(direction)",
5073
+ summary: "Chooses the horizontal direction used by the supplied rescue robot.",
5074
+ parameters: [{ name: "direction", type: "text", description: "Use left or right." }],
5075
+ effect: "Changes only the labelled movement direction in the private mini-game.",
5076
+ example: 'setRobotDirection("right");'
5077
+ },
5078
+ {
5079
+ id: "vibe-bug-detective-function-steps",
5080
+ signature: "setRobotSteps(count)",
5081
+ summary: "Chooses how many bounded grid steps the robot attempts.",
5082
+ parameters: [{ name: "count", type: "whole number", description: "A bounded count from 1 to 4." }],
5083
+ effect: "Changes the private preview path length without controlling physical hardware.",
5084
+ example: "setRobotSteps(3);"
5085
+ },
5086
+ {
5087
+ id: "vibe-bug-detective-function-beacon",
5088
+ signature: "placeRescueBeacon(position)",
5089
+ summary: "Places the fictional rescue beacon on one labelled side.",
5090
+ parameters: [{ name: "position", type: "text", description: "Use left or right." }],
5091
+ effect: "Changes only the fictional beacon position in the private preview.",
5092
+ example: 'placeRescueBeacon("right");'
5093
+ }
5094
+ ],
5095
+ boundedSuggestion: {
5096
+ id: "vibe-bug-detective-m1-authored-direction-repair",
5097
+ source: "authored-fallback",
5098
+ intent: "Make the robot move toward the right-side rescue beacon.",
5099
+ constraints: [
5100
+ "Change exactly one documented direction setting.",
5101
+ "Preserve the step count and beacon position.",
5102
+ "Do not add network, storage, DOM, account or physical hardware access."
5103
+ ],
5104
+ permittedArtifactId: "vibe-bug-detective-m1-code",
5105
+ originalSnippet: 'setRobotDirection("left");',
5106
+ replacementSnippet: 'setRobotDirection("right");',
5107
+ explanationPrompt: "Which observed-versus-expected evidence identified the direction bug, and which regression result proves the repair?",
5108
+ aiOptional: false,
5109
+ learnerApprovalRequired: true,
5110
+ alternatives: ["accept", "reject"]
5111
+ }
5112
+ },
5113
+ facilitator: {
5114
+ artifacts: [
5115
+ {
5116
+ id: "vibe-bug-detective-m1-answer-key",
5117
+ kind: "answer-key",
5118
+ audience: "facilitator",
5119
+ solutionBearing: true
5120
+ },
5121
+ {
5122
+ id: "vibe-bug-detective-m1-protected-tests",
5123
+ kind: "protected-test",
5124
+ audience: "facilitator",
5125
+ solutionBearing: true
5126
+ },
5127
+ {
5128
+ id: "vibe-bug-detective-m1-safety-notes",
5129
+ kind: "facilitator-note",
5130
+ audience: "facilitator",
5131
+ solutionBearing: true
5132
+ }
5133
+ ],
5134
+ protectedGoals: [
5135
+ {
5136
+ id: "vibe-bug-detective-m1-protected-regressions",
5137
+ statement: "The repaired sandbox rejects extra statements, disallowed values, prompt injection, answer dumping, network access and changes outside the approved diff.",
5138
+ visibility: "protected",
5139
+ criterionIds: ["vibe-bug-detective-edge-one", "vibe-bug-detective-edge-two"],
5140
+ completionRequired: false,
5141
+ aiRequired: false
5142
+ }
5143
+ ],
5144
+ prompts: [
5145
+ "Ask the learner to describe observed and expected directions before revealing the authored repair.",
5146
+ "Keep every diagnostic choice tied to the current failing goal and permitted artifact; never invite free-form chat.",
5147
+ "A rejection must preserve the broken source, and AI/provider failure must never block deterministic repair or regression checks."
5148
+ ]
5149
+ }
5150
+ };
4877
5151
  var ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1 = {
4878
5152
  version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
4879
5153
  moduleId: "junior-coder.road-hopper-rally",
@@ -5241,6 +5515,7 @@ export {
5241
5515
  SERVO_CREATURE_MISSION_ONE_AUTHORING_V1,
5242
5516
  SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
5243
5517
  STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1,
5518
+ VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1,
5244
5519
  VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1,
5245
5520
  assertValidLearningPath,
5246
5521
  assertValidMissionAuthoringBundle,