@intellectif/lk-core 0.17.0 → 0.18.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 +30 -0
- package/README.md +2 -2
- package/dist/{activity-BmjBjXVJ.d.cts → activity-HH8dxN1v.d.cts} +21 -2
- package/dist/{activity-BmjBjXVJ.d.ts → activity-HH8dxN1v.d.ts} +21 -2
- package/dist/{chunk-XNMKDFPW.cjs → chunk-COBK2RUX.cjs} +44 -9
- package/dist/chunk-COBK2RUX.cjs.map +1 -0
- package/dist/{chunk-WXS5EB65.js → chunk-MMEQKFFQ.js} +43 -8
- package/dist/chunk-MMEQKFFQ.js.map +1 -0
- package/dist/{index-G_KusUcK.d.ts → index-BrBBUb1i.d.ts} +4 -4
- package/dist/{index-CvfeD_cU.d.cts → index-DejnxQpK.d.cts} +4 -4
- package/dist/index.cjs +10 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -11
- package/dist/index.d.ts +30 -11
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.cts +2 -2
- package/dist/schemas.d.ts +2 -2
- package/dist/scoring.cjs +2 -2
- package/dist/scoring.d.cts +33 -5
- package/dist/scoring.d.ts +33 -5
- package/dist/scoring.js +1 -1
- package/dist/xapi.d.cts +1 -1
- package/dist/xapi.d.ts +1 -1
- package/package.json +1 -1
- package/vectors/README.md +9 -3
- package/vectors/scoring.json +1258 -10
- package/dist/chunk-WXS5EB65.js.map +0 -1
- package/dist/chunk-XNMKDFPW.cjs.map +0 -1
package/dist/schemas.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import './activity-
|
|
2
|
-
export { A as AiPermissionsSchema, B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, j as MediaSchema, l as MediaTimelineSchema, m as MediaTrackSchema, n as MediaUrlSchema, o as MultipleChoiceDataSchema, p as MultipleChoiceOptionMediaSchema, q as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as ReadAloudDataSchema, r as ReadAloudSlowMediaSchema, s as RedactedActivity, t as RedactedBlankConfig, u as RedactedBlankConfigSchema, v as RedactedDictationData, w as RedactedDictationDataSchema, x as RedactedDictationSlowMedia, y as RedactedDictationSlowMediaSchema, z as RedactedFillInTheBlanksData, C as RedactedFillInTheBlanksDataSchema, E as RedactedGapSelectBank, H as RedactedGapSelectBankSchema, J as RedactedGapSelectChoice, K as RedactedGapSelectChoiceSchema, L as RedactedGapSelectData, O as RedactedGapSelectDataSchema, P as RedactedGapSelectGap, Q as RedactedGapSelectGapSchema, S as RedactedItemGroupSchema, T as RedactedMediaSchema, U as RedactedMultipleChoiceData, V as RedactedMultipleChoiceDataSchema, W as RedactedMultipleChoiceOption, X as RedactedMultipleChoiceOptionMedia, Y as RedactedMultipleChoiceOptionMediaSchema, Z as RedactedMultipleChoiceOptionSchema, _ as RedactedReadAloudData, $ as RedactedReadAloudDataSchema, a0 as RedactedStimulus, a1 as RedactedStimulusSchema, a2 as RedactedWrittenResponseData, a3 as RedactedWrittenResponseDataSchema, a9 as StimulusSchema, aa as TextMatchPolicySchema, ac as TimelineChapterSchema, ae as TimelineCueSchema, af as WrittenResponseDataSchema, ag as WrittenResponseRubricCriterionSchema, ah as WrittenResponseRubricSchema, ai as dictationJsonSchema, aj as fillInTheBlanksJsonSchema, ak as gapSelectJsonSchema, al as itemGroupJsonSchema, am as jsonSchemaFor, an as multipleChoiceJsonSchema, ao as readAloudJsonSchema, ap as stimulusJsonSchema, aq as validateActivity, ar as validateItemGroup, as as writtenResponseJsonSchema } from './index-
|
|
1
|
+
import './activity-HH8dxN1v.cjs';
|
|
2
|
+
export { A as AiPermissionsSchema, B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, j as MediaSchema, l as MediaTimelineSchema, m as MediaTrackSchema, n as MediaUrlSchema, o as MultipleChoiceDataSchema, p as MultipleChoiceOptionMediaSchema, q as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as ReadAloudDataSchema, r as ReadAloudSlowMediaSchema, s as RedactedActivity, t as RedactedBlankConfig, u as RedactedBlankConfigSchema, v as RedactedDictationData, w as RedactedDictationDataSchema, x as RedactedDictationSlowMedia, y as RedactedDictationSlowMediaSchema, z as RedactedFillInTheBlanksData, C as RedactedFillInTheBlanksDataSchema, E as RedactedGapSelectBank, H as RedactedGapSelectBankSchema, J as RedactedGapSelectChoice, K as RedactedGapSelectChoiceSchema, L as RedactedGapSelectData, O as RedactedGapSelectDataSchema, P as RedactedGapSelectGap, Q as RedactedGapSelectGapSchema, S as RedactedItemGroupSchema, T as RedactedMediaSchema, U as RedactedMultipleChoiceData, V as RedactedMultipleChoiceDataSchema, W as RedactedMultipleChoiceOption, X as RedactedMultipleChoiceOptionMedia, Y as RedactedMultipleChoiceOptionMediaSchema, Z as RedactedMultipleChoiceOptionSchema, _ as RedactedReadAloudData, $ as RedactedReadAloudDataSchema, a0 as RedactedStimulus, a1 as RedactedStimulusSchema, a2 as RedactedWrittenResponseData, a3 as RedactedWrittenResponseDataSchema, a9 as StimulusSchema, aa as TextMatchPolicySchema, ac as TimelineChapterSchema, ae as TimelineCueSchema, af as WrittenResponseDataSchema, ag as WrittenResponseRubricCriterionSchema, ah as WrittenResponseRubricSchema, ai as dictationJsonSchema, aj as fillInTheBlanksJsonSchema, ak as gapSelectJsonSchema, al as itemGroupJsonSchema, am as jsonSchemaFor, an as multipleChoiceJsonSchema, ao as readAloudJsonSchema, ap as stimulusJsonSchema, aq as validateActivity, ar as validateItemGroup, as as writtenResponseJsonSchema } from './index-DejnxQpK.cjs';
|
|
3
3
|
import 'zod/v4';
|
package/dist/schemas.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import './activity-
|
|
2
|
-
export { A as AiPermissionsSchema, B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, j as MediaSchema, l as MediaTimelineSchema, m as MediaTrackSchema, n as MediaUrlSchema, o as MultipleChoiceDataSchema, p as MultipleChoiceOptionMediaSchema, q as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as ReadAloudDataSchema, r as ReadAloudSlowMediaSchema, s as RedactedActivity, t as RedactedBlankConfig, u as RedactedBlankConfigSchema, v as RedactedDictationData, w as RedactedDictationDataSchema, x as RedactedDictationSlowMedia, y as RedactedDictationSlowMediaSchema, z as RedactedFillInTheBlanksData, C as RedactedFillInTheBlanksDataSchema, E as RedactedGapSelectBank, H as RedactedGapSelectBankSchema, J as RedactedGapSelectChoice, K as RedactedGapSelectChoiceSchema, L as RedactedGapSelectData, O as RedactedGapSelectDataSchema, P as RedactedGapSelectGap, Q as RedactedGapSelectGapSchema, S as RedactedItemGroupSchema, T as RedactedMediaSchema, U as RedactedMultipleChoiceData, V as RedactedMultipleChoiceDataSchema, W as RedactedMultipleChoiceOption, X as RedactedMultipleChoiceOptionMedia, Y as RedactedMultipleChoiceOptionMediaSchema, Z as RedactedMultipleChoiceOptionSchema, _ as RedactedReadAloudData, $ as RedactedReadAloudDataSchema, a0 as RedactedStimulus, a1 as RedactedStimulusSchema, a2 as RedactedWrittenResponseData, a3 as RedactedWrittenResponseDataSchema, a9 as StimulusSchema, aa as TextMatchPolicySchema, ac as TimelineChapterSchema, ae as TimelineCueSchema, af as WrittenResponseDataSchema, ag as WrittenResponseRubricCriterionSchema, ah as WrittenResponseRubricSchema, ai as dictationJsonSchema, aj as fillInTheBlanksJsonSchema, ak as gapSelectJsonSchema, al as itemGroupJsonSchema, am as jsonSchemaFor, an as multipleChoiceJsonSchema, ao as readAloudJsonSchema, ap as stimulusJsonSchema, aq as validateActivity, ar as validateItemGroup, as as writtenResponseJsonSchema } from './index-
|
|
1
|
+
import './activity-HH8dxN1v.js';
|
|
2
|
+
export { A as AiPermissionsSchema, B as BlankConfigSchema, D as DictationDataSchema, a as DictationEquivalenceSchema, b as DictationSlowMediaSchema, c as DictationToleranceSchema, F as FeedbackSchema, d as FillInTheBlanksDataSchema, G as GapSelectBankSchema, e as GapSelectChoiceSchema, f as GapSelectDataSchema, g as GapSelectGapSchema, h as ItemGroupSchema, M as MediaPlaybackSchema, j as MediaSchema, l as MediaTimelineSchema, m as MediaTrackSchema, n as MediaUrlSchema, o as MultipleChoiceDataSchema, p as MultipleChoiceOptionMediaSchema, q as MultipleChoiceOptionSchema, N as NativeControlHintSchema, R as ReadAloudDataSchema, r as ReadAloudSlowMediaSchema, s as RedactedActivity, t as RedactedBlankConfig, u as RedactedBlankConfigSchema, v as RedactedDictationData, w as RedactedDictationDataSchema, x as RedactedDictationSlowMedia, y as RedactedDictationSlowMediaSchema, z as RedactedFillInTheBlanksData, C as RedactedFillInTheBlanksDataSchema, E as RedactedGapSelectBank, H as RedactedGapSelectBankSchema, J as RedactedGapSelectChoice, K as RedactedGapSelectChoiceSchema, L as RedactedGapSelectData, O as RedactedGapSelectDataSchema, P as RedactedGapSelectGap, Q as RedactedGapSelectGapSchema, S as RedactedItemGroupSchema, T as RedactedMediaSchema, U as RedactedMultipleChoiceData, V as RedactedMultipleChoiceDataSchema, W as RedactedMultipleChoiceOption, X as RedactedMultipleChoiceOptionMedia, Y as RedactedMultipleChoiceOptionMediaSchema, Z as RedactedMultipleChoiceOptionSchema, _ as RedactedReadAloudData, $ as RedactedReadAloudDataSchema, a0 as RedactedStimulus, a1 as RedactedStimulusSchema, a2 as RedactedWrittenResponseData, a3 as RedactedWrittenResponseDataSchema, a9 as StimulusSchema, aa as TextMatchPolicySchema, ac as TimelineChapterSchema, ae as TimelineCueSchema, af as WrittenResponseDataSchema, ag as WrittenResponseRubricCriterionSchema, ah as WrittenResponseRubricSchema, ai as dictationJsonSchema, aj as fillInTheBlanksJsonSchema, ak as gapSelectJsonSchema, al as itemGroupJsonSchema, am as jsonSchemaFor, an as multipleChoiceJsonSchema, ao as readAloudJsonSchema, ap as stimulusJsonSchema, aq as validateActivity, ar as validateItemGroup, as as writtenResponseJsonSchema } from './index-BrBBUb1i.js';
|
|
3
3
|
import 'zod/v4';
|
package/dist/scoring.cjs
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunkCOBK2RUXcjs = require('./chunk-COBK2RUX.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
@@ -59,5 +59,5 @@ var _chunkD4TOPSHVcjs = require('./chunk-D4TOPSHV.cjs');
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
exports.DEFAULT_PASS_THRESHOLD =
|
|
62
|
+
exports.DEFAULT_PASS_THRESHOLD = _chunkCOBK2RUXcjs.DEFAULT_PASS_THRESHOLD; exports.DICTATION_MAX_ACCEPTED_TRANSCRIPTS = _chunkD4TOPSHVcjs.DICTATION_MAX_ACCEPTED_TRANSCRIPTS; exports.DICTATION_MAX_EQUIVALENCES = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCES; exports.DICTATION_MAX_EQUIVALENCE_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_EQUIVALENCE_LENGTH; exports.DICTATION_MAX_TEXT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TEXT_LENGTH; exports.DICTATION_MAX_TRANSCRIPT_LENGTH = _chunkD4TOPSHVcjs.DICTATION_MAX_TRANSCRIPT_LENGTH; exports.READ_ALOUD_MAX_DIMENSION_WEIGHT = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_DIMENSION_WEIGHT; exports.READ_ALOUD_MAX_REFERENCE_LENGTH = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_REFERENCE_LENGTH; exports.READ_ALOUD_MAX_SECONDS = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_SECONDS; exports.READ_ALOUD_MAX_TAKES = _chunkD4TOPSHVcjs.READ_ALOUD_MAX_TAKES; exports.SPEECH_ASSESSMENT_MAX_WORDS = _chunkD4TOPSHVcjs.SPEECH_ASSESSMENT_MAX_WORDS; exports.alignDictation = _chunkD4TOPSHVcjs.alignDictation; exports.alignReadAloud = _chunkCOBK2RUXcjs.alignReadAloud; exports.classifyBand = _chunkCOBK2RUXcjs.classifyBand; exports.composeAssessmentScore = _chunkCOBK2RUXcjs.composeAssessmentScore; exports.computePassThreshold = _chunkCOBK2RUXcjs.computePassThreshold; exports.dictationReferenceWords = _chunkD4TOPSHVcjs.dictationReferenceWords; exports.diffDictationChars = _chunkCOBK2RUXcjs.diffDictationChars; exports.evaluate = _chunkCOBK2RUXcjs.evaluate; exports.gradeReadAloud = _chunkCOBK2RUXcjs.gradeReadAloud; exports.gte = _chunkCOBK2RUXcjs.gte; exports.inspectWav = _chunkCOBK2RUXcjs.inspectWav; exports.levenshteinDistance = _chunkD4TOPSHVcjs.levenshteinDistance; exports.matchText = _chunkD4TOPSHVcjs.matchText; exports.outcomeFromUnscorable = _chunkCOBK2RUXcjs.outcomeFromUnscorable; exports.roundGrade = _chunkCOBK2RUXcjs.roundGrade; exports.score = _chunkCOBK2RUXcjs.score; exports.validateSpeechAssessment = _chunkCOBK2RUXcjs.validateSpeechAssessment;
|
|
63
63
|
//# sourceMappingURL=scoring.cjs.map
|
package/dist/scoring.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Y as ItemOutcome, R as Grader, E as DictationData, a as ActivityData, a6 as ReadAloudData, aj as ValidationResult, a9 as ReadAloudLearnerResponse, Q as GradeRecord, Z as LearnerResponse, f as ActivityType, af as ScoringResult } from './activity-
|
|
2
|
-
export { ac as RecordingRef, ag as TextMatchPolicy, ah as TextMatchResult, ay as levenshteinDistance, az as matchText } from './activity-
|
|
1
|
+
import { Y as ItemOutcome, R as Grader, E as DictationData, a as ActivityData, a6 as ReadAloudData, aj as ValidationResult, a9 as ReadAloudLearnerResponse, Q as GradeRecord, Z as LearnerResponse, f as ActivityType, af as ScoringResult } from './activity-HH8dxN1v.cjs';
|
|
2
|
+
export { ac as RecordingRef, ag as TextMatchPolicy, ah as TextMatchResult, ay as levenshteinDistance, az as matchText } from './activity-HH8dxN1v.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Rounding for assessment scores.
|
|
@@ -144,8 +144,13 @@ interface SectionScore {
|
|
|
144
144
|
passed: boolean;
|
|
145
145
|
/** Threshold this section was judged against, after any override. */
|
|
146
146
|
appliedThreshold: number | null;
|
|
147
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* Slots still awaiting a grade — including any in {@link rejectedSlotIds},
|
|
149
|
+
* whose grade came back unusable and is still owed.
|
|
150
|
+
*/
|
|
148
151
|
pendingSlotIds: string[];
|
|
152
|
+
/** See {@link AssessmentScore.rejectedSlotIds}; this section's share of them. */
|
|
153
|
+
rejectedSlotIds?: string[];
|
|
149
154
|
/** Slots that can never be graded, excluded from the denominator. */
|
|
150
155
|
unscorableSlotIds: string[];
|
|
151
156
|
}
|
|
@@ -169,10 +174,31 @@ interface AssessmentScore {
|
|
|
169
174
|
* `provisional` while any item is still awaiting a grade — the total is
|
|
170
175
|
* computed over what HAS been graded, so it can still move. Do not record a
|
|
171
176
|
* provisional score as final. Items that can NEVER be graded
|
|
172
|
-
* (`unscorableSlotIds`) do not hold the result provisional
|
|
177
|
+
* (`unscorableSlotIds`) do not hold the result provisional; items whose
|
|
178
|
+
* grade was rejected (`rejectedSlotIds`) do.
|
|
173
179
|
*/
|
|
174
180
|
status: 'final' | 'provisional';
|
|
181
|
+
/**
|
|
182
|
+
* Slots still awaiting a grade, excluded from the denominator. `status` is
|
|
183
|
+
* `provisional` exactly when this is not empty. Includes every slot in
|
|
184
|
+
* {@link rejectedSlotIds}.
|
|
185
|
+
*/
|
|
175
186
|
pendingSlotIds: string[];
|
|
187
|
+
/**
|
|
188
|
+
* Slots whose outcome claimed a grade that cannot be one: a `score` or
|
|
189
|
+
* `maxScore` that is not a finite number, a `maxScore` of 0 or less, or a
|
|
190
|
+
* score below 0 or above its `maxScore` (beyond float noise of one part in a
|
|
191
|
+
* billion) — and deferred outcomes `outcomeFromGrade` returned for such a
|
|
192
|
+
* record (`reason: 'grade_rejected'`). Each is also in
|
|
193
|
+
* {@link pendingSlotIds}: its real grade is still owed, so it holds the
|
|
194
|
+
* result `provisional` with `passed: null` rather than being counted (NaN or
|
|
195
|
+
* 4300% on the record) or dropped (a failing grade vanishing into a final
|
|
196
|
+
* pass). Re-grade these slots; waiting will not fix them.
|
|
197
|
+
*
|
|
198
|
+
* Present only when at least one slot was rejected, so a result without one
|
|
199
|
+
* is exactly what earlier versions returned.
|
|
200
|
+
*/
|
|
201
|
+
rejectedSlotIds?: string[];
|
|
176
202
|
/** Slots that can never be graded. Excluded from the denominator. */
|
|
177
203
|
unscorableSlotIds: string[];
|
|
178
204
|
}
|
|
@@ -184,7 +210,9 @@ interface AssessmentScore {
|
|
|
184
210
|
* comparison, so the number a learner is shown is the number that decides the
|
|
185
211
|
* outcome. Items still awaiting a grade are excluded from the denominator
|
|
186
212
|
* rather than counted as zero, and the result is reported as `provisional`
|
|
187
|
-
* until every item has a grade.
|
|
213
|
+
* until every item has a grade. An outcome whose score cannot be a grade out of
|
|
214
|
+
* its `maxScore` is not a grade either: it is held the same way and named in
|
|
215
|
+
* `rejectedSlotIds`.
|
|
188
216
|
*/
|
|
189
217
|
declare function composeAssessmentScore(sections: readonly AssessmentSectionInput[], policy: CompositionPolicy): AssessmentScore;
|
|
190
218
|
|
package/dist/scoring.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Y as ItemOutcome, R as Grader, E as DictationData, a as ActivityData, a6 as ReadAloudData, aj as ValidationResult, a9 as ReadAloudLearnerResponse, Q as GradeRecord, Z as LearnerResponse, f as ActivityType, af as ScoringResult } from './activity-
|
|
2
|
-
export { ac as RecordingRef, ag as TextMatchPolicy, ah as TextMatchResult, ay as levenshteinDistance, az as matchText } from './activity-
|
|
1
|
+
import { Y as ItemOutcome, R as Grader, E as DictationData, a as ActivityData, a6 as ReadAloudData, aj as ValidationResult, a9 as ReadAloudLearnerResponse, Q as GradeRecord, Z as LearnerResponse, f as ActivityType, af as ScoringResult } from './activity-HH8dxN1v.js';
|
|
2
|
+
export { ac as RecordingRef, ag as TextMatchPolicy, ah as TextMatchResult, ay as levenshteinDistance, az as matchText } from './activity-HH8dxN1v.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Rounding for assessment scores.
|
|
@@ -144,8 +144,13 @@ interface SectionScore {
|
|
|
144
144
|
passed: boolean;
|
|
145
145
|
/** Threshold this section was judged against, after any override. */
|
|
146
146
|
appliedThreshold: number | null;
|
|
147
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* Slots still awaiting a grade — including any in {@link rejectedSlotIds},
|
|
149
|
+
* whose grade came back unusable and is still owed.
|
|
150
|
+
*/
|
|
148
151
|
pendingSlotIds: string[];
|
|
152
|
+
/** See {@link AssessmentScore.rejectedSlotIds}; this section's share of them. */
|
|
153
|
+
rejectedSlotIds?: string[];
|
|
149
154
|
/** Slots that can never be graded, excluded from the denominator. */
|
|
150
155
|
unscorableSlotIds: string[];
|
|
151
156
|
}
|
|
@@ -169,10 +174,31 @@ interface AssessmentScore {
|
|
|
169
174
|
* `provisional` while any item is still awaiting a grade — the total is
|
|
170
175
|
* computed over what HAS been graded, so it can still move. Do not record a
|
|
171
176
|
* provisional score as final. Items that can NEVER be graded
|
|
172
|
-
* (`unscorableSlotIds`) do not hold the result provisional
|
|
177
|
+
* (`unscorableSlotIds`) do not hold the result provisional; items whose
|
|
178
|
+
* grade was rejected (`rejectedSlotIds`) do.
|
|
173
179
|
*/
|
|
174
180
|
status: 'final' | 'provisional';
|
|
181
|
+
/**
|
|
182
|
+
* Slots still awaiting a grade, excluded from the denominator. `status` is
|
|
183
|
+
* `provisional` exactly when this is not empty. Includes every slot in
|
|
184
|
+
* {@link rejectedSlotIds}.
|
|
185
|
+
*/
|
|
175
186
|
pendingSlotIds: string[];
|
|
187
|
+
/**
|
|
188
|
+
* Slots whose outcome claimed a grade that cannot be one: a `score` or
|
|
189
|
+
* `maxScore` that is not a finite number, a `maxScore` of 0 or less, or a
|
|
190
|
+
* score below 0 or above its `maxScore` (beyond float noise of one part in a
|
|
191
|
+
* billion) — and deferred outcomes `outcomeFromGrade` returned for such a
|
|
192
|
+
* record (`reason: 'grade_rejected'`). Each is also in
|
|
193
|
+
* {@link pendingSlotIds}: its real grade is still owed, so it holds the
|
|
194
|
+
* result `provisional` with `passed: null` rather than being counted (NaN or
|
|
195
|
+
* 4300% on the record) or dropped (a failing grade vanishing into a final
|
|
196
|
+
* pass). Re-grade these slots; waiting will not fix them.
|
|
197
|
+
*
|
|
198
|
+
* Present only when at least one slot was rejected, so a result without one
|
|
199
|
+
* is exactly what earlier versions returned.
|
|
200
|
+
*/
|
|
201
|
+
rejectedSlotIds?: string[];
|
|
176
202
|
/** Slots that can never be graded. Excluded from the denominator. */
|
|
177
203
|
unscorableSlotIds: string[];
|
|
178
204
|
}
|
|
@@ -184,7 +210,9 @@ interface AssessmentScore {
|
|
|
184
210
|
* comparison, so the number a learner is shown is the number that decides the
|
|
185
211
|
* outcome. Items still awaiting a grade are excluded from the denominator
|
|
186
212
|
* rather than counted as zero, and the result is reported as `provisional`
|
|
187
|
-
* until every item has a grade.
|
|
213
|
+
* until every item has a grade. An outcome whose score cannot be a grade out of
|
|
214
|
+
* its `maxScore` is not a grade either: it is held the same way and named in
|
|
215
|
+
* `rejectedSlotIds`.
|
|
188
216
|
*/
|
|
189
217
|
declare function composeAssessmentScore(sections: readonly AssessmentSectionInput[], policy: CompositionPolicy): AssessmentScore;
|
|
190
218
|
|
package/dist/scoring.js
CHANGED
package/dist/xapi.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ao as XAPIActor, af as ScoringResult, aq as XAPIContext, au as XAPIResult, aw as XAPIStatement } from './activity-
|
|
1
|
+
import { ao as XAPIActor, af as ScoringResult, aq as XAPIContext, au as XAPIResult, aw as XAPIStatement } from './activity-HH8dxN1v.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* The set of xAPI verbs emitted by SDK activities, keyed by a stable
|
package/dist/xapi.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ao as XAPIActor, af as ScoringResult, aq as XAPIContext, au as XAPIResult, aw as XAPIStatement } from './activity-
|
|
1
|
+
import { ao as XAPIActor, af as ScoringResult, aq as XAPIContext, au as XAPIResult, aw as XAPIStatement } from './activity-HH8dxN1v.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* The set of xAPI verbs emitted by SDK activities, keyed by a stable
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intellectif/lk-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Framework-free assessment core: Zod activity schemas, pure scoring, rubric & deferred grading, weighted assessment composition, exam attempt plans, and xAPI 1.0.3.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"assessment",
|
package/vectors/README.md
CHANGED
|
@@ -70,8 +70,12 @@ a known hazard carry a `note` saying why they exist.
|
|
|
70
70
|
edges, negative zero, half-even ties and near-ties, and bands that share a
|
|
71
71
|
minimum.
|
|
72
72
|
- **`countWords`**, **`seededShuffle`** in both versions, **`gradeFromRubric`**
|
|
73
|
-
including its unscorable paths
|
|
74
|
-
three ways a pass
|
|
73
|
+
including its unscorable paths (a negative weight and an overflowing weight
|
|
74
|
+
sum among them), its opt-in `rounding` option on each of the three ways a pass
|
|
75
|
+
is decided, and **`outcomeFromGrade`**: a record lifted as a grade, and each
|
|
76
|
+
kind of record it refuses as `grade_rejected` — `NaN`, `Infinity`, a negative,
|
|
77
|
+
raw points against `maxScore` 1, a numeric string, a `maxScore` of 0 or less
|
|
78
|
+
or not finite — beside the float noise it accepts, up to the exact edge.
|
|
75
79
|
- **`gradeReadAloud`**: every reason a pronunciation assessment is refused
|
|
76
80
|
rather than scored — each `unscorable` code — the weighted total over the
|
|
77
81
|
authored dimensions, a blank take, a dimension scored `0` against one that was
|
|
@@ -97,7 +101,9 @@ a known hazard carry a `note` saying why they exist.
|
|
|
97
101
|
are reported unread instead of guessed at.
|
|
98
102
|
- **`scoredItemsFromPlan`**, which decides what a stored paper's denominator is
|
|
99
103
|
when an outcome is missing, and **`composeAssessmentScore`** across weights,
|
|
100
|
-
points, provisional and unscorable items, and section thresholds
|
|
104
|
+
points, provisional, rejected and unscorable items, and section thresholds —
|
|
105
|
+
including the outcomes earlier releases stored for a grade that was never
|
|
106
|
+
one, which now hold a result provisional instead of finalising it.
|
|
101
107
|
|
|
102
108
|
## What it does not cover
|
|
103
109
|
|