@instructure/athena-api-client 3.43.0 → 3.44.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/README.md +1 -0
- package/dist/esm/models/ChatRequestMessageMetadata.d.ts +14 -1
- package/dist/esm/models/ChatRequestMessageMetadata.js +8 -0
- package/dist/esm/models/ChatRequestQuizSettings.d.ts +19 -0
- package/dist/esm/models/ChatRequestQuizSettings.js +10 -0
- package/dist/esm/models/Quiz.d.ts +7 -0
- package/dist/esm/models/Quiz.js +3 -0
- package/dist/esm/models/QuizBasisSnapshot.d.ts +76 -0
- package/dist/esm/models/QuizBasisSnapshot.js +77 -0
- package/dist/esm/models/QuizListItem.d.ts +7 -0
- package/dist/esm/models/QuizListItem.js +3 -0
- package/dist/esm/models/QuizWithQuestions.d.ts +7 -0
- package/dist/esm/models/QuizWithQuestions.js +3 -0
- package/dist/esm/models/StudyObjectiveAccess.d.ts +19 -1
- package/dist/esm/models/StudyObjectiveAccess.js +12 -0
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.js +1 -0
- package/dist/models/ChatRequestMessageMetadata.d.ts +14 -1
- package/dist/models/ChatRequestMessageMetadata.js +9 -0
- package/dist/models/ChatRequestQuizSettings.d.ts +19 -0
- package/dist/models/ChatRequestQuizSettings.js +11 -1
- package/dist/models/Quiz.d.ts +7 -0
- package/dist/models/Quiz.js +3 -0
- package/dist/models/QuizBasisSnapshot.d.ts +76 -0
- package/dist/models/QuizBasisSnapshot.js +85 -0
- package/dist/models/QuizListItem.d.ts +7 -0
- package/dist/models/QuizListItem.js +3 -0
- package/dist/models/QuizWithQuestions.d.ts +7 -0
- package/dist/models/QuizWithQuestions.js +3 -0
- package/dist/models/StudyObjectiveAccess.d.ts +19 -1
- package/dist/models/StudyObjectiveAccess.js +12 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -329,6 +329,7 @@ All URIs are relative to *http://localhost:3000*
|
|
|
329
329
|
- [PracticeQuizStatus](docs/PracticeQuizStatus.md)
|
|
330
330
|
- [PracticeQuizStatusList](docs/PracticeQuizStatusList.md)
|
|
331
331
|
- [Quiz](docs/Quiz.md)
|
|
332
|
+
- [QuizBasisSnapshot](docs/QuizBasisSnapshot.md)
|
|
332
333
|
- [QuizConceptSummary](docs/QuizConceptSummary.md)
|
|
333
334
|
- [QuizListItem](docs/QuizListItem.md)
|
|
334
335
|
- [QuizQuestion](docs/QuizQuestion.md)
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
|
-
* Optional metadata attached to the user message. Used by learning session chats to bind an answer to its inline question (`inlineQuestionId` + `questionType` + `structuredAnswer`)
|
|
13
|
+
* Optional metadata attached to the user message. Used by learning session chats to bind an answer to its inline question (`inlineQuestionId` + `questionType` + `structuredAnswer`), to mark client-auto-fired kickoff turns (`synthetic`), and to mark a first turn the client wrote for the learner (`seeded`). All fields are optional; callers supply whichever subset applies to the message being sent.
|
|
14
14
|
* @export
|
|
15
15
|
* @interface ChatRequestMessageMetadata
|
|
16
16
|
*/
|
|
@@ -39,7 +39,20 @@ export interface ChatRequestMessageMetadata {
|
|
|
39
39
|
* @memberof ChatRequestMessageMetadata
|
|
40
40
|
*/
|
|
41
41
|
synthetic?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Set when the client wrote this message for the learner and sent it as their first turn: 'objective-nudge' is the study-objective email nudge's opening query. The learner never typed it, so its words are never read as their account of what an assessment covers. Unlike `synthetic`, the message is shown in the transcript.
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof ChatRequestMessageMetadata
|
|
46
|
+
*/
|
|
47
|
+
seeded?: ChatRequestMessageMetadataSeededEnum;
|
|
42
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* @export
|
|
51
|
+
*/
|
|
52
|
+
export declare const ChatRequestMessageMetadataSeededEnum: {
|
|
53
|
+
readonly ObjectiveNudge: "objective-nudge";
|
|
54
|
+
};
|
|
55
|
+
export type ChatRequestMessageMetadataSeededEnum = typeof ChatRequestMessageMetadataSeededEnum[keyof typeof ChatRequestMessageMetadataSeededEnum];
|
|
43
56
|
/**
|
|
44
57
|
* Check if a given object implements the ChatRequestMessageMetadata interface.
|
|
45
58
|
*/
|
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
* https://openapi-generator.tech
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* @export
|
|
16
|
+
*/
|
|
17
|
+
export const ChatRequestMessageMetadataSeededEnum = {
|
|
18
|
+
ObjectiveNudge: 'objective-nudge'
|
|
19
|
+
};
|
|
14
20
|
/**
|
|
15
21
|
* Check if a given object implements the ChatRequestMessageMetadata interface.
|
|
16
22
|
*/
|
|
@@ -29,6 +35,7 @@ export function ChatRequestMessageMetadataFromJSONTyped(json, ignoreDiscriminato
|
|
|
29
35
|
'questionType': json['questionType'] == null ? undefined : json['questionType'],
|
|
30
36
|
'structuredAnswer': json['structuredAnswer'] == null ? undefined : json['structuredAnswer'],
|
|
31
37
|
'synthetic': json['synthetic'] == null ? undefined : json['synthetic'],
|
|
38
|
+
'seeded': json['seeded'] == null ? undefined : json['seeded'],
|
|
32
39
|
};
|
|
33
40
|
}
|
|
34
41
|
export function ChatRequestMessageMetadataToJSON(json) {
|
|
@@ -43,5 +50,6 @@ export function ChatRequestMessageMetadataToJSONTyped(value, ignoreDiscriminator
|
|
|
43
50
|
'questionType': value['questionType'],
|
|
44
51
|
'structuredAnswer': value['structuredAnswer'],
|
|
45
52
|
'synthetic': value['synthetic'],
|
|
53
|
+
'seeded': value['seeded'],
|
|
46
54
|
};
|
|
47
55
|
}
|
|
@@ -33,6 +33,18 @@ export interface ChatRequestQuizSettings {
|
|
|
33
33
|
* @memberof ChatRequestQuizSettings
|
|
34
34
|
*/
|
|
35
35
|
instructions?: string;
|
|
36
|
+
/**
|
|
37
|
+
* What the learner says the assessment covers, typed into the study panel's scope box (sent instead of `instructions` when the box asks what the assessment covers). The quiz is built on it, and on an objective chat it is kept as the learner's scope for that objective. An empty string means the learner cleared the box: their kept scope is cleared too.
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof ChatRequestQuizSettings
|
|
40
|
+
*/
|
|
41
|
+
scope?: string;
|
|
42
|
+
/**
|
|
43
|
+
* `suggested` when `scope` is Athena's suggested topics (`StudyObjective.access.suggestedScope`) used unedited ("Use these topics"). Omit for anything the learner typed or edited: that scope is their own.
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof ChatRequestQuizSettings
|
|
46
|
+
*/
|
|
47
|
+
scopeSource?: ChatRequestQuizSettingsScopeSourceEnum;
|
|
36
48
|
}
|
|
37
49
|
/**
|
|
38
50
|
* @export
|
|
@@ -44,6 +56,13 @@ export declare const ChatRequestQuizSettingsQuestionTypesEnum: {
|
|
|
44
56
|
readonly TeachBack: "teach-back";
|
|
45
57
|
};
|
|
46
58
|
export type ChatRequestQuizSettingsQuestionTypesEnum = typeof ChatRequestQuizSettingsQuestionTypesEnum[keyof typeof ChatRequestQuizSettingsQuestionTypesEnum];
|
|
59
|
+
/**
|
|
60
|
+
* @export
|
|
61
|
+
*/
|
|
62
|
+
export declare const ChatRequestQuizSettingsScopeSourceEnum: {
|
|
63
|
+
readonly Suggested: "suggested";
|
|
64
|
+
};
|
|
65
|
+
export type ChatRequestQuizSettingsScopeSourceEnum = typeof ChatRequestQuizSettingsScopeSourceEnum[keyof typeof ChatRequestQuizSettingsScopeSourceEnum];
|
|
47
66
|
/**
|
|
48
67
|
* Check if a given object implements the ChatRequestQuizSettings interface.
|
|
49
68
|
*/
|
|
@@ -20,6 +20,12 @@ export const ChatRequestQuizSettingsQuestionTypesEnum = {
|
|
|
20
20
|
SpotError: 'spot-error',
|
|
21
21
|
TeachBack: 'teach-back'
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* @export
|
|
25
|
+
*/
|
|
26
|
+
export const ChatRequestQuizSettingsScopeSourceEnum = {
|
|
27
|
+
Suggested: 'suggested'
|
|
28
|
+
};
|
|
23
29
|
/**
|
|
24
30
|
* Check if a given object implements the ChatRequestQuizSettings interface.
|
|
25
31
|
*/
|
|
@@ -37,6 +43,8 @@ export function ChatRequestQuizSettingsFromJSONTyped(json, ignoreDiscriminator)
|
|
|
37
43
|
'questionTypes': json['questionTypes'] == null ? undefined : json['questionTypes'],
|
|
38
44
|
'questionCount': json['questionCount'] == null ? undefined : json['questionCount'],
|
|
39
45
|
'instructions': json['instructions'] == null ? undefined : json['instructions'],
|
|
46
|
+
'scope': json['scope'] == null ? undefined : json['scope'],
|
|
47
|
+
'scopeSource': json['scopeSource'] == null ? undefined : json['scopeSource'],
|
|
40
48
|
};
|
|
41
49
|
}
|
|
42
50
|
export function ChatRequestQuizSettingsToJSON(json) {
|
|
@@ -50,5 +58,7 @@ export function ChatRequestQuizSettingsToJSONTyped(value, ignoreDiscriminator =
|
|
|
50
58
|
'questionTypes': value['questionTypes'],
|
|
51
59
|
'questionCount': value['questionCount'],
|
|
52
60
|
'instructions': value['instructions'],
|
|
61
|
+
'scope': value['scope'],
|
|
62
|
+
'scopeSource': value['scopeSource'],
|
|
53
63
|
};
|
|
54
64
|
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* https://openapi-generator.tech
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
|
+
import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
|
|
12
13
|
/**
|
|
13
14
|
*
|
|
14
15
|
* @export
|
|
@@ -63,6 +64,12 @@ export interface Quiz {
|
|
|
63
64
|
* @memberof Quiz
|
|
64
65
|
*/
|
|
65
66
|
expectedQuestionCount: number | null;
|
|
67
|
+
/**
|
|
68
|
+
* What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
|
|
69
|
+
* @type {QuizBasisSnapshot}
|
|
70
|
+
* @memberof Quiz
|
|
71
|
+
*/
|
|
72
|
+
basisSnapshot?: QuizBasisSnapshot | null;
|
|
66
73
|
/**
|
|
67
74
|
*
|
|
68
75
|
* @type {Date}
|
package/dist/esm/models/Quiz.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* https://openapi-generator.tech
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
|
+
import { QuizBasisSnapshotFromJSON, QuizBasisSnapshotToJSON, } from './QuizBasisSnapshot';
|
|
14
15
|
/**
|
|
15
16
|
* @export
|
|
16
17
|
*/
|
|
@@ -66,6 +67,7 @@ export function QuizFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
66
67
|
'mode': json['mode'],
|
|
67
68
|
'generationStatus': json['generationStatus'],
|
|
68
69
|
'expectedQuestionCount': json['expectedQuestionCount'],
|
|
70
|
+
'basisSnapshot': json['basisSnapshot'] == null ? undefined : QuizBasisSnapshotFromJSON(json['basisSnapshot']),
|
|
69
71
|
'createdAt': (new Date(json['createdAt'])),
|
|
70
72
|
};
|
|
71
73
|
}
|
|
@@ -85,6 +87,7 @@ export function QuizToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
85
87
|
'mode': value['mode'],
|
|
86
88
|
'generationStatus': value['generationStatus'],
|
|
87
89
|
'expectedQuestionCount': value['expectedQuestionCount'],
|
|
90
|
+
'basisSnapshot': QuizBasisSnapshotToJSON(value['basisSnapshot']),
|
|
88
91
|
'createdAt': value['createdAt'].toISOString(),
|
|
89
92
|
};
|
|
90
93
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Athena API
|
|
3
|
+
* REST API for the Athena system
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @export
|
|
15
|
+
* @interface QuizBasisSnapshot
|
|
16
|
+
*/
|
|
17
|
+
export interface QuizBasisSnapshot {
|
|
18
|
+
/**
|
|
19
|
+
* What the questions were actually built from: 'learner-materials' (the learner's own files, which the generator reports using), 'course-material' (course files read from Canvas, same test), 'learner-scope' (what the learner said the assessment covers), or 'general' (practice on the subject).
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @memberof QuizBasisSnapshot
|
|
22
|
+
*/
|
|
23
|
+
basis: QuizBasisSnapshotBasisEnum;
|
|
24
|
+
/**
|
|
25
|
+
* A learner file was in play but never reached the generator (it could not be read, or generation retried without it).
|
|
26
|
+
* @type {boolean}
|
|
27
|
+
* @memberof QuizBasisSnapshot
|
|
28
|
+
*/
|
|
29
|
+
droppedFile: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether anything said what the assessment covers when the quiz was generated.
|
|
32
|
+
* @type {boolean}
|
|
33
|
+
* @memberof QuizBasisSnapshot
|
|
34
|
+
*/
|
|
35
|
+
scopeKnown: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The course's access state at generation time; null when none was read.
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof QuizBasisSnapshot
|
|
40
|
+
*/
|
|
41
|
+
accessState: QuizBasisSnapshotAccessStateEnum | null;
|
|
42
|
+
/**
|
|
43
|
+
* The access rule version behind accessState; null with it.
|
|
44
|
+
* @type {number}
|
|
45
|
+
* @memberof QuizBasisSnapshot
|
|
46
|
+
*/
|
|
47
|
+
ruleVersion: number | null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @export
|
|
51
|
+
*/
|
|
52
|
+
export declare const QuizBasisSnapshotBasisEnum: {
|
|
53
|
+
readonly CourseMaterial: "course-material";
|
|
54
|
+
readonly LearnerMaterials: "learner-materials";
|
|
55
|
+
readonly LearnerScope: "learner-scope";
|
|
56
|
+
readonly General: "general";
|
|
57
|
+
};
|
|
58
|
+
export type QuizBasisSnapshotBasisEnum = typeof QuizBasisSnapshotBasisEnum[keyof typeof QuizBasisSnapshotBasisEnum];
|
|
59
|
+
/**
|
|
60
|
+
* @export
|
|
61
|
+
*/
|
|
62
|
+
export declare const QuizBasisSnapshotAccessStateEnum: {
|
|
63
|
+
readonly Grounded: "grounded";
|
|
64
|
+
readonly Thin: "thin";
|
|
65
|
+
readonly Unreadable: "unreadable";
|
|
66
|
+
readonly Unknown: "unknown";
|
|
67
|
+
};
|
|
68
|
+
export type QuizBasisSnapshotAccessStateEnum = typeof QuizBasisSnapshotAccessStateEnum[keyof typeof QuizBasisSnapshotAccessStateEnum];
|
|
69
|
+
/**
|
|
70
|
+
* Check if a given object implements the QuizBasisSnapshot interface.
|
|
71
|
+
*/
|
|
72
|
+
export declare function instanceOfQuizBasisSnapshot(value: object): value is QuizBasisSnapshot;
|
|
73
|
+
export declare function QuizBasisSnapshotFromJSON(json: any): QuizBasisSnapshot;
|
|
74
|
+
export declare function QuizBasisSnapshotFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizBasisSnapshot;
|
|
75
|
+
export declare function QuizBasisSnapshotToJSON(json: any): QuizBasisSnapshot;
|
|
76
|
+
export declare function QuizBasisSnapshotToJSONTyped(value?: QuizBasisSnapshot | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Athena API
|
|
5
|
+
* REST API for the Athena system
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* @export
|
|
16
|
+
*/
|
|
17
|
+
export const QuizBasisSnapshotBasisEnum = {
|
|
18
|
+
CourseMaterial: 'course-material',
|
|
19
|
+
LearnerMaterials: 'learner-materials',
|
|
20
|
+
LearnerScope: 'learner-scope',
|
|
21
|
+
General: 'general'
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @export
|
|
25
|
+
*/
|
|
26
|
+
export const QuizBasisSnapshotAccessStateEnum = {
|
|
27
|
+
Grounded: 'grounded',
|
|
28
|
+
Thin: 'thin',
|
|
29
|
+
Unreadable: 'unreadable',
|
|
30
|
+
Unknown: 'unknown'
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Check if a given object implements the QuizBasisSnapshot interface.
|
|
34
|
+
*/
|
|
35
|
+
export function instanceOfQuizBasisSnapshot(value) {
|
|
36
|
+
if (!('basis' in value) || value['basis'] === undefined)
|
|
37
|
+
return false;
|
|
38
|
+
if (!('droppedFile' in value) || value['droppedFile'] === undefined)
|
|
39
|
+
return false;
|
|
40
|
+
if (!('scopeKnown' in value) || value['scopeKnown'] === undefined)
|
|
41
|
+
return false;
|
|
42
|
+
if (!('accessState' in value) || value['accessState'] === undefined)
|
|
43
|
+
return false;
|
|
44
|
+
if (!('ruleVersion' in value) || value['ruleVersion'] === undefined)
|
|
45
|
+
return false;
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
export function QuizBasisSnapshotFromJSON(json) {
|
|
49
|
+
return QuizBasisSnapshotFromJSONTyped(json, false);
|
|
50
|
+
}
|
|
51
|
+
export function QuizBasisSnapshotFromJSONTyped(json, ignoreDiscriminator) {
|
|
52
|
+
if (json == null) {
|
|
53
|
+
return json;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
'basis': json['basis'],
|
|
57
|
+
'droppedFile': json['droppedFile'],
|
|
58
|
+
'scopeKnown': json['scopeKnown'],
|
|
59
|
+
'accessState': json['accessState'],
|
|
60
|
+
'ruleVersion': json['ruleVersion'],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function QuizBasisSnapshotToJSON(json) {
|
|
64
|
+
return QuizBasisSnapshotToJSONTyped(json, false);
|
|
65
|
+
}
|
|
66
|
+
export function QuizBasisSnapshotToJSONTyped(value, ignoreDiscriminator = false) {
|
|
67
|
+
if (value == null) {
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
'basis': value['basis'],
|
|
72
|
+
'droppedFile': value['droppedFile'],
|
|
73
|
+
'scopeKnown': value['scopeKnown'],
|
|
74
|
+
'accessState': value['accessState'],
|
|
75
|
+
'ruleVersion': value['ruleVersion'],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* https://openapi-generator.tech
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
|
+
import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
|
|
12
13
|
/**
|
|
13
14
|
*
|
|
14
15
|
* @export
|
|
@@ -63,6 +64,12 @@ export interface QuizListItem {
|
|
|
63
64
|
* @memberof QuizListItem
|
|
64
65
|
*/
|
|
65
66
|
expectedQuestionCount: number | null;
|
|
67
|
+
/**
|
|
68
|
+
* What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
|
|
69
|
+
* @type {QuizBasisSnapshot}
|
|
70
|
+
* @memberof QuizListItem
|
|
71
|
+
*/
|
|
72
|
+
basisSnapshot?: QuizBasisSnapshot | null;
|
|
66
73
|
/**
|
|
67
74
|
*
|
|
68
75
|
* @type {Date}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* https://openapi-generator.tech
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
|
+
import { QuizBasisSnapshotFromJSON, QuizBasisSnapshotToJSON, } from './QuizBasisSnapshot';
|
|
14
15
|
/**
|
|
15
16
|
* @export
|
|
16
17
|
*/
|
|
@@ -68,6 +69,7 @@ export function QuizListItemFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
68
69
|
'mode': json['mode'],
|
|
69
70
|
'generationStatus': json['generationStatus'],
|
|
70
71
|
'expectedQuestionCount': json['expectedQuestionCount'],
|
|
72
|
+
'basisSnapshot': json['basisSnapshot'] == null ? undefined : QuizBasisSnapshotFromJSON(json['basisSnapshot']),
|
|
71
73
|
'createdAt': (new Date(json['createdAt'])),
|
|
72
74
|
'questionCount': json['questionCount'],
|
|
73
75
|
};
|
|
@@ -88,6 +90,7 @@ export function QuizListItemToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
88
90
|
'mode': value['mode'],
|
|
89
91
|
'generationStatus': value['generationStatus'],
|
|
90
92
|
'expectedQuestionCount': value['expectedQuestionCount'],
|
|
93
|
+
'basisSnapshot': QuizBasisSnapshotToJSON(value['basisSnapshot']),
|
|
91
94
|
'createdAt': value['createdAt'].toISOString(),
|
|
92
95
|
'questionCount': value['questionCount'],
|
|
93
96
|
};
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
import type { QuizQuestion } from './QuizQuestion';
|
|
13
|
+
import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
|
|
13
14
|
/**
|
|
14
15
|
*
|
|
15
16
|
* @export
|
|
@@ -64,6 +65,12 @@ export interface QuizWithQuestions {
|
|
|
64
65
|
* @memberof QuizWithQuestions
|
|
65
66
|
*/
|
|
66
67
|
expectedQuestionCount: number | null;
|
|
68
|
+
/**
|
|
69
|
+
* What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
|
|
70
|
+
* @type {QuizBasisSnapshot}
|
|
71
|
+
* @memberof QuizWithQuestions
|
|
72
|
+
*/
|
|
73
|
+
basisSnapshot?: QuizBasisSnapshot | null;
|
|
67
74
|
/**
|
|
68
75
|
*
|
|
69
76
|
* @type {Date}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
14
|
import { QuizQuestionFromJSON, QuizQuestionToJSON, } from './QuizQuestion';
|
|
15
|
+
import { QuizBasisSnapshotFromJSON, QuizBasisSnapshotToJSON, } from './QuizBasisSnapshot';
|
|
15
16
|
/**
|
|
16
17
|
* @export
|
|
17
18
|
*/
|
|
@@ -69,6 +70,7 @@ export function QuizWithQuestionsFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
69
70
|
'mode': json['mode'],
|
|
70
71
|
'generationStatus': json['generationStatus'],
|
|
71
72
|
'expectedQuestionCount': json['expectedQuestionCount'],
|
|
73
|
+
'basisSnapshot': json['basisSnapshot'] == null ? undefined : QuizBasisSnapshotFromJSON(json['basisSnapshot']),
|
|
72
74
|
'createdAt': (new Date(json['createdAt'])),
|
|
73
75
|
'questions': (json['questions'].map(QuizQuestionFromJSON)),
|
|
74
76
|
};
|
|
@@ -89,6 +91,7 @@ export function QuizWithQuestionsToJSONTyped(value, ignoreDiscriminator = false)
|
|
|
89
91
|
'mode': value['mode'],
|
|
90
92
|
'generationStatus': value['generationStatus'],
|
|
91
93
|
'expectedQuestionCount': value['expectedQuestionCount'],
|
|
94
|
+
'basisSnapshot': QuizBasisSnapshotToJSON(value['basisSnapshot']),
|
|
92
95
|
'createdAt': value['createdAt'].toISOString(),
|
|
93
96
|
'questions': (value['questions'].map(QuizQuestionToJSON)),
|
|
94
97
|
};
|
|
@@ -70,7 +70,7 @@ export interface StudyObjectiveAccess {
|
|
|
70
70
|
*/
|
|
71
71
|
externalToolItemCount: number | null;
|
|
72
72
|
/**
|
|
73
|
-
* Readable files in the module that holds this item (a quiz or assignment)
|
|
73
|
+
* Readable files in the module that holds this item (a quiz or assignment): checked against the course files list, or, when Canvas refused that list (rule 4 on), counted from the module's own File items. Null when the item is in no module, is another kind of item, or modules could not be listed.
|
|
74
74
|
* @type {number}
|
|
75
75
|
* @memberof StudyObjectiveAccess
|
|
76
76
|
*/
|
|
@@ -81,6 +81,18 @@ export interface StudyObjectiveAccess {
|
|
|
81
81
|
* @memberof StudyObjectiveAccess
|
|
82
82
|
*/
|
|
83
83
|
moduleSiblingPageCount: number | null;
|
|
84
|
+
/**
|
|
85
|
+
* Readable files the course publishes through Modules (File items of a supported type, not locked for the learner; one per file). The file count to name only when readableFileCount is null (Canvas refused the course files list, e.g. a hidden Files tab); never add it to readableFileCount, since module links point at listed files. Null when modules could not be listed, and on facts read before rule 4.
|
|
86
|
+
* @type {number}
|
|
87
|
+
* @memberof StudyObjectiveAccess
|
|
88
|
+
*/
|
|
89
|
+
moduleReadableFileCount: number | null;
|
|
90
|
+
/**
|
|
91
|
+
* Files of a supported type published through Modules that are locked for the learner (one per file). Read only when readableFileCount is null, like moduleReadableFileCount. Null when modules could not be listed, and on facts read before rule 4.
|
|
92
|
+
* @type {number}
|
|
93
|
+
* @memberof StudyObjectiveAccess
|
|
94
|
+
*/
|
|
95
|
+
moduleLockedFileCount: number | null;
|
|
84
96
|
/**
|
|
85
97
|
* Version of the rule that produced `state`, for joining client analytics to the rule that was live.
|
|
86
98
|
* @type {number}
|
|
@@ -93,6 +105,12 @@ export interface StudyObjectiveAccess {
|
|
|
93
105
|
* @memberof StudyObjectiveAccess
|
|
94
106
|
*/
|
|
95
107
|
readAt: Date;
|
|
108
|
+
/**
|
|
109
|
+
* Topics the learner's syllabus schedule suggests this item covers, inferred by syllabus analysis, for the scope box to offer as Athena's best guess. Null while `scopeKnown` is true, when the learner has given a scope of their own, or when their syllabus suggests nothing. A suggestion is not evidence: it never sets `scopeKnown`.
|
|
110
|
+
* @type {Array<string>}
|
|
111
|
+
* @memberof StudyObjectiveAccess
|
|
112
|
+
*/
|
|
113
|
+
suggestedScope: Array<string> | null;
|
|
96
114
|
}
|
|
97
115
|
/**
|
|
98
116
|
* @export
|
|
@@ -70,10 +70,16 @@ export function instanceOfStudyObjectiveAccess(value) {
|
|
|
70
70
|
return false;
|
|
71
71
|
if (!('moduleSiblingPageCount' in value) || value['moduleSiblingPageCount'] === undefined)
|
|
72
72
|
return false;
|
|
73
|
+
if (!('moduleReadableFileCount' in value) || value['moduleReadableFileCount'] === undefined)
|
|
74
|
+
return false;
|
|
75
|
+
if (!('moduleLockedFileCount' in value) || value['moduleLockedFileCount'] === undefined)
|
|
76
|
+
return false;
|
|
73
77
|
if (!('ruleVersion' in value) || value['ruleVersion'] === undefined)
|
|
74
78
|
return false;
|
|
75
79
|
if (!('readAt' in value) || value['readAt'] === undefined)
|
|
76
80
|
return false;
|
|
81
|
+
if (!('suggestedScope' in value) || value['suggestedScope'] === undefined)
|
|
82
|
+
return false;
|
|
77
83
|
return true;
|
|
78
84
|
}
|
|
79
85
|
export function StudyObjectiveAccessFromJSON(json) {
|
|
@@ -95,8 +101,11 @@ export function StudyObjectiveAccessFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
95
101
|
'externalToolItemCount': json['externalToolItemCount'],
|
|
96
102
|
'moduleSiblingFileCount': json['moduleSiblingFileCount'],
|
|
97
103
|
'moduleSiblingPageCount': json['moduleSiblingPageCount'],
|
|
104
|
+
'moduleReadableFileCount': json['moduleReadableFileCount'],
|
|
105
|
+
'moduleLockedFileCount': json['moduleLockedFileCount'],
|
|
98
106
|
'ruleVersion': json['ruleVersion'],
|
|
99
107
|
'readAt': (new Date(json['readAt'])),
|
|
108
|
+
'suggestedScope': json['suggestedScope'] == null ? null : json['suggestedScope'],
|
|
100
109
|
};
|
|
101
110
|
}
|
|
102
111
|
export function StudyObjectiveAccessToJSON(json) {
|
|
@@ -118,7 +127,10 @@ export function StudyObjectiveAccessToJSONTyped(value, ignoreDiscriminator = fal
|
|
|
118
127
|
'externalToolItemCount': value['externalToolItemCount'],
|
|
119
128
|
'moduleSiblingFileCount': value['moduleSiblingFileCount'],
|
|
120
129
|
'moduleSiblingPageCount': value['moduleSiblingPageCount'],
|
|
130
|
+
'moduleReadableFileCount': value['moduleReadableFileCount'],
|
|
131
|
+
'moduleLockedFileCount': value['moduleLockedFileCount'],
|
|
121
132
|
'ruleVersion': value['ruleVersion'],
|
|
122
133
|
'readAt': value['readAt'].toISOString(),
|
|
134
|
+
'suggestedScope': value['suggestedScope'],
|
|
123
135
|
};
|
|
124
136
|
}
|
|
@@ -128,6 +128,7 @@ export * from './PracticeQuiz';
|
|
|
128
128
|
export * from './PracticeQuizStatus';
|
|
129
129
|
export * from './PracticeQuizStatusList';
|
|
130
130
|
export * from './Quiz';
|
|
131
|
+
export * from './QuizBasisSnapshot';
|
|
131
132
|
export * from './QuizConceptSummary';
|
|
132
133
|
export * from './QuizListItem';
|
|
133
134
|
export * from './QuizQuestion';
|
package/dist/esm/models/index.js
CHANGED
|
@@ -130,6 +130,7 @@ export * from './PracticeQuiz';
|
|
|
130
130
|
export * from './PracticeQuizStatus';
|
|
131
131
|
export * from './PracticeQuizStatusList';
|
|
132
132
|
export * from './Quiz';
|
|
133
|
+
export * from './QuizBasisSnapshot';
|
|
133
134
|
export * from './QuizConceptSummary';
|
|
134
135
|
export * from './QuizListItem';
|
|
135
136
|
export * from './QuizQuestion';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
|
-
* Optional metadata attached to the user message. Used by learning session chats to bind an answer to its inline question (`inlineQuestionId` + `questionType` + `structuredAnswer`)
|
|
13
|
+
* Optional metadata attached to the user message. Used by learning session chats to bind an answer to its inline question (`inlineQuestionId` + `questionType` + `structuredAnswer`), to mark client-auto-fired kickoff turns (`synthetic`), and to mark a first turn the client wrote for the learner (`seeded`). All fields are optional; callers supply whichever subset applies to the message being sent.
|
|
14
14
|
* @export
|
|
15
15
|
* @interface ChatRequestMessageMetadata
|
|
16
16
|
*/
|
|
@@ -39,7 +39,20 @@ export interface ChatRequestMessageMetadata {
|
|
|
39
39
|
* @memberof ChatRequestMessageMetadata
|
|
40
40
|
*/
|
|
41
41
|
synthetic?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Set when the client wrote this message for the learner and sent it as their first turn: 'objective-nudge' is the study-objective email nudge's opening query. The learner never typed it, so its words are never read as their account of what an assessment covers. Unlike `synthetic`, the message is shown in the transcript.
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof ChatRequestMessageMetadata
|
|
46
|
+
*/
|
|
47
|
+
seeded?: ChatRequestMessageMetadataSeededEnum;
|
|
42
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* @export
|
|
51
|
+
*/
|
|
52
|
+
export declare const ChatRequestMessageMetadataSeededEnum: {
|
|
53
|
+
readonly ObjectiveNudge: "objective-nudge";
|
|
54
|
+
};
|
|
55
|
+
export type ChatRequestMessageMetadataSeededEnum = typeof ChatRequestMessageMetadataSeededEnum[keyof typeof ChatRequestMessageMetadataSeededEnum];
|
|
43
56
|
/**
|
|
44
57
|
* Check if a given object implements the ChatRequestMessageMetadata interface.
|
|
45
58
|
*/
|
|
@@ -13,11 +13,18 @@
|
|
|
13
13
|
* Do not edit the class manually.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.ChatRequestMessageMetadataSeededEnum = void 0;
|
|
16
17
|
exports.instanceOfChatRequestMessageMetadata = instanceOfChatRequestMessageMetadata;
|
|
17
18
|
exports.ChatRequestMessageMetadataFromJSON = ChatRequestMessageMetadataFromJSON;
|
|
18
19
|
exports.ChatRequestMessageMetadataFromJSONTyped = ChatRequestMessageMetadataFromJSONTyped;
|
|
19
20
|
exports.ChatRequestMessageMetadataToJSON = ChatRequestMessageMetadataToJSON;
|
|
20
21
|
exports.ChatRequestMessageMetadataToJSONTyped = ChatRequestMessageMetadataToJSONTyped;
|
|
22
|
+
/**
|
|
23
|
+
* @export
|
|
24
|
+
*/
|
|
25
|
+
exports.ChatRequestMessageMetadataSeededEnum = {
|
|
26
|
+
ObjectiveNudge: 'objective-nudge'
|
|
27
|
+
};
|
|
21
28
|
/**
|
|
22
29
|
* Check if a given object implements the ChatRequestMessageMetadata interface.
|
|
23
30
|
*/
|
|
@@ -36,6 +43,7 @@ function ChatRequestMessageMetadataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
36
43
|
'questionType': json['questionType'] == null ? undefined : json['questionType'],
|
|
37
44
|
'structuredAnswer': json['structuredAnswer'] == null ? undefined : json['structuredAnswer'],
|
|
38
45
|
'synthetic': json['synthetic'] == null ? undefined : json['synthetic'],
|
|
46
|
+
'seeded': json['seeded'] == null ? undefined : json['seeded'],
|
|
39
47
|
};
|
|
40
48
|
}
|
|
41
49
|
function ChatRequestMessageMetadataToJSON(json) {
|
|
@@ -50,5 +58,6 @@ function ChatRequestMessageMetadataToJSONTyped(value, ignoreDiscriminator = fals
|
|
|
50
58
|
'questionType': value['questionType'],
|
|
51
59
|
'structuredAnswer': value['structuredAnswer'],
|
|
52
60
|
'synthetic': value['synthetic'],
|
|
61
|
+
'seeded': value['seeded'],
|
|
53
62
|
};
|
|
54
63
|
}
|
|
@@ -33,6 +33,18 @@ export interface ChatRequestQuizSettings {
|
|
|
33
33
|
* @memberof ChatRequestQuizSettings
|
|
34
34
|
*/
|
|
35
35
|
instructions?: string;
|
|
36
|
+
/**
|
|
37
|
+
* What the learner says the assessment covers, typed into the study panel's scope box (sent instead of `instructions` when the box asks what the assessment covers). The quiz is built on it, and on an objective chat it is kept as the learner's scope for that objective. An empty string means the learner cleared the box: their kept scope is cleared too.
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof ChatRequestQuizSettings
|
|
40
|
+
*/
|
|
41
|
+
scope?: string;
|
|
42
|
+
/**
|
|
43
|
+
* `suggested` when `scope` is Athena's suggested topics (`StudyObjective.access.suggestedScope`) used unedited ("Use these topics"). Omit for anything the learner typed or edited: that scope is their own.
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof ChatRequestQuizSettings
|
|
46
|
+
*/
|
|
47
|
+
scopeSource?: ChatRequestQuizSettingsScopeSourceEnum;
|
|
36
48
|
}
|
|
37
49
|
/**
|
|
38
50
|
* @export
|
|
@@ -44,6 +56,13 @@ export declare const ChatRequestQuizSettingsQuestionTypesEnum: {
|
|
|
44
56
|
readonly TeachBack: "teach-back";
|
|
45
57
|
};
|
|
46
58
|
export type ChatRequestQuizSettingsQuestionTypesEnum = typeof ChatRequestQuizSettingsQuestionTypesEnum[keyof typeof ChatRequestQuizSettingsQuestionTypesEnum];
|
|
59
|
+
/**
|
|
60
|
+
* @export
|
|
61
|
+
*/
|
|
62
|
+
export declare const ChatRequestQuizSettingsScopeSourceEnum: {
|
|
63
|
+
readonly Suggested: "suggested";
|
|
64
|
+
};
|
|
65
|
+
export type ChatRequestQuizSettingsScopeSourceEnum = typeof ChatRequestQuizSettingsScopeSourceEnum[keyof typeof ChatRequestQuizSettingsScopeSourceEnum];
|
|
47
66
|
/**
|
|
48
67
|
* Check if a given object implements the ChatRequestQuizSettings interface.
|
|
49
68
|
*/
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Do not edit the class manually.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.ChatRequestQuizSettingsQuestionTypesEnum = void 0;
|
|
16
|
+
exports.ChatRequestQuizSettingsScopeSourceEnum = exports.ChatRequestQuizSettingsQuestionTypesEnum = void 0;
|
|
17
17
|
exports.instanceOfChatRequestQuizSettings = instanceOfChatRequestQuizSettings;
|
|
18
18
|
exports.ChatRequestQuizSettingsFromJSON = ChatRequestQuizSettingsFromJSON;
|
|
19
19
|
exports.ChatRequestQuizSettingsFromJSONTyped = ChatRequestQuizSettingsFromJSONTyped;
|
|
@@ -28,6 +28,12 @@ exports.ChatRequestQuizSettingsQuestionTypesEnum = {
|
|
|
28
28
|
SpotError: 'spot-error',
|
|
29
29
|
TeachBack: 'teach-back'
|
|
30
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* @export
|
|
33
|
+
*/
|
|
34
|
+
exports.ChatRequestQuizSettingsScopeSourceEnum = {
|
|
35
|
+
Suggested: 'suggested'
|
|
36
|
+
};
|
|
31
37
|
/**
|
|
32
38
|
* Check if a given object implements the ChatRequestQuizSettings interface.
|
|
33
39
|
*/
|
|
@@ -45,6 +51,8 @@ function ChatRequestQuizSettingsFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
45
51
|
'questionTypes': json['questionTypes'] == null ? undefined : json['questionTypes'],
|
|
46
52
|
'questionCount': json['questionCount'] == null ? undefined : json['questionCount'],
|
|
47
53
|
'instructions': json['instructions'] == null ? undefined : json['instructions'],
|
|
54
|
+
'scope': json['scope'] == null ? undefined : json['scope'],
|
|
55
|
+
'scopeSource': json['scopeSource'] == null ? undefined : json['scopeSource'],
|
|
48
56
|
};
|
|
49
57
|
}
|
|
50
58
|
function ChatRequestQuizSettingsToJSON(json) {
|
|
@@ -58,5 +66,7 @@ function ChatRequestQuizSettingsToJSONTyped(value, ignoreDiscriminator = false)
|
|
|
58
66
|
'questionTypes': value['questionTypes'],
|
|
59
67
|
'questionCount': value['questionCount'],
|
|
60
68
|
'instructions': value['instructions'],
|
|
69
|
+
'scope': value['scope'],
|
|
70
|
+
'scopeSource': value['scopeSource'],
|
|
61
71
|
};
|
|
62
72
|
}
|
package/dist/models/Quiz.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* https://openapi-generator.tech
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
|
+
import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
|
|
12
13
|
/**
|
|
13
14
|
*
|
|
14
15
|
* @export
|
|
@@ -63,6 +64,12 @@ export interface Quiz {
|
|
|
63
64
|
* @memberof Quiz
|
|
64
65
|
*/
|
|
65
66
|
expectedQuestionCount: number | null;
|
|
67
|
+
/**
|
|
68
|
+
* What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
|
|
69
|
+
* @type {QuizBasisSnapshot}
|
|
70
|
+
* @memberof Quiz
|
|
71
|
+
*/
|
|
72
|
+
basisSnapshot?: QuizBasisSnapshot | null;
|
|
66
73
|
/**
|
|
67
74
|
*
|
|
68
75
|
* @type {Date}
|
package/dist/models/Quiz.js
CHANGED
|
@@ -19,6 +19,7 @@ exports.QuizFromJSON = QuizFromJSON;
|
|
|
19
19
|
exports.QuizFromJSONTyped = QuizFromJSONTyped;
|
|
20
20
|
exports.QuizToJSON = QuizToJSON;
|
|
21
21
|
exports.QuizToJSONTyped = QuizToJSONTyped;
|
|
22
|
+
const QuizBasisSnapshot_1 = require("./QuizBasisSnapshot");
|
|
22
23
|
/**
|
|
23
24
|
* @export
|
|
24
25
|
*/
|
|
@@ -74,6 +75,7 @@ function QuizFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
74
75
|
'mode': json['mode'],
|
|
75
76
|
'generationStatus': json['generationStatus'],
|
|
76
77
|
'expectedQuestionCount': json['expectedQuestionCount'],
|
|
78
|
+
'basisSnapshot': json['basisSnapshot'] == null ? undefined : (0, QuizBasisSnapshot_1.QuizBasisSnapshotFromJSON)(json['basisSnapshot']),
|
|
77
79
|
'createdAt': (new Date(json['createdAt'])),
|
|
78
80
|
};
|
|
79
81
|
}
|
|
@@ -93,6 +95,7 @@ function QuizToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
93
95
|
'mode': value['mode'],
|
|
94
96
|
'generationStatus': value['generationStatus'],
|
|
95
97
|
'expectedQuestionCount': value['expectedQuestionCount'],
|
|
98
|
+
'basisSnapshot': (0, QuizBasisSnapshot_1.QuizBasisSnapshotToJSON)(value['basisSnapshot']),
|
|
96
99
|
'createdAt': value['createdAt'].toISOString(),
|
|
97
100
|
};
|
|
98
101
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Athena API
|
|
3
|
+
* REST API for the Athena system
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @export
|
|
15
|
+
* @interface QuizBasisSnapshot
|
|
16
|
+
*/
|
|
17
|
+
export interface QuizBasisSnapshot {
|
|
18
|
+
/**
|
|
19
|
+
* What the questions were actually built from: 'learner-materials' (the learner's own files, which the generator reports using), 'course-material' (course files read from Canvas, same test), 'learner-scope' (what the learner said the assessment covers), or 'general' (practice on the subject).
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @memberof QuizBasisSnapshot
|
|
22
|
+
*/
|
|
23
|
+
basis: QuizBasisSnapshotBasisEnum;
|
|
24
|
+
/**
|
|
25
|
+
* A learner file was in play but never reached the generator (it could not be read, or generation retried without it).
|
|
26
|
+
* @type {boolean}
|
|
27
|
+
* @memberof QuizBasisSnapshot
|
|
28
|
+
*/
|
|
29
|
+
droppedFile: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether anything said what the assessment covers when the quiz was generated.
|
|
32
|
+
* @type {boolean}
|
|
33
|
+
* @memberof QuizBasisSnapshot
|
|
34
|
+
*/
|
|
35
|
+
scopeKnown: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The course's access state at generation time; null when none was read.
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof QuizBasisSnapshot
|
|
40
|
+
*/
|
|
41
|
+
accessState: QuizBasisSnapshotAccessStateEnum | null;
|
|
42
|
+
/**
|
|
43
|
+
* The access rule version behind accessState; null with it.
|
|
44
|
+
* @type {number}
|
|
45
|
+
* @memberof QuizBasisSnapshot
|
|
46
|
+
*/
|
|
47
|
+
ruleVersion: number | null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @export
|
|
51
|
+
*/
|
|
52
|
+
export declare const QuizBasisSnapshotBasisEnum: {
|
|
53
|
+
readonly CourseMaterial: "course-material";
|
|
54
|
+
readonly LearnerMaterials: "learner-materials";
|
|
55
|
+
readonly LearnerScope: "learner-scope";
|
|
56
|
+
readonly General: "general";
|
|
57
|
+
};
|
|
58
|
+
export type QuizBasisSnapshotBasisEnum = typeof QuizBasisSnapshotBasisEnum[keyof typeof QuizBasisSnapshotBasisEnum];
|
|
59
|
+
/**
|
|
60
|
+
* @export
|
|
61
|
+
*/
|
|
62
|
+
export declare const QuizBasisSnapshotAccessStateEnum: {
|
|
63
|
+
readonly Grounded: "grounded";
|
|
64
|
+
readonly Thin: "thin";
|
|
65
|
+
readonly Unreadable: "unreadable";
|
|
66
|
+
readonly Unknown: "unknown";
|
|
67
|
+
};
|
|
68
|
+
export type QuizBasisSnapshotAccessStateEnum = typeof QuizBasisSnapshotAccessStateEnum[keyof typeof QuizBasisSnapshotAccessStateEnum];
|
|
69
|
+
/**
|
|
70
|
+
* Check if a given object implements the QuizBasisSnapshot interface.
|
|
71
|
+
*/
|
|
72
|
+
export declare function instanceOfQuizBasisSnapshot(value: object): value is QuizBasisSnapshot;
|
|
73
|
+
export declare function QuizBasisSnapshotFromJSON(json: any): QuizBasisSnapshot;
|
|
74
|
+
export declare function QuizBasisSnapshotFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizBasisSnapshot;
|
|
75
|
+
export declare function QuizBasisSnapshotToJSON(json: any): QuizBasisSnapshot;
|
|
76
|
+
export declare function QuizBasisSnapshotToJSONTyped(value?: QuizBasisSnapshot | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
/**
|
|
5
|
+
* Athena API
|
|
6
|
+
* REST API for the Athena system
|
|
7
|
+
*
|
|
8
|
+
* The version of the OpenAPI document: 1.0.0
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
|
+
* https://openapi-generator.tech
|
|
13
|
+
* Do not edit the class manually.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.QuizBasisSnapshotAccessStateEnum = exports.QuizBasisSnapshotBasisEnum = void 0;
|
|
17
|
+
exports.instanceOfQuizBasisSnapshot = instanceOfQuizBasisSnapshot;
|
|
18
|
+
exports.QuizBasisSnapshotFromJSON = QuizBasisSnapshotFromJSON;
|
|
19
|
+
exports.QuizBasisSnapshotFromJSONTyped = QuizBasisSnapshotFromJSONTyped;
|
|
20
|
+
exports.QuizBasisSnapshotToJSON = QuizBasisSnapshotToJSON;
|
|
21
|
+
exports.QuizBasisSnapshotToJSONTyped = QuizBasisSnapshotToJSONTyped;
|
|
22
|
+
/**
|
|
23
|
+
* @export
|
|
24
|
+
*/
|
|
25
|
+
exports.QuizBasisSnapshotBasisEnum = {
|
|
26
|
+
CourseMaterial: 'course-material',
|
|
27
|
+
LearnerMaterials: 'learner-materials',
|
|
28
|
+
LearnerScope: 'learner-scope',
|
|
29
|
+
General: 'general'
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* @export
|
|
33
|
+
*/
|
|
34
|
+
exports.QuizBasisSnapshotAccessStateEnum = {
|
|
35
|
+
Grounded: 'grounded',
|
|
36
|
+
Thin: 'thin',
|
|
37
|
+
Unreadable: 'unreadable',
|
|
38
|
+
Unknown: 'unknown'
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Check if a given object implements the QuizBasisSnapshot interface.
|
|
42
|
+
*/
|
|
43
|
+
function instanceOfQuizBasisSnapshot(value) {
|
|
44
|
+
if (!('basis' in value) || value['basis'] === undefined)
|
|
45
|
+
return false;
|
|
46
|
+
if (!('droppedFile' in value) || value['droppedFile'] === undefined)
|
|
47
|
+
return false;
|
|
48
|
+
if (!('scopeKnown' in value) || value['scopeKnown'] === undefined)
|
|
49
|
+
return false;
|
|
50
|
+
if (!('accessState' in value) || value['accessState'] === undefined)
|
|
51
|
+
return false;
|
|
52
|
+
if (!('ruleVersion' in value) || value['ruleVersion'] === undefined)
|
|
53
|
+
return false;
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
function QuizBasisSnapshotFromJSON(json) {
|
|
57
|
+
return QuizBasisSnapshotFromJSONTyped(json, false);
|
|
58
|
+
}
|
|
59
|
+
function QuizBasisSnapshotFromJSONTyped(json, ignoreDiscriminator) {
|
|
60
|
+
if (json == null) {
|
|
61
|
+
return json;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
'basis': json['basis'],
|
|
65
|
+
'droppedFile': json['droppedFile'],
|
|
66
|
+
'scopeKnown': json['scopeKnown'],
|
|
67
|
+
'accessState': json['accessState'],
|
|
68
|
+
'ruleVersion': json['ruleVersion'],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function QuizBasisSnapshotToJSON(json) {
|
|
72
|
+
return QuizBasisSnapshotToJSONTyped(json, false);
|
|
73
|
+
}
|
|
74
|
+
function QuizBasisSnapshotToJSONTyped(value, ignoreDiscriminator = false) {
|
|
75
|
+
if (value == null) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
'basis': value['basis'],
|
|
80
|
+
'droppedFile': value['droppedFile'],
|
|
81
|
+
'scopeKnown': value['scopeKnown'],
|
|
82
|
+
'accessState': value['accessState'],
|
|
83
|
+
'ruleVersion': value['ruleVersion'],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* https://openapi-generator.tech
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
|
+
import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
|
|
12
13
|
/**
|
|
13
14
|
*
|
|
14
15
|
* @export
|
|
@@ -63,6 +64,12 @@ export interface QuizListItem {
|
|
|
63
64
|
* @memberof QuizListItem
|
|
64
65
|
*/
|
|
65
66
|
expectedQuestionCount: number | null;
|
|
67
|
+
/**
|
|
68
|
+
* What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
|
|
69
|
+
* @type {QuizBasisSnapshot}
|
|
70
|
+
* @memberof QuizListItem
|
|
71
|
+
*/
|
|
72
|
+
basisSnapshot?: QuizBasisSnapshot | null;
|
|
66
73
|
/**
|
|
67
74
|
*
|
|
68
75
|
* @type {Date}
|
|
@@ -19,6 +19,7 @@ exports.QuizListItemFromJSON = QuizListItemFromJSON;
|
|
|
19
19
|
exports.QuizListItemFromJSONTyped = QuizListItemFromJSONTyped;
|
|
20
20
|
exports.QuizListItemToJSON = QuizListItemToJSON;
|
|
21
21
|
exports.QuizListItemToJSONTyped = QuizListItemToJSONTyped;
|
|
22
|
+
const QuizBasisSnapshot_1 = require("./QuizBasisSnapshot");
|
|
22
23
|
/**
|
|
23
24
|
* @export
|
|
24
25
|
*/
|
|
@@ -76,6 +77,7 @@ function QuizListItemFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
76
77
|
'mode': json['mode'],
|
|
77
78
|
'generationStatus': json['generationStatus'],
|
|
78
79
|
'expectedQuestionCount': json['expectedQuestionCount'],
|
|
80
|
+
'basisSnapshot': json['basisSnapshot'] == null ? undefined : (0, QuizBasisSnapshot_1.QuizBasisSnapshotFromJSON)(json['basisSnapshot']),
|
|
79
81
|
'createdAt': (new Date(json['createdAt'])),
|
|
80
82
|
'questionCount': json['questionCount'],
|
|
81
83
|
};
|
|
@@ -96,6 +98,7 @@ function QuizListItemToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
96
98
|
'mode': value['mode'],
|
|
97
99
|
'generationStatus': value['generationStatus'],
|
|
98
100
|
'expectedQuestionCount': value['expectedQuestionCount'],
|
|
101
|
+
'basisSnapshot': (0, QuizBasisSnapshot_1.QuizBasisSnapshotToJSON)(value['basisSnapshot']),
|
|
99
102
|
'createdAt': value['createdAt'].toISOString(),
|
|
100
103
|
'questionCount': value['questionCount'],
|
|
101
104
|
};
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
import type { QuizQuestion } from './QuizQuestion';
|
|
13
|
+
import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
|
|
13
14
|
/**
|
|
14
15
|
*
|
|
15
16
|
* @export
|
|
@@ -64,6 +65,12 @@ export interface QuizWithQuestions {
|
|
|
64
65
|
* @memberof QuizWithQuestions
|
|
65
66
|
*/
|
|
66
67
|
expectedQuestionCount: number | null;
|
|
68
|
+
/**
|
|
69
|
+
* What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
|
|
70
|
+
* @type {QuizBasisSnapshot}
|
|
71
|
+
* @memberof QuizWithQuestions
|
|
72
|
+
*/
|
|
73
|
+
basisSnapshot?: QuizBasisSnapshot | null;
|
|
67
74
|
/**
|
|
68
75
|
*
|
|
69
76
|
* @type {Date}
|
|
@@ -20,6 +20,7 @@ exports.QuizWithQuestionsFromJSONTyped = QuizWithQuestionsFromJSONTyped;
|
|
|
20
20
|
exports.QuizWithQuestionsToJSON = QuizWithQuestionsToJSON;
|
|
21
21
|
exports.QuizWithQuestionsToJSONTyped = QuizWithQuestionsToJSONTyped;
|
|
22
22
|
const QuizQuestion_1 = require("./QuizQuestion");
|
|
23
|
+
const QuizBasisSnapshot_1 = require("./QuizBasisSnapshot");
|
|
23
24
|
/**
|
|
24
25
|
* @export
|
|
25
26
|
*/
|
|
@@ -77,6 +78,7 @@ function QuizWithQuestionsFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
77
78
|
'mode': json['mode'],
|
|
78
79
|
'generationStatus': json['generationStatus'],
|
|
79
80
|
'expectedQuestionCount': json['expectedQuestionCount'],
|
|
81
|
+
'basisSnapshot': json['basisSnapshot'] == null ? undefined : (0, QuizBasisSnapshot_1.QuizBasisSnapshotFromJSON)(json['basisSnapshot']),
|
|
80
82
|
'createdAt': (new Date(json['createdAt'])),
|
|
81
83
|
'questions': (json['questions'].map(QuizQuestion_1.QuizQuestionFromJSON)),
|
|
82
84
|
};
|
|
@@ -97,6 +99,7 @@ function QuizWithQuestionsToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
97
99
|
'mode': value['mode'],
|
|
98
100
|
'generationStatus': value['generationStatus'],
|
|
99
101
|
'expectedQuestionCount': value['expectedQuestionCount'],
|
|
102
|
+
'basisSnapshot': (0, QuizBasisSnapshot_1.QuizBasisSnapshotToJSON)(value['basisSnapshot']),
|
|
100
103
|
'createdAt': value['createdAt'].toISOString(),
|
|
101
104
|
'questions': (value['questions'].map(QuizQuestion_1.QuizQuestionToJSON)),
|
|
102
105
|
};
|
|
@@ -70,7 +70,7 @@ export interface StudyObjectiveAccess {
|
|
|
70
70
|
*/
|
|
71
71
|
externalToolItemCount: number | null;
|
|
72
72
|
/**
|
|
73
|
-
* Readable files in the module that holds this item (a quiz or assignment)
|
|
73
|
+
* Readable files in the module that holds this item (a quiz or assignment): checked against the course files list, or, when Canvas refused that list (rule 4 on), counted from the module's own File items. Null when the item is in no module, is another kind of item, or modules could not be listed.
|
|
74
74
|
* @type {number}
|
|
75
75
|
* @memberof StudyObjectiveAccess
|
|
76
76
|
*/
|
|
@@ -81,6 +81,18 @@ export interface StudyObjectiveAccess {
|
|
|
81
81
|
* @memberof StudyObjectiveAccess
|
|
82
82
|
*/
|
|
83
83
|
moduleSiblingPageCount: number | null;
|
|
84
|
+
/**
|
|
85
|
+
* Readable files the course publishes through Modules (File items of a supported type, not locked for the learner; one per file). The file count to name only when readableFileCount is null (Canvas refused the course files list, e.g. a hidden Files tab); never add it to readableFileCount, since module links point at listed files. Null when modules could not be listed, and on facts read before rule 4.
|
|
86
|
+
* @type {number}
|
|
87
|
+
* @memberof StudyObjectiveAccess
|
|
88
|
+
*/
|
|
89
|
+
moduleReadableFileCount: number | null;
|
|
90
|
+
/**
|
|
91
|
+
* Files of a supported type published through Modules that are locked for the learner (one per file). Read only when readableFileCount is null, like moduleReadableFileCount. Null when modules could not be listed, and on facts read before rule 4.
|
|
92
|
+
* @type {number}
|
|
93
|
+
* @memberof StudyObjectiveAccess
|
|
94
|
+
*/
|
|
95
|
+
moduleLockedFileCount: number | null;
|
|
84
96
|
/**
|
|
85
97
|
* Version of the rule that produced `state`, for joining client analytics to the rule that was live.
|
|
86
98
|
* @type {number}
|
|
@@ -93,6 +105,12 @@ export interface StudyObjectiveAccess {
|
|
|
93
105
|
* @memberof StudyObjectiveAccess
|
|
94
106
|
*/
|
|
95
107
|
readAt: Date;
|
|
108
|
+
/**
|
|
109
|
+
* Topics the learner's syllabus schedule suggests this item covers, inferred by syllabus analysis, for the scope box to offer as Athena's best guess. Null while `scopeKnown` is true, when the learner has given a scope of their own, or when their syllabus suggests nothing. A suggestion is not evidence: it never sets `scopeKnown`.
|
|
110
|
+
* @type {Array<string>}
|
|
111
|
+
* @memberof StudyObjectiveAccess
|
|
112
|
+
*/
|
|
113
|
+
suggestedScope: Array<string> | null;
|
|
96
114
|
}
|
|
97
115
|
/**
|
|
98
116
|
* @export
|
|
@@ -78,10 +78,16 @@ function instanceOfStudyObjectiveAccess(value) {
|
|
|
78
78
|
return false;
|
|
79
79
|
if (!('moduleSiblingPageCount' in value) || value['moduleSiblingPageCount'] === undefined)
|
|
80
80
|
return false;
|
|
81
|
+
if (!('moduleReadableFileCount' in value) || value['moduleReadableFileCount'] === undefined)
|
|
82
|
+
return false;
|
|
83
|
+
if (!('moduleLockedFileCount' in value) || value['moduleLockedFileCount'] === undefined)
|
|
84
|
+
return false;
|
|
81
85
|
if (!('ruleVersion' in value) || value['ruleVersion'] === undefined)
|
|
82
86
|
return false;
|
|
83
87
|
if (!('readAt' in value) || value['readAt'] === undefined)
|
|
84
88
|
return false;
|
|
89
|
+
if (!('suggestedScope' in value) || value['suggestedScope'] === undefined)
|
|
90
|
+
return false;
|
|
85
91
|
return true;
|
|
86
92
|
}
|
|
87
93
|
function StudyObjectiveAccessFromJSON(json) {
|
|
@@ -103,8 +109,11 @@ function StudyObjectiveAccessFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
103
109
|
'externalToolItemCount': json['externalToolItemCount'],
|
|
104
110
|
'moduleSiblingFileCount': json['moduleSiblingFileCount'],
|
|
105
111
|
'moduleSiblingPageCount': json['moduleSiblingPageCount'],
|
|
112
|
+
'moduleReadableFileCount': json['moduleReadableFileCount'],
|
|
113
|
+
'moduleLockedFileCount': json['moduleLockedFileCount'],
|
|
106
114
|
'ruleVersion': json['ruleVersion'],
|
|
107
115
|
'readAt': (new Date(json['readAt'])),
|
|
116
|
+
'suggestedScope': json['suggestedScope'] == null ? null : json['suggestedScope'],
|
|
108
117
|
};
|
|
109
118
|
}
|
|
110
119
|
function StudyObjectiveAccessToJSON(json) {
|
|
@@ -126,7 +135,10 @@ function StudyObjectiveAccessToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
126
135
|
'externalToolItemCount': value['externalToolItemCount'],
|
|
127
136
|
'moduleSiblingFileCount': value['moduleSiblingFileCount'],
|
|
128
137
|
'moduleSiblingPageCount': value['moduleSiblingPageCount'],
|
|
138
|
+
'moduleReadableFileCount': value['moduleReadableFileCount'],
|
|
139
|
+
'moduleLockedFileCount': value['moduleLockedFileCount'],
|
|
129
140
|
'ruleVersion': value['ruleVersion'],
|
|
130
141
|
'readAt': value['readAt'].toISOString(),
|
|
142
|
+
'suggestedScope': value['suggestedScope'],
|
|
131
143
|
};
|
|
132
144
|
}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -128,6 +128,7 @@ export * from './PracticeQuiz';
|
|
|
128
128
|
export * from './PracticeQuizStatus';
|
|
129
129
|
export * from './PracticeQuizStatusList';
|
|
130
130
|
export * from './Quiz';
|
|
131
|
+
export * from './QuizBasisSnapshot';
|
|
131
132
|
export * from './QuizConceptSummary';
|
|
132
133
|
export * from './QuizListItem';
|
|
133
134
|
export * from './QuizQuestion';
|
package/dist/models/index.js
CHANGED
|
@@ -146,6 +146,7 @@ __exportStar(require("./PracticeQuiz"), exports);
|
|
|
146
146
|
__exportStar(require("./PracticeQuizStatus"), exports);
|
|
147
147
|
__exportStar(require("./PracticeQuizStatusList"), exports);
|
|
148
148
|
__exportStar(require("./Quiz"), exports);
|
|
149
|
+
__exportStar(require("./QuizBasisSnapshot"), exports);
|
|
149
150
|
__exportStar(require("./QuizConceptSummary"), exports);
|
|
150
151
|
__exportStar(require("./QuizListItem"), exports);
|
|
151
152
|
__exportStar(require("./QuizQuestion"), exports);
|