@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.
- package/CHANGELOG.md +102 -0
- package/README.md +2 -0
- package/dist/ai-check.cjs +175 -17
- package/dist/ai-check.cjs.map +1 -1
- package/dist/ai-check.d.cts +13 -5
- package/dist/ai-check.d.cts.map +1 -1
- package/dist/ai-check.d.ts +13 -5
- package/dist/ai-check.d.ts.map +1 -1
- package/dist/ai-check.js +175 -17
- package/dist/ai-check.js.map +1 -1
- package/dist/{ai-CnmLPMzd.d.ts → ai-i3jwXnpX.d.cts} +242 -7
- package/dist/ai-i3jwXnpX.d.cts.map +1 -0
- package/dist/{ai-CnmLPMzd.d.cts → ai-i3jwXnpX.d.ts} +242 -7
- package/dist/ai-i3jwXnpX.d.ts.map +1 -0
- package/dist/{ai-writing-G6tnCGzw.cjs → ai-writing-C4YRVrFi.cjs} +683 -72
- package/dist/ai-writing-C4YRVrFi.cjs.map +1 -0
- package/dist/{ai-writing-CPpH9Qxq.js → ai-writing-OJ5m_1EB.js} +663 -88
- package/dist/ai-writing-OJ5m_1EB.js.map +1 -0
- package/dist/{index-BqMXWuNC.d.cts → index--U7hHV0s.d.cts} +2 -2
- package/dist/{index-BqMXWuNC.d.cts.map → index--U7hHV0s.d.cts.map} +1 -1
- package/dist/{index-B54baFUA.d.ts → index-CFRgZLhH.d.cts} +45 -12
- package/dist/index-CFRgZLhH.d.cts.map +1 -0
- package/dist/{index-CVWvymVb.d.ts → index-DeD8EI1D.d.ts} +327 -3
- package/dist/index-DeD8EI1D.d.ts.map +1 -0
- package/dist/{index-CcHDTxIZ.d.ts → index-Dj92T76o.d.ts} +2 -2
- package/dist/{index-CcHDTxIZ.d.ts.map → index-Dj92T76o.d.ts.map} +1 -1
- package/dist/{index-BAfEHCnD.d.cts → index-Uh1u57yq.d.cts} +327 -3
- package/dist/index-Uh1u57yq.d.cts.map +1 -0
- package/dist/{index-2nigSf4N.d.cts → index-WBHSrIUU.d.ts} +45 -12
- package/dist/index-WBHSrIUU.d.ts.map +1 -0
- package/dist/index.cjs +88 -131
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +217 -95
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +217 -95
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -118
- package/dist/index.js.map +1 -1
- package/dist/{item-group-DXiR8nOr.js → item-group-BbvvH_Ob.js} +3 -2
- package/dist/item-group-BbvvH_Ob.js.map +1 -0
- package/dist/{item-group-DroFXgLb.cjs → item-group-CQRbb8Rx.cjs} +3 -2
- package/dist/item-group-CQRbb8Rx.cjs.map +1 -0
- package/dist/{registry-Dsx9mNsS.js → registry-B23o9UWh.js} +218 -21
- package/dist/registry-B23o9UWh.js.map +1 -0
- package/dist/{registry-DVi0LR_i.cjs → registry-Ih5n4PVZ.cjs} +265 -20
- package/dist/registry-Ih5n4PVZ.cjs.map +1 -0
- package/dist/{schemas-DVbAOrtd.cjs → schemas-Q2dyOgc2.cjs} +77 -14
- package/dist/schemas-Q2dyOgc2.cjs.map +1 -0
- package/dist/{schemas-Bdw0nGPo.js → schemas-yId-bJhD.js} +72 -15
- package/dist/schemas-yId-bJhD.js.map +1 -0
- package/dist/schemas.cjs +5 -2
- package/dist/schemas.d.cts +2 -2
- package/dist/schemas.d.ts +2 -2
- package/dist/schemas.js +4 -3
- package/dist/{scoring-BZqUkuDF.js → scoring-CLMdk8i9.js} +657 -3
- package/dist/scoring-CLMdk8i9.js.map +1 -0
- package/dist/{scoring-B2_HEhMT.cjs → scoring-CaPS6q8b.cjs} +722 -2
- package/dist/scoring-CaPS6q8b.cjs.map +1 -0
- package/dist/scoring.cjs +8 -2
- package/dist/scoring.d.cts +3 -3
- package/dist/scoring.d.ts +3 -3
- package/dist/scoring.js +3 -3
- package/dist/{xapi-DNzkSJ0S.cjs → xapi-BX0hvRRB.cjs} +2 -2
- package/dist/{xapi-DNzkSJ0S.cjs.map → xapi-BX0hvRRB.cjs.map} +1 -1
- package/dist/{xapi-CMTph7wG.js → xapi-Cdk9fTvV.js} +2 -2
- package/dist/{xapi-CMTph7wG.js.map → xapi-Cdk9fTvV.js.map} +1 -1
- package/dist/xapi.cjs +1 -1
- package/dist/xapi.d.cts +1 -1
- package/dist/xapi.d.ts +1 -1
- package/dist/xapi.js +1 -2
- package/package.json +2 -2
- package/vectors/README.md +24 -1
- package/vectors/scoring.json +18182 -1
- package/dist/ai-CnmLPMzd.d.cts.map +0 -1
- package/dist/ai-CnmLPMzd.d.ts.map +0 -1
- package/dist/ai-writing-CPpH9Qxq.js.map +0 -1
- package/dist/ai-writing-G6tnCGzw.cjs.map +0 -1
- package/dist/index-2nigSf4N.d.cts.map +0 -1
- package/dist/index-B54baFUA.d.ts.map +0 -1
- package/dist/index-BAfEHCnD.d.cts.map +0 -1
- package/dist/index-CVWvymVb.d.ts.map +0 -1
- package/dist/item-group-DXiR8nOr.js.map +0 -1
- package/dist/item-group-DroFXgLb.cjs.map +0 -1
- package/dist/registry-DVi0LR_i.cjs.map +0 -1
- package/dist/registry-Dsx9mNsS.js.map +0 -1
- package/dist/schemas-Bdw0nGPo.js.map +0 -1
- package/dist/schemas-DVbAOrtd.cjs.map +0 -1
- package/dist/scoring-B2_HEhMT.cjs.map +0 -1
- 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
|
|
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
|
-
|
|
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 {
|
|
2417
|
-
//# sourceMappingURL=ai-
|
|
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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"}
|