@intellectif/lk-core 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +30 -1
  3. package/dist/{activity-f0bgZSTP.d.cts → activity-CYc7SD3d.d.cts} +157 -11
  4. package/dist/{activity-f0bgZSTP.d.ts → activity-CYc7SD3d.d.ts} +157 -11
  5. package/dist/ai-check.cjs +103 -15
  6. package/dist/ai-check.cjs.map +1 -1
  7. package/dist/ai-check.d.cts +9 -5
  8. package/dist/ai-check.d.ts +9 -5
  9. package/dist/ai-check.js +102 -14
  10. package/dist/ai-check.js.map +1 -1
  11. package/dist/{chunk-BIJCO2HM.js → chunk-5UCR4UNR.js} +301 -20
  12. package/dist/chunk-5UCR4UNR.js.map +1 -0
  13. package/dist/{chunk-FVZJ4X3Y.cjs → chunk-OPMY2MNS.cjs} +302 -21
  14. package/dist/chunk-OPMY2MNS.cjs.map +1 -0
  15. package/dist/{chunk-MMEQKFFQ.js → chunk-Q7MV3IXJ.js} +196 -8
  16. package/dist/chunk-Q7MV3IXJ.js.map +1 -0
  17. package/dist/{chunk-COBK2RUX.cjs → chunk-WQVZPIN7.cjs} +197 -9
  18. package/dist/chunk-WQVZPIN7.cjs.map +1 -0
  19. package/dist/{index-BA9f2ydg.d.ts → index-0Z3-nnAP.d.ts} +1 -1
  20. package/dist/{index-7S3-TLjT.d.cts → index-CxxiNSSH.d.cts} +1 -1
  21. package/dist/index.cjs +56 -9
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +93 -10
  24. package/dist/index.d.ts +93 -10
  25. package/dist/index.js +52 -5
  26. package/dist/index.js.map +1 -1
  27. package/dist/schemas.d.cts +2 -2
  28. package/dist/schemas.d.ts +2 -2
  29. package/dist/scoring.cjs +14 -2
  30. package/dist/scoring.cjs.map +1 -1
  31. package/dist/scoring.d.cts +240 -4
  32. package/dist/scoring.d.ts +240 -4
  33. package/dist/scoring.js +13 -1
  34. package/dist/xapi.d.cts +1 -1
  35. package/dist/xapi.d.ts +1 -1
  36. package/package.json +1 -1
  37. package/vectors/README.md +10 -0
  38. package/vectors/scoring.json +2127 -1
  39. package/dist/chunk-BIJCO2HM.js.map +0 -1
  40. package/dist/chunk-COBK2RUX.cjs.map +0 -1
  41. package/dist/chunk-FVZJ4X3Y.cjs.map +0 -1
  42. package/dist/chunk-MMEQKFFQ.js.map +0 -1
package/dist/scoring.js CHANGED
@@ -1,19 +1,25 @@
1
1
  import {
2
+ DEFAULT_ITEM_SCORING_POLICY,
2
3
  DEFAULT_PASS_THRESHOLD,
4
+ ITEM_SCORING_MAX_RETRIES,
3
5
  alignReadAloud,
4
6
  classifyBand,
5
7
  composeAssessmentScore,
6
8
  computePassThreshold,
7
9
  diffDictationChars,
8
10
  evaluate,
11
+ evaluateTries,
9
12
  gradeReadAloud,
10
13
  gte,
11
14
  inspectWav,
12
15
  outcomeFromUnscorable,
16
+ resolveItemScoringPolicy,
13
17
  roundGrade,
14
18
  score,
19
+ scoreTries,
20
+ validateItemScoringPolicy,
15
21
  validateSpeechAssessment
16
- } from "./chunk-MMEQKFFQ.js";
22
+ } from "./chunk-Q7MV3IXJ.js";
17
23
  import {
18
24
  DICTATION_MAX_ACCEPTED_TRANSCRIPTS,
19
25
  DICTATION_MAX_EQUIVALENCES,
@@ -31,12 +37,14 @@ import {
31
37
  matchText
32
38
  } from "./chunk-D3GP5MET.js";
33
39
  export {
40
+ DEFAULT_ITEM_SCORING_POLICY,
34
41
  DEFAULT_PASS_THRESHOLD,
35
42
  DICTATION_MAX_ACCEPTED_TRANSCRIPTS,
36
43
  DICTATION_MAX_EQUIVALENCES,
37
44
  DICTATION_MAX_EQUIVALENCE_LENGTH,
38
45
  DICTATION_MAX_TEXT_LENGTH,
39
46
  DICTATION_MAX_TRANSCRIPT_LENGTH,
47
+ ITEM_SCORING_MAX_RETRIES,
40
48
  READ_ALOUD_MAX_DIMENSION_WEIGHT,
41
49
  READ_ALOUD_MAX_REFERENCE_LENGTH,
42
50
  READ_ALOUD_MAX_SECONDS,
@@ -50,14 +58,18 @@ export {
50
58
  dictationReferenceWords,
51
59
  diffDictationChars,
52
60
  evaluate,
61
+ evaluateTries,
53
62
  gradeReadAloud,
54
63
  gte,
55
64
  inspectWav,
56
65
  levenshteinDistance,
57
66
  matchText,
58
67
  outcomeFromUnscorable,
68
+ resolveItemScoringPolicy,
59
69
  roundGrade,
60
70
  score,
71
+ scoreTries,
72
+ validateItemScoringPolicy,
61
73
  validateSpeechAssessment
62
74
  };
63
75
  //# sourceMappingURL=scoring.js.map
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-f0bgZSTP.cjs';
1
+ import { av as XAPIActor, am as ScoringResult, ax as XAPIContext, aB as XAPIResult, aD as XAPIStatement } from './activity-CYc7SD3d.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-f0bgZSTP.js';
1
+ import { av as XAPIActor, am as ScoringResult, ax as XAPIContext, aB as XAPIResult, aD as XAPIStatement } from './activity-CYc7SD3d.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.20.0",
3
+ "version": "0.22.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
@@ -99,6 +99,16 @@ a known hazard carry a `note` saying why they exist.
99
99
  as, across silence, a tone, two channels, two sample rates, a partial last
100
100
  window, an odd chunk's pad byte and WAVE_FORMAT_EXTENSIBLE, and which files
101
101
  are reported unread instead of guessed at.
102
+ - **`scoreTries`**, and the `scoring` option of **`evaluate`** and
103
+ **`evaluateTries`**: what a hint and a try cost — subtracted as a fraction of
104
+ the marks, never below zero, with the floating-point residue under a pass line
105
+ removed — which try counts under `first`, `best` (the earliest of equal ones)
106
+ and `last`, that no try past the policy's allowance is believed, that a hint
107
+ count that cannot be read is none, and that no policy, or an empty one, changes
108
+ nothing. **`resolveItemScoringPolicy`** and **`validateItemScoringPolicy`**
109
+ for the policies refused rather than read — a cost that is not a number, a
110
+ retry cost the first try counting would never charge, too many retries — with
111
+ **`DEFAULT_ITEM_SCORING_POLICY`** and **`ITEM_SCORING_MAX_RETRIES`**.
102
112
  - **`scoredItemsFromPlan`**, which decides what a stored paper's denominator is
103
113
  when an outcome is missing, and **`composeAssessmentScore`** across weights,
104
114
  points, provisional, rejected and unscorable items, and section thresholds —