@intellectif/lk-core 1.7.0 → 1.9.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/CHANGELOG.md +33 -0
- package/dist/ai-check.cjs +77 -3
- package/dist/ai-check.cjs.map +1 -1
- package/dist/ai-check.d.cts +11 -3
- package/dist/ai-check.d.cts.map +1 -1
- package/dist/ai-check.d.ts +11 -3
- package/dist/ai-check.d.ts.map +1 -1
- package/dist/ai-check.js +77 -3
- package/dist/ai-check.js.map +1 -1
- package/dist/{ai-writing-B7oMCt66.js → ai-writing-DQjI9EFN.js} +2514 -136
- package/dist/ai-writing-DQjI9EFN.js.map +1 -0
- package/dist/{ai-writing-DrPTV3R2.cjs → ai-writing-DbpZpGRk.cjs} +2614 -122
- package/dist/ai-writing-DbpZpGRk.cjs.map +1 -0
- package/dist/{ai-B1wYrqcB.d.ts → ai-zhc9yhRj.d.cts} +454 -2
- package/dist/ai-zhc9yhRj.d.cts.map +1 -0
- package/dist/{ai-B1wYrqcB.d.cts → ai-zhc9yhRj.d.ts} +454 -2
- package/dist/ai-zhc9yhRj.d.ts.map +1 -0
- package/dist/{index-XCCoPoTU.d.cts → index-BeC8tAWf.d.cts} +2 -2
- package/dist/{index-XCCoPoTU.d.cts.map → index-BeC8tAWf.d.cts.map} +1 -1
- package/dist/{index-BU99GFTl.d.ts → index-Byar5VVs.d.ts} +2 -2
- package/dist/{index-BU99GFTl.d.ts.map → index-Byar5VVs.d.ts.map} +1 -1
- package/dist/{index-DP9rvyOz.d.cts → index-Ccj8oL_E.d.cts} +2 -2
- package/dist/{index-DP9rvyOz.d.cts.map → index-Ccj8oL_E.d.cts.map} +1 -1
- package/dist/{index-BTkMQtws.d.ts → index-CxkqS62X.d.ts} +89 -7
- package/dist/index-CxkqS62X.d.ts.map +1 -0
- package/dist/{index-BM8LeDWn.d.cts → index-DLsUnGHt.d.cts} +89 -7
- package/dist/index-DLsUnGHt.d.cts.map +1 -0
- package/dist/{index-BdXs4-en.d.ts → index-f4YuMgFb.d.ts} +2 -2
- package/dist/{index-BdXs4-en.d.ts.map → index-f4YuMgFb.d.ts.map} +1 -1
- package/dist/index.cjs +282 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +262 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +262 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +269 -7
- package/dist/index.js.map +1 -1
- package/dist/{item-group-CeDk7mfM.js → item-group-CKZk3txt.js} +2 -2
- package/dist/{item-group-CeDk7mfM.js.map → item-group-CKZk3txt.js.map} +1 -1
- package/dist/{item-group-8P3WFuUK.cjs → item-group-COP5OwEC.cjs} +2 -2
- package/dist/{item-group-8P3WFuUK.cjs.map → item-group-COP5OwEC.cjs.map} +1 -1
- package/dist/{registry-D92hz9iA.js → registry-Bw9grsCN.js} +339 -12
- package/dist/registry-Bw9grsCN.js.map +1 -0
- package/dist/{registry-hzrkTeIT.cjs → registry-C9O9txy5.cjs} +368 -11
- package/dist/registry-C9O9txy5.cjs.map +1 -0
- package/dist/{schemas-C7TViWCg.js → schemas-BJe3W6Xb.js} +3 -3
- package/dist/{schemas-C7TViWCg.js.map → schemas-BJe3W6Xb.js.map} +1 -1
- package/dist/{schemas-BWeskONy.cjs → schemas-CXlemRvB.cjs} +3 -3
- package/dist/{schemas-BWeskONy.cjs.map → schemas-CXlemRvB.cjs.map} +1 -1
- package/dist/schemas.cjs +3 -3
- package/dist/schemas.d.cts +1 -1
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.js +3 -3
- package/dist/{scoring-DD1GHcLI.js → scoring-BGKdff2i.js} +214 -26
- package/dist/scoring-BGKdff2i.js.map +1 -0
- package/dist/{scoring-CtkCFyFT.cjs → scoring-Db1CZeAn.cjs} +219 -25
- package/dist/scoring-Db1CZeAn.cjs.map +1 -0
- package/dist/scoring.cjs +3 -2
- package/dist/scoring.d.cts +3 -3
- package/dist/scoring.d.ts +3 -3
- package/dist/scoring.js +3 -3
- package/dist/{xapi-Cgicg-zU.js → xapi-BtBm8AWZ.js} +2 -2
- package/dist/{xapi-Cgicg-zU.js.map → xapi-BtBm8AWZ.js.map} +1 -1
- package/dist/{xapi-7btSpx6v.cjs → xapi-DOAqH9__.cjs} +2 -2
- package/dist/{xapi-7btSpx6v.cjs.map → xapi-DOAqH9__.cjs.map} +1 -1
- package/dist/xapi.cjs +1 -1
- package/dist/xapi.d.cts +1 -1
- package/dist/xapi.d.ts +1 -1
- package/dist/xapi.js +1 -1
- package/package.json +2 -2
- package/vectors/README.md +23 -0
- package/vectors/scoring.json +11967 -1
- package/vectors/validation.json +1298 -1
- package/vectors/variants.d.mts +20 -0
- package/vectors/variants.json +5753 -0
- package/vectors/variants.mjs +67 -0
- package/dist/ai-B1wYrqcB.d.cts.map +0 -1
- package/dist/ai-B1wYrqcB.d.ts.map +0 -1
- package/dist/ai-writing-B7oMCt66.js.map +0 -1
- package/dist/ai-writing-DrPTV3R2.cjs.map +0 -1
- package/dist/index-BM8LeDWn.d.cts.map +0 -1
- package/dist/index-BTkMQtws.d.ts.map +0 -1
- package/dist/registry-D92hz9iA.js.map +0 -1
- package/dist/registry-hzrkTeIT.cjs.map +0 -1
- package/dist/scoring-CtkCFyFT.cjs.map +0 -1
- package/dist/scoring-DD1GHcLI.js.map +0 -1
|
@@ -419,6 +419,7 @@ interface ActivityDataMap {
|
|
|
419
419
|
'gap-select': GapSelectData;
|
|
420
420
|
dictation: DictationData;
|
|
421
421
|
'read-aloud': ReadAloudData;
|
|
422
|
+
'speaking-response': SpeakingResponseData;
|
|
422
423
|
}
|
|
423
424
|
/**
|
|
424
425
|
* The set of activity types supported by learning-kit. Derived from
|
|
@@ -1170,6 +1171,7 @@ interface LearnerResponseMap {
|
|
|
1170
1171
|
'gap-select': GapSelectLearnerResponse;
|
|
1171
1172
|
dictation: DictationLearnerResponse;
|
|
1172
1173
|
'read-aloud': ReadAloudLearnerResponse;
|
|
1174
|
+
'speaking-response': SpeakingResponseLearnerResponse;
|
|
1173
1175
|
}
|
|
1174
1176
|
/** Union of all learner response shapes. */
|
|
1175
1177
|
type LearnerResponse = LearnerResponseMap[keyof LearnerResponseMap];
|
|
@@ -1271,6 +1273,80 @@ interface ReadAloudLearnerResponse {
|
|
|
1271
1273
|
/** Telemetry: takes used. No grade reads it. */
|
|
1272
1274
|
takes?: number;
|
|
1273
1275
|
}
|
|
1276
|
+
/**
|
|
1277
|
+
* What a speech engine measures of an open answer, which a criterion of a
|
|
1278
|
+
* speaking rubric may be scored from instead of by a judge:
|
|
1279
|
+
*
|
|
1280
|
+
* - `pronunciation` — the engine's accuracy: how close each sound is to the
|
|
1281
|
+
* locale's speech;
|
|
1282
|
+
* - `fluency` — its fluency: pace, pauses and hesitations;
|
|
1283
|
+
* - `prosody` — its prosody: stress, rhythm and intonation.
|
|
1284
|
+
*/
|
|
1285
|
+
type SpeakingMeasure = 'pronunciation' | 'fluency' | 'prosody';
|
|
1286
|
+
/**
|
|
1287
|
+
* One criterion of a speaking rubric: a written-response criterion, and
|
|
1288
|
+
* optionally the engine measure it is scored from. Without `measure` the
|
|
1289
|
+
* criterion is a judge's to score — content, organisation, range, accuracy of
|
|
1290
|
+
* the language — from the transcript; with one, the engine's measure scores it
|
|
1291
|
+
* unless the host lets the judge score measured criteria too.
|
|
1292
|
+
*/
|
|
1293
|
+
interface SpeakingRubricCriterion extends WrittenResponseRubricCriterion {
|
|
1294
|
+
measure?: SpeakingMeasure;
|
|
1295
|
+
}
|
|
1296
|
+
/** A speaking task's rubric: at least one criterion, at least one weighted above 0. */
|
|
1297
|
+
interface SpeakingRubric {
|
|
1298
|
+
label?: string;
|
|
1299
|
+
criteria: SpeakingRubricCriterion[];
|
|
1300
|
+
}
|
|
1301
|
+
/**
|
|
1302
|
+
* Speaking Response activity data contract: a learner answers a prompt out
|
|
1303
|
+
* loud — optionally about a picture, or after a recording — and the answer is
|
|
1304
|
+
* graded on a rubric. Deferred, like written-response: nothing grades it in the
|
|
1305
|
+
* browser. The server transcribes the take, a speech engine measures it, and
|
|
1306
|
+
* `gradeSpeakingResponse` computes the grade from a judge's criteria and the
|
|
1307
|
+
* engine's measures.
|
|
1308
|
+
*/
|
|
1309
|
+
interface SpeakingResponseData {
|
|
1310
|
+
schemaVersion: '1.0';
|
|
1311
|
+
type: 'speaking-response';
|
|
1312
|
+
id: string;
|
|
1313
|
+
title: string;
|
|
1314
|
+
/** The task, shown to the learner before the prompt: how to answer. */
|
|
1315
|
+
instructions?: string;
|
|
1316
|
+
/** What the learner speaks about, as plain text. */
|
|
1317
|
+
prompt: string;
|
|
1318
|
+
/** Rich-text prompt for display. Author content; sanitise before rendering. */
|
|
1319
|
+
promptHtml?: string;
|
|
1320
|
+
/**
|
|
1321
|
+
* The language spoken, a canonical BCP 47 tag with a region (`en-US`): the
|
|
1322
|
+
* speech engine measures pronunciation against one locale's speech.
|
|
1323
|
+
*/
|
|
1324
|
+
locale: string;
|
|
1325
|
+
/** A picture to describe, or a recording to answer. */
|
|
1326
|
+
media?: ActivityMedia;
|
|
1327
|
+
/** The limits of a take. */
|
|
1328
|
+
recording: RecordingBounds;
|
|
1329
|
+
/** What the answer is graded on. */
|
|
1330
|
+
rubric: SpeakingRubric;
|
|
1331
|
+
/** Target language and level, e.g. `"en-B1"`: told to the judge. */
|
|
1332
|
+
languageTarget?: string;
|
|
1333
|
+
passThreshold?: number;
|
|
1334
|
+
feedback?: ActivityFeedback;
|
|
1335
|
+
learningObjectives?: string[];
|
|
1336
|
+
difficultyLevel?: 1 | 2 | 3 | 4 | 5;
|
|
1337
|
+
ai?: ActivityAiPermissions;
|
|
1338
|
+
}
|
|
1339
|
+
/**
|
|
1340
|
+
* Learner response for a Speaking Response activity: a reference to the
|
|
1341
|
+
* recording the application stored, as a read-aloud's is.
|
|
1342
|
+
*/
|
|
1343
|
+
interface SpeakingResponseLearnerResponse {
|
|
1344
|
+
type: 'speaking-response';
|
|
1345
|
+
/** `null`: the learner submitted without recording (a blank). A take that failed to upload is never `null`. */
|
|
1346
|
+
recording: RecordingRef | null;
|
|
1347
|
+
/** Telemetry: takes used. No grade reads it. */
|
|
1348
|
+
takes?: number;
|
|
1349
|
+
}
|
|
1274
1350
|
/**
|
|
1275
1351
|
* Fine-grained outcome of the learner's action on a single item:
|
|
1276
1352
|
* - `correct` — the learner selected/entered the right answer.
|
|
@@ -1617,6 +1693,60 @@ type ItemFindingSeverity = 'warning' | 'advice';
|
|
|
1617
1693
|
*/
|
|
1618
1694
|
interface ItemFinding extends ValidationError {
|
|
1619
1695
|
severity: ItemFindingSeverity;
|
|
1696
|
+
/**
|
|
1697
|
+
* The other places a finding about several items involves, by path from the
|
|
1698
|
+
* same root as `path`: the item whose passage holds another's answer, the
|
|
1699
|
+
* questions whose keys share a position. Absent when only `path` is involved.
|
|
1700
|
+
*/
|
|
1701
|
+
related?: string[][];
|
|
1702
|
+
}
|
|
1703
|
+
/**
|
|
1704
|
+
* One form of an exam, as `critiqueVersions` reads it: its sections in paper
|
|
1705
|
+
* order, each a list of sequence entries. A host without sections passes one.
|
|
1706
|
+
*/
|
|
1707
|
+
interface VersionPaper {
|
|
1708
|
+
sections: readonly {
|
|
1709
|
+
key?: string;
|
|
1710
|
+
title?: string;
|
|
1711
|
+
entries: readonly unknown[];
|
|
1712
|
+
}[];
|
|
1713
|
+
}
|
|
1714
|
+
/**
|
|
1715
|
+
* One thing `critiqueVersions` found between two forms. `a` and `b` are where
|
|
1716
|
+
* it is in each, by path from the paper's root:
|
|
1717
|
+
* `['sections', '0', 'entries', '2', 'items', '1']`.
|
|
1718
|
+
*
|
|
1719
|
+
* - `invalid` — the two are not parallel: a different blueprint, type or
|
|
1720
|
+
* structure, so they do not score alike.
|
|
1721
|
+
* - `warning` — they are parallel, but a re-sitting learner would meet
|
|
1722
|
+
* something again, or one form is longer or tests another objective.
|
|
1723
|
+
* - `advice` — a picture both forms show, which a host may allow.
|
|
1724
|
+
*/
|
|
1725
|
+
interface VersionFinding extends ValidationError {
|
|
1726
|
+
severity: 'invalid' | 'warning' | 'advice';
|
|
1727
|
+
a?: string[];
|
|
1728
|
+
b?: string[];
|
|
1729
|
+
}
|
|
1730
|
+
/** One slot of the first form, with the slot of the second paired with it, and how they were paired. */
|
|
1731
|
+
interface VersionSlot {
|
|
1732
|
+
a: string[] | null;
|
|
1733
|
+
b: string[] | null;
|
|
1734
|
+
by: 'pairs' | 'slotKey' | 'position';
|
|
1735
|
+
}
|
|
1736
|
+
/** What `critiqueVersions` found. */
|
|
1737
|
+
interface VersionComparison {
|
|
1738
|
+
findings: VersionFinding[];
|
|
1739
|
+
/** Every slot of either form — entries, and the items of a group — paired or not. */
|
|
1740
|
+
slots: VersionSlot[];
|
|
1741
|
+
summary: {
|
|
1742
|
+
/** Items in each form: loose activities and the items of groups. */
|
|
1743
|
+
aItems: number;
|
|
1744
|
+
bItems: number;
|
|
1745
|
+
/** Items paired with one of the other form. */
|
|
1746
|
+
paired: number;
|
|
1747
|
+
/** Paired slots whose structure differs. */
|
|
1748
|
+
structureMismatches: number;
|
|
1749
|
+
};
|
|
1620
1750
|
}
|
|
1621
1751
|
/** What `createDraft` hands an activity type's `authoring.createDraft`. */
|
|
1622
1752
|
interface DraftContext {
|
|
@@ -2289,6 +2419,88 @@ interface AiGradingRequest {
|
|
|
2289
2419
|
* - `empty-response` — nothing was written, so there is nothing to judge.
|
|
2290
2420
|
*/
|
|
2291
2421
|
type AiGradingRequestProblem = 'not-written-response' | 'redacted' | 'no-rubric' | 'duplicate-criteria' | 'unreadable-levels' | 'empty-response';
|
|
2422
|
+
/** One criterion a judge scores on a spoken answer, as the author wrote it. */
|
|
2423
|
+
interface AiSpeakingCriterionFact extends AiGradingCriterionFact {
|
|
2424
|
+
/**
|
|
2425
|
+
* The engine measure the criterion names, when the host has the judge score
|
|
2426
|
+
* measured criteria too (`judgeMeasures`): what to listen for.
|
|
2427
|
+
*/
|
|
2428
|
+
measure?: SpeakingMeasure;
|
|
2429
|
+
}
|
|
2430
|
+
/** A criterion the engine scores: the judge is told of it, and does not score it. */
|
|
2431
|
+
interface AiSpeakingMeasureFact {
|
|
2432
|
+
name: string;
|
|
2433
|
+
measure: SpeakingMeasure;
|
|
2434
|
+
weight: number;
|
|
2435
|
+
/** The engine's score, 0..100, when it gave one. */
|
|
2436
|
+
score?: number;
|
|
2437
|
+
}
|
|
2438
|
+
/**
|
|
2439
|
+
* What a model is told about a spoken answer it grades: the task as the
|
|
2440
|
+
* learner saw it, the transcript of what they said, verbatim, and the criteria
|
|
2441
|
+
* it scores.
|
|
2442
|
+
*/
|
|
2443
|
+
interface AiSpeakingGradingFacts {
|
|
2444
|
+
activityType: 'speaking-response';
|
|
2445
|
+
activityId: string;
|
|
2446
|
+
title: string;
|
|
2447
|
+
/** The language the answer is spoken in. */
|
|
2448
|
+
locale: string;
|
|
2449
|
+
instructions?: string;
|
|
2450
|
+
prompt: string;
|
|
2451
|
+
/** What the prompt is about, as the item describes its picture or recording. */
|
|
2452
|
+
media?: {
|
|
2453
|
+
type: string;
|
|
2454
|
+
alt?: string;
|
|
2455
|
+
};
|
|
2456
|
+
/**
|
|
2457
|
+
* What the learner said, from the evidence's transcript: verbatim, with its
|
|
2458
|
+
* fillers, false starts and the learner's own grammar. Every correction
|
|
2459
|
+
* quotes it.
|
|
2460
|
+
*/
|
|
2461
|
+
text: string;
|
|
2462
|
+
/** Counted with `countWords`, as the speech-rate check counts it. */
|
|
2463
|
+
wordCount: number;
|
|
2464
|
+
/** The criteria the judge scores, in the rubric's order. */
|
|
2465
|
+
rubric: AiSpeakingCriterionFact[];
|
|
2466
|
+
/** The criteria the engine scores, with what it measured: context for the feedback, never the judge's to score. */
|
|
2467
|
+
measured: AiSpeakingMeasureFact[];
|
|
2468
|
+
/** The target language and level, when the author gave one (e.g. `"en-B1"`). */
|
|
2469
|
+
languageTarget?: string;
|
|
2470
|
+
}
|
|
2471
|
+
/**
|
|
2472
|
+
* Asks a model to grade a spoken answer from its transcript. Built on the
|
|
2473
|
+
* server, from the whole item and the take's evidence. `checkAiGrading` reads
|
|
2474
|
+
* the reply, and `gradeSpeakingResponse` computes the grade.
|
|
2475
|
+
*/
|
|
2476
|
+
interface AiSpeakingGradingRequest {
|
|
2477
|
+
feature: 'speaking-grading';
|
|
2478
|
+
facts: AiSpeakingGradingFacts;
|
|
2479
|
+
/** The material of the group the task sits in; absent outside a group. */
|
|
2480
|
+
material?: AiMaterialFacts;
|
|
2481
|
+
/** The language to write comments and feedback in, when known. */
|
|
2482
|
+
learnerLocale?: string;
|
|
2483
|
+
}
|
|
2484
|
+
/**
|
|
2485
|
+
* Why `aiSpeakingGradingRequest` built no request:
|
|
2486
|
+
*
|
|
2487
|
+
* - `not-speaking-response` — the item is another type;
|
|
2488
|
+
* - `redacted` — a `redact()` projection;
|
|
2489
|
+
* - `no-rubric` — no rubric, a criterion without a name and a weight, or one
|
|
2490
|
+
* whose `measure` is not one of the engine's;
|
|
2491
|
+
* - `duplicate-criteria` and `unreadable-levels` — as for a written response;
|
|
2492
|
+
* - `nothing-to-judge` — the engine scores every criterion, so there is no
|
|
2493
|
+
* judgement to ask for;
|
|
2494
|
+
* - `empty-response` — a blank, or a take the engine heard no speech in;
|
|
2495
|
+
* - `invalid-assessment` — no assessment, or one `validateSpeechAssessment`
|
|
2496
|
+
* refuses;
|
|
2497
|
+
* - `evidence-mismatch` — an assessment that is not `unscripted`, or not for
|
|
2498
|
+
* the item's locale or this response's recording, which the grade would
|
|
2499
|
+
* refuse;
|
|
2500
|
+
* - `no-transcript` — the assessment carries no `transcript`: there is no
|
|
2501
|
+
* record of what was said for a judge to read.
|
|
2502
|
+
*/
|
|
2503
|
+
type AiSpeakingGradingRequestProblem = 'not-speaking-response' | 'redacted' | 'no-rubric' | 'duplicate-criteria' | 'unreadable-levels' | 'nothing-to-judge' | 'empty-response' | 'invalid-assessment' | 'evidence-mismatch' | 'no-transcript';
|
|
2292
2504
|
/** A model's judgement of one criterion, as `checkAiGrading` accepted it. */
|
|
2293
2505
|
interface AiGradedCriterion {
|
|
2294
2506
|
/** The criterion's name, as the author wrote it. */
|
|
@@ -2672,5 +2884,245 @@ interface AiVideoDraft {
|
|
|
2672
2884
|
/** What `critiqueItemGroupDraft` says of it. */
|
|
2673
2885
|
findings: ItemFinding[];
|
|
2674
2886
|
}
|
|
2675
|
-
|
|
2676
|
-
|
|
2887
|
+
/**
|
|
2888
|
+
* How hard a variant is meant to be next to its exemplar: one step, inside the
|
|
2889
|
+
* level, never another level. `same` is a parallel form. The SDK cannot
|
|
2890
|
+
* measure difficulty: this is an instruction to the model, and item statistics
|
|
2891
|
+
* after delivery are the measurement.
|
|
2892
|
+
*/
|
|
2893
|
+
type AiVariantDifficulty = 'easier' | 'same' | 'harder';
|
|
2894
|
+
/**
|
|
2895
|
+
* What the level covers, from the host's curriculum: grammar and vocabulary a
|
|
2896
|
+
* learner has been taught, and topics to keep away from. Told to the model;
|
|
2897
|
+
* the SDK does not check vocabulary.
|
|
2898
|
+
*/
|
|
2899
|
+
interface AiVariantLevelFacts {
|
|
2900
|
+
grammar?: string[];
|
|
2901
|
+
vocabulary?: string[];
|
|
2902
|
+
avoidTopics?: string[];
|
|
2903
|
+
}
|
|
2904
|
+
/** Why `aiVariantsRequest` left an exemplar out: it cannot yield a sound variant. */
|
|
2905
|
+
type AiVariantSkipCode = 'variant_exemplar_unheard' | 'variant_exemplar_unseen' | 'variant_exemplar_incomplete' | 'variant_exemplar_timeline' | 'variant_exemplar_unsupported' | 'variant_exemplar_too_long';
|
|
2906
|
+
/** An exemplar left out of the facts, and why. The host keeps it, or asks a person. */
|
|
2907
|
+
interface AiVariantSkip {
|
|
2908
|
+
/** Its index in the exemplars passed. */
|
|
2909
|
+
exemplarIndex: number;
|
|
2910
|
+
code: AiVariantSkipCode;
|
|
2911
|
+
message: string;
|
|
2912
|
+
}
|
|
2913
|
+
/**
|
|
2914
|
+
* What a variant must meet, computed from its exemplar, so that what the model
|
|
2915
|
+
* is told and what `checkAiVariants` checks are one thing.
|
|
2916
|
+
*/
|
|
2917
|
+
interface AiVariantTargets {
|
|
2918
|
+
/** The exemplar's type: an activity type, or `item-group`. */
|
|
2919
|
+
type: string;
|
|
2920
|
+
/**
|
|
2921
|
+
* The counts to keep: `{ mode: 'single', options: 4, correct: 1 }`,
|
|
2922
|
+
* `{ blanks: [{ oneWord: true, acceptedAnswers: [1, 3] }] }`,
|
|
2923
|
+
* `{ gaps: [{ bank: 0 }, …], banks: [{ choices: 7 }] }`,
|
|
2924
|
+
* `{ stimulus: 'audio', items: ['multiple-choice', …], speakers: 2, turns: [5, 8] }`.
|
|
2925
|
+
*/
|
|
2926
|
+
structure: Readonly<Record<string, unknown>>;
|
|
2927
|
+
/** Inclusive bounds, in words, for each text written: `{ 'stimulus.body': [162, 198], question: [6, 14] }`. */
|
|
2928
|
+
lengths: Readonly<Record<string, [number, number]>>;
|
|
2929
|
+
difficulty: AiVariantDifficulty;
|
|
2930
|
+
/** Why this item moves, in the host's words. Present only when `difficulty` is not `same`. */
|
|
2931
|
+
difficultyReason?: string;
|
|
2932
|
+
/** The ways this type is made easier or harder, as sentences. Present only when `difficulty` is not `same`. */
|
|
2933
|
+
levers?: string[];
|
|
2934
|
+
/**
|
|
2935
|
+
* For an item group whose items do not all move alike (`difficultyFor`
|
|
2936
|
+
* names some of them): each item's own difficulty, by its index in `items`.
|
|
2937
|
+
*/
|
|
2938
|
+
itemDifficulty?: {
|
|
2939
|
+
item: number;
|
|
2940
|
+
difficulty: AiVariantDifficulty;
|
|
2941
|
+
difficultyReason?: string;
|
|
2942
|
+
levers?: string[];
|
|
2943
|
+
}[];
|
|
2944
|
+
/** What the item critic finds in the exemplar: flaws the variant must not repeat. */
|
|
2945
|
+
exemplarFindings: {
|
|
2946
|
+
code: string;
|
|
2947
|
+
message: string;
|
|
2948
|
+
}[];
|
|
2949
|
+
}
|
|
2950
|
+
/** One exemplar as a model is given it. */
|
|
2951
|
+
interface AiVariantExemplarFacts {
|
|
2952
|
+
/** Its index in the exemplars passed: what the variant names as its `exemplar`. */
|
|
2953
|
+
exemplar: number;
|
|
2954
|
+
type: string;
|
|
2955
|
+
/**
|
|
2956
|
+
* The exemplar in the shape a variant is written in: every word a learner
|
|
2957
|
+
* reads or hears, which options are right, and each blank's answers. No ids,
|
|
2958
|
+
* HTML, settings or addresses.
|
|
2959
|
+
*/
|
|
2960
|
+
content: Readonly<Record<string, unknown>>;
|
|
2961
|
+
/** What it tests, when the author said: the variant tests the same. */
|
|
2962
|
+
learningObjectives?: string[];
|
|
2963
|
+
targets: AiVariantTargets;
|
|
2964
|
+
}
|
|
2965
|
+
/**
|
|
2966
|
+
* A picture an exemplar shows, for a host that attaches pictures to its call:
|
|
2967
|
+
* in exemplar order, each with the `ref` the facts name it by.
|
|
2968
|
+
*/
|
|
2969
|
+
interface AiVariantImage {
|
|
2970
|
+
ref: string;
|
|
2971
|
+
exemplarIndex: number;
|
|
2972
|
+
/** Where the picture is, from the exemplar. */
|
|
2973
|
+
path: string[];
|
|
2974
|
+
alt?: string;
|
|
2975
|
+
url: string;
|
|
2976
|
+
}
|
|
2977
|
+
/**
|
|
2978
|
+
* What a host's model is given to write variants of existing items: built by
|
|
2979
|
+
* `aiVariantsRequest`, and by `aiVariantsRepairRequest` for a second pass.
|
|
2980
|
+
*
|
|
2981
|
+
* Only `feature`, `facts`, `shape` and, on a repair, `repair` are for the
|
|
2982
|
+
* model. The rest is for `checkAiVariants`: the exemplars and the other forms
|
|
2983
|
+
* as passed — answer keys and addresses included — and the host's settings.
|
|
2984
|
+
*/
|
|
2985
|
+
interface AiVariantsRequest {
|
|
2986
|
+
feature: 'variant-generation';
|
|
2987
|
+
facts: {
|
|
2988
|
+
/** One per exemplar that can be varied, in paper order. One variant is written for each. */
|
|
2989
|
+
exemplars: AiVariantExemplarFacts[];
|
|
2990
|
+
/** The level, as the host names it (`CEFR B1`): every variant stays inside it. */
|
|
2991
|
+
level: string;
|
|
2992
|
+
locale?: string;
|
|
2993
|
+
/** The default for every exemplar; each one's `targets.difficulty` says its own. */
|
|
2994
|
+
difficulty: AiVariantDifficulty;
|
|
2995
|
+
levelFacts?: AiVariantLevelFacts;
|
|
2996
|
+
/**
|
|
2997
|
+
* What happens to a picture: `describe` — the variant describes a new one
|
|
2998
|
+
* in its `alt`, for a person to find or commission; `reuse` — the variant
|
|
2999
|
+
* keeps the exemplar's and asks new questions about it.
|
|
3000
|
+
*/
|
|
3001
|
+
imagePolicy: 'describe' | 'reuse';
|
|
3002
|
+
/** Every picture the exemplars show, for a host that attaches them. Absent when there are none. */
|
|
3003
|
+
images?: AiVariantImage[];
|
|
3004
|
+
/**
|
|
3005
|
+
* The other forms' items, as their texts and right answers: what a variant
|
|
3006
|
+
* must not resemble. Absent when the host passed none.
|
|
3007
|
+
*/
|
|
3008
|
+
avoid?: {
|
|
3009
|
+
texts: string[];
|
|
3010
|
+
keys: string[];
|
|
3011
|
+
}[];
|
|
3012
|
+
/** The author's words to the model, as they are. */
|
|
3013
|
+
instructions?: string;
|
|
3014
|
+
/** What every variant must respect, as sentences a prompt can quote. */
|
|
3015
|
+
rules: string[];
|
|
3016
|
+
};
|
|
3017
|
+
/** The JSON Schema of a reply — `{ variants: [...] }` — one per exemplar in the facts. */
|
|
3018
|
+
shape: Readonly<Record<string, unknown>>;
|
|
3019
|
+
/** The exemplars as passed. Not for the model: it holds answer keys and addresses. */
|
|
3020
|
+
exemplars: readonly unknown[];
|
|
3021
|
+
/** The other forms as passed. Not for the model. */
|
|
3022
|
+
avoid?: readonly unknown[];
|
|
3023
|
+
/** The host's settings for every variant of a type. Not for the model. */
|
|
3024
|
+
settings?: AiDraftSettings;
|
|
3025
|
+
/** The host's length ratios, overriding `AI_VARIANT_LENGTH_BANDS`. Not for the model. */
|
|
3026
|
+
lengthTolerance?: {
|
|
3027
|
+
material?: number;
|
|
3028
|
+
item?: number;
|
|
3029
|
+
};
|
|
3030
|
+
/** Spread single-answer keys across positions, from this seed. Not for the model. */
|
|
3031
|
+
balanceKeyPositions?: {
|
|
3032
|
+
seed: string;
|
|
3033
|
+
};
|
|
3034
|
+
/** The exemplars that cannot be varied, and why. */
|
|
3035
|
+
skipped: AiVariantSkip[];
|
|
3036
|
+
/**
|
|
3037
|
+
* On a repair: what to write again, each with the problems the model can
|
|
3038
|
+
* fix — `variant` absent for one the model did not write. The reply holds
|
|
3039
|
+
* one variant for each, naming its exemplar.
|
|
3040
|
+
*/
|
|
3041
|
+
repair?: {
|
|
3042
|
+
exemplar: number;
|
|
3043
|
+
variant?: Readonly<Record<string, unknown>>;
|
|
3044
|
+
problems: AiDraftProblem[];
|
|
3045
|
+
}[];
|
|
3046
|
+
}
|
|
3047
|
+
/**
|
|
3048
|
+
* Why a variant is not a parallel item of its exemplar: `variant_type` — not
|
|
3049
|
+
* its type; `variant_structure` — a count a learner answers, or a setting that
|
|
3050
|
+
* scores it, differs. Always `invalid`, and repairable.
|
|
3051
|
+
*/
|
|
3052
|
+
interface AiVariantMismatch {
|
|
3053
|
+
path: string[];
|
|
3054
|
+
message: string;
|
|
3055
|
+
code: 'variant_type' | 'variant_structure';
|
|
3056
|
+
severity: 'invalid';
|
|
3057
|
+
}
|
|
3058
|
+
/** An exemplar the reply wrote no variant for. Invalid, and repairable. */
|
|
3059
|
+
interface AiVariantMissing {
|
|
3060
|
+
exemplarIndex: number;
|
|
3061
|
+
code: 'variant_missing';
|
|
3062
|
+
message: string;
|
|
3063
|
+
severity: 'invalid';
|
|
3064
|
+
}
|
|
3065
|
+
/**
|
|
3066
|
+
* One item of an exemplar and the variant's item in its place, by path from
|
|
3067
|
+
* each entry (`[]` for a loose activity or a group, `['items', '2']` for an
|
|
3068
|
+
* item in it) and by id: what lines up one form's slot with another's when
|
|
3069
|
+
* the content has no `slotKey`.
|
|
3070
|
+
*/
|
|
3071
|
+
interface AiVariantPair {
|
|
3072
|
+
exemplarPath: string[];
|
|
3073
|
+
variantPath: string[];
|
|
3074
|
+
exemplarId: string;
|
|
3075
|
+
variantId: string;
|
|
3076
|
+
}
|
|
3077
|
+
/** A variant as the SDK made it from a reply: copied fields put back, ids minted, checked and compared. */
|
|
3078
|
+
interface AiGeneratedVariant {
|
|
3079
|
+
/** Its exemplar's index in the exemplars passed. */
|
|
3080
|
+
exemplarIndex: number;
|
|
3081
|
+
/** The exemplar's type: an activity type, or `item-group`. */
|
|
3082
|
+
type: string;
|
|
3083
|
+
/** The variant: a sequence entry once `status` is `complete`. */
|
|
3084
|
+
entry: Record<string, unknown>;
|
|
3085
|
+
/**
|
|
3086
|
+
* `invalid` when `validation` is, or a mismatch says so; else `incomplete`
|
|
3087
|
+
* when `validation` is; else `complete`. A recording, or a picture to
|
|
3088
|
+
* describe, comes back with no file — `media_url_required`, so `incomplete`
|
|
3089
|
+
* — until the host attaches one.
|
|
3090
|
+
*/
|
|
3091
|
+
status: 'complete' | 'incomplete' | 'invalid';
|
|
3092
|
+
/** What `validateDraft`, or `validateItemGroupDraft`, says of it. */
|
|
3093
|
+
validation: DraftValidationResult<unknown>;
|
|
3094
|
+
/** How it fails to be parallel to its exemplar. */
|
|
3095
|
+
mismatches: AiVariantMismatch[];
|
|
3096
|
+
/** What the item critic finds, then `variant_length`, `variant_near_copy` and `variant_same_key`. */
|
|
3097
|
+
findings: ItemFinding[];
|
|
3098
|
+
/** Each item of the exemplar with the variant's item in its place. */
|
|
3099
|
+
pairs: AiVariantPair[];
|
|
3100
|
+
/** The variant as the model wrote it, for a repair. */
|
|
3101
|
+
generated: Readonly<Record<string, unknown>>;
|
|
3102
|
+
}
|
|
3103
|
+
/** What `checkAiVariants` makes of a reply. */
|
|
3104
|
+
interface AiVariants {
|
|
3105
|
+
/** The variants the reply wrote, in exemplar order. */
|
|
3106
|
+
variants: AiGeneratedVariant[];
|
|
3107
|
+
/** The exemplars it wrote none for. */
|
|
3108
|
+
missing: AiVariantMissing[];
|
|
3109
|
+
/** What only the set shows, over the variants as returned: the paper codes of `critiqueDrafts`. */
|
|
3110
|
+
findings: ItemFinding[];
|
|
3111
|
+
provenance?: AiProvenance;
|
|
3112
|
+
usage?: GraderUsage;
|
|
3113
|
+
}
|
|
3114
|
+
/** What `generateVariants` came to. */
|
|
3115
|
+
interface AiVariantsRun {
|
|
3116
|
+
/** The best pass of each variant, in exemplar order. */
|
|
3117
|
+
variants: AiGeneratedVariant[];
|
|
3118
|
+
/** The exemplars no pass wrote a variant for. */
|
|
3119
|
+
missing: AiVariantMissing[];
|
|
3120
|
+
/** What only the set shows, over the variants as they ended. */
|
|
3121
|
+
findings: ItemFinding[];
|
|
3122
|
+
/** The exemplars that could not be varied, and why. */
|
|
3123
|
+
skipped: AiVariantSkip[];
|
|
3124
|
+
/** Every call, in order: the first, then each repair. */
|
|
3125
|
+
calls: AiDraftsCall[];
|
|
3126
|
+
}
|
|
3127
|
+
export { AiSpeakingGradingFacts as $, XAPIContextActivities as $n, ActivityType as $t, AiGapSelectFacts as A, ReadAloudLearnerResponse as An, SequenceSlot as At, AiGroupInput as B, SpeakingResponseLearnerResponse as Bn, DraftSeverity as Bt, AiDraftsCall as C, MultipleChoiceLearnerResponse as Cn, AiWritingFeedback as Ct, AiFeature as D, ReadAloudData as Dn, MediaProgress as Dt, AiExplanationRequest as E, NativeControlHint as En, ItemGroup as Et, AiGradingCriterionFact as F, ScoringOutcome as Fn, TimelineCue as Ft, AiOptionFact as G, WrittenResponseData as Gn, VersionFinding as Gt, AiItemFacts as H, SpeakingRubricCriterion as Hn, ItemFinding as Ht, AiGradingFacts as I, ScoringResult as In, DraftComplete as It, AiReadingWordFact as J, WrittenResponseRubricCriterion as Jn, ActivityData as Jt, AiProvenance as K, WrittenResponseLearnerResponse as Kn, VersionPaper as Kt, AiGradingJudgement as L, ScriptTurn as Ln, DraftContext as Lt, AiGeneratedVariant as M, RecordingBounds as Mn, Stimulus as Mt, AiGrade as N, RecordingRef as Nn, StimulusKind as Nt, AiFillInTheBlanksFacts as O, ReadAloudDimension as On, MediaTimeline as Ot, AiGradedCriterion as P, ScoringDetail as Pn, TimelineChapter as Pt, AiSpeakingCriterionFact as Q, XAPIContext as Qn, ActivityResult as Qt, AiGradingRequest as R, SpeakingMeasure as Rn, DraftIssue as Rt, AiDrafts as S, MultipleChoiceData as Sn, AiWritingFacts as St, AiDraftsRun as T, MultipleChoiceOptionMedia as Tn, AiWritingFeedbackResult as Tt, AiMaterialFacts as U, ValidationError as Un, ItemFindingSeverity as Ut, AiHintRequest as V, SpeakingRubric as Vn, DraftValidationResult as Vt, AiMultipleChoiceFacts as W, ValidationResult as Wn, VersionComparison as Wt, AiRubricCriterionFact as X, XAPIActor as Xn, ActivityFeedback as Xt, AiRefusal as Y, WrittenResponseRubricLevel as Yn, ActivityDataMap as Yt, AiSoundFact as Z, XAPIConfig as Zn, ActivityMedia as Zt, AiDraftCaption as _, ItemOutcome as _n, TextMatchResult as _r, AiVariantsRun as _t, AiCoachingRequest as a, DictationLearnerResponse as an, XAPIVerbObject as ar, AiVariantDifficulty as at, AiDraftSource as b, MediaPlaybackPolicy as bn, AiWordFact as bt, AiCriterionJudgement as c, FillInTheBlanksData as cn, GradeRouting as cr, AiVariantLevelFacts as ct, AiCritiqueFinding as d, GapSelectChoice as dn, GraderConfiguration as dr, AiVariantPair as dt, BlankConfig as en, XAPIError as er, AiSpeakingGradingRequest as et, AiCritiqueFindingResult as f, GapSelectData as fn, GraderKind as fr, AiVariantSkip as ft, AiDictationFacts as g, InteractionKind as gn, TextMatchPolicy as gr, AiVariantsRequest as gt, AiCritiqueResult as h, InteractionEvent as hn, InlineCorrection as hr, AiVariants as ht, AiCoaching as i, DictationEquivalence as in, XAPIStatement as ir, AiTextResult as it, AiGeneratedDraft as j, ReadAloudSlowMedia as jn, SequenceSlotGroup as jt, AiGapFact as k, ReadAloudDimensionWeight as kn, SequenceEntry as kt, AiCritique as l, FillInTheBlanksLearnerResponse as ln, GradeRoutingReason as lr, AiVariantMismatch as lt, AiCritiqueRequest as m, GapSelectLearnerResponse as mn, GradingState as mr, AiVariantTargets as mt, AiActivityInput as n, DeferredScoringPartial as nn, XAPIResult as nr, AiSpeakingMeasureFact as nt, AiCoachingResult as o, DictationSlowMedia as on, CriterionScore as or, AiVariantExemplarFacts as ot, AiCritiqueKind as p, GapSelectGap as pn, GraderUsage as pr, AiVariantSkipCode as pt, AiReadingFacts as q, WrittenResponseRubric as qn, VersionSlot as qt, AiBlankFact as r, DictationData as rn, XAPIScore as rr, AiSupportedActivityType as rt, AiCoachingWord as s, DictationTolerance as sn, GradeRecord as sr, AiVariantImage as st, ActivityAiPermissions as t, DeferredReason as tn, XAPIObject as tr, AiSpeakingGradingRequestProblem as tt, AiCritiqueField as u, GapSelectBank as un, Grader as ur, AiVariantMissing as ut, AiDraftProblem as v, LearnerResponse as vn, levenshteinDistance as vr, AiVerdict as vt, AiDraftsRequest as w, MultipleChoiceOption as wn, AiWritingFeedbackRequest as wt, AiDraftType as x, MediaTrack as xn, AiWritingCorrection as xt, AiDraftSettings as y, LearnerResponseMap as yn, matchText as yr, AiVideoDraft as yt, AiGradingRequestProblem as z, SpeakingResponseData as zn, DraftNotComplete as zt };
|
|
3128
|
+
//# sourceMappingURL=ai-zhc9yhRj.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-zhc9yhRj.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/item-group.ts","../src/types/ai.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { In as ScoringResult, Qn as XAPIContext, Xn as XAPIActor, ir as XAPIStatement, nr as XAPIResult } from "./ai-zhc9yhRj.cjs";
|
|
2
2
|
/**
|
|
3
3
|
* The set of xAPI verbs emitted by SDK activities, keyed by a stable
|
|
4
4
|
* identifier mapped to its canonical xAPI verb IRI (xAPI 1.0.3 / ADL registry).
|
|
@@ -144,4 +144,4 @@ declare function xapiDefinitionFor(data: {
|
|
|
144
144
|
*/
|
|
145
145
|
declare function validateXAPIStatement(statement: XAPIStatement): void;
|
|
146
146
|
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 };
|
|
147
|
-
//# sourceMappingURL=index-
|
|
147
|
+
//# sourceMappingURL=index-BeC8tAWf.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BeC8tAWf.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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { In as ScoringResult, Qn as XAPIContext, Xn as XAPIActor, ir as XAPIStatement, nr as XAPIResult } from "./ai-zhc9yhRj.js";
|
|
2
2
|
/**
|
|
3
3
|
* The set of xAPI verbs emitted by SDK activities, keyed by a stable
|
|
4
4
|
* identifier mapped to its canonical xAPI verb IRI (xAPI 1.0.3 / ADL registry).
|
|
@@ -144,4 +144,4 @@ declare function xapiDefinitionFor(data: {
|
|
|
144
144
|
*/
|
|
145
145
|
declare function validateXAPIStatement(statement: XAPIStatement): void;
|
|
146
146
|
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 };
|
|
147
|
-
//# sourceMappingURL=index-
|
|
147
|
+
//# sourceMappingURL=index-Byar5VVs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Byar5VVs.d.ts","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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $t as ActivityType, Et as ItemGroup, Tn as MultipleChoiceOptionMedia, Wn as ValidationResult, Yt as ActivityDataMap, Zt as ActivityMedia } from "./ai-zhc9yhRj.cjs";
|
|
2
2
|
/**
|
|
3
3
|
* The learner-safe SHAPE of each built-in type.
|
|
4
4
|
*
|
|
@@ -362,4 +362,4 @@ declare function validateOptionMedia(value: unknown): ValidationResult<MultipleC
|
|
|
362
362
|
*/
|
|
363
363
|
declare function validateActivity<T extends ActivityType>(type: T, data: unknown): ValidationResult<ActivityDataMap[T]>;
|
|
364
364
|
export { RedactedStimulus as A, RedactedGapSelectChoice as C, RedactedMultipleChoiceOption as D, RedactedMultipleChoiceData as E, RedactedMultipleChoiceOptionMedia as O, RedactedGapSelectBank as S, RedactedGapSelectGap as T, RedactedActivity as _, JsonSchemaTarget as a, RedactedDictationSlowMedia as b, fillInTheBlanksJsonSchema as c, jsonSchemaFor as d, multipleChoiceJsonSchema as f, validateItemGroup as g, writtenResponseJsonSchema as h, SCRIPT_MAX_TURNS as i, RedactedWrittenResponseData as j, RedactedReadAloudData as k, gapSelectJsonSchema as l, stimulusJsonSchema as m, validateMedia as n, contentJsonSchema as o, readAloudJsonSchema as p, validateOptionMedia as r, dictationJsonSchema as s, validateActivity as t, itemGroupJsonSchema as u, RedactedBlankConfig as v, RedactedGapSelectData as w, RedactedFillInTheBlanksData as x, RedactedDictationData as y };
|
|
365
|
-
//# sourceMappingURL=index-
|
|
365
|
+
//# sourceMappingURL=index-Ccj8oL_E.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Ccj8oL_E.d.cts","names":[],"sources":["../src/types/redacted.ts","../src/schemas/item-group.ts","../src/schemas/json-schema.ts","../src/schemas/media.ts","../src/schemas/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;UAoBU;EACR;EACA;EACA;EACA;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA,SAAS;EACT;EACA,WAAW;;;UAIH;EACR;EACA;;;UAIQ;EACR;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA,KAAK;;;UAIU;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA,QAAQ;;;UAIO,mCAAmC;EAClD;EACA;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;;;UAIe;EACf;EACA;;;UAIe,oCAAoC;EACnD;EACA;EACA;EACA;EACA,QAAQ;EACR;;;UAIe,oCAAoC;EACnD;EACA;EACA;EACA;EACA;EACA;IAEM;MACE;MACA;MACA;MACA;QAAW;QAAe;;;IAE5B;;EAGN;EACA;;;UAIe;EACf;EACA;;;UAIe;EACf;EACA,SAAS;;;UAIM;EACf;EACA,UAAU;EACV;;;UAIe,8BAA8B;EAC7C;EACA;EACA;EACA;EACA,MAAM;EACN,QAAQ;EACR;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe,8BAA8B;EAC7C;EACA,YAAY;EACZ;IAAU;;EACV;;;;;;;UAQe,8BAA8B;EAC7C;EACA;EACA;EACA;EACA,YAAY;EACZ;IACE;IACA;IACA;;EAEF;IACE;MACE;MACA;;;;;UAMW;EACf;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;;;;;;;;;;;;;;KAeU,mBACR,6BACA,8BACA,8BACA,wBACA,wBACA;;;;;;;;;;;iBCyMY,kBAAkB,gBAAgB,iBAAiB;;;;;cCnatD,oBAAoB;;;;;;;;cAWpB,qBAAqB;;;;;;;;;;;;;;;;;;cAqBrB,qBAAqB;;;;;;;;;;;cAcrB,qBAAqB;;;;;;;;;;cAarB,qBAAqB;cAIrB,0BAA0B;;;;;;cAY1B,2BAA2B;;;;;cAW3B,2BAA2B;;KAQ5B;;;;;;;;;;;;;;;;;iBAqBI,cACd,cACA;EAAW,SAAS;IACnB;;;;;;;;;;;;;;;;;;iBA4Ca,kBACd;EAAW,SAAS;IACnB;;cCzEU;;;;;;;;;;;iBCnDG,cAAc,iBAAiB,iBAAiB;;;;;;;;iBAWhD,oBAAoB,iBAAiB,iBAAiB;;;;;;;;;;;;;iBA8BtD,iBAAiB,UAAU,cACzC,MAAM,GACN,gBACC,iBAAiB,gBAAgB"}
|