@intellectif/lk-core 0.13.1 → 0.14.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 (55) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/dist/{activity-DfAmJ1sl.d.cts → activity-BVkg9VDo.d.cts} +153 -4
  4. package/dist/{activity-DfAmJ1sl.d.ts → activity-BVkg9VDo.d.ts} +153 -4
  5. package/dist/{chunk-DQKJUMUW.cjs → chunk-2NIALQEH.cjs} +24 -19
  6. package/dist/chunk-2NIALQEH.cjs.map +1 -0
  7. package/dist/{chunk-XKKKWKRH.js → chunk-6RND47QE.js} +694 -126
  8. package/dist/chunk-6RND47QE.js.map +1 -0
  9. package/dist/{chunk-FT7SAC3X.cjs → chunk-CZRUMHKW.cjs} +4 -4
  10. package/dist/{chunk-FT7SAC3X.cjs.map → chunk-CZRUMHKW.cjs.map} +1 -1
  11. package/dist/chunk-J5OIRIOW.cjs +1034 -0
  12. package/dist/chunk-J5OIRIOW.cjs.map +1 -0
  13. package/dist/{chunk-Y36S3X3L.js → chunk-NBADQ3JU.js} +7 -2
  14. package/dist/chunk-NBADQ3JU.js.map +1 -0
  15. package/dist/{chunk-PYP3HCRQ.js → chunk-R7PV3XIC.js} +2 -2
  16. package/dist/chunk-RTIR6R2U.js +1034 -0
  17. package/dist/chunk-RTIR6R2U.js.map +1 -0
  18. package/dist/{chunk-XONKWL6D.cjs → chunk-VCXIPLEW.cjs} +585 -17
  19. package/dist/chunk-VCXIPLEW.cjs.map +1 -0
  20. package/dist/{index-BefQ8FAS.d.cts → index-BE1bM2Wi.d.cts} +238 -16
  21. package/dist/{index-BiIvdASA.d.ts → index-v2_-Fyn3.d.ts} +238 -16
  22. package/dist/index.cjs +110 -80
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +45 -17
  25. package/dist/index.d.ts +45 -17
  26. package/dist/index.js +35 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/schemas.cjs +11 -3
  29. package/dist/schemas.cjs.map +1 -1
  30. package/dist/schemas.d.cts +2 -2
  31. package/dist/schemas.d.ts +2 -2
  32. package/dist/schemas.js +10 -2
  33. package/dist/scoring.cjs +23 -3
  34. package/dist/scoring.cjs.map +1 -1
  35. package/dist/scoring.d.cts +471 -16
  36. package/dist/scoring.d.ts +471 -16
  37. package/dist/scoring.js +24 -4
  38. package/dist/xapi.cjs +3 -3
  39. package/dist/xapi.d.cts +1 -1
  40. package/dist/xapi.d.ts +1 -1
  41. package/dist/xapi.js +2 -2
  42. package/package.json +1 -1
  43. package/vectors/README.md +63 -3
  44. package/vectors/replay.d.mts +7 -2
  45. package/vectors/replay.mjs +83 -1
  46. package/vectors/scoring.json +10875 -2
  47. package/dist/chunk-DQKJUMUW.cjs.map +0 -1
  48. package/dist/chunk-FGN4LLSP.js +0 -387
  49. package/dist/chunk-FGN4LLSP.js.map +0 -1
  50. package/dist/chunk-UHQVIC3P.cjs +0 -387
  51. package/dist/chunk-UHQVIC3P.cjs.map +0 -1
  52. package/dist/chunk-XKKKWKRH.js.map +0 -1
  53. package/dist/chunk-XONKWL6D.cjs.map +0 -1
  54. package/dist/chunk-Y36S3X3L.js.map +0 -1
  55. /package/dist/{chunk-PYP3HCRQ.js.map → chunk-R7PV3XIC.js.map} +0 -0
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { ScoredItem } from './scoring.cjs';
2
- export { AssessmentScore, AssessmentSectionInput, Band, CompositionPolicy, DEFAULT_PASS_THRESHOLD, DICTATION_MAX_ACCEPTED_TRANSCRIPTS, DICTATION_MAX_EQUIVALENCES, DICTATION_MAX_EQUIVALENCE_LENGTH, DICTATION_MAX_TEXT_LENGTH, DICTATION_MAX_TRANSCRIPT_LENGTH, DictationAlignment, DictationCharOp, DictationReference, DictationWordAlignment, PassFailureReason, RoundingMode, RoundingPolicy, ScoringOptions, SectionScore, alignDictation, classifyBand, composeAssessmentScore, computePassThreshold, dictationReferenceWords, diffDictationChars, evaluate, gte, roundGrade, score } from './scoring.cjs';
3
- import { w as ItemOutcome, A as ActivityData, L as LearnerResponse, V as ValidationError, e as ActivityType, a as ActivityDataMap, C as CriterionScore, p as GradeRecord, N as NativeControlHint, c as ActivityMedia, K as ScoringResult, D as DeferredScoringPartial, f as DictationData, h as DictationLearnerResponse, F as FillInTheBlanksData, k as FillInTheBlanksLearnerResponse, m as GapSelectData, o as GapSelectLearnerResponse, y as MultipleChoiceData, z as MultipleChoiceLearnerResponse, W as WrittenResponseData, Q as WrittenResponseLearnerResponse } from './activity-DfAmJ1sl.cjs';
4
- export { b as ActivityFeedback, d as ActivityResult, B as BlankConfig, g as DictationEquivalence, i as DictationSlowMedia, j as DictationTolerance, G as GapSelectBank, l as GapSelectChoice, n as GapSelectGap, q as Grader, r as GraderKind, s as GraderUsage, t as GradingState, I as InlineCorrection, u as InteractionEvent, v as InteractionKind, x as LearnerResponseMap, M as MediaPlaybackPolicy, E as MultipleChoiceOption, H as MultipleChoiceOptionMedia, S as ScoringDetail, J as ScoringOutcome, T as TextMatchPolicy, O as TextMatchResult, P as ValidationResult, R as WrittenResponseRubric, U as WrittenResponseRubricCriterion, X as XAPIActor, Y as XAPIConfig, Z as XAPIContext, _ as XAPIContextActivities, $ as XAPIError, a0 as XAPIObject, a1 as XAPIResult, a2 as XAPIScore, a3 as XAPIStatement, a4 as XAPIVerbObject, a5 as levenshteinDistance, a6 as matchText } from './activity-DfAmJ1sl.cjs';
5
- import { Y as SequenceSlot, X as SequenceEntry, I as ItemGroup } from './index-BefQ8FAS.cjs';
6
- export { B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, i as MediaSchema, j as MediaUrlSchema, k as MultipleChoiceDataSchema, l as MultipleChoiceOptionMediaSchema, m as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as RedactedActivity, n as RedactedBlankConfig, o as RedactedBlankConfigSchema, p as RedactedDictationData, q as RedactedDictationDataSchema, r as RedactedDictationSlowMedia, s as RedactedDictationSlowMediaSchema, t as RedactedFillInTheBlanksData, u as RedactedFillInTheBlanksDataSchema, v as RedactedGapSelectBank, w as RedactedGapSelectBankSchema, x as RedactedGapSelectChoice, y as RedactedGapSelectChoiceSchema, z as RedactedGapSelectData, A as RedactedGapSelectDataSchema, C as RedactedGapSelectGap, E as RedactedGapSelectGapSchema, H as RedactedItemGroupSchema, J as RedactedMediaSchema, K as RedactedMultipleChoiceData, L as RedactedMultipleChoiceDataSchema, O as RedactedMultipleChoiceOption, P as RedactedMultipleChoiceOptionMedia, Q as RedactedMultipleChoiceOptionMediaSchema, S as RedactedMultipleChoiceOptionSchema, T as RedactedStimulus, U as RedactedStimulusSchema, V as RedactedWrittenResponseData, W as RedactedWrittenResponseDataSchema, Z as SequenceSlotGroup, _ as Stimulus, $ as StimulusKind, a0 as StimulusSchema, a1 as TextMatchPolicySchema, a2 as WrittenResponseDataSchema, a3 as WrittenResponseRubricCriterionSchema, a4 as WrittenResponseRubricSchema, a5 as dictationJsonSchema, a6 as fillInTheBlanksJsonSchema, a7 as gapSelectJsonSchema, a8 as itemGroupJsonSchema, a9 as jsonSchemaFor, aa as multipleChoiceJsonSchema, ab as stimulusJsonSchema, ac as validateActivity, ad as validateItemGroup, ae as writtenResponseJsonSchema } from './index-BefQ8FAS.cjs';
1
+ import { ScoredItem, RoundingPolicy } from './scoring.cjs';
2
+ export { AssessmentScore, AssessmentSectionInput, Band, CompositionPolicy, DEFAULT_PASS_THRESHOLD, DICTATION_MAX_ACCEPTED_TRANSCRIPTS, DICTATION_MAX_EQUIVALENCES, DICTATION_MAX_EQUIVALENCE_LENGTH, DICTATION_MAX_TEXT_LENGTH, DICTATION_MAX_TRANSCRIPT_LENGTH, DictationAlignment, DictationCharOp, DictationReference, DictationWordAlignment, GradeReadAloudOptions, PassFailureReason, READ_ALOUD_MAX_DIMENSION_WEIGHT, READ_ALOUD_MAX_REFERENCE_LENGTH, READ_ALOUD_MAX_SECONDS, READ_ALOUD_MAX_TAKES, ReadAloudWordAlignment, ReadAloudWordState, RoundingMode, SPEECH_ASSESSMENT_MAX_WORDS, ScoringOptions, SectionScore, SpeechAssessment, SpeechMeasurement, SpeechPhoneme, SpeechPhonemeCandidate, SpeechPlausibilityPolicy, SpeechSyllable, SpeechUnscorable, SpeechUnscorableCode, SpeechWord, SpeechWordError, WavInspection, WavInspectionPolicy, alignDictation, alignReadAloud, classifyBand, composeAssessmentScore, computePassThreshold, dictationReferenceWords, diffDictationChars, evaluate, gradeReadAloud, gte, inspectWav, outcomeFromUnscorable, roundGrade, score, validateSpeechAssessment } from './scoring.cjs';
3
+ import { x as ItemOutcome, A as ActivityData, L as LearnerResponse, Z as ValidationError, e as ActivityType, a as ActivityDataMap, C as CriterionScore, q as GradeRecord, N as NativeControlHint, c as ActivityMedia, W as ScoringResult, f as DeferredScoringPartial, g as DictationData, i as DictationLearnerResponse, F as FillInTheBlanksData, l as FillInTheBlanksLearnerResponse, n as GapSelectData, p as GapSelectLearnerResponse, z as MultipleChoiceData, E as MultipleChoiceLearnerResponse, R as ReadAloudData, P as ReadAloudLearnerResponse, $ as WrittenResponseData, a0 as WrittenResponseLearnerResponse } from './activity-BVkg9VDo.cjs';
4
+ export { b as ActivityFeedback, d as ActivityResult, B as BlankConfig, D as DeferredReason, h as DictationEquivalence, j as DictationSlowMedia, k as DictationTolerance, G as GapSelectBank, m as GapSelectChoice, o as GapSelectGap, r as Grader, s as GraderKind, t as GraderUsage, u as GradingState, I as InlineCorrection, v as InteractionEvent, w as InteractionKind, y as LearnerResponseMap, M as MediaPlaybackPolicy, H as MultipleChoiceOption, J as MultipleChoiceOptionMedia, K as ReadAloudDimension, O as ReadAloudDimensionWeight, Q as ReadAloudSlowMedia, S as RecordingBounds, T as RecordingRef, U as ScoringDetail, V as ScoringOutcome, X as TextMatchPolicy, Y as TextMatchResult, _ as ValidationResult, a1 as WrittenResponseRubric, a2 as WrittenResponseRubricCriterion, a3 as XAPIActor, a4 as XAPIConfig, a5 as XAPIContext, a6 as XAPIContextActivities, a7 as XAPIError, a8 as XAPIObject, a9 as XAPIResult, aa as XAPIScore, ab as XAPIStatement, ac as XAPIVerbObject, ad as levenshteinDistance, ae as matchText } from './activity-BVkg9VDo.cjs';
5
+ import { a0 as SequenceSlot, $ as SequenceEntry, I as ItemGroup } from './index-BE1bM2Wi.cjs';
6
+ export { B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, i as MediaSchema, j as MediaUrlSchema, k as MultipleChoiceDataSchema, l as MultipleChoiceOptionMediaSchema, m as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as ReadAloudDataSchema, n as ReadAloudSlowMediaSchema, o as RedactedActivity, p as RedactedBlankConfig, q as RedactedBlankConfigSchema, r as RedactedDictationData, s as RedactedDictationDataSchema, t as RedactedDictationSlowMedia, u as RedactedDictationSlowMediaSchema, v as RedactedFillInTheBlanksData, w as RedactedFillInTheBlanksDataSchema, x as RedactedGapSelectBank, y as RedactedGapSelectBankSchema, z as RedactedGapSelectChoice, A as RedactedGapSelectChoiceSchema, C as RedactedGapSelectData, E as RedactedGapSelectDataSchema, H as RedactedGapSelectGap, J as RedactedGapSelectGapSchema, K as RedactedItemGroupSchema, L as RedactedMediaSchema, O as RedactedMultipleChoiceData, P as RedactedMultipleChoiceDataSchema, Q as RedactedMultipleChoiceOption, S as RedactedMultipleChoiceOptionMedia, T as RedactedMultipleChoiceOptionMediaSchema, U as RedactedMultipleChoiceOptionSchema, V as RedactedReadAloudData, W as RedactedReadAloudDataSchema, X as RedactedStimulus, Y as RedactedStimulusSchema, Z as RedactedWrittenResponseData, _ as RedactedWrittenResponseDataSchema, a1 as SequenceSlotGroup, a2 as Stimulus, a3 as StimulusKind, a4 as StimulusSchema, a5 as TextMatchPolicySchema, a6 as WrittenResponseDataSchema, a7 as WrittenResponseRubricCriterionSchema, a8 as WrittenResponseRubricSchema, a9 as dictationJsonSchema, aa as fillInTheBlanksJsonSchema, ab as gapSelectJsonSchema, ac as itemGroupJsonSchema, ad as jsonSchemaFor, ae as multipleChoiceJsonSchema, af as readAloudJsonSchema, ag as stimulusJsonSchema, ah as validateActivity, ai as validateItemGroup, aj as writtenResponseJsonSchema } from './index-BE1bM2Wi.cjs';
7
7
  import { z } from 'zod/v4';
8
8
  export { AnsweredStatementParams, CompletedStatementParams, SubmittedStatementParams, XAPIObjectParams, XAPIStatementParams, XAPIVerb, XAPIVerbKey, XAPI_VERB_DISPLAY, validateXAPIStatement, xAPIBuilder, xapiDefinitionFor } from './xapi.cjs';
9
9
 
@@ -537,12 +537,14 @@ declare class UnknownActivityTypeError extends Error {
537
537
  constructor(activityType: string);
538
538
  }
539
539
  /**
540
- * Thrown when `score()` is asked to grade a `redact()` projection (or any
541
- * activity data whose answer key is missing, yielding a non-finite score).
542
- * Redacted data is learner-safe precisely because the key was removed, so a
543
- * score derived from it is meaningless — previously this produced a silent
544
- * `NaN` that serialized to `null` in a grade column. `evaluate()` returns
545
- * `{ status: 'unscorable' }` for the same input instead of throwing.
540
+ * Thrown when a grading entry point is asked to grade a `redact()` projection
541
+ * (or any activity data whose answer key is missing, yielding a non-finite
542
+ * score). Redacted data is learner-safe precisely because the key was removed,
543
+ * so a score derived from it is meaningless — previously this produced a silent
544
+ * `NaN` that serialized to `null` in a grade column. `evaluate()` answers the
545
+ * same input without throwing, but it never grades it: a synchronously graded
546
+ * type comes back `unscorable`, and a deferred one `deferred`, as it does for
547
+ * any item of that type.
546
548
  */
547
549
  declare class RedactedScoringError extends Error {
548
550
  readonly activityType: string;
@@ -569,6 +571,19 @@ interface GradeFromRubricOptions {
569
571
  passThreshold?: number;
570
572
  /** Narrative feedback for the learner, carried onto the record verbatim. */
571
573
  feedback?: string | null;
574
+ /**
575
+ * Compare the pass line the way the score is displayed — both sides rounded,
576
+ * via `gte` — whichever threshold applies: `passThreshold` above, the
577
+ * activity's own, or the 0.7 default. The returned `score` stays unrounded.
578
+ * Opt-in, as on `score()` and `evaluate()`: switching it on moves pass/fail
579
+ * for totals in the rounding band.
580
+ *
581
+ * Checked before any criterion is read: `null` reads as no policy, and a
582
+ * policy that cannot be applied — an unknown `mode`, or a `dp` that is not a
583
+ * whole number from 0 to 15 — throws a `RangeError`, even for a rubric that
584
+ * turns out to be unscorable.
585
+ */
586
+ rounding?: RoundingPolicy;
572
587
  }
573
588
  /**
574
589
  * Computes the weighted total from per-criterion scores — the arithmetic that
@@ -817,7 +832,9 @@ type PartialScoringResult = Omit<ScoringResult, 'passed'>;
817
832
  * - `public` — safe to send to a learner before they answer.
818
833
  * - `answer-key` — reveals (or helps infer) the correct answer or the scoring
819
834
  * rules; removed unless `reveal: 'after-submit'` is requested.
820
- * - `author-only` — never leaves the authoring/grading context (e.g. rubrics).
835
+ * - `author-only` — never leaves the authoring/grading context (e.g. the
836
+ * author transcript of a listening group's stimulus). A rubric is NOT one:
837
+ * it tells the learner what they are assessed on, so it is `public`.
821
838
  */
822
839
  type Sensitivity = 'public' | 'answer-key' | 'author-only';
823
840
  /**
@@ -1016,9 +1033,13 @@ interface RedactOptions {
1016
1033
  *
1017
1034
  * Overrides can only be applied to fields; they cannot re-open a field the
1018
1035
  * caller has not classified, because unclassified still means removed.
1019
- * Note that tightening below what the type's `redactedSchema` requires is
1020
- * allowed the schema check only rejects payloads that reveal MORE than
1021
- * the learner-safe shape.
1036
+ * What can be tightened is a field the type's `redactedSchema` leaves
1037
+ * OPTIONAL, as it leaves the rubric above: the schema check rejects a
1038
+ * payload that reveals more than the learner-safe shape, and equally one
1039
+ * that is missing part of it. Tightening a field the redacted shape requires
1040
+ * — a read-aloud item's `scoring`, `recording`, `referenceText` or `locale`,
1041
+ * without which the learner has no item to read — throws
1042
+ * {@link ActivitySchemaError} instead of hiding it.
1022
1043
  */
1023
1044
  policy?: FieldPolicy;
1024
1045
  }
@@ -1095,6 +1116,13 @@ declare const gapSelectType: ActivityTypeDescriptor<GapSelectData, GapSelectLear
1095
1116
  * computation identical in a browser and on a server.
1096
1117
  */
1097
1118
  declare const dictationType: ActivityTypeDescriptor<DictationData, DictationLearnerResponse>;
1119
+ /**
1120
+ * Built-in Read Aloud descriptor. Grading is DEFERRED: the SDK calls no
1121
+ * assessor, so the synchronous outcome reports only whether a recording was
1122
+ * stored, and `gradeReadAloud` produces the grade once the application holds a
1123
+ * speech assessment.
1124
+ */
1125
+ declare const readAloudType: ActivityTypeDescriptor<ReadAloudData, ReadAloudLearnerResponse>;
1098
1126
 
1099
1127
  /**
1100
1128
  * Seeded, deterministic shuffling — the ONE algorithm every presentation-order
@@ -1195,4 +1223,4 @@ interface ThemeTokens {
1195
1223
  '--lk-transition-base': string;
1196
1224
  }
1197
1225
 
1198
- export { ActivityData, ActivityDataMap, ActivityMedia, ActivitySchemaError, ActivityType, type ActivityTypeAuthoring, type ActivityTypeDescriptor, type ActivityTypeInterop, type ActivityTypeScoring, type AttemptPlan, type AttemptPlanDrift, type AttemptPlanSlot, type AttemptProgress, type AttemptState, CriterionScore, DeferredScoringError, DeferredScoringPartial, DictationData, DictationLearnerResponse, type DraftComplete, type DraftContext, type DraftIssue, type DraftNotComplete, type DraftSeverity, type DraftValidationResult, type FieldPolicy, FillInTheBlanksData, FillInTheBlanksLearnerResponse, type FlattenSequenceOptions, GapSelectData, GapSelectLearnerResponse, type GradeFromRubricOptions, GradeRecord, ItemGroup, ItemOutcome, LearnerResponse, type MediaBudgetRef, type MediaPlayClaim, type MediaPlayGrant, type MediaPlayLedger, type MediaPlayLedgerEntry, type MissingOutcomePolicy, MultipleChoiceData, MultipleChoiceLearnerResponse, NativeControlHint, type PartialScoringResult, type PlanAttemptOptions, type PlannableEntry, type RedactOptions, type RedactedActivityData, type RedactedItemGroup, RedactedScoringError, type RegisteredActivityTypeDescriptor, type ResolvedPlaybackPolicy, type ResponseDiffEntry, ScoredItem, ScoringResult, type SeededShuffleOptions, type Sensitivity, SequenceEntry, SequenceSlot, type ShuffleVersion, type ThemeTokens, UnknownActivityTypeError, ValidationError, WrittenResponseData, WrittenResponseLearnerResponse, type XAPIInteractionType, assertRedacted, assertRedactedItemGroup, canonicalJson, contentHash, countWords, createDraft, createItemGroupDraft, defineActivityType, dictationType, diffResponses, entryKeyOf, fillInTheBlanksType, fingerprint, flattenSequence, gapSelectType, getActivityTypeDescriptor, gradeFromRubric, hasGrade, hashSeed, isItemGroup, multipleChoiceType, outcomeFromGrade, planAttempt, planMediaBudgets, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusMediaKey, validateDraft, validateItemGroupDraft, verifyAttemptPlan, writtenResponseType };
1226
+ export { ActivityData, ActivityDataMap, ActivityMedia, ActivitySchemaError, ActivityType, type ActivityTypeAuthoring, type ActivityTypeDescriptor, type ActivityTypeInterop, type ActivityTypeScoring, type AttemptPlan, type AttemptPlanDrift, type AttemptPlanSlot, type AttemptProgress, type AttemptState, CriterionScore, DeferredScoringError, DeferredScoringPartial, DictationData, DictationLearnerResponse, type DraftComplete, type DraftContext, type DraftIssue, type DraftNotComplete, type DraftSeverity, type DraftValidationResult, type FieldPolicy, FillInTheBlanksData, FillInTheBlanksLearnerResponse, type FlattenSequenceOptions, GapSelectData, GapSelectLearnerResponse, type GradeFromRubricOptions, GradeRecord, ItemGroup, ItemOutcome, LearnerResponse, type MediaBudgetRef, type MediaPlayClaim, type MediaPlayGrant, type MediaPlayLedger, type MediaPlayLedgerEntry, type MissingOutcomePolicy, MultipleChoiceData, MultipleChoiceLearnerResponse, NativeControlHint, type PartialScoringResult, type PlanAttemptOptions, type PlannableEntry, ReadAloudData, ReadAloudLearnerResponse, type RedactOptions, type RedactedActivityData, type RedactedItemGroup, RedactedScoringError, type RegisteredActivityTypeDescriptor, type ResolvedPlaybackPolicy, type ResponseDiffEntry, RoundingPolicy, ScoredItem, ScoringResult, type SeededShuffleOptions, type Sensitivity, SequenceEntry, SequenceSlot, type ShuffleVersion, type ThemeTokens, UnknownActivityTypeError, ValidationError, WrittenResponseData, WrittenResponseLearnerResponse, type XAPIInteractionType, assertRedacted, assertRedactedItemGroup, canonicalJson, contentHash, countWords, createDraft, createItemGroupDraft, defineActivityType, dictationType, diffResponses, entryKeyOf, fillInTheBlanksType, fingerprint, flattenSequence, gapSelectType, getActivityTypeDescriptor, gradeFromRubric, hasGrade, hashSeed, isItemGroup, multipleChoiceType, outcomeFromGrade, planAttempt, planMediaBudgets, readAloudType, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusMediaKey, validateDraft, validateItemGroupDraft, verifyAttemptPlan, writtenResponseType };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { ScoredItem } from './scoring.js';
2
- export { AssessmentScore, AssessmentSectionInput, Band, CompositionPolicy, DEFAULT_PASS_THRESHOLD, DICTATION_MAX_ACCEPTED_TRANSCRIPTS, DICTATION_MAX_EQUIVALENCES, DICTATION_MAX_EQUIVALENCE_LENGTH, DICTATION_MAX_TEXT_LENGTH, DICTATION_MAX_TRANSCRIPT_LENGTH, DictationAlignment, DictationCharOp, DictationReference, DictationWordAlignment, PassFailureReason, RoundingMode, RoundingPolicy, ScoringOptions, SectionScore, alignDictation, classifyBand, composeAssessmentScore, computePassThreshold, dictationReferenceWords, diffDictationChars, evaluate, gte, roundGrade, score } from './scoring.js';
3
- import { w as ItemOutcome, A as ActivityData, L as LearnerResponse, V as ValidationError, e as ActivityType, a as ActivityDataMap, C as CriterionScore, p as GradeRecord, N as NativeControlHint, c as ActivityMedia, K as ScoringResult, D as DeferredScoringPartial, f as DictationData, h as DictationLearnerResponse, F as FillInTheBlanksData, k as FillInTheBlanksLearnerResponse, m as GapSelectData, o as GapSelectLearnerResponse, y as MultipleChoiceData, z as MultipleChoiceLearnerResponse, W as WrittenResponseData, Q as WrittenResponseLearnerResponse } from './activity-DfAmJ1sl.js';
4
- export { b as ActivityFeedback, d as ActivityResult, B as BlankConfig, g as DictationEquivalence, i as DictationSlowMedia, j as DictationTolerance, G as GapSelectBank, l as GapSelectChoice, n as GapSelectGap, q as Grader, r as GraderKind, s as GraderUsage, t as GradingState, I as InlineCorrection, u as InteractionEvent, v as InteractionKind, x as LearnerResponseMap, M as MediaPlaybackPolicy, E as MultipleChoiceOption, H as MultipleChoiceOptionMedia, S as ScoringDetail, J as ScoringOutcome, T as TextMatchPolicy, O as TextMatchResult, P as ValidationResult, R as WrittenResponseRubric, U as WrittenResponseRubricCriterion, X as XAPIActor, Y as XAPIConfig, Z as XAPIContext, _ as XAPIContextActivities, $ as XAPIError, a0 as XAPIObject, a1 as XAPIResult, a2 as XAPIScore, a3 as XAPIStatement, a4 as XAPIVerbObject, a5 as levenshteinDistance, a6 as matchText } from './activity-DfAmJ1sl.js';
5
- import { Y as SequenceSlot, X as SequenceEntry, I as ItemGroup } from './index-BiIvdASA.js';
6
- export { B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, i as MediaSchema, j as MediaUrlSchema, k as MultipleChoiceDataSchema, l as MultipleChoiceOptionMediaSchema, m as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as RedactedActivity, n as RedactedBlankConfig, o as RedactedBlankConfigSchema, p as RedactedDictationData, q as RedactedDictationDataSchema, r as RedactedDictationSlowMedia, s as RedactedDictationSlowMediaSchema, t as RedactedFillInTheBlanksData, u as RedactedFillInTheBlanksDataSchema, v as RedactedGapSelectBank, w as RedactedGapSelectBankSchema, x as RedactedGapSelectChoice, y as RedactedGapSelectChoiceSchema, z as RedactedGapSelectData, A as RedactedGapSelectDataSchema, C as RedactedGapSelectGap, E as RedactedGapSelectGapSchema, H as RedactedItemGroupSchema, J as RedactedMediaSchema, K as RedactedMultipleChoiceData, L as RedactedMultipleChoiceDataSchema, O as RedactedMultipleChoiceOption, P as RedactedMultipleChoiceOptionMedia, Q as RedactedMultipleChoiceOptionMediaSchema, S as RedactedMultipleChoiceOptionSchema, T as RedactedStimulus, U as RedactedStimulusSchema, V as RedactedWrittenResponseData, W as RedactedWrittenResponseDataSchema, Z as SequenceSlotGroup, _ as Stimulus, $ as StimulusKind, a0 as StimulusSchema, a1 as TextMatchPolicySchema, a2 as WrittenResponseDataSchema, a3 as WrittenResponseRubricCriterionSchema, a4 as WrittenResponseRubricSchema, a5 as dictationJsonSchema, a6 as fillInTheBlanksJsonSchema, a7 as gapSelectJsonSchema, a8 as itemGroupJsonSchema, a9 as jsonSchemaFor, aa as multipleChoiceJsonSchema, ab as stimulusJsonSchema, ac as validateActivity, ad as validateItemGroup, ae as writtenResponseJsonSchema } from './index-BiIvdASA.js';
1
+ import { ScoredItem, RoundingPolicy } from './scoring.js';
2
+ export { AssessmentScore, AssessmentSectionInput, Band, CompositionPolicy, DEFAULT_PASS_THRESHOLD, DICTATION_MAX_ACCEPTED_TRANSCRIPTS, DICTATION_MAX_EQUIVALENCES, DICTATION_MAX_EQUIVALENCE_LENGTH, DICTATION_MAX_TEXT_LENGTH, DICTATION_MAX_TRANSCRIPT_LENGTH, DictationAlignment, DictationCharOp, DictationReference, DictationWordAlignment, GradeReadAloudOptions, PassFailureReason, READ_ALOUD_MAX_DIMENSION_WEIGHT, READ_ALOUD_MAX_REFERENCE_LENGTH, READ_ALOUD_MAX_SECONDS, READ_ALOUD_MAX_TAKES, ReadAloudWordAlignment, ReadAloudWordState, RoundingMode, SPEECH_ASSESSMENT_MAX_WORDS, ScoringOptions, SectionScore, SpeechAssessment, SpeechMeasurement, SpeechPhoneme, SpeechPhonemeCandidate, SpeechPlausibilityPolicy, SpeechSyllable, SpeechUnscorable, SpeechUnscorableCode, SpeechWord, SpeechWordError, WavInspection, WavInspectionPolicy, alignDictation, alignReadAloud, classifyBand, composeAssessmentScore, computePassThreshold, dictationReferenceWords, diffDictationChars, evaluate, gradeReadAloud, gte, inspectWav, outcomeFromUnscorable, roundGrade, score, validateSpeechAssessment } from './scoring.js';
3
+ import { x as ItemOutcome, A as ActivityData, L as LearnerResponse, Z as ValidationError, e as ActivityType, a as ActivityDataMap, C as CriterionScore, q as GradeRecord, N as NativeControlHint, c as ActivityMedia, W as ScoringResult, f as DeferredScoringPartial, g as DictationData, i as DictationLearnerResponse, F as FillInTheBlanksData, l as FillInTheBlanksLearnerResponse, n as GapSelectData, p as GapSelectLearnerResponse, z as MultipleChoiceData, E as MultipleChoiceLearnerResponse, R as ReadAloudData, P as ReadAloudLearnerResponse, $ as WrittenResponseData, a0 as WrittenResponseLearnerResponse } from './activity-BVkg9VDo.js';
4
+ export { b as ActivityFeedback, d as ActivityResult, B as BlankConfig, D as DeferredReason, h as DictationEquivalence, j as DictationSlowMedia, k as DictationTolerance, G as GapSelectBank, m as GapSelectChoice, o as GapSelectGap, r as Grader, s as GraderKind, t as GraderUsage, u as GradingState, I as InlineCorrection, v as InteractionEvent, w as InteractionKind, y as LearnerResponseMap, M as MediaPlaybackPolicy, H as MultipleChoiceOption, J as MultipleChoiceOptionMedia, K as ReadAloudDimension, O as ReadAloudDimensionWeight, Q as ReadAloudSlowMedia, S as RecordingBounds, T as RecordingRef, U as ScoringDetail, V as ScoringOutcome, X as TextMatchPolicy, Y as TextMatchResult, _ as ValidationResult, a1 as WrittenResponseRubric, a2 as WrittenResponseRubricCriterion, a3 as XAPIActor, a4 as XAPIConfig, a5 as XAPIContext, a6 as XAPIContextActivities, a7 as XAPIError, a8 as XAPIObject, a9 as XAPIResult, aa as XAPIScore, ab as XAPIStatement, ac as XAPIVerbObject, ad as levenshteinDistance, ae as matchText } from './activity-BVkg9VDo.js';
5
+ import { a0 as SequenceSlot, $ as SequenceEntry, I as ItemGroup } from './index-v2_-Fyn3.js';
6
+ export { B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, i as MediaSchema, j as MediaUrlSchema, k as MultipleChoiceDataSchema, l as MultipleChoiceOptionMediaSchema, m as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as ReadAloudDataSchema, n as ReadAloudSlowMediaSchema, o as RedactedActivity, p as RedactedBlankConfig, q as RedactedBlankConfigSchema, r as RedactedDictationData, s as RedactedDictationDataSchema, t as RedactedDictationSlowMedia, u as RedactedDictationSlowMediaSchema, v as RedactedFillInTheBlanksData, w as RedactedFillInTheBlanksDataSchema, x as RedactedGapSelectBank, y as RedactedGapSelectBankSchema, z as RedactedGapSelectChoice, A as RedactedGapSelectChoiceSchema, C as RedactedGapSelectData, E as RedactedGapSelectDataSchema, H as RedactedGapSelectGap, J as RedactedGapSelectGapSchema, K as RedactedItemGroupSchema, L as RedactedMediaSchema, O as RedactedMultipleChoiceData, P as RedactedMultipleChoiceDataSchema, Q as RedactedMultipleChoiceOption, S as RedactedMultipleChoiceOptionMedia, T as RedactedMultipleChoiceOptionMediaSchema, U as RedactedMultipleChoiceOptionSchema, V as RedactedReadAloudData, W as RedactedReadAloudDataSchema, X as RedactedStimulus, Y as RedactedStimulusSchema, Z as RedactedWrittenResponseData, _ as RedactedWrittenResponseDataSchema, a1 as SequenceSlotGroup, a2 as Stimulus, a3 as StimulusKind, a4 as StimulusSchema, a5 as TextMatchPolicySchema, a6 as WrittenResponseDataSchema, a7 as WrittenResponseRubricCriterionSchema, a8 as WrittenResponseRubricSchema, a9 as dictationJsonSchema, aa as fillInTheBlanksJsonSchema, ab as gapSelectJsonSchema, ac as itemGroupJsonSchema, ad as jsonSchemaFor, ae as multipleChoiceJsonSchema, af as readAloudJsonSchema, ag as stimulusJsonSchema, ah as validateActivity, ai as validateItemGroup, aj as writtenResponseJsonSchema } from './index-v2_-Fyn3.js';
7
7
  import { z } from 'zod/v4';
8
8
  export { AnsweredStatementParams, CompletedStatementParams, SubmittedStatementParams, XAPIObjectParams, XAPIStatementParams, XAPIVerb, XAPIVerbKey, XAPI_VERB_DISPLAY, validateXAPIStatement, xAPIBuilder, xapiDefinitionFor } from './xapi.js';
9
9
 
@@ -537,12 +537,14 @@ declare class UnknownActivityTypeError extends Error {
537
537
  constructor(activityType: string);
538
538
  }
539
539
  /**
540
- * Thrown when `score()` is asked to grade a `redact()` projection (or any
541
- * activity data whose answer key is missing, yielding a non-finite score).
542
- * Redacted data is learner-safe precisely because the key was removed, so a
543
- * score derived from it is meaningless — previously this produced a silent
544
- * `NaN` that serialized to `null` in a grade column. `evaluate()` returns
545
- * `{ status: 'unscorable' }` for the same input instead of throwing.
540
+ * Thrown when a grading entry point is asked to grade a `redact()` projection
541
+ * (or any activity data whose answer key is missing, yielding a non-finite
542
+ * score). Redacted data is learner-safe precisely because the key was removed,
543
+ * so a score derived from it is meaningless — previously this produced a silent
544
+ * `NaN` that serialized to `null` in a grade column. `evaluate()` answers the
545
+ * same input without throwing, but it never grades it: a synchronously graded
546
+ * type comes back `unscorable`, and a deferred one `deferred`, as it does for
547
+ * any item of that type.
546
548
  */
547
549
  declare class RedactedScoringError extends Error {
548
550
  readonly activityType: string;
@@ -569,6 +571,19 @@ interface GradeFromRubricOptions {
569
571
  passThreshold?: number;
570
572
  /** Narrative feedback for the learner, carried onto the record verbatim. */
571
573
  feedback?: string | null;
574
+ /**
575
+ * Compare the pass line the way the score is displayed — both sides rounded,
576
+ * via `gte` — whichever threshold applies: `passThreshold` above, the
577
+ * activity's own, or the 0.7 default. The returned `score` stays unrounded.
578
+ * Opt-in, as on `score()` and `evaluate()`: switching it on moves pass/fail
579
+ * for totals in the rounding band.
580
+ *
581
+ * Checked before any criterion is read: `null` reads as no policy, and a
582
+ * policy that cannot be applied — an unknown `mode`, or a `dp` that is not a
583
+ * whole number from 0 to 15 — throws a `RangeError`, even for a rubric that
584
+ * turns out to be unscorable.
585
+ */
586
+ rounding?: RoundingPolicy;
572
587
  }
573
588
  /**
574
589
  * Computes the weighted total from per-criterion scores — the arithmetic that
@@ -817,7 +832,9 @@ type PartialScoringResult = Omit<ScoringResult, 'passed'>;
817
832
  * - `public` — safe to send to a learner before they answer.
818
833
  * - `answer-key` — reveals (or helps infer) the correct answer or the scoring
819
834
  * rules; removed unless `reveal: 'after-submit'` is requested.
820
- * - `author-only` — never leaves the authoring/grading context (e.g. rubrics).
835
+ * - `author-only` — never leaves the authoring/grading context (e.g. the
836
+ * author transcript of a listening group's stimulus). A rubric is NOT one:
837
+ * it tells the learner what they are assessed on, so it is `public`.
821
838
  */
822
839
  type Sensitivity = 'public' | 'answer-key' | 'author-only';
823
840
  /**
@@ -1016,9 +1033,13 @@ interface RedactOptions {
1016
1033
  *
1017
1034
  * Overrides can only be applied to fields; they cannot re-open a field the
1018
1035
  * caller has not classified, because unclassified still means removed.
1019
- * Note that tightening below what the type's `redactedSchema` requires is
1020
- * allowed the schema check only rejects payloads that reveal MORE than
1021
- * the learner-safe shape.
1036
+ * What can be tightened is a field the type's `redactedSchema` leaves
1037
+ * OPTIONAL, as it leaves the rubric above: the schema check rejects a
1038
+ * payload that reveals more than the learner-safe shape, and equally one
1039
+ * that is missing part of it. Tightening a field the redacted shape requires
1040
+ * — a read-aloud item's `scoring`, `recording`, `referenceText` or `locale`,
1041
+ * without which the learner has no item to read — throws
1042
+ * {@link ActivitySchemaError} instead of hiding it.
1022
1043
  */
1023
1044
  policy?: FieldPolicy;
1024
1045
  }
@@ -1095,6 +1116,13 @@ declare const gapSelectType: ActivityTypeDescriptor<GapSelectData, GapSelectLear
1095
1116
  * computation identical in a browser and on a server.
1096
1117
  */
1097
1118
  declare const dictationType: ActivityTypeDescriptor<DictationData, DictationLearnerResponse>;
1119
+ /**
1120
+ * Built-in Read Aloud descriptor. Grading is DEFERRED: the SDK calls no
1121
+ * assessor, so the synchronous outcome reports only whether a recording was
1122
+ * stored, and `gradeReadAloud` produces the grade once the application holds a
1123
+ * speech assessment.
1124
+ */
1125
+ declare const readAloudType: ActivityTypeDescriptor<ReadAloudData, ReadAloudLearnerResponse>;
1098
1126
 
1099
1127
  /**
1100
1128
  * Seeded, deterministic shuffling — the ONE algorithm every presentation-order
@@ -1195,4 +1223,4 @@ interface ThemeTokens {
1195
1223
  '--lk-transition-base': string;
1196
1224
  }
1197
1225
 
1198
- export { ActivityData, ActivityDataMap, ActivityMedia, ActivitySchemaError, ActivityType, type ActivityTypeAuthoring, type ActivityTypeDescriptor, type ActivityTypeInterop, type ActivityTypeScoring, type AttemptPlan, type AttemptPlanDrift, type AttemptPlanSlot, type AttemptProgress, type AttemptState, CriterionScore, DeferredScoringError, DeferredScoringPartial, DictationData, DictationLearnerResponse, type DraftComplete, type DraftContext, type DraftIssue, type DraftNotComplete, type DraftSeverity, type DraftValidationResult, type FieldPolicy, FillInTheBlanksData, FillInTheBlanksLearnerResponse, type FlattenSequenceOptions, GapSelectData, GapSelectLearnerResponse, type GradeFromRubricOptions, GradeRecord, ItemGroup, ItemOutcome, LearnerResponse, type MediaBudgetRef, type MediaPlayClaim, type MediaPlayGrant, type MediaPlayLedger, type MediaPlayLedgerEntry, type MissingOutcomePolicy, MultipleChoiceData, MultipleChoiceLearnerResponse, NativeControlHint, type PartialScoringResult, type PlanAttemptOptions, type PlannableEntry, type RedactOptions, type RedactedActivityData, type RedactedItemGroup, RedactedScoringError, type RegisteredActivityTypeDescriptor, type ResolvedPlaybackPolicy, type ResponseDiffEntry, ScoredItem, ScoringResult, type SeededShuffleOptions, type Sensitivity, SequenceEntry, SequenceSlot, type ShuffleVersion, type ThemeTokens, UnknownActivityTypeError, ValidationError, WrittenResponseData, WrittenResponseLearnerResponse, type XAPIInteractionType, assertRedacted, assertRedactedItemGroup, canonicalJson, contentHash, countWords, createDraft, createItemGroupDraft, defineActivityType, dictationType, diffResponses, entryKeyOf, fillInTheBlanksType, fingerprint, flattenSequence, gapSelectType, getActivityTypeDescriptor, gradeFromRubric, hasGrade, hashSeed, isItemGroup, multipleChoiceType, outcomeFromGrade, planAttempt, planMediaBudgets, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusMediaKey, validateDraft, validateItemGroupDraft, verifyAttemptPlan, writtenResponseType };
1226
+ export { ActivityData, ActivityDataMap, ActivityMedia, ActivitySchemaError, ActivityType, type ActivityTypeAuthoring, type ActivityTypeDescriptor, type ActivityTypeInterop, type ActivityTypeScoring, type AttemptPlan, type AttemptPlanDrift, type AttemptPlanSlot, type AttemptProgress, type AttemptState, CriterionScore, DeferredScoringError, DeferredScoringPartial, DictationData, DictationLearnerResponse, type DraftComplete, type DraftContext, type DraftIssue, type DraftNotComplete, type DraftSeverity, type DraftValidationResult, type FieldPolicy, FillInTheBlanksData, FillInTheBlanksLearnerResponse, type FlattenSequenceOptions, GapSelectData, GapSelectLearnerResponse, type GradeFromRubricOptions, GradeRecord, ItemGroup, ItemOutcome, LearnerResponse, type MediaBudgetRef, type MediaPlayClaim, type MediaPlayGrant, type MediaPlayLedger, type MediaPlayLedgerEntry, type MissingOutcomePolicy, MultipleChoiceData, MultipleChoiceLearnerResponse, NativeControlHint, type PartialScoringResult, type PlanAttemptOptions, type PlannableEntry, ReadAloudData, ReadAloudLearnerResponse, type RedactOptions, type RedactedActivityData, type RedactedItemGroup, RedactedScoringError, type RegisteredActivityTypeDescriptor, type ResolvedPlaybackPolicy, type ResponseDiffEntry, RoundingPolicy, ScoredItem, ScoringResult, type SeededShuffleOptions, type Sensitivity, SequenceEntry, SequenceSlot, type ShuffleVersion, type ThemeTokens, UnknownActivityTypeError, ValidationError, WrittenResponseData, WrittenResponseLearnerResponse, type XAPIInteractionType, assertRedacted, assertRedactedItemGroup, canonicalJson, contentHash, countWords, createDraft, createItemGroupDraft, defineActivityType, dictationType, diffResponses, entryKeyOf, fillInTheBlanksType, fingerprint, flattenSequence, gapSelectType, getActivityTypeDescriptor, gradeFromRubric, hasGrade, hashSeed, isItemGroup, multipleChoiceType, outcomeFromGrade, planAttempt, planMediaBudgets, readAloudType, redact, redactItemGroup, registerActivityType, registeredActivityTypes, resolvePlaybackPolicy, restoreAttemptState, restoreMediaPlayLedger, scoredItemsFromPlan, seededShuffle, serializeAttemptState, serializeMediaPlayLedger, slotMediaKey, stimulusMediaKey, validateDraft, validateItemGroupDraft, verifyAttemptPlan, writtenResponseType };
package/dist/index.js CHANGED
@@ -1,24 +1,29 @@
1
1
  import {
2
2
  DEFAULT_PASS_THRESHOLD,
3
+ alignReadAloud,
3
4
  classifyBand,
4
5
  composeAssessmentScore,
5
6
  computePassThreshold,
6
7
  diffDictationChars,
7
8
  evaluate,
8
9
  gradeFromRubric,
10
+ gradeReadAloud,
9
11
  gte,
10
12
  hasGrade,
13
+ inspectWav,
11
14
  outcomeFromGrade,
15
+ outcomeFromUnscorable,
12
16
  roundGrade,
13
- score
14
- } from "./chunk-FGN4LLSP.js";
17
+ score,
18
+ validateSpeechAssessment
19
+ } from "./chunk-RTIR6R2U.js";
15
20
  import {
16
21
  XAPIVerb,
17
22
  XAPI_VERB_DISPLAY,
18
23
  validateXAPIStatement,
19
24
  xAPIBuilder,
20
25
  xapiDefinitionFor
21
- } from "./chunk-PYP3HCRQ.js";
26
+ } from "./chunk-R7PV3XIC.js";
22
27
  import {
23
28
  ItemGroupSchema,
24
29
  RedactedItemGroupSchema,
@@ -30,11 +35,12 @@ import {
30
35
  itemGroupJsonSchema,
31
36
  jsonSchemaFor,
32
37
  multipleChoiceJsonSchema,
38
+ readAloudJsonSchema,
33
39
  stimulusJsonSchema,
34
40
  validateActivity,
35
41
  validateItemGroup,
36
42
  writtenResponseJsonSchema
37
- } from "./chunk-Y36S3X3L.js";
43
+ } from "./chunk-NBADQ3JU.js";
38
44
  import {
39
45
  ActivitySchemaError,
40
46
  BlankConfigSchema,
@@ -64,6 +70,12 @@ import {
64
70
  MultipleChoiceOptionMediaSchema,
65
71
  MultipleChoiceOptionSchema,
66
72
  NativeControlHintSchema,
73
+ READ_ALOUD_MAX_DIMENSION_WEIGHT,
74
+ READ_ALOUD_MAX_REFERENCE_LENGTH,
75
+ READ_ALOUD_MAX_SECONDS,
76
+ READ_ALOUD_MAX_TAKES,
77
+ ReadAloudDataSchema,
78
+ ReadAloudSlowMediaSchema,
67
79
  RedactedBlankConfigSchema,
68
80
  RedactedDictationDataSchema,
69
81
  RedactedDictationSlowMediaSchema,
@@ -76,8 +88,10 @@ import {
76
88
  RedactedMultipleChoiceDataSchema,
77
89
  RedactedMultipleChoiceOptionMediaSchema,
78
90
  RedactedMultipleChoiceOptionSchema,
91
+ RedactedReadAloudDataSchema,
79
92
  RedactedScoringError,
80
93
  RedactedWrittenResponseDataSchema,
94
+ SPEECH_ASSESSMENT_MAX_WORDS,
81
95
  TextMatchPolicySchema,
82
96
  UnknownActivityTypeError,
83
97
  WrittenResponseDataSchema,
@@ -104,12 +118,13 @@ import {
104
118
  matchText,
105
119
  multipleChoiceType,
106
120
  pathKey,
121
+ readAloudType,
107
122
  refusesEmpty,
108
123
  registerActivityType,
109
124
  registeredActivityTypes,
110
125
  withValidationScope,
111
126
  writtenResponseType
112
- } from "./chunk-XKKKWKRH.js";
127
+ } from "./chunk-6RND47QE.js";
113
128
 
114
129
  // src/content-hash.ts
115
130
  function canonicalJson(value, seen = /* @__PURE__ */ new Set()) {
@@ -1210,6 +1225,12 @@ export {
1210
1225
  MultipleChoiceOptionMediaSchema,
1211
1226
  MultipleChoiceOptionSchema,
1212
1227
  NativeControlHintSchema,
1228
+ READ_ALOUD_MAX_DIMENSION_WEIGHT,
1229
+ READ_ALOUD_MAX_REFERENCE_LENGTH,
1230
+ READ_ALOUD_MAX_SECONDS,
1231
+ READ_ALOUD_MAX_TAKES,
1232
+ ReadAloudDataSchema,
1233
+ ReadAloudSlowMediaSchema,
1213
1234
  RedactedBlankConfigSchema,
1214
1235
  RedactedDictationDataSchema,
1215
1236
  RedactedDictationSlowMediaSchema,
@@ -1223,9 +1244,11 @@ export {
1223
1244
  RedactedMultipleChoiceDataSchema,
1224
1245
  RedactedMultipleChoiceOptionMediaSchema,
1225
1246
  RedactedMultipleChoiceOptionSchema,
1247
+ RedactedReadAloudDataSchema,
1226
1248
  RedactedScoringError,
1227
1249
  RedactedStimulusSchema,
1228
1250
  RedactedWrittenResponseDataSchema,
1251
+ SPEECH_ASSESSMENT_MAX_WORDS,
1229
1252
  StimulusSchema,
1230
1253
  TextMatchPolicySchema,
1231
1254
  UnknownActivityTypeError,
@@ -1235,6 +1258,7 @@ export {
1235
1258
  XAPIVerb,
1236
1259
  XAPI_VERB_DISPLAY,
1237
1260
  alignDictation,
1261
+ alignReadAloud,
1238
1262
  assertRedacted,
1239
1263
  assertRedactedItemGroup,
1240
1264
  canonicalJson,
@@ -1261,9 +1285,11 @@ export {
1261
1285
  gapSelectType,
1262
1286
  getActivityTypeDescriptor,
1263
1287
  gradeFromRubric,
1288
+ gradeReadAloud,
1264
1289
  gte,
1265
1290
  hasGrade,
1266
1291
  hashSeed,
1292
+ inspectWav,
1267
1293
  isItemGroup,
1268
1294
  itemGroupJsonSchema,
1269
1295
  jsonSchemaFor,
@@ -1272,8 +1298,11 @@ export {
1272
1298
  multipleChoiceJsonSchema,
1273
1299
  multipleChoiceType,
1274
1300
  outcomeFromGrade,
1301
+ outcomeFromUnscorable,
1275
1302
  planAttempt,
1276
1303
  planMediaBudgets,
1304
+ readAloudJsonSchema,
1305
+ readAloudType,
1277
1306
  redact,
1278
1307
  redactItemGroup,
1279
1308
  registerActivityType,
@@ -1294,6 +1323,7 @@ export {
1294
1323
  validateDraft,
1295
1324
  validateItemGroup,
1296
1325
  validateItemGroupDraft,
1326
+ validateSpeechAssessment,
1297
1327
  validateXAPIStatement,
1298
1328
  verifyAttemptPlan,
1299
1329
  writtenResponseJsonSchema,