@intellectif/lk-core 0.12.0 → 0.13.1

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 (51) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +2 -1
  3. package/dist/{activity-B2QxK15j.d.cts → activity-DfAmJ1sl.d.cts} +134 -7
  4. package/dist/{activity-B2QxK15j.d.ts → activity-DfAmJ1sl.d.ts} +134 -7
  5. package/dist/{chunk-VYE6BYON.cjs → chunk-DQKJUMUW.cjs} +38 -15
  6. package/dist/chunk-DQKJUMUW.cjs.map +1 -0
  7. package/dist/{chunk-RK2NVTHZ.js → chunk-FGN4LLSP.js} +50 -6
  8. package/dist/chunk-FGN4LLSP.js.map +1 -0
  9. package/dist/{chunk-O2IVKTHV.cjs → chunk-FT7SAC3X.cjs} +4 -4
  10. package/dist/{chunk-O2IVKTHV.cjs.map → chunk-FT7SAC3X.cjs.map} +1 -1
  11. package/dist/{chunk-UQPNJP2O.js → chunk-PYP3HCRQ.js} +2 -2
  12. package/dist/{chunk-4OHWLCI6.cjs → chunk-UHQVIC3P.cjs} +58 -14
  13. package/dist/chunk-UHQVIC3P.cjs.map +1 -0
  14. package/dist/{chunk-FVN37GIH.js → chunk-XKKKWKRH.js} +1944 -177
  15. package/dist/chunk-XKKKWKRH.js.map +1 -0
  16. package/dist/{chunk-J6POE4HL.cjs → chunk-XONKWL6D.cjs} +1785 -18
  17. package/dist/chunk-XONKWL6D.cjs.map +1 -0
  18. package/dist/{chunk-7JMMPE7O.js → chunk-Y36S3X3L.js} +26 -3
  19. package/dist/chunk-Y36S3X3L.js.map +1 -0
  20. package/dist/{index-B_scInLM.d.cts → index-BefQ8FAS.d.cts} +192 -15
  21. package/dist/{index-CRKtWP5G.d.ts → index-BiIvdASA.d.ts} +192 -15
  22. package/dist/index.cjs +132 -74
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +19 -6
  25. package/dist/index.d.ts +19 -6
  26. package/dist/index.js +64 -6
  27. package/dist/index.js.map +1 -1
  28. package/dist/schemas.cjs +17 -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 +16 -2
  33. package/dist/scoring.cjs +19 -3
  34. package/dist/scoring.cjs.map +1 -1
  35. package/dist/scoring.d.cts +150 -5
  36. package/dist/scoring.d.ts +150 -5
  37. package/dist/scoring.js +18 -2
  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 +9 -1
  44. package/vectors/scoring.json +12023 -1
  45. package/dist/chunk-4OHWLCI6.cjs.map +0 -1
  46. package/dist/chunk-7JMMPE7O.js.map +0 -1
  47. package/dist/chunk-FVN37GIH.js.map +0 -1
  48. package/dist/chunk-J6POE4HL.cjs.map +0 -1
  49. package/dist/chunk-RK2NVTHZ.js.map +0 -1
  50. package/dist/chunk-VYE6BYON.cjs.map +0 -1
  51. /package/dist/{chunk-UQPNJP2O.js.map → chunk-PYP3HCRQ.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { A as ActivityData, c as ActivityMedia, z as ValidationResult, e as ActivityType, a as ActivityDataMap } from './activity-B2QxK15j.js';
1
+ import { A as ActivityData, c as ActivityMedia, P as ValidationResult, e as ActivityType, a as ActivityDataMap } from './activity-DfAmJ1sl.js';
2
2
  import { z } from 'zod/v4';
3
3
 
4
4
  /** What a stimulus primarily is. Drives validation and layout, never scoring. */
@@ -134,6 +134,94 @@ interface SequenceSlot<TItem = ActivityData> {
134
134
  group?: SequenceSlotGroup;
135
135
  }
136
136
 
137
+ /**
138
+ * Zod schema for the slower second recording of a dictation. Loose like every
139
+ * content schema (a sidecar survives), audio only, and — deliberately — with no
140
+ * `captionsUrl` and no `playback` of its own; the activity-level guards below
141
+ * refuse both if an author writes them anyway.
142
+ */
143
+ declare const DictationSlowMediaSchema: z.ZodObject<{
144
+ type: z.ZodLiteral<"audio">;
145
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
146
+ alt: z.ZodOptional<z.ZodString>;
147
+ }, z.core.$loose>;
148
+ /**
149
+ * Zod schema for one whole-word rewrite rule. Both halves are bounded: `to`
150
+ * because a rule expands text, `from` because it is compiled into the pattern
151
+ * every attempt is searched with.
152
+ */
153
+ declare const DictationEquivalenceSchema: z.ZodObject<{
154
+ from: z.ZodString;
155
+ to: z.ZodString;
156
+ }, z.core.$loose>;
157
+ /** Zod schema for a dictation's grading tolerances. At most `DICTATION_MAX_EQUIVALENCES` rules. */
158
+ declare const DictationToleranceSchema: z.ZodObject<{
159
+ equivalences: z.ZodOptional<z.ZodArray<z.ZodObject<{
160
+ from: z.ZodString;
161
+ to: z.ZodString;
162
+ }, z.core.$loose>>>;
163
+ }, z.core.$loose>;
164
+ declare const DictationDataSchema: z.ZodObject<{
165
+ schemaVersion: z.ZodLiteral<"1.0">;
166
+ type: z.ZodLiteral<"dictation">;
167
+ id: z.ZodString;
168
+ title: z.ZodString;
169
+ transcript: z.ZodString;
170
+ acceptedTranscripts: z.ZodOptional<z.ZodArray<z.ZodString>>;
171
+ media: z.ZodOptional<z.ZodObject<{
172
+ type: z.ZodEnum<{
173
+ image: "image";
174
+ audio: "audio";
175
+ video: "video";
176
+ embed: "embed";
177
+ }>;
178
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
179
+ alt: z.ZodOptional<z.ZodString>;
180
+ captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
181
+ playback: z.ZodOptional<z.ZodObject<{
182
+ controls: z.ZodOptional<z.ZodEnum<{
183
+ native: "native";
184
+ minimal: "minimal";
185
+ }>>;
186
+ maxPlays: z.ZodOptional<z.ZodNumber>;
187
+ seek: z.ZodOptional<z.ZodEnum<{
188
+ none: "none";
189
+ allow: "allow";
190
+ }>>;
191
+ rate: z.ZodOptional<z.ZodEnum<{
192
+ allow: "allow";
193
+ fixed: "fixed";
194
+ }>>;
195
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
196
+ "hide-download": "hide-download";
197
+ "hide-rate": "hide-rate";
198
+ }>>>;
199
+ }, z.core.$strict>>;
200
+ }, z.core.$loose>>;
201
+ slowMedia: z.ZodOptional<z.ZodObject<{
202
+ type: z.ZodLiteral<"audio">;
203
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
204
+ alt: z.ZodOptional<z.ZodString>;
205
+ }, z.core.$loose>>;
206
+ hints: z.ZodOptional<z.ZodObject<{
207
+ mode: z.ZodLiteral<"progressive-words">;
208
+ }, z.core.$loose>>;
209
+ tolerance: z.ZodOptional<z.ZodObject<{
210
+ equivalences: z.ZodOptional<z.ZodArray<z.ZodObject<{
211
+ from: z.ZodString;
212
+ to: z.ZodString;
213
+ }, z.core.$loose>>>;
214
+ }, z.core.$loose>>;
215
+ feedback: z.ZodOptional<z.ZodObject<{
216
+ correct: z.ZodOptional<z.ZodString>;
217
+ incorrect: z.ZodOptional<z.ZodString>;
218
+ }, z.core.$loose>>;
219
+ passThreshold: z.ZodOptional<z.ZodNumber>;
220
+ locale: z.ZodOptional<z.ZodString>;
221
+ learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
222
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
223
+ }, z.core.$loose>;
224
+
137
225
  /**
138
226
  * Optional authored "overall feedback" shown after submission, selected by
139
227
  * whether the learner passed (h5p-style overall feedback). Both fields are
@@ -230,8 +318,8 @@ declare const FillInTheBlanksDataSchema: z.ZodObject<{
230
318
  feedback: z.ZodOptional<z.ZodString>;
231
319
  }, z.core.$loose>>;
232
320
  scoringStrategy: z.ZodEnum<{
233
- "all-or-nothing": "all-or-nothing";
234
321
  partial: "partial";
322
+ "all-or-nothing": "all-or-nothing";
235
323
  }>;
236
324
  media: z.ZodOptional<z.ZodObject<{
237
325
  type: z.ZodEnum<{
@@ -270,7 +358,7 @@ declare const FillInTheBlanksDataSchema: z.ZodObject<{
270
358
  passThreshold: z.ZodOptional<z.ZodNumber>;
271
359
  locale: z.ZodOptional<z.ZodString>;
272
360
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
273
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
361
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
274
362
  }, z.core.$loose>;
275
363
 
276
364
  /**
@@ -347,8 +435,8 @@ declare const GapSelectDataSchema: z.ZodObject<{
347
435
  }, z.core.$loose>>;
348
436
  }, z.core.$loose>>>;
349
437
  scoringStrategy: z.ZodEnum<{
350
- "all-or-nothing": "all-or-nothing";
351
438
  partial: "partial";
439
+ "all-or-nothing": "all-or-nothing";
352
440
  }>;
353
441
  presentation: z.ZodOptional<z.ZodLiteral<"dropdown">>;
354
442
  shuffleChoices: z.ZodOptional<z.ZodBoolean>;
@@ -389,7 +477,7 @@ declare const GapSelectDataSchema: z.ZodObject<{
389
477
  passThreshold: z.ZodOptional<z.ZodNumber>;
390
478
  locale: z.ZodOptional<z.ZodString>;
391
479
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
392
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
480
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
393
481
  }, z.core.$loose>;
394
482
 
395
483
  /**
@@ -566,7 +654,10 @@ declare const RedactedStimulusSchema: z.ZodObject<{
566
654
  /**
567
655
  * Strict learner-safe item group. Items are left opaque here — each is proven
568
656
  * learner-safe by `assertRedacted` against its OWN type's redacted schema,
569
- * which is the only place that knowledge lives.
657
+ * which is the only place that knowledge lives. The one exception is the one
658
+ * rule that spans the container and an item: a captioned stimulus recording
659
+ * played to a dictation is not learner-safe, because the captions are the
660
+ * dictation's answer.
570
661
  */
571
662
  declare const RedactedItemGroupSchema: z.ZodObject<{
572
663
  redacted: z.ZodLiteral<true>;
@@ -669,6 +760,17 @@ declare const itemGroupJsonSchema: z.core.JSONSchema.JSONSchema;
669
760
  * for the other types.
670
761
  */
671
762
  declare const gapSelectJsonSchema: z.core.JSONSchema.JSONSchema;
763
+ /**
764
+ * JSON Schema (Draft 7) representation of the Dictation activity data
765
+ * contract. Structural contract, plus the raw length caps JSON Schema can
766
+ * state in code points as zod counts them — `maxLength` 2000 on a transcript
767
+ * and an accepted transcript, 200 on a rule's `from` and `to`. The twelve
768
+ * semantic guards — a transcript that survives normalisation, the caps after
769
+ * equivalences are applied, distinct candidates, audio only, the
770
+ * slow-recording rules, no captions, no transcript in the title — are
771
+ * Zod-only, as they are for the other types.
772
+ */
773
+ declare const dictationJsonSchema: z.core.JSONSchema.JSONSchema;
672
774
  declare const multipleChoiceJsonSchema: z.core.JSONSchema.JSONSchema;
673
775
  /**
674
776
  * JSON Schema (Draft 7) representation of the Fill-in-the-Blanks activity data
@@ -970,8 +1072,8 @@ declare const MultipleChoiceDataSchema: z.ZodObject<{
970
1072
  }, z.core.$loose>>;
971
1073
  }, z.core.$loose>>;
972
1074
  scoringStrategy: z.ZodEnum<{
973
- "all-or-nothing": "all-or-nothing";
974
1075
  partial: "partial";
1076
+ "all-or-nothing": "all-or-nothing";
975
1077
  }>;
976
1078
  media: z.ZodOptional<z.ZodObject<{
977
1079
  type: z.ZodEnum<{
@@ -1011,7 +1113,7 @@ declare const MultipleChoiceDataSchema: z.ZodObject<{
1011
1113
  shuffle: z.ZodOptional<z.ZodBoolean>;
1012
1114
  locale: z.ZodOptional<z.ZodString>;
1013
1115
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1014
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
1116
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1015
1117
  }, z.core.$loose>;
1016
1118
 
1017
1119
  /** A redacted Multiple Choice option: id and display text only — no `isCorrect`, no feedback. */
@@ -1115,7 +1217,7 @@ declare const RedactedMultipleChoiceDataSchema: z.ZodObject<{
1115
1217
  passThreshold: z.ZodOptional<z.ZodNumber>;
1116
1218
  locale: z.ZodOptional<z.ZodString>;
1117
1219
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1118
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
1220
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1119
1221
  }, z.core.$strict>;
1120
1222
  /** A redacted blank: id and hint only — no accepted answers, no matching rules, no feedback. */
1121
1223
  declare const RedactedBlankConfigSchema: z.ZodObject<{
@@ -1171,7 +1273,7 @@ declare const RedactedFillInTheBlanksDataSchema: z.ZodObject<{
1171
1273
  passThreshold: z.ZodOptional<z.ZodNumber>;
1172
1274
  locale: z.ZodOptional<z.ZodString>;
1173
1275
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1174
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
1276
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1175
1277
  }, z.core.$strict>;
1176
1278
  /** A redacted choice: exactly what it always was. Which one is correct was never stored here. */
1177
1279
  declare const RedactedGapSelectChoiceSchema: z.ZodObject<{
@@ -1271,7 +1373,7 @@ declare const RedactedGapSelectDataSchema: z.ZodObject<{
1271
1373
  passThreshold: z.ZodOptional<z.ZodNumber>;
1272
1374
  locale: z.ZodOptional<z.ZodString>;
1273
1375
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1274
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
1376
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1275
1377
  }, z.core.$strict>;
1276
1378
  /**
1277
1379
  * Redacted Written Response data: the prompt, word bounds and rubric are
@@ -1333,7 +1435,78 @@ declare const RedactedWrittenResponseDataSchema: z.ZodObject<{
1333
1435
  passThreshold: z.ZodOptional<z.ZodNumber>;
1334
1436
  locale: z.ZodOptional<z.ZodString>;
1335
1437
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1336
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
1438
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1439
+ }, z.core.$strict>;
1440
+ /** A redacted slow recording: unchanged — it is public, and it never carried captions or a policy. */
1441
+ declare const RedactedDictationSlowMediaSchema: z.ZodObject<{
1442
+ type: z.ZodLiteral<"audio">;
1443
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
1444
+ alt: z.ZodOptional<z.ZodString>;
1445
+ }, z.core.$strict>;
1446
+ /**
1447
+ * Redacted Dictation data: the recording(s) and the hint mode survive; the
1448
+ * transcript, the accepted alternatives and the tolerance — the whole answer
1449
+ * key — do not. A `progressive-words` hint mode reveals nothing by itself: the
1450
+ * words it would reveal are the transcript, and that is gone.
1451
+ *
1452
+ * Three rules of the content schema are repeated here, because a projection
1453
+ * built by hand never passed through it: captions on the recording ARE the
1454
+ * answer, so a payload carrying them is not learner-safe; a slow recording
1455
+ * beside a play budget is an unbudgeted copy of the budgeted content; and so is
1456
+ * a slow recording with no recording beside it, which in a group sits beside a
1457
+ * stimulus recording that may be budgeted.
1458
+ */
1459
+ declare const RedactedDictationDataSchema: z.ZodObject<{
1460
+ type: z.ZodLiteral<"dictation">;
1461
+ slowMedia: z.ZodOptional<z.ZodObject<{
1462
+ type: z.ZodLiteral<"audio">;
1463
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
1464
+ alt: z.ZodOptional<z.ZodString>;
1465
+ }, z.core.$strict>>;
1466
+ hints: z.ZodOptional<z.ZodObject<{
1467
+ mode: z.ZodLiteral<"progressive-words">;
1468
+ }, z.core.$strict>>;
1469
+ /** Marker distinguishing a redacted projection from full activity data. */
1470
+ redacted: z.ZodLiteral<true>;
1471
+ /** Slot identity, carried through redaction so the client and the plan agree. */
1472
+ slotKey: z.ZodOptional<z.ZodString>;
1473
+ schemaVersion: z.ZodLiteral<"1.0">;
1474
+ id: z.ZodString;
1475
+ title: z.ZodString;
1476
+ media: z.ZodOptional<z.ZodObject<{
1477
+ type: z.ZodEnum<{
1478
+ image: "image";
1479
+ audio: "audio";
1480
+ video: "video";
1481
+ embed: "embed";
1482
+ }>;
1483
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
1484
+ alt: z.ZodOptional<z.ZodString>;
1485
+ captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
1486
+ playback: z.ZodOptional<z.ZodObject<{
1487
+ controls: z.ZodOptional<z.ZodEnum<{
1488
+ native: "native";
1489
+ minimal: "minimal";
1490
+ }>>;
1491
+ maxPlays: z.ZodOptional<z.ZodNumber>;
1492
+ seek: z.ZodOptional<z.ZodEnum<{
1493
+ none: "none";
1494
+ allow: "allow";
1495
+ }>>;
1496
+ rate: z.ZodOptional<z.ZodEnum<{
1497
+ allow: "allow";
1498
+ fixed: "fixed";
1499
+ }>>;
1500
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1501
+ "hide-download": "hide-download";
1502
+ "hide-rate": "hide-rate";
1503
+ }>>>;
1504
+ }, z.core.$strict>>;
1505
+ }, z.core.$strict>>;
1506
+ passThreshold: z.ZodOptional<z.ZodNumber>;
1507
+ locale: z.ZodOptional<z.ZodString>;
1508
+ learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1509
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1337
1510
  }, z.core.$strict>;
1338
1511
  /**
1339
1512
  * The learner-safe SHAPE of each built-in type, derived from the strict schema
@@ -1369,6 +1542,10 @@ type RedactedGapSelectBank = z.infer<typeof RedactedGapSelectBankSchema>;
1369
1542
  type RedactedGapSelectGap = z.infer<typeof RedactedGapSelectGapSchema>;
1370
1543
  /** A Gap Select item the learner can still answer: choices intact, answer key gone. */
1371
1544
  type RedactedGapSelectData = z.infer<typeof RedactedGapSelectDataSchema>;
1545
+ /** The slower recording of a dictation, unchanged by redaction. */
1546
+ type RedactedDictationSlowMedia = z.infer<typeof RedactedDictationSlowMediaSchema>;
1547
+ /** A Dictation item with its transcript, accepted alternatives and tolerances removed. */
1548
+ type RedactedDictationData = z.infer<typeof RedactedDictationDataSchema>;
1372
1549
  /**
1373
1550
  * Discriminated union of every built-in redacted activity. Narrow it on
1374
1551
  * `type`, exactly as you would {@link ActivityData}:
@@ -1381,7 +1558,7 @@ type RedactedGapSelectData = z.infer<typeof RedactedGapSelectDataSchema>;
1381
1558
  * }
1382
1559
  * ```
1383
1560
  */
1384
- type RedactedActivity = RedactedMultipleChoiceData | RedactedFillInTheBlanksData | RedactedWrittenResponseData | RedactedGapSelectData;
1561
+ type RedactedActivity = RedactedMultipleChoiceData | RedactedFillInTheBlanksData | RedactedWrittenResponseData | RedactedGapSelectData | RedactedDictationData;
1385
1562
 
1386
1563
  /** Zod schema for a single rubric criterion. Loose: unknown keys preserved. */
1387
1564
  declare const WrittenResponseRubricCriterionSchema: z.ZodObject<{
@@ -1461,7 +1638,7 @@ declare const WrittenResponseDataSchema: z.ZodObject<{
1461
1638
  passThreshold: z.ZodOptional<z.ZodNumber>;
1462
1639
  locale: z.ZodOptional<z.ZodString>;
1463
1640
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
1464
- difficultyLevel: z.ZodOptional<z.ZodLiteral<2 | 1 | 3 | 4 | 5>>;
1641
+ difficultyLevel: z.ZodOptional<z.ZodLiteral<1 | 2 | 3 | 4 | 5>>;
1465
1642
  }, z.core.$loose>;
1466
1643
 
1467
1644
  /**
@@ -1478,4 +1655,4 @@ declare const WrittenResponseDataSchema: z.ZodObject<{
1478
1655
  */
1479
1656
  declare function validateActivity<T extends ActivityType>(type: T, data: unknown): ValidationResult<ActivityDataMap[T]>;
1480
1657
 
1481
- export { itemGroupJsonSchema as $, type RedactedMultipleChoiceOption as A, BlankConfigSchema as B, type RedactedMultipleChoiceOptionMedia as C, RedactedMultipleChoiceOptionMediaSchema as D, RedactedMultipleChoiceOptionSchema as E, FeedbackSchema as F, GapSelectBankSchema as G, type RedactedStimulus as H, type ItemGroup as I, RedactedStimulusSchema as J, type RedactedWrittenResponseData as K, RedactedWrittenResponseDataSchema as L, MediaPlaybackSchema as M, NativeControlHintSchema as N, type SequenceSlot as O, type SequenceSlotGroup as P, type Stimulus as Q, type RedactedActivity as R, type SequenceEntry as S, type StimulusKind as T, StimulusSchema as U, TextMatchPolicySchema as V, WrittenResponseDataSchema as W, WrittenResponseRubricCriterionSchema as X, WrittenResponseRubricSchema as Y, fillInTheBlanksJsonSchema as Z, gapSelectJsonSchema as _, FillInTheBlanksDataSchema as a, jsonSchemaFor as a0, multipleChoiceJsonSchema as a1, stimulusJsonSchema as a2, validateActivity as a3, validateItemGroup as a4, writtenResponseJsonSchema as a5, GapSelectChoiceSchema as b, GapSelectDataSchema as c, GapSelectGapSchema as d, ItemGroupSchema as e, MediaSchema as f, MediaUrlSchema as g, MultipleChoiceDataSchema as h, MultipleChoiceOptionMediaSchema as i, MultipleChoiceOptionSchema as j, type RedactedBlankConfig as k, RedactedBlankConfigSchema as l, type RedactedFillInTheBlanksData as m, RedactedFillInTheBlanksDataSchema as n, type RedactedGapSelectBank as o, RedactedGapSelectBankSchema as p, type RedactedGapSelectChoice as q, RedactedGapSelectChoiceSchema as r, type RedactedGapSelectData as s, RedactedGapSelectDataSchema as t, type RedactedGapSelectGap as u, RedactedGapSelectGapSchema as v, RedactedItemGroupSchema as w, RedactedMediaSchema as x, type RedactedMultipleChoiceData as y, RedactedMultipleChoiceDataSchema as z };
1658
+ export { type StimulusKind as $, RedactedGapSelectDataSchema as A, BlankConfigSchema as B, type RedactedGapSelectGap as C, DictationDataSchema as D, RedactedGapSelectGapSchema as E, FeedbackSchema as F, GapSelectBankSchema as G, RedactedItemGroupSchema as H, type ItemGroup as I, RedactedMediaSchema as J, type RedactedMultipleChoiceData as K, RedactedMultipleChoiceDataSchema as L, MediaPlaybackSchema as M, NativeControlHintSchema as N, type RedactedMultipleChoiceOption as O, type RedactedMultipleChoiceOptionMedia as P, RedactedMultipleChoiceOptionMediaSchema as Q, type RedactedActivity as R, RedactedMultipleChoiceOptionSchema as S, type RedactedStimulus as T, RedactedStimulusSchema as U, type RedactedWrittenResponseData as V, RedactedWrittenResponseDataSchema as W, type SequenceEntry as X, type SequenceSlot as Y, type SequenceSlotGroup as Z, type Stimulus as _, DictationEquivalenceSchema as a, StimulusSchema as a0, TextMatchPolicySchema as a1, WrittenResponseDataSchema as a2, WrittenResponseRubricCriterionSchema as a3, WrittenResponseRubricSchema as a4, dictationJsonSchema as a5, fillInTheBlanksJsonSchema as a6, gapSelectJsonSchema as a7, itemGroupJsonSchema as a8, jsonSchemaFor as a9, multipleChoiceJsonSchema as aa, stimulusJsonSchema as ab, validateActivity as ac, validateItemGroup as ad, writtenResponseJsonSchema as ae, DictationSlowMediaSchema as b, DictationToleranceSchema as c, FillInTheBlanksDataSchema as d, GapSelectChoiceSchema as e, GapSelectDataSchema as f, GapSelectGapSchema as g, ItemGroupSchema as h, MediaSchema as i, MediaUrlSchema as j, MultipleChoiceDataSchema as k, MultipleChoiceOptionMediaSchema as l, MultipleChoiceOptionSchema as m, type RedactedBlankConfig as n, RedactedBlankConfigSchema as o, type RedactedDictationData as p, RedactedDictationDataSchema as q, type RedactedDictationSlowMedia as r, RedactedDictationSlowMediaSchema as s, type RedactedFillInTheBlanksData as t, RedactedFillInTheBlanksDataSchema as u, type RedactedGapSelectBank as v, RedactedGapSelectBankSchema as w, type RedactedGapSelectChoice as x, RedactedGapSelectChoiceSchema as y, type RedactedGapSelectData as z };