@intellectif/lk-core 1.9.0 → 1.10.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/dist/schemas.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { At as SCRIPT_MAX_TURNS } from "./registry-Bw9grsCN.js";
2
- import { i as validateItemGroup } from "./item-group-CKZk3txt.js";
3
- import { a as dictationJsonSchema, c as itemGroupJsonSchema, d as readAloudJsonSchema, f as stimulusJsonSchema, i as contentJsonSchema, l as jsonSchemaFor, n as validateMedia, o as fillInTheBlanksJsonSchema, p as writtenResponseJsonSchema, r as validateOptionMedia, s as gapSelectJsonSchema, t as validateActivity, u as multipleChoiceJsonSchema } from "./schemas-BJe3W6Xb.js";
2
+ import { i as validateItemGroup } from "./item-group-Cqng1LPl.js";
3
+ import { a as dictationJsonSchema, c as itemGroupJsonSchema, d as readAloudJsonSchema, f as stimulusJsonSchema, i as contentJsonSchema, l as jsonSchemaFor, n as validateMedia, o as fillInTheBlanksJsonSchema, p as writtenResponseJsonSchema, r as validateOptionMedia, s as gapSelectJsonSchema, t as validateActivity, u as multipleChoiceJsonSchema } from "./schemas-D14-tnNl.js";
4
4
  export { SCRIPT_MAX_TURNS, contentJsonSchema, dictationJsonSchema, fillInTheBlanksJsonSchema, gapSelectJsonSchema, itemGroupJsonSchema, jsonSchemaFor, multipleChoiceJsonSchema, readAloudJsonSchema, stimulusJsonSchema, validateActivity, validateItemGroup, validateMedia, validateOptionMedia, writtenResponseJsonSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intellectif/lk-core",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "Framework-free assessment core: activity validation, pure scoring, rubric & deferred grading, weighted assessment composition, exam attempt plans, and xAPI 1.0.3. Custom activity types take any Standard Schema.",
5
5
  "keywords": [
6
6
  "assessment",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$comment": "Grade-stability corpus for @intellectif/lk-core. Generated by scripts/generate-vectors.mjs from the built package; never edit expectations by hand. Replay with vectors/replay.mjs. See vectors/README.md.",
3
3
  "corpusVersion": 2,
4
- "frozenFrom": "@intellectif/lk-core@1.8.0",
4
+ "frozenFrom": "@intellectif/lk-core@1.9.0",
5
5
  "vectors": [
6
6
  {
7
7
  "args": [
@@ -9513,6 +9513,253 @@
9513
9513
  "fn": "composeAssessmentScore",
9514
9514
  "id": "composeAssessmentScore/accepted/exact-edge-of-float-noise"
9515
9515
  },
9516
+ {
9517
+ "args": [
9518
+ "video",
9519
+ [
9520
+ {
9521
+ "outcome": {
9522
+ "details": [],
9523
+ "feedback": null,
9524
+ "maxScore": 1,
9525
+ "passed": true,
9526
+ "score": 1,
9527
+ "status": "scored"
9528
+ },
9529
+ "points": 1,
9530
+ "slotId": "video.0"
9531
+ },
9532
+ {
9533
+ "outcome": {
9534
+ "details": [],
9535
+ "feedback": null,
9536
+ "maxScore": 1,
9537
+ "passed": false,
9538
+ "score": 0.5,
9539
+ "status": "scored"
9540
+ },
9541
+ "points": 1,
9542
+ "slotId": "video.1"
9543
+ },
9544
+ {
9545
+ "outcome": {
9546
+ "maxScore": 1,
9547
+ "partial": {
9548
+ "hasRecording": true
9549
+ },
9550
+ "reason": "requires_async_grading",
9551
+ "status": "deferred"
9552
+ },
9553
+ "points": 1,
9554
+ "slotId": "video.2"
9555
+ },
9556
+ {
9557
+ "outcome": {
9558
+ "details": [],
9559
+ "feedback": null,
9560
+ "maxScore": 1,
9561
+ "passed": false,
9562
+ "score": 0,
9563
+ "status": "scored"
9564
+ },
9565
+ "points": 1,
9566
+ "slotId": "other.0"
9567
+ }
9568
+ ],
9569
+ {
9570
+ "passThreshold": 0.7,
9571
+ "rounding": {
9572
+ "dp": 2,
9573
+ "mode": "half-up"
9574
+ }
9575
+ }
9576
+ ],
9577
+ "expect": {
9578
+ "passFailureReason": null,
9579
+ "passed": null,
9580
+ "pendingSlotIds": ["video.2"],
9581
+ "score": 0.75,
9582
+ "sections": [
9583
+ {
9584
+ "appliedThreshold": null,
9585
+ "earnedPoints": 1.5,
9586
+ "gradedMaxPoints": 2,
9587
+ "id": "video",
9588
+ "maxPoints": 3,
9589
+ "normalizedWeight": 1,
9590
+ "passed": true,
9591
+ "pendingSlotIds": ["video.2"],
9592
+ "score": 0.75,
9593
+ "unscorableSlotIds": [],
9594
+ "weight": 1
9595
+ }
9596
+ ],
9597
+ "status": "provisional",
9598
+ "unscorableSlotIds": []
9599
+ },
9600
+ "fn": "composeTimelineScore",
9601
+ "id": "composeTimelineScore/spoken-answer-graded-later-is-provisional",
9602
+ "note": "A spoken answer awaiting its grade holds the video provisional. It is never counted as zero."
9603
+ },
9604
+ {
9605
+ "args": [
9606
+ "video",
9607
+ [
9608
+ {
9609
+ "outcome": {
9610
+ "details": [],
9611
+ "feedback": null,
9612
+ "maxScore": 1,
9613
+ "passed": true,
9614
+ "score": 1,
9615
+ "status": "scored"
9616
+ },
9617
+ "points": 1,
9618
+ "slotId": "video.0"
9619
+ },
9620
+ {
9621
+ "outcome": {
9622
+ "details": [],
9623
+ "feedback": null,
9624
+ "maxScore": 1,
9625
+ "passed": false,
9626
+ "score": 0.5,
9627
+ "status": "scored"
9628
+ },
9629
+ "points": 1,
9630
+ "slotId": "video.1"
9631
+ },
9632
+ {
9633
+ "outcome": {
9634
+ "maxScore": 1,
9635
+ "pendingGrade": {
9636
+ "feedback": null,
9637
+ "maxScore": 1,
9638
+ "passed": false,
9639
+ "score": 0.55
9640
+ },
9641
+ "reason": "awaiting_human_review",
9642
+ "status": "deferred"
9643
+ },
9644
+ "points": 1,
9645
+ "slotId": "video.2"
9646
+ }
9647
+ ],
9648
+ {
9649
+ "passThreshold": 0.7,
9650
+ "rounding": {
9651
+ "dp": 2,
9652
+ "mode": "half-up"
9653
+ }
9654
+ }
9655
+ ],
9656
+ "expect": {
9657
+ "passFailureReason": null,
9658
+ "passed": null,
9659
+ "pendingSlotIds": ["video.2"],
9660
+ "score": 0.75,
9661
+ "sections": [
9662
+ {
9663
+ "appliedThreshold": null,
9664
+ "earnedPoints": 1.5,
9665
+ "gradedMaxPoints": 2,
9666
+ "id": "video",
9667
+ "maxPoints": 3,
9668
+ "normalizedWeight": 1,
9669
+ "passed": true,
9670
+ "pendingSlotIds": ["video.2"],
9671
+ "score": 0.75,
9672
+ "unscorableSlotIds": [],
9673
+ "weight": 1
9674
+ }
9675
+ ],
9676
+ "status": "provisional",
9677
+ "unscorableSlotIds": []
9678
+ },
9679
+ "fn": "composeTimelineScore",
9680
+ "id": "composeTimelineScore/spoken-answer-awaiting-a-person-is-provisional",
9681
+ "note": "A model's grade a routing rule held for a person does not count: the video stays provisional."
9682
+ },
9683
+ {
9684
+ "args": [
9685
+ "video",
9686
+ [
9687
+ {
9688
+ "outcome": {
9689
+ "details": [],
9690
+ "feedback": null,
9691
+ "maxScore": 1,
9692
+ "passed": true,
9693
+ "score": 1,
9694
+ "status": "scored"
9695
+ },
9696
+ "points": 1,
9697
+ "slotId": "video.0"
9698
+ },
9699
+ {
9700
+ "outcome": {
9701
+ "details": [],
9702
+ "feedback": null,
9703
+ "maxScore": 1,
9704
+ "passed": false,
9705
+ "score": 0.5,
9706
+ "status": "scored"
9707
+ },
9708
+ "points": 1,
9709
+ "slotId": "video.1"
9710
+ },
9711
+ {
9712
+ "outcome": {
9713
+ "feedback": null,
9714
+ "grade": {
9715
+ "feedback": null,
9716
+ "maxScore": 1,
9717
+ "passed": true,
9718
+ "score": 0.8
9719
+ },
9720
+ "maxScore": 1,
9721
+ "passed": true,
9722
+ "score": 0.8,
9723
+ "status": "graded"
9724
+ },
9725
+ "points": 1,
9726
+ "slotId": "video.2"
9727
+ }
9728
+ ],
9729
+ {
9730
+ "passThreshold": 0.7,
9731
+ "rounding": {
9732
+ "dp": 2,
9733
+ "mode": "half-up"
9734
+ }
9735
+ }
9736
+ ],
9737
+ "expect": {
9738
+ "passFailureReason": null,
9739
+ "passed": true,
9740
+ "pendingSlotIds": [],
9741
+ "score": 0.77,
9742
+ "sections": [
9743
+ {
9744
+ "appliedThreshold": null,
9745
+ "earnedPoints": 2.3,
9746
+ "gradedMaxPoints": 3,
9747
+ "id": "video",
9748
+ "maxPoints": 3,
9749
+ "normalizedWeight": 1,
9750
+ "passed": true,
9751
+ "pendingSlotIds": [],
9752
+ "score": 0.77,
9753
+ "unscorableSlotIds": [],
9754
+ "weight": 1
9755
+ }
9756
+ ],
9757
+ "status": "final",
9758
+ "unscorableSlotIds": []
9759
+ },
9760
+ "fn": "composeTimelineScore",
9761
+ "id": "composeTimelineScore/spoken-answer-graded-is-final"
9762
+ },
9516
9763
  {
9517
9764
  "args": [
9518
9765
  [