@intellectif/lk-core 1.5.0 → 1.7.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 (86) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/{ai-BYryFkF9.d.ts → ai-B1wYrqcB.d.cts} +83 -18
  3. package/dist/ai-B1wYrqcB.d.cts.map +1 -0
  4. package/dist/{ai-BYryFkF9.d.cts → ai-B1wYrqcB.d.ts} +83 -18
  5. package/dist/ai-B1wYrqcB.d.ts.map +1 -0
  6. package/dist/ai-check.cjs +13 -6
  7. package/dist/ai-check.cjs.map +1 -1
  8. package/dist/ai-check.d.cts +1 -5
  9. package/dist/ai-check.d.cts.map +1 -1
  10. package/dist/ai-check.d.ts +1 -5
  11. package/dist/ai-check.d.ts.map +1 -1
  12. package/dist/ai-check.js +13 -6
  13. package/dist/ai-check.js.map +1 -1
  14. package/dist/{ai-writing-D8PdhJJz.js → ai-writing-B7oMCt66.js} +311 -66
  15. package/dist/ai-writing-B7oMCt66.js.map +1 -0
  16. package/dist/{ai-writing-Cen7-3qs.cjs → ai-writing-DrPTV3R2.cjs} +313 -50
  17. package/dist/ai-writing-DrPTV3R2.cjs.map +1 -0
  18. package/dist/{index-DUaW1Tj5.d.ts → index-BM8LeDWn.d.cts} +2 -42
  19. package/dist/index-BM8LeDWn.d.cts.map +1 -0
  20. package/dist/{index-Bg0aeWtM.d.cts → index-BTkMQtws.d.ts} +2 -42
  21. package/dist/index-BTkMQtws.d.ts.map +1 -0
  22. package/dist/{index-wMc1E_aM.d.ts → index-BU99GFTl.d.ts} +2 -8
  23. package/dist/index-BU99GFTl.d.ts.map +1 -0
  24. package/dist/{index-CxpiWedW.d.ts → index-BdXs4-en.d.ts} +42 -20
  25. package/dist/index-BdXs4-en.d.ts.map +1 -0
  26. package/dist/{index-qMbxed1B.d.cts → index-DP9rvyOz.d.cts} +42 -20
  27. package/dist/index-DP9rvyOz.d.cts.map +1 -0
  28. package/dist/{index-D7R3Ll8R.d.cts → index-XCCoPoTU.d.cts} +2 -8
  29. package/dist/index-XCCoPoTU.d.cts.map +1 -0
  30. package/dist/index.cjs +70 -21
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +135 -69
  33. package/dist/index.d.cts.map +1 -1
  34. package/dist/index.d.ts +135 -69
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +65 -22
  37. package/dist/index.js.map +1 -1
  38. package/dist/{item-group-DEB7nLID.cjs → item-group-8P3WFuUK.cjs} +5 -6
  39. package/dist/item-group-8P3WFuUK.cjs.map +1 -0
  40. package/dist/{item-group-DdSUCUjM.js → item-group-CeDk7mfM.js} +5 -6
  41. package/dist/item-group-CeDk7mfM.js.map +1 -0
  42. package/dist/{registry-DaZRpqjW.js → registry-D92hz9iA.js} +124 -106
  43. package/dist/registry-D92hz9iA.js.map +1 -0
  44. package/dist/{registry-Ce00A_OW.cjs → registry-hzrkTeIT.cjs} +142 -107
  45. package/dist/registry-hzrkTeIT.cjs.map +1 -0
  46. package/dist/{schemas-DksueYsu.cjs → schemas-BWeskONy.cjs} +79 -18
  47. package/dist/schemas-BWeskONy.cjs.map +1 -0
  48. package/dist/{schemas-BioKFf3F.js → schemas-C7TViWCg.js} +74 -19
  49. package/dist/schemas-C7TViWCg.js.map +1 -0
  50. package/dist/schemas.cjs +5 -2
  51. package/dist/schemas.d.cts +2 -2
  52. package/dist/schemas.d.ts +2 -2
  53. package/dist/schemas.js +4 -3
  54. package/dist/{scoring-lKQVYsxy.cjs → scoring-CtkCFyFT.cjs} +22 -42
  55. package/dist/{scoring-lKQVYsxy.cjs.map → scoring-CtkCFyFT.cjs.map} +1 -1
  56. package/dist/{scoring-BKNNTz-s.js → scoring-DD1GHcLI.js} +22 -42
  57. package/dist/{scoring-BKNNTz-s.js.map → scoring-DD1GHcLI.js.map} +1 -1
  58. package/dist/scoring.cjs +2 -2
  59. package/dist/scoring.d.cts +2 -2
  60. package/dist/scoring.d.ts +2 -2
  61. package/dist/scoring.js +2 -2
  62. package/dist/{xapi-NYrTlpID.cjs → xapi-7btSpx6v.cjs} +5 -8
  63. package/dist/{xapi-NYrTlpID.cjs.map → xapi-7btSpx6v.cjs.map} +1 -1
  64. package/dist/{xapi-wR6gu4qS.js → xapi-Cgicg-zU.js} +5 -8
  65. package/dist/{xapi-wR6gu4qS.js.map → xapi-Cgicg-zU.js.map} +1 -1
  66. package/dist/xapi.cjs +1 -1
  67. package/dist/xapi.d.cts +1 -1
  68. package/dist/xapi.d.ts +1 -1
  69. package/dist/xapi.js +1 -1
  70. package/package.json +2 -2
  71. package/dist/ai-BYryFkF9.d.cts.map +0 -1
  72. package/dist/ai-BYryFkF9.d.ts.map +0 -1
  73. package/dist/ai-writing-Cen7-3qs.cjs.map +0 -1
  74. package/dist/ai-writing-D8PdhJJz.js.map +0 -1
  75. package/dist/index-Bg0aeWtM.d.cts.map +0 -1
  76. package/dist/index-CxpiWedW.d.ts.map +0 -1
  77. package/dist/index-D7R3Ll8R.d.cts.map +0 -1
  78. package/dist/index-DUaW1Tj5.d.ts.map +0 -1
  79. package/dist/index-qMbxed1B.d.cts.map +0 -1
  80. package/dist/index-wMc1E_aM.d.ts.map +0 -1
  81. package/dist/item-group-DEB7nLID.cjs.map +0 -1
  82. package/dist/item-group-DdSUCUjM.js.map +0 -1
  83. package/dist/registry-Ce00A_OW.cjs.map +0 -1
  84. package/dist/registry-DaZRpqjW.js.map +0 -1
  85. package/dist/schemas-BioKFf3F.js.map +0 -1
  86. package/dist/schemas-DksueYsu.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { A as checkAiCoaching, B as checkAiExplanation, C as createItemGroupDraft, D as AI_COACHING_MAX_TIP_LENGTH, E as validateItemGroupDraft, F as aiExplanationRequest, H as hintRevealsAnswer, I as aiGradeOf, L as aiHintRequest, M as AI_HINT_TYPES, N as AI_TEXT_MAX_LENGTH, O as AI_COACHING_MAX_WORDS, P as aiAllowedByContent, R as aiSupports, S as createInteractiveVideoDraft, T as critiqueItemGroupDraft, U as readAiTextResult, V as checkAiHint, W as AI_MATERIAL_MAX_LENGTH, _ as aiCritiqueRequest, a as checkAiGrading, b as critiqueDraft, c as AI_DRAFTS_MAX_COUNT, d as aiDraftsRequest, f as checkAiDrafts, g as AI_CRITIQUE_MAX_FINDINGS, h as AI_CRITIQUE_MAX_FIELD_LENGTH, i as aiGradingRequest, j as AI_EXPLANATION_TYPES, k as aiCoachingRequest, l as AI_DRAFTS_MAX_REPAIRS, m as interactiveVideoFromDrafts, n as checkAiWritingFeedback, o as AI_WRITING_MAX_CORRECTIONS, p as generateDrafts, r as AI_GRADING_PROBABILITY_TOLERANCE, s as AI_WRITING_MAX_FIELD_LENGTH, t as aiWritingFeedbackRequest, u as aiDraftsRepairRequest, v as checkAiCritique, w as critiqueDrafts, x as validateDraft, y as createDraft, z as buildAiFacts } from "./ai-writing-D8PdhJJz.js";
2
- import { $ as RedactedScoringError, A as levenshteinDistance, C as READ_ALOUD_MAX_TAKES, I as countWords, Q as DeferredScoringError, S as READ_ALOUD_MAX_SECONDS, T as SPEECH_ASSESSMENT_MAX_WORDS, Z as ActivitySchemaError, a as readSchema, at as DICTATION_MAX_ACCEPTED_TRANSCRIPTS, b as READ_ALOUD_MAX_DIMENSION_WEIGHT, c as dictationType, ct as DICTATION_MAX_TEXT_LENGTH, d as multipleChoiceType, et as UnknownActivityTypeError, f as readAloudType, h as defineActivityType, ht as isBuiltInActivityType, it as dictationReferenceWords, j as matchText, l as fillInTheBlanksType, lt as DICTATION_MAX_TRANSCRIPT_LENGTH, m as guardOf, n as registerActivityType, nt as alignDictation, ot as DICTATION_MAX_EQUIVALENCES, p as writtenResponseType, pt as BUILT_IN_ACTIVITY_TYPES, r as registeredActivityTypes, s as MEDIA_FIELD_POLICY, st as DICTATION_MAX_EQUIVALENCE_LENGTH, t as getActivityTypeDescriptor, u as gapSelectType, x as READ_ALOUD_MAX_REFERENCE_LENGTH } from "./registry-DaZRpqjW.js";
3
- import { A as DEFAULT_ITEM_SCORING_POLICY, C as contentHash, D as classifyBand, E as computePassThreshold, M as resolveItemScoringPolicy, N as scoreTries, O as gte, P as validateItemScoringPolicy, S as canonicalJson, T as DEFAULT_PASS_THRESHOLD, _ as gradeFromRubric, a as inspectWav, b as calibrationReport, c as validateSpeechAssessment, d as inAuditSample, f as outcomeFromRoutedGrade, g as gradeFromJudgement, h as seededShuffle, i as outcomeFromUnscorable, j as ITEM_SCORING_MAX_RETRIES, k as roundGrade, l as diffDictationChars, m as hashSeed, n as evaluateTries, o as gradeReadAloud, p as routeGrade, r as score, s as alignReadAloud, t as evaluate, u as composeAssessmentScore, v as hasGrade, w as fingerprint, x as graderConfiguration, y as outcomeFromGrade } from "./scoring-BKNNTz-s.js";
4
- import { a as INTERACTIVE_VIDEO_ITEM_TYPES, c as TIMELINE_MAX_QUIZZES, i as validateItemGroup, l as TIMELINE_MAX_TITLE_LENGTH, n as RedactedItemGroupSchema, o as TIMELINE_MAX_CHAPTERS, s as TIMELINE_MAX_ITEMS, u as isInteractiveVideoItemType } from "./item-group-DdSUCUjM.js";
5
- import { a as fillInTheBlanksJsonSchema, c as jsonSchemaFor, d as stimulusJsonSchema, f as writtenResponseJsonSchema, i as dictationJsonSchema, l as multipleChoiceJsonSchema, n as validateMedia, o as gapSelectJsonSchema, r as validateOptionMedia, s as itemGroupJsonSchema, t as validateActivity, u as readAloudJsonSchema } from "./schemas-BioKFf3F.js";
6
- import { a as validateXAPIStatement, i as XAPI_VERB_DISPLAY, n as xapiDefinitionFor, r as XAPIVerb, t as xAPIBuilder } from "./xapi-wR6gu4qS.js";
7
- //#region src/delivery.ts
1
+ import { A as AI_COACHING_MAX_TIP_LENGTH, B as aiHintRequest, C as createItemGroupDraft, D as listMediaRefs, E as validateItemGroupDraft, F as AI_HINT_TYPES, G as hintRevealsAnswer, H as buildAiFacts, I as AI_TEXT_MAX_LENGTH, K as readAiTextResult, L as aiAllowedByContent, M as aiCoachingRequest, N as checkAiCoaching, O as mapMediaRefs, P as AI_EXPLANATION_TYPES, R as aiExplanationRequest, S as createInteractiveVideoDraft, T as critiqueItemGroupDraft, U as checkAiExplanation, V as aiSupports, W as checkAiHint, _ as aiCritiqueRequest, a as checkAiGrading, b as critiqueDraft, c as AI_DRAFTS_MAX_COUNT, d as aiDraftsRequest, f as checkAiDrafts, g as AI_CRITIQUE_MAX_FINDINGS, h as AI_CRITIQUE_MAX_FIELD_LENGTH, i as aiGradingRequest, j as AI_COACHING_MAX_WORDS, k as transcriptOf, l as AI_DRAFTS_MAX_REPAIRS, m as interactiveVideoFromDrafts, n as checkAiWritingFeedback, o as AI_WRITING_MAX_CORRECTIONS, p as generateDrafts, q as AI_MATERIAL_MAX_LENGTH, r as AI_GRADING_PROBABILITY_TOLERANCE, s as AI_WRITING_MAX_FIELD_LENGTH, t as aiWritingFeedbackRequest, u as aiDraftsRepairRequest, v as checkAiCritique, w as critiqueDrafts, x as validateDraft, y as createDraft, z as aiGradeOf } from "./ai-writing-B7oMCt66.js";
2
+ import { $ as DeferredScoringError, C as READ_ALOUD_MAX_TAKES, L as countWords, M as matchText, Q as ActivitySchemaError, S as READ_ALOUD_MAX_SECONDS, T as SPEECH_ASSESSMENT_MAX_WORDS, Tt as SCRIPT_MAX_TURNS, a as readSchema, at as dictationReferenceWords, b as READ_ALOUD_MAX_DIMENSION_WEIGHT, c as dictationType, ct as DICTATION_MAX_EQUIVALENCE_LENGTH, d as multipleChoiceType, et as RedactedScoringError, f as readAloudType, gt as isBuiltInActivityType, h as defineActivityType, j as levenshteinDistance, l as fillInTheBlanksType, lt as DICTATION_MAX_TEXT_LENGTH, m as guardOf, mt as BUILT_IN_ACTIVITY_TYPES, n as registerActivityType, ot as DICTATION_MAX_ACCEPTED_TRANSCRIPTS, p as writtenResponseType, r as registeredActivityTypes, rt as alignDictation, s as MEDIA_FIELD_POLICY, st as DICTATION_MAX_EQUIVALENCES, t as getActivityTypeDescriptor, tt as UnknownActivityTypeError, u as gapSelectType, ut as DICTATION_MAX_TRANSCRIPT_LENGTH, x as READ_ALOUD_MAX_REFERENCE_LENGTH } from "./registry-D92hz9iA.js";
3
+ import { A as DEFAULT_ITEM_SCORING_POLICY, C as contentHash, D as classifyBand, E as computePassThreshold, M as resolveItemScoringPolicy, N as scoreTries, O as gte, P as validateItemScoringPolicy, S as canonicalJson, T as DEFAULT_PASS_THRESHOLD, _ as gradeFromRubric, a as inspectWav, b as calibrationReport, c as validateSpeechAssessment, d as inAuditSample, f as outcomeFromRoutedGrade, g as gradeFromJudgement, h as seededShuffle, i as outcomeFromUnscorable, j as ITEM_SCORING_MAX_RETRIES, k as roundGrade, l as diffDictationChars, m as hashSeed, n as evaluateTries, o as gradeReadAloud, p as routeGrade, r as score, s as alignReadAloud, t as evaluate, u as composeAssessmentScore, v as hasGrade, w as fingerprint, x as graderConfiguration, y as outcomeFromGrade } from "./scoring-DD1GHcLI.js";
4
+ import { a as INTERACTIVE_VIDEO_ITEM_TYPES, c as TIMELINE_MAX_QUIZZES, i as validateItemGroup, l as TIMELINE_MAX_TITLE_LENGTH, n as RedactedItemGroupSchema, o as TIMELINE_MAX_CHAPTERS, s as TIMELINE_MAX_ITEMS, u as isInteractiveVideoItemType } from "./item-group-CeDk7mfM.js";
5
+ import { a as dictationJsonSchema, c as itemGroupJsonSchema, d as readAloudJsonSchema, f as stimulusJsonSchema, i as contentJsonSchema, l as jsonSchemaFor, n as validateMedia, o as fillInTheBlanksJsonSchema, p as writtenResponseJsonSchema, r as validateOptionMedia, s as gapSelectJsonSchema, t as validateActivity, u as multipleChoiceJsonSchema } from "./schemas-C7TViWCg.js";
6
+ import { a as validateXAPIStatement, i as XAPI_VERB_DISPLAY, n as xapiDefinitionFor, r as XAPIVerb, t as xAPIBuilder } from "./xapi-Cgicg-zU.js";
7
+ // src/delivery.ts
8
8
  /**
9
9
  * The policy that restricts nothing: every setting `true`. It is what an absent
10
10
  * policy resolves to, and it is exactly the behaviour the SDK had before
@@ -158,8 +158,7 @@ function validateDeliveryPolicy(policy) {
158
158
  data: given
159
159
  };
160
160
  }
161
- //#endregion
162
- //#region src/item-group.ts
161
+ // src/item-group.ts
163
162
  /** Narrows a sequence entry to an item group. */
164
163
  function isItemGroup(entry) {
165
164
  return entry.type === "item-group";
@@ -283,8 +282,7 @@ function flattenSequence(entries, options = {}) {
283
282
  }
284
283
  return slots;
285
284
  }
286
- //#endregion
287
- //#region src/media-budget.ts
285
+ // src/media-budget.ts
288
286
  /**
289
287
  * The authored-entry prefix of a slot id: `"3"` for both `"3"` and `"3.1"`.
290
288
  *
@@ -398,8 +396,7 @@ function restoreMediaPlayLedger(plan, stored) {
398
396
  if (stored.planHash !== plan.planHash) throw new Error(`restoreMediaPlayLedger: this ledger belongs to a different paper (ledger ${stored.planHash}, plan ${plan.planHash}). Restoring it would hold the learner to a play budget from an exam they never sat.`);
399
397
  return serializeMediaPlayLedger(plan, stored.entries, { ...stored.savedAt !== void 0 ? { savedAt: stored.savedAt } : {} });
400
398
  }
401
- //#endregion
402
- //#region src/attempt-plan.ts
399
+ // src/attempt-plan.ts
403
400
  /**
404
401
  * The activity as CONTENT, with its slot key removed.
405
402
  *
@@ -650,8 +647,7 @@ function scoredItemsFromPlan(plan, outcomes, options = {}) {
650
647
  outcome: Object.hasOwn(outcomes, slot.slotId) ? outcomes[slot.slotId] : missingOutcome(slot, policy)
651
648
  }));
652
649
  }
653
- //#endregion
654
- //#region src/attempt-state.ts
650
+ // src/attempt-state.ts
655
651
  /**
656
652
  * A DEEP copy of the responses.
657
653
  *
@@ -775,8 +771,7 @@ function diffResponses(before, after) {
775
771
  }
776
772
  return entries;
777
773
  }
778
- //#endregion
779
- //#region src/redact.ts
774
+ // src/redact.ts
780
775
  /** Merges per-call overrides over a registered policy, one level deep. */
781
776
  function mergePolicy(base, overrides) {
782
777
  if (overrides === void 0) return base;
@@ -906,7 +901,8 @@ const ITEM_GROUP_FIELD_POLICY = {
906
901
  media: MEDIA_FIELD_POLICY,
907
902
  locale: "public",
908
903
  attribution: "public",
909
- transcript: "author-only"
904
+ transcript: "author-only",
905
+ script: "author-only"
910
906
  },
911
907
  timeline: {
912
908
  cues: {
@@ -993,8 +989,56 @@ function assertRedactedItemGroup(data) {
993
989
  }
994
990
  });
995
991
  }
996
- //#endregion
997
- //#region src/timeline.ts
992
+ /** A deep copy of plain data with every field its policy calls `author-only` left out. */
993
+ function withoutAuthorOnlyValue(value, policy) {
994
+ if (Array.isArray(value)) return value.map((element) => withoutAuthorOnlyValue(element, policy));
995
+ if (value === null || typeof value !== "object") return value;
996
+ const output = {};
997
+ for (const [key, field] of Object.entries(value)) {
998
+ const classification = policy?.[key];
999
+ if (classification === "author-only") continue;
1000
+ output[key] = withoutAuthorOnlyValue(field, classification === void 0 || isSensitivity(classification) ? void 0 : classification);
1001
+ }
1002
+ return output;
1003
+ }
1004
+ /** The policy an activity is stripped under; the same one `redact()` reads. */
1005
+ function policyOf(type) {
1006
+ const descriptor = typeof type === "string" ? getActivityTypeDescriptor(type) : void 0;
1007
+ if (descriptor === void 0) throw new UnknownActivityTypeError(String(type));
1008
+ if (descriptor.fieldPolicy === void 0) throw new Error(`Activity type "${descriptor.type}" has no fieldPolicy; withoutAuthorOnly() cannot tell which of its fields are author-only.`);
1009
+ return descriptor.fieldPolicy;
1010
+ }
1011
+ /**
1012
+ * A copy of an activity or an item group without its `author-only` fields:
1013
+ * a recording's `transcript` and `script`, on an item's media, a
1014
+ * multiple-choice option's recording, a stimulus or its media. Everything
1015
+ * else is kept as stored, the answer key and your own fields included, and
1016
+ * the copy is not marked redacted, so it scores exactly as the stored item.
1017
+ *
1018
+ * For practice an app scores in the browser, where the learner may hold the
1019
+ * key but not the author's material. It is NOT a learner-safe projection: an
1020
+ * exam, or anything a learner must not be able to answer from the payload,
1021
+ * goes through {@link redact} / {@link redactItemGroup}, whose output a scorer
1022
+ * refuses.
1023
+ *
1024
+ * ```ts
1025
+ * res.json(withoutAuthorOnly(practiceItem));
1026
+ * ```
1027
+ *
1028
+ * @throws UnknownActivityTypeError when an activity's type is not registered,
1029
+ * and Error when it declares no `fieldPolicy`.
1030
+ */
1031
+ function withoutAuthorOnly(entry) {
1032
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) throw new TypeError("withoutAuthorOnly: expects an activity or an item group.");
1033
+ const record = entry;
1034
+ if (record.type !== "item-group") return withoutAuthorOnlyValue(entry, policyOf(record.type));
1035
+ const { items, ...container } = record;
1036
+ return {
1037
+ ...withoutAuthorOnlyValue(container, ITEM_GROUP_FIELD_POLICY),
1038
+ ...Array.isArray(items) ? { items: items.map((item) => withoutAuthorOnlyValue(item, policyOf(item?.type))) } : items !== void 0 ? { items } : {}
1039
+ };
1040
+ }
1041
+ // src/timeline.ts
998
1042
  /**
999
1043
  * Reads a stored {@link MediaProgress}. Never throws: anything that is not one
1000
1044
  * — a string, a stale shape, an object whose getters throw — answers `null`,
@@ -1048,7 +1092,6 @@ function composeTimelineScore(entryKey, items, policy) {
1048
1092
  items: own
1049
1093
  }], policy);
1050
1094
  }
1051
- //#endregion
1052
- export { AI_COACHING_MAX_TIP_LENGTH, AI_COACHING_MAX_WORDS, AI_CRITIQUE_MAX_FIELD_LENGTH, AI_CRITIQUE_MAX_FINDINGS, AI_DRAFTS_MAX_COUNT, AI_DRAFTS_MAX_REPAIRS, AI_EXPLANATION_TYPES, AI_GRADING_PROBABILITY_TOLERANCE, AI_HINT_TYPES, AI_MATERIAL_MAX_LENGTH, AI_TEXT_MAX_LENGTH, AI_WRITING_MAX_CORRECTIONS, AI_WRITING_MAX_FIELD_LENGTH, ActivitySchemaError, BUILT_IN_ACTIVITY_TYPES, DEFAULT_ITEM_SCORING_POLICY, DEFAULT_PASS_THRESHOLD, DICTATION_MAX_ACCEPTED_TRANSCRIPTS, DICTATION_MAX_EQUIVALENCES, DICTATION_MAX_EQUIVALENCE_LENGTH, DICTATION_MAX_TEXT_LENGTH, DICTATION_MAX_TRANSCRIPT_LENGTH, DeferredScoringError, INTERACTIVE_VIDEO_ITEM_TYPES, ITEM_SCORING_MAX_RETRIES, OPEN_DELIVERY_POLICY, READ_ALOUD_MAX_DIMENSION_WEIGHT, READ_ALOUD_MAX_REFERENCE_LENGTH, READ_ALOUD_MAX_SECONDS, READ_ALOUD_MAX_TAKES, RedactedScoringError, SPEECH_ASSESSMENT_MAX_WORDS, TIMELINE_MAX_CHAPTERS, TIMELINE_MAX_ITEMS, TIMELINE_MAX_QUIZZES, TIMELINE_MAX_TITLE_LENGTH, UnknownActivityTypeError, XAPIVerb, XAPI_VERB_DISPLAY, aiAllowedByContent, aiCoachingRequest, aiCritiqueRequest, aiDraftsRepairRequest, aiDraftsRequest, aiExplanationRequest, aiGradeOf, aiGradingRequest, aiHintRequest, aiSupports, aiWritingFeedbackRequest, alignDictation, alignReadAloud, assertRedacted, assertRedactedItemGroup, buildAiFacts, calibrationReport, canonicalJson, checkAiCoaching, checkAiCritique, checkAiDrafts, checkAiExplanation, checkAiGrading, checkAiHint, checkAiWritingFeedback, classifyBand, combineDeliveryPolicies, composeAssessmentScore, composeTimelineScore, computePassThreshold, contentHash, countWords, createDraft, createInteractiveVideoDraft, createItemGroupDraft, critiqueDraft, critiqueDrafts, critiqueItemGroupDraft, defineActivityType, dictationJsonSchema, dictationReferenceWords, dictationType, diffDictationChars, diffResponses, entryKeyOf, evaluate, evaluateTries, fillInTheBlanksJsonSchema, fillInTheBlanksType, fingerprint, flattenSequence, gapSelectJsonSchema, gapSelectType, generateDrafts, getActivityTypeDescriptor, gradeFromJudgement, gradeFromRubric, gradeReadAloud, graderConfiguration, gte, hasGrade, hashSeed, hintRevealsAnswer, inAuditSample, inspectWav, interactiveVideoFromDrafts, isBuiltInActivityType, isInteractiveVideoItemType, isItemGroup, itemGroupJsonSchema, jsonSchemaFor, levenshteinDistance, matchText, multipleChoiceJsonSchema, multipleChoiceType, outcomeFromGrade, outcomeFromRoutedGrade, outcomeFromUnscorable, planAttempt, planMediaBudgets, readAiTextResult, readAloudJsonSchema, readAloudType, readMediaProgress, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolveDeliveryPolicy, resolveItemScoringPolicy, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, roundGrade, routeGrade, score, scoreTries, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusJsonSchema, stimulusMediaKey, validateActivity, validateDeliveryPolicy, validateDraft, validateItemGroup, validateItemGroupDraft, validateItemScoringPolicy, validateMedia, validateOptionMedia, validateSpeechAssessment, validateXAPIStatement, verifyAttemptPlan, writtenResponseJsonSchema, writtenResponseType, xAPIBuilder, xapiDefinitionFor };
1095
+ export { AI_COACHING_MAX_TIP_LENGTH, AI_COACHING_MAX_WORDS, AI_CRITIQUE_MAX_FIELD_LENGTH, AI_CRITIQUE_MAX_FINDINGS, AI_DRAFTS_MAX_COUNT, AI_DRAFTS_MAX_REPAIRS, AI_EXPLANATION_TYPES, AI_GRADING_PROBABILITY_TOLERANCE, AI_HINT_TYPES, AI_MATERIAL_MAX_LENGTH, AI_TEXT_MAX_LENGTH, AI_WRITING_MAX_CORRECTIONS, AI_WRITING_MAX_FIELD_LENGTH, ActivitySchemaError, BUILT_IN_ACTIVITY_TYPES, DEFAULT_ITEM_SCORING_POLICY, DEFAULT_PASS_THRESHOLD, DICTATION_MAX_ACCEPTED_TRANSCRIPTS, DICTATION_MAX_EQUIVALENCES, DICTATION_MAX_EQUIVALENCE_LENGTH, DICTATION_MAX_TEXT_LENGTH, DICTATION_MAX_TRANSCRIPT_LENGTH, DeferredScoringError, INTERACTIVE_VIDEO_ITEM_TYPES, ITEM_SCORING_MAX_RETRIES, OPEN_DELIVERY_POLICY, READ_ALOUD_MAX_DIMENSION_WEIGHT, READ_ALOUD_MAX_REFERENCE_LENGTH, READ_ALOUD_MAX_SECONDS, READ_ALOUD_MAX_TAKES, RedactedScoringError, SCRIPT_MAX_TURNS, SPEECH_ASSESSMENT_MAX_WORDS, TIMELINE_MAX_CHAPTERS, TIMELINE_MAX_ITEMS, TIMELINE_MAX_QUIZZES, TIMELINE_MAX_TITLE_LENGTH, UnknownActivityTypeError, XAPIVerb, XAPI_VERB_DISPLAY, aiAllowedByContent, aiCoachingRequest, aiCritiqueRequest, aiDraftsRepairRequest, aiDraftsRequest, aiExplanationRequest, aiGradeOf, aiGradingRequest, aiHintRequest, aiSupports, aiWritingFeedbackRequest, alignDictation, alignReadAloud, assertRedacted, assertRedactedItemGroup, buildAiFacts, calibrationReport, canonicalJson, checkAiCoaching, checkAiCritique, checkAiDrafts, checkAiExplanation, checkAiGrading, checkAiHint, checkAiWritingFeedback, classifyBand, combineDeliveryPolicies, composeAssessmentScore, composeTimelineScore, computePassThreshold, contentHash, contentJsonSchema, countWords, createDraft, createInteractiveVideoDraft, createItemGroupDraft, critiqueDraft, critiqueDrafts, critiqueItemGroupDraft, defineActivityType, dictationJsonSchema, dictationReferenceWords, dictationType, diffDictationChars, diffResponses, entryKeyOf, evaluate, evaluateTries, fillInTheBlanksJsonSchema, fillInTheBlanksType, fingerprint, flattenSequence, gapSelectJsonSchema, gapSelectType, generateDrafts, getActivityTypeDescriptor, gradeFromJudgement, gradeFromRubric, gradeReadAloud, graderConfiguration, gte, hasGrade, hashSeed, hintRevealsAnswer, inAuditSample, inspectWav, interactiveVideoFromDrafts, isBuiltInActivityType, isInteractiveVideoItemType, isItemGroup, itemGroupJsonSchema, jsonSchemaFor, levenshteinDistance, listMediaRefs, mapMediaRefs, matchText, multipleChoiceJsonSchema, multipleChoiceType, outcomeFromGrade, outcomeFromRoutedGrade, outcomeFromUnscorable, planAttempt, planMediaBudgets, readAiTextResult, readAloudJsonSchema, readAloudType, readMediaProgress, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolveDeliveryPolicy, resolveItemScoringPolicy, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, roundGrade, routeGrade, score, scoreTries, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusJsonSchema, stimulusMediaKey, transcriptOf, validateActivity, validateDeliveryPolicy, validateDraft, validateItemGroup, validateItemGroupDraft, validateItemScoringPolicy, validateMedia, validateOptionMedia, validateSpeechAssessment, validateXAPIStatement, verifyAttemptPlan, withoutAuthorOnly, writtenResponseJsonSchema, writtenResponseType, xAPIBuilder, xapiDefinitionFor };
1053
1096
 
1054
1097
  //# sourceMappingURL=index.js.map