@plasius/learning 0.2.15 → 0.2.16

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
@@ -510,6 +510,8 @@ declare const METEOR_SHIELD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
510
510
  declare const VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
511
511
  /** Evidence-led Vibe repair mission; no open prompt or provider is required. */
512
512
  declare const VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
513
+ /** Goal-led Vibe prototype mission; all idea choices and changes are bounded. */
514
+ declare const VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
513
515
  /** Original first-mission exemplar; no protected content appears in learner data. */
514
516
  declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
515
517
 
@@ -518,4 +520,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
518
520
  /** Fail fast when a path is not safe to publish or consume. */
519
521
  declare function assertValidLearningPath(path: LearningPathVersionV1): void;
520
522
 
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 };
523
+ 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, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
package/dist/index.d.ts CHANGED
@@ -510,6 +510,8 @@ declare const METEOR_SHIELD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
510
510
  declare const VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
511
511
  /** Evidence-led Vibe repair mission; no open prompt or provider is required. */
512
512
  declare const VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
513
+ /** Goal-led Vibe prototype mission; all idea choices and changes are bounded. */
514
+ declare const VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
513
515
  /** Original first-mission exemplar; no protected content appears in learner data. */
514
516
  declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
515
517
 
@@ -518,4 +520,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
518
520
  /** Fail fast when a path is not safe to publish or consume. */
519
521
  declare function assertValidLearningPath(path: LearningPathVersionV1): void;
520
522
 
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 };
523
+ 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, VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
package/dist/index.js CHANGED
@@ -5148,6 +5148,292 @@ var VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1 = {
5148
5148
  ]
5149
5149
  }
5150
5150
  };
5151
+ var VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1 = {
5152
+ version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
5153
+ moduleId: "junior-coder.vibe-idea-studio",
5154
+ moduleVersion: "1.1.0",
5155
+ missionId: "vibe-idea-studio-mission-1",
5156
+ learner: {
5157
+ estimatedMinutes: 20,
5158
+ stages: [
5159
+ {
5160
+ kind: "learn",
5161
+ instruction: "Read how choosePrototype(), setStarCount() and setSuccessMessage() shape the bounded rescue-card template.",
5162
+ artifactIds: ["vibe-idea-studio-m1-guide"]
5163
+ },
5164
+ {
5165
+ kind: "predict",
5166
+ instruction: "Choose one idea, audience and acceptance test card, then predict what the one-line prototype change will show.",
5167
+ artifactIds: ["vibe-idea-studio-m1-idea-cards"]
5168
+ },
5169
+ {
5170
+ kind: "build",
5171
+ instruction: "Open the supplied template and keep every change inside its documented prototype settings artifact.",
5172
+ artifactIds: ["vibe-idea-studio-m1-code"]
5173
+ },
5174
+ {
5175
+ kind: "run",
5176
+ instruction: "Use the Run action button to preview the current rescue card in the private JavaScript simulator.",
5177
+ artifactIds: ["vibe-idea-studio-m1-code"]
5178
+ },
5179
+ {
5180
+ kind: "assess",
5181
+ instruction: "Run deterministic checks against the selected goal and acceptance test before viewing a suggestion.",
5182
+ artifactIds: []
5183
+ },
5184
+ {
5185
+ kind: "inspect",
5186
+ instruction: "Compare the exact one-line diff with your prediction, chosen goal and failed acceptance-test evidence.",
5187
+ artifactIds: ["vibe-idea-studio-m1-code"]
5188
+ },
5189
+ {
5190
+ kind: "fix",
5191
+ instruction: "Accept or reject the immutable prototype change yourself, then rerun the preview and tests.",
5192
+ artifactIds: ["vibe-idea-studio-m1-code"]
5193
+ },
5194
+ {
5195
+ kind: "explain",
5196
+ instruction: "Explain how the final evidence proves the prototype meets the selected idea, audience and success test.",
5197
+ artifactIds: []
5198
+ },
5199
+ {
5200
+ kind: "reward",
5201
+ instruction: "Collect the evidence-bound badge after the deterministic score reaches 80 and every safety check passes.",
5202
+ artifactIds: []
5203
+ }
5204
+ ],
5205
+ readinessChecks: [
5206
+ {
5207
+ id: "vibe-idea-studio-m1-match-test",
5208
+ prompt: "Match the three-star acceptance test to the documented setting that controls star count.",
5209
+ scored: false
5210
+ }
5211
+ ],
5212
+ artifacts: [
5213
+ {
5214
+ id: "vibe-idea-studio-m1-code",
5215
+ kind: "starter-code",
5216
+ audience: "learner",
5217
+ solutionBearing: false
5218
+ },
5219
+ {
5220
+ id: "vibe-idea-studio-m1-guide",
5221
+ kind: "starter-assets",
5222
+ audience: "learner",
5223
+ solutionBearing: false
5224
+ },
5225
+ {
5226
+ id: "vibe-idea-studio-m1-idea-cards",
5227
+ kind: "printable",
5228
+ audience: "learner",
5229
+ solutionBearing: false
5230
+ }
5231
+ ],
5232
+ goals: [
5233
+ {
5234
+ id: "vibe-idea-studio-m1-starts",
5235
+ statement: "The supplied JavaScript rescue-card template remains structurally valid and starts.",
5236
+ visibility: "visible",
5237
+ criterionIds: ["vibe-idea-studio-build"],
5238
+ completionRequired: true,
5239
+ aiRequired: false
5240
+ },
5241
+ {
5242
+ id: "vibe-idea-studio-m1-prototype-goal",
5243
+ statement: "The prototype is a space rescue card for a friendly robot crew with three stars and a visible success message.",
5244
+ visibility: "visible",
5245
+ criterionIds: [
5246
+ "vibe-idea-studio-goal-one",
5247
+ "vibe-idea-studio-goal-two",
5248
+ "vibe-idea-studio-goal-three"
5249
+ ],
5250
+ completionRequired: true,
5251
+ aiRequired: false
5252
+ },
5253
+ {
5254
+ id: "vibe-idea-studio-m1-private-boundary",
5255
+ statement: "The prototype stays inside the selected template, permitted artifact and private sandbox.",
5256
+ visibility: "visible",
5257
+ criterionIds: ["vibe-idea-studio-safety"],
5258
+ completionRequired: true,
5259
+ aiRequired: false
5260
+ }
5261
+ ],
5262
+ interactions: [
5263
+ {
5264
+ id: "vibe-idea-studio-m1-idea-cards",
5265
+ description: "Choose one bounded idea, audience and acceptance-test card.",
5266
+ primaryMode: "pointer",
5267
+ alternativeIds: ["vibe-idea-studio-m1-keyboard-cards"]
5268
+ },
5269
+ {
5270
+ id: "vibe-idea-studio-m1-run-control",
5271
+ description: "Start the private rescue-card preview.",
5272
+ primaryMode: "pointer",
5273
+ alternativeIds: ["vibe-idea-studio-m1-keyboard-run"]
5274
+ },
5275
+ {
5276
+ id: "vibe-idea-studio-m1-diff-review",
5277
+ description: "Read the labelled removed and added star-count lines before deciding.",
5278
+ primaryMode: "text",
5279
+ alternativeIds: []
5280
+ },
5281
+ {
5282
+ id: "vibe-idea-studio-m1-accept-control",
5283
+ description: "Approve the exact immutable prototype change.",
5284
+ primaryMode: "pointer",
5285
+ alternativeIds: ["vibe-idea-studio-m1-keyboard-review"]
5286
+ },
5287
+ {
5288
+ id: "vibe-idea-studio-m1-reject-control",
5289
+ description: "Reject the suggestion and preserve the current source.",
5290
+ primaryMode: "pointer",
5291
+ alternativeIds: ["vibe-idea-studio-m1-keyboard-review"]
5292
+ }
5293
+ ],
5294
+ accessibilityAlternatives: [
5295
+ {
5296
+ id: "vibe-idea-studio-m1-keyboard-cards",
5297
+ modes: ["keyboard", "text"],
5298
+ equivalentOutcome: true,
5299
+ description: "Use labelled radio-card controls with arrow keys and Space to choose the same bounded goal."
5300
+ },
5301
+ {
5302
+ id: "vibe-idea-studio-m1-keyboard-run",
5303
+ modes: ["keyboard"],
5304
+ equivalentOutcome: true,
5305
+ description: "Press Enter or Space on the play-icon Run button to start the same preview."
5306
+ },
5307
+ {
5308
+ id: "vibe-idea-studio-m1-keyboard-review",
5309
+ modes: ["keyboard", "text", "reduced-motion"],
5310
+ equivalentOutcome: true,
5311
+ description: "Read the labelled diff and acceptance evidence, then focus Accept or Reject and press Enter or Space."
5312
+ }
5313
+ ],
5314
+ evidenceRequirements: [
5315
+ {
5316
+ id: "vibe-idea-studio-m1-assessment",
5317
+ goalIds: [
5318
+ "vibe-idea-studio-m1-starts",
5319
+ "vibe-idea-studio-m1-prototype-goal",
5320
+ "vibe-idea-studio-m1-private-boundary"
5321
+ ],
5322
+ kind: "assessment-result",
5323
+ retention: "entitlement",
5324
+ containsPersonalData: false
5325
+ },
5326
+ {
5327
+ id: "vibe-idea-studio-m1-explanation",
5328
+ goalIds: ["vibe-idea-studio-m1-prototype-goal"],
5329
+ kind: "learner-explanation",
5330
+ retention: "attempt",
5331
+ containsPersonalData: false
5332
+ }
5333
+ ],
5334
+ sideAdventures: [
5335
+ {
5336
+ id: "vibe-idea-studio-m1-test-inventor",
5337
+ prompt: "Write one new bounded audience card and one matching acceptance test without changing the template boundary.",
5338
+ completionRequired: false
5339
+ }
5340
+ ],
5341
+ rewardBindings: [
5342
+ {
5343
+ id: "vibe-idea-studio-m1-badge",
5344
+ badgeId: "vibe-idea-studio-mission-complete",
5345
+ goalIds: [
5346
+ "vibe-idea-studio-m1-starts",
5347
+ "vibe-idea-studio-m1-prototype-goal",
5348
+ "vibe-idea-studio-m1-private-boundary"
5349
+ ],
5350
+ deterministic: true,
5351
+ random: false,
5352
+ tokenConvertible: false
5353
+ }
5354
+ ],
5355
+ functionReference: [
5356
+ {
5357
+ id: "vibe-idea-studio-function-prototype",
5358
+ signature: "choosePrototype(kind)",
5359
+ summary: "Chooses one supplied, age-appropriate interactive prototype template.",
5360
+ parameters: [{ name: "kind", type: "text", description: "Use rescue-card, creature-card or mission-sign." }],
5361
+ effect: "Changes only the labelled template in the private preview.",
5362
+ example: 'choosePrototype("rescue-card");'
5363
+ },
5364
+ {
5365
+ id: "vibe-idea-studio-function-stars",
5366
+ signature: "setStarCount(count)",
5367
+ summary: "Chooses how many decorative success stars appear on the card.",
5368
+ parameters: [{ name: "count", type: "whole number", description: "A bounded count from 1 to 4." }],
5369
+ effect: "Changes only the visible star count in the private preview.",
5370
+ example: "setStarCount(3);"
5371
+ },
5372
+ {
5373
+ id: "vibe-idea-studio-function-message",
5374
+ signature: "setSuccessMessage(message)",
5375
+ summary: "Chooses one supplied child-safe success message.",
5376
+ parameters: [{ name: "message", type: "text", description: "Use Mission ready!, Great teamwork! or Rescue complete!" }],
5377
+ effect: "Changes only the fictional card message and never sends or stores text.",
5378
+ example: 'setSuccessMessage("Mission ready!");'
5379
+ }
5380
+ ],
5381
+ boundedSuggestion: {
5382
+ id: "vibe-idea-studio-m1-authored-star-diff",
5383
+ source: "authored-fallback",
5384
+ intent: "Meet the selected acceptance test by showing three stars.",
5385
+ constraints: [
5386
+ "Change exactly one documented star-count setting.",
5387
+ "Preserve the selected prototype and supplied success message.",
5388
+ "Do not add free-form content, network, storage, DOM, account or hardware access."
5389
+ ],
5390
+ permittedArtifactId: "vibe-idea-studio-m1-code",
5391
+ originalSnippet: "setStarCount(2);",
5392
+ replacementSnippet: "setStarCount(3);",
5393
+ explanationPrompt: "Did the accepted change satisfy the three-star acceptance test, and which evidence proves it?",
5394
+ aiOptional: false,
5395
+ learnerApprovalRequired: true,
5396
+ alternatives: ["accept", "reject"]
5397
+ }
5398
+ },
5399
+ facilitator: {
5400
+ artifacts: [
5401
+ {
5402
+ id: "vibe-idea-studio-m1-answer-key",
5403
+ kind: "answer-key",
5404
+ audience: "facilitator",
5405
+ solutionBearing: true
5406
+ },
5407
+ {
5408
+ id: "vibe-idea-studio-m1-protected-tests",
5409
+ kind: "protected-test",
5410
+ audience: "facilitator",
5411
+ solutionBearing: true
5412
+ },
5413
+ {
5414
+ id: "vibe-idea-studio-m1-safety-notes",
5415
+ kind: "facilitator-note",
5416
+ audience: "facilitator",
5417
+ solutionBearing: true
5418
+ }
5419
+ ],
5420
+ protectedGoals: [
5421
+ {
5422
+ id: "vibe-idea-studio-m1-protected-boundaries",
5423
+ statement: "The sandbox rejects free-form prompts, personal data, disallowed messages, extra statements, network access and changes outside the approved diff.",
5424
+ visibility: "protected",
5425
+ criterionIds: ["vibe-idea-studio-edge-one", "vibe-idea-studio-edge-two"],
5426
+ completionRequired: false,
5427
+ aiRequired: false
5428
+ }
5429
+ ],
5430
+ prompts: [
5431
+ "Ask the learner to name the idea, audience and acceptance test before revealing the authored diff.",
5432
+ "Keep choices bound to supplied child-safe cards, the current rubric and permitted artifact; never invite free-form chat.",
5433
+ "A rejection must preserve source, and AI/provider failure must never block deterministic prototype completion."
5434
+ ]
5435
+ }
5436
+ };
5151
5437
  var ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1 = {
5152
5438
  version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
5153
5439
  moduleId: "junior-coder.road-hopper-rally",
@@ -5517,6 +5803,7 @@ export {
5517
5803
  STAR_DEFENDER_SQUADRON_MISSION_ONE_AUTHORING_V1,
5518
5804
  VIBE_BUG_DETECTIVE_MISSION_ONE_AUTHORING_V1,
5519
5805
  VIBE_GAME_REMIX_LAB_MISSION_ONE_AUTHORING_V1,
5806
+ VIBE_IDEA_STUDIO_MISSION_ONE_AUTHORING_V1,
5520
5807
  assertValidLearningPath,
5521
5808
  assertValidMissionAuthoringBundle,
5522
5809
  calculateAssessment,