@intellectif/lk-core 1.3.0 → 1.4.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 +14 -0
- package/dist/{ai-B222dtHH.d.ts → ai-CnmLPMzd.d.cts} +265 -2
- package/dist/ai-CnmLPMzd.d.cts.map +1 -0
- package/dist/{ai-B222dtHH.d.cts → ai-CnmLPMzd.d.ts} +265 -2
- package/dist/ai-CnmLPMzd.d.ts.map +1 -0
- package/dist/ai-check.cjs +101 -8
- package/dist/ai-check.cjs.map +1 -1
- package/dist/ai-check.d.cts +1 -1
- package/dist/ai-check.d.cts.map +1 -1
- package/dist/ai-check.d.ts +1 -1
- package/dist/ai-check.d.ts.map +1 -1
- package/dist/ai-check.js +101 -8
- package/dist/ai-check.js.map +1 -1
- package/dist/{ai-writing-CCBjTOM3.js → ai-writing-CPpH9Qxq.js} +126 -21
- package/dist/ai-writing-CPpH9Qxq.js.map +1 -0
- package/dist/{ai-writing-DCVkv4Zj.cjs → ai-writing-G6tnCGzw.cjs} +114 -3
- package/dist/ai-writing-G6tnCGzw.cjs.map +1 -0
- package/dist/{index-BWPRPIXL.d.ts → index-2nigSf4N.d.cts} +3 -217
- package/dist/index-2nigSf4N.d.cts.map +1 -0
- package/dist/{index-O4_ExlAD.d.cts → index-B54baFUA.d.ts} +3 -217
- package/dist/index-B54baFUA.d.ts.map +1 -0
- package/dist/{index-Dyu66R4-.d.cts → index-BAfEHCnD.d.cts} +2 -2
- package/dist/{index-Dyu66R4-.d.cts.map → index-BAfEHCnD.d.cts.map} +1 -1
- package/dist/{index-CXyOV8sm.d.cts → index-BqMXWuNC.d.cts} +2 -2
- package/dist/{index-CXyOV8sm.d.cts.map → index-BqMXWuNC.d.cts.map} +1 -1
- package/dist/{index-UGxRSopE.d.ts → index-CVWvymVb.d.ts} +2 -2
- package/dist/{index-UGxRSopE.d.ts.map → index-CVWvymVb.d.ts.map} +1 -1
- package/dist/{index-CegM8o15.d.ts → index-CcHDTxIZ.d.ts} +2 -2
- package/dist/{index-CegM8o15.d.ts.map → index-CcHDTxIZ.d.ts.map} +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +35 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +35 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/schemas.d.cts +1 -1
- package/dist/schemas.d.ts +1 -1
- package/dist/scoring.d.cts +2 -2
- package/dist/scoring.d.ts +2 -2
- package/dist/xapi.d.cts +1 -1
- package/dist/xapi.d.ts +1 -1
- package/package.json +1 -1
- package/dist/ai-B222dtHH.d.cts.map +0 -1
- package/dist/ai-B222dtHH.d.ts.map +0 -1
- package/dist/ai-writing-CCBjTOM3.js.map +0 -1
- package/dist/ai-writing-DCVkv4Zj.cjs.map +0 -1
- package/dist/index-BWPRPIXL.d.ts.map +0 -1
- package/dist/index-O4_ExlAD.d.cts.map +0 -1
|
@@ -1,218 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
//#region src/types/item-group.d.ts
|
|
3
|
-
/** What a stimulus primarily is. Drives validation and layout, never scoring. */
|
|
4
|
-
type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
|
|
5
|
-
/**
|
|
6
|
-
* Shared material that several items refer to: a reading passage, a
|
|
7
|
-
* recording, a chart. Modelled as CONTENT — it lives inside the item group
|
|
8
|
-
* that carries it — so it works in a lesson quiz, a sequence and an exam
|
|
9
|
-
* section alike, and needs no blueprint to exist.
|
|
10
|
-
*
|
|
11
|
-
* Learner-visible by definition: the point of a stimulus is that the learner
|
|
12
|
-
* reads or hears it. The one exception is `transcript`, an author asset that
|
|
13
|
-
* `redactItemGroup` removes.
|
|
14
|
-
*/
|
|
15
|
-
interface Stimulus {
|
|
16
|
-
id: string;
|
|
17
|
-
kind: StimulusKind;
|
|
18
|
-
/** Optional heading (a passage title). */
|
|
19
|
-
title?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Plain-text body: the passage itself, or short instructions above media.
|
|
22
|
-
* Required for `text` and `mixed`.
|
|
23
|
-
*/
|
|
24
|
-
body?: string;
|
|
25
|
-
/**
|
|
26
|
-
* Optional sanitised rich-HTML sidecar of `body`. Requires `body`, which is
|
|
27
|
-
* the accessible fallback rendered when no sanitiser is supplied.
|
|
28
|
-
*/
|
|
29
|
-
bodyHtml?: string;
|
|
30
|
-
/** The recording, video or image. Required for `audio`, `video`, `image` and `mixed`. */
|
|
31
|
-
media?: ActivityMedia;
|
|
32
|
-
/**
|
|
33
|
-
* Author-only transcript of `media` — for item generation and grading,
|
|
34
|
-
* never shown to the learner. Removed by `redactItemGroup`.
|
|
35
|
-
*/
|
|
36
|
-
transcript?: string;
|
|
37
|
-
/** BCP 47 language tag of the material, when it differs from the items'. */
|
|
38
|
-
locale?: string;
|
|
39
|
-
/** Source credit, shown to the learner after the material. */
|
|
40
|
-
attribution?: string;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* A quiz inside an interactive video: one moment of the video, and the
|
|
44
|
-
* questions shown there. The video pauses when playback reaches `at`, and the
|
|
45
|
-
* questions are shown one at a time, in `itemIds` order.
|
|
46
|
-
*/
|
|
47
|
-
interface TimelineCue {
|
|
48
|
-
/** Unique within the timeline. Names the quiz in events, the contents panel and drafts. */
|
|
49
|
-
id: string;
|
|
50
|
-
/**
|
|
51
|
-
* Seconds from the start of the video: finite and 0 or more. The SDK never
|
|
52
|
-
* reads the video, so it cannot check this against the duration: a quiz at
|
|
53
|
-
* or past the end opens when the video ends.
|
|
54
|
-
*/
|
|
55
|
-
at: number;
|
|
56
|
-
/**
|
|
57
|
-
* `id`s of items in this group, in the order the quiz shows them. Non-empty.
|
|
58
|
-
* Every item of the group belongs to exactly one quiz.
|
|
59
|
-
*/
|
|
60
|
-
itemIds: string[];
|
|
61
|
-
/** Optional heading shown above the questions. At most 120 characters. */
|
|
62
|
-
title?: string;
|
|
63
|
-
/**
|
|
64
|
-
* Every question must be answered (practice) or submitted (exam) before
|
|
65
|
-
* playback may pass `at`. Default false.
|
|
66
|
-
*/
|
|
67
|
-
required?: boolean;
|
|
68
|
-
}
|
|
69
|
-
/** A titled section of the video. */
|
|
70
|
-
interface TimelineChapter {
|
|
71
|
-
/** Seconds from the start: finite, 0 or more, strictly increasing across the list. */
|
|
72
|
-
at: number;
|
|
73
|
-
/** Non-empty after trimming; at most 120 characters. */
|
|
74
|
-
title: string;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* The arrangement that turns an item group with a video stimulus into an
|
|
78
|
-
* interactive video: when each quiz opens, the video's chapters, and how far
|
|
79
|
-
* ahead a learner may seek.
|
|
80
|
-
*
|
|
81
|
-
* It lives on the container rather than inside `stimulus` because it describes
|
|
82
|
-
* how THESE questions are arranged over the material, not the material itself.
|
|
83
|
-
*/
|
|
84
|
-
interface MediaTimeline {
|
|
85
|
-
cues: TimelineCue[];
|
|
86
|
-
chapters?: TimelineChapter[];
|
|
87
|
-
/**
|
|
88
|
-
* `free` (default): seek anywhere. `no-skip-ahead`: rewind freely, never past
|
|
89
|
-
* the furthest point reached. Either way, playback never passes a `required`
|
|
90
|
-
* quiz that is not finished.
|
|
91
|
-
*/
|
|
92
|
-
navigation?: 'free' | 'no-skip-ahead';
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Where a learner stands in an interactive video, stored by the host so the
|
|
96
|
-
* video can resume. Kept apart from `AttemptState`, which holds answers by slot
|
|
97
|
-
* and drops fields it does not know. Read it back through
|
|
98
|
-
* `readMediaProgress`, never directly.
|
|
99
|
-
*/
|
|
100
|
-
interface MediaProgress {
|
|
101
|
-
progressVersion: '1.0';
|
|
102
|
-
/** Seconds: where playback last stood. */
|
|
103
|
-
at: number;
|
|
104
|
-
/**
|
|
105
|
-
* Seconds: the furthest point reached. Decides how far `no-skip-ahead` lets
|
|
106
|
-
* the learner seek, and how much of the transcript it shows.
|
|
107
|
-
*/
|
|
108
|
-
furthest: number;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* One stimulus serving several items. Two rules, both taken from observed
|
|
112
|
-
* failures: a group is SHUFFLE-ATOMIC (shuffling a sequence moves the group
|
|
113
|
-
* as one block — interleaving two passages' questions is the defect), and its
|
|
114
|
-
* stimulus is presented persistently alongside every item, never behind a
|
|
115
|
-
* toggle the learner must reopen per question.
|
|
116
|
-
*
|
|
117
|
-
* Generic over the item type so one shape describes a group of full activity
|
|
118
|
-
* data (authoring, server) and a group of `redact()` projections (client)
|
|
119
|
-
* without a cast at every boundary.
|
|
120
|
-
*/
|
|
121
|
-
interface ItemGroup<TItem = ActivityData> {
|
|
122
|
-
schemaVersion: '1.0';
|
|
123
|
-
type: 'item-group';
|
|
124
|
-
id: string;
|
|
125
|
-
title?: string;
|
|
126
|
-
/**
|
|
127
|
-
* Stable identity for this entry's slots, independent of where it sits in
|
|
128
|
-
* the array. See {@link SequenceSlot.slotId}: without one, inserting a
|
|
129
|
-
* question above this group re-maps every slot id beneath it, and stored
|
|
130
|
-
* grades quietly start naming different questions.
|
|
131
|
-
*/
|
|
132
|
-
slotKey?: string;
|
|
133
|
-
stimulus: Stimulus;
|
|
134
|
-
/**
|
|
135
|
-
* The items, in authored order. Non-empty; ids unique within the group; no
|
|
136
|
-
* nested groups.
|
|
137
|
-
*
|
|
138
|
-
* An item may declare its own `slotKey`, for the same reason an entry can:
|
|
139
|
-
* it pins the item's identity within the group (`"reading.q1"` rather than
|
|
140
|
-
* `"reading.0"`), so inserting a question into a published group does not
|
|
141
|
-
* re-map the ones after it.
|
|
142
|
-
*/
|
|
143
|
-
items: (TItem & {
|
|
144
|
-
slotKey?: string;
|
|
145
|
-
})[];
|
|
146
|
-
/**
|
|
147
|
-
* `none` (default) keeps authored order; `within-group` shuffles the items
|
|
148
|
-
* among themselves under the sequence seed. Either way the group stays one
|
|
149
|
-
* contiguous block.
|
|
150
|
-
*/
|
|
151
|
-
shuffle?: 'none' | 'within-group';
|
|
152
|
-
/**
|
|
153
|
-
* Makes the group an interactive video: the stimulus must be a video, every
|
|
154
|
-
* item must be one of `INTERACTIVE_VIDEO_ITEM_TYPES`, and every item belongs
|
|
155
|
-
* to exactly one quiz. Items are then presented in quiz order, never
|
|
156
|
-
* shuffled. An older lk-core that does not know this field presents the same
|
|
157
|
-
* items as an ordinary video testlet, with the same slots and grades.
|
|
158
|
-
*/
|
|
159
|
-
timeline?: MediaTimeline;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* What a sequence is made of: loose activities and item groups, in authored
|
|
163
|
-
* order.
|
|
164
|
-
*
|
|
165
|
-
* A plain activity may carry `slotKey` here even though no activity SCHEMA
|
|
166
|
-
* declares one, because a slot key describes an item's PLACE in a paper, not
|
|
167
|
-
* its content — the same question keeps its own id in every paper it appears
|
|
168
|
-
* in. Putting it on the entry rather than on the activity is what lets it be
|
|
169
|
-
* authored without every activity type having to know about assessment
|
|
170
|
-
* assembly. See {@link SequenceSlot.slotId}.
|
|
171
|
-
*/
|
|
172
|
-
type SequenceEntry<TItem = ActivityData> = (TItem & {
|
|
173
|
-
slotKey?: string;
|
|
174
|
-
}) | ItemGroup<TItem>;
|
|
175
|
-
/** The group a presented slot belongs to. */
|
|
176
|
-
interface SequenceSlotGroup {
|
|
177
|
-
id: string;
|
|
178
|
-
title?: string;
|
|
179
|
-
stimulus: Stimulus;
|
|
180
|
-
/** 0-based position of this slot within the group's PRESENTED order. */
|
|
181
|
-
position: number;
|
|
182
|
-
/** Number of slots in the group. */
|
|
183
|
-
size: number;
|
|
184
|
-
/** The group's timeline, when the group is an interactive video. */
|
|
185
|
-
timeline?: MediaTimeline;
|
|
186
|
-
/** The quiz this slot's item sits in, when the group is an interactive video. */
|
|
187
|
-
cue?: TimelineCue;
|
|
188
|
-
}
|
|
189
|
-
/** One presented position in a flattened sequence. */
|
|
190
|
-
interface SequenceSlot<TItem = ActivityData> {
|
|
191
|
-
/**
|
|
192
|
-
* Identity of the slot within the sequence definition — unique, and stable
|
|
193
|
-
* under shuffling. Feed it to `composeAssessmentScore` as `slotId`.
|
|
194
|
-
*
|
|
195
|
-
* By default it is derived from the AUTHORED position (`"2"` for the third
|
|
196
|
-
* top-level entry; `"2.1"` for the second item of that entry when it is a
|
|
197
|
-
* group), so the same activity can appear in two entries and still be two
|
|
198
|
-
* slots.
|
|
199
|
-
*
|
|
200
|
-
* **A positional id is only valid against one version of the entries
|
|
201
|
-
* array.** Insert a question at the top of a published paper and every id
|
|
202
|
-
* below it shifts: rows stored as `"3"` now name what used to be entry 2,
|
|
203
|
-
* and a re-grade or a review render pairs each response with the wrong
|
|
204
|
-
* question — silently, because the ids still look valid. For any content
|
|
205
|
-
* whose slot ids you persist, give the entries an explicit `slotKey`; it is
|
|
206
|
-
* used verbatim here and survives insertion, deletion and re-ordering.
|
|
207
|
-
*/
|
|
208
|
-
slotId: string;
|
|
209
|
-
/** 0-based PRESENTED position, after shuffling. */
|
|
210
|
-
index: number;
|
|
211
|
-
activity: TItem;
|
|
212
|
-
/** Present when the slot comes from an item group. */
|
|
213
|
-
group?: SequenceSlotGroup;
|
|
214
|
-
}
|
|
215
|
-
//#endregion
|
|
1
|
+
import { St as ActivityMedia, Xt as MultipleChoiceOptionMedia, bt as ActivityDataMap, ln as ValidationResult, tt as ItemGroup, wt as ActivityType } from "./ai-CnmLPMzd.cjs";
|
|
216
2
|
//#region src/types/redacted.d.ts
|
|
217
3
|
/**
|
|
218
4
|
* The learner-safe SHAPE of each built-in type.
|
|
@@ -549,5 +335,5 @@ declare function validateOptionMedia(value: unknown): ValidationResult<MultipleC
|
|
|
549
335
|
*/
|
|
550
336
|
declare function validateActivity<T extends ActivityType>(type: T, data: unknown): ValidationResult<ActivityDataMap[T]>;
|
|
551
337
|
//#endregion
|
|
552
|
-
export {
|
|
553
|
-
//# sourceMappingURL=index-
|
|
338
|
+
export { RedactedMultipleChoiceData as C, RedactedStimulus as D, RedactedReadAloudData as E, RedactedWrittenResponseData as O, RedactedGapSelectGap as S, RedactedMultipleChoiceOptionMedia as T, RedactedDictationSlowMedia as _, fillInTheBlanksJsonSchema as a, RedactedGapSelectChoice as b, jsonSchemaFor as c, stimulusJsonSchema as d, writtenResponseJsonSchema as f, RedactedDictationData as g, RedactedBlankConfig as h, dictationJsonSchema as i, multipleChoiceJsonSchema as l, RedactedActivity as m, validateMedia as n, gapSelectJsonSchema as o, validateItemGroup as p, validateOptionMedia as r, itemGroupJsonSchema as s, validateActivity as t, readAloudJsonSchema as u, RedactedFillInTheBlanksData as v, RedactedMultipleChoiceOption as w, RedactedGapSelectData as x, RedactedGapSelectBank as y };
|
|
339
|
+
//# sourceMappingURL=index-2nigSf4N.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-2nigSf4N.d.cts","names":[],"sources":["../src/types/redacted.ts","../src/schemas/item-group.ts","../src/schemas/json-schema.ts","../src/schemas/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;UAoBU;EACR;EACA;EACA;EACA;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA,SAAS;EACT;EACA,WAAW;;;UAIH;EACR;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA,KAAK;;;UAIU;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA,QAAQ;;;UAIO,mCAAmC;EAClD;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;;;UAIe;EACf;EACA;;;UAIe,oCAAoC;EACnD;EACA;EACA;EACA,QAAQ;EACR;;;UAIe,oCAAoC;EACnD;EACA;EACA;EACA;EACA;EACA;IAEM;MAAY;MAAc;MAAgB;;IAC1C;;EAGN;EACA;;;UAIe;EACf;EACA;;;UAIe;EACf;EACA,SAAS;;;UAIM;EACf;EACA,UAAU;EACV;;;UAIe,8BAA8B;EAC7C;EACA;EACA;EACA,MAAM;EACN,QAAQ;EACR;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe,8BAA8B;EAC7C;EACA,YAAY;EACZ;IAAU;;EACV;;;;;;;UAQe,8BAA8B;EAC7C;EACA;EACA;EACA;EACA,YAAY;EACZ;IACE;IACA;IACA;;EAEF;IACE;MACE;MACA;;;;;UAMW;EACf;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;;;;;;;;;;;;;;KAeU,mBACR,6BACA,8BACA,8BACA,wBACA,wBACA;;;;;;;;;;;;;iBCgNY,kBAAkB,gBAAgB,iBAAiB;;;;;;;cClatD,oBAAoB;;;;;;;;cAWpB,qBAAqB;;;;;;;;;;;;;;;;;;cAqBrB,qBAAqB;;;;;;;;;;;cAcrB,qBAAqB;;;;;;;;;;cAarB,qBAAqB;cAIrB,0BAA0B;;;;;;cAY1B,2BAA2B;;;;;cAW3B,2BAA2B;;;;;;;;;;;;;;;;iBAsBxB,cAAc,eAAe;;;;;;;;;;;;;iBCvE7B,cAAc,iBAAiB,iBAAiB;;;;;;;;iBAWhD,oBAAoB,iBAAiB,iBAAiB;;;;;;;;;;;;;iBA8BtD,iBAAiB,UAAU,cACzC,MAAM,GACN,gBACC,iBAAiB,gBAAgB"}
|
|
@@ -1,218 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
//#region src/types/item-group.d.ts
|
|
3
|
-
/** What a stimulus primarily is. Drives validation and layout, never scoring. */
|
|
4
|
-
type StimulusKind = 'text' | 'audio' | 'video' | 'image' | 'mixed';
|
|
5
|
-
/**
|
|
6
|
-
* Shared material that several items refer to: a reading passage, a
|
|
7
|
-
* recording, a chart. Modelled as CONTENT — it lives inside the item group
|
|
8
|
-
* that carries it — so it works in a lesson quiz, a sequence and an exam
|
|
9
|
-
* section alike, and needs no blueprint to exist.
|
|
10
|
-
*
|
|
11
|
-
* Learner-visible by definition: the point of a stimulus is that the learner
|
|
12
|
-
* reads or hears it. The one exception is `transcript`, an author asset that
|
|
13
|
-
* `redactItemGroup` removes.
|
|
14
|
-
*/
|
|
15
|
-
interface Stimulus {
|
|
16
|
-
id: string;
|
|
17
|
-
kind: StimulusKind;
|
|
18
|
-
/** Optional heading (a passage title). */
|
|
19
|
-
title?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Plain-text body: the passage itself, or short instructions above media.
|
|
22
|
-
* Required for `text` and `mixed`.
|
|
23
|
-
*/
|
|
24
|
-
body?: string;
|
|
25
|
-
/**
|
|
26
|
-
* Optional sanitised rich-HTML sidecar of `body`. Requires `body`, which is
|
|
27
|
-
* the accessible fallback rendered when no sanitiser is supplied.
|
|
28
|
-
*/
|
|
29
|
-
bodyHtml?: string;
|
|
30
|
-
/** The recording, video or image. Required for `audio`, `video`, `image` and `mixed`. */
|
|
31
|
-
media?: ActivityMedia;
|
|
32
|
-
/**
|
|
33
|
-
* Author-only transcript of `media` — for item generation and grading,
|
|
34
|
-
* never shown to the learner. Removed by `redactItemGroup`.
|
|
35
|
-
*/
|
|
36
|
-
transcript?: string;
|
|
37
|
-
/** BCP 47 language tag of the material, when it differs from the items'. */
|
|
38
|
-
locale?: string;
|
|
39
|
-
/** Source credit, shown to the learner after the material. */
|
|
40
|
-
attribution?: string;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* A quiz inside an interactive video: one moment of the video, and the
|
|
44
|
-
* questions shown there. The video pauses when playback reaches `at`, and the
|
|
45
|
-
* questions are shown one at a time, in `itemIds` order.
|
|
46
|
-
*/
|
|
47
|
-
interface TimelineCue {
|
|
48
|
-
/** Unique within the timeline. Names the quiz in events, the contents panel and drafts. */
|
|
49
|
-
id: string;
|
|
50
|
-
/**
|
|
51
|
-
* Seconds from the start of the video: finite and 0 or more. The SDK never
|
|
52
|
-
* reads the video, so it cannot check this against the duration: a quiz at
|
|
53
|
-
* or past the end opens when the video ends.
|
|
54
|
-
*/
|
|
55
|
-
at: number;
|
|
56
|
-
/**
|
|
57
|
-
* `id`s of items in this group, in the order the quiz shows them. Non-empty.
|
|
58
|
-
* Every item of the group belongs to exactly one quiz.
|
|
59
|
-
*/
|
|
60
|
-
itemIds: string[];
|
|
61
|
-
/** Optional heading shown above the questions. At most 120 characters. */
|
|
62
|
-
title?: string;
|
|
63
|
-
/**
|
|
64
|
-
* Every question must be answered (practice) or submitted (exam) before
|
|
65
|
-
* playback may pass `at`. Default false.
|
|
66
|
-
*/
|
|
67
|
-
required?: boolean;
|
|
68
|
-
}
|
|
69
|
-
/** A titled section of the video. */
|
|
70
|
-
interface TimelineChapter {
|
|
71
|
-
/** Seconds from the start: finite, 0 or more, strictly increasing across the list. */
|
|
72
|
-
at: number;
|
|
73
|
-
/** Non-empty after trimming; at most 120 characters. */
|
|
74
|
-
title: string;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* The arrangement that turns an item group with a video stimulus into an
|
|
78
|
-
* interactive video: when each quiz opens, the video's chapters, and how far
|
|
79
|
-
* ahead a learner may seek.
|
|
80
|
-
*
|
|
81
|
-
* It lives on the container rather than inside `stimulus` because it describes
|
|
82
|
-
* how THESE questions are arranged over the material, not the material itself.
|
|
83
|
-
*/
|
|
84
|
-
interface MediaTimeline {
|
|
85
|
-
cues: TimelineCue[];
|
|
86
|
-
chapters?: TimelineChapter[];
|
|
87
|
-
/**
|
|
88
|
-
* `free` (default): seek anywhere. `no-skip-ahead`: rewind freely, never past
|
|
89
|
-
* the furthest point reached. Either way, playback never passes a `required`
|
|
90
|
-
* quiz that is not finished.
|
|
91
|
-
*/
|
|
92
|
-
navigation?: 'free' | 'no-skip-ahead';
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Where a learner stands in an interactive video, stored by the host so the
|
|
96
|
-
* video can resume. Kept apart from `AttemptState`, which holds answers by slot
|
|
97
|
-
* and drops fields it does not know. Read it back through
|
|
98
|
-
* `readMediaProgress`, never directly.
|
|
99
|
-
*/
|
|
100
|
-
interface MediaProgress {
|
|
101
|
-
progressVersion: '1.0';
|
|
102
|
-
/** Seconds: where playback last stood. */
|
|
103
|
-
at: number;
|
|
104
|
-
/**
|
|
105
|
-
* Seconds: the furthest point reached. Decides how far `no-skip-ahead` lets
|
|
106
|
-
* the learner seek, and how much of the transcript it shows.
|
|
107
|
-
*/
|
|
108
|
-
furthest: number;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* One stimulus serving several items. Two rules, both taken from observed
|
|
112
|
-
* failures: a group is SHUFFLE-ATOMIC (shuffling a sequence moves the group
|
|
113
|
-
* as one block — interleaving two passages' questions is the defect), and its
|
|
114
|
-
* stimulus is presented persistently alongside every item, never behind a
|
|
115
|
-
* toggle the learner must reopen per question.
|
|
116
|
-
*
|
|
117
|
-
* Generic over the item type so one shape describes a group of full activity
|
|
118
|
-
* data (authoring, server) and a group of `redact()` projections (client)
|
|
119
|
-
* without a cast at every boundary.
|
|
120
|
-
*/
|
|
121
|
-
interface ItemGroup<TItem = ActivityData> {
|
|
122
|
-
schemaVersion: '1.0';
|
|
123
|
-
type: 'item-group';
|
|
124
|
-
id: string;
|
|
125
|
-
title?: string;
|
|
126
|
-
/**
|
|
127
|
-
* Stable identity for this entry's slots, independent of where it sits in
|
|
128
|
-
* the array. See {@link SequenceSlot.slotId}: without one, inserting a
|
|
129
|
-
* question above this group re-maps every slot id beneath it, and stored
|
|
130
|
-
* grades quietly start naming different questions.
|
|
131
|
-
*/
|
|
132
|
-
slotKey?: string;
|
|
133
|
-
stimulus: Stimulus;
|
|
134
|
-
/**
|
|
135
|
-
* The items, in authored order. Non-empty; ids unique within the group; no
|
|
136
|
-
* nested groups.
|
|
137
|
-
*
|
|
138
|
-
* An item may declare its own `slotKey`, for the same reason an entry can:
|
|
139
|
-
* it pins the item's identity within the group (`"reading.q1"` rather than
|
|
140
|
-
* `"reading.0"`), so inserting a question into a published group does not
|
|
141
|
-
* re-map the ones after it.
|
|
142
|
-
*/
|
|
143
|
-
items: (TItem & {
|
|
144
|
-
slotKey?: string;
|
|
145
|
-
})[];
|
|
146
|
-
/**
|
|
147
|
-
* `none` (default) keeps authored order; `within-group` shuffles the items
|
|
148
|
-
* among themselves under the sequence seed. Either way the group stays one
|
|
149
|
-
* contiguous block.
|
|
150
|
-
*/
|
|
151
|
-
shuffle?: 'none' | 'within-group';
|
|
152
|
-
/**
|
|
153
|
-
* Makes the group an interactive video: the stimulus must be a video, every
|
|
154
|
-
* item must be one of `INTERACTIVE_VIDEO_ITEM_TYPES`, and every item belongs
|
|
155
|
-
* to exactly one quiz. Items are then presented in quiz order, never
|
|
156
|
-
* shuffled. An older lk-core that does not know this field presents the same
|
|
157
|
-
* items as an ordinary video testlet, with the same slots and grades.
|
|
158
|
-
*/
|
|
159
|
-
timeline?: MediaTimeline;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* What a sequence is made of: loose activities and item groups, in authored
|
|
163
|
-
* order.
|
|
164
|
-
*
|
|
165
|
-
* A plain activity may carry `slotKey` here even though no activity SCHEMA
|
|
166
|
-
* declares one, because a slot key describes an item's PLACE in a paper, not
|
|
167
|
-
* its content — the same question keeps its own id in every paper it appears
|
|
168
|
-
* in. Putting it on the entry rather than on the activity is what lets it be
|
|
169
|
-
* authored without every activity type having to know about assessment
|
|
170
|
-
* assembly. See {@link SequenceSlot.slotId}.
|
|
171
|
-
*/
|
|
172
|
-
type SequenceEntry<TItem = ActivityData> = (TItem & {
|
|
173
|
-
slotKey?: string;
|
|
174
|
-
}) | ItemGroup<TItem>;
|
|
175
|
-
/** The group a presented slot belongs to. */
|
|
176
|
-
interface SequenceSlotGroup {
|
|
177
|
-
id: string;
|
|
178
|
-
title?: string;
|
|
179
|
-
stimulus: Stimulus;
|
|
180
|
-
/** 0-based position of this slot within the group's PRESENTED order. */
|
|
181
|
-
position: number;
|
|
182
|
-
/** Number of slots in the group. */
|
|
183
|
-
size: number;
|
|
184
|
-
/** The group's timeline, when the group is an interactive video. */
|
|
185
|
-
timeline?: MediaTimeline;
|
|
186
|
-
/** The quiz this slot's item sits in, when the group is an interactive video. */
|
|
187
|
-
cue?: TimelineCue;
|
|
188
|
-
}
|
|
189
|
-
/** One presented position in a flattened sequence. */
|
|
190
|
-
interface SequenceSlot<TItem = ActivityData> {
|
|
191
|
-
/**
|
|
192
|
-
* Identity of the slot within the sequence definition — unique, and stable
|
|
193
|
-
* under shuffling. Feed it to `composeAssessmentScore` as `slotId`.
|
|
194
|
-
*
|
|
195
|
-
* By default it is derived from the AUTHORED position (`"2"` for the third
|
|
196
|
-
* top-level entry; `"2.1"` for the second item of that entry when it is a
|
|
197
|
-
* group), so the same activity can appear in two entries and still be two
|
|
198
|
-
* slots.
|
|
199
|
-
*
|
|
200
|
-
* **A positional id is only valid against one version of the entries
|
|
201
|
-
* array.** Insert a question at the top of a published paper and every id
|
|
202
|
-
* below it shifts: rows stored as `"3"` now name what used to be entry 2,
|
|
203
|
-
* and a re-grade or a review render pairs each response with the wrong
|
|
204
|
-
* question — silently, because the ids still look valid. For any content
|
|
205
|
-
* whose slot ids you persist, give the entries an explicit `slotKey`; it is
|
|
206
|
-
* used verbatim here and survives insertion, deletion and re-ordering.
|
|
207
|
-
*/
|
|
208
|
-
slotId: string;
|
|
209
|
-
/** 0-based PRESENTED position, after shuffling. */
|
|
210
|
-
index: number;
|
|
211
|
-
activity: TItem;
|
|
212
|
-
/** Present when the slot comes from an item group. */
|
|
213
|
-
group?: SequenceSlotGroup;
|
|
214
|
-
}
|
|
215
|
-
//#endregion
|
|
1
|
+
import { St as ActivityMedia, Xt as MultipleChoiceOptionMedia, bt as ActivityDataMap, ln as ValidationResult, tt as ItemGroup, wt as ActivityType } from "./ai-CnmLPMzd.js";
|
|
216
2
|
//#region src/types/redacted.d.ts
|
|
217
3
|
/**
|
|
218
4
|
* The learner-safe SHAPE of each built-in type.
|
|
@@ -549,5 +335,5 @@ declare function validateOptionMedia(value: unknown): ValidationResult<MultipleC
|
|
|
549
335
|
*/
|
|
550
336
|
declare function validateActivity<T extends ActivityType>(type: T, data: unknown): ValidationResult<ActivityDataMap[T]>;
|
|
551
337
|
//#endregion
|
|
552
|
-
export {
|
|
553
|
-
//# sourceMappingURL=index-
|
|
338
|
+
export { RedactedMultipleChoiceData as C, RedactedStimulus as D, RedactedReadAloudData as E, RedactedWrittenResponseData as O, RedactedGapSelectGap as S, RedactedMultipleChoiceOptionMedia as T, RedactedDictationSlowMedia as _, fillInTheBlanksJsonSchema as a, RedactedGapSelectChoice as b, jsonSchemaFor as c, stimulusJsonSchema as d, writtenResponseJsonSchema as f, RedactedDictationData as g, RedactedBlankConfig as h, dictationJsonSchema as i, multipleChoiceJsonSchema as l, RedactedActivity as m, validateMedia as n, gapSelectJsonSchema as o, validateItemGroup as p, validateOptionMedia as r, itemGroupJsonSchema as s, validateActivity as t, readAloudJsonSchema as u, RedactedFillInTheBlanksData as v, RedactedMultipleChoiceOption as w, RedactedGapSelectData as x, RedactedGapSelectBank as y };
|
|
339
|
+
//# sourceMappingURL=index-B54baFUA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-B54baFUA.d.ts","names":[],"sources":["../src/types/redacted.ts","../src/schemas/item-group.ts","../src/schemas/json-schema.ts","../src/schemas/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;UAoBU;EACR;EACA;EACA;EACA;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA,SAAS;EACT;EACA,WAAW;;;UAIH;EACR;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA,KAAK;;;UAIU;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA,QAAQ;;;UAIO,mCAAmC;EAClD;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;;;UAIe;EACf;EACA;;;UAIe,oCAAoC;EACnD;EACA;EACA;EACA,QAAQ;EACR;;;UAIe,oCAAoC;EACnD;EACA;EACA;EACA;EACA;EACA;IAEM;MAAY;MAAc;MAAgB;;IAC1C;;EAGN;EACA;;;UAIe;EACf;EACA;;;UAIe;EACf;EACA,SAAS;;;UAIM;EACf;EACA,UAAU;EACV;;;UAIe,8BAA8B;EAC7C;EACA;EACA;EACA,MAAM;EACN,QAAQ;EACR;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe,8BAA8B;EAC7C;EACA,YAAY;EACZ;IAAU;;EACV;;;;;;;UAQe,8BAA8B;EAC7C;EACA;EACA;EACA;EACA,YAAY;EACZ;IACE;IACA;IACA;;EAEF;IACE;MACE;MACA;;;;;UAMW;EACf;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;;;;;;;;;;;;;;KAeU,mBACR,6BACA,8BACA,8BACA,wBACA,wBACA;;;;;;;;;;;;;iBCgNY,kBAAkB,gBAAgB,iBAAiB;;;;;;;cClatD,oBAAoB;;;;;;;;cAWpB,qBAAqB;;;;;;;;;;;;;;;;;;cAqBrB,qBAAqB;;;;;;;;;;;cAcrB,qBAAqB;;;;;;;;;;cAarB,qBAAqB;cAIrB,0BAA0B;;;;;;cAY1B,2BAA2B;;;;;cAW3B,2BAA2B;;;;;;;;;;;;;;;;iBAsBxB,cAAc,eAAe;;;;;;;;;;;;;iBCvE7B,cAAc,iBAAiB,iBAAiB;;;;;;;;iBAWhD,oBAAoB,iBAAiB,iBAAiB;;;;;;;;;;;;;iBA8BtD,iBAAiB,UAAU,cACzC,MAAM,GACN,gBACC,iBAAiB,gBAAgB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { En as Grader, Ht as ItemOutcome, Ot as DictationData, Qt as ReadAloudData, Tn as GradeRecord, Ut as LearnerResponse, ln as ValidationResult, sn as ScoringResult, tn as ReadAloudLearnerResponse, wt as ActivityType, yt as ActivityData } from "./ai-CnmLPMzd.cjs";
|
|
2
2
|
//#region src/scoring/rounding.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Rounding for assessment scores.
|
|
@@ -1068,4 +1068,4 @@ interface ItemTriesOutcome {
|
|
|
1068
1068
|
declare function evaluateTries(data: ActivityData, responses: readonly LearnerResponse[], options?: EvaluateOptions): ItemTriesOutcome;
|
|
1069
1069
|
//#endregion
|
|
1070
1070
|
export { SpeechAssessment as $, diffDictationChars as A, ItemTry as B, validateItemScoringPolicy as C, DICTATION_MAX_TEXT_LENGTH as D, DICTATION_MAX_EQUIVALENCE_LENGTH as E, dictationReferenceWords as F, CompositionPolicy as G, ResolvedItemScoringPolicy as H, ItemScoringCount as I, SectionScore as J, PassFailureReason as K, ItemScoringPolicy as L, DictationReference as M, DictationWordAlignment as N, DICTATION_MAX_TRANSCRIPT_LENGTH as O, alignDictation as P, ReadAloudWordState as Q, ItemScoringPolicyIssue as R, scoreTries as S, DICTATION_MAX_EQUIVALENCES as T, AssessmentScore as U, ItemTryScore as V, AssessmentSectionInput as W, GradeReadAloudOptions as X, composeAssessmentScore as Y, ReadAloudWordAlignment as Z, DEFAULT_PASS_THRESHOLD as _, evaluateTries as a, SpeechUnscorable as at, ITEM_SCORING_MAX_RETRIES as b, inspectWav as c, SpeechWordError as ct, READ_ALOUD_MAX_SECONDS as d, Band as dt, SpeechMeasurement as et, READ_ALOUD_MAX_TAKES as f, RoundingMode as ft, alignReadAloud as g, roundGrade as gt, validateSpeechAssessment as h, gte as ht, evaluate as i, SpeechSyllable as it, DictationAlignment as j, DictationCharOp as k, READ_ALOUD_MAX_DIMENSION_WEIGHT as l, WavInspection as lt, gradeReadAloud as m, classifyBand as mt, ItemTriesOutcome as n, SpeechPhonemeCandidate as nt, score as o, SpeechUnscorableCode as ot, SPEECH_ASSESSMENT_MAX_WORDS as p, RoundingPolicy as pt, ScoredItem as q, ScoringOptions as r, SpeechPlausibilityPolicy as rt, outcomeFromUnscorable as s, SpeechWord as st, EvaluateOptions as t, SpeechPhoneme as tt, READ_ALOUD_MAX_REFERENCE_LENGTH as u, WavInspectionPolicy as ut, computePassThreshold as v, DICTATION_MAX_ACCEPTED_TRANSCRIPTS as w, resolveItemScoringPolicy as x, DEFAULT_ITEM_SCORING_POLICY as y, ItemTriesScore as z };
|
|
1071
|
-
//# sourceMappingURL=index-
|
|
1071
|
+
//# sourceMappingURL=index-BAfEHCnD.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BAfEHCnD.d.cts","names":[],"sources":["../src/scoring/rounding.ts","../src/types/speech.ts","../src/scoring/compose.ts","../src/types/item-scoring.ts","../src/scoring/dictation/align.ts","../src/scoring/dictation/chars.ts","../src/scoring/dictation/normalize.ts","../src/scoring/item-scoring.ts","../src/scoring/pass-threshold.ts","../src/scoring/speech/align.ts","../src/scoring/speech/assessment.ts","../src/scoring/speech/grade.ts","../src/scoring/speech/limits.ts","../src/scoring/speech/wav.ts","../src/scoring/unscorable.ts","../src/scoring/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;KAoBY;;UAGK;EACf,MAAM;;EAEN;;;;;;;;;iBAqFc,WAAW,eAAe,QAAQ;;;;;;;;;iBA2DlC,IAAI,eAAe,mBAAmB,QAAQ;;UAK7C;EACf;;EAEA;;;;;;;;;;iBAWc,aAAa,eAAe,gBAAgB,SAAS;;;;;;;;KC5KzD;;UAGK;;EAEf;;EAEA;;;UAIe;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA,UAAU;;;UAIK;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;UAIe;;EAEf;;EAEA;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;EACA,YAAY;EACZ,WAAW;;;;;EAKX;IAAW;IAAqB;;;;;;;UAOjB;EACf;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;;;;EAKA;;EAEA,UAAU;;EAEV;;EAEA;IACE;IACA;IACA;IACA;IACA;;;EAGF;;;;;;;EAOA;;EAEA;;EAEA,OAAO;;EAEP;IAAY;;;EAEZ;IAAW;;;;;;;;UAQI;;EAEf;;EAEA;;;;;;;UAQe;;EAEf;;EAEA;;;;;;;;;;;;;;;KAgBU;;UAaK;EACf;;EAEA,MAAM;;EAEN;;;;;;UAOe;;EAEf,UAAU;;EAEV,cAAc;;EAEd;;EAEA,WAAW;;;KAID;;;;;UAMK;;EAEf;;EAEA;;;;;;;EAOA;EACA,OAAO;;EAEP;;EAEA;;;;;;KAOU;EAEN;;EAEA;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;EAAc;;;UAGH;;EAEf;;EAEA;;;;;;;;;;;;;;;UC9Oe;;;;;;EAMf;;EAEA;;EAEA;;EAEA,SAAS;;;UAIM;EACf;EACA;;EAEA;;EAEA;EACA,OAAO;;;UAIQ;;EAEf;;EAEA;;;;;;EAMA,UAAU;;;UAIK;EACf;EACA;;EAEA;;;;;;;;;;;;;;;;;;;;EAoBA;EACA;;EAEA;;EAEA;;EAEA;EACA;;EAEA;;;;;EAKA;;EAEA;;EAEA;;;KAIU;;UAOK;EACf,UAAU;;EAEV;;;;;;;EAOA;;EAEA,mBAAmB;;;;;;;;EAQnB;;;;;;EAMA;;;;;;;;;;;;;;;EAeA;;EAEA;;;;;;;;;;;;;;iBAmEc,uBACd,mBAAmB,0BACnB,QAAQ,oBACP;;;;;;;;;;;;;;;;;;;;;;;;;UC3Mc;;;;;;;;;EASf;;;;;;EAMA;;;;;;;;;EASA;;;;;;;;;;EAUA,SAAS;;;KAIC;;;;;;UAOK;EACf;EACA;EACA;EACA,QAAQ;;;UAIO;;EAEf;EACA;;;UAIe;;EAEf;EACA;;;;;;EAMA;;;UAIe;;EAEf;;EAEA;EACA;;EAEA;;EAEA;;;UAIe;;EAEf;EACA;;EAEA;;;;;;EAMA,OAAO;;;;;UC3GQ;;EAEf;;EAEA;;EAEA;;EAEA;EACA;;;;;;;;UASe;;;;;;EAMf;;EAEA;;EAEA;;;;;EAKA;;EAEA;;EAEA,OAAO;;;;;;;;KASG,qBAAqB,QAC/B,KAAK;;;;;;;;;iBAWS,wBACd,MAAM;EACgB;EAAgB;;;;;;;;;;;;;;;;;;;;iBA2BxB,eAAe,MAAM,oBAAoB,eAAe;;;;UChGvD;EACf;;EAEA;;EAEA;;;;;;;;;;;;;iBAcc,mBAAmB,mBAAmB,kBAAkB;;;;;;;;;;cCD3D;;;;;;cAMA;;cAEA;;;;;cAKA;;;;;cAKA;;;;;;;;cCvBA,6BAA6B;;cAQ7B;;;;;;;;;;;iBAqBG,0BACd;EAEI;EAAe,MAAM;;EACrB;EAAgB,QAAQ;;;;;;;;;;;;iBA0Ed,yBAAyB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;iBAyD3C,WACd,gBAAgB,WAChB,SAAS,oBAAoB,mCAC5B;;;;cCzKU;;;;;;;;;;;;;iBAcG,qBACd,cAAc,cACd,eACA,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCgDG,eACd,MAAM,KAAK,iCACX,YAAY,mBACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCkKa,yBAAyB,iBAAiB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC3F3D,eACd,MAAM,eACN,UAAU,0BACV,YAAY,yBACZ,SAAS,wBACR,cAAc;;;;;;;;;;cClJJ;;cAGA;;cAGA;;;;;;cAOA;;;;;;;;;cAUA;;;;;;;;;;;;;;;;;;;;;;;;;;iBC8EG,WAAW,OAAO,YAAY,QAAQ,sBAAsB;;;;;;;;;;;;iBCtG5D,sBAAsB;EAAU;EAAc;IAAmB;;;;;;;UCsGhE;;;;;;;;;;;;;EAaf,WAAW;;;;;;UAOI,wBAAwB;;;;;;;;;;;;;;;;EAgBvC,UAAU;;;;;;;;;;;;;;;iBAgBI,MACd,cAAc,cACd,cAAc,cACd,iBAAiB,iBACjB,UAAU,iBACT;;;;;;;;;;;;;;;;;;;;;;iBA0Ca,SACd,MAAM,cACN,UAAU,iBACV,UAAU,kBACT;;UA0Ec;;;;;;;;EAQf,SAAS;;EAET;;;;;;EAMA,OAAO;;;;;;;;;;;;;;;;;iBAkBO,cACd,MAAM,cACN,oBAAoB,mBACpB,UAAU,kBACT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Sn as XAPIStatement, bn as XAPIResult, gn as XAPIContext, mn as XAPIActor, sn as ScoringResult } from "./ai-CnmLPMzd.cjs";
|
|
2
2
|
//#region src/xapi/verbs.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* The set of xAPI verbs emitted by SDK activities, keyed by a stable
|
|
@@ -150,4 +150,4 @@ declare function xapiDefinitionFor(data: {
|
|
|
150
150
|
declare function validateXAPIStatement(statement: XAPIStatement): void;
|
|
151
151
|
//#endregion
|
|
152
152
|
export { XAPIObjectParams as a, xapiDefinitionFor as c, XAPI_VERB_DISPLAY as d, SubmittedStatementParams as i, XAPIVerb as l, AnsweredStatementParams as n, XAPIStatementParams as o, CompletedStatementParams as r, xAPIBuilder as s, validateXAPIStatement as t, XAPIVerbKey as u };
|
|
153
|
-
//# sourceMappingURL=index-
|
|
153
|
+
//# sourceMappingURL=index-BqMXWuNC.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BqMXWuNC.d.cts","names":[],"sources":["../src/xapi/verbs.ts","../src/xapi/builder.ts","../src/xapi/validators.ts"],"mappings":";;;;;;cAIa;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BD,2BAA2B;;;;;cAM1B,mBAAmB,OAAO,aAAa;;;;UCxBnC;;EAEf;EACA,OAAO;EACP,cAAc;;EAEd;;EAEA;;EAEA;;EAEA,UAAU;IAAQ;IAAY,cAAc;;;;UAI7B;EACf,OAAO;EACP,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;;;UAIK;EACf,OAAO;EACP,QAAQ;EACR,eAAe;EACf;;EAEA;EACA,UAAU;EACV,mBAAmB;;;;;;;UAQJ;EACf,OAAO;EACP,QAAQ;EACR;;EAEA;EACA,UAAU;EACV,mBAAmB;;;UAIJ;EACf,OAAO;EACP,QAAQ;EACR,gBAAgB;EAChB;EACA,UAAU;EACV,mBAAmB;;;;;;;cAiGR;EACY,eAAA,QAAA,sBAAsB;EAoBd,uBAAA,QAAA,0BAA0B;;;;;;;EAqBzB,wBAAA,QAAA,2BAA2B;EAc3B,wBAAA,QAAA,2BAA2B;;;;;;;;;;;;;;;;iBA8B7C,kBAAkB;EAAQ;IAAiB,QAAQ;;;;;;;;;;;;;;;;iBClHnD,sBAAsB,WAAW"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { En as Grader, Ht as ItemOutcome, Ot as DictationData, Qt as ReadAloudData, Tn as GradeRecord, Ut as LearnerResponse, ln as ValidationResult, sn as ScoringResult, tn as ReadAloudLearnerResponse, wt as ActivityType, yt as ActivityData } from "./ai-CnmLPMzd.js";
|
|
2
2
|
//#region src/scoring/rounding.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Rounding for assessment scores.
|
|
@@ -1068,4 +1068,4 @@ interface ItemTriesOutcome {
|
|
|
1068
1068
|
declare function evaluateTries(data: ActivityData, responses: readonly LearnerResponse[], options?: EvaluateOptions): ItemTriesOutcome;
|
|
1069
1069
|
//#endregion
|
|
1070
1070
|
export { SpeechAssessment as $, diffDictationChars as A, ItemTry as B, validateItemScoringPolicy as C, DICTATION_MAX_TEXT_LENGTH as D, DICTATION_MAX_EQUIVALENCE_LENGTH as E, dictationReferenceWords as F, CompositionPolicy as G, ResolvedItemScoringPolicy as H, ItemScoringCount as I, SectionScore as J, PassFailureReason as K, ItemScoringPolicy as L, DictationReference as M, DictationWordAlignment as N, DICTATION_MAX_TRANSCRIPT_LENGTH as O, alignDictation as P, ReadAloudWordState as Q, ItemScoringPolicyIssue as R, scoreTries as S, DICTATION_MAX_EQUIVALENCES as T, AssessmentScore as U, ItemTryScore as V, AssessmentSectionInput as W, GradeReadAloudOptions as X, composeAssessmentScore as Y, ReadAloudWordAlignment as Z, DEFAULT_PASS_THRESHOLD as _, evaluateTries as a, SpeechUnscorable as at, ITEM_SCORING_MAX_RETRIES as b, inspectWav as c, SpeechWordError as ct, READ_ALOUD_MAX_SECONDS as d, Band as dt, SpeechMeasurement as et, READ_ALOUD_MAX_TAKES as f, RoundingMode as ft, alignReadAloud as g, roundGrade as gt, validateSpeechAssessment as h, gte as ht, evaluate as i, SpeechSyllable as it, DictationAlignment as j, DictationCharOp as k, READ_ALOUD_MAX_DIMENSION_WEIGHT as l, WavInspection as lt, gradeReadAloud as m, classifyBand as mt, ItemTriesOutcome as n, SpeechPhonemeCandidate as nt, score as o, SpeechUnscorableCode as ot, SPEECH_ASSESSMENT_MAX_WORDS as p, RoundingPolicy as pt, ScoredItem as q, ScoringOptions as r, SpeechPlausibilityPolicy as rt, outcomeFromUnscorable as s, SpeechWord as st, EvaluateOptions as t, SpeechPhoneme as tt, READ_ALOUD_MAX_REFERENCE_LENGTH as u, WavInspectionPolicy as ut, computePassThreshold as v, DICTATION_MAX_ACCEPTED_TRANSCRIPTS as w, resolveItemScoringPolicy as x, DEFAULT_ITEM_SCORING_POLICY as y, ItemTriesScore as z };
|
|
1071
|
-
//# sourceMappingURL=index-
|
|
1071
|
+
//# sourceMappingURL=index-CVWvymVb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-CVWvymVb.d.ts","names":[],"sources":["../src/scoring/rounding.ts","../src/types/speech.ts","../src/scoring/compose.ts","../src/types/item-scoring.ts","../src/scoring/dictation/align.ts","../src/scoring/dictation/chars.ts","../src/scoring/dictation/normalize.ts","../src/scoring/item-scoring.ts","../src/scoring/pass-threshold.ts","../src/scoring/speech/align.ts","../src/scoring/speech/assessment.ts","../src/scoring/speech/grade.ts","../src/scoring/speech/limits.ts","../src/scoring/speech/wav.ts","../src/scoring/unscorable.ts","../src/scoring/index.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Sn as XAPIStatement, bn as XAPIResult, gn as XAPIContext, mn as XAPIActor, sn as ScoringResult } from "./ai-CnmLPMzd.js";
|
|
2
2
|
//#region src/xapi/verbs.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* The set of xAPI verbs emitted by SDK activities, keyed by a stable
|
|
@@ -150,4 +150,4 @@ declare function xapiDefinitionFor(data: {
|
|
|
150
150
|
declare function validateXAPIStatement(statement: XAPIStatement): void;
|
|
151
151
|
//#endregion
|
|
152
152
|
export { XAPIObjectParams as a, xapiDefinitionFor as c, XAPI_VERB_DISPLAY as d, SubmittedStatementParams as i, XAPIVerb as l, AnsweredStatementParams as n, XAPIStatementParams as o, CompletedStatementParams as r, xAPIBuilder as s, validateXAPIStatement as t, XAPIVerbKey as u };
|
|
153
|
-
//# sourceMappingURL=index-
|
|
153
|
+
//# sourceMappingURL=index-CcHDTxIZ.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-CcHDTxIZ.d.ts","names":[],"sources":["../src/xapi/verbs.ts","../src/xapi/builder.ts","../src/xapi/validators.ts"],"mappings":";;;;;;cAIa;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BD,2BAA2B;;;;;cAM1B,mBAAmB,OAAO,aAAa;;;;UCxBnC;;EAEf;EACA,OAAO;EACP,cAAc;;EAEd;;EAEA;;EAEA;;EAEA,UAAU;IAAQ;IAAY,cAAc;;;;UAI7B;EACf,OAAO;EACP,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;;;UAIK;EACf,OAAO;EACP,QAAQ;EACR,eAAe;EACf;;EAEA;EACA,UAAU;EACV,mBAAmB;;;;;;;UAQJ;EACf,OAAO;EACP,QAAQ;EACR;;EAEA;EACA,UAAU;EACV,mBAAmB;;;UAIJ;EACf,OAAO;EACP,QAAQ;EACR,gBAAgB;EAChB;EACA,UAAU;EACV,mBAAmB;;;;;;;cAiGR;EACY,eAAA,QAAA,sBAAsB;EAoBd,uBAAA,QAAA,0BAA0B;;;;;;;EAqBzB,wBAAA,QAAA,2BAA2B;EAc3B,wBAAA,QAAA,2BAA2B;;;;;;;;;;;;;;;;iBA8B7C,kBAAkB;EAAQ;IAAiB,QAAQ;;;;;;;;;;;;;;;;iBClHnD,sBAAsB,WAAW"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_registry = require("./registry-DVi0LR_i.cjs");
|
|
3
|
-
const require_ai_writing = require("./ai-writing-
|
|
3
|
+
const require_ai_writing = require("./ai-writing-G6tnCGzw.cjs");
|
|
4
4
|
const require_scoring = require("./scoring-B2_HEhMT.cjs");
|
|
5
5
|
const require_item_group = require("./item-group-DroFXgLb.cjs");
|
|
6
6
|
const require_schemas = require("./schemas-DVbAOrtd.cjs");
|
|
@@ -1166,6 +1166,7 @@ exports.AI_DRAFTS_MAX_COUNT = require_ai_writing.AI_DRAFTS_MAX_COUNT;
|
|
|
1166
1166
|
exports.AI_DRAFTS_MAX_REPAIRS = require_ai_writing.AI_DRAFTS_MAX_REPAIRS;
|
|
1167
1167
|
exports.AI_EXPLANATION_TYPES = require_ai_writing.AI_EXPLANATION_TYPES;
|
|
1168
1168
|
exports.AI_HINT_TYPES = require_ai_writing.AI_HINT_TYPES;
|
|
1169
|
+
exports.AI_MATERIAL_MAX_LENGTH = require_ai_writing.AI_MATERIAL_MAX_LENGTH;
|
|
1169
1170
|
exports.AI_TEXT_MAX_LENGTH = require_ai_writing.AI_TEXT_MAX_LENGTH;
|
|
1170
1171
|
exports.AI_WRITING_MAX_CORRECTIONS = require_ai_writing.AI_WRITING_MAX_CORRECTIONS;
|
|
1171
1172
|
exports.AI_WRITING_MAX_FIELD_LENGTH = require_ai_writing.AI_WRITING_MAX_FIELD_LENGTH;
|