@intellectif/lk-core 1.12.0 → 1.14.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 (79) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/dist/ai-check.cjs +2 -2
  4. package/dist/ai-check.d.cts +1 -1
  5. package/dist/ai-check.d.ts +1 -1
  6. package/dist/ai-check.js +2 -2
  7. package/dist/{ai-Cu17iVHa.d.cts → ai-mC-5XhBc.d.cts} +212 -5
  8. package/dist/ai-mC-5XhBc.d.cts.map +1 -0
  9. package/dist/{ai-Cu17iVHa.d.ts → ai-mC-5XhBc.d.ts} +212 -5
  10. package/dist/ai-mC-5XhBc.d.ts.map +1 -0
  11. package/dist/{ai-writing-gO4GRscd.cjs → ai-writing-Bm2TUWQ-.cjs} +24 -5
  12. package/dist/ai-writing-Bm2TUWQ-.cjs.map +1 -0
  13. package/dist/{ai-writing-BgeeCOl7.js → ai-writing-D3oREPsp.js} +24 -5
  14. package/dist/ai-writing-D3oREPsp.js.map +1 -0
  15. package/dist/{index-BTZWUwOe.d.ts → index-2UQ5v6NZ.d.ts} +2 -2
  16. package/dist/{index-BTZWUwOe.d.ts.map → index-2UQ5v6NZ.d.ts.map} +1 -1
  17. package/dist/{index-B1zEN1Ur.d.ts → index-BudO4ES2.d.ts} +2 -2
  18. package/dist/{index-B1zEN1Ur.d.ts.map → index-BudO4ES2.d.ts.map} +1 -1
  19. package/dist/{index-BfUyl6ml.d.ts → index-CFKxHXAY.d.ts} +33 -4
  20. package/dist/index-CFKxHXAY.d.ts.map +1 -0
  21. package/dist/{index-DjZ1vIVg.d.cts → index-CagMlF4b.d.cts} +33 -4
  22. package/dist/index-CagMlF4b.d.cts.map +1 -0
  23. package/dist/{index-CpamCGyZ.d.cts → index-CqmNcMFM.d.cts} +2 -2
  24. package/dist/{index-CpamCGyZ.d.cts.map → index-CqmNcMFM.d.cts.map} +1 -1
  25. package/dist/{index-DYnacygI.d.cts → index-MgPVCiSJ.d.cts} +2 -2
  26. package/dist/{index-DYnacygI.d.cts.map → index-MgPVCiSJ.d.cts.map} +1 -1
  27. package/dist/index.cjs +17 -7
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +90 -13
  30. package/dist/index.d.cts.map +1 -1
  31. package/dist/index.d.ts +90 -13
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +12 -8
  34. package/dist/index.js.map +1 -1
  35. package/dist/{item-group-CnlBLM9Z.js → item-group-BIl1ZJHg.js} +55 -22
  36. package/dist/item-group-BIl1ZJHg.js.map +1 -0
  37. package/dist/{item-group-CRZNJ08j.cjs → item-group-DOk562oI.cjs} +55 -22
  38. package/dist/item-group-DOk562oI.cjs.map +1 -0
  39. package/dist/{registry-BClnM5V3.js → registry-CroAI5nc.js} +898 -8
  40. package/dist/registry-CroAI5nc.js.map +1 -0
  41. package/dist/{registry-DgLcT4rZ.cjs → registry-Dw19lNo2.cjs} +933 -7
  42. package/dist/registry-Dw19lNo2.cjs.map +1 -0
  43. package/dist/{schemas-BA8Y8z-S.cjs → schemas-CEv2otNw.cjs} +3 -3
  44. package/dist/{schemas-BA8Y8z-S.cjs.map → schemas-CEv2otNw.cjs.map} +1 -1
  45. package/dist/{schemas-VZnN68qG.js → schemas-COw7muXH.js} +3 -3
  46. package/dist/{schemas-VZnN68qG.js.map → schemas-COw7muXH.js.map} +1 -1
  47. package/dist/schemas.cjs +3 -3
  48. package/dist/schemas.d.cts +2 -2
  49. package/dist/schemas.d.ts +2 -2
  50. package/dist/schemas.js +3 -3
  51. package/dist/{scoring-BxDiwN7I.js → scoring-BxvOhHE0.js} +2 -2
  52. package/dist/{scoring-BxDiwN7I.js.map → scoring-BxvOhHE0.js.map} +1 -1
  53. package/dist/{scoring-Cfu_2qQ1.cjs → scoring-EpNBJ8Fs.cjs} +2 -2
  54. package/dist/{scoring-Cfu_2qQ1.cjs.map → scoring-EpNBJ8Fs.cjs.map} +1 -1
  55. package/dist/scoring.cjs +2 -2
  56. package/dist/scoring.d.cts +2 -2
  57. package/dist/scoring.d.ts +2 -2
  58. package/dist/scoring.js +2 -2
  59. package/dist/{xapi-BhROEuZQ.cjs → xapi-C-cQgWRX.cjs} +2 -2
  60. package/dist/{xapi-BhROEuZQ.cjs.map → xapi-C-cQgWRX.cjs.map} +1 -1
  61. package/dist/{xapi-BitXmAYB.js → xapi-DHHm7Os9.js} +2 -2
  62. package/dist/{xapi-BitXmAYB.js.map → xapi-DHHm7Os9.js.map} +1 -1
  63. package/dist/xapi.cjs +1 -1
  64. package/dist/xapi.d.cts +1 -1
  65. package/dist/xapi.d.ts +1 -1
  66. package/dist/xapi.js +1 -1
  67. package/package.json +1 -1
  68. package/vectors/scoring.json +1767 -1
  69. package/vectors/validation.json +1458 -1
  70. package/dist/ai-Cu17iVHa.d.cts.map +0 -1
  71. package/dist/ai-Cu17iVHa.d.ts.map +0 -1
  72. package/dist/ai-writing-BgeeCOl7.js.map +0 -1
  73. package/dist/ai-writing-gO4GRscd.cjs.map +0 -1
  74. package/dist/index-BfUyl6ml.d.ts.map +0 -1
  75. package/dist/index-DjZ1vIVg.d.cts.map +0 -1
  76. package/dist/item-group-CRZNJ08j.cjs.map +0 -1
  77. package/dist/item-group-CnlBLM9Z.js.map +0 -1
  78. package/dist/registry-BClnM5V3.js.map +0 -1
  79. package/dist/registry-DgLcT4rZ.cjs.map +0 -1
@@ -420,6 +420,8 @@ interface ActivityDataMap {
420
420
  dictation: DictationData;
421
421
  'read-aloud': ReadAloudData;
422
422
  'speaking-response': SpeakingResponseData;
423
+ matching: MatchingData;
424
+ 'mark-the-words': MarkTheWordsData;
423
425
  }
424
426
  /**
425
427
  * The set of activity types supported by learning-kit. Derived from
@@ -833,6 +835,170 @@ interface GapSelectData {
833
835
  /** What an author allows AI to do for this item: see {@link ActivityAiPermissions}. */
834
836
  ai?: ActivityAiPermissions;
835
837
  }
838
+ /**
839
+ * One entry of a matching item's shared list: a heading, a person, a
840
+ * paragraph, a sentence ending.
841
+ */
842
+ interface MatchingOption {
843
+ /** Unique identifier within the item. */
844
+ id: string;
845
+ /**
846
+ * The short key the learner answers with, as on the paper: `"A"`, `"iv"`.
847
+ * Shown before the text. Optional; unique within the item when given.
848
+ */
849
+ label?: string;
850
+ /**
851
+ * What the learner reads: `"The cost of the new lines"`, `"Mary Lee"`. For a
852
+ * list that is only letters (which paragraph contains…), the letter itself.
853
+ */
854
+ text: string;
855
+ }
856
+ /** One statement, question or sentence beginning the learner matches to an option. */
857
+ interface MatchingPrompt {
858
+ /** Unique identifier within the item. */
859
+ id: string;
860
+ /** What the learner reads, as plain text. */
861
+ text: string;
862
+ /** The `id` of the one option that answers it. */
863
+ correctOptionId: string;
864
+ /** Optional feedback shown beside this prompt after submission. */
865
+ feedback?: string;
866
+ }
867
+ /**
868
+ * Data contract for a Matching activity: several prompts, each matched to one
869
+ * entry of a shared list of options.
870
+ *
871
+ * It is the shape of the exam reading tasks that match: headings to
872
+ * paragraphs, statements to the paragraph or the person they come from,
873
+ * sentence beginnings to their endings, questions to the section that answers
874
+ * them. One list serves every prompt, and it is usually longer than the
875
+ * prompts, so the spare options are the distractors.
876
+ *
877
+ * It is **not** a {@link GapSelectData} with a bank, though both score a
878
+ * choice by identity. A matching prompt is a statement of its own, not a gap
879
+ * in a passage, and the list is the content the learner reads first — a list
880
+ * of headings, a list of people — with the labels the paper answers in.
881
+ * `optionUse: 'once'` says each option answers at most one prompt, which a
882
+ * word bank cannot say.
883
+ */
884
+ interface MatchingData {
885
+ schemaVersion: '1.0';
886
+ type: 'matching';
887
+ /** Unique identifier for this activity. */
888
+ id: string;
889
+ /** Human-readable title used in xAPI statements and error boundaries. */
890
+ title: string;
891
+ /**
892
+ * Optional instructions shown to the learner, as plain text: the task, read
893
+ * before the lists ("Choose the correct heading for each paragraph from the
894
+ * list of headings below."). Every AI request about the item carries them.
895
+ */
896
+ instructions?: string;
897
+ /** Optional title of the list of options, shown above it: `"List of Headings"`. */
898
+ optionsTitle?: string;
899
+ /** The statements to match, in the order the learner answers them. At least one. */
900
+ prompts: MatchingPrompt[];
901
+ /** The shared list, in the order shown. At least two. */
902
+ options: MatchingOption[];
903
+ /**
904
+ * `many` (default): an option may answer any number of prompts, as in
905
+ * "You may use any letter more than once". `once`: each option answers at
906
+ * most one prompt — the answer key never repeats one, and a learner who
907
+ * picks an option already used moves it to the new prompt.
908
+ */
909
+ optionUse?: 'once' | 'many';
910
+ /** Scoring algorithm applied when the learner submits. */
911
+ scoringStrategy: 'all-or-nothing' | 'partial';
912
+ /**
913
+ * Whether the SDK shuffles the list of options. Off by default: an exam's
914
+ * list is printed in a fixed order. Seeded as `MultipleChoiceData.shuffle`
915
+ * is, and refused without a seed outside `practice` by `<ActivitySequence>`.
916
+ */
917
+ shuffleOptions?: boolean;
918
+ /** Optional media shown above the lists. */
919
+ media?: ActivityMedia;
920
+ /** Optional authored overall feedback shown after submission. */
921
+ feedback?: ActivityFeedback;
922
+ /** Minimum scaled score [0–1] required to pass. Defaults to {@link DEFAULT_PASS_THRESHOLD} (0.7) when absent. */
923
+ passThreshold?: number;
924
+ /** BCP 47 language tag for the activity content. */
925
+ locale?: string;
926
+ /** IRI references to learning objectives addressed by this activity. */
927
+ learningObjectives?: string[];
928
+ /** Subjective difficulty on a 1–5 scale. */
929
+ difficultyLevel?: 1 | 2 | 3 | 4 | 5;
930
+ /** What an author allows AI to do for this item: see {@link ActivityAiPermissions}. */
931
+ ai?: ActivityAiPermissions;
932
+ }
933
+ /**
934
+ * A word, or several words in a row, of a mark-the-words text that the learner
935
+ * should mark. Written as a quote of the text, never as a position, so an edit
936
+ * elsewhere in the text leaves it standing.
937
+ */
938
+ interface MarkTheWordsTarget {
939
+ /**
940
+ * The word or words, copied from the text: whole words, in order. Case and
941
+ * accents count; punctuation around them does not, and nor does the kind of
942
+ * apostrophe.
943
+ */
944
+ text: string;
945
+ /**
946
+ * Which appearance, 1-based. Required when the words appear more than once
947
+ * in the text — the schema refuses a target that could be either.
948
+ */
949
+ occurrence?: number;
950
+ /** Optional feedback shown beside the target after submission. */
951
+ feedback?: string;
952
+ }
953
+ /**
954
+ * Data contract for a Mark the Words activity: a text in which the learner
955
+ * marks the words a task asks for — every past-tense verb, the words that
956
+ * mean "big", the linkers — by selecting them.
957
+ *
958
+ * The text is cut into words by the SDK's own word cut (`lk-words@1`, see
959
+ * `markableWords`), and a response names words by their position in it.
960
+ *
961
+ * **Scoring.** Each target counts once, and only when every one of its words
962
+ * is marked. A marked word that is part of no target costs one target's worth:
963
+ * `partial` scores (targets found − words wrongly marked) / targets, never
964
+ * below 0, so marking every word earns nothing unless most words are targets
965
+ * — the critic warns when they are. `all-or-nothing` needs every target and no
966
+ * wrong word.
967
+ */
968
+ interface MarkTheWordsData {
969
+ schemaVersion: '1.0';
970
+ type: 'mark-the-words';
971
+ /** Unique identifier for this activity. */
972
+ id: string;
973
+ /** Human-readable title used in xAPI statements and error boundaries. */
974
+ title: string;
975
+ /**
976
+ * Optional instructions shown to the learner, as plain text: the task, read
977
+ * before the text ("Mark every verb in the past simple."). Every AI request
978
+ * about the item carries them.
979
+ */
980
+ instructions?: string;
981
+ /** The text the learner marks words in, as plain text. Paragraphs are separated by a blank line. At most 1500 words. */
982
+ text: string;
983
+ /** The words to mark. At least one; no two share a word. */
984
+ targets: MarkTheWordsTarget[];
985
+ /** Scoring algorithm applied when the learner submits. */
986
+ scoringStrategy: 'all-or-nothing' | 'partial';
987
+ /** Optional media shown above the text. */
988
+ media?: ActivityMedia;
989
+ /** Optional authored overall feedback shown after submission. */
990
+ feedback?: ActivityFeedback;
991
+ /** Minimum scaled score [0–1] required to pass. Defaults to {@link DEFAULT_PASS_THRESHOLD} (0.7) when absent. */
992
+ passThreshold?: number;
993
+ /** BCP 47 language tag for the activity content. */
994
+ locale?: string;
995
+ /** IRI references to learning objectives addressed by this activity. */
996
+ learningObjectives?: string[];
997
+ /** Subjective difficulty on a 1–5 scale. */
998
+ difficultyLevel?: 1 | 2 | 3 | 4 | 5;
999
+ /** What an author allows AI to do for this item: see {@link ActivityAiPermissions}. */
1000
+ ai?: ActivityAiPermissions;
1001
+ }
836
1002
  interface FillInTheBlanksData {
837
1003
  schemaVersion: '1.0';
838
1004
  type: 'fill-in-the-blanks';
@@ -1172,6 +1338,8 @@ interface LearnerResponseMap {
1172
1338
  dictation: DictationLearnerResponse;
1173
1339
  'read-aloud': ReadAloudLearnerResponse;
1174
1340
  'speaking-response': SpeakingResponseLearnerResponse;
1341
+ matching: MatchingLearnerResponse;
1342
+ 'mark-the-words': MarkTheWordsLearnerResponse;
1175
1343
  }
1176
1344
  /** Union of all learner response shapes. */
1177
1345
  type LearnerResponse = LearnerResponseMap[keyof LearnerResponseMap];
@@ -1225,6 +1393,45 @@ interface GapSelectLearnerResponse {
1225
1393
  */
1226
1394
  hintsRevealed?: number;
1227
1395
  }
1396
+ /**
1397
+ * Learner response for a Matching activity.
1398
+ *
1399
+ * A prompt the learner has not answered is **absent from the map, or holds an
1400
+ * empty string** — equivalent, as in {@link GapSelectLearnerResponse}, and
1401
+ * scored as `incorrect-omission`, never as a wrong answer.
1402
+ */
1403
+ interface MatchingLearnerResponse {
1404
+ type: 'matching';
1405
+ /** Map of prompt ID to the ID of the option the learner matched it with. */
1406
+ matches: Record<string, string>;
1407
+ /**
1408
+ * Hints the learner was shown before submitting this answer, counted from
1409
+ * the start of the question — the author's and AI hints alike. Written by
1410
+ * the SDK's components in `practice`; absent or 0 means none. A scoring
1411
+ * policy's `hintPenalty` charges for them. Client-reported, like any count
1412
+ * a browser makes.
1413
+ */
1414
+ hintsRevealed?: number;
1415
+ }
1416
+ /**
1417
+ * Learner response for a Mark the Words activity: the words marked, by their
1418
+ * 0-based position in the text's words (`markableWords`). Order does not
1419
+ * matter. A position that names no word, or repeats one, is ignored by the
1420
+ * scorer.
1421
+ */
1422
+ interface MarkTheWordsLearnerResponse {
1423
+ type: 'mark-the-words';
1424
+ /** Positions of the marked words. */
1425
+ marked: number[];
1426
+ /**
1427
+ * Hints the learner was shown before submitting this answer, counted from
1428
+ * the start of the question — the author's and AI hints alike. Written by
1429
+ * the SDK's components in `practice`; absent or 0 means none. A scoring
1430
+ * policy's `hintPenalty` charges for them. Client-reported, like any count
1431
+ * a browser makes.
1432
+ */
1433
+ hintsRevealed?: number;
1434
+ }
1228
1435
  /** Learner response for a Written Response activity. */
1229
1436
  interface WrittenResponseLearnerResponse {
1230
1437
  type: 'written-response';
@@ -1843,7 +2050,7 @@ interface RouteTrap {
1843
2050
  interface RouteQuestion {
1844
2051
  /** The item's `id`. */
1845
2052
  itemId: string;
1846
- /** The blank or gap id. Required for fill-in-the-blanks and gap-select; absent for multiple-choice. */
2053
+ /** The blank, gap or prompt id. Required for fill-in-the-blanks, gap-select and matching; absent for multiple-choice. */
1847
2054
  partId?: string;
1848
2055
  strategy: RouteStrategyId;
1849
2056
  /**
@@ -1894,7 +2101,7 @@ interface ReadingRoute {
1894
2101
  paragraphLabels?: string[];
1895
2102
  /** The stimulus's texts or sections, when it has several (cross-text, multiple matching). Their paragraphs add up to the passage's. */
1896
2103
  sections?: RouteSection[];
1897
- /** One per question of the group, in any order: numbering follows the items and their blanks or gaps. */
2104
+ /** One per question of the group, in any order: numbering follows the items and their blanks, gaps or prompts. */
1898
2105
  questions: RouteQuestion[];
1899
2106
  }
1900
2107
  /**
@@ -1963,7 +2170,7 @@ interface PassageLayout {
1963
2170
  }
1964
2171
  /** A route question with every quote resolved against the passage. */
1965
2172
  interface PlannedQuestion {
1966
- /** `itemId`, or `itemId#partId` for a blank or gap. Names the question in traces and summaries. */
2173
+ /** `itemId`, or `itemId#partId` for a blank, gap or prompt. Names the question in traces and summaries. */
1967
2174
  key: string;
1968
2175
  itemId: string;
1969
2176
  partId?: string;
@@ -3551,5 +3758,5 @@ interface AiVariantsRun {
3551
3758
  /** Every call, in order: the first, then each repair. */
3552
3759
  calls: AiDraftsCall[];
3553
3760
  }
3554
- export { AiSpeakingGradingFacts as $, MediaTrack as $n, RouteMoveId as $t, AiGapSelectFacts as A, ActivityResult as An, XAPIContext as Ar, SequenceSlot as At, AiGroupInput as B, FillInTheBlanksData as Bn, GradeRouting as Br, PlannedPair as Bt, AiDraftsCall as C, VersionFinding as Cn, WrittenResponseData as Cr, AiWritingFeedback as Ct, AiFeature as D, ActivityDataMap as Dn, WrittenResponseRubricLevel as Dr, MediaProgress as Dt, AiExplanationRequest as E, ActivityData as En, WrittenResponseRubricCriterion as Er, ItemGroup as Et, AiGradingCriterionFact as F, DictationData as Fn, XAPIScore as Fr, TimelineCue as Ft, AiOptionFact as G, GapSelectGap as Gn, GraderUsage as Gr, RouteAnswer as Gt, AiItemFacts as H, GapSelectBank as Hn, Grader as Hr, PlannedTrap as Ht, AiGradingFacts as I, DictationEquivalence as In, XAPIStatement as Ir, PassageLayout as It, AiReadingWordFact as J, InteractionKind as Jn, TextMatchPolicy as Jr, RouteFadingOptions as Jt, AiProvenance as K, GapSelectLearnerResponse as Kn, GradingState as Kr, RouteCause as Kt, AiGradingJudgement as L, DictationLearnerResponse as Ln, XAPIVerbObject as Lr, PassageParagraph as Lt, AiGeneratedVariant as M, BlankConfig as Mn, XAPIError as Mr, Stimulus as Mt, AiGrade as N, DeferredReason as Nn, XAPIObject as Nr, StimulusKind as Nt, AiFillInTheBlanksFacts as O, ActivityFeedback as On, XAPIActor as Or, MediaTimeline as Ot, AiGradedCriterion as P, DeferredScoringPartial as Pn, XAPIResult as Pr, TimelineChapter as Pt, AiSpeakingCriterionFact as Q, MediaPlaybackPolicy as Qn, RouteLink as Qt, AiGradingRequest as R, DictationSlowMedia as Rn, CriterionScore as Rr, PassageSection as Rt, AiDrafts as S, VersionComparison as Sn, ValidationResult as Sr, AiWritingFacts as St, AiDraftsRun as T, VersionSlot as Tn, WrittenResponseRubric as Tr, AiWritingFeedbackResult as Tt, AiMaterialFacts as U, GapSelectChoice as Un, GraderConfiguration as Ur, QuotedRange as Ut, AiHintRequest as V, FillInTheBlanksLearnerResponse as Vn, GradeRoutingReason as Vr, PlannedQuestion as Vt, AiMultipleChoiceFacts as W, GapSelectData as Wn, GraderKind as Wr, ReadingRoute as Wt, AiRubricCriterionFact as X, LearnerResponse as Xn, levenshteinDistance as Xr, RouteLearnerState as Xt, AiRefusal as Y, ItemOutcome as Yn, TextMatchResult as Yr, RouteKeyword as Yt, AiSoundFact as Z, LearnerResponseMap as Zn, matchText as Zr, RouteLevel as Zt, AiDraftCaption as _, DraftNotComplete as _n, SpeakingResponseData as _r, AiVariantsRun as _t, AiCoachingRequest as a, RouteSection as an, ReadAloudData as ar, AiVariantDifficulty as at, AiDraftSource as b, ItemFinding as bn, SpeakingRubricCriterion as br, AiWordFact as bt, AiCriterionJudgement as c, RouteStrategySummary as cn, ReadAloudLearnerResponse as cr, AiVariantLevelFacts as ct, AiCritiqueFinding as d, RouteTrap as dn, RecordingRef as dr, AiVariantPair as dt, RoutePlan as en, MultipleChoiceData as er, AiSpeakingGradingRequest as et, AiCritiqueFindingResult as f, RouteTrapKind as fn, ScoringDetail as fr, AiVariantSkip as ft, AiDictationFacts as g, DraftIssue as gn, SpeakingMeasure as gr, AiVariantsRequest as gt, AiCritiqueResult as h, DraftContext as hn, ScriptTurn as hr, AiVariants as ht, AiCoaching as i, RouteQuote as in, NativeControlHint as ir, AiTextResult as it, AiGeneratedDraft as j, ActivityType as jn, XAPIContextActivities as jr, SequenceSlotGroup as jt, AiGapFact as k, ActivityMedia as kn, XAPIConfig as kr, SequenceEntry as kt, AiCritique as l, RouteSummary as ln, ReadAloudSlowMedia as lr, AiVariantMismatch as lt, AiCritiqueRequest as m, DraftComplete as mn, ScoringResult as mr, AiVariantTargets as mt, AiActivityInput as n, RouteQuestionPart as nn, MultipleChoiceOption as nr, AiSpeakingMeasureFact as nt, AiCoachingResult as o, RouteStep as on, ReadAloudDimension as or, AiVariantExemplarFacts as ot, AiCritiqueKind as p, TextRange as pn, ScoringOutcome as pr, AiVariantSkipCode as pt, AiReadingFacts as q, InteractionEvent as qn, InlineCorrection as qr, RouteEvent as qt, AiBlankFact as r, RouteQuestionSummary as rn, MultipleChoiceOptionMedia as rr, AiSupportedActivityType as rt, AiCoachingWord as s, RouteStrategyId as sn, ReadAloudDimensionWeight as sr, AiVariantImage as st, ActivityAiPermissions as t, RouteQuestion as tn, MultipleChoiceLearnerResponse as tr, AiSpeakingGradingRequestProblem as tt, AiCritiqueField as u, RouteTrace as un, RecordingBounds as ur, AiVariantMissing as ut, AiDraftProblem as v, DraftSeverity as vn, SpeakingResponseLearnerResponse as vr, AiVerdict as vt, AiDraftsRequest as w, VersionPaper as wn, WrittenResponseLearnerResponse as wr, AiWritingFeedbackRequest as wt, AiDraftType as x, ItemFindingSeverity as xn, ValidationError as xr, AiWritingCorrection as xt, AiDraftSettings as y, DraftValidationResult as yn, SpeakingRubric as yr, AiVideoDraft as yt, AiGradingRequestProblem as z, DictationTolerance as zn, GradeRecord as zr, PassageSentence as zt };
3555
- //# sourceMappingURL=ai-Cu17iVHa.d.ts.map
3761
+ export { AiSpeakingGradingFacts as $, MarkTheWordsLearnerResponse as $n, GradingState as $r, RouteMoveId as $t, AiGapSelectFacts as A, ActivityResult as An, WrittenResponseData as Ar, SequenceSlot as At, AiGroupInput as B, FillInTheBlanksData as Bn, XAPIObject as Br, PlannedPair as Bt, AiDraftsCall as C, VersionFinding as Cn, SpeakingMeasure as Cr, AiWritingFeedback as Ct, AiFeature as D, ActivityDataMap as Dn, SpeakingRubricCriterion as Dr, MediaProgress as Dt, AiExplanationRequest as E, ActivityData as En, SpeakingRubric as Er, ItemGroup as Et, AiGradingCriterionFact as F, DictationData as Fn, XAPIActor as Fr, TimelineCue as Ft, AiOptionFact as G, GapSelectGap as Gn, CriterionScore as Gr, RouteAnswer as Gt, AiItemFacts as H, GapSelectBank as Hn, XAPIScore as Hr, PlannedTrap as Ht, AiGradingFacts as I, DictationEquivalence as In, XAPIConfig as Ir, PassageLayout as It, AiReadingWordFact as J, InteractionKind as Jn, GradeRoutingReason as Jr, RouteFadingOptions as Jt, AiProvenance as K, GapSelectLearnerResponse as Kn, GradeRecord as Kr, RouteCause as Kt, AiGradingJudgement as L, DictationLearnerResponse as Ln, XAPIContext as Lr, PassageParagraph as Lt, AiGeneratedVariant as M, BlankConfig as Mn, WrittenResponseRubric as Mr, Stimulus as Mt, AiGrade as N, DeferredReason as Nn, WrittenResponseRubricCriterion as Nr, StimulusKind as Nt, AiFillInTheBlanksFacts as O, ActivityFeedback as On, ValidationError as Or, MediaTimeline as Ot, AiGradedCriterion as P, DeferredScoringPartial as Pn, WrittenResponseRubricLevel as Pr, TimelineChapter as Pt, AiSpeakingCriterionFact as Q, MarkTheWordsData as Qn, GraderUsage as Qr, RouteLink as Qt, AiGradingRequest as R, DictationSlowMedia as Rn, XAPIContextActivities as Rr, PassageSection as Rt, AiDrafts as S, VersionComparison as Sn, ScriptTurn as Sr, AiWritingFacts as St, AiDraftsRun as T, VersionSlot as Tn, SpeakingResponseLearnerResponse as Tr, AiWritingFeedbackResult as Tt, AiMaterialFacts as U, GapSelectChoice as Un, XAPIStatement as Ur, QuotedRange as Ut, AiHintRequest as V, FillInTheBlanksLearnerResponse as Vn, XAPIResult as Vr, PlannedQuestion as Vt, AiMultipleChoiceFacts as W, GapSelectData as Wn, XAPIVerbObject as Wr, ReadingRoute as Wt, AiRubricCriterionFact as X, LearnerResponse as Xn, GraderConfiguration as Xr, RouteLearnerState as Xt, AiRefusal as Y, ItemOutcome as Yn, Grader as Yr, RouteKeyword as Yt, AiSoundFact as Z, LearnerResponseMap as Zn, GraderKind as Zr, RouteLevel as Zt, AiDraftCaption as _, DraftNotComplete as _n, RecordingBounds as _r, AiVariantsRun as _t, AiCoachingRequest as a, RouteSection as an, MediaPlaybackPolicy as ar, AiVariantDifficulty as at, AiDraftSource as b, ItemFinding as bn, ScoringOutcome as br, AiWordFact as bt, AiCriterionJudgement as c, RouteStrategySummary as cn, MultipleChoiceLearnerResponse as cr, AiVariantLevelFacts as ct, AiCritiqueFinding as d, RouteTrap as dn, NativeControlHint as dr, AiVariantPair as dt, InlineCorrection as ei, RoutePlan as en, MarkTheWordsTarget as er, AiSpeakingGradingRequest as et, AiCritiqueFindingResult as f, RouteTrapKind as fn, ReadAloudData as fr, AiVariantSkip as ft, AiDictationFacts as g, DraftIssue as gn, ReadAloudSlowMedia as gr, AiVariantsRequest as gt, AiCritiqueResult as h, DraftContext as hn, ReadAloudLearnerResponse as hr, AiVariants as ht, AiCoaching as i, matchText as ii, RouteQuote as in, MatchingPrompt as ir, AiTextResult as it, AiGeneratedDraft as j, ActivityType as jn, WrittenResponseLearnerResponse as jr, SequenceSlotGroup as jt, AiGapFact as k, ActivityMedia as kn, ValidationResult as kr, SequenceEntry as kt, AiCritique as l, RouteSummary as ln, MultipleChoiceOption as lr, AiVariantMismatch as lt, AiCritiqueRequest as m, DraftComplete as mn, ReadAloudDimensionWeight as mr, AiVariantTargets as mt, AiActivityInput as n, TextMatchResult as ni, RouteQuestionPart as nn, MatchingLearnerResponse as nr, AiSpeakingMeasureFact as nt, AiCoachingResult as o, RouteStep as on, MediaTrack as or, AiVariantExemplarFacts as ot, AiCritiqueKind as p, TextRange as pn, ReadAloudDimension as pr, AiVariantSkipCode as pt, AiReadingFacts as q, InteractionEvent as qn, GradeRouting as qr, RouteEvent as qt, AiBlankFact as r, levenshteinDistance as ri, RouteQuestionSummary as rn, MatchingOption as rr, AiSupportedActivityType as rt, AiCoachingWord as s, RouteStrategyId as sn, MultipleChoiceData as sr, AiVariantImage as st, ActivityAiPermissions as t, TextMatchPolicy as ti, RouteQuestion as tn, MatchingData as tr, AiSpeakingGradingRequestProblem as tt, AiCritiqueField as u, RouteTrace as un, MultipleChoiceOptionMedia as ur, AiVariantMissing as ut, AiDraftProblem as v, DraftSeverity as vn, RecordingRef as vr, AiVerdict as vt, AiDraftsRequest as w, VersionPaper as wn, SpeakingResponseData as wr, AiWritingFeedbackRequest as wt, AiDraftType as x, ItemFindingSeverity as xn, ScoringResult as xr, AiWritingCorrection as xt, AiDraftSettings as y, DraftValidationResult as yn, ScoringDetail as yr, AiVideoDraft as yt, AiGradingRequestProblem as z, DictationTolerance as zn, XAPIError as zr, PassageSentence as zt };
3762
+ //# sourceMappingURL=ai-mC-5XhBc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-mC-5XhBc.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/reading-route.ts","../src/types/item-group.ts","../src/types/ai.ts"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- const require_registry = require("./registry-DgLcT4rZ.cjs");
2
- const require_scoring = require("./scoring-Cfu_2qQ1.cjs");
3
- const require_item_group = require("./item-group-CRZNJ08j.cjs");
1
+ const require_registry = require("./registry-Dw19lNo2.cjs");
2
+ const require_scoring = require("./scoring-EpNBJ8Fs.cjs");
3
+ const require_item_group = require("./item-group-DOk562oI.cjs");
4
4
  // src/ai-material.ts
5
5
  /**
6
6
  * What a model is told about the group a question sits in: the material the
@@ -1458,6 +1458,11 @@ function structureTargets(entry) {
1458
1458
  ...banks.length > 0 ? { banks: banks.map((bank) => ({ choices: isRecord$4(bank) ? listOf$3(bank.choices).length : 0 })) } : {}
1459
1459
  };
1460
1460
  }
1461
+ case "mark-the-words": return { targets: listOf$3(entry.targets).length };
1462
+ case "matching": return {
1463
+ prompts: listOf$3(entry.prompts).length,
1464
+ options: listOf$3(entry.options).length
1465
+ };
1461
1466
  case "written-response": return {
1462
1467
  minWords: entry.minWords,
1463
1468
  maxWords: entry.maxWords,
@@ -1471,6 +1476,8 @@ const SCORED_ALIKE = {
1471
1476
  "multiple-choice": ["mode", "scoringStrategy"],
1472
1477
  "fill-in-the-blanks": ["scoringStrategy"],
1473
1478
  "gap-select": ["scoringStrategy", "presentation"],
1479
+ matching: ["scoringStrategy", "optionUse"],
1480
+ "mark-the-words": ["scoringStrategy"],
1474
1481
  dictation: ["tolerance", "hints"],
1475
1482
  "read-aloud": [
1476
1483
  "recording",
@@ -1496,7 +1503,8 @@ const DIFFERS = {
1496
1503
  rubric: "The rubric differs",
1497
1504
  minWords: "The minimum word count differs",
1498
1505
  maxWords: "The maximum word count differs",
1499
- languageTarget: "The language target differs"
1506
+ languageTarget: "The language target differs",
1507
+ optionUse: "How often an option may be used differs"
1500
1508
  };
1501
1509
  function itemMisses(exemplar, candidate) {
1502
1510
  const misses = [];
@@ -1580,6 +1588,17 @@ function itemMisses(exemplar, candidate) {
1580
1588
  }
1581
1589
  });
1582
1590
  if (exemplar.shuffleChoices === true !== (candidate.shuffleChoices === true)) miss(["shuffleChoices"], "Shuffling the choices differs from the exemplar.");
1591
+ } else if (type === "mark-the-words") {
1592
+ const mine = listOf$3(exemplar.targets).length;
1593
+ const theirs = listOf$3(candidate.targets).length;
1594
+ if (mine !== theirs) miss(["targets"], `${count(theirs, "target")}; the exemplar has ${mine}.`);
1595
+ } else if (type === "matching") {
1596
+ for (const [field, noun] of [["prompts", "prompt"], ["options", "option"]]) {
1597
+ const mine = listOf$3(exemplar[field]).length;
1598
+ const theirs = listOf$3(candidate[field]).length;
1599
+ if (mine !== theirs) miss([field], `${count(theirs, noun)}; the exemplar has ${mine}.`);
1600
+ }
1601
+ if (exemplar.shuffleOptions === true !== (candidate.shuffleOptions === true)) miss(["shuffleOptions"], "Shuffling the options differs from the exemplar.");
1583
1602
  }
1584
1603
  return misses;
1585
1604
  }
@@ -5972,4 +5991,4 @@ Object.defineProperty(exports, "validateItemGroupDraft", {
5972
5991
  }
5973
5992
  });
5974
5993
 
5975
- //# sourceMappingURL=ai-writing-gO4GRscd.cjs.map
5994
+ //# sourceMappingURL=ai-writing-Bm2TUWQ-.cjs.map