@intellectif/lk-core 1.7.0 → 1.8.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 (80) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{ai-B1wYrqcB.d.cts → ai-Cnm0qE8v.d.cts} +296 -2
  3. package/dist/ai-Cnm0qE8v.d.cts.map +1 -0
  4. package/dist/{ai-B1wYrqcB.d.ts → ai-Cnm0qE8v.d.ts} +296 -2
  5. package/dist/ai-Cnm0qE8v.d.ts.map +1 -0
  6. package/dist/ai-check.cjs +77 -3
  7. package/dist/ai-check.cjs.map +1 -1
  8. package/dist/ai-check.d.cts +11 -3
  9. package/dist/ai-check.d.cts.map +1 -1
  10. package/dist/ai-check.d.ts +11 -3
  11. package/dist/ai-check.d.ts.map +1 -1
  12. package/dist/ai-check.js +77 -3
  13. package/dist/ai-check.js.map +1 -1
  14. package/dist/{ai-writing-DrPTV3R2.cjs → ai-writing-Bh2Y53cY.cjs} +2539 -178
  15. package/dist/ai-writing-Bh2Y53cY.cjs.map +1 -0
  16. package/dist/{ai-writing-B7oMCt66.js → ai-writing-DeIV-GfN.js} +2389 -136
  17. package/dist/ai-writing-DeIV-GfN.js.map +1 -0
  18. package/dist/{index-BU99GFTl.d.ts → index-CtoPhJAH.d.ts} +2 -2
  19. package/dist/{index-BU99GFTl.d.ts.map → index-CtoPhJAH.d.ts.map} +1 -1
  20. package/dist/{index-XCCoPoTU.d.cts → index-DMh3OYSb.d.cts} +2 -2
  21. package/dist/{index-XCCoPoTU.d.cts.map → index-DMh3OYSb.d.cts.map} +1 -1
  22. package/dist/{index-BdXs4-en.d.ts → index-HXvg0YRQ.d.ts} +2 -2
  23. package/dist/{index-BdXs4-en.d.ts.map → index-HXvg0YRQ.d.ts.map} +1 -1
  24. package/dist/{index-DP9rvyOz.d.cts → index-fZ67k-WR.d.cts} +2 -2
  25. package/dist/{index-DP9rvyOz.d.cts.map → index-fZ67k-WR.d.cts.map} +1 -1
  26. package/dist/{index-BTkMQtws.d.ts → index-g-EWIugp.d.ts} +2 -2
  27. package/dist/{index-BTkMQtws.d.ts.map → index-g-EWIugp.d.ts.map} +1 -1
  28. package/dist/{index-BM8LeDWn.d.cts → index-oST8GBFa.d.cts} +2 -2
  29. package/dist/{index-BM8LeDWn.d.cts.map → index-oST8GBFa.d.cts.map} +1 -1
  30. package/dist/index.cjs +280 -6
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +227 -5
  33. package/dist/index.d.cts.map +1 -1
  34. package/dist/index.d.ts +227 -5
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +269 -7
  37. package/dist/index.js.map +1 -1
  38. package/dist/{item-group-CeDk7mfM.js → item-group-BceUoxoM.js} +2 -2
  39. package/dist/{item-group-CeDk7mfM.js.map → item-group-BceUoxoM.js.map} +1 -1
  40. package/dist/{item-group-8P3WFuUK.cjs → item-group-KV4hYu3a.cjs} +2 -2
  41. package/dist/{item-group-8P3WFuUK.cjs.map → item-group-KV4hYu3a.cjs.map} +1 -1
  42. package/dist/{registry-hzrkTeIT.cjs → registry-Cymq7Ah0.cjs} +37 -2
  43. package/dist/registry-Cymq7Ah0.cjs.map +1 -0
  44. package/dist/{registry-D92hz9iA.js → registry-tkacvJUI.js} +20 -3
  45. package/dist/registry-tkacvJUI.js.map +1 -0
  46. package/dist/{schemas-C7TViWCg.js → schemas-DM8sN_f0.js} +3 -3
  47. package/dist/{schemas-C7TViWCg.js.map → schemas-DM8sN_f0.js.map} +1 -1
  48. package/dist/{schemas-BWeskONy.cjs → schemas-wDzbKdKa.cjs} +3 -3
  49. package/dist/{schemas-BWeskONy.cjs.map → schemas-wDzbKdKa.cjs.map} +1 -1
  50. package/dist/schemas.cjs +3 -3
  51. package/dist/schemas.d.cts +1 -1
  52. package/dist/schemas.d.ts +1 -1
  53. package/dist/schemas.js +3 -3
  54. package/dist/{scoring-CtkCFyFT.cjs → scoring-D9tFvPEG.cjs} +2 -2
  55. package/dist/{scoring-CtkCFyFT.cjs.map → scoring-D9tFvPEG.cjs.map} +1 -1
  56. package/dist/{scoring-DD1GHcLI.js → scoring-DIBmo_cy.js} +2 -2
  57. package/dist/{scoring-DD1GHcLI.js.map → scoring-DIBmo_cy.js.map} +1 -1
  58. package/dist/scoring.cjs +2 -2
  59. package/dist/scoring.d.cts +2 -2
  60. package/dist/scoring.d.ts +2 -2
  61. package/dist/scoring.js +2 -2
  62. package/dist/{xapi-7btSpx6v.cjs → xapi-Dyqcl3JK.cjs} +2 -2
  63. package/dist/{xapi-7btSpx6v.cjs.map → xapi-Dyqcl3JK.cjs.map} +1 -1
  64. package/dist/{xapi-Cgicg-zU.js → xapi-gCAo549Q.js} +2 -2
  65. package/dist/{xapi-Cgicg-zU.js.map → xapi-gCAo549Q.js.map} +1 -1
  66. package/dist/xapi.cjs +1 -1
  67. package/dist/xapi.d.cts +1 -1
  68. package/dist/xapi.d.ts +1 -1
  69. package/dist/xapi.js +1 -1
  70. package/package.json +2 -2
  71. package/vectors/README.md +23 -0
  72. package/vectors/variants.d.mts +20 -0
  73. package/vectors/variants.json +5753 -0
  74. package/vectors/variants.mjs +67 -0
  75. package/dist/ai-B1wYrqcB.d.cts.map +0 -1
  76. package/dist/ai-B1wYrqcB.d.ts.map +0 -1
  77. package/dist/ai-writing-B7oMCt66.js.map +0 -1
  78. package/dist/ai-writing-DrPTV3R2.cjs.map +0 -1
  79. package/dist/registry-D92hz9iA.js.map +0 -1
  80. package/dist/registry-hzrkTeIT.cjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @intellectif/lk-core
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#132](https://github.com/intellectif/learning-kit/pull/132) [`6abddb4`](https://github.com/intellectif/learning-kit/commit/6abddb4e9f2f8ebe0b2136581c19177a61702b7b) Thanks [@diego28e](https://github.com/diego28e)! - **Parallel forms of an exam: a model writes variants of existing items, the critic reads a whole paper, and `critiqueVersions` compares two forms**
8
+
9
+ **Action required:** none. Everything is new except `critiqueDrafts`, which now also reports the paper codes below over every item of a set, groups' items included: an editor that lists findings shows them, and translates them by `code` like any other.
10
+
11
+ - **`aiVariantsRequest`, `checkAiVariants`, `aiVariantsRepairRequest`, `generateVariants`**, the shape of the drafting functions: a model writes a parallel version of each exemplar — loose items and whole parts, a new passage or listening script included — keeping its type, structure, scoring and settings, which the SDK copies back whatever the reply says. Each exemplar's facts carry targets the SDK computed (counts, lengths in words, difficulty and its levers), and each variant comes back with a status, `mismatches` (`variant_type`, `variant_structure`), findings (`variant_length`, `variant_near_copy`, `variant_same_key`, against the exemplar and every other form) and `pairs` lining its items up with the exemplar's. A recording comes back with no file and its new script; a picture is described anew or reused. Exemplars that cannot be varied are listed in `skipped`; `balanceKeyPositions` spreads single-answer keys from a seed.
12
+ - **The paper critic:** `set_key_position_bias`, `set_key_longest_bias`, `set_stem_duplicate`, `set_item_answers_item` and `set_key_repeated`, each naming the other items involved in the new `related` of a finding; and `fib_tolerance_spans_words`, for a blank whose forgiven edits run over an answer of several words.
13
+ - **`critiqueVersions(a, b)`:** two forms slot by slot — paired by given pairs, `slotKey` or position — for blueprint, type, structure, objectives and length, and paper against paper for near copies, shared keys and shared files.
14
+ - **`vectors/variants.json`** with `vectors/variants.mjs`: requests, canned replies and outcomes to replay against the build you install; the AI check kit gains a `variants` port and ten cases.
15
+ - **Why a minor:** additive. No scoring, validation or stored content changes.
16
+
17
+ Guide: https://github.com/intellectif/learning-kit/blob/main/docs/ai.md#variants-of-existing-items-18
18
+
3
19
  ## 1.7.0
4
20
 
5
21
  ### Minor Changes
@@ -1617,6 +1617,60 @@ type ItemFindingSeverity = 'warning' | 'advice';
1617
1617
  */
1618
1618
  interface ItemFinding extends ValidationError {
1619
1619
  severity: ItemFindingSeverity;
1620
+ /**
1621
+ * The other places a finding about several items involves, by path from the
1622
+ * same root as `path`: the item whose passage holds another's answer, the
1623
+ * questions whose keys share a position. Absent when only `path` is involved.
1624
+ */
1625
+ related?: string[][];
1626
+ }
1627
+ /**
1628
+ * One form of an exam, as `critiqueVersions` reads it: its sections in paper
1629
+ * order, each a list of sequence entries. A host without sections passes one.
1630
+ */
1631
+ interface VersionPaper {
1632
+ sections: readonly {
1633
+ key?: string;
1634
+ title?: string;
1635
+ entries: readonly unknown[];
1636
+ }[];
1637
+ }
1638
+ /**
1639
+ * One thing `critiqueVersions` found between two forms. `a` and `b` are where
1640
+ * it is in each, by path from the paper's root:
1641
+ * `['sections', '0', 'entries', '2', 'items', '1']`.
1642
+ *
1643
+ * - `invalid` — the two are not parallel: a different blueprint, type or
1644
+ * structure, so they do not score alike.
1645
+ * - `warning` — they are parallel, but a re-sitting learner would meet
1646
+ * something again, or one form is longer or tests another objective.
1647
+ * - `advice` — a picture both forms show, which a host may allow.
1648
+ */
1649
+ interface VersionFinding extends ValidationError {
1650
+ severity: 'invalid' | 'warning' | 'advice';
1651
+ a?: string[];
1652
+ b?: string[];
1653
+ }
1654
+ /** One slot of the first form, with the slot of the second paired with it, and how they were paired. */
1655
+ interface VersionSlot {
1656
+ a: string[] | null;
1657
+ b: string[] | null;
1658
+ by: 'pairs' | 'slotKey' | 'position';
1659
+ }
1660
+ /** What `critiqueVersions` found. */
1661
+ interface VersionComparison {
1662
+ findings: VersionFinding[];
1663
+ /** Every slot of either form — entries, and the items of a group — paired or not. */
1664
+ slots: VersionSlot[];
1665
+ summary: {
1666
+ /** Items in each form: loose activities and the items of groups. */
1667
+ aItems: number;
1668
+ bItems: number;
1669
+ /** Items paired with one of the other form. */
1670
+ paired: number;
1671
+ /** Paired slots whose structure differs. */
1672
+ structureMismatches: number;
1673
+ };
1620
1674
  }
1621
1675
  /** What `createDraft` hands an activity type's `authoring.createDraft`. */
1622
1676
  interface DraftContext {
@@ -2672,5 +2726,245 @@ interface AiVideoDraft {
2672
2726
  /** What `critiqueItemGroupDraft` says of it. */
2673
2727
  findings: ItemFinding[];
2674
2728
  }
2675
- export { AiVerdict as $, MultipleChoiceData as $t, AiGapSelectFacts as A, XAPIStatement as An, ActivityType as At, AiHintRequest as B, GradingState as Bn, FillInTheBlanksLearnerResponse as Bt, AiDraftsCall as C, XAPIConfig as Cn, ItemFinding as Ct, AiFeature as D, XAPIObject as Dn, ActivityFeedback as Dt, AiExplanationRequest as E, XAPIError as En, ActivityDataMap as Et, AiGradingFacts as F, GradeRoutingReason as Fn, DictationEquivalence as Ft, AiProvenance as G, matchText as Gn, GapSelectLearnerResponse as Gt, AiMaterialFacts as H, TextMatchPolicy as Hn, GapSelectChoice as Ht, AiGradingJudgement as I, Grader as In, DictationLearnerResponse as It, AiRefusal as J, ItemOutcome as Jt, AiReadingFacts as K, InteractionEvent as Kt, AiGradingRequest as L, GraderConfiguration as Ln, DictationSlowMedia as Lt, AiGrade as M, CriterionScore as Mn, DeferredReason as Mt, AiGradedCriterion as N, GradeRecord as Nn, DeferredScoringPartial as Nt, AiFillInTheBlanksFacts as O, XAPIResult as On, ActivityMedia as Ot, AiGradingCriterionFact as P, GradeRouting as Pn, DictationData as Pt, AiTextResult as Q, MediaTrack as Qt, AiGradingRequestProblem as R, GraderKind as Rn, DictationTolerance as Rt, AiDrafts as S, XAPIActor as Sn, DraftValidationResult as St, AiDraftsRun as T, XAPIContextActivities as Tn, ActivityData as Tt, AiMultipleChoiceFacts as U, TextMatchResult as Un, GapSelectData as Ut, AiItemFacts as V, InlineCorrection as Vn, GapSelectBank as Vt, AiOptionFact as W, levenshteinDistance as Wn, GapSelectGap as Wt, AiSoundFact as X, LearnerResponseMap as Xt, AiRubricCriterionFact as Y, LearnerResponse as Yt, AiSupportedActivityType as Z, MediaPlaybackPolicy as Zt, AiDraftCaption as _, WrittenResponseData as _n, DraftComplete as _t, AiCoachingRequest as a, ReadAloudDimension as an, AiWritingFeedbackRequest as at, AiDraftSource as b, WrittenResponseRubricCriterion as bn, DraftNotComplete as bt, AiCriterionJudgement as c, ReadAloudSlowMedia as cn, MediaProgress as ct, AiCritiqueFinding as d, ScoringDetail as dn, SequenceSlot as dt, MultipleChoiceLearnerResponse as en, AiVideoDraft as et, AiCritiqueFindingResult as f, ScoringOutcome as fn, SequenceSlotGroup as ft, AiDictationFacts as g, ValidationResult as gn, TimelineCue as gt, AiCritiqueResult as h, ValidationError as hn, TimelineChapter as ht, AiCoaching as i, ReadAloudData as in, AiWritingFeedback as it, AiGeneratedDraft as j, XAPIVerbObject as jn, BlankConfig as jt, AiGapFact as k, XAPIScore as kn, ActivityResult as kt, AiCritique as l, RecordingBounds as ln, MediaTimeline as lt, AiCritiqueRequest as m, ScriptTurn as mn, StimulusKind as mt, AiActivityInput as n, MultipleChoiceOptionMedia as nn, AiWritingCorrection as nt, AiCoachingResult as o, ReadAloudDimensionWeight as on, AiWritingFeedbackResult as ot, AiCritiqueKind as p, ScoringResult as pn, Stimulus as pt, AiReadingWordFact as q, InteractionKind as qt, AiBlankFact as r, NativeControlHint as rn, AiWritingFacts as rt, AiCoachingWord as s, ReadAloudLearnerResponse as sn, ItemGroup as st, ActivityAiPermissions as t, MultipleChoiceOption as tn, AiWordFact as tt, AiCritiqueField as u, RecordingRef as un, SequenceEntry as ut, AiDraftProblem as v, WrittenResponseLearnerResponse as vn, DraftContext as vt, AiDraftsRequest as w, XAPIContext as wn, ItemFindingSeverity as wt, AiDraftType as x, WrittenResponseRubricLevel as xn, DraftSeverity as xt, AiDraftSettings as y, WrittenResponseRubric as yn, DraftIssue as yt, AiGroupInput as z, GraderUsage as zn, FillInTheBlanksData as zt };
2676
- //# sourceMappingURL=ai-B1wYrqcB.d.cts.map
2729
+ /**
2730
+ * How hard a variant is meant to be next to its exemplar: one step, inside the
2731
+ * level, never another level. `same` is a parallel form. The SDK cannot
2732
+ * measure difficulty: this is an instruction to the model, and item statistics
2733
+ * after delivery are the measurement.
2734
+ */
2735
+ type AiVariantDifficulty = 'easier' | 'same' | 'harder';
2736
+ /**
2737
+ * What the level covers, from the host's curriculum: grammar and vocabulary a
2738
+ * learner has been taught, and topics to keep away from. Told to the model;
2739
+ * the SDK does not check vocabulary.
2740
+ */
2741
+ interface AiVariantLevelFacts {
2742
+ grammar?: string[];
2743
+ vocabulary?: string[];
2744
+ avoidTopics?: string[];
2745
+ }
2746
+ /** Why `aiVariantsRequest` left an exemplar out: it cannot yield a sound variant. */
2747
+ type AiVariantSkipCode = 'variant_exemplar_unheard' | 'variant_exemplar_unseen' | 'variant_exemplar_incomplete' | 'variant_exemplar_timeline' | 'variant_exemplar_unsupported' | 'variant_exemplar_too_long';
2748
+ /** An exemplar left out of the facts, and why. The host keeps it, or asks a person. */
2749
+ interface AiVariantSkip {
2750
+ /** Its index in the exemplars passed. */
2751
+ exemplarIndex: number;
2752
+ code: AiVariantSkipCode;
2753
+ message: string;
2754
+ }
2755
+ /**
2756
+ * What a variant must meet, computed from its exemplar, so that what the model
2757
+ * is told and what `checkAiVariants` checks are one thing.
2758
+ */
2759
+ interface AiVariantTargets {
2760
+ /** The exemplar's type: an activity type, or `item-group`. */
2761
+ type: string;
2762
+ /**
2763
+ * The counts to keep: `{ mode: 'single', options: 4, correct: 1 }`,
2764
+ * `{ blanks: [{ oneWord: true, acceptedAnswers: [1, 3] }] }`,
2765
+ * `{ gaps: [{ bank: 0 }, …], banks: [{ choices: 7 }] }`,
2766
+ * `{ stimulus: 'audio', items: ['multiple-choice', …], speakers: 2, turns: [5, 8] }`.
2767
+ */
2768
+ structure: Readonly<Record<string, unknown>>;
2769
+ /** Inclusive bounds, in words, for each text written: `{ 'stimulus.body': [162, 198], question: [6, 14] }`. */
2770
+ lengths: Readonly<Record<string, [number, number]>>;
2771
+ difficulty: AiVariantDifficulty;
2772
+ /** Why this item moves, in the host's words. Present only when `difficulty` is not `same`. */
2773
+ difficultyReason?: string;
2774
+ /** The ways this type is made easier or harder, as sentences. Present only when `difficulty` is not `same`. */
2775
+ levers?: string[];
2776
+ /**
2777
+ * For an item group whose items do not all move alike (`difficultyFor`
2778
+ * names some of them): each item's own difficulty, by its index in `items`.
2779
+ */
2780
+ itemDifficulty?: {
2781
+ item: number;
2782
+ difficulty: AiVariantDifficulty;
2783
+ difficultyReason?: string;
2784
+ levers?: string[];
2785
+ }[];
2786
+ /** What the item critic finds in the exemplar: flaws the variant must not repeat. */
2787
+ exemplarFindings: {
2788
+ code: string;
2789
+ message: string;
2790
+ }[];
2791
+ }
2792
+ /** One exemplar as a model is given it. */
2793
+ interface AiVariantExemplarFacts {
2794
+ /** Its index in the exemplars passed: what the variant names as its `exemplar`. */
2795
+ exemplar: number;
2796
+ type: string;
2797
+ /**
2798
+ * The exemplar in the shape a variant is written in: every word a learner
2799
+ * reads or hears, which options are right, and each blank's answers. No ids,
2800
+ * HTML, settings or addresses.
2801
+ */
2802
+ content: Readonly<Record<string, unknown>>;
2803
+ /** What it tests, when the author said: the variant tests the same. */
2804
+ learningObjectives?: string[];
2805
+ targets: AiVariantTargets;
2806
+ }
2807
+ /**
2808
+ * A picture an exemplar shows, for a host that attaches pictures to its call:
2809
+ * in exemplar order, each with the `ref` the facts name it by.
2810
+ */
2811
+ interface AiVariantImage {
2812
+ ref: string;
2813
+ exemplarIndex: number;
2814
+ /** Where the picture is, from the exemplar. */
2815
+ path: string[];
2816
+ alt?: string;
2817
+ url: string;
2818
+ }
2819
+ /**
2820
+ * What a host's model is given to write variants of existing items: built by
2821
+ * `aiVariantsRequest`, and by `aiVariantsRepairRequest` for a second pass.
2822
+ *
2823
+ * Only `feature`, `facts`, `shape` and, on a repair, `repair` are for the
2824
+ * model. The rest is for `checkAiVariants`: the exemplars and the other forms
2825
+ * as passed — answer keys and addresses included — and the host's settings.
2826
+ */
2827
+ interface AiVariantsRequest {
2828
+ feature: 'variant-generation';
2829
+ facts: {
2830
+ /** One per exemplar that can be varied, in paper order. One variant is written for each. */
2831
+ exemplars: AiVariantExemplarFacts[];
2832
+ /** The level, as the host names it (`CEFR B1`): every variant stays inside it. */
2833
+ level: string;
2834
+ locale?: string;
2835
+ /** The default for every exemplar; each one's `targets.difficulty` says its own. */
2836
+ difficulty: AiVariantDifficulty;
2837
+ levelFacts?: AiVariantLevelFacts;
2838
+ /**
2839
+ * What happens to a picture: `describe` — the variant describes a new one
2840
+ * in its `alt`, for a person to find or commission; `reuse` — the variant
2841
+ * keeps the exemplar's and asks new questions about it.
2842
+ */
2843
+ imagePolicy: 'describe' | 'reuse';
2844
+ /** Every picture the exemplars show, for a host that attaches them. Absent when there are none. */
2845
+ images?: AiVariantImage[];
2846
+ /**
2847
+ * The other forms' items, as their texts and right answers: what a variant
2848
+ * must not resemble. Absent when the host passed none.
2849
+ */
2850
+ avoid?: {
2851
+ texts: string[];
2852
+ keys: string[];
2853
+ }[];
2854
+ /** The author's words to the model, as they are. */
2855
+ instructions?: string;
2856
+ /** What every variant must respect, as sentences a prompt can quote. */
2857
+ rules: string[];
2858
+ };
2859
+ /** The JSON Schema of a reply — `{ variants: [...] }` — one per exemplar in the facts. */
2860
+ shape: Readonly<Record<string, unknown>>;
2861
+ /** The exemplars as passed. Not for the model: it holds answer keys and addresses. */
2862
+ exemplars: readonly unknown[];
2863
+ /** The other forms as passed. Not for the model. */
2864
+ avoid?: readonly unknown[];
2865
+ /** The host's settings for every variant of a type. Not for the model. */
2866
+ settings?: AiDraftSettings;
2867
+ /** The host's length ratios, overriding `AI_VARIANT_LENGTH_BANDS`. Not for the model. */
2868
+ lengthTolerance?: {
2869
+ material?: number;
2870
+ item?: number;
2871
+ };
2872
+ /** Spread single-answer keys across positions, from this seed. Not for the model. */
2873
+ balanceKeyPositions?: {
2874
+ seed: string;
2875
+ };
2876
+ /** The exemplars that cannot be varied, and why. */
2877
+ skipped: AiVariantSkip[];
2878
+ /**
2879
+ * On a repair: what to write again, each with the problems the model can
2880
+ * fix — `variant` absent for one the model did not write. The reply holds
2881
+ * one variant for each, naming its exemplar.
2882
+ */
2883
+ repair?: {
2884
+ exemplar: number;
2885
+ variant?: Readonly<Record<string, unknown>>;
2886
+ problems: AiDraftProblem[];
2887
+ }[];
2888
+ }
2889
+ /**
2890
+ * Why a variant is not a parallel item of its exemplar: `variant_type` — not
2891
+ * its type; `variant_structure` — a count a learner answers, or a setting that
2892
+ * scores it, differs. Always `invalid`, and repairable.
2893
+ */
2894
+ interface AiVariantMismatch {
2895
+ path: string[];
2896
+ message: string;
2897
+ code: 'variant_type' | 'variant_structure';
2898
+ severity: 'invalid';
2899
+ }
2900
+ /** An exemplar the reply wrote no variant for. Invalid, and repairable. */
2901
+ interface AiVariantMissing {
2902
+ exemplarIndex: number;
2903
+ code: 'variant_missing';
2904
+ message: string;
2905
+ severity: 'invalid';
2906
+ }
2907
+ /**
2908
+ * One item of an exemplar and the variant's item in its place, by path from
2909
+ * each entry (`[]` for a loose activity or a group, `['items', '2']` for an
2910
+ * item in it) and by id: what lines up one form's slot with another's when
2911
+ * the content has no `slotKey`.
2912
+ */
2913
+ interface AiVariantPair {
2914
+ exemplarPath: string[];
2915
+ variantPath: string[];
2916
+ exemplarId: string;
2917
+ variantId: string;
2918
+ }
2919
+ /** A variant as the SDK made it from a reply: copied fields put back, ids minted, checked and compared. */
2920
+ interface AiGeneratedVariant {
2921
+ /** Its exemplar's index in the exemplars passed. */
2922
+ exemplarIndex: number;
2923
+ /** The exemplar's type: an activity type, or `item-group`. */
2924
+ type: string;
2925
+ /** The variant: a sequence entry once `status` is `complete`. */
2926
+ entry: Record<string, unknown>;
2927
+ /**
2928
+ * `invalid` when `validation` is, or a mismatch says so; else `incomplete`
2929
+ * when `validation` is; else `complete`. A recording, or a picture to
2930
+ * describe, comes back with no file — `media_url_required`, so `incomplete`
2931
+ * — until the host attaches one.
2932
+ */
2933
+ status: 'complete' | 'incomplete' | 'invalid';
2934
+ /** What `validateDraft`, or `validateItemGroupDraft`, says of it. */
2935
+ validation: DraftValidationResult<unknown>;
2936
+ /** How it fails to be parallel to its exemplar. */
2937
+ mismatches: AiVariantMismatch[];
2938
+ /** What the item critic finds, then `variant_length`, `variant_near_copy` and `variant_same_key`. */
2939
+ findings: ItemFinding[];
2940
+ /** Each item of the exemplar with the variant's item in its place. */
2941
+ pairs: AiVariantPair[];
2942
+ /** The variant as the model wrote it, for a repair. */
2943
+ generated: Readonly<Record<string, unknown>>;
2944
+ }
2945
+ /** What `checkAiVariants` makes of a reply. */
2946
+ interface AiVariants {
2947
+ /** The variants the reply wrote, in exemplar order. */
2948
+ variants: AiGeneratedVariant[];
2949
+ /** The exemplars it wrote none for. */
2950
+ missing: AiVariantMissing[];
2951
+ /** What only the set shows, over the variants as returned: the paper codes of `critiqueDrafts`. */
2952
+ findings: ItemFinding[];
2953
+ provenance?: AiProvenance;
2954
+ usage?: GraderUsage;
2955
+ }
2956
+ /** What `generateVariants` came to. */
2957
+ interface AiVariantsRun {
2958
+ /** The best pass of each variant, in exemplar order. */
2959
+ variants: AiGeneratedVariant[];
2960
+ /** The exemplars no pass wrote a variant for. */
2961
+ missing: AiVariantMissing[];
2962
+ /** What only the set shows, over the variants as they ended. */
2963
+ findings: ItemFinding[];
2964
+ /** The exemplars that could not be varied, and why. */
2965
+ skipped: AiVariantSkip[];
2966
+ /** Every call, in order: the first, then each repair. */
2967
+ calls: AiDraftsCall[];
2968
+ }
2969
+ export { AiTextResult as $, GradeRoutingReason as $n, DictationEquivalence as $t, AiGapSelectFacts as A, ScoringOutcome as An, TimelineCue as At, AiGroupInput as B, XAPIActor as Bn, VersionFinding as Bt, AiDraftsCall as C, ReadAloudDimension as Cn, MediaTimeline as Ct, AiFeature as D, RecordingBounds as Dn, Stimulus as Dt, AiExplanationRequest as E, ReadAloudSlowMedia as En, SequenceSlotGroup as Et, AiGradingCriterionFact as F, WrittenResponseData as Fn, DraftSeverity as Ft, AiOptionFact as G, XAPIObject as Gn, ActivityFeedback as Gt, AiItemFacts as H, XAPIContext as Hn, VersionSlot as Ht, AiGradingFacts as I, WrittenResponseLearnerResponse as In, DraftValidationResult as It, AiReadingWordFact as J, XAPIStatement as Jn, ActivityType as Jt, AiProvenance as K, XAPIResult as Kn, ActivityMedia as Kt, AiGradingJudgement as L, WrittenResponseRubric as Ln, ItemFinding as Lt, AiGeneratedVariant as M, ScriptTurn as Mn, DraftContext as Mt, AiGrade as N, ValidationError as Nn, DraftIssue as Nt, AiFillInTheBlanksFacts as O, RecordingRef as On, StimulusKind as Ot, AiGradedCriterion as P, ValidationResult as Pn, DraftNotComplete as Pt, AiSupportedActivityType as Q, GradeRouting as Qn, DictationData as Qt, AiGradingRequest as R, WrittenResponseRubricCriterion as Rn, ItemFindingSeverity as Rt, AiDrafts as S, ReadAloudData as Sn, MediaProgress as St, AiDraftsRun as T, ReadAloudLearnerResponse as Tn, SequenceSlot as Tt, AiMaterialFacts as U, XAPIContextActivities as Un, ActivityData as Ut, AiHintRequest as V, XAPIConfig as Vn, VersionPaper as Vt, AiMultipleChoiceFacts as W, XAPIError as Wn, ActivityDataMap as Wt, AiRubricCriterionFact as X, CriterionScore as Xn, DeferredReason as Xt, AiRefusal as Y, XAPIVerbObject as Yn, BlankConfig as Yt, AiSoundFact as Z, GradeRecord as Zn, DeferredScoringPartial as Zt, AiDraftCaption as _, MultipleChoiceData as _n, AiWritingFacts as _t, AiCoachingRequest as a, GapSelectBank as an, InlineCorrection as ar, AiVariantMissing as at, AiDraftSource as b, MultipleChoiceOptionMedia as bn, AiWritingFeedbackResult as bt, AiCriterionJudgement as c, GapSelectGap as cn, levenshteinDistance as cr, AiVariantSkipCode as ct, AiCritiqueFinding as d, InteractionKind as dn, AiVariantsRequest as dt, DictationLearnerResponse as en, Grader as er, AiVariantDifficulty as et, AiCritiqueFindingResult as f, ItemOutcome as fn, AiVariantsRun as ft, AiDictationFacts as g, MediaTrack as gn, AiWritingCorrection as gt, AiCritiqueResult as h, MediaPlaybackPolicy as hn, AiWordFact as ht, AiCoaching as i, FillInTheBlanksLearnerResponse as in, GradingState as ir, AiVariantMismatch as it, AiGeneratedDraft as j, ScoringResult as jn, DraftComplete as jt, AiGapFact as k, ScoringDetail as kn, TimelineChapter as kt, AiCritique as l, GapSelectLearnerResponse as ln, matchText as lr, AiVariantTargets as lt, AiCritiqueRequest as m, LearnerResponseMap as mn, AiVideoDraft as mt, AiActivityInput as n, DictationTolerance as nn, GraderKind as nr, AiVariantImage as nt, AiCoachingResult as o, GapSelectChoice as on, TextMatchPolicy as or, AiVariantPair as ot, AiCritiqueKind as p, LearnerResponse as pn, AiVerdict as pt, AiReadingFacts as q, XAPIScore as qn, ActivityResult as qt, AiBlankFact as r, FillInTheBlanksData as rn, GraderUsage as rr, AiVariantLevelFacts as rt, AiCoachingWord as s, GapSelectData as sn, TextMatchResult as sr, AiVariantSkip as st, ActivityAiPermissions as t, DictationSlowMedia as tn, GraderConfiguration as tr, AiVariantExemplarFacts as tt, AiCritiqueField as u, InteractionEvent as un, AiVariants as ut, AiDraftProblem as v, MultipleChoiceLearnerResponse as vn, AiWritingFeedback as vt, AiDraftsRequest as w, ReadAloudDimensionWeight as wn, SequenceEntry as wt, AiDraftType as x, NativeControlHint as xn, ItemGroup as xt, AiDraftSettings as y, MultipleChoiceOption as yn, AiWritingFeedbackRequest as yt, AiGradingRequestProblem as z, WrittenResponseRubricLevel as zn, VersionComparison as zt };
2970
+ //# sourceMappingURL=ai-Cnm0qE8v.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-Cnm0qE8v.d.cts","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/item-group.ts","../src/types/ai.ts"],"mappings":"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"}