@intellectif/lk-core 1.3.0 → 1.5.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 (85) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +2 -0
  3. package/dist/{ai-B222dtHH.d.ts → ai-BYryFkF9.d.cts} +462 -5
  4. package/dist/ai-BYryFkF9.d.cts.map +1 -0
  5. package/dist/{ai-B222dtHH.d.cts → ai-BYryFkF9.d.ts} +462 -5
  6. package/dist/ai-BYryFkF9.d.ts.map +1 -0
  7. package/dist/ai-check.cjs +274 -23
  8. package/dist/ai-check.cjs.map +1 -1
  9. package/dist/ai-check.d.cts +13 -5
  10. package/dist/ai-check.d.cts.map +1 -1
  11. package/dist/ai-check.d.ts +13 -5
  12. package/dist/ai-check.d.ts.map +1 -1
  13. package/dist/ai-check.js +274 -23
  14. package/dist/ai-check.js.map +1 -1
  15. package/dist/{ai-writing-DCVkv4Zj.cjs → ai-writing-Cen7-3qs.cjs} +520 -58
  16. package/dist/ai-writing-Cen7-3qs.cjs.map +1 -0
  17. package/dist/{ai-writing-CCBjTOM3.js → ai-writing-D8PdhJJz.js} +513 -75
  18. package/dist/ai-writing-D8PdhJJz.js.map +1 -0
  19. package/dist/{index-Dyu66R4-.d.cts → index-Bg0aeWtM.d.cts} +327 -3
  20. package/dist/index-Bg0aeWtM.d.cts.map +1 -0
  21. package/dist/{index-BWPRPIXL.d.ts → index-CxpiWedW.d.ts} +7 -217
  22. package/dist/index-CxpiWedW.d.ts.map +1 -0
  23. package/dist/{index-CXyOV8sm.d.cts → index-D7R3Ll8R.d.cts} +2 -2
  24. package/dist/{index-CXyOV8sm.d.cts.map → index-D7R3Ll8R.d.cts.map} +1 -1
  25. package/dist/{index-UGxRSopE.d.ts → index-DUaW1Tj5.d.ts} +327 -3
  26. package/dist/index-DUaW1Tj5.d.ts.map +1 -0
  27. package/dist/{index-O4_ExlAD.d.cts → index-qMbxed1B.d.cts} +7 -217
  28. package/dist/index-qMbxed1B.d.cts.map +1 -0
  29. package/dist/{index-CegM8o15.d.ts → index-wMc1E_aM.d.ts} +2 -2
  30. package/dist/{index-CegM8o15.d.ts.map → index-wMc1E_aM.d.ts.map} +1 -1
  31. package/dist/index.cjs +32 -130
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +115 -97
  34. package/dist/index.d.cts.map +1 -1
  35. package/dist/index.d.ts +115 -97
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +9 -117
  38. package/dist/index.js.map +1 -1
  39. package/dist/{item-group-DroFXgLb.cjs → item-group-DEB7nLID.cjs} +2 -2
  40. package/dist/{item-group-DroFXgLb.cjs.map → item-group-DEB7nLID.cjs.map} +1 -1
  41. package/dist/{item-group-DXiR8nOr.js → item-group-DdSUCUjM.js} +2 -2
  42. package/dist/{item-group-DXiR8nOr.js.map → item-group-DdSUCUjM.js.map} +1 -1
  43. package/dist/{registry-DVi0LR_i.cjs → registry-Ce00A_OW.cjs} +184 -4
  44. package/dist/registry-Ce00A_OW.cjs.map +1 -0
  45. package/dist/{registry-Dsx9mNsS.js → registry-DaZRpqjW.js} +155 -5
  46. package/dist/registry-DaZRpqjW.js.map +1 -0
  47. package/dist/{schemas-Bdw0nGPo.js → schemas-BioKFf3F.js} +3 -3
  48. package/dist/{schemas-Bdw0nGPo.js.map → schemas-BioKFf3F.js.map} +1 -1
  49. package/dist/{schemas-DVbAOrtd.cjs → schemas-DksueYsu.cjs} +3 -3
  50. package/dist/{schemas-DVbAOrtd.cjs.map → schemas-DksueYsu.cjs.map} +1 -1
  51. package/dist/schemas.cjs +2 -2
  52. package/dist/schemas.d.cts +1 -1
  53. package/dist/schemas.d.ts +1 -1
  54. package/dist/schemas.js +2 -2
  55. package/dist/{scoring-BZqUkuDF.js → scoring-BKNNTz-s.js} +657 -3
  56. package/dist/scoring-BKNNTz-s.js.map +1 -0
  57. package/dist/{scoring-B2_HEhMT.cjs → scoring-lKQVYsxy.cjs} +722 -2
  58. package/dist/scoring-lKQVYsxy.cjs.map +1 -0
  59. package/dist/scoring.cjs +8 -2
  60. package/dist/scoring.d.cts +3 -3
  61. package/dist/scoring.d.ts +3 -3
  62. package/dist/scoring.js +3 -3
  63. package/dist/{xapi-DNzkSJ0S.cjs → xapi-NYrTlpID.cjs} +2 -2
  64. package/dist/{xapi-DNzkSJ0S.cjs.map → xapi-NYrTlpID.cjs.map} +1 -1
  65. package/dist/{xapi-CMTph7wG.js → xapi-wR6gu4qS.js} +2 -2
  66. package/dist/{xapi-CMTph7wG.js.map → xapi-wR6gu4qS.js.map} +1 -1
  67. package/dist/xapi.cjs +1 -1
  68. package/dist/xapi.d.cts +1 -1
  69. package/dist/xapi.d.ts +1 -1
  70. package/dist/xapi.js +1 -2
  71. package/package.json +2 -2
  72. package/vectors/README.md +24 -1
  73. package/vectors/scoring.json +18182 -1
  74. package/dist/ai-B222dtHH.d.cts.map +0 -1
  75. package/dist/ai-B222dtHH.d.ts.map +0 -1
  76. package/dist/ai-writing-CCBjTOM3.js.map +0 -1
  77. package/dist/ai-writing-DCVkv4Zj.cjs.map +0 -1
  78. package/dist/index-BWPRPIXL.d.ts.map +0 -1
  79. package/dist/index-Dyu66R4-.d.cts.map +0 -1
  80. package/dist/index-O4_ExlAD.d.cts.map +0 -1
  81. package/dist/index-UGxRSopE.d.ts.map +0 -1
  82. package/dist/registry-DVi0LR_i.cjs.map +0 -1
  83. package/dist/registry-Dsx9mNsS.js.map +0 -1
  84. package/dist/scoring-B2_HEhMT.cjs.map +0 -1
  85. package/dist/scoring-BZqUkuDF.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,7 +1,22 @@
1
- import { $ as DraftComplete, $t as WrittenResponseLearnerResponse, A as AiGapSelectFacts, At as ItemOutcome, B as AiRefusal, Bt as ReadAloudData, C as AiDraftsCall, Ct as GapSelectBank, D as AiFeature, Dt as GapSelectLearnerResponse, E as AiExplanationRequest, Et as GapSelectGap, F as AiMultipleChoiceFacts, Ft as MultipleChoiceData, G as AiVerdict, Gt as RecordingBounds, H as AiSoundFact, Ht as ReadAloudDimensionWeight, I as AiOptionFact, It as MultipleChoiceLearnerResponse, J as AiWritingCorrection, Jt as ScoringOutcome, K as AiVideoDraft, Kt as RecordingRef, L as AiProvenance, Lt as MultipleChoiceOption, M as AiGrade, Mt as LearnerResponseMap, N as AiHintRequest, Nt as MediaPlaybackPolicy, O as AiFillInTheBlanksFacts, Ot as InteractionEvent, P as AiItemFacts, Pt as MediaTrack, Q as AiWritingFeedbackResult, Qt as WrittenResponseData, R as AiReadingFacts, Rt as MultipleChoiceOptionMedia, S as AiDrafts, Sn as matchText, St as FillInTheBlanksLearnerResponse, T as AiDraftsRun, Tt as GapSelectData, U as AiSupportedActivityType, Ut as ReadAloudLearnerResponse, V as AiRubricCriterionFact, Vt as ReadAloudDimension, W as AiTextResult, Wt as ReadAloudSlowMedia, X as AiWritingFeedback, Xt as ValidationError, Y as AiWritingFacts, Yt as ScoringResult, Z as AiWritingFeedbackRequest, Zt as ValidationResult, _ as AiDraftCaption, _n as GradingState, _t as DictationEquivalence, a as AiCoachingRequest, an as XAPIContextActivities, at as ItemFinding, b as AiDraftSource, bn as TextMatchResult, bt as DictationTolerance, c as AiCriterionJudgement, cn as XAPIResult, ct as ActivityDataMap, d as AiCritiqueFinding, dn as XAPIVerbObject, dt as ActivityResult, en as WrittenResponseRubric, et as DraftContext, f as AiCritiqueFindingResult, fn as CriterionScore, ft as ActivityType, g as AiDictationFacts, gn as GraderUsage, gt as DictationData, h as AiCritiqueResult, hn as GraderKind, ht as DeferredScoringPartial, i as AiCoaching, in as XAPIContext, it as DraftValidationResult, j as AiGeneratedDraft, jt as LearnerResponse, k as AiGapFact, kt as InteractionKind, l as AiCritique, ln as XAPIScore, lt as ActivityFeedback, m as AiCritiqueRequest, mn as Grader, mt as DeferredReason, n as AiActivityInput, nn as XAPIActor, nt as DraftNotComplete, o as AiCoachingResult, on as XAPIError, ot as ItemFindingSeverity, p as AiCritiqueKind, pn as GradeRecord, pt as BlankConfig, q as AiWordFact, qt as ScoringDetail, r as AiBlankFact, rn as XAPIConfig, rt as DraftSeverity, s as AiCoachingWord, sn as XAPIObject, st as ActivityData, t as ActivityAiPermissions, tn as WrittenResponseRubricCriterion, tt as DraftIssue, u as AiCritiqueField, un as XAPIStatement, ut as ActivityMedia, v as AiDraftProblem, vn as InlineCorrection, vt as DictationLearnerResponse, w as AiDraftsRequest, wt as GapSelectChoice, x as AiDraftType, xn as levenshteinDistance, xt as FillInTheBlanksData, y as AiDraftSettings, yn as TextMatchPolicy, yt as DictationSlowMedia, z as AiReadingWordFact, zt as NativeControlHint } from "./ai-B222dtHH.js";
2
- import { $ as SpeechAssessment, A as diffDictationChars, B as ItemTry, C as validateItemScoringPolicy, D as DICTATION_MAX_TEXT_LENGTH, E as DICTATION_MAX_EQUIVALENCE_LENGTH, F as dictationReferenceWords, G as CompositionPolicy, H as ResolvedItemScoringPolicy, I as ItemScoringCount, J as SectionScore, K as PassFailureReason, L as ItemScoringPolicy, M as DictationReference, N as DictationWordAlignment, O as DICTATION_MAX_TRANSCRIPT_LENGTH, P as alignDictation, Q as ReadAloudWordState, R as ItemScoringPolicyIssue, S as scoreTries, T as DICTATION_MAX_EQUIVALENCES, U as AssessmentScore, V as ItemTryScore, W as AssessmentSectionInput, X as GradeReadAloudOptions, Y as composeAssessmentScore, Z as ReadAloudWordAlignment, _ as DEFAULT_PASS_THRESHOLD, a as evaluateTries, at as SpeechUnscorable, b as ITEM_SCORING_MAX_RETRIES, c as inspectWav, ct as SpeechWordError, d as READ_ALOUD_MAX_SECONDS, dt as Band, et as SpeechMeasurement, f as READ_ALOUD_MAX_TAKES, ft as RoundingMode, g as alignReadAloud, gt as roundGrade, h as validateSpeechAssessment, ht as gte, i as evaluate, it as SpeechSyllable, j as DictationAlignment, k as DictationCharOp, l as READ_ALOUD_MAX_DIMENSION_WEIGHT, lt as WavInspection, m as gradeReadAloud, mt as classifyBand, n as ItemTriesOutcome, nt as SpeechPhonemeCandidate, o as score, ot as SpeechUnscorableCode, p as SPEECH_ASSESSMENT_MAX_WORDS, pt as RoundingPolicy, q as ScoredItem, r as ScoringOptions, rt as SpeechPlausibilityPolicy, s as outcomeFromUnscorable, st as SpeechWord, t as EvaluateOptions, tt as SpeechPhoneme, u as READ_ALOUD_MAX_REFERENCE_LENGTH, ut as WavInspectionPolicy, v as computePassThreshold, w as DICTATION_MAX_ACCEPTED_TRANSCRIPTS, x as resolveItemScoringPolicy, y as DEFAULT_ITEM_SCORING_POLICY, z as ItemTriesScore } from "./index-UGxRSopE.js";
3
- import { A as MediaProgress, C as RedactedMultipleChoiceData, D as RedactedStimulus, E as RedactedReadAloudData, F as Stimulus, I as StimulusKind, L as TimelineChapter, M as SequenceEntry, N as SequenceSlot, O as RedactedWrittenResponseData, P as SequenceSlotGroup, R as TimelineCue, S as RedactedGapSelectGap, T as RedactedMultipleChoiceOptionMedia, _ as RedactedDictationSlowMedia, a as fillInTheBlanksJsonSchema, b as RedactedGapSelectChoice, c as jsonSchemaFor, d as stimulusJsonSchema, f as writtenResponseJsonSchema, g as RedactedDictationData, h as RedactedBlankConfig, i as dictationJsonSchema, j as MediaTimeline, k as ItemGroup, l as multipleChoiceJsonSchema, m as RedactedActivity, n as validateMedia, o as gapSelectJsonSchema, p as validateItemGroup, r as validateOptionMedia, s as itemGroupJsonSchema, t as validateActivity, u as readAloudJsonSchema, v as RedactedFillInTheBlanksData, w as RedactedMultipleChoiceOption, x as RedactedGapSelectData, y as RedactedGapSelectBank } from "./index-BWPRPIXL.js";
4
- import { a as XAPIObjectParams, c as xapiDefinitionFor, d as XAPI_VERB_DISPLAY, i as SubmittedStatementParams, l as XAPIVerb, n as AnsweredStatementParams, o as XAPIStatementParams, r as CompletedStatementParams, s as xAPIBuilder, t as validateXAPIStatement, u as XAPIVerbKey } from "./index-CegM8o15.js";
1
+ import { $ as AiVerdict, $t as MultipleChoiceData, A as AiGapSelectFacts, An as XAPIVerbObject, At as ActivityType, B as AiHintRequest, Bn as InlineCorrection, Bt as FillInTheBlanksLearnerResponse, C as AiDraftsCall, Cn as XAPIContext, Ct as ItemFinding, D as AiFeature, Dn as XAPIResult, Dt as ActivityFeedback, E as AiExplanationRequest, En as XAPIObject, Et as ActivityDataMap, F as AiGradingFacts, Fn as Grader, Ft as DictationEquivalence, G as AiProvenance, Gt as GapSelectLearnerResponse, H as AiMaterialFacts, Hn as TextMatchResult, Ht as GapSelectChoice, I as AiGradingJudgement, In as GraderConfiguration, It as DictationLearnerResponse, J as AiRefusal, Jt as ItemOutcome, K as AiReadingFacts, Kt as InteractionEvent, L as AiGradingRequest, Ln as GraderKind, Lt as DictationSlowMedia, M as AiGrade, Mn as GradeRecord, Mt as DeferredReason, N as AiGradedCriterion, Nn as GradeRouting, Nt as DeferredScoringPartial, O as AiFillInTheBlanksFacts, On as XAPIScore, Ot as ActivityMedia, P as AiGradingCriterionFact, Pn as GradeRoutingReason, Pt as DictationData, Q as AiTextResult, Qt as MediaTrack, R as AiGradingRequestProblem, Rn as GraderUsage, Rt as DictationTolerance, S as AiDrafts, Sn as XAPIConfig, St as DraftValidationResult, T as AiDraftsRun, Tn as XAPIError, Tt as ActivityData, U as AiMultipleChoiceFacts, Un as levenshteinDistance, Ut as GapSelectData, V as AiItemFacts, Vn as TextMatchPolicy, Vt as GapSelectBank, W as AiOptionFact, Wn as matchText, Wt as GapSelectGap, X as AiSoundFact, Xt as LearnerResponseMap, Y as AiRubricCriterionFact, Yt as LearnerResponse, Z as AiSupportedActivityType, Zt as MediaPlaybackPolicy, _ as AiDraftCaption, _n as WrittenResponseLearnerResponse, _t as DraftComplete, a as AiCoachingRequest, an as ReadAloudDimension, at as AiWritingFeedbackRequest, b as AiDraftSource, bn as WrittenResponseRubricLevel, bt as DraftNotComplete, c as AiCriterionJudgement, cn as ReadAloudSlowMedia, ct as MediaProgress, d as AiCritiqueFinding, dn as ScoringDetail, dt as SequenceSlot, en as MultipleChoiceLearnerResponse, et as AiVideoDraft, f as AiCritiqueFindingResult, fn as ScoringOutcome, ft as SequenceSlotGroup, g as AiDictationFacts, gn as WrittenResponseData, gt as TimelineCue, h as AiCritiqueResult, hn as ValidationResult, ht as TimelineChapter, i as AiCoaching, in as ReadAloudData, it as AiWritingFeedback, j as AiGeneratedDraft, jn as CriterionScore, jt as BlankConfig, k as AiGapFact, kn as XAPIStatement, kt as ActivityResult, l as AiCritique, ln as RecordingBounds, lt as MediaTimeline, m as AiCritiqueRequest, mn as ValidationError, mt as StimulusKind, n as AiActivityInput, nn as MultipleChoiceOptionMedia, nt as AiWritingCorrection, o as AiCoachingResult, on as ReadAloudDimensionWeight, ot as AiWritingFeedbackResult, p as AiCritiqueKind, pn as ScoringResult, pt as Stimulus, q as AiReadingWordFact, qt as InteractionKind, r as AiBlankFact, rn as NativeControlHint, rt as AiWritingFacts, s as AiCoachingWord, sn as ReadAloudLearnerResponse, st as ItemGroup, t as ActivityAiPermissions, tn as MultipleChoiceOption, tt as AiWordFact, u as AiCritiqueField, un as RecordingRef, ut as SequenceEntry, v as AiDraftProblem, vn as WrittenResponseRubric, vt as DraftContext, w as AiDraftsRequest, wn as XAPIContextActivities, wt as ItemFindingSeverity, x as AiDraftType, xn as XAPIActor, xt as DraftSeverity, y as AiDraftSettings, yn as WrittenResponseRubricCriterion, yt as DraftIssue, z as AiGroupInput, zn as GradingState, zt as FillInTheBlanksData } from "./ai-BYryFkF9.js";
2
+ import { $ as hasGrade, A as diffDictationChars, At as Band, B as outcomeFromRoutedGrade, C as validateItemScoringPolicy, Ct as SpeechSyllable, D as DICTATION_MAX_TEXT_LENGTH, Dt as SpeechWordError, E as DICTATION_MAX_EQUIVALENCE_LENGTH, Et as SpeechWord, F as dictationReferenceWords, Ft as roundGrade, G as CalibrationReport, H as GradeFromJudgementOptions, I as CalibrationThresholds, J as TotalCalibration, K as CalibrationScope, L as GradeRoutingContext, M as DictationReference, Mt as RoundingPolicy, N as DictationWordAlignment, Nt as classifyBand, O as DICTATION_MAX_TRANSCRIPT_LENGTH, Ot as WavInspection, P as alignDictation, Pt as gte, Q as gradeFromRubric, R as GradeRoutingPolicy, S as scoreTries, St as SpeechPlausibilityPolicy, T as DICTATION_MAX_EQUIVALENCES, Tt as SpeechUnscorableCode, U as gradeFromJudgement, V as routeGrade, W as CalibrationPair, X as graderConfiguration, Y as calibrationReport, Z as GradeFromRubricOptions, _ as DEFAULT_PASS_THRESHOLD, _t as ReadAloudWordState, a as evaluateTries, at as ItemTry, b as ITEM_SCORING_MAX_RETRIES, bt as SpeechPhoneme, c as inspectWav, ct as AssessmentScore, d as READ_ALOUD_MAX_SECONDS, dt as PassFailureReason, et as outcomeFromGrade, f as READ_ALOUD_MAX_TAKES, ft as ScoredItem, g as alignReadAloud, gt as ReadAloudWordAlignment, h as validateSpeechAssessment, ht as GradeReadAloudOptions, i as evaluate, it as ItemTriesScore, j as DictationAlignment, jt as RoundingMode, k as DictationCharOp, kt as WavInspectionPolicy, l as READ_ALOUD_MAX_DIMENSION_WEIGHT, lt as AssessmentSectionInput, m as gradeReadAloud, mt as composeAssessmentScore, n as ItemTriesOutcome, nt as ItemScoringPolicy, o as score, ot as ItemTryScore, p as SPEECH_ASSESSMENT_MAX_WORDS, pt as SectionScore, q as CriterionCalibration, r as ScoringOptions, rt as ItemScoringPolicyIssue, s as outcomeFromUnscorable, st as ResolvedItemScoringPolicy, t as EvaluateOptions, tt as ItemScoringCount, u as READ_ALOUD_MAX_REFERENCE_LENGTH, ut as CompositionPolicy, v as computePassThreshold, vt as SpeechAssessment, w as DICTATION_MAX_ACCEPTED_TRANSCRIPTS, wt as SpeechUnscorable, x as resolveItemScoringPolicy, xt as SpeechPhonemeCandidate, y as DEFAULT_ITEM_SCORING_POLICY, yt as SpeechMeasurement, z as inAuditSample } from "./index-DUaW1Tj5.js";
3
+ import { C as RedactedMultipleChoiceData, D as RedactedStimulus, E as RedactedReadAloudData, O as RedactedWrittenResponseData, S as RedactedGapSelectGap, T as RedactedMultipleChoiceOptionMedia, _ as RedactedDictationSlowMedia, a as fillInTheBlanksJsonSchema, b as RedactedGapSelectChoice, c as jsonSchemaFor, d as stimulusJsonSchema, f as writtenResponseJsonSchema, g as RedactedDictationData, h as RedactedBlankConfig, i as dictationJsonSchema, l as multipleChoiceJsonSchema, m as RedactedActivity, n as validateMedia, o as gapSelectJsonSchema, p as validateItemGroup, r as validateOptionMedia, s as itemGroupJsonSchema, t as validateActivity, u as readAloudJsonSchema, v as RedactedFillInTheBlanksData, w as RedactedMultipleChoiceOption, x as RedactedGapSelectData, y as RedactedGapSelectBank } from "./index-CxpiWedW.js";
4
+ import { a as XAPIObjectParams, c as xapiDefinitionFor, d as XAPI_VERB_DISPLAY, i as SubmittedStatementParams, l as XAPIVerb, n as AnsweredStatementParams, o as XAPIStatementParams, r as CompletedStatementParams, s as xAPIBuilder, t as validateXAPIStatement, u as XAPIVerbKey } from "./index-wMc1E_aM.js";
5
+ //#region src/ai-material.d.ts
6
+ /**
7
+ * What a model is told about the group a question sits in: the material the
8
+ * learner reads and sees beside it.
9
+ *
10
+ * Internal: the request builders in `ai.ts` and `ai-writing.ts` are its public
11
+ * face, through their `group` input.
12
+ */
13
+ /**
14
+ * The longest material text a model is given, in code points. A longer one is
15
+ * cut and marked `truncated`: a long reading passage on an exam paper runs to
16
+ * 4,000–7,000.
17
+ */
18
+ export declare const AI_MATERIAL_MAX_LENGTH = 12000;
19
+ //#endregion
5
20
  //#region src/ai.d.ts
6
21
  /**
7
22
  * The activity types the SDK builds facts for, and which of them take hints.
@@ -54,11 +69,16 @@ export declare function buildAiFacts(data: AiActivityInput, response: LearnerRes
54
69
  * positive and finite, `score` finite from 0 to it) gets no explanation at all:
55
70
  * explaining 85 "out of 1" would tell the model a wrong answer was correct, and
56
71
  * grading locally instead would speak to a grade the screen does not show.
72
+ *
73
+ * `group` is the item group the question sits in: its material — the passage,
74
+ * or the instructions the group's questions share — goes with the request as
75
+ * `material`, as the learner sees it.
57
76
  */
58
77
  export declare function aiExplanationRequest(input: {
59
78
  data: AiActivityInput;
60
79
  response: LearnerResponse | null;
61
80
  outcome?: ItemOutcome;
81
+ group?: AiGroupInput;
62
82
  learnerLocale?: string;
63
83
  }): AiExplanationRequest | null;
64
84
  /**
@@ -68,12 +88,17 @@ export declare function aiExplanationRequest(input: {
68
88
  *
69
89
  * The facts carry the key, and which parts the learner has right so far, so a
70
90
  * model can hint where it helps. The learner never sees them; a hint that
71
- * contains an answer is refused by {@link checkAiHint}.
91
+ * contains an answer is refused by {@link checkAiHint}, whatever it quotes —
92
+ * the group's material included.
93
+ *
94
+ * `group` is the item group the question sits in, as for
95
+ * {@link aiExplanationRequest}.
72
96
  */
73
97
  export declare function aiHintRequest(input: {
74
98
  data: AiActivityInput;
75
99
  response: LearnerResponse | null;
76
100
  previousHints: readonly string[];
101
+ group?: AiGroupInput;
77
102
  learnerLocale?: string;
78
103
  }): AiHintRequest | null;
79
104
  /**
@@ -376,11 +401,90 @@ export declare function interactiveVideoFromDrafts(input: {
376
401
  newId: () => string;
377
402
  }): AiVideoDraft;
378
403
  //#endregion
379
- //#region src/ai-writing.d.ts
404
+ //#region src/ai-grading.d.ts
405
+ /**
406
+ * How far a model's level probabilities may sum from 1 and still be a
407
+ * distribution: rounding in a model's output, not a different judgement.
408
+ */
409
+ export declare const AI_GRADING_PROBABILITY_TOLERANCE = 0.000001;
410
+ /**
411
+ * The request for a model's grade of a submitted written response, or why there
412
+ * is none to make.
413
+ *
414
+ * Grading happens on the server, from the whole item: the rubric is what a
415
+ * model is held to, so an item without one — or one whose criteria are not each
416
+ * a name and a weight — gives no request, nor does a `redact()` projection or
417
+ * an empty response. A criterion's `levels`, when there are any, must be ones
418
+ * the grading functions can read; levels they cannot read give no request
419
+ * rather than a grade on a scale the author did not mean. `group` is the item
420
+ * group the task sits in: its material goes with the request as `material`, as
421
+ * on feedback on writing.
422
+ *
423
+ * The author's AI switch (`ai.explanations`) is not read: grading is the
424
+ * deployment's decision, made on the server, not help a learner asks for.
425
+ */
426
+ export declare function aiGradingRequest(input: {
427
+ data: AiActivityInput;
428
+ response: LearnerResponse | null;
429
+ group?: AiGroupInput;
430
+ learnerLocale?: string;
431
+ }): {
432
+ ok: true;
433
+ request: AiGradingRequest;
434
+ } | {
435
+ ok: false;
436
+ problem: AiGradingRequestProblem;
437
+ path?: (string | number)[];
438
+ };
439
+ type Refused = {
440
+ ok: false;
441
+ refusal: AiRefusal;
442
+ };
443
+ /**
444
+ * Checks a grade a port returned for `request`. Whole or nothing, as every AI
445
+ * text is: a reply the SDK doubts in any part is refused, and is no grade —
446
+ * re-ask the model or send the response to a person; never record a 0.
447
+ *
448
+ * - **Every criterion of the rubric, once** (`misses-criteria`). Names match as
449
+ * written, or folded when the folded name is one criterion's alone. Leaving
450
+ * one out, inventing or renaming one, judging one twice or calling one not
451
+ * applicable refuses the reply: a total renormalised over fewer criteria
452
+ * is a grade of a different task.
453
+ * - **On each criterion's own scale** (`out-of-scale`). With levels: a `level`
454
+ * the criterion has, as labelled (case and spacing aside), and any
455
+ * `probabilities` a distribution over its levels, lowest first, whose
456
+ * likeliest is the level chosen. Without levels: a `score` from 0 to its
457
+ * `maxScore`, 1 by default.
458
+ * - **Every correction quotes the response** (`misquotes-answer`), anchored as
459
+ * feedback on writing anchors it.
460
+ * - **Text fields** — a criterion's `comment` (at most
461
+ * `AI_WRITING_MAX_FIELD_LENGTH` code points), `feedback` and `rationale`
462
+ * (at most `AI_TEXT_MAX_LENGTH`) — are plain text, cleaned; longer is
463
+ * `too-long`. `requiresHumanReview` is a boolean.
464
+ *
465
+ * The total is not computed here: `gradeFromJudgement` computes it, as
466
+ * `gradeFromRubric` computes every grade in the SDK.
467
+ */
468
+ export declare function checkAiGrading(raw: unknown, request: AiGradingRequest): {
469
+ ok: true;
470
+ judgement: AiGradingJudgement;
471
+ } | Refused;
472
+ //#endregion
473
+ //#region src/ai-written.d.ts
474
+ /**
475
+ * What the AI features about a written response share: reading a model's text
476
+ * fields, and finding each correction's quote in the learner's text.
477
+ *
478
+ * Internal. `ai-writing.ts` (feedback on a draft) and `ai-grading.ts` (a
479
+ * grade) are their public faces, and hold every correction to the same
480
+ * anchoring.
481
+ */
380
482
  /** The most corrections one piece of writing feedback may carry. More is refused, not cut. */
381
483
  export declare const AI_WRITING_MAX_CORRECTIONS = 20;
382
484
  /** The longest quote, correction, explanation or criterion comment, in code points. */
383
485
  export declare const AI_WRITING_MAX_FIELD_LENGTH = 500;
486
+ //#endregion
487
+ //#region src/ai-writing.d.ts
384
488
  /**
385
489
  * The request for feedback on a draft, or `null` when there is none to give:
386
490
  * not a written response, an author who switched explanations off (writing
@@ -390,12 +494,15 @@ export declare const AI_WRITING_MAX_FIELD_LENGTH = 500;
390
494
  * The facts are the task as the learner saw it, the draft verbatim with its
391
495
  * word count recomputed as the grader will count it, and the rubric the answer
392
496
  * will be graded on. `previousFeedback` is the text of the feedback already
393
- * shown on earlier drafts, so a model can speak to what changed.
497
+ * shown on earlier drafts, so a model can speak to what changed. `group` is the
498
+ * item group the task sits in: its material, the text a summary is of, goes
499
+ * with the request as `material`.
394
500
  */
395
501
  export declare function aiWritingFeedbackRequest(input: {
396
502
  data: AiActivityInput;
397
503
  response: LearnerResponse | null;
398
504
  previousFeedback?: readonly string[];
505
+ group?: AiGroupInput;
399
506
  learnerLocale?: string;
400
507
  }): AiWritingFeedbackRequest | null;
401
508
  /**
@@ -1189,95 +1296,6 @@ export declare class DeferredScoringError extends Error {
1189
1296
  constructor(activityType: string);
1190
1297
  }
1191
1298
  //#endregion
1192
- //#region src/grading.d.ts
1193
- /** Options for {@link gradeFromRubric}. */
1194
- export interface GradeFromRubricOptions {
1195
- /**
1196
- * Scaled score [0,1] required to pass. Defaults to the activity's
1197
- * `passThreshold`, or {@link DEFAULT_PASS_THRESHOLD} when absent.
1198
- */
1199
- passThreshold?: number;
1200
- /** Narrative feedback for the learner, carried onto the record verbatim. */
1201
- feedback?: string | null;
1202
- /**
1203
- * Compare the pass line the way the score is displayed — both sides rounded,
1204
- * via `gte` — whichever threshold applies: `passThreshold` above, the
1205
- * activity's own, or the 0.7 default. The returned `score` stays unrounded.
1206
- * Opt-in, as on `score()` and `evaluate()`: switching it on moves pass/fail
1207
- * for totals in the rounding band.
1208
- *
1209
- * Checked before any criterion is read: `null` reads as no policy, and a
1210
- * policy that cannot be applied — an unknown `mode`, or a `dp` that is not a
1211
- * whole number from 0 to 15 — throws a `RangeError`, even for a rubric that
1212
- * turns out to be unscorable.
1213
- */
1214
- rounding?: RoundingPolicy;
1215
- }
1216
- /**
1217
- * Computes the weighted total from per-criterion scores — the arithmetic that
1218
- * must NOT be delegated to a language model.
1219
- *
1220
- * A grader is asked for judgement (how good is this criterion?), not for
1221
- * mental arithmetic. Asking a model to also produce the weighted total makes
1222
- * the final grade unverifiable and unreproducible: two runs can return
1223
- * different totals for identical criterion scores. This function makes the
1224
- * total a pure function of the judgements, so a grade can be recomputed and
1225
- * audited years later.
1226
- *
1227
- * Weights are normalised by their sum, so they need not add to 1; each must be
1228
- * zero or more, and their sum a positive, finite number, or the result is
1229
- * `unscorable`. Criteria marked `notApplicable`, and those carrying no numeric
1230
- * `score` (a purely banded judgement), are excluded from both numerator and
1231
- * denominator, weight included. When nothing scoreable remains the result is
1232
- * `unscorable`, never a zero.
1233
- *
1234
- * Scores need not be in [0,1]: set `maxScore` on a criterion to declare what
1235
- * its score is out of, and each is normalised before weighting. A grader
1236
- * working out of 100 says so and is done:
1237
- *
1238
- * ```ts
1239
- * gradeFromRubric([
1240
- * { name: 'Task achievement', score: 82, maxScore: 100, weight: 2 },
1241
- * { name: 'Range', score: 7, maxScore: 9, weight: 1 },
1242
- * ]);
1243
- * ```
1244
- *
1245
- * The returned `GradeRecord.score` is always scaled [0,1] against
1246
- * `maxScore: 1`, like every other score in the SDK.
1247
- */
1248
- export declare function gradeFromRubric(criteria: readonly CriterionScore[], activityData?: ActivityData, options?: GradeFromRubricOptions): GradeRecord | {
1249
- unscorable: true;
1250
- reason: string;
1251
- };
1252
- /**
1253
- * Lifts a {@link GradeRecord} into the `graded` arm of {@link ItemOutcome}, so
1254
- * a grade that arrived asynchronously renders through the same path as a
1255
- * synchronously scored item. The score/passed/feedback fields are mirrored
1256
- * onto the outcome for uniform reads; `grade` carries the full record.
1257
- *
1258
- * A record whose numbers cannot be a grade is refused, as `evaluate` refuses a
1259
- * non-finite score and {@link gradeFromRubric} one outside [0,1]. `maxScore`
1260
- * must be a positive, finite number and `score` a finite number from 0 to it (a
1261
- * hair above, one part in a billion, is float noise and passes as it is).
1262
- * Anything else — NaN, 85 "out of 1", a score out of 0 — comes back as
1263
- * `{ status: 'deferred', reason: 'grade_rejected', maxScore: 1, rejectedGrade }`
1264
- * with the record kept verbatim. Not `graded`, or its `passed` would be read as
1265
- * a verdict; not `unscorable`, which `composeAssessmentScore` drops from the
1266
- * denominator while letting the attempt go final — so a failing grade on the
1267
- * wrong scale would vanish and the rest would be recorded as a pass. Deferred
1268
- * is what it is: the slot is still owed a real grade, so a composed attempt
1269
- * stays `provisional` and names the slot in `rejectedSlotIds`.
1270
- */
1271
- export declare function outcomeFromGrade(grade: GradeRecord): ItemOutcome;
1272
- /**
1273
- * True when an outcome carries a real grade — either the SDK scored it
1274
- * synchronously or a grader returned one. Use this instead of testing
1275
- * `status === 'scored'`, which silently misses asynchronously graded work.
1276
- */
1277
- export declare function hasGrade(outcome: ItemOutcome): outcome is Extract<ItemOutcome, {
1278
- status: 'scored' | 'graded';
1279
- }>;
1280
- //#endregion
1281
1299
  //#region src/item-group.d.ts
1282
1300
  /** Narrows a sequence entry to an item group. */
1283
1301
  export declare function isItemGroup<TItem extends {
@@ -2088,5 +2106,5 @@ interface ThemeTokens {
2088
2106
  '--lk-transition-base': string;
2089
2107
  }
2090
2108
  //#endregion
2091
- export { type ActivityAiPermissions, type ActivityData, type ActivityDataMap, type ActivityFeedback, type ActivityMedia, type ActivityResult, type ActivityType, type ActivityTypeAuthoring, type ActivityTypeDescriptor, type ActivityTypeInterop, type ActivityTypeScoring, type AiActivityInput, type AiBlankFact, type AiCoaching, type AiCoachingRequest, type AiCoachingResult, type AiCoachingWord, type AiCriterionJudgement, type AiCritique, type AiCritiqueField, type AiCritiqueFinding, type AiCritiqueFindingResult, type AiCritiqueKind, type AiCritiqueRequest, type AiCritiqueResult, type AiDictationFacts, type AiDraftCaption, type AiDraftProblem, type AiDraftSettings, type AiDraftSource, type AiDraftType, type AiDrafts, type AiDraftsCall, type AiDraftsRequest, type AiDraftsRun, type AiExplanationRequest, type AiFeature, type AiFillInTheBlanksFacts, type AiGapFact, type AiGapSelectFacts, type AiGeneratedDraft, type AiGrade, type AiHintRequest, type AiItemFacts, type AiMultipleChoiceFacts, type AiOptionFact, type AiProvenance, type AiReadingFacts, type AiReadingWordFact, type AiRefusal, type AiRubricCriterionFact, type AiSoundFact, type AiSupportedActivityType, type AiTextResult, type AiVerdict, type AiVideoDraft, type AiWordFact, type AiWritingCorrection, type AiWritingFacts, type AiWritingFeedback, type AiWritingFeedbackRequest, type AiWritingFeedbackResult, type AnsweredStatementParams, type AssessmentScore, type AssessmentSectionInput, type AttemptPlan, type AttemptPlanDrift, type AttemptPlanSlot, type AttemptState, type Band, type BlankConfig, type BuiltInActivityType, type CompletedStatementParams, type CompositionPolicy, type CriterionScore, 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, type DeferredReason, type DeferredScoringPartial, type DeliveryPolicy, type DeliveryPolicyIssue, type DictationAlignment, type DictationCharOp, type DictationData, type DictationEquivalence, type DictationLearnerResponse, type DictationReference, type DictationSlowMedia, type DictationTolerance, type DictationWordAlignment, type DraftComplete, type DraftContext, type DraftIssue, type DraftNotComplete, type DraftSeverity, type DraftValidationResult, EvaluateOptions, type FieldPolicy, type FillInTheBlanksData, type FillInTheBlanksLearnerResponse, type GapSelectBank, type GapSelectChoice, type GapSelectData, type GapSelectGap, type GapSelectLearnerResponse, type GradeReadAloudOptions, type GradeRecord, type Grader, type GraderKind, type GraderUsage, type GradingState, ITEM_SCORING_MAX_RETRIES, type InlineCorrection, type InteractionEvent, type InteractionKind, type ItemFinding, type ItemFindingSeverity, type ItemGroup, type ItemOutcome, type ItemScoringCount, type ItemScoringPolicy, type ItemScoringPolicyIssue, ItemTriesOutcome, type ItemTriesScore, type ItemTry, type ItemTryScore, type LearnerResponse, type LearnerResponseMap, type MediaBudgetRef, type MediaPlayClaim, type MediaPlayGrant, type MediaPlayLedger, type MediaPlayLedgerEntry, type MediaPlaybackPolicy, type MediaProgress, type MediaTimeline, type MediaTrack, type MultipleChoiceData, type MultipleChoiceLearnerResponse, type MultipleChoiceOption, type MultipleChoiceOptionMedia, type NativeControlHint, type PartialScoringResult, type PassFailureReason, READ_ALOUD_MAX_DIMENSION_WEIGHT, READ_ALOUD_MAX_REFERENCE_LENGTH, READ_ALOUD_MAX_SECONDS, READ_ALOUD_MAX_TAKES, type ReadAloudData, type ReadAloudDimension, type ReadAloudDimensionWeight, type ReadAloudLearnerResponse, type ReadAloudSlowMedia, type ReadAloudWordAlignment, type ReadAloudWordState, type RecordingBounds, type RecordingRef, type RedactedActivity, type RedactedBlankConfig, type RedactedDictationData, type RedactedDictationSlowMedia, type RedactedFillInTheBlanksData, type RedactedGapSelectBank, type RedactedGapSelectChoice, type RedactedGapSelectData, type RedactedGapSelectGap, type RedactedMultipleChoiceData, type RedactedMultipleChoiceOption, type RedactedMultipleChoiceOptionMedia, type RedactedReadAloudData, type RedactedStimulus, type RedactedWrittenResponseData, type RegisteredActivityTypeDescriptor, type ResolvedDeliveryPolicy, type ResolvedItemScoringPolicy, type ResponseDiffEntry, type RoundingMode, type RoundingPolicy, SPEECH_ASSESSMENT_MAX_WORDS, type ScoredItem, type ScoringDetail, ScoringOptions, type ScoringOutcome, type ScoringResult, type SectionScore, type Sensitivity, type SequenceEntry, type SequenceSlot, type SequenceSlotGroup, type SpeechAssessment, type SpeechMeasurement, type SpeechPhoneme, type SpeechPhonemeCandidate, type SpeechPlausibilityPolicy, type SpeechSyllable, type SpeechUnscorable, type SpeechUnscorableCode, type SpeechWord, type SpeechWordError, type StandardSchemaV1, type Stimulus, type StimulusKind, type SubmittedStatementParams, type TextMatchPolicy, type TextMatchResult, type ThemeTokens, type TimelineChapter, type TimelineCue, type ValidationError, type ValidationResult, type WavInspection, type WavInspectionPolicy, type WrittenResponseData, type WrittenResponseLearnerResponse, type WrittenResponseRubric, type WrittenResponseRubricCriterion, type XAPIActor, type XAPIConfig, type XAPIContext, type XAPIContextActivities, type XAPIError, type XAPIInteractionType, type XAPIObject, type XAPIObjectParams, type XAPIResult, type XAPIScore, type XAPIStatement, type XAPIStatementParams, XAPIVerb, type XAPIVerbKey, type XAPIVerbObject, XAPI_VERB_DISPLAY, alignDictation, alignReadAloud, classifyBand, composeAssessmentScore, computePassThreshold, dictationJsonSchema, dictationReferenceWords, diffDictationChars, evaluate, evaluateTries, fillInTheBlanksJsonSchema, gapSelectJsonSchema, gradeReadAloud, gte, inspectWav, itemGroupJsonSchema, jsonSchemaFor, levenshteinDistance, matchText, multipleChoiceJsonSchema, outcomeFromUnscorable, readAloudJsonSchema, resolveItemScoringPolicy, roundGrade, score, scoreTries, stimulusJsonSchema, validateActivity, validateItemGroup, validateItemScoringPolicy, validateMedia, validateOptionMedia, validateSpeechAssessment, validateXAPIStatement, writtenResponseJsonSchema, xAPIBuilder, xapiDefinitionFor };
2109
+ export { type ActivityAiPermissions, type ActivityData, type ActivityDataMap, type ActivityFeedback, type ActivityMedia, type ActivityResult, type ActivityType, type ActivityTypeAuthoring, type ActivityTypeDescriptor, type ActivityTypeInterop, type ActivityTypeScoring, type AiActivityInput, type AiBlankFact, type AiCoaching, type AiCoachingRequest, type AiCoachingResult, type AiCoachingWord, type AiCriterionJudgement, type AiCritique, type AiCritiqueField, type AiCritiqueFinding, type AiCritiqueFindingResult, type AiCritiqueKind, type AiCritiqueRequest, type AiCritiqueResult, type AiDictationFacts, type AiDraftCaption, type AiDraftProblem, type AiDraftSettings, type AiDraftSource, type AiDraftType, type AiDrafts, type AiDraftsCall, type AiDraftsRequest, type AiDraftsRun, type AiExplanationRequest, type AiFeature, type AiFillInTheBlanksFacts, type AiGapFact, type AiGapSelectFacts, type AiGeneratedDraft, type AiGrade, type AiGradedCriterion, type AiGradingCriterionFact, type AiGradingFacts, type AiGradingJudgement, type AiGradingRequest, type AiGradingRequestProblem, type AiGroupInput, type AiHintRequest, type AiItemFacts, type AiMaterialFacts, type AiMultipleChoiceFacts, type AiOptionFact, type AiProvenance, type AiReadingFacts, type AiReadingWordFact, type AiRefusal, type AiRubricCriterionFact, type AiSoundFact, type AiSupportedActivityType, type AiTextResult, type AiVerdict, type AiVideoDraft, type AiWordFact, type AiWritingCorrection, type AiWritingFacts, type AiWritingFeedback, type AiWritingFeedbackRequest, type AiWritingFeedbackResult, type AnsweredStatementParams, type AssessmentScore, type AssessmentSectionInput, type AttemptPlan, type AttemptPlanDrift, type AttemptPlanSlot, type AttemptState, type Band, type BlankConfig, type BuiltInActivityType, type CalibrationPair, type CalibrationReport, type CalibrationScope, type CalibrationThresholds, type CompletedStatementParams, type CompositionPolicy, type CriterionCalibration, type CriterionScore, 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, type DeferredReason, type DeferredScoringPartial, type DeliveryPolicy, type DeliveryPolicyIssue, type DictationAlignment, type DictationCharOp, type DictationData, type DictationEquivalence, type DictationLearnerResponse, type DictationReference, type DictationSlowMedia, type DictationTolerance, type DictationWordAlignment, type DraftComplete, type DraftContext, type DraftIssue, type DraftNotComplete, type DraftSeverity, type DraftValidationResult, EvaluateOptions, type FieldPolicy, type FillInTheBlanksData, type FillInTheBlanksLearnerResponse, type GapSelectBank, type GapSelectChoice, type GapSelectData, type GapSelectGap, type GapSelectLearnerResponse, type GradeFromJudgementOptions, GradeFromRubricOptions, type GradeReadAloudOptions, type GradeRecord, type GradeRouting, type GradeRoutingContext, type GradeRoutingPolicy, type GradeRoutingReason, type Grader, type GraderConfiguration, type GraderKind, type GraderUsage, type GradingState, ITEM_SCORING_MAX_RETRIES, type InlineCorrection, type InteractionEvent, type InteractionKind, type ItemFinding, type ItemFindingSeverity, type ItemGroup, type ItemOutcome, type ItemScoringCount, type ItemScoringPolicy, type ItemScoringPolicyIssue, ItemTriesOutcome, type ItemTriesScore, type ItemTry, type ItemTryScore, type LearnerResponse, type LearnerResponseMap, type MediaBudgetRef, type MediaPlayClaim, type MediaPlayGrant, type MediaPlayLedger, type MediaPlayLedgerEntry, type MediaPlaybackPolicy, type MediaProgress, type MediaTimeline, type MediaTrack, type MultipleChoiceData, type MultipleChoiceLearnerResponse, type MultipleChoiceOption, type MultipleChoiceOptionMedia, type NativeControlHint, type PartialScoringResult, type PassFailureReason, READ_ALOUD_MAX_DIMENSION_WEIGHT, READ_ALOUD_MAX_REFERENCE_LENGTH, READ_ALOUD_MAX_SECONDS, READ_ALOUD_MAX_TAKES, type ReadAloudData, type ReadAloudDimension, type ReadAloudDimensionWeight, type ReadAloudLearnerResponse, type ReadAloudSlowMedia, type ReadAloudWordAlignment, type ReadAloudWordState, type RecordingBounds, type RecordingRef, type RedactedActivity, type RedactedBlankConfig, type RedactedDictationData, type RedactedDictationSlowMedia, type RedactedFillInTheBlanksData, type RedactedGapSelectBank, type RedactedGapSelectChoice, type RedactedGapSelectData, type RedactedGapSelectGap, type RedactedMultipleChoiceData, type RedactedMultipleChoiceOption, type RedactedMultipleChoiceOptionMedia, type RedactedReadAloudData, type RedactedStimulus, type RedactedWrittenResponseData, type RegisteredActivityTypeDescriptor, type ResolvedDeliveryPolicy, type ResolvedItemScoringPolicy, type ResponseDiffEntry, type RoundingMode, type RoundingPolicy, SPEECH_ASSESSMENT_MAX_WORDS, type ScoredItem, type ScoringDetail, ScoringOptions, type ScoringOutcome, type ScoringResult, type SectionScore, type Sensitivity, type SequenceEntry, type SequenceSlot, type SequenceSlotGroup, type SpeechAssessment, type SpeechMeasurement, type SpeechPhoneme, type SpeechPhonemeCandidate, type SpeechPlausibilityPolicy, type SpeechSyllable, type SpeechUnscorable, type SpeechUnscorableCode, type SpeechWord, type SpeechWordError, type StandardSchemaV1, type Stimulus, type StimulusKind, type SubmittedStatementParams, type TextMatchPolicy, type TextMatchResult, type ThemeTokens, type TimelineChapter, type TimelineCue, type TotalCalibration, type ValidationError, type ValidationResult, type WavInspection, type WavInspectionPolicy, type WrittenResponseData, type WrittenResponseLearnerResponse, type WrittenResponseRubric, type WrittenResponseRubricCriterion, type WrittenResponseRubricLevel, type XAPIActor, type XAPIConfig, type XAPIContext, type XAPIContextActivities, type XAPIError, type XAPIInteractionType, type XAPIObject, type XAPIObjectParams, type XAPIResult, type XAPIScore, type XAPIStatement, type XAPIStatementParams, XAPIVerb, type XAPIVerbKey, type XAPIVerbObject, XAPI_VERB_DISPLAY, alignDictation, alignReadAloud, calibrationReport, classifyBand, composeAssessmentScore, computePassThreshold, dictationJsonSchema, dictationReferenceWords, diffDictationChars, evaluate, evaluateTries, fillInTheBlanksJsonSchema, gapSelectJsonSchema, gradeFromJudgement, gradeFromRubric, gradeReadAloud, graderConfiguration, gte, hasGrade, inAuditSample, inspectWav, itemGroupJsonSchema, jsonSchemaFor, levenshteinDistance, matchText, multipleChoiceJsonSchema, outcomeFromGrade, outcomeFromRoutedGrade, outcomeFromUnscorable, readAloudJsonSchema, resolveItemScoringPolicy, roundGrade, routeGrade, score, scoreTries, stimulusJsonSchema, validateActivity, validateItemGroup, validateItemScoringPolicy, validateMedia, validateOptionMedia, validateSpeechAssessment, validateXAPIStatement, writtenResponseJsonSchema, xAPIBuilder, xapiDefinitionFor };
2092
2110
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["_$__registry_js0.ActivityTypeDescriptor"],"sources":["../src/ai.ts","../src/ai-coaching.ts","../src/ai-critique.ts","../src/ai-drafts.ts","../src/ai-writing.ts","../src/types/delivery.ts","../src/types/attempt-plan.ts","../src/attempt-plan.ts","../src/types/attempt-state.ts","../src/attempt-state.ts","../src/authoring/item-group.ts","../src/authoring/index.ts","../src/built-in-types.ts","../src/content-hash.ts","../src/count-words.ts","../src/delivery.ts","../src/errors.ts","../src/grading.ts","../src/item-group.ts","../src/types/media-budget.ts","../src/media-budget.ts","../src/standard-schema.ts","../src/registry/define.ts","../src/registry/registry.ts","../src/redact.ts","../src/registry/builtins.ts","../src/shuffle.ts","../src/timeline.ts","../src/timeline-limits.ts","../src/types/theme.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["_$__registry_js0.ActivityTypeDescriptor"],"sources":["../src/ai-material.ts","../src/ai.ts","../src/ai-coaching.ts","../src/ai-critique.ts","../src/ai-drafts.ts","../src/ai-grading.ts","../src/ai-written.ts","../src/ai-writing.ts","../src/types/delivery.ts","../src/types/attempt-plan.ts","../src/attempt-plan.ts","../src/types/attempt-state.ts","../src/attempt-state.ts","../src/authoring/item-group.ts","../src/authoring/index.ts","../src/built-in-types.ts","../src/content-hash.ts","../src/count-words.ts","../src/delivery.ts","../src/errors.ts","../src/item-group.ts","../src/types/media-budget.ts","../src/media-budget.ts","../src/standard-schema.ts","../src/registry/define.ts","../src/registry/registry.ts","../src/redact.ts","../src/registry/builtins.ts","../src/shuffle.ts","../src/timeline.ts","../src/timeline-limits.ts","../src/types/theme.ts"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,81 +1,9 @@
1
- import { A as AI_TEXT_MAX_LENGTH, B as readAiTextResult, C as validateItemGroupDraft, D as checkAiCoaching, E as aiCoachingRequest, F as aiSupports, I as buildAiFacts, L as checkAiExplanation, M as aiExplanationRequest, N as aiGradeOf, O as AI_EXPLANATION_TYPES, P as aiHintRequest, R as checkAiHint, S as critiqueItemGroupDraft, T as AI_COACHING_MAX_WORDS, _ as critiqueDraft, a as AI_DRAFTS_MAX_COUNT, b as createItemGroupDraft, c as aiDraftsRequest, d as interactiveVideoFromDrafts, f as AI_CRITIQUE_MAX_FIELD_LENGTH, g as createDraft, h as checkAiCritique, i as checkAiWritingFeedback, j as aiAllowedByContent, k as AI_HINT_TYPES, l as checkAiDrafts, m as aiCritiqueRequest, n as AI_WRITING_MAX_FIELD_LENGTH, o as AI_DRAFTS_MAX_REPAIRS, p as AI_CRITIQUE_MAX_FINDINGS, r as aiWritingFeedbackRequest, s as aiDraftsRepairRequest, t as AI_WRITING_MAX_CORRECTIONS, u as generateDrafts, v as validateDraft, w as AI_COACHING_MAX_TIP_LENGTH, x as critiqueDrafts, y as createInteractiveVideoDraft, z as hintRevealsAnswer } from "./ai-writing-CCBjTOM3.js";
2
- import { $ as dictationReferenceWords, A as matchText, J as RedactedScoringError, K as ActivitySchemaError, S as READ_ALOUD_MAX_TAKES, Y as UnknownActivityTypeError, Z as alignDictation, a as readSchema, b as READ_ALOUD_MAX_REFERENCE_LENGTH, c as dictationType, ct as BUILT_IN_ACTIVITY_TYPES, d as multipleChoiceType, et as DICTATION_MAX_ACCEPTED_TRANSCRIPTS, f as readAloudType, it as DICTATION_MAX_TRANSCRIPT_LENGTH, j as countWords, k as levenshteinDistance, l as fillInTheBlanksType, m as defineActivityType, n as registerActivityType, nt as DICTATION_MAX_EQUIVALENCE_LENGTH, p as writtenResponseType, q as DeferredScoringError, r as registeredActivityTypes, rt as DICTATION_MAX_TEXT_LENGTH, s as MEDIA_FIELD_POLICY, t as getActivityTypeDescriptor, tt as DICTATION_MAX_EQUIVALENCES, u as gapSelectType, ut as isBuiltInActivityType, w as SPEECH_ASSESSMENT_MAX_WORDS, x as READ_ALOUD_MAX_SECONDS, y as READ_ALOUD_MAX_DIMENSION_WEIGHT } from "./registry-Dsx9mNsS.js";
3
- import { C as validateItemScoringPolicy, S as scoreTries, _ as gte, a as inspectWav, b as ITEM_SCORING_MAX_RETRIES, c as validateSpeechAssessment, d as gradeFromRubric, f as hasGrade, g as classifyBand, h as computePassThreshold, i as outcomeFromUnscorable, l as diffDictationChars, m as DEFAULT_PASS_THRESHOLD, n as evaluateTries, o as gradeReadAloud, p as outcomeFromGrade, r as score, s as alignReadAloud, t as evaluate, u as composeAssessmentScore, v as roundGrade, x as resolveItemScoringPolicy, y as DEFAULT_ITEM_SCORING_POLICY } from "./scoring-BZqUkuDF.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-DXiR8nOr.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-Bdw0nGPo.js";
6
- import { a as validateXAPIStatement, i as XAPI_VERB_DISPLAY, n as xapiDefinitionFor, r as XAPIVerb, t as xAPIBuilder } from "./xapi-CMTph7wG.js";
7
- //#region src/content-hash.ts
8
- /**
9
- * Content fingerprinting — "is this the same content the learner was served?"
10
- *
11
- * A recorded attempt outlives the content it was taken against. Papers get
12
- * corrected, a typo is fixed, an option is reworded — and six months later a
13
- * remark, an appeal, or a per-item analysis is run against content that is no
14
- * longer what the learner saw. Nothing warns anybody, because the ids all still
15
- * match. A fingerprint stored with the attempt turns that silent drift into a
16
- * question somebody can answer.
17
- */
18
- /**
19
- * Deterministic JSON: object keys sorted, arrays left in order, `undefined`
20
- * omitted from objects (matching `JSON.stringify`) and rendered as `null`
21
- * inside arrays.
22
- *
23
- * Key order is the whole point. Two objects that differ only in the order
24
- * their keys happened to be written are the SAME content, and a fingerprint
25
- * that disagreed would raise a false alarm every time a payload made a
26
- * round-trip through a different serializer.
27
- */
28
- function canonicalJson(value, seen = /* @__PURE__ */ new Set()) {
29
- if (value === null) return "null";
30
- if (typeof value === "number") return Number.isFinite(value) ? JSON.stringify(value === 0 ? 0 : value) : `"#${String(value)}"`;
31
- if (typeof value === "string" || typeof value === "boolean") return JSON.stringify(value);
32
- if (typeof value === "bigint") return `"#${value.toString()}n"`;
33
- if (typeof value === "object") {
34
- if (seen.has(value)) throw new Error("canonicalJson: the value contains a circular reference and cannot be fingerprinted.");
35
- seen.add(value);
36
- try {
37
- if (Array.isArray(value)) return `[${value.map((element) => element === void 0 ? "null" : canonicalJson(element, seen)).join(",")}]`;
38
- const source = value;
39
- const parts = [];
40
- for (const key of Object.keys(source).sort()) {
41
- const entry = source[key];
42
- if (entry === void 0) continue;
43
- parts.push(`${JSON.stringify(key)}:${canonicalJson(entry, seen)}`);
44
- }
45
- return `{${parts.join(",")}}`;
46
- } finally {
47
- seen.delete(value);
48
- }
49
- }
50
- return "null";
51
- }
52
- const FNV_OFFSET = 14695981039346656037n;
53
- const FNV_PRIME = 1099511628211n;
54
- const MASK64 = (1n << 64n) - 1n;
55
- /**
56
- * FNV-1a over the UTF-8 bytes of `input`, as 16 lowercase hex digits.
57
- *
58
- * **This is a change-detection fingerprint, not a tamper-evident signature.**
59
- * It is deterministic across runtimes and dependency-free, which is what makes
60
- * it usable in a stored grade record — but an adversary who can edit content
61
- * can also, with effort, preserve the fingerprint. If you need the stronger
62
- * property, sign the plan with a key the content author does not hold; this
63
- * exists to catch honest edits, which is what actually happens.
64
- */
65
- function fingerprint(input) {
66
- const bytes = new TextEncoder().encode(input);
67
- let hash = FNV_OFFSET;
68
- for (const byte of bytes) hash = (hash ^ BigInt(byte)) * FNV_PRIME & MASK64;
69
- return hash.toString(16).padStart(16, "0");
70
- }
71
- /**
72
- * Fingerprints any JSON-serialisable value through {@link canonicalJson}, so
73
- * the result depends on the content and not on how it was written.
74
- */
75
- function contentHash(value) {
76
- return fingerprint(canonicalJson(value));
77
- }
78
- //#endregion
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";
79
7
  //#region src/delivery.ts
80
8
  /**
81
9
  * The policy that restricts nothing: every setting `true`. It is what an absent
@@ -231,44 +159,6 @@ function validateDeliveryPolicy(policy) {
231
159
  };
232
160
  }
233
161
  //#endregion
234
- //#region src/shuffle.ts
235
- /**
236
- * Seeded, deterministic shuffling — the ONE algorithm every presentation-order
237
- * decision in the SDK goes through: option order in a multiple-choice item,
238
- * item order inside an item group, entry order in a sequence. A server and a
239
- * client holding the same seed derive the same order, and an order recorded
240
- * against an attempt can be rebuilt later from nothing but its seed.
241
- *
242
- * STABILITY: the hash and the generator are part of the wire contract. A
243
- * stored attempt may hold only a seed and rely on this function to reproduce
244
- * the order it presented; changing either would silently re-order every
245
- * recorded attempt. Any change here is a package major, and the pinned
246
- * permutation test exists so an accidental one fails loudly.
247
- */
248
- /** FNV-1a hash of a string → unsigned 32-bit integer. */
249
- function hashSeed(input) {
250
- let h = 2166136261;
251
- for (let i = 0; i < input.length; i += 1) {
252
- h ^= input.charCodeAt(i);
253
- h = Math.imul(h, 16777619) >>> 0;
254
- }
255
- return h;
256
- }
257
- /** LCG-driven Fisher–Yates over a 32-bit seed; returns a permutation (no loss, no duplicate). */
258
- function shuffleWithSeed(items, seed, version) {
259
- const out = [...items];
260
- let s = seed >>> 0 || 1;
261
- for (let i = out.length - 1; i > 0; i -= 1) {
262
- s = Math.imul(s, 1664525) + 1013904223 >>> 0;
263
- const j = version === 2 ? Math.floor(s / 4294967296 * (i + 1)) : s % (i + 1);
264
- [out[i], out[j]] = [out[j], out[i]];
265
- }
266
- return out;
267
- }
268
- function seededShuffle(items, seed, options = {}) {
269
- return shuffleWithSeed(items, hashSeed(seed), options.version ?? 1);
270
- }
271
- //#endregion
272
162
  //#region src/item-group.ts
273
163
  /** Narrows a sequence entry to an item group. */
274
164
  function isItemGroup(entry) {
@@ -924,6 +814,8 @@ function redactValue(value, policy, reveal) {
924
814
  if (keepField(classification, reveal)) output[key] = fieldValue;
925
815
  continue;
926
816
  }
817
+ const guard = guardOf(classification);
818
+ if (guard !== void 0 && !guard(fieldValue)) continue;
927
819
  const nested = redactValue(fieldValue, classification, reveal);
928
820
  if (nested !== void 0 && !isEmptyObject(nested)) output[key] = nested;
929
821
  }
@@ -1157,6 +1049,6 @@ function composeTimelineScore(entryKey, items, policy) {
1157
1049
  }], policy);
1158
1050
  }
1159
1051
  //#endregion
1160
- 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_HINT_TYPES, 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, aiHintRequest, aiSupports, aiWritingFeedbackRequest, alignDictation, alignReadAloud, assertRedacted, assertRedactedItemGroup, buildAiFacts, canonicalJson, checkAiCoaching, checkAiCritique, checkAiDrafts, checkAiExplanation, 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, gradeFromRubric, gradeReadAloud, gte, hasGrade, hashSeed, hintRevealsAnswer, inspectWav, interactiveVideoFromDrafts, isBuiltInActivityType, isInteractiveVideoItemType, isItemGroup, itemGroupJsonSchema, jsonSchemaFor, levenshteinDistance, matchText, multipleChoiceJsonSchema, multipleChoiceType, outcomeFromGrade, outcomeFromUnscorable, planAttempt, planMediaBudgets, readAiTextResult, readAloudJsonSchema, readAloudType, readMediaProgress, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolveDeliveryPolicy, resolveItemScoringPolicy, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, roundGrade, score, scoreTries, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusJsonSchema, stimulusMediaKey, validateActivity, validateDeliveryPolicy, validateDraft, validateItemGroup, validateItemGroupDraft, validateItemScoringPolicy, validateMedia, validateOptionMedia, validateSpeechAssessment, validateXAPIStatement, verifyAttemptPlan, writtenResponseJsonSchema, writtenResponseType, xAPIBuilder, xapiDefinitionFor };
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 };
1161
1053
 
1162
1054
  //# sourceMappingURL=index.js.map