@intellectif/lk-core 0.19.0 → 0.21.0

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +31 -2
  3. package/dist/{activity-f0bgZSTP.d.cts → activity-xhGV-Aeh.d.cts} +31 -4
  4. package/dist/{activity-f0bgZSTP.d.ts → activity-xhGV-Aeh.d.ts} +31 -4
  5. package/dist/ai-check.cjs +5 -5
  6. package/dist/ai-check.d.cts +1 -1
  7. package/dist/ai-check.d.ts +1 -1
  8. package/dist/ai-check.js +2 -2
  9. package/dist/{chunk-BIJCO2HM.js → chunk-IHOEP4EB.js} +2 -2
  10. package/dist/{chunk-FVZJ4X3Y.cjs → chunk-NRTP7WCW.cjs} +4 -4
  11. package/dist/{chunk-FVZJ4X3Y.cjs.map → chunk-NRTP7WCW.cjs.map} +1 -1
  12. package/dist/{chunk-MMEQKFFQ.js → chunk-Q7MV3IXJ.js} +196 -8
  13. package/dist/chunk-Q7MV3IXJ.js.map +1 -0
  14. package/dist/{chunk-COBK2RUX.cjs → chunk-WQVZPIN7.cjs} +197 -9
  15. package/dist/chunk-WQVZPIN7.cjs.map +1 -0
  16. package/dist/{index-bpuDhvXV.d.cts → index-BuD8Hc8o.d.cts} +1 -1
  17. package/dist/{index-DMCM3e3P.d.ts → index-DnJ_PI4d.d.ts} +1 -1
  18. package/dist/index.cjs +175 -9
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +177 -7
  21. package/dist/index.d.ts +177 -7
  22. package/dist/index.js +171 -5
  23. package/dist/index.js.map +1 -1
  24. package/dist/schemas.d.cts +2 -2
  25. package/dist/schemas.d.ts +2 -2
  26. package/dist/scoring.cjs +14 -2
  27. package/dist/scoring.cjs.map +1 -1
  28. package/dist/scoring.d.cts +240 -4
  29. package/dist/scoring.d.ts +240 -4
  30. package/dist/scoring.js +13 -1
  31. package/dist/xapi.d.cts +1 -1
  32. package/dist/xapi.d.ts +1 -1
  33. package/package.json +1 -1
  34. package/vectors/README.md +10 -0
  35. package/vectors/scoring.json +2127 -1
  36. package/dist/chunk-COBK2RUX.cjs.map +0 -1
  37. package/dist/chunk-MMEQKFFQ.js.map +0 -1
  38. /package/dist/{chunk-BIJCO2HM.js.map → chunk-IHOEP4EB.js.map} +0 -0
package/dist/index.cjs CHANGED
@@ -45,7 +45,7 @@ var _chunk2CV6NU32cjs = require('./chunk-2CV6NU32.cjs');
45
45
 
46
46
 
47
47
 
48
- var _chunkFVZJ4X3Ycjs = require('./chunk-FVZJ4X3Y.cjs');
48
+ var _chunkNRTP7WCWcjs = require('./chunk-NRTP7WCW.cjs');
49
49
 
50
50
 
51
51
 
@@ -64,7 +64,13 @@ var _chunkFVZJ4X3Ycjs = require('./chunk-FVZJ4X3Y.cjs');
64
64
 
65
65
 
66
66
 
67
- var _chunkCOBK2RUXcjs = require('./chunk-COBK2RUX.cjs');
67
+
68
+
69
+
70
+
71
+
72
+
73
+ var _chunkWQVZPIN7cjs = require('./chunk-WQVZPIN7.cjs');
68
74
 
69
75
 
70
76
 
@@ -208,6 +214,106 @@ function contentHash(value) {
208
214
  return fingerprint(canonicalJson(value));
209
215
  }
210
216
 
217
+ // src/delivery.ts
218
+ var OPEN_DELIVERY_POLICY = Object.freeze({
219
+ feedback: true,
220
+ solutions: true,
221
+ hints: true,
222
+ ai: Object.freeze({ hints: true, explanations: true })
223
+ });
224
+ var SETTINGS = ["feedback", "solutions", "hints"];
225
+ var AI_SETTINGS = ["hints", "explanations"];
226
+ function allows(value) {
227
+ return value === void 0 || value === null || value === true;
228
+ }
229
+ function resolveDeliveryPolicy(policy) {
230
+ if (policy === void 0 || policy === null) {
231
+ return OPEN_DELIVERY_POLICY;
232
+ }
233
+ if (typeof policy !== "object" || Array.isArray(policy)) {
234
+ return {
235
+ feedback: false,
236
+ solutions: false,
237
+ hints: false,
238
+ ai: { hints: false, explanations: false }
239
+ };
240
+ }
241
+ const given = policy;
242
+ const ai = given.ai;
243
+ const aiGiven = ai === void 0 || ai === null || ai === true ? {} : typeof ai === "object" && !Array.isArray(ai) ? ai : { hints: false, explanations: false };
244
+ return {
245
+ feedback: allows(given.feedback),
246
+ solutions: allows(given.solutions),
247
+ hints: allows(given.hints),
248
+ ai: { hints: allows(aiGiven.hints), explanations: allows(aiGiven.explanations) }
249
+ };
250
+ }
251
+ function combineDeliveryPolicies(...policies) {
252
+ const resolved = policies.map(resolveDeliveryPolicy);
253
+ const every = (read) => resolved.every(read);
254
+ return {
255
+ feedback: every((one) => one.feedback),
256
+ solutions: every((one) => one.solutions),
257
+ hints: every((one) => one.hints),
258
+ ai: {
259
+ hints: every((one) => one.ai.hints),
260
+ explanations: every((one) => one.ai.explanations)
261
+ }
262
+ };
263
+ }
264
+ function validateDeliveryPolicy(policy) {
265
+ const issues = [];
266
+ if (policy === void 0 || policy === null) {
267
+ return { success: true, data: {} };
268
+ }
269
+ if (typeof policy !== "object" || Array.isArray(policy)) {
270
+ return {
271
+ success: false,
272
+ issues: [{ path: "", message: "A delivery policy is an object of settings." }]
273
+ };
274
+ }
275
+ const given = policy;
276
+ for (const key of Object.keys(given)) {
277
+ if (key === "ai") {
278
+ continue;
279
+ }
280
+ if (!SETTINGS.includes(key)) {
281
+ issues.push({
282
+ path: key,
283
+ message: `"${key}" is not a delivery setting. The settings are feedback, solutions, hints and ai.`
284
+ });
285
+ continue;
286
+ }
287
+ const value = given[key];
288
+ if (value !== true && value !== false && value !== null && value !== void 0) {
289
+ issues.push({ path: key, message: `"${key}" must be true, false or null.` });
290
+ }
291
+ }
292
+ const ai = given.ai;
293
+ if (ai !== void 0 && ai !== null && ai !== true && ai !== false) {
294
+ if (typeof ai !== "object" || Array.isArray(ai)) {
295
+ issues.push({
296
+ path: "ai",
297
+ message: '"ai" must be true, false, or an object of hints and explanations.'
298
+ });
299
+ } else {
300
+ for (const [key, value] of Object.entries(ai)) {
301
+ if (!AI_SETTINGS.includes(key)) {
302
+ issues.push({
303
+ path: `ai.${key}`,
304
+ message: `"ai.${key}" is not an AI setting. The settings are hints and explanations.`
305
+ });
306
+ continue;
307
+ }
308
+ if (value !== true && value !== false && value !== null && value !== void 0) {
309
+ issues.push({ path: `ai.${key}`, message: `"ai.${key}" must be true, false or null.` });
310
+ }
311
+ }
312
+ }
313
+ }
314
+ return issues.length > 0 ? { success: false, issues } : { success: true, data: given };
315
+ }
316
+
211
317
  // src/shuffle.ts
212
318
  function hashSeed(input) {
213
319
  let h = 2166136261 >>> 0;
@@ -511,6 +617,8 @@ function planSlot(slot, points) {
511
617
  }
512
618
  function planAttempt(entries, options = {}) {
513
619
  const { seed, shuffleEntries, points } = options;
620
+ const delivery = frozenDelivery(options.delivery);
621
+ const scoring = frozenScoring(options.scoring);
514
622
  const slots = flattenSequence(entries, {
515
623
  ...shuffleEntries !== void 0 ? { shuffleEntries } : {},
516
624
  ...seed !== void 0 ? { seed } : {}
@@ -525,7 +633,22 @@ function planAttempt(entries, options = {}) {
525
633
  // The plan's own fingerprint covers the slots verbatim — identity, order,
526
634
  // points and content hashes — so one stored value answers "is this still
527
635
  // the paper that was sat?" and the per-slot hashes then say what moved.
528
- planHash: contentHash(planned),
636
+ // A policy joins it when there is one: the same paper sat with hints and
637
+ // without is two different attempts. Without one, the fingerprint is the
638
+ // one every plan before policies had.
639
+ // So does a scoring policy: the same answers are worth something else when
640
+ // a hint costs a tenth of the marks. Each joins only when it is there, so
641
+ // a plan with neither — or with a delivery policy alone — keeps the
642
+ // fingerprint it always had.
643
+ planHash: contentHash(
644
+ delivery === void 0 && scoring === void 0 ? planned : {
645
+ slots: planned,
646
+ ...delivery !== void 0 ? { delivery } : {},
647
+ ...scoring !== void 0 ? { scoring } : {}
648
+ }
649
+ ),
650
+ ...delivery !== void 0 ? { delivery } : {},
651
+ ...scoring !== void 0 ? { scoring } : {},
529
652
  slots: planned,
530
653
  totalPoints
531
654
  };
@@ -540,6 +663,8 @@ function verifyAttemptPlan(plan, current) {
540
663
  const changedCueSlotIds = [];
541
664
  const changedPointsSlotIds = [];
542
665
  const reorderedSlotIds = [];
666
+ const deliveryChanged = contentHash(_nullishCoalesce(plan.delivery, () => ( null))) !== contentHash(_nullishCoalesce(current.delivery, () => ( null)));
667
+ const scoringChanged = contentHash(_nullishCoalesce(plan.scoring, () => ( null))) !== contentHash(_nullishCoalesce(current.scoring, () => ( null)));
543
668
  for (const slot of plan.slots) {
544
669
  const now = after.get(slot.slotId);
545
670
  if (now === void 0) {
@@ -562,16 +687,47 @@ function verifyAttemptPlan(plan, current) {
562
687
  }
563
688
  }
564
689
  return {
565
- matches: missingSlotIds.length === 0 && addedSlotIds.length === 0 && changedSlotIds.length === 0 && changedStimulusSlotIds.length === 0 && changedCueSlotIds.length === 0 && changedPointsSlotIds.length === 0 && reorderedSlotIds.length === 0,
690
+ matches: missingSlotIds.length === 0 && addedSlotIds.length === 0 && changedSlotIds.length === 0 && changedStimulusSlotIds.length === 0 && changedCueSlotIds.length === 0 && changedPointsSlotIds.length === 0 && reorderedSlotIds.length === 0 && !deliveryChanged && !scoringChanged,
566
691
  missingSlotIds,
567
692
  addedSlotIds,
568
693
  changedSlotIds,
569
694
  changedStimulusSlotIds,
570
695
  changedCueSlotIds,
571
696
  changedPointsSlotIds,
572
- reorderedSlotIds
697
+ reorderedSlotIds,
698
+ // Present only when it is true, as `rejectedSlotIds` is on a composed
699
+ // score: a drift report between two plans without a policy — every one
700
+ // written before policies existed — keeps exactly the shape it had.
701
+ ...deliveryChanged ? { deliveryChanged: true } : {},
702
+ ...scoringChanged ? { scoringChanged: true } : {}
573
703
  };
574
704
  }
705
+ function frozenDelivery(policy) {
706
+ if (policy === void 0 || policy === null) {
707
+ return void 0;
708
+ }
709
+ const checked = validateDeliveryPolicy(policy);
710
+ if (!checked.success) {
711
+ const first = checked.issues[0];
712
+ throw new Error(
713
+ `planAttempt: the delivery policy is not one to record \u2014 ${_nullishCoalesce(_optionalChain([first, 'optionalAccess', _23 => _23.message]), () => ( "invalid"))}` + (checked.issues.length > 1 ? ` (and ${checked.issues.length - 1} more)` : "")
714
+ );
715
+ }
716
+ return resolveDeliveryPolicy(checked.data);
717
+ }
718
+ function frozenScoring(policy) {
719
+ if (policy === void 0 || policy === null) {
720
+ return void 0;
721
+ }
722
+ const checked = _chunkWQVZPIN7cjs.validateItemScoringPolicy.call(void 0, policy);
723
+ if (!checked.success) {
724
+ const first = checked.issues[0];
725
+ throw new Error(
726
+ `planAttempt: the scoring policy is not one to record \u2014 ${_nullishCoalesce(_optionalChain([first, 'optionalAccess', _24 => _24.message]), () => ( "invalid"))}` + (checked.issues.length > 1 ? ` (and ${checked.issues.length - 1} more)` : "")
727
+ );
728
+ }
729
+ return _chunkWQVZPIN7cjs.resolveItemScoringPolicy.call(void 0, checked.data);
730
+ }
575
731
  function missingOutcome(slot, policy) {
576
732
  if (typeof policy === "function") {
577
733
  return policy(slot);
@@ -1159,7 +1315,7 @@ function validateDraftInScope(type, draft) {
1159
1315
  if (descriptor === void 0) {
1160
1316
  throw new (0, _chunkD4TOPSHVcjs.UnknownActivityTypeError)(String(type));
1161
1317
  }
1162
- const reported = _chunkD4TOPSHVcjs.isRecord.call(void 0, draft) && _optionalChain([descriptor, 'access', _23 => _23.authoring, 'optionalAccess', _24 => _24.checkDraft]) !== void 0 ? descriptor.authoring.checkDraft(draft).map(normalise) : [];
1318
+ const reported = _chunkD4TOPSHVcjs.isRecord.call(void 0, draft) && _optionalChain([descriptor, 'access', _25 => _25.authoring, 'optionalAccess', _26 => _26.checkDraft]) !== void 0 ? descriptor.authoring.checkDraft(draft).map(normalise) : [];
1163
1319
  const issues = [...reported];
1164
1320
  const parsed = descriptor.schema.safeParse(draft, { reportInput: true });
1165
1321
  if (!parsed.success) {
@@ -1203,7 +1359,7 @@ function createDraft(type, context) {
1203
1359
  if (descriptor === void 0) {
1204
1360
  throw new (0, _chunkD4TOPSHVcjs.UnknownActivityTypeError)(String(type));
1205
1361
  }
1206
- const create = _optionalChain([descriptor, 'access', _25 => _25.authoring, 'optionalAccess', _26 => _26.createDraft]);
1362
+ const create = _optionalChain([descriptor, 'access', _27 => _27.authoring, 'optionalAccess', _28 => _28.createDraft]);
1207
1363
  if (create === void 0) {
1208
1364
  throw new Error(
1209
1365
  `Activity type "${String(type)}" declares no authoring.createDraft, so there is no empty draft to create. Build the draft yourself; validateDraft works for every registered type.`
@@ -1500,7 +1656,7 @@ function composeTimelineScore(entryKey, items, policy) {
1500
1656
  `composeTimelineScore: no scored item belongs to entry "${entryKey}". Pass the video's slotKey (or its position in the sequence), and the items of the attempt that holds it.`
1501
1657
  );
1502
1658
  }
1503
- return _chunkCOBK2RUXcjs.composeAssessmentScore.call(void 0, [{ id: entryKey, weight: 1, items: own }], policy);
1659
+ return _chunkWQVZPIN7cjs.composeAssessmentScore.call(void 0, [{ id: entryKey, weight: 1, items: own }], policy);
1504
1660
  }
1505
1661
 
1506
1662
 
@@ -1662,5 +1818,15 @@ function composeTimelineScore(entryKey, items, policy) {
1662
1818
 
1663
1819
 
1664
1820
 
1665
- exports.AI_EXPLANATION_TYPES = _chunkFVZJ4X3Ycjs.AI_EXPLANATION_TYPES; exports.AI_HINT_TYPES = _chunkFVZJ4X3Ycjs.AI_HINT_TYPES; exports.AI_TEXT_MAX_LENGTH = _chunkFVZJ4X3Ycjs.AI_TEXT_MAX_LENGTH; exports.ActivitySchemaError = _chunkD4TOPSHVcjs.ActivitySchemaError; exports.AiPermissionsSchema = _chunkD4TOPSHVcjs.AiPermissionsSchema; exports.BlankConfigSchema = _chunkD4TOPSHVcjs.BlankConfigSchema; exports.DEFAULT_PASS_THRESHOLD = _chunkCOBK2RUXcjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkD4TOPSHVcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.DeferredScoringError = _chunkD4TOPSHVcjs.DeferredScoringError; exports.DictationDataSchema = _chunkD4TOPSHVcjs.DictationDataSchema; exports.DictationEquivalenceSchema = _chunkD4TOPSHVcjs.DictationEquivalenceSchema; exports.DictationSlowMediaSchema = _chunkD4TOPSHVcjs.DictationSlowMediaSchema; exports.DictationToleranceSchema = _chunkD4TOPSHVcjs.DictationToleranceSchema; exports.FeedbackSchema = _chunkD4TOPSHVcjs.FeedbackSchema; exports.FillInTheBlanksDataSchema = _chunkD4TOPSHVcjs.FillInTheBlanksDataSchema; exports.GapSelectBankSchema = _chunkD4TOPSHVcjs.GapSelectBankSchema; exports.GapSelectChoiceSchema = _chunkD4TOPSHVcjs.GapSelectChoiceSchema; exports.GapSelectDataSchema = _chunkD4TOPSHVcjs.GapSelectDataSchema; exports.GapSelectGapSchema = _chunkD4TOPSHVcjs.GapSelectGapSchema; exports.INTERACTIVE_VIDEO_ITEM_TYPES = _chunk2CV6NU32cjs.INTERACTIVE_VIDEO_ITEM_TYPES; exports.ItemGroupSchema = _chunk2CV6NU32cjs.ItemGroupSchema; exports.MediaPlaybackSchema = _chunkD4TOPSHVcjs.MediaPlaybackSchema; exports.MediaSchema = _chunkD4TOPSHVcjs.MediaSchema; exports.MediaTimelineSchema = _chunk2CV6NU32cjs.MediaTimelineSchema; exports.MediaTrackSchema = _chunkD4TOPSHVcjs.MediaTrackSchema; exports.MediaUrlSchema = _chunkD4TOPSHVcjs.MediaUrlSchema; exports.MultipleChoiceDataSchema = _chunkD4TOPSHVcjs.MultipleChoiceDataSchema; exports.MultipleChoiceOptionMediaSchema = _chunkD4TOPSHVcjs.MultipleChoiceOptionMediaSchema; exports.MultipleChoiceOptionSchema = _chunkD4TOPSHVcjs.MultipleChoiceOptionSchema; exports.NativeControlHintSchema = _chunkD4TOPSHVcjs.NativeControlHintSchema; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_TAKES; exports.ReadAloudDataSchema = _chunkD4TOPSHVcjs.ReadAloudDataSchema; exports.ReadAloudSlowMediaSchema = _chunkD4TOPSHVcjs.ReadAloudSlowMediaSchema; exports.RedactedBlankConfigSchema = _chunkD4TOPSHVcjs.RedactedBlankConfigSchema; exports.RedactedDictationDataSchema = _chunkD4TOPSHVcjs.RedactedDictationDataSchema; exports.RedactedDictationSlowMediaSchema = _chunkD4TOPSHVcjs.RedactedDictationSlowMediaSchema; exports.RedactedFillInTheBlanksDataSchema = _chunkD4TOPSHVcjs.RedactedFillInTheBlanksDataSchema; exports.RedactedGapSelectBankSchema = _chunkD4TOPSHVcjs.RedactedGapSelectBankSchema; exports.RedactedGapSelectChoiceSchema = _chunkD4TOPSHVcjs.RedactedGapSelectChoiceSchema; exports.RedactedGapSelectDataSchema = _chunkD4TOPSHVcjs.RedactedGapSelectDataSchema; exports.RedactedGapSelectGapSchema = _chunkD4TOPSHVcjs.RedactedGapSelectGapSchema; exports.RedactedItemGroupSchema = _chunk2CV6NU32cjs.RedactedItemGroupSchema; exports.RedactedMediaSchema = _chunkD4TOPSHVcjs.RedactedMediaSchema; exports.RedactedMultipleChoiceDataSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceDataSchema; exports.RedactedMultipleChoiceOptionMediaSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceOptionMediaSchema; exports.RedactedMultipleChoiceOptionSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceOptionSchema; exports.RedactedReadAloudDataSchema = _chunkD4TOPSHVcjs.RedactedReadAloudDataSchema; exports.RedactedScoringError = _chunkD4TOPSHVcjs.RedactedScoringError; exports.RedactedStimulusSchema = _chunk2CV6NU32cjs.RedactedStimulusSchema; exports.RedactedWrittenResponseDataSchema = _chunkD4TOPSHVcjs.RedactedWrittenResponseDataSchema; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkD4TOPSHVcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.StimulusSchema = _chunk2CV6NU32cjs.StimulusSchema; exports.TIMELINE_MAX_CHAPTERS = _chunk2CV6NU32cjs.TIMELINE_MAX_CHAPTERS; exports.TIMELINE_MAX_ITEMS = _chunk2CV6NU32cjs.TIMELINE_MAX_ITEMS; exports.TIMELINE_MAX_QUIZZES = _chunk2CV6NU32cjs.TIMELINE_MAX_QUIZZES; exports.TIMELINE_MAX_TITLE_LENGTH = _chunk2CV6NU32cjs.TIMELINE_MAX_TITLE_LENGTH; exports.TextMatchPolicySchema = _chunkD4TOPSHVcjs.TextMatchPolicySchema; exports.TimelineChapterSchema = _chunk2CV6NU32cjs.TimelineChapterSchema; exports.TimelineCueSchema = _chunk2CV6NU32cjs.TimelineCueSchema; exports.UnknownActivityTypeError = _chunkD4TOPSHVcjs.UnknownActivityTypeError; exports.WrittenResponseDataSchema = _chunkD4TOPSHVcjs.WrittenResponseDataSchema; exports.WrittenResponseRubricCriterionSchema = _chunkD4TOPSHVcjs.WrittenResponseRubricCriterionSchema; exports.WrittenResponseRubricSchema = _chunkD4TOPSHVcjs.WrittenResponseRubricSchema; exports.XAPIVerb = _chunkEOFWSGLUcjs.XAPIVerb; exports.XAPI_VERB_DISPLAY = _chunkEOFWSGLUcjs.XAPI_VERB_DISPLAY; exports.aiAllowedByContent = _chunkFVZJ4X3Ycjs.aiAllowedByContent; exports.aiExplanationRequest = _chunkFVZJ4X3Ycjs.aiExplanationRequest; exports.aiGradeOf = _chunkFVZJ4X3Ycjs.aiGradeOf; exports.aiHintRequest = _chunkFVZJ4X3Ycjs.aiHintRequest; exports.aiSupports = _chunkFVZJ4X3Ycjs.aiSupports; exports.alignDictation = _chunkD4TOPSHVcjs.alignDictation; exports.alignReadAloud = _chunkCOBK2RUXcjs.alignReadAloud; exports.assertRedacted = assertRedacted; exports.assertRedactedItemGroup = assertRedactedItemGroup; exports.buildAiFacts = _chunkFVZJ4X3Ycjs.buildAiFacts; exports.canonicalJson = canonicalJson; exports.checkAiExplanation = _chunkFVZJ4X3Ycjs.checkAiExplanation; exports.checkAiHint = _chunkFVZJ4X3Ycjs.checkAiHint; exports.classifyBand = _chunkCOBK2RUXcjs.classifyBand; exports.composeAssessmentScore = _chunkCOBK2RUXcjs.composeAssessmentScore; exports.composeTimelineScore = composeTimelineScore; exports.computePassThreshold = _chunkCOBK2RUXcjs.computePassThreshold; exports.contentHash = contentHash; exports.countWords = _chunkD4TOPSHVcjs.countWords; exports.createDraft = createDraft; exports.createInteractiveVideoDraft = createInteractiveVideoDraft; exports.createItemGroupDraft = createItemGroupDraft; exports.defineActivityType = _chunkD4TOPSHVcjs.defineActivityType; exports.dictationJsonSchema = _chunk2CV6NU32cjs.dictationJsonSchema; exports.dictationReferenceWords = _chunkD4TOPSHVcjs.dictationReferenceWords; exports.dictationType = _chunkD4TOPSHVcjs.dictationType; exports.diffDictationChars = _chunkCOBK2RUXcjs.diffDictationChars; exports.diffResponses = diffResponses; exports.entryKeyOf = entryKeyOf; exports.evaluate = _chunkCOBK2RUXcjs.evaluate; exports.fillInTheBlanksJsonSchema = _chunk2CV6NU32cjs.fillInTheBlanksJsonSchema; exports.fillInTheBlanksType = _chunkD4TOPSHVcjs.fillInTheBlanksType; exports.fingerprint = fingerprint; exports.flattenSequence = flattenSequence; exports.gapSelectJsonSchema = _chunk2CV6NU32cjs.gapSelectJsonSchema; exports.gapSelectType = _chunkD4TOPSHVcjs.gapSelectType; exports.getActivityTypeDescriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor; exports.gradeFromRubric = _chunkCOBK2RUXcjs.gradeFromRubric; exports.gradeReadAloud = _chunkCOBK2RUXcjs.gradeReadAloud; exports.gte = _chunkCOBK2RUXcjs.gte; exports.hasGrade = _chunkCOBK2RUXcjs.hasGrade; exports.hashSeed = hashSeed; exports.hintRevealsAnswer = _chunkFVZJ4X3Ycjs.hintRevealsAnswer; exports.inspectWav = _chunkCOBK2RUXcjs.inspectWav; exports.isInteractiveVideoItemType = _chunk2CV6NU32cjs.isInteractiveVideoItemType; exports.isItemGroup = isItemGroup; exports.itemGroupJsonSchema = _chunk2CV6NU32cjs.itemGroupJsonSchema; exports.jsonSchemaFor = _chunk2CV6NU32cjs.jsonSchemaFor; exports.levenshteinDistance = _chunkD4TOPSHVcjs.levenshteinDistance; exports.matchText = _chunkD4TOPSHVcjs.matchText; exports.multipleChoiceJsonSchema = _chunk2CV6NU32cjs.multipleChoiceJsonSchema; exports.multipleChoiceType = _chunkD4TOPSHVcjs.multipleChoiceType; exports.outcomeFromGrade = _chunkCOBK2RUXcjs.outcomeFromGrade; exports.outcomeFromUnscorable = _chunkCOBK2RUXcjs.outcomeFromUnscorable; exports.planAttempt = planAttempt; exports.planMediaBudgets = planMediaBudgets; exports.readAiTextResult = _chunkFVZJ4X3Ycjs.readAiTextResult; exports.readAloudJsonSchema = _chunk2CV6NU32cjs.readAloudJsonSchema; exports.readAloudType = _chunkD4TOPSHVcjs.readAloudType; exports.readMediaProgress = readMediaProgress; exports.redact = redact; exports.redactItemGroup = redactItemGroup; exports.registerActivityType = _chunkD4TOPSHVcjs.registerActivityType; exports.registeredActivityTypes = _chunkD4TOPSHVcjs.registeredActivityTypes; exports.resolvePlaybackPolicy = resolvePlaybackPolicy; exports.restoreAttemptState = restoreAttemptState; exports.restoreMediaPlayLedger = restoreMediaPlayLedger; exports.roundGrade = _chunkCOBK2RUXcjs.roundGrade; exports.score = _chunkCOBK2RUXcjs.score; exports.scoredItemsFromPlan = scoredItemsFromPlan; exports.seededShuffle = seededShuffle; exports.serializeAttemptState = serializeAttemptState; exports.serializeMediaPlayLedger = serializeMediaPlayLedger; exports.slotMediaKey = slotMediaKey; exports.stimulusJsonSchema = _chunk2CV6NU32cjs.stimulusJsonSchema; exports.stimulusMediaKey = stimulusMediaKey; exports.validateActivity = _chunk2CV6NU32cjs.validateActivity; exports.validateDraft = validateDraft; exports.validateItemGroup = _chunk2CV6NU32cjs.validateItemGroup; exports.validateItemGroupDraft = validateItemGroupDraft; exports.validateSpeechAssessment = _chunkCOBK2RUXcjs.validateSpeechAssessment; exports.validateXAPIStatement = _chunkEOFWSGLUcjs.validateXAPIStatement; exports.verifyAttemptPlan = verifyAttemptPlan; exports.writtenResponseJsonSchema = _chunk2CV6NU32cjs.writtenResponseJsonSchema; exports.writtenResponseType = _chunkD4TOPSHVcjs.writtenResponseType; exports.xAPIBuilder = _chunkEOFWSGLUcjs.xAPIBuilder; exports.xapiDefinitionFor = _chunkEOFWSGLUcjs.xapiDefinitionFor;
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+ exports.AI_EXPLANATION_TYPES = _chunkNRTP7WCWcjs.AI_EXPLANATION_TYPES; exports.AI_HINT_TYPES = _chunkNRTP7WCWcjs.AI_HINT_TYPES; exports.AI_TEXT_MAX_LENGTH = _chunkNRTP7WCWcjs.AI_TEXT_MAX_LENGTH; exports.ActivitySchemaError = _chunkD4TOPSHVcjs.ActivitySchemaError; exports.AiPermissionsSchema = _chunkD4TOPSHVcjs.AiPermissionsSchema; exports.BlankConfigSchema = _chunkD4TOPSHVcjs.BlankConfigSchema; exports.DEFAULT_ITEM_SCORING_POLICY = _chunkWQVZPIN7cjs.DEFAULT_ITEM_SCORING_POLICY; exports.DEFAULT_PASS_THRESHOLD = _chunkWQVZPIN7cjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkD4TOPSHVcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.DeferredScoringError = _chunkD4TOPSHVcjs.DeferredScoringError; exports.DictationDataSchema = _chunkD4TOPSHVcjs.DictationDataSchema; exports.DictationEquivalenceSchema = _chunkD4TOPSHVcjs.DictationEquivalenceSchema; exports.DictationSlowMediaSchema = _chunkD4TOPSHVcjs.DictationSlowMediaSchema; exports.DictationToleranceSchema = _chunkD4TOPSHVcjs.DictationToleranceSchema; exports.FeedbackSchema = _chunkD4TOPSHVcjs.FeedbackSchema; exports.FillInTheBlanksDataSchema = _chunkD4TOPSHVcjs.FillInTheBlanksDataSchema; exports.GapSelectBankSchema = _chunkD4TOPSHVcjs.GapSelectBankSchema; exports.GapSelectChoiceSchema = _chunkD4TOPSHVcjs.GapSelectChoiceSchema; exports.GapSelectDataSchema = _chunkD4TOPSHVcjs.GapSelectDataSchema; exports.GapSelectGapSchema = _chunkD4TOPSHVcjs.GapSelectGapSchema; exports.INTERACTIVE_VIDEO_ITEM_TYPES = _chunk2CV6NU32cjs.INTERACTIVE_VIDEO_ITEM_TYPES; exports.ITEM_SCORING_MAX_RETRIES = _chunkWQVZPIN7cjs.ITEM_SCORING_MAX_RETRIES; exports.ItemGroupSchema = _chunk2CV6NU32cjs.ItemGroupSchema; exports.MediaPlaybackSchema = _chunkD4TOPSHVcjs.MediaPlaybackSchema; exports.MediaSchema = _chunkD4TOPSHVcjs.MediaSchema; exports.MediaTimelineSchema = _chunk2CV6NU32cjs.MediaTimelineSchema; exports.MediaTrackSchema = _chunkD4TOPSHVcjs.MediaTrackSchema; exports.MediaUrlSchema = _chunkD4TOPSHVcjs.MediaUrlSchema; exports.MultipleChoiceDataSchema = _chunkD4TOPSHVcjs.MultipleChoiceDataSchema; exports.MultipleChoiceOptionMediaSchema = _chunkD4TOPSHVcjs.MultipleChoiceOptionMediaSchema; exports.MultipleChoiceOptionSchema = _chunkD4TOPSHVcjs.MultipleChoiceOptionSchema; exports.NativeControlHintSchema = _chunkD4TOPSHVcjs.NativeControlHintSchema; exports.OPEN_DELIVERY_POLICY = OPEN_DELIVERY_POLICY; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_TAKES; exports.ReadAloudDataSchema = _chunkD4TOPSHVcjs.ReadAloudDataSchema; exports.ReadAloudSlowMediaSchema = _chunkD4TOPSHVcjs.ReadAloudSlowMediaSchema; exports.RedactedBlankConfigSchema = _chunkD4TOPSHVcjs.RedactedBlankConfigSchema; exports.RedactedDictationDataSchema = _chunkD4TOPSHVcjs.RedactedDictationDataSchema; exports.RedactedDictationSlowMediaSchema = _chunkD4TOPSHVcjs.RedactedDictationSlowMediaSchema; exports.RedactedFillInTheBlanksDataSchema = _chunkD4TOPSHVcjs.RedactedFillInTheBlanksDataSchema; exports.RedactedGapSelectBankSchema = _chunkD4TOPSHVcjs.RedactedGapSelectBankSchema; exports.RedactedGapSelectChoiceSchema = _chunkD4TOPSHVcjs.RedactedGapSelectChoiceSchema; exports.RedactedGapSelectDataSchema = _chunkD4TOPSHVcjs.RedactedGapSelectDataSchema; exports.RedactedGapSelectGapSchema = _chunkD4TOPSHVcjs.RedactedGapSelectGapSchema; exports.RedactedItemGroupSchema = _chunk2CV6NU32cjs.RedactedItemGroupSchema; exports.RedactedMediaSchema = _chunkD4TOPSHVcjs.RedactedMediaSchema; exports.RedactedMultipleChoiceDataSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceDataSchema; exports.RedactedMultipleChoiceOptionMediaSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceOptionMediaSchema; exports.RedactedMultipleChoiceOptionSchema = _chunkD4TOPSHVcjs.RedactedMultipleChoiceOptionSchema; exports.RedactedReadAloudDataSchema = _chunkD4TOPSHVcjs.RedactedReadAloudDataSchema; exports.RedactedScoringError = _chunkD4TOPSHVcjs.RedactedScoringError; exports.RedactedStimulusSchema = _chunk2CV6NU32cjs.RedactedStimulusSchema; exports.RedactedWrittenResponseDataSchema = _chunkD4TOPSHVcjs.RedactedWrittenResponseDataSchema; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkD4TOPSHVcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.StimulusSchema = _chunk2CV6NU32cjs.StimulusSchema; exports.TIMELINE_MAX_CHAPTERS = _chunk2CV6NU32cjs.TIMELINE_MAX_CHAPTERS; exports.TIMELINE_MAX_ITEMS = _chunk2CV6NU32cjs.TIMELINE_MAX_ITEMS; exports.TIMELINE_MAX_QUIZZES = _chunk2CV6NU32cjs.TIMELINE_MAX_QUIZZES; exports.TIMELINE_MAX_TITLE_LENGTH = _chunk2CV6NU32cjs.TIMELINE_MAX_TITLE_LENGTH; exports.TextMatchPolicySchema = _chunkD4TOPSHVcjs.TextMatchPolicySchema; exports.TimelineChapterSchema = _chunk2CV6NU32cjs.TimelineChapterSchema; exports.TimelineCueSchema = _chunk2CV6NU32cjs.TimelineCueSchema; exports.UnknownActivityTypeError = _chunkD4TOPSHVcjs.UnknownActivityTypeError; exports.WrittenResponseDataSchema = _chunkD4TOPSHVcjs.WrittenResponseDataSchema; exports.WrittenResponseRubricCriterionSchema = _chunkD4TOPSHVcjs.WrittenResponseRubricCriterionSchema; exports.WrittenResponseRubricSchema = _chunkD4TOPSHVcjs.WrittenResponseRubricSchema; exports.XAPIVerb = _chunkEOFWSGLUcjs.XAPIVerb; exports.XAPI_VERB_DISPLAY = _chunkEOFWSGLUcjs.XAPI_VERB_DISPLAY; exports.aiAllowedByContent = _chunkNRTP7WCWcjs.aiAllowedByContent; exports.aiExplanationRequest = _chunkNRTP7WCWcjs.aiExplanationRequest; exports.aiGradeOf = _chunkNRTP7WCWcjs.aiGradeOf; exports.aiHintRequest = _chunkNRTP7WCWcjs.aiHintRequest; exports.aiSupports = _chunkNRTP7WCWcjs.aiSupports; exports.alignDictation = _chunkD4TOPSHVcjs.alignDictation; exports.alignReadAloud = _chunkWQVZPIN7cjs.alignReadAloud; exports.assertRedacted = assertRedacted; exports.assertRedactedItemGroup = assertRedactedItemGroup; exports.buildAiFacts = _chunkNRTP7WCWcjs.buildAiFacts; exports.canonicalJson = canonicalJson; exports.checkAiExplanation = _chunkNRTP7WCWcjs.checkAiExplanation; exports.checkAiHint = _chunkNRTP7WCWcjs.checkAiHint; exports.classifyBand = _chunkWQVZPIN7cjs.classifyBand; exports.combineDeliveryPolicies = combineDeliveryPolicies; exports.composeAssessmentScore = _chunkWQVZPIN7cjs.composeAssessmentScore; exports.composeTimelineScore = composeTimelineScore; exports.computePassThreshold = _chunkWQVZPIN7cjs.computePassThreshold; exports.contentHash = contentHash; exports.countWords = _chunkD4TOPSHVcjs.countWords; exports.createDraft = createDraft; exports.createInteractiveVideoDraft = createInteractiveVideoDraft; exports.createItemGroupDraft = createItemGroupDraft; exports.defineActivityType = _chunkD4TOPSHVcjs.defineActivityType; exports.dictationJsonSchema = _chunk2CV6NU32cjs.dictationJsonSchema; exports.dictationReferenceWords = _chunkD4TOPSHVcjs.dictationReferenceWords; exports.dictationType = _chunkD4TOPSHVcjs.dictationType; exports.diffDictationChars = _chunkWQVZPIN7cjs.diffDictationChars; exports.diffResponses = diffResponses; exports.entryKeyOf = entryKeyOf; exports.evaluate = _chunkWQVZPIN7cjs.evaluate; exports.evaluateTries = _chunkWQVZPIN7cjs.evaluateTries; exports.fillInTheBlanksJsonSchema = _chunk2CV6NU32cjs.fillInTheBlanksJsonSchema; exports.fillInTheBlanksType = _chunkD4TOPSHVcjs.fillInTheBlanksType; exports.fingerprint = fingerprint; exports.flattenSequence = flattenSequence; exports.gapSelectJsonSchema = _chunk2CV6NU32cjs.gapSelectJsonSchema; exports.gapSelectType = _chunkD4TOPSHVcjs.gapSelectType; exports.getActivityTypeDescriptor = _chunkD4TOPSHVcjs.getActivityTypeDescriptor; exports.gradeFromRubric = _chunkWQVZPIN7cjs.gradeFromRubric; exports.gradeReadAloud = _chunkWQVZPIN7cjs.gradeReadAloud; exports.gte = _chunkWQVZPIN7cjs.gte; exports.hasGrade = _chunkWQVZPIN7cjs.hasGrade; exports.hashSeed = hashSeed; exports.hintRevealsAnswer = _chunkNRTP7WCWcjs.hintRevealsAnswer; exports.inspectWav = _chunkWQVZPIN7cjs.inspectWav; exports.isInteractiveVideoItemType = _chunk2CV6NU32cjs.isInteractiveVideoItemType; exports.isItemGroup = isItemGroup; exports.itemGroupJsonSchema = _chunk2CV6NU32cjs.itemGroupJsonSchema; exports.jsonSchemaFor = _chunk2CV6NU32cjs.jsonSchemaFor; exports.levenshteinDistance = _chunkD4TOPSHVcjs.levenshteinDistance; exports.matchText = _chunkD4TOPSHVcjs.matchText; exports.multipleChoiceJsonSchema = _chunk2CV6NU32cjs.multipleChoiceJsonSchema; exports.multipleChoiceType = _chunkD4TOPSHVcjs.multipleChoiceType; exports.outcomeFromGrade = _chunkWQVZPIN7cjs.outcomeFromGrade; exports.outcomeFromUnscorable = _chunkWQVZPIN7cjs.outcomeFromUnscorable; exports.planAttempt = planAttempt; exports.planMediaBudgets = planMediaBudgets; exports.readAiTextResult = _chunkNRTP7WCWcjs.readAiTextResult; exports.readAloudJsonSchema = _chunk2CV6NU32cjs.readAloudJsonSchema; exports.readAloudType = _chunkD4TOPSHVcjs.readAloudType; exports.readMediaProgress = readMediaProgress; exports.redact = redact; exports.redactItemGroup = redactItemGroup; exports.registerActivityType = _chunkD4TOPSHVcjs.registerActivityType; exports.registeredActivityTypes = _chunkD4TOPSHVcjs.registeredActivityTypes; exports.resolveDeliveryPolicy = resolveDeliveryPolicy; exports.resolveItemScoringPolicy = _chunkWQVZPIN7cjs.resolveItemScoringPolicy; exports.resolvePlaybackPolicy = resolvePlaybackPolicy; exports.restoreAttemptState = restoreAttemptState; exports.restoreMediaPlayLedger = restoreMediaPlayLedger; exports.roundGrade = _chunkWQVZPIN7cjs.roundGrade; exports.score = _chunkWQVZPIN7cjs.score; exports.scoreTries = _chunkWQVZPIN7cjs.scoreTries; exports.scoredItemsFromPlan = scoredItemsFromPlan; exports.seededShuffle = seededShuffle; exports.serializeAttemptState = serializeAttemptState; exports.serializeMediaPlayLedger = serializeMediaPlayLedger; exports.slotMediaKey = slotMediaKey; exports.stimulusJsonSchema = _chunk2CV6NU32cjs.stimulusJsonSchema; exports.stimulusMediaKey = stimulusMediaKey; exports.validateActivity = _chunk2CV6NU32cjs.validateActivity; exports.validateDeliveryPolicy = validateDeliveryPolicy; exports.validateDraft = validateDraft; exports.validateItemGroup = _chunk2CV6NU32cjs.validateItemGroup; exports.validateItemGroupDraft = validateItemGroupDraft; exports.validateItemScoringPolicy = _chunkWQVZPIN7cjs.validateItemScoringPolicy; exports.validateSpeechAssessment = _chunkWQVZPIN7cjs.validateSpeechAssessment; exports.validateXAPIStatement = _chunkEOFWSGLUcjs.validateXAPIStatement; exports.verifyAttemptPlan = verifyAttemptPlan; exports.writtenResponseJsonSchema = _chunk2CV6NU32cjs.writtenResponseJsonSchema; exports.writtenResponseType = _chunkD4TOPSHVcjs.writtenResponseType; exports.xAPIBuilder = _chunkEOFWSGLUcjs.xAPIBuilder; exports.xapiDefinitionFor = _chunkEOFWSGLUcjs.xapiDefinitionFor;
1666
1832
  //# sourceMappingURL=index.cjs.map