@intellectif/lk-core 1.4.0 → 1.6.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 (89) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/README.md +2 -0
  3. package/dist/ai-check.cjs +175 -17
  4. package/dist/ai-check.cjs.map +1 -1
  5. package/dist/ai-check.d.cts +13 -5
  6. package/dist/ai-check.d.cts.map +1 -1
  7. package/dist/ai-check.d.ts +13 -5
  8. package/dist/ai-check.d.ts.map +1 -1
  9. package/dist/ai-check.js +175 -17
  10. package/dist/ai-check.js.map +1 -1
  11. package/dist/{ai-CnmLPMzd.d.ts → ai-i3jwXnpX.d.cts} +242 -7
  12. package/dist/ai-i3jwXnpX.d.cts.map +1 -0
  13. package/dist/{ai-CnmLPMzd.d.cts → ai-i3jwXnpX.d.ts} +242 -7
  14. package/dist/ai-i3jwXnpX.d.ts.map +1 -0
  15. package/dist/{ai-writing-G6tnCGzw.cjs → ai-writing-C4YRVrFi.cjs} +683 -72
  16. package/dist/ai-writing-C4YRVrFi.cjs.map +1 -0
  17. package/dist/{ai-writing-CPpH9Qxq.js → ai-writing-OJ5m_1EB.js} +663 -88
  18. package/dist/ai-writing-OJ5m_1EB.js.map +1 -0
  19. package/dist/{index-BqMXWuNC.d.cts → index--U7hHV0s.d.cts} +2 -2
  20. package/dist/{index-BqMXWuNC.d.cts.map → index--U7hHV0s.d.cts.map} +1 -1
  21. package/dist/{index-B54baFUA.d.ts → index-CFRgZLhH.d.cts} +45 -12
  22. package/dist/index-CFRgZLhH.d.cts.map +1 -0
  23. package/dist/{index-CVWvymVb.d.ts → index-DeD8EI1D.d.ts} +327 -3
  24. package/dist/index-DeD8EI1D.d.ts.map +1 -0
  25. package/dist/{index-CcHDTxIZ.d.ts → index-Dj92T76o.d.ts} +2 -2
  26. package/dist/{index-CcHDTxIZ.d.ts.map → index-Dj92T76o.d.ts.map} +1 -1
  27. package/dist/{index-BAfEHCnD.d.cts → index-Uh1u57yq.d.cts} +327 -3
  28. package/dist/index-Uh1u57yq.d.cts.map +1 -0
  29. package/dist/{index-2nigSf4N.d.cts → index-WBHSrIUU.d.ts} +45 -12
  30. package/dist/index-WBHSrIUU.d.ts.map +1 -0
  31. package/dist/index.cjs +88 -131
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +217 -95
  34. package/dist/index.d.cts.map +1 -1
  35. package/dist/index.d.ts +217 -95
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +60 -118
  38. package/dist/index.js.map +1 -1
  39. package/dist/{item-group-DXiR8nOr.js → item-group-BbvvH_Ob.js} +3 -2
  40. package/dist/item-group-BbvvH_Ob.js.map +1 -0
  41. package/dist/{item-group-DroFXgLb.cjs → item-group-CQRbb8Rx.cjs} +3 -2
  42. package/dist/item-group-CQRbb8Rx.cjs.map +1 -0
  43. package/dist/{registry-Dsx9mNsS.js → registry-B23o9UWh.js} +218 -21
  44. package/dist/registry-B23o9UWh.js.map +1 -0
  45. package/dist/{registry-DVi0LR_i.cjs → registry-Ih5n4PVZ.cjs} +265 -20
  46. package/dist/registry-Ih5n4PVZ.cjs.map +1 -0
  47. package/dist/{schemas-DVbAOrtd.cjs → schemas-Q2dyOgc2.cjs} +77 -14
  48. package/dist/schemas-Q2dyOgc2.cjs.map +1 -0
  49. package/dist/{schemas-Bdw0nGPo.js → schemas-yId-bJhD.js} +72 -15
  50. package/dist/schemas-yId-bJhD.js.map +1 -0
  51. package/dist/schemas.cjs +5 -2
  52. package/dist/schemas.d.cts +2 -2
  53. package/dist/schemas.d.ts +2 -2
  54. package/dist/schemas.js +4 -3
  55. package/dist/{scoring-BZqUkuDF.js → scoring-CLMdk8i9.js} +657 -3
  56. package/dist/scoring-CLMdk8i9.js.map +1 -0
  57. package/dist/{scoring-B2_HEhMT.cjs → scoring-CaPS6q8b.cjs} +722 -2
  58. package/dist/scoring-CaPS6q8b.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-BX0hvRRB.cjs} +2 -2
  64. package/dist/{xapi-DNzkSJ0S.cjs.map → xapi-BX0hvRRB.cjs.map} +1 -1
  65. package/dist/{xapi-CMTph7wG.js → xapi-Cdk9fTvV.js} +2 -2
  66. package/dist/{xapi-CMTph7wG.js.map → xapi-Cdk9fTvV.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-CnmLPMzd.d.cts.map +0 -1
  75. package/dist/ai-CnmLPMzd.d.ts.map +0 -1
  76. package/dist/ai-writing-CPpH9Qxq.js.map +0 -1
  77. package/dist/ai-writing-G6tnCGzw.cjs.map +0 -1
  78. package/dist/index-2nigSf4N.d.cts.map +0 -1
  79. package/dist/index-B54baFUA.d.ts.map +0 -1
  80. package/dist/index-BAfEHCnD.d.cts.map +0 -1
  81. package/dist/index-CVWvymVb.d.ts.map +0 -1
  82. package/dist/item-group-DXiR8nOr.js.map +0 -1
  83. package/dist/item-group-DroFXgLb.cjs.map +0 -1
  84. package/dist/registry-DVi0LR_i.cjs.map +0 -1
  85. package/dist/registry-Dsx9mNsS.js.map +0 -1
  86. package/dist/schemas-Bdw0nGPo.js.map +0 -1
  87. package/dist/schemas-DVbAOrtd.cjs.map +0 -1
  88. package/dist/scoring-B2_HEhMT.cjs.map +0 -1
  89. package/dist/scoring-BZqUkuDF.js.map +0 -1
@@ -134,6 +134,57 @@ interface CriterionScore {
134
134
  weight?: number;
135
135
  /** Not applicable to this submission (e.g. interaction on a monologue task). */
136
136
  notApplicable?: boolean;
137
+ /**
138
+ * How likely each of the criterion's levels was, lowest first, when the
139
+ * grader said: a distribution, whose likeliest level is `band`. Kept on the
140
+ * record as the evidence a routing rule read (`routeGrade`) and a
141
+ * calibration measures (`calibrationReport`).
142
+ */
143
+ levelProbabilities?: number[];
144
+ }
145
+ /**
146
+ * What one calibration certifies: a model, a prompt revision, a rubric and a
147
+ * target language. A change to any of them is a different grader, measured
148
+ * afresh. Built by `graderConfiguration`.
149
+ */
150
+ interface GraderConfiguration {
151
+ /** The model's identifier, from the grade's `grader.model`. */
152
+ model: string;
153
+ /** The prompt revision, from the grade's `grader.promptHash`. */
154
+ promptHash: string;
155
+ /** `contentHash` of the item's rubric, levels and descriptors included. */
156
+ rubricHash: string;
157
+ /** The item's `languageTarget`, or `null` when it has none. */
158
+ languageTarget: string | null;
159
+ }
160
+ /**
161
+ * Why `routeGrade` sent a grade to a person, in this order:
162
+ *
163
+ * - `no-calibration` — in `exam`, no calibration report for this grader's exact
164
+ * configuration was supplied: a model's grade counts on a paper of record
165
+ * only once it has been measured;
166
+ * - `calibration-below-policy` — the report misses one of the policy's
167
+ * thresholds, for a criterion or for the total;
168
+ * - `unsure` — a criterion's likeliest level is less likely than the policy's
169
+ * `minLevelProbability`;
170
+ * - `model-asked` — the grader set `requiresHumanReview`;
171
+ * - `low-confidence` — the grader's own `confidence` is `low`, and the policy
172
+ * routes on it;
173
+ * - `audit-sample` — the response is in the audit sample: a person marks it
174
+ * too, without the model's grade, to keep the calibration current.
175
+ */
176
+ type GradeRoutingReason = 'no-calibration' | 'calibration-below-policy' | 'unsure' | 'model-asked' | 'low-confidence' | 'audit-sample';
177
+ /** Where a grade went, and why: the record an appeal reads. */
178
+ interface GradeRouting {
179
+ /** `model` when its grade counts; `person` when a person must mark it first. */
180
+ to: 'model' | 'person';
181
+ /** Every reason it went to a person, in {@link GradeRoutingReason}'s order; empty when it did not. */
182
+ reasons: GradeRoutingReason[];
183
+ /** The calibration report the decision read, by its hash and size, when one matched. */
184
+ calibration?: {
185
+ reportHash: string;
186
+ pairs: number;
187
+ };
137
188
  }
138
189
  /** A suggested correction anchored in the learner's own text. */
139
190
  interface InlineCorrection {
@@ -189,6 +240,8 @@ interface GradeRecord {
189
240
  usage?: GraderUsage;
190
241
  /** ISO 8601 timestamp of when the grade was produced. */
191
242
  gradedAt?: string;
243
+ /** Where `routeGrade` sent this grade, and why, when it was routed. */
244
+ routing?: GradeRouting;
192
245
  }
193
246
  //#endregion
194
247
  //#region src/types/xapi.d.ts
@@ -424,6 +477,33 @@ interface ActivityMedia {
424
477
  * browser's own control bar, unlimited plays, free seeking and free speed.
425
478
  */
426
479
  playback?: MediaPlaybackPolicy;
480
+ /**
481
+ * Author-only: what the recording says, as plain text. For item generation,
482
+ * review and grading; never shown to the learner, and removed by `redact()`
483
+ * and `redactItemGroup()`, as a stimulus's `transcript` is. Meant for
484
+ * `audio` and `video`.
485
+ */
486
+ transcript?: string;
487
+ /**
488
+ * Author-only: the recording as turns, one per speaker, for casting voices
489
+ * and reading a dialogue. Removed by redaction, as `transcript` is. Where
490
+ * both are given, `transcript` is the text AI facts read; see
491
+ * {@link transcriptOf}.
492
+ */
493
+ script?: ScriptTurn[];
494
+ }
495
+ /**
496
+ * One speaker's turn in a recording's author-only `script`.
497
+ *
498
+ * `speaker` is a label the author chooses ("Anna", "Narrator", "Speaker 2"),
499
+ * the same one for every turn that voice speaks. Which voice reads it is the
500
+ * consuming application's choice; the SDK never names a voice.
501
+ */
502
+ interface ScriptTurn {
503
+ /** Non-empty after trimming; at most 60 characters. */
504
+ speaker: string;
505
+ /** What the speaker says. Non-empty after trimming. */
506
+ text: string;
427
507
  }
428
508
  /**
429
509
  * A hint to the browser's own control bar, emitted as a `controlsList` token.
@@ -521,6 +601,14 @@ interface MultipleChoiceOptionMedia {
521
601
  alt?: string;
522
602
  /** WebVTT captions for an audio option, rendered as a `<track>`. */
523
603
  captionsUrl?: string;
604
+ /**
605
+ * Author-only: what an audio option says. In a listening option this is the
606
+ * option's answer, so it is removed by `redact()` like every author-only
607
+ * field. See {@link ActivityMedia.transcript}.
608
+ */
609
+ transcript?: string;
610
+ /** Author-only: the option's recording as speaker turns. See {@link ActivityMedia.script}. */
611
+ script?: ScriptTurn[];
524
612
  }
525
613
  interface MultipleChoiceOption {
526
614
  /** Unique identifier for this option within the activity. */
@@ -770,6 +858,17 @@ interface FillInTheBlanksData {
770
858
  /** What an author allows AI to do for this item: see {@link ActivityAiPermissions}. */
771
859
  ai?: ActivityAiPermissions;
772
860
  }
861
+ /**
862
+ * One level of a rubric criterion: what a response at this level does. Levels
863
+ * run from the lowest to the highest, and a grader judging against them names
864
+ * one.
865
+ */
866
+ interface WrittenResponseRubricLevel {
867
+ /** A short name, unique within its criterion: "Developing", "B1". */
868
+ label: string;
869
+ /** What a response at this level does, for the grader and the learner. */
870
+ description?: string;
871
+ }
773
872
  /** A single criterion within a written-response grading rubric. */
774
873
  interface WrittenResponseRubricCriterion {
775
874
  /** Criterion name (e.g. "Task achievement", "Grammar range"). */
@@ -778,6 +877,20 @@ interface WrittenResponseRubricCriterion {
778
877
  description?: string;
779
878
  /** Non-negative weight of this criterion in the overall grade. */
780
879
  weight: number;
880
+ /**
881
+ * The criterion's levels, lowest first: 2 to 10, each with a label unique
882
+ * within the criterion once case and spacing are ignored. A grader judging
883
+ * against levels names one, and the criterion scores the level's place on
884
+ * the scale, `index / (levels.length - 1)`: 0 for the lowest, 1 for the
885
+ * highest.
886
+ *
887
+ * Read by the grading functions (`aiGradingRequest`, `gradeFromJudgement`,
888
+ * `calibrationReport`), which report levels they cannot use. In 1.x
889
+ * `validateActivity` does not check it: your own fields pass through it, and
890
+ * a field of yours named `levels` stays valid. The item critic warns about
891
+ * levels the grading functions cannot read.
892
+ */
893
+ levels?: WrittenResponseRubricLevel[];
781
894
  }
782
895
  /** Grading rubric attached to a written-response activity. */
783
896
  interface WrittenResponseRubric {
@@ -1232,8 +1345,12 @@ interface DeferredScoringPartial {
1232
1345
  * a finite number, a `maxScore` of 0 or less, or a score outside 0 to
1233
1346
  * `maxScore`). The record is kept on `rejectedGrade`. A real grade is still
1234
1347
  * owed, so re-grade the slot: waiting will not bring one.
1348
+ * - `awaiting_human_review` — a model graded the response, and a routing rule
1349
+ * (`routeGrade`) sent it to a person: the grade does not count until a
1350
+ * person marks it. The model's grade is kept on `pendingGrade`, for the
1351
+ * person and for the next calibration.
1235
1352
  */
1236
- type DeferredReason = 'requires_async_grading' | 'no_response_recorded' | 'grade_rejected';
1353
+ type DeferredReason = 'requires_async_grading' | 'no_response_recorded' | 'grade_rejected' | 'awaiting_human_review';
1237
1354
  /**
1238
1355
  * The outcome of evaluating a learner response against an activity — the
1239
1356
  * union `evaluate()` returns. Unlike {@link ScoringResult}, it can express
@@ -1266,6 +1383,13 @@ type ItemOutcome = {
1266
1383
  * is mirrored onto the outcome, and nothing reads it as a grade.
1267
1384
  */
1268
1385
  rejectedGrade?: GradeRecord;
1386
+ /**
1387
+ * The model's grade a routing rule held for a person, when `reason` is
1388
+ * `awaiting_human_review`, with the decision on its `routing`. Kept for
1389
+ * the person and for the next calibration; nothing on it is mirrored
1390
+ * onto the outcome, and nothing reads it as a grade.
1391
+ */
1392
+ pendingGrade?: GradeRecord;
1269
1393
  } | {
1270
1394
  status: 'graded';
1271
1395
  /**
@@ -1501,8 +1625,8 @@ type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
1501
1625
  * section alike, and needs no blueprint to exist.
1502
1626
  *
1503
1627
  * Learner-visible by definition: the point of a stimulus is that the learner
1504
- * reads or hears it. The one exception is `transcript`, an author asset that
1505
- * `redactItemGroup` removes.
1628
+ * reads or hears it. The exceptions are `transcript` and `script`, author
1629
+ * assets that `redactItemGroup` removes.
1506
1630
  */
1507
1631
  interface Stimulus {
1508
1632
  id: string;
@@ -1526,6 +1650,12 @@ interface Stimulus {
1526
1650
  * never shown to the learner. Removed by `redactItemGroup`.
1527
1651
  */
1528
1652
  transcript?: string;
1653
+ /**
1654
+ * Author-only: the recording as speaker turns, for casting voices. Removed
1655
+ * by `redactItemGroup`, as `transcript` is. A stimulus keeps both here, not
1656
+ * on its `media`; `transcriptOf` reads these first.
1657
+ */
1658
+ script?: ScriptTurn[];
1529
1659
  /** BCP 47 language tag of the material, when it differs from the items'. */
1530
1660
  locale?: string;
1531
1661
  /** Source credit, shown to the learner after the material. */
@@ -1951,8 +2081,15 @@ interface AiTextResult {
1951
2081
  * a word the engine did not mark, or on a sound it did not report.
1952
2082
  * `contradicts-item` is a critique of an item that points at a field the item
1953
2083
  * does not have, or quotes words that field does not contain.
1954
- */
1955
- type AiRefusal = 'malformed' | 'empty' | 'too-long' | 'contradicts-grade' | 'reveals-answer' | 'misquotes-answer' | 'contradicts-marks' | 'contradicts-item';
2084
+ * `misses-criteria` is a grade that leaves a rubric criterion out, renames
2085
+ * one, judges one twice, or calls one not applicable: judging fewer criteria
2086
+ * is judging a different task, and the total would be renormalised over the
2087
+ * rest. `out-of-scale` is a judgement off its criterion's scale: a level the
2088
+ * criterion does not have, a score outside 0 to 1, or level probabilities that
2089
+ * are not a distribution over its levels, or whose likeliest level is not the
2090
+ * one chosen.
2091
+ */
2092
+ type AiRefusal = 'malformed' | 'empty' | 'too-long' | 'contradicts-grade' | 'reveals-answer' | 'misquotes-answer' | 'contradicts-marks' | 'contradicts-item' | 'misses-criteria' | 'out-of-scale';
1956
2093
  /** One criterion of a written response's rubric, as the author wrote it. */
1957
2094
  interface AiRubricCriterionFact {
1958
2095
  name: string;
@@ -2063,6 +2200,104 @@ interface AiWritingFeedback {
2063
2200
  provenance?: AiProvenance;
2064
2201
  usage?: GraderUsage;
2065
2202
  }
2203
+ /** One criterion of the rubric a model grades against, as the author wrote it. */
2204
+ interface AiGradingCriterionFact {
2205
+ name: string;
2206
+ description?: string;
2207
+ weight: number;
2208
+ /**
2209
+ * The levels to choose from, lowest first, as the author wrote them; `null`
2210
+ * when the criterion is judged on a score from 0 to 1.
2211
+ */
2212
+ levels: {
2213
+ label: string;
2214
+ description?: string;
2215
+ }[] | null;
2216
+ }
2217
+ /**
2218
+ * What a model is told about a submitted written response it grades: the task
2219
+ * as the learner saw it, the response verbatim, and the rubric with its levels.
2220
+ */
2221
+ interface AiGradingFacts {
2222
+ activityType: 'written-response';
2223
+ activityId: string;
2224
+ title: string;
2225
+ /** The language the item is written in, when the author gave one. */
2226
+ locale?: string;
2227
+ prompt: string;
2228
+ /** The response, exactly as submitted. Every correction quotes it. */
2229
+ text: string;
2230
+ /** Recomputed with `countWords`, as the grader counts it. */
2231
+ wordCount: number;
2232
+ minWords: number;
2233
+ maxWords: number;
2234
+ withinWordBounds: boolean;
2235
+ /** Every criterion of the item's rubric, in its order. */
2236
+ rubric: AiGradingCriterionFact[];
2237
+ /** The target language and level, when the author gave one (e.g. `"en-B1"`). */
2238
+ languageTarget?: string;
2239
+ }
2240
+ /**
2241
+ * Asks a model to grade a submitted written response. Built on the server,
2242
+ * from the whole item: grading needs the rubric, never the learner's view.
2243
+ */
2244
+ interface AiGradingRequest {
2245
+ feature: 'grading';
2246
+ facts: AiGradingFacts;
2247
+ /** The material of the group the task sits in; absent outside a group. */
2248
+ material?: AiMaterialFacts;
2249
+ /** The language to write comments and feedback in, when known. */
2250
+ learnerLocale?: string;
2251
+ }
2252
+ /**
2253
+ * Why `aiGradingRequest` built no request:
2254
+ *
2255
+ * - `not-written-response` — the item is another type;
2256
+ * - `redacted` — a `redact()` projection: grading is done on the server, from
2257
+ * the whole item;
2258
+ * - `no-rubric` — no rubric, or a criterion without a name and a weight: a
2259
+ * model has nothing to be held to;
2260
+ * - `duplicate-criteria` — two criteria with one name once case and spacing are
2261
+ * ignored: a model cannot judge them apart (`path` names the later one);
2262
+ * - `unreadable-levels` — a criterion's `levels` are there but cannot be used
2263
+ * (`path` names them; the item critic's `wr_levels_unreadable` says why);
2264
+ * - `empty-response` — nothing was written, so there is nothing to judge.
2265
+ */
2266
+ type AiGradingRequestProblem = 'not-written-response' | 'redacted' | 'no-rubric' | 'duplicate-criteria' | 'unreadable-levels' | 'empty-response';
2267
+ /** A model's judgement of one criterion, as `checkAiGrading` accepted it. */
2268
+ interface AiGradedCriterion {
2269
+ /** The criterion's name, as the author wrote it. */
2270
+ name: string;
2271
+ /** The level chosen, as the author labelled it, on a criterion with levels. */
2272
+ level?: string;
2273
+ /**
2274
+ * From 0 to 1: the level's place on the scale, `index / (levels - 1)`, or the
2275
+ * model's score on a criterion without levels.
2276
+ */
2277
+ score: number;
2278
+ /** How likely each level is, lowest first, when the model said: a distribution. */
2279
+ probabilities?: number[];
2280
+ comment?: string;
2281
+ }
2282
+ /**
2283
+ * A model's grade of a written response as `checkAiGrading` accepted it: every
2284
+ * criterion of the rubric judged, on its own scale. The total is not here —
2285
+ * `gradeFromJudgement` computes it.
2286
+ */
2287
+ interface AiGradingJudgement {
2288
+ /** Every criterion of the rubric, once, in the rubric's order. */
2289
+ criteria: AiGradedCriterion[];
2290
+ /** Narrative feedback addressed to the learner. */
2291
+ feedback: string | null;
2292
+ /** Corrections, each anchored in the response, as on feedback on writing. */
2293
+ corrections: InlineCorrection[];
2294
+ /** How the model reached its verdict; for the record, never shown. */
2295
+ rationale?: string;
2296
+ /** The model asked for a person to mark this response. */
2297
+ requiresHumanReview: boolean;
2298
+ provenance?: AiProvenance;
2299
+ usage?: GraderUsage;
2300
+ }
2066
2301
  /** One sound of a word, as the engine reported it. */
2067
2302
  interface AiSoundFact {
2068
2303
  /** The sound expected, in the assessment's phoneme alphabet. */
@@ -2413,5 +2648,5 @@ interface AiVideoDraft {
2413
2648
  findings: ItemFinding[];
2414
2649
  }
2415
2650
  //#endregion
2416
- export { AiWritingFeedbackRequest as $, ReadAloudDimension as $t, AiGapSelectFacts as A, InlineCorrection as An, DictationLearnerResponse as At, AiReadingFacts as B, InteractionEvent as Bt, AiDraftsCall as C, XAPIVerbObject as Cn, ActivityResult as Ct, AiFeature as D, GraderKind as Dn, DeferredScoringPartial as Dt, AiExplanationRequest as E, Grader as En, DeferredReason as Et, AiItemFacts as F, GapSelectBank as Ft, AiSupportedActivityType as G, MediaPlaybackPolicy as Gt, AiRefusal as H, ItemOutcome as Ht, AiMaterialFacts as I, GapSelectChoice as It, AiVideoDraft as J, MultipleChoiceLearnerResponse as Jt, AiTextResult as K, MediaTrack as Kt, AiMultipleChoiceFacts as L, GapSelectData as Lt, AiGrade as M, TextMatchResult as Mn, DictationTolerance as Mt, AiGroupInput as N, levenshteinDistance as Nn, FillInTheBlanksData as Nt, AiFillInTheBlanksFacts as O, GraderUsage as On, DictationData as Ot, AiHintRequest as P, matchText as Pn, FillInTheBlanksLearnerResponse as Pt, AiWritingFeedback as Q, ReadAloudData as Qt, AiOptionFact as R, GapSelectGap as Rt, AiDrafts as S, XAPIStatement as Sn, ActivityMedia as St, AiDraftsRun as T, GradeRecord as Tn, BlankConfig as Tt, AiRubricCriterionFact as U, LearnerResponse as Ut, AiReadingWordFact as V, InteractionKind as Vt, AiSoundFact as W, LearnerResponseMap as Wt, AiWritingCorrection as X, MultipleChoiceOptionMedia as Xt, AiWordFact as Y, MultipleChoiceOption as Yt, AiWritingFacts as Z, NativeControlHint as Zt, AiDraftCaption as _, XAPIContextActivities as _n, ItemFinding as _t, AiCoachingRequest as a, ScoringDetail as an, SequenceSlot as at, AiDraftSource as b, XAPIResult as bn, ActivityDataMap as bt, AiCriterionJudgement as c, ValidationError as cn, StimulusKind as ct, AiCritiqueFinding as d, WrittenResponseLearnerResponse as dn, DraftComplete as dt, ReadAloudDimensionWeight as en, AiWritingFeedbackResult as et, AiCritiqueFindingResult as f, WrittenResponseRubric as fn, DraftContext as ft, AiDictationFacts as g, XAPIContext as gn, DraftValidationResult as gt, AiCritiqueResult as h, XAPIConfig as hn, DraftSeverity as ht, AiCoaching as i, RecordingRef as in, SequenceEntry as it, AiGeneratedDraft as j, TextMatchPolicy as jn, DictationSlowMedia as jt, AiGapFact as k, GradingState as kn, DictationEquivalence as kt, AiCritique as l, ValidationResult as ln, TimelineChapter as lt, AiCritiqueRequest as m, XAPIActor as mn, DraftNotComplete as mt, AiActivityInput as n, ReadAloudSlowMedia as nn, MediaProgress as nt, AiCoachingResult as o, ScoringOutcome as on, SequenceSlotGroup as ot, AiCritiqueKind as p, WrittenResponseRubricCriterion as pn, DraftIssue as pt, AiVerdict as q, MultipleChoiceData as qt, AiBlankFact as r, RecordingBounds as rn, MediaTimeline as rt, AiCoachingWord as s, ScoringResult as sn, Stimulus as st, ActivityAiPermissions as t, ReadAloudLearnerResponse as tn, ItemGroup as tt, AiCritiqueField as u, WrittenResponseData as un, TimelineCue as ut, AiDraftProblem as v, XAPIError as vn, ItemFindingSeverity as vt, AiDraftsRequest as w, CriterionScore as wn, ActivityType as wt, AiDraftType as x, XAPIScore as xn, ActivityFeedback as xt, AiDraftSettings as y, XAPIObject as yn, ActivityData as yt, AiProvenance as z, GapSelectLearnerResponse as zt };
2417
- //# sourceMappingURL=ai-CnmLPMzd.d.ts.map
2651
+ export { AiVerdict as $, MultipleChoiceData as $t, AiGapSelectFacts as A, XAPIStatement as An, ActivityType as At, AiHintRequest as B, GradingState as Bn, FillInTheBlanksLearnerResponse as Bt, AiDraftsCall as C, XAPIConfig as Cn, ItemFinding as Ct, AiFeature as D, XAPIObject as Dn, ActivityFeedback as Dt, AiExplanationRequest as E, XAPIError as En, ActivityDataMap as Et, AiGradingFacts as F, GradeRoutingReason as Fn, DictationEquivalence as Ft, AiProvenance as G, matchText as Gn, GapSelectLearnerResponse as Gt, AiMaterialFacts as H, TextMatchPolicy as Hn, GapSelectChoice as Ht, AiGradingJudgement as I, Grader as In, DictationLearnerResponse as It, AiRefusal as J, ItemOutcome as Jt, AiReadingFacts as K, InteractionEvent as Kt, AiGradingRequest as L, GraderConfiguration as Ln, DictationSlowMedia as Lt, AiGrade as M, CriterionScore as Mn, DeferredReason as Mt, AiGradedCriterion as N, GradeRecord as Nn, DeferredScoringPartial as Nt, AiFillInTheBlanksFacts as O, XAPIResult as On, ActivityMedia as Ot, AiGradingCriterionFact as P, GradeRouting as Pn, DictationData as Pt, AiTextResult as Q, MediaTrack as Qt, AiGradingRequestProblem as R, GraderKind as Rn, DictationTolerance as Rt, AiDrafts as S, XAPIActor as Sn, DraftValidationResult as St, AiDraftsRun as T, XAPIContextActivities as Tn, ActivityData as Tt, AiMultipleChoiceFacts as U, TextMatchResult as Un, GapSelectData as Ut, AiItemFacts as V, InlineCorrection as Vn, GapSelectBank as Vt, AiOptionFact as W, levenshteinDistance as Wn, GapSelectGap as Wt, AiSoundFact as X, LearnerResponseMap as Xt, AiRubricCriterionFact as Y, LearnerResponse as Yt, AiSupportedActivityType as Z, MediaPlaybackPolicy as Zt, AiDraftCaption as _, WrittenResponseData as _n, DraftComplete as _t, AiCoachingRequest as a, ReadAloudDimension as an, AiWritingFeedbackRequest as at, AiDraftSource as b, WrittenResponseRubricCriterion as bn, DraftNotComplete as bt, AiCriterionJudgement as c, ReadAloudSlowMedia as cn, MediaProgress as ct, AiCritiqueFinding as d, ScoringDetail as dn, SequenceSlot as dt, MultipleChoiceLearnerResponse as en, AiVideoDraft as et, AiCritiqueFindingResult as f, ScoringOutcome as fn, SequenceSlotGroup as ft, AiDictationFacts as g, ValidationResult as gn, TimelineCue as gt, AiCritiqueResult as h, ValidationError as hn, TimelineChapter as ht, AiCoaching as i, ReadAloudData as in, AiWritingFeedback as it, AiGeneratedDraft as j, XAPIVerbObject as jn, BlankConfig as jt, AiGapFact as k, XAPIScore as kn, ActivityResult as kt, AiCritique as l, RecordingBounds as ln, MediaTimeline as lt, AiCritiqueRequest as m, ScriptTurn as mn, StimulusKind as mt, AiActivityInput as n, MultipleChoiceOptionMedia as nn, AiWritingCorrection as nt, AiCoachingResult as o, ReadAloudDimensionWeight as on, AiWritingFeedbackResult as ot, AiCritiqueKind as p, ScoringResult as pn, Stimulus as pt, AiReadingWordFact as q, InteractionKind as qt, AiBlankFact as r, NativeControlHint as rn, AiWritingFacts as rt, AiCoachingWord as s, ReadAloudLearnerResponse as sn, ItemGroup as st, ActivityAiPermissions as t, MultipleChoiceOption as tn, AiWordFact as tt, AiCritiqueField as u, RecordingRef as un, SequenceEntry as ut, AiDraftProblem as v, WrittenResponseLearnerResponse as vn, DraftContext as vt, AiDraftsRequest as w, XAPIContext as wn, ItemFindingSeverity as wt, AiDraftType as x, WrittenResponseRubricLevel as xn, DraftSeverity as xt, AiDraftSettings as y, WrittenResponseRubric as yn, DraftIssue as yt, AiGroupInput as z, GraderUsage as zn, FillInTheBlanksData as zt };
2652
+ //# sourceMappingURL=ai-i3jwXnpX.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-i3jwXnpX.d.cts","names":[],"sources":["../src/scoring/text-match.ts","../src/types/grading.ts","../src/types/xapi.ts","../src/types/activity.ts","../src/types/authoring.ts","../src/types/item-group.ts","../src/types/ai.ts"],"mappings":"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"}