@intellectif/lk-core 1.5.0 → 1.7.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 +77 -0
- package/dist/{ai-BYryFkF9.d.ts → ai-B1wYrqcB.d.cts} +83 -18
- package/dist/ai-B1wYrqcB.d.cts.map +1 -0
- package/dist/{ai-BYryFkF9.d.cts → ai-B1wYrqcB.d.ts} +83 -18
- package/dist/ai-B1wYrqcB.d.ts.map +1 -0
- package/dist/ai-check.cjs +13 -6
- package/dist/ai-check.cjs.map +1 -1
- package/dist/ai-check.d.cts +1 -5
- package/dist/ai-check.d.cts.map +1 -1
- package/dist/ai-check.d.ts +1 -5
- package/dist/ai-check.d.ts.map +1 -1
- package/dist/ai-check.js +13 -6
- package/dist/ai-check.js.map +1 -1
- package/dist/{ai-writing-D8PdhJJz.js → ai-writing-B7oMCt66.js} +311 -66
- package/dist/ai-writing-B7oMCt66.js.map +1 -0
- package/dist/{ai-writing-Cen7-3qs.cjs → ai-writing-DrPTV3R2.cjs} +313 -50
- package/dist/ai-writing-DrPTV3R2.cjs.map +1 -0
- package/dist/{index-DUaW1Tj5.d.ts → index-BM8LeDWn.d.cts} +2 -42
- package/dist/index-BM8LeDWn.d.cts.map +1 -0
- package/dist/{index-Bg0aeWtM.d.cts → index-BTkMQtws.d.ts} +2 -42
- package/dist/index-BTkMQtws.d.ts.map +1 -0
- package/dist/{index-wMc1E_aM.d.ts → index-BU99GFTl.d.ts} +2 -8
- package/dist/index-BU99GFTl.d.ts.map +1 -0
- package/dist/{index-CxpiWedW.d.ts → index-BdXs4-en.d.ts} +42 -20
- package/dist/index-BdXs4-en.d.ts.map +1 -0
- package/dist/{index-qMbxed1B.d.cts → index-DP9rvyOz.d.cts} +42 -20
- package/dist/index-DP9rvyOz.d.cts.map +1 -0
- package/dist/{index-D7R3Ll8R.d.cts → index-XCCoPoTU.d.cts} +2 -8
- package/dist/index-XCCoPoTU.d.cts.map +1 -0
- package/dist/index.cjs +70 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +135 -69
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +135 -69
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +65 -22
- package/dist/index.js.map +1 -1
- package/dist/{item-group-DEB7nLID.cjs → item-group-8P3WFuUK.cjs} +5 -6
- package/dist/item-group-8P3WFuUK.cjs.map +1 -0
- package/dist/{item-group-DdSUCUjM.js → item-group-CeDk7mfM.js} +5 -6
- package/dist/item-group-CeDk7mfM.js.map +1 -0
- package/dist/{registry-DaZRpqjW.js → registry-D92hz9iA.js} +124 -106
- package/dist/registry-D92hz9iA.js.map +1 -0
- package/dist/{registry-Ce00A_OW.cjs → registry-hzrkTeIT.cjs} +142 -107
- package/dist/registry-hzrkTeIT.cjs.map +1 -0
- package/dist/{schemas-DksueYsu.cjs → schemas-BWeskONy.cjs} +79 -18
- package/dist/schemas-BWeskONy.cjs.map +1 -0
- package/dist/{schemas-BioKFf3F.js → schemas-C7TViWCg.js} +74 -19
- package/dist/schemas-C7TViWCg.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-lKQVYsxy.cjs → scoring-CtkCFyFT.cjs} +22 -42
- package/dist/{scoring-lKQVYsxy.cjs.map → scoring-CtkCFyFT.cjs.map} +1 -1
- package/dist/{scoring-BKNNTz-s.js → scoring-DD1GHcLI.js} +22 -42
- package/dist/{scoring-BKNNTz-s.js.map → scoring-DD1GHcLI.js.map} +1 -1
- package/dist/scoring.cjs +2 -2
- package/dist/scoring.d.cts +2 -2
- package/dist/scoring.d.ts +2 -2
- package/dist/scoring.js +2 -2
- package/dist/{xapi-NYrTlpID.cjs → xapi-7btSpx6v.cjs} +5 -8
- package/dist/{xapi-NYrTlpID.cjs.map → xapi-7btSpx6v.cjs.map} +1 -1
- package/dist/{xapi-wR6gu4qS.js → xapi-Cgicg-zU.js} +5 -8
- package/dist/{xapi-wR6gu4qS.js.map → xapi-Cgicg-zU.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 -1
- package/package.json +2 -2
- package/dist/ai-BYryFkF9.d.cts.map +0 -1
- package/dist/ai-BYryFkF9.d.ts.map +0 -1
- package/dist/ai-writing-Cen7-3qs.cjs.map +0 -1
- package/dist/ai-writing-D8PdhJJz.js.map +0 -1
- package/dist/index-Bg0aeWtM.d.cts.map +0 -1
- package/dist/index-CxpiWedW.d.ts.map +0 -1
- package/dist/index-D7R3Ll8R.d.cts.map +0 -1
- package/dist/index-DUaW1Tj5.d.ts.map +0 -1
- package/dist/index-qMbxed1B.d.cts.map +0 -1
- package/dist/index-wMc1E_aM.d.ts.map +0 -1
- package/dist/item-group-DEB7nLID.cjs.map +0 -1
- package/dist/item-group-DdSUCUjM.js.map +0 -1
- package/dist/registry-Ce00A_OW.cjs.map +0 -1
- package/dist/registry-DaZRpqjW.js.map +0 -1
- package/dist/schemas-BioKFf3F.js.map +0 -1
- package/dist/schemas-DksueYsu.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# @intellectif/lk-core
|
|
2
2
|
|
|
3
|
+
## 1.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#122](https://github.com/intellectif/learning-kit/pull/122) [`4f59f0a`](https://github.com/intellectif/learning-kit/commit/4f59f0aee1868875a729af89a7ae275ff96bb218) Thanks [@diego28e](https://github.com/diego28e)! - **A question's own instructions**: multiple choice, fill in the blanks and gap select take an optional `instructions`, the task the learner reads before answering, as read aloud already does.
|
|
8
|
+
|
|
9
|
+
**Action required:** none, unless you already store a field under this name. Content is loose, so an `instructions` of your own on these three types validated before. It now has to be a string, and on a fill in the blanks or a gap select it may hold no `{{id}}` placeholder. Anything else fails validation at `instructions`. **No grade changes:** no scorer reads it, and the grade-stability corpus is unchanged.
|
|
10
|
+
|
|
11
|
+
- **What it is for:** "Complete the sentence. Use ONE word.", on a question served alone (an adaptive test's, or a bank shuffled across forms) where no item group can hold it. Instructions a run of questions shares stay in the group's text stimulus.
|
|
12
|
+
- **lk-core:**
|
|
13
|
+
- **The field.** `instructions?: string` on `MultipleChoiceData`, `FillInTheBlanksData` and `GapSelectData`, plain text. A `{{id}}` placeholder in a fill in the blanks' or a gap select's instructions is refused at `instructions`, since blanks and gaps live in the passage only.
|
|
14
|
+
- **Learner-visible.** `redact()` keeps it at every reveal level, and so do `withoutAuthorOnly()` and `redactItemGroup()`. `assertRedacted()` accepts it, and the `Redacted*` types carry it.
|
|
15
|
+
- **Schemas.** `jsonSchemaFor()` and `contentJsonSchema()` describe it.
|
|
16
|
+
- **AI help.** Hint and explanation facts carry `instructions` on these types, trimmed, apart from the question or the passage. A grouped question carries both its group's `material` and its own instructions. Tell your model that they are the task, not part of the text answered.
|
|
17
|
+
- **Drafts.** A model drafting these types may write `instructions`, and `checkAiDrafts` keeps them.
|
|
18
|
+
- **`@intellectif/lk-core/ai-check`** has one more case, `fib-instructions-hint`: the word-formation blank of `fib-formation-hint` served alone, with its task in its own instructions.
|
|
19
|
+
- **lk-react:** `<MultipleChoice>`, `<FillInTheBlanks>` and `<GapSelect>` draw the instructions first, before the media and the question or passage, in `.lk-mc-instructions`, `.lk-fib-instructions` or `.lk-gs-instructions`. The question's fieldset names them with `aria-describedby`. Blank instructions draw nothing. Inside `<ActivitySequence>`, a grouped question shows its group's material, then its own instructions. lk-react 23.3.0 peers on lk-core `^1.7.0`, so upgrade the two together.
|
|
20
|
+
|
|
21
|
+
Guide: https://github.com/intellectif/learning-kit/blob/main/docs/authoring.md#a-questions-own-instructions-17
|
|
22
|
+
|
|
23
|
+
## 1.6.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- [#120](https://github.com/intellectif/learning-kit/pull/120) [`d5ee618`](https://github.com/intellectif/learning-kit/commit/d5ee6185d2a167794352b218486881c405b13b52) Thanks [@diego28e](https://github.com/diego28e)! - **Exporting and importing content**: list and re-point every file an item or a group uses, keep what each recording says for the author's side only, and describe content in one JSON Schema.
|
|
28
|
+
|
|
29
|
+
**Action required:** none. Every field is optional and every function new. Two cases to check:
|
|
30
|
+
|
|
31
|
+
- **A field you already store under these names.** If your content keeps a media `transcript` that is not a string, or a `script` that is not a list of `{ speaker, text }` turns, it now fails validation.
|
|
32
|
+
- **A `switch` over the critic's codes.** The critic has three new codes, so a `switch` over them without a `default` branch needs them.
|
|
33
|
+
|
|
34
|
+
- **Files:** `listMediaRefs(entry)` lists every media address in an activity or an item group: each one's path, kind, owner and language. It covers an item's `media`, a multiple-choice option's `media`, dictation's and read-aloud's `slowMedia`, and a stimulus's `media`, with their captions, tracks and posters. A recording with no file yet is listed with `url: null`.
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
const files = listMediaRefs(entry).filter((ref) => ref.url !== null);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`mapMediaRefs(entry, fn)` returns a copy with each address replaced and nothing else changed. With `(ref) => ref.url` the copy equals the input. A type you register says where it keeps files with `mediaSlots` on its descriptor.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
const imported = mapMediaRefs(entry, (ref) =>
|
|
44
|
+
ref.url === null ? null : storedUrlFor(ref.url)
|
|
45
|
+
);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- **What a recording says:** an item's media, a listening option's media and a stimulus can carry an author-only `transcript` (plain text) and `script` (turns, each a `speaker` and a `text`).
|
|
49
|
+
|
|
50
|
+
- Both are removed by `redact()` and `redactItemGroup()` at every reveal level, and refused by `assertRedacted()`. No request for a learner's AI help reads them.
|
|
51
|
+
- `transcriptOf(holder)` gives the author-side text, the script as `Speaker: text` lines when there is no transcript. Pass it to `aiDraftsRequest` as its `source`.
|
|
52
|
+
|
|
53
|
+
```jsonc
|
|
54
|
+
{
|
|
55
|
+
"type": "audio",
|
|
56
|
+
"url": "https://cdn.example/station.mp3",
|
|
57
|
+
"transcript": "Where does the train leave from? Platform four.",
|
|
58
|
+
"script": [
|
|
59
|
+
{ "speaker": "Anna", "text": "Where does the train leave from?" },
|
|
60
|
+
{ "speaker": "Ben", "text": "Platform four." }
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
- **Practice scored in the browser:** `withoutAuthorOnly(entry)` returns an item or a group without its author-only fields, and with its key and your own fields. Unlike `redact()`, whose output scorers refuse, it scores exactly as the stored item. Every vector of the grade-stability corpus shows it. Exams still go through `redact()`.
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
res.json(withoutAuthorOnly(practiceItem));
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- **The critic's new codes:** `media_script_differs` (a transcript and a script that say different words), `media_transcript_differs` (a dictation's or a read-aloud's recording saying other words than the item), and `media_transcript_unused` (on a picture or an embed). The AI critic now reads a recording's transcript and script. It no longer reads a caption track's address or language, a poster, or a speaker's label.
|
|
72
|
+
- **JSON Schema:** `contentJsonSchema()` is one draft 2020-12 document whose root is a sequence entry: any registered activity type, or an item group with typed items. `jsonSchemaFor(type, { target: 'draft-2020-12' })` gives one type's schema in that draft. Draft 7 stays the default, so the existing exports do not change.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
writeFileSync("schema.json", JSON.stringify(contentJsonSchema(), null, 2));
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Guide: https://github.com/intellectif/learning-kit/blob/main/docs/authoring.md#exporting-and-importing-content-16
|
|
79
|
+
|
|
3
80
|
## 1.5.0
|
|
4
81
|
|
|
5
82
|
### Minor Changes
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/scoring/text-match.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Configurable free-text answer matching (R3.3).
|
|
4
3
|
*
|
|
@@ -63,8 +62,6 @@ declare function levenshteinDistance(a: string, b: string, max: number): number;
|
|
|
63
62
|
* semantics: `trim` + locale-insensitive `toLowerCase` + strict equality.
|
|
64
63
|
*/
|
|
65
64
|
declare function matchText(input: string, accepted: string | readonly string[], policy?: TextMatchPolicy): TextMatchResult;
|
|
66
|
-
//#endregion
|
|
67
|
-
//#region src/types/grading.d.ts
|
|
68
65
|
/**
|
|
69
66
|
* Lifecycle of a deferred grade. A grade exists only in the `graded` state;
|
|
70
67
|
* every other state means "no grade, and here is why" — which is precisely the
|
|
@@ -243,8 +240,6 @@ interface GradeRecord {
|
|
|
243
240
|
/** Where `routeGrade` sent this grade, and why, when it was routed. */
|
|
244
241
|
routing?: GradeRouting;
|
|
245
242
|
}
|
|
246
|
-
//#endregion
|
|
247
|
-
//#region src/types/xapi.d.ts
|
|
248
243
|
/**
|
|
249
244
|
* An xAPI Activity object — the thing a statement is about.
|
|
250
245
|
* This SDK only builds Activity-type objects (xAPI 1.0.3 §4.1.4.1).
|
|
@@ -402,8 +397,6 @@ interface XAPIError {
|
|
|
402
397
|
/** Human-readable error description. */
|
|
403
398
|
message: string;
|
|
404
399
|
}
|
|
405
|
-
//#endregion
|
|
406
|
-
//#region src/types/activity.d.ts
|
|
407
400
|
/**
|
|
408
401
|
* Maps each ActivityType string to its corresponding data shape.
|
|
409
402
|
*
|
|
@@ -477,6 +470,33 @@ interface ActivityMedia {
|
|
|
477
470
|
* browser's own control bar, unlimited plays, free seeking and free speed.
|
|
478
471
|
*/
|
|
479
472
|
playback?: MediaPlaybackPolicy;
|
|
473
|
+
/**
|
|
474
|
+
* Author-only: what the recording says, as plain text. For item generation,
|
|
475
|
+
* review and grading; never shown to the learner, and removed by `redact()`
|
|
476
|
+
* and `redactItemGroup()`, as a stimulus's `transcript` is. Meant for
|
|
477
|
+
* `audio` and `video`.
|
|
478
|
+
*/
|
|
479
|
+
transcript?: string;
|
|
480
|
+
/**
|
|
481
|
+
* Author-only: the recording as turns, one per speaker, for casting voices
|
|
482
|
+
* and reading a dialogue. Removed by redaction, as `transcript` is. Where
|
|
483
|
+
* both are given, `transcript` is the text AI facts read; see
|
|
484
|
+
* {@link transcriptOf}.
|
|
485
|
+
*/
|
|
486
|
+
script?: ScriptTurn[];
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* One speaker's turn in a recording's author-only `script`.
|
|
490
|
+
*
|
|
491
|
+
* `speaker` is a label the author chooses ("Anna", "Narrator", "Speaker 2"),
|
|
492
|
+
* the same one for every turn that voice speaks. Which voice reads it is the
|
|
493
|
+
* consuming application's choice; the SDK never names a voice.
|
|
494
|
+
*/
|
|
495
|
+
interface ScriptTurn {
|
|
496
|
+
/** Non-empty after trimming; at most 60 characters. */
|
|
497
|
+
speaker: string;
|
|
498
|
+
/** What the speaker says. Non-empty after trimming. */
|
|
499
|
+
text: string;
|
|
480
500
|
}
|
|
481
501
|
/**
|
|
482
502
|
* A hint to the browser's own control bar, emitted as a `controlsList` token.
|
|
@@ -574,6 +594,14 @@ interface MultipleChoiceOptionMedia {
|
|
|
574
594
|
alt?: string;
|
|
575
595
|
/** WebVTT captions for an audio option, rendered as a `<track>`. */
|
|
576
596
|
captionsUrl?: string;
|
|
597
|
+
/**
|
|
598
|
+
* Author-only: what an audio option says. In a listening option this is the
|
|
599
|
+
* option's answer, so it is removed by `redact()` like every author-only
|
|
600
|
+
* field. See {@link ActivityMedia.transcript}.
|
|
601
|
+
*/
|
|
602
|
+
transcript?: string;
|
|
603
|
+
/** Author-only: the option's recording as speaker turns. See {@link ActivityMedia.script}. */
|
|
604
|
+
script?: ScriptTurn[];
|
|
577
605
|
}
|
|
578
606
|
interface MultipleChoiceOption {
|
|
579
607
|
/** Unique identifier for this option within the activity. */
|
|
@@ -602,6 +630,13 @@ interface MultipleChoiceData {
|
|
|
602
630
|
id: string;
|
|
603
631
|
/** Human-readable title used in xAPI statements and error boundaries. */
|
|
604
632
|
title: string;
|
|
633
|
+
/**
|
|
634
|
+
* Optional instructions shown to the learner, as plain text: the task, read
|
|
635
|
+
* before the question and never part of it ("Choose the correct option to
|
|
636
|
+
* complete the conversation."). Every AI request about the item carries them.
|
|
637
|
+
* Instructions a run of questions shares go in an item group's text stimulus.
|
|
638
|
+
*/
|
|
639
|
+
instructions?: string;
|
|
605
640
|
/** The question stem presented to the learner, as plain text. */
|
|
606
641
|
question: string;
|
|
607
642
|
/**
|
|
@@ -739,6 +774,14 @@ interface GapSelectData {
|
|
|
739
774
|
id: string;
|
|
740
775
|
/** Human-readable title used in xAPI statements and error boundaries. */
|
|
741
776
|
title: string;
|
|
777
|
+
/**
|
|
778
|
+
* Optional instructions shown to the learner, as plain text: the task, read
|
|
779
|
+
* before the passage and never part of it ("Complete the sentence. Use ONE
|
|
780
|
+
* word."). Every AI request about the item carries them. A `{{id}}`
|
|
781
|
+
* placeholder here is refused: gaps live in the passage only. Instructions
|
|
782
|
+
* a run of questions shares go in an item group's text stimulus.
|
|
783
|
+
*/
|
|
784
|
+
instructions?: string;
|
|
742
785
|
/** Passage text containing `{{gap_id}}` placeholders. */
|
|
743
786
|
passage: string;
|
|
744
787
|
/**
|
|
@@ -796,6 +839,14 @@ interface FillInTheBlanksData {
|
|
|
796
839
|
id: string;
|
|
797
840
|
/** Human-readable title used in xAPI statements and error boundaries. */
|
|
798
841
|
title: string;
|
|
842
|
+
/**
|
|
843
|
+
* Optional instructions shown to the learner, as plain text: the task, read
|
|
844
|
+
* before the passage and never part of it ("Complete the sentence. Use ONE
|
|
845
|
+
* word."). Every AI request about the item carries them. A `{{id}}`
|
|
846
|
+
* placeholder here is refused: blanks live in the passage only. Instructions
|
|
847
|
+
* a run of questions shares go in an item group's text stimulus.
|
|
848
|
+
*/
|
|
849
|
+
instructions?: string;
|
|
799
850
|
/** Passage text containing `{{blank_id}}` placeholders. */
|
|
800
851
|
passage: string;
|
|
801
852
|
/**
|
|
@@ -1503,8 +1554,6 @@ interface InteractionEvent {
|
|
|
1503
1554
|
/** Additional event-specific data. */
|
|
1504
1555
|
payload: Record<string, unknown>;
|
|
1505
1556
|
}
|
|
1506
|
-
//#endregion
|
|
1507
|
-
//#region src/types/authoring.d.ts
|
|
1508
1557
|
/**
|
|
1509
1558
|
* Why a draft is not an activity yet.
|
|
1510
1559
|
*
|
|
@@ -1579,8 +1628,6 @@ interface DraftContext {
|
|
|
1579
1628
|
*/
|
|
1580
1629
|
newId: () => string;
|
|
1581
1630
|
}
|
|
1582
|
-
//#endregion
|
|
1583
|
-
//#region src/types/item-group.d.ts
|
|
1584
1631
|
/** What a stimulus primarily is. Drives validation and layout, never scoring. */
|
|
1585
1632
|
type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
|
|
1586
1633
|
/**
|
|
@@ -1590,8 +1637,8 @@ type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
|
|
|
1590
1637
|
* section alike, and needs no blueprint to exist.
|
|
1591
1638
|
*
|
|
1592
1639
|
* Learner-visible by definition: the point of a stimulus is that the learner
|
|
1593
|
-
* reads or hears it. The
|
|
1594
|
-
* `redactItemGroup` removes.
|
|
1640
|
+
* reads or hears it. The exceptions are `transcript` and `script`, author
|
|
1641
|
+
* assets that `redactItemGroup` removes.
|
|
1595
1642
|
*/
|
|
1596
1643
|
interface Stimulus {
|
|
1597
1644
|
id: string;
|
|
@@ -1615,6 +1662,12 @@ interface Stimulus {
|
|
|
1615
1662
|
* never shown to the learner. Removed by `redactItemGroup`.
|
|
1616
1663
|
*/
|
|
1617
1664
|
transcript?: string;
|
|
1665
|
+
/**
|
|
1666
|
+
* Author-only: the recording as speaker turns, for casting voices. Removed
|
|
1667
|
+
* by `redactItemGroup`, as `transcript` is. A stimulus keeps both here, not
|
|
1668
|
+
* on its `media`; `transcriptOf` reads these first.
|
|
1669
|
+
*/
|
|
1670
|
+
script?: ScriptTurn[];
|
|
1618
1671
|
/** BCP 47 language tag of the material, when it differs from the items'. */
|
|
1619
1672
|
locale?: string;
|
|
1620
1673
|
/** Source credit, shown to the learner after the material. */
|
|
@@ -1793,8 +1846,6 @@ interface SequenceSlot<TItem = ActivityData> {
|
|
|
1793
1846
|
/** Present when the slot comes from an item group. */
|
|
1794
1847
|
group?: SequenceSlotGroup;
|
|
1795
1848
|
}
|
|
1796
|
-
//#endregion
|
|
1797
|
-
//#region src/types/ai.d.ts
|
|
1798
1849
|
/**
|
|
1799
1850
|
* What an author allows AI to do for one item. Absent, or a feature left out,
|
|
1800
1851
|
* leaves the choice to the deployment. `false` switches a feature off for this
|
|
@@ -1862,6 +1913,11 @@ interface AiOptionFact {
|
|
|
1862
1913
|
}
|
|
1863
1914
|
interface AiMultipleChoiceFacts extends AiFactsBase {
|
|
1864
1915
|
activityType: 'multiple-choice';
|
|
1916
|
+
/**
|
|
1917
|
+
* The item's instructions, when it has any: the task the learner reads
|
|
1918
|
+
* before the question. They say what to do, and are never part of the text answered.
|
|
1919
|
+
*/
|
|
1920
|
+
instructions?: string;
|
|
1865
1921
|
question: string;
|
|
1866
1922
|
mode: 'single' | 'multi';
|
|
1867
1923
|
options: AiOptionFact[];
|
|
@@ -1884,6 +1940,11 @@ interface AiBlankFact {
|
|
|
1884
1940
|
}
|
|
1885
1941
|
interface AiFillInTheBlanksFacts extends AiFactsBase {
|
|
1886
1942
|
activityType: 'fill-in-the-blanks';
|
|
1943
|
+
/**
|
|
1944
|
+
* The item's instructions, when it has any: the task the learner reads
|
|
1945
|
+
* before the passage. They say what to do, and are never part of the text answered.
|
|
1946
|
+
*/
|
|
1947
|
+
instructions?: string;
|
|
1887
1948
|
/** The passage, each blank written as `[1]`, `[2]`… in passage order. */
|
|
1888
1949
|
passage: string;
|
|
1889
1950
|
blanks: AiBlankFact[];
|
|
@@ -1906,6 +1967,11 @@ interface AiGapFact {
|
|
|
1906
1967
|
}
|
|
1907
1968
|
interface AiGapSelectFacts extends AiFactsBase {
|
|
1908
1969
|
activityType: 'gap-select';
|
|
1970
|
+
/**
|
|
1971
|
+
* The item's instructions, when it has any: the task the learner reads
|
|
1972
|
+
* before the passage. They say what to do, and are never part of the text answered.
|
|
1973
|
+
*/
|
|
1974
|
+
instructions?: string;
|
|
1909
1975
|
/** The passage, each gap written as `[1]`, `[2]`… in passage order. */
|
|
1910
1976
|
passage: string;
|
|
1911
1977
|
gaps: AiGapFact[];
|
|
@@ -2606,6 +2672,5 @@ interface AiVideoDraft {
|
|
|
2606
2672
|
/** What `critiqueItemGroupDraft` says of it. */
|
|
2607
2673
|
findings: ItemFinding[];
|
|
2608
2674
|
}
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
//# sourceMappingURL=ai-BYryFkF9.d.ts.map
|
|
2675
|
+
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 };
|
|
2676
|
+
//# sourceMappingURL=ai-B1wYrqcB.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-B1wYrqcB.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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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/scoring/text-match.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Configurable free-text answer matching (R3.3).
|
|
4
3
|
*
|
|
@@ -63,8 +62,6 @@ declare function levenshteinDistance(a: string, b: string, max: number): number;
|
|
|
63
62
|
* semantics: `trim` + locale-insensitive `toLowerCase` + strict equality.
|
|
64
63
|
*/
|
|
65
64
|
declare function matchText(input: string, accepted: string | readonly string[], policy?: TextMatchPolicy): TextMatchResult;
|
|
66
|
-
//#endregion
|
|
67
|
-
//#region src/types/grading.d.ts
|
|
68
65
|
/**
|
|
69
66
|
* Lifecycle of a deferred grade. A grade exists only in the `graded` state;
|
|
70
67
|
* every other state means "no grade, and here is why" — which is precisely the
|
|
@@ -243,8 +240,6 @@ interface GradeRecord {
|
|
|
243
240
|
/** Where `routeGrade` sent this grade, and why, when it was routed. */
|
|
244
241
|
routing?: GradeRouting;
|
|
245
242
|
}
|
|
246
|
-
//#endregion
|
|
247
|
-
//#region src/types/xapi.d.ts
|
|
248
243
|
/**
|
|
249
244
|
* An xAPI Activity object — the thing a statement is about.
|
|
250
245
|
* This SDK only builds Activity-type objects (xAPI 1.0.3 §4.1.4.1).
|
|
@@ -402,8 +397,6 @@ interface XAPIError {
|
|
|
402
397
|
/** Human-readable error description. */
|
|
403
398
|
message: string;
|
|
404
399
|
}
|
|
405
|
-
//#endregion
|
|
406
|
-
//#region src/types/activity.d.ts
|
|
407
400
|
/**
|
|
408
401
|
* Maps each ActivityType string to its corresponding data shape.
|
|
409
402
|
*
|
|
@@ -477,6 +470,33 @@ interface ActivityMedia {
|
|
|
477
470
|
* browser's own control bar, unlimited plays, free seeking and free speed.
|
|
478
471
|
*/
|
|
479
472
|
playback?: MediaPlaybackPolicy;
|
|
473
|
+
/**
|
|
474
|
+
* Author-only: what the recording says, as plain text. For item generation,
|
|
475
|
+
* review and grading; never shown to the learner, and removed by `redact()`
|
|
476
|
+
* and `redactItemGroup()`, as a stimulus's `transcript` is. Meant for
|
|
477
|
+
* `audio` and `video`.
|
|
478
|
+
*/
|
|
479
|
+
transcript?: string;
|
|
480
|
+
/**
|
|
481
|
+
* Author-only: the recording as turns, one per speaker, for casting voices
|
|
482
|
+
* and reading a dialogue. Removed by redaction, as `transcript` is. Where
|
|
483
|
+
* both are given, `transcript` is the text AI facts read; see
|
|
484
|
+
* {@link transcriptOf}.
|
|
485
|
+
*/
|
|
486
|
+
script?: ScriptTurn[];
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* One speaker's turn in a recording's author-only `script`.
|
|
490
|
+
*
|
|
491
|
+
* `speaker` is a label the author chooses ("Anna", "Narrator", "Speaker 2"),
|
|
492
|
+
* the same one for every turn that voice speaks. Which voice reads it is the
|
|
493
|
+
* consuming application's choice; the SDK never names a voice.
|
|
494
|
+
*/
|
|
495
|
+
interface ScriptTurn {
|
|
496
|
+
/** Non-empty after trimming; at most 60 characters. */
|
|
497
|
+
speaker: string;
|
|
498
|
+
/** What the speaker says. Non-empty after trimming. */
|
|
499
|
+
text: string;
|
|
480
500
|
}
|
|
481
501
|
/**
|
|
482
502
|
* A hint to the browser's own control bar, emitted as a `controlsList` token.
|
|
@@ -574,6 +594,14 @@ interface MultipleChoiceOptionMedia {
|
|
|
574
594
|
alt?: string;
|
|
575
595
|
/** WebVTT captions for an audio option, rendered as a `<track>`. */
|
|
576
596
|
captionsUrl?: string;
|
|
597
|
+
/**
|
|
598
|
+
* Author-only: what an audio option says. In a listening option this is the
|
|
599
|
+
* option's answer, so it is removed by `redact()` like every author-only
|
|
600
|
+
* field. See {@link ActivityMedia.transcript}.
|
|
601
|
+
*/
|
|
602
|
+
transcript?: string;
|
|
603
|
+
/** Author-only: the option's recording as speaker turns. See {@link ActivityMedia.script}. */
|
|
604
|
+
script?: ScriptTurn[];
|
|
577
605
|
}
|
|
578
606
|
interface MultipleChoiceOption {
|
|
579
607
|
/** Unique identifier for this option within the activity. */
|
|
@@ -602,6 +630,13 @@ interface MultipleChoiceData {
|
|
|
602
630
|
id: string;
|
|
603
631
|
/** Human-readable title used in xAPI statements and error boundaries. */
|
|
604
632
|
title: string;
|
|
633
|
+
/**
|
|
634
|
+
* Optional instructions shown to the learner, as plain text: the task, read
|
|
635
|
+
* before the question and never part of it ("Choose the correct option to
|
|
636
|
+
* complete the conversation."). Every AI request about the item carries them.
|
|
637
|
+
* Instructions a run of questions shares go in an item group's text stimulus.
|
|
638
|
+
*/
|
|
639
|
+
instructions?: string;
|
|
605
640
|
/** The question stem presented to the learner, as plain text. */
|
|
606
641
|
question: string;
|
|
607
642
|
/**
|
|
@@ -739,6 +774,14 @@ interface GapSelectData {
|
|
|
739
774
|
id: string;
|
|
740
775
|
/** Human-readable title used in xAPI statements and error boundaries. */
|
|
741
776
|
title: string;
|
|
777
|
+
/**
|
|
778
|
+
* Optional instructions shown to the learner, as plain text: the task, read
|
|
779
|
+
* before the passage and never part of it ("Complete the sentence. Use ONE
|
|
780
|
+
* word."). Every AI request about the item carries them. A `{{id}}`
|
|
781
|
+
* placeholder here is refused: gaps live in the passage only. Instructions
|
|
782
|
+
* a run of questions shares go in an item group's text stimulus.
|
|
783
|
+
*/
|
|
784
|
+
instructions?: string;
|
|
742
785
|
/** Passage text containing `{{gap_id}}` placeholders. */
|
|
743
786
|
passage: string;
|
|
744
787
|
/**
|
|
@@ -796,6 +839,14 @@ interface FillInTheBlanksData {
|
|
|
796
839
|
id: string;
|
|
797
840
|
/** Human-readable title used in xAPI statements and error boundaries. */
|
|
798
841
|
title: string;
|
|
842
|
+
/**
|
|
843
|
+
* Optional instructions shown to the learner, as plain text: the task, read
|
|
844
|
+
* before the passage and never part of it ("Complete the sentence. Use ONE
|
|
845
|
+
* word."). Every AI request about the item carries them. A `{{id}}`
|
|
846
|
+
* placeholder here is refused: blanks live in the passage only. Instructions
|
|
847
|
+
* a run of questions shares go in an item group's text stimulus.
|
|
848
|
+
*/
|
|
849
|
+
instructions?: string;
|
|
799
850
|
/** Passage text containing `{{blank_id}}` placeholders. */
|
|
800
851
|
passage: string;
|
|
801
852
|
/**
|
|
@@ -1503,8 +1554,6 @@ interface InteractionEvent {
|
|
|
1503
1554
|
/** Additional event-specific data. */
|
|
1504
1555
|
payload: Record<string, unknown>;
|
|
1505
1556
|
}
|
|
1506
|
-
//#endregion
|
|
1507
|
-
//#region src/types/authoring.d.ts
|
|
1508
1557
|
/**
|
|
1509
1558
|
* Why a draft is not an activity yet.
|
|
1510
1559
|
*
|
|
@@ -1579,8 +1628,6 @@ interface DraftContext {
|
|
|
1579
1628
|
*/
|
|
1580
1629
|
newId: () => string;
|
|
1581
1630
|
}
|
|
1582
|
-
//#endregion
|
|
1583
|
-
//#region src/types/item-group.d.ts
|
|
1584
1631
|
/** What a stimulus primarily is. Drives validation and layout, never scoring. */
|
|
1585
1632
|
type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
|
|
1586
1633
|
/**
|
|
@@ -1590,8 +1637,8 @@ type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
|
|
|
1590
1637
|
* section alike, and needs no blueprint to exist.
|
|
1591
1638
|
*
|
|
1592
1639
|
* Learner-visible by definition: the point of a stimulus is that the learner
|
|
1593
|
-
* reads or hears it. The
|
|
1594
|
-
* `redactItemGroup` removes.
|
|
1640
|
+
* reads or hears it. The exceptions are `transcript` and `script`, author
|
|
1641
|
+
* assets that `redactItemGroup` removes.
|
|
1595
1642
|
*/
|
|
1596
1643
|
interface Stimulus {
|
|
1597
1644
|
id: string;
|
|
@@ -1615,6 +1662,12 @@ interface Stimulus {
|
|
|
1615
1662
|
* never shown to the learner. Removed by `redactItemGroup`.
|
|
1616
1663
|
*/
|
|
1617
1664
|
transcript?: string;
|
|
1665
|
+
/**
|
|
1666
|
+
* Author-only: the recording as speaker turns, for casting voices. Removed
|
|
1667
|
+
* by `redactItemGroup`, as `transcript` is. A stimulus keeps both here, not
|
|
1668
|
+
* on its `media`; `transcriptOf` reads these first.
|
|
1669
|
+
*/
|
|
1670
|
+
script?: ScriptTurn[];
|
|
1618
1671
|
/** BCP 47 language tag of the material, when it differs from the items'. */
|
|
1619
1672
|
locale?: string;
|
|
1620
1673
|
/** Source credit, shown to the learner after the material. */
|
|
@@ -1793,8 +1846,6 @@ interface SequenceSlot<TItem = ActivityData> {
|
|
|
1793
1846
|
/** Present when the slot comes from an item group. */
|
|
1794
1847
|
group?: SequenceSlotGroup;
|
|
1795
1848
|
}
|
|
1796
|
-
//#endregion
|
|
1797
|
-
//#region src/types/ai.d.ts
|
|
1798
1849
|
/**
|
|
1799
1850
|
* What an author allows AI to do for one item. Absent, or a feature left out,
|
|
1800
1851
|
* leaves the choice to the deployment. `false` switches a feature off for this
|
|
@@ -1862,6 +1913,11 @@ interface AiOptionFact {
|
|
|
1862
1913
|
}
|
|
1863
1914
|
interface AiMultipleChoiceFacts extends AiFactsBase {
|
|
1864
1915
|
activityType: 'multiple-choice';
|
|
1916
|
+
/**
|
|
1917
|
+
* The item's instructions, when it has any: the task the learner reads
|
|
1918
|
+
* before the question. They say what to do, and are never part of the text answered.
|
|
1919
|
+
*/
|
|
1920
|
+
instructions?: string;
|
|
1865
1921
|
question: string;
|
|
1866
1922
|
mode: 'single' | 'multi';
|
|
1867
1923
|
options: AiOptionFact[];
|
|
@@ -1884,6 +1940,11 @@ interface AiBlankFact {
|
|
|
1884
1940
|
}
|
|
1885
1941
|
interface AiFillInTheBlanksFacts extends AiFactsBase {
|
|
1886
1942
|
activityType: 'fill-in-the-blanks';
|
|
1943
|
+
/**
|
|
1944
|
+
* The item's instructions, when it has any: the task the learner reads
|
|
1945
|
+
* before the passage. They say what to do, and are never part of the text answered.
|
|
1946
|
+
*/
|
|
1947
|
+
instructions?: string;
|
|
1887
1948
|
/** The passage, each blank written as `[1]`, `[2]`… in passage order. */
|
|
1888
1949
|
passage: string;
|
|
1889
1950
|
blanks: AiBlankFact[];
|
|
@@ -1906,6 +1967,11 @@ interface AiGapFact {
|
|
|
1906
1967
|
}
|
|
1907
1968
|
interface AiGapSelectFacts extends AiFactsBase {
|
|
1908
1969
|
activityType: 'gap-select';
|
|
1970
|
+
/**
|
|
1971
|
+
* The item's instructions, when it has any: the task the learner reads
|
|
1972
|
+
* before the passage. They say what to do, and are never part of the text answered.
|
|
1973
|
+
*/
|
|
1974
|
+
instructions?: string;
|
|
1909
1975
|
/** The passage, each gap written as `[1]`, `[2]`… in passage order. */
|
|
1910
1976
|
passage: string;
|
|
1911
1977
|
gaps: AiGapFact[];
|
|
@@ -2606,6 +2672,5 @@ interface AiVideoDraft {
|
|
|
2606
2672
|
/** What `critiqueItemGroupDraft` says of it. */
|
|
2607
2673
|
findings: ItemFinding[];
|
|
2608
2674
|
}
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
//# sourceMappingURL=ai-BYryFkF9.d.cts.map
|
|
2675
|
+
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 };
|
|
2676
|
+
//# sourceMappingURL=ai-B1wYrqcB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-B1wYrqcB.d.ts","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":";;;;;;;;UAQiB;;EAEf;;EAEA;;;;;;;EAOA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;EAKA;;;;;;;;;;;;UAae;EACf;EACA;;;;;;iBAmDc,oBAAoB,WAAW,WAAW;;;;;;;;;;;iBAoC1C,UACd,eACA,sCACA,SAAQ,kBACP;;;;;;KCrHS;;;;;;;;;KAUA;;UAGK;EACf,MAAM;;EAEN;;EAEA;;EAEA;;;UAIe;EACf;EACA;EACA;;;UAIe;;EAEf;;;;;;EAMA;;;;;;;;;;;;;;;;EAgBA;;EAEA;;EAEA;;;;;;EAMA;;EAEA;;;;;;;EAOA;;;;;;;UAQe;;EAEf;;EAEA;;EAEA;;EAEA;;;;;;;;;;;;;;;;;;KAmBU;;UASK;;EAEf;;EAEA,SAAS;;EAET;IAAgB;IAAoB;;;;UAIrB;;EAEf;;EAEA;EACA;;EAEA;IAAU;IAAe;;;EAEzB;;;;;;;;;;;;;UAce;EACf;EACA;EACA;;EAEA;;EAEA,WAAW;;;;;;EAMX,UAAU;;EAEV,cAAc;;EAEd;;EAEA;;EAEA;;EAEA;EACA,SAAS;EACT,QAAQ;;EAER;;EAEA,UAAU;;;;;;UCrMK;EACf;;EAEA;EACA;;IAEE,OAAO;;IAEP,cAAc;;IAEd;;IAEA;;IAEA;;IAEA,UAAU;MAAQ;MAAY,cAAc;;IAC5C,aAAa;;;;;;;UAQA;EACf;;EAEA;;EAEA;;EAEA;;IAEE;;IAEA;;;;UAKa;;EAEf;;EAEA,SAAS;;;UAIM;;EAEf;;EAEA;;EAEA;;EAEA;;;UAIe;EACf,QAAQ;;EAER;;EAEA;;EAEA;;EAEA;EACA,aAAa;;;UAIE;;EAEf,SAAS;;EAET,WAAW;;EAEX,WAAW;;EAEX,QAAQ;;;UAIO;;EAEf;;EAEA;;EAEA,oBAAoB;EACpB,aAAa;;;UAIE;;EAEf;EACA,OAAO;EACP,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;;EAEV;EACA;;;;;;UAOe;;EAEf;;EAEA;IAAQ;IAAe;IAAkB;;IAAuB;IAAgB;;;;;;;;;;;;;;;;;EAgBhF,uBAAuB;EACvB,OAAO;;EAEP,WAAW,KAAK;;;UAID;;EAEf,WAAW;;EAEX;;EAEA;;EAEA;;;;;;;;;;;;;;;;;UCtIe;EACf,mBAAmB;EACnB,sBAAsB;EACtB,oBAAoB;EACpB,cAAc;EACd,WAAW;EACX,cAAc;;;;;;KAOJ,qBAAqB;;KAGrB,eAAe,gBAAgB;;UAG1B;EACf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;UAOe;;EAEf;;;;;EAKA;;EAEA;;EAEA;;;;;;;EAOA,SAAS;;EAET;;;;;;EAMA,WAAW;;;;;;;EAOX;;;;;;;EAOA,SAAS;;;;;;;;;UAUM;;EAEf;;EAEA;;;;;;;;;;KAWU;;;;;;;;;;;;UAaK;;;;;;EAMf;;;;;;;;;;;EAWA;;EAEA;;EAEA;;EAEA,qBAAqB;;;;;;;UAQN;;EAEf;;EAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkCe;;EAEf;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;EAEA,SAAS;;UAGM;;EAEf;;;;;;;;;EASA;;EAEA;;EAEA;;EAEA,QAAQ;;;UAIO;EACf;EACA;;EAEA;;EAEA;;;;;;;EAOA;;EAEA;;;;;;;;EAQA;;EAEA;;EAEA,SAAS;;EAET;;EAEA,QAAQ;;EAER,WAAW;;EAEX;;;;;;;;;;EAUA;;EAEA;;EAEA;;EAEA;;EAEA,KAAK;;;UAIU;;EAEf;;EAEA;;;;;;;EAOA;;;;;;;EAOA;;;;;;;;EAQA,QAAQ;;EAER;;EAEA;;;;UAKe;;EAEf;;EAEA;;;;;;;;;;;UAYe;;EAEf;;EAEA,SAAS;;;;;;;;;;UAWM;;EAEf;;EAEA,UAAU;;EAEV;;EAEA;;EAEA;;;;;;;;;;;;;;;UAgBe;EACf;EACA;;EAEA;;EAEA;;;;;;;;EAQA;;EAEA;;;;;;;EAOA;;EAEA,MAAM;;EAEN,QAAQ;;EAER;;;;;;;;;;;;EAYA;;;;;;;;EAQA;;EAEA,QAAQ;;EAER,WAAW;;EAEX;;EAEA;;EAEA;;EAEA;;EAEA,KAAK;;UAGU;EACf;EACA;;EAEA;;EAEA;;;;;;;;EAQA;;EAEA;;;;;;EAMA;;EAEA,QAAQ;;EAER;;EAEA,QAAQ;;EAER,WAAW;;EAEX;;EAEA;;EAEA;;EAEA;;EAEA,KAAK;;;;;;;UAQU;;EAEf;;EAEA;;;UAIe;;EAEf;;EAEA;;EAEA;;;;;;;;;;;;;;EAcA,SAAS;;;UAIM;;EAEf;;EAEA,UAAU;;;;;;;;;;;;UAaK;EACf;EACA;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;EAEA;;EAEA;;EAEA,SAAS;;EAET;;EAEA,QAAQ;;EAER,WAAW;;EAEX;;EAEA;;EAEA;;EAEA;;EAEA,KAAK;;;;;;;;;UAUU;EACf;;EAEA;;EAEA;;;;;;;;;;UAWe;;EAEf;;EAEA;;;UAIe;;EAEf,eAAe;;;;;;;;;;;;;;;;UAiBA;EACf;EACA;;EAEA;;;;;EAKA;;;;;;EAMA;;;;;;;;EAQA;;;;;;;EAOA,QAAQ;;EAER,YAAY;;;;;;;EAOZ;IAAU;;;EAEV,YAAY;;EAEZ,WAAW;;EAEX;;EAEA;;EAEA;;EAEA;;EAEA,KAAK;;;KAIK;;UAGK;EACf,MAAM;;;;;EAKN;;;;;;;UAQe;;EAEf;;EAEA;;EAEA;;;;;;;;UASe;EACf;;EAEA;;EAEA;;;;;;;;;;;UAYe;EACf;EACA;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;;;;EAKA;;EAEA,QAAQ;;EAER,YAAY;;EAEZ,WAAW;;;;;;;EAOX;IAAW,YAAY;;;EAEvB;;EAEA,WAAW;;EAEX;;EAEA;;EAEA,KAAK;;;;;;UAOU;EACf,mBAAmB;EACnB,sBAAsB;EACtB,oBAAoB;EACpB,cAAc;EACd,WAAW;EACX,cAAc;;;KAIJ,kBAAkB,yBAAyB;;UAGtC;EACf;;EAEA;;;;;;;;EAQA;;;UAIe;EACf;;EAEA,SAAS;;;;;;;;EAQT;;;;;;;;;;;UAYe;EACf;;EAEA,YAAY;;;;;;;;EAQZ;;;UAIe;EACf;;EAEA;;EAEA;;;;;;;;;;UAWe;EACf;;EAEA;;;;;EAKA;;;;;;;UAQe;EACf;;EAEA;EACA;;;;;;UAOe;EACf;;EAEA,WAAW;;EAEX;;;;;;;;;;KAWU;;UAGK;;EAEf;;;;;;;;;;;;EAYA,SAAS;;EAET;;EAEA;;;;;EAKA;;;;;;;;;EASA;;;UAIe;;EAEf;;EAEA;;EAEA;;;;;;EAMA;;EAEA,SAAS;;;;;;;;UASM;;EAEf;;EAEA;GACC;;;;;;;;;;;;;;;;;;;;;;;KAwBS;;;;;;;KAYA;EAEN;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,SAAS;;EAGT;;EAEA,QAAQ;;EAER;;EAEA,UAAU;;;;;;EAMV,gBAAgB;;;;;;;EAOhB,eAAe;;EAGf;;;;;;EAMA,OAAO;;EAEP;EACA;EACA;;EAEA;;EAGA;;EAEA;;EAEA;;;;;EAKA;;;UAIW;;EAEf;;EAEA;;EAEA;;;;;;;KAQU,iBAAiB;EACvB;EAAe,MAAM;;EACrB;EAAgB,QAAQ;;;UAGb;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA,eAAe;;;;;;;KAQL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyGK;;EAEf,MAAM;;EAEN;;EAEA;;EAEA,SAAS;;;;;;;;;;;;KC7sCC;;;;;UAMK,mBAAmB;EAClC,UAAU;;;UAIK,cAAc;EAC7B;;EAEA,MAAM;;EAEN,QAAQ;;;;;;;UAQO;EACf;EACA,QAAQ;;;;;;;;;;KAWE,sBAAsB,KAAK,cAAc,KAAK;;;;;;;;;;;;KAa9C;;;;;;UAOK,oBAAoB;EACnC,UAAU;;;UAIK;;;;;;;EAOf;;;KC9EU;;;;;;;;;;;UAYK;EACf;EACA,MAAM;;EAEN;;;;;EAKA;;;;;EAKA;;EAEA,QAAQ;;;;;EAKR;;;;;;EAMA,SAAS;;EAET;;EAEA;;;;;;;UAQe;;EAEf;;;;;;EAMA;;;;;EAKA;;EAEA;;;;;EAKA;;;UAIe;;EAEf;;EAEA;;;;;;;;;;UAWe;EACf,MAAM;EACN,WAAW;;;;;;EAMX;;;;;;;;UASe;EACf;;EAEA;;;;;EAKA;;;;;;;;;;;;;UAce,UAAU,QAAQ;EACjC;EACA;EACA;EACA;;;;;;;EAOA;EACA,UAAU;;;;;;;;;;EAUV,QAAQ;IAAU;;;;;;;EAMlB;;;;;;;;EAQA,WAAW;;;;;;;;;;;;;KAcD,cAAc,QAAQ,iBAAiB;EAAU;KAAsB,UAAU;;UAG5E;EACf;EACA;EACA,UAAU;;EAEV;;EAEA;;EAEA,WAAW;;EAEX,MAAM;;;UAIS,aAAa,QAAQ;;;;;;;;;;;;;;;;;;EAkBpC;;EAEA;EACA,UAAU;;EAEV,QAAQ;;;;;;;;;;;UCvMO;;;;;;EAMf;;EAEA;;;;;;;;UASe;WACN;WACA;WACA;WACA;WACA;WACA;;;KAIC;;KAGA;;;;;UAUK;EACf;EACA;EACA;EACA,UAAU;;;KAIA;UAEF;EACR;EACA;;EAEA;;;UAIe;EACf;EACA;EACA;;EAEA;;EAEA;;UAGe,8BAA8B;EAC7C;;;;;EAKA;EACA;EACA;EACA,SAAS;;;UAIM;EACf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe,+BAA+B;EAC9C;;;;;EAKA;;EAEA;EACA,QAAQ;;;UAIO;EACf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe,yBAAyB;EACxC;;;;;EAKA;;EAEA;EACA,MAAM;;;UAIS;;EAEf;;EAEA;EACA;;UAGe,yBAAyB;EACxC;;EAEA;;EAEA;;EAEA,OAAO;;;;;;KAOG,cACR,wBACA,yBACA,mBACA;;;;;;;UAQa;WACN;WACA;;;;;;;;;UAUM;;EAEf,MAAM;;EAEN;;;;;;EAMA;;EAEA;;EAEA;IAAU,MAAM;IAAuB;;;EAEvC;;EAEA;;;;;;;UAQe;EACf;EACA,OAAO;EACP,OAAO;;EAEP,WAAW;;EAEX;;;;;;;UAQe;EACf;EACA,OAAO;;EAEP;;EAEA;;EAEA,WAAW;EACX;;;UAIe;;EAEf;;EAEA;;EAEA;;;;;;;UAQe;EACf;;EAEA,UAAU;EACV,aAAa;;;;;;;;;;;EAWb,QAAQ;;;;;;;;;;;;;;;;;KAkBE;;UAeK;EACf;EACA;EACA;;;;;;UAOe;EACf;EACA;EACA;;EAEA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;;EAEA,QAAQ;;EAER;;;;;;UAOe;EACf;EACA,OAAO;;EAEP;;EAEA;;;;;EAKA,WAAW;;EAEX;;;;;;;;UASe;EACf;EACA;EACA;;EAEA;EACA;IAAU;IAAe;;;;;;;KAOf,uBAAuB,KAAK;EAA8B;;;;;;UAMrD;;EAEf;EACA,cAAc;EACd,WAAW;EACX,aAAa;EACb,QAAQ;;;;;UAMO;EACf;;;;;EAKA,aAAa;;EAEb,UAAU;;;;;;;;;;;EAWV;EACA,aAAa;EACb,QAAQ;;;UAMO;EACf;EACA;EACA;;;;;EAKA;IAAU;IAAe;;;;;;;UAOV;EACf;EACA;EACA;;EAEA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;;EAEA,QAAQ;;EAER;;;;;;UAOe;EACf;EACA,OAAO;;EAEP,WAAW;;EAEX;;;;;;;;;;;;;;;;KAiBU;;UASK;;EAEf;;EAEA;;;;;EAKA;;EAEA;EACA;;;;;;;UAQe;;EAEf,UAAU;;EAEV;;EAEA,aAAa;;EAEb;;EAEA;EACA,aAAa;EACb,QAAQ;;;UAMO;;EAEf;;EAEA;;EAEA;IAAY;IAAgB;;;;UAIb;;EAEf;;EAEA;;EAEA;EACA;;EAEA;;EAEA,SAAS;;;;;;;UAQM;EACf;EACA;EACA;;EAEA;EACA;EACA;;EAEA;;EAEA;;EAEA;IAAU;IAAmB;IAAkB;IAAuB;;EACtE,OAAO;;;;;;UAOQ;EACf;EACA,OAAO;;EAEP;IAAU;IAAe;IAAkB;;;EAE3C;;;UAIe;;EAEf;;EAEA;;;;;EAKA;IAAU;IAAkB;;;;UAIb;;EAEf;EACA,QAAQ;EACR,aAAa;EACb,QAAQ;;;UAIO;EACf;;;;;EAKA,QAAQ;IAAmB;;EAC3B,aAAa;EACb,QAAQ;;;;;;;;;;;;;;;;;KAoBE;;UAYK;EACf;EACA;;;;;;;UAQe;EACf;EACA;IACE;;IAEA,MAAM,SAAS;;IAEf,QAAQ;;;;;IAKR;MAAY;MAAgB;MAAc;;;IAE1C;;;EAGF;;;UAIe;;EAEf;EACA,MAAM;;EAEN;;EAEA;;;UAIe;EACf,UAAU;EACV,aAAa;EACb,QAAQ;;;;;;;UAQO,0BAA0B;EACzC;EACA;;;UAIe;EACf,UAAU;EACV,aAAa;EACb,QAAQ;;;;;;KASE;;;;;;KAaA;EACN;EAAgC;;EAChC;EAAkB;IAAQ;IAAe;IAAa;;;;UAG3C;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;;;;;;;KAUU,kBAAkB,QAAQ,OAAO,aAAa,SAAS;;;;;;UAOlD;EACf;EACA;;;;;;IAME,eAAe;IACf;MACM;MAAgC;;MAChC;MAAkB,UAAU;;;IAElC;;IAEA;;IAEA;;IAEA;;;;;;;;;EASF,OAAO,SAAS;;EAEhB,WAAW;;;;;;EAMX;IACE;IACA,OAAO,SAAS;IAChB,UAAU;;;;UAKG;;EAEf;EACA,MAAM;;EAEN,OAAO;;EAEP,YAAY;;EAEZ,UAAU;;;;;;EAMV;;;;;;EAMA;IAAS;IAAe;;;EAExB,WAAW,SAAS;;;UAIL;;EAEf,QAAQ;;EAER,UAAU;EACV,aAAa;EACb,QAAQ;;;KAIE;EACN;EAAU,aAAa;EAAc,QAAQ;;EAC7C;EAAW,UAAU;EAAW;;;UAGrB;;EAEf,QAAQ;;EAER,UAAU;;EAEV,OAAO;;;;;;;;UASQ;;EAEf,OAAO;;EAEP,YAAY;;EAEZ,UAAU"}
|
package/dist/ai-check.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_ai_writing = require("./ai-writing-
|
|
3
|
-
const require_scoring = require("./scoring-
|
|
4
|
-
|
|
2
|
+
const require_ai_writing = require("./ai-writing-DrPTV3R2.cjs");
|
|
3
|
+
const require_scoring = require("./scoring-CtkCFyFT.cjs");
|
|
4
|
+
// src/ai-check/cases.ts
|
|
5
5
|
/**
|
|
6
6
|
* The items the cases are built from. Small, ordinary language-course content
|
|
7
7
|
* — and deliberately awkward in the places a model slips:
|
|
@@ -18,6 +18,8 @@ const require_scoring = require("./scoring-lKQVYsxy.cjs");
|
|
|
18
18
|
* - questions in item groups: a reading passage that prints a question's
|
|
19
19
|
* answer, which a hint must point to without quoting, and a run of blanks
|
|
20
20
|
* whose instructions only the group states;
|
|
21
|
+
* - the same blank served alone, as an adaptive test serves it, whose task
|
|
22
|
+
* only its own instructions state;
|
|
21
23
|
* - essays to grade on a rubric of three criteria, two judged on levels and
|
|
22
24
|
* one on a score, so a grade that drops a criterion or leaves a scale is
|
|
23
25
|
* caught.
|
|
@@ -181,6 +183,12 @@ const formationPart = {
|
|
|
181
183
|
},
|
|
182
184
|
items: [formation]
|
|
183
185
|
};
|
|
186
|
+
/** The same blank served alone, as an adaptive test serves it: the task is in its own instructions. */
|
|
187
|
+
const formationAlone = {
|
|
188
|
+
...formation,
|
|
189
|
+
id: "ai-check-formation-alone",
|
|
190
|
+
instructions: "Use the word in capitals at the end of the sentence to form a word that fits the gap."
|
|
191
|
+
};
|
|
184
192
|
const weekend = {
|
|
185
193
|
schemaVersion: "1.0",
|
|
186
194
|
type: "written-response",
|
|
@@ -706,6 +714,7 @@ function aiCheckCases() {
|
|
|
706
714
|
hintCase("gap-hint-2", "Asked again with the first gap wrong", landscape, picked({ g1: "campo" }), ["Piensa en la forma del terreno."]),
|
|
707
715
|
hintCase("mc-reading-hint", "Has not answered a question whose answer its group's passage prints", springTides, chose([]), [], tides),
|
|
708
716
|
hintCase("fib-formation-hint", "A word-formation blank, under the instructions its group gives", formation, typed({}), [], formationPart),
|
|
717
|
+
hintCase("fib-instructions-hint", "The same blank served alone, under its own instructions", formationAlone, typed({})),
|
|
709
718
|
writingCase("writing-mistakes", "A first draft with tense, article and agreement mistakes", "Last weekend I go to the market and buyed a apple. My friends was there too, so we don't go home early. Then I go to the cinema."),
|
|
710
719
|
writingCase("writing-clean", "A first draft with no mistakes to correct", "Last weekend I went to the market and bought an apple. My friends were there too, so we stayed until the evening. Then we went to the cinema."),
|
|
711
720
|
writingCase("writing-revised", "A second draft that fixed some mistakes", "Last weekend I went to the market and bought a apple. My friends was there too, so we didn't go home early.", ["Check your past tenses: \"go\" and \"buyed\" should be past forms."]),
|
|
@@ -793,8 +802,7 @@ function aiCheckCases() {
|
|
|
793
802
|
gradingCase("grading-in-spanish", "The essay with mistakes, with comments asked for in Spanish", "Last weekend I go to the market and buyed a apple. My friends was there too, so we don't go home early. Then I go to the cinema.", { learnerLocale: "es" })
|
|
794
803
|
];
|
|
795
804
|
}
|
|
796
|
-
|
|
797
|
-
//#region src/ai-check/index.ts
|
|
805
|
+
// src/ai-check/index.ts
|
|
798
806
|
/**
|
|
799
807
|
* A test kit for the prompts behind your AI ports.
|
|
800
808
|
*
|
|
@@ -1037,7 +1045,6 @@ function formatAiCheckReport(report) {
|
|
|
1037
1045
|
}
|
|
1038
1046
|
return lines.join("\n");
|
|
1039
1047
|
}
|
|
1040
|
-
//#endregion
|
|
1041
1048
|
exports.aiCheckCases = aiCheckCases;
|
|
1042
1049
|
exports.formatAiCheckReport = formatAiCheckReport;
|
|
1043
1050
|
exports.runAiCheck = runAiCheck;
|