@intellectif/lk-core 1.2.0 → 1.4.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 (105) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +2 -2
  3. package/dist/ai-CnmLPMzd.d.cts +2417 -0
  4. package/dist/ai-CnmLPMzd.d.cts.map +1 -0
  5. package/dist/ai-CnmLPMzd.d.ts +2417 -0
  6. package/dist/ai-CnmLPMzd.d.ts.map +1 -0
  7. package/dist/ai-check.cjs +845 -620
  8. package/dist/ai-check.cjs.map +1 -1
  9. package/dist/ai-check.d.cts +82 -80
  10. package/dist/ai-check.d.cts.map +1 -0
  11. package/dist/ai-check.d.ts +82 -80
  12. package/dist/ai-check.d.ts.map +1 -0
  13. package/dist/ai-check.js +843 -621
  14. package/dist/ai-check.js.map +1 -1
  15. package/dist/ai-writing-CPpH9Qxq.js +2601 -0
  16. package/dist/ai-writing-CPpH9Qxq.js.map +1 -0
  17. package/dist/ai-writing-G6tnCGzw.cjs +2846 -0
  18. package/dist/ai-writing-G6tnCGzw.cjs.map +1 -0
  19. package/dist/index-2nigSf4N.d.cts +339 -0
  20. package/dist/index-2nigSf4N.d.cts.map +1 -0
  21. package/dist/index-B54baFUA.d.ts +339 -0
  22. package/dist/index-B54baFUA.d.ts.map +1 -0
  23. package/dist/index-BAfEHCnD.d.cts +1071 -0
  24. package/dist/index-BAfEHCnD.d.cts.map +1 -0
  25. package/dist/index-BqMXWuNC.d.cts +153 -0
  26. package/dist/index-BqMXWuNC.d.cts.map +1 -0
  27. package/dist/index-CVWvymVb.d.ts +1071 -0
  28. package/dist/index-CVWvymVb.d.ts.map +1 -0
  29. package/dist/index-CcHDTxIZ.d.ts +153 -0
  30. package/dist/index-CcHDTxIZ.d.ts.map +1 -0
  31. package/dist/index.cjs +1211 -1146
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +941 -861
  34. package/dist/index.d.cts.map +1 -0
  35. package/dist/index.d.ts +941 -861
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +1063 -1147
  38. package/dist/index.js.map +1 -1
  39. package/dist/item-group-DXiR8nOr.js +445 -0
  40. package/dist/item-group-DXiR8nOr.js.map +1 -0
  41. package/dist/item-group-DroFXgLb.cjs +505 -0
  42. package/dist/item-group-DroFXgLb.cjs.map +1 -0
  43. package/dist/registry-DVi0LR_i.cjs +5915 -0
  44. package/dist/registry-DVi0LR_i.cjs.map +1 -0
  45. package/dist/registry-Dsx9mNsS.js +5449 -0
  46. package/dist/registry-Dsx9mNsS.js.map +1 -0
  47. package/dist/schemas-Bdw0nGPo.js +152 -0
  48. package/dist/schemas-Bdw0nGPo.js.map +1 -0
  49. package/dist/schemas-DVbAOrtd.cjs +224 -0
  50. package/dist/schemas-DVbAOrtd.cjs.map +1 -0
  51. package/dist/schemas.cjs +16 -34
  52. package/dist/schemas.d.cts +2 -2
  53. package/dist/schemas.d.ts +2 -2
  54. package/dist/schemas.js +3 -34
  55. package/dist/scoring-B2_HEhMT.cjs +1748 -0
  56. package/dist/scoring-B2_HEhMT.cjs.map +1 -0
  57. package/dist/scoring-BZqUkuDF.js +1604 -0
  58. package/dist/scoring-BZqUkuDF.js.map +1 -0
  59. package/dist/scoring.cjs +37 -75
  60. package/dist/scoring.d.cts +3 -1103
  61. package/dist/scoring.d.ts +3 -1103
  62. package/dist/scoring.js +3 -75
  63. package/dist/xapi-CMTph7wG.js +332 -0
  64. package/dist/xapi-CMTph7wG.js.map +1 -0
  65. package/dist/xapi-DNzkSJ0S.cjs +362 -0
  66. package/dist/xapi-DNzkSJ0S.cjs.map +1 -0
  67. package/dist/xapi.cjs +7 -16
  68. package/dist/xapi.d.cts +2 -150
  69. package/dist/xapi.d.ts +2 -150
  70. package/dist/xapi.js +2 -16
  71. package/package.json +4 -4
  72. package/dist/activity-D705CXng.d.cts +0 -2162
  73. package/dist/activity-D705CXng.d.ts +0 -2162
  74. package/dist/chunk-46BXIGLG.cjs +0 -272
  75. package/dist/chunk-46BXIGLG.cjs.map +0 -1
  76. package/dist/chunk-4YANYTFN.cjs +0 -1256
  77. package/dist/chunk-4YANYTFN.cjs.map +0 -1
  78. package/dist/chunk-7KOWU4RO.js +0 -2207
  79. package/dist/chunk-7KOWU4RO.js.map +0 -1
  80. package/dist/chunk-7THXD7AN.cjs +0 -5057
  81. package/dist/chunk-7THXD7AN.cjs.map +0 -1
  82. package/dist/chunk-CYCTIXUN.cjs +0 -118
  83. package/dist/chunk-CYCTIXUN.cjs.map +0 -1
  84. package/dist/chunk-CYPA5BW5.js +0 -118
  85. package/dist/chunk-CYPA5BW5.js.map +0 -1
  86. package/dist/chunk-JTNDIBZO.js +0 -272
  87. package/dist/chunk-JTNDIBZO.js.map +0 -1
  88. package/dist/chunk-MV2N2WNS.js +0 -352
  89. package/dist/chunk-MV2N2WNS.js.map +0 -1
  90. package/dist/chunk-MXI26H62.cjs +0 -2207
  91. package/dist/chunk-MXI26H62.cjs.map +0 -1
  92. package/dist/chunk-QS7B42ZR.js +0 -5057
  93. package/dist/chunk-QS7B42ZR.js.map +0 -1
  94. package/dist/chunk-QX2ERL72.js +0 -1256
  95. package/dist/chunk-QX2ERL72.js.map +0 -1
  96. package/dist/chunk-ZWXQSKCX.cjs +0 -352
  97. package/dist/chunk-ZWXQSKCX.cjs.map +0 -1
  98. package/dist/index-BChYtrEe.d.ts +0 -548
  99. package/dist/index-VXt_v3YI.d.cts +0 -548
  100. package/dist/schemas.cjs.map +0 -1
  101. package/dist/schemas.js.map +0 -1
  102. package/dist/scoring.cjs.map +0 -1
  103. package/dist/scoring.js.map +0 -1
  104. package/dist/xapi.cjs.map +0 -1
  105. package/dist/xapi.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BAfEHCnD.d.cts","names":[],"sources":["../src/scoring/rounding.ts","../src/types/speech.ts","../src/scoring/compose.ts","../src/types/item-scoring.ts","../src/scoring/dictation/align.ts","../src/scoring/dictation/chars.ts","../src/scoring/dictation/normalize.ts","../src/scoring/item-scoring.ts","../src/scoring/pass-threshold.ts","../src/scoring/speech/align.ts","../src/scoring/speech/assessment.ts","../src/scoring/speech/grade.ts","../src/scoring/speech/limits.ts","../src/scoring/speech/wav.ts","../src/scoring/unscorable.ts","../src/scoring/index.ts"],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import { Sn as XAPIStatement, bn as XAPIResult, gn as XAPIContext, mn as XAPIActor, sn as ScoringResult } from "./ai-CnmLPMzd.cjs";
2
+ //#region src/xapi/verbs.d.ts
3
+ /**
4
+ * The set of xAPI verbs emitted by SDK activities, keyed by a stable
5
+ * identifier mapped to its canonical xAPI verb IRI (xAPI 1.0.3 / ADL registry).
6
+ */
7
+ declare const XAPIVerb: {
8
+ readonly ANSWERED: "http://adlnet.gov/expapi/verbs/answered";
9
+ readonly COMPLETED: "http://adlnet.gov/expapi/verbs/completed";
10
+ readonly EXPERIENCED: "http://adlnet.gov/expapi/verbs/experienced";
11
+ readonly INTERACTED: "http://adlnet.gov/expapi/verbs/interacted";
12
+ readonly ATTEMPTED: "http://adlnet.gov/expapi/verbs/attempted";
13
+ readonly PASSED: "http://adlnet.gov/expapi/verbs/passed";
14
+ readonly FAILED: "http://adlnet.gov/expapi/verbs/failed";
15
+ readonly WATCHED: "https://w3id.org/xapi/video/verbs/watched";
16
+ /**
17
+ * Emitted for deferred-grading submissions (e.g. written-response): the
18
+ * learner has submitted work whose grade does not exist yet, so `answered`
19
+ * (which implies a scored response) would be wrong. xAPI 1.0.3 defines no
20
+ * canonical "submit" verb; the Activity Streams 1.0 IRI is the established
21
+ * community choice.
22
+ */
23
+ readonly SUBMITTED: "http://activitystrea.ms/schema/1.0/submit";
24
+ /**
25
+ * Emitted when an asynchronous grader produces a grade for work that was
26
+ * previously only SUBMITTED. Distinct from `answered`, which asserts the
27
+ * grade existed at submission time — here the learner acted earlier and the
28
+ * grade arrived later, often from a different actor (an AI or a teacher).
29
+ */
30
+ readonly SCORED: "http://adlnet.gov/expapi/verbs/scored";
31
+ };
32
+ /** Union of the valid `XAPIVerb` keys. */
33
+ type XAPIVerbKey = keyof typeof XAPIVerb;
34
+ /**
35
+ * Default `en-US` display label for each verb, used to populate
36
+ * `XAPIVerbObject.display` when the builder resolves a verb key.
37
+ */
38
+ declare const XAPI_VERB_DISPLAY: Record<XAPIVerbKey, Record<string, string>>;
39
+ //#endregion
40
+ //#region src/xapi/builder.d.ts
41
+ /** Caller-supplied activity object descriptor (mapped to an xAPI Activity). */
42
+ interface XAPIObjectParams {
43
+ /** Activity IRI. */
44
+ id: string;
45
+ name?: Record<string, string>;
46
+ description?: Record<string, string>;
47
+ /** Activity type IRI. */
48
+ type?: string;
49
+ /** xAPI cmi.interaction type (e.g. `choice`, `fill-in`, `long-fill-in`). */
50
+ interactionType?: string;
51
+ /** Correct-responses patterns, per the xAPI CRP format. */
52
+ correctResponsesPattern?: string[];
53
+ /** For choice-family interactions: the available components. */
54
+ choices?: Array<{
55
+ id: string;
56
+ description?: Record<string, string>;
57
+ }>;
58
+ }
59
+ /** Parameters for the generic {@link xAPIBuilder.buildStatement}. */
60
+ interface XAPIStatementParams {
61
+ actor: XAPIActor;
62
+ verb: XAPIVerbKey;
63
+ object: XAPIObjectParams;
64
+ result?: XAPIResult;
65
+ context?: XAPIContext;
66
+ }
67
+ /** Parameters for {@link xAPIBuilder.buildAnsweredStatement} (verb = ANSWERED). */
68
+ interface AnsweredStatementParams {
69
+ actor: XAPIActor;
70
+ object: XAPIObjectParams;
71
+ scoringResult: ScoringResult;
72
+ timeSpentMs: number;
73
+ /** Serialized learner response string. */
74
+ response?: string;
75
+ context?: XAPIContext;
76
+ resultExtensions?: Record<string, unknown>;
77
+ }
78
+ /**
79
+ * Parameters for {@link xAPIBuilder.buildSubmittedStatement} (verb =
80
+ * SUBMITTED — deferred-grading submissions). Carries NO score, success, or
81
+ * completion: the grade does not exist yet.
82
+ */
83
+ interface SubmittedStatementParams {
84
+ actor: XAPIActor;
85
+ object: XAPIObjectParams;
86
+ timeSpentMs: number;
87
+ /** Serialized learner response string (e.g. the submitted text). */
88
+ response?: string;
89
+ context?: XAPIContext;
90
+ resultExtensions?: Record<string, unknown>;
91
+ }
92
+ /** Parameters for {@link xAPIBuilder.buildCompletedStatement} (verb = COMPLETED). */
93
+ interface CompletedStatementParams {
94
+ actor: XAPIActor;
95
+ object: XAPIObjectParams;
96
+ scoringResult?: ScoringResult;
97
+ timeSpentMs: number;
98
+ context?: XAPIContext;
99
+ resultExtensions?: Record<string, unknown>;
100
+ }
101
+ /**
102
+ * Constructs xAPI 1.0.3 Statements. Every call stamps a fresh UUID v4 `id`,
103
+ * an ISO 8601 `timestamp`, and `version: '1.0.3'`. Not pure by design —
104
+ * statements are unique events.
105
+ */
106
+ declare const xAPIBuilder: {
107
+ buildStatement(params: XAPIStatementParams): XAPIStatement;
108
+ buildAnsweredStatement(params: AnsweredStatementParams): XAPIStatement;
109
+ /**
110
+ * Builds a statement for a deferred-grading submission (e.g. a written
111
+ * response). Verb is SUBMITTED and the result deliberately omits `score`,
112
+ * `success`, and `completion` — none of them exist until the asynchronous
113
+ * grader runs; only `duration`, `response`, and extensions are recorded.
114
+ */
115
+ buildSubmittedStatement(params: SubmittedStatementParams): XAPIStatement;
116
+ buildCompletedStatement(params: CompletedStatementParams): XAPIStatement;
117
+ };
118
+ /**
119
+ * Builds the xAPI `object.definition` interop fields for an activity from its
120
+ * REGISTERED descriptor, rather than having every renderer hand-roll them.
121
+ *
122
+ * `ActivityTypeDescriptor.interop` declares the activity-type IRI, the
123
+ * cmi.interaction type and how to derive `correctResponsesPattern`; before
124
+ * this, those fields had no reader anywhere and each component rebuilt the
125
+ * same strings inline — the same "declared but never used" defect the SDK
126
+ * fixed elsewhere. Reading them here also means a consumer-registered type
127
+ * gets correct interop for free.
128
+ *
129
+ * Returns an empty object for an unregistered type or one that declares no
130
+ * interop, so it is always safe to spread.
131
+ */
132
+ declare function xapiDefinitionFor(data: {
133
+ type: string;
134
+ }): Partial<XAPIObjectParams>;
135
+ //#endregion
136
+ //#region src/xapi/validators.d.ts
137
+ /**
138
+ * Validates a constructed {@link XAPIStatement} against the xAPI 1.0.3
139
+ * structural contract.
140
+ *
141
+ * In development a structural failure throws (caught early); in production it
142
+ * logs a warning and returns (the statement is still sent — see the design's
143
+ * Error Handling table). Uses a `zod/v4` schema rather than `ajv` + an
144
+ * external JSON Schema to keep `lk-core` dependency-free.
145
+ *
146
+ * NOTE: `ActivitySchemaError` is reused here per the task spec; its
147
+ * `activityType` field carries the sentinel `'xAPIStatement'`. A dedicated
148
+ * `XAPIValidationError` would be semantically cleaner — flagged for review.
149
+ */
150
+ declare function validateXAPIStatement(statement: XAPIStatement): void;
151
+ //#endregion
152
+ export { XAPIObjectParams as a, xapiDefinitionFor as c, XAPI_VERB_DISPLAY as d, SubmittedStatementParams as i, XAPIVerb as l, AnsweredStatementParams as n, XAPIStatementParams as o, CompletedStatementParams as r, xAPIBuilder as s, validateXAPIStatement as t, XAPIVerbKey as u };
153
+ //# sourceMappingURL=index-BqMXWuNC.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BqMXWuNC.d.cts","names":[],"sources":["../src/xapi/verbs.ts","../src/xapi/builder.ts","../src/xapi/validators.ts"],"mappings":";;;;;;cAIa;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BD,2BAA2B;;;;;cAM1B,mBAAmB,OAAO,aAAa;;;;UCxBnC;;EAEf;EACA,OAAO;EACP,cAAc;;EAEd;;EAEA;;EAEA;;EAEA,UAAU;IAAQ;IAAY,cAAc;;;;UAI7B;EACf,OAAO;EACP,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;;;UAIK;EACf,OAAO;EACP,QAAQ;EACR,eAAe;EACf;;EAEA;EACA,UAAU;EACV,mBAAmB;;;;;;;UAQJ;EACf,OAAO;EACP,QAAQ;EACR;;EAEA;EACA,UAAU;EACV,mBAAmB;;;UAIJ;EACf,OAAO;EACP,QAAQ;EACR,gBAAgB;EAChB;EACA,UAAU;EACV,mBAAmB;;;;;;;cAiGR;EACY,eAAA,QAAA,sBAAsB;EAoBd,uBAAA,QAAA,0BAA0B;;;;;;;EAqBzB,wBAAA,QAAA,2BAA2B;EAc3B,wBAAA,QAAA,2BAA2B;;;;;;;;;;;;;;;;iBA8B7C,kBAAkB;EAAQ;IAAiB,QAAQ;;;;;;;;;;;;;;;;iBClHnD,sBAAsB,WAAW"}