@instructure/athena-api-client 3.30.1 → 3.31.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 CHANGED
@@ -67,6 +67,7 @@ All URIs are relative to *http://localhost:3000*
67
67
  *AdminApi* | [**adminGetUsersActivity**](docs/AdminApi.md#admingetusersactivity) | **POST** /api/v1/admin/users/activity | Get per-day activity for a batch of users
68
68
  *AdminApi* | [**adminListActiveStreaks**](docs/AdminApi.md#adminlistactivestreaks) | **GET** /api/v1/admin/streaks/active | List all active streaks (currentDays > 0) across the account, paginated
69
69
  *AdminApi* | [**adminListChats**](docs/AdminApi.md#adminlistchats) | **GET** /api/v1/admin/chats | List recent chats across all account users
70
+ *AdminApi* | [**adminListLastExchanges**](docs/AdminApi.md#adminlistlastexchanges) | **GET** /api/v1/admin/last-exchanges | List the final user message and assistant reply for low-engagement new users
70
71
  *AdminApi* | [**adminListQuizSessions**](docs/AdminApi.md#adminlistquizsessions) | **GET** /api/v1/admin/quiz-sessions | List recent quiz sessions across all account users
71
72
  *AdminApi* | [**adminListStudyObjectives**](docs/AdminApi.md#adminliststudyobjectives) | **GET** /api/v1/admin/study-objectives | List study objectives across all account users
72
73
  *AdminApi* | [**adminListStudyObjectivesByUser**](docs/AdminApi.md#adminliststudyobjectivesbyuser) | **GET** /api/v1/admin/study-objectives/by-user | Per-user study-objective counts across all account users
@@ -188,8 +189,12 @@ All URIs are relative to *http://localhost:3000*
188
189
  - [AdminChatAnalysis](docs/AdminChatAnalysis.md)
189
190
  - [AdminChatWithStats](docs/AdminChatWithStats.md)
190
191
  - [AdminCohortStats](docs/AdminCohortStats.md)
192
+ - [AdminExchangeChat](docs/AdminExchangeChat.md)
193
+ - [AdminExchangeMessage](docs/AdminExchangeMessage.md)
194
+ - [AdminLastExchange](docs/AdminLastExchange.md)
191
195
  - [AdminPaginatedActiveStreaks](docs/AdminPaginatedActiveStreaks.md)
192
196
  - [AdminPaginatedChats](docs/AdminPaginatedChats.md)
197
+ - [AdminPaginatedLastExchanges](docs/AdminPaginatedLastExchanges.md)
193
198
  - [AdminPaginatedQuizSessions](docs/AdminPaginatedQuizSessions.md)
194
199
  - [AdminPaginatedStudyObjectiveUserCounts](docs/AdminPaginatedStudyObjectiveUserCounts.md)
195
200
  - [AdminPaginatedStudyObjectives](docs/AdminPaginatedStudyObjectives.md)
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { AdminChat, AdminChatAnalysis, AdminChatWithStats, AdminCohortStats, AdminPaginatedActiveStreaks, AdminPaginatedChats, AdminPaginatedQuizSessions, AdminPaginatedStudyObjectiveUserCounts, AdminPaginatedStudyObjectives, AdminPaginatedTaxonomyEnrollments, AdminResetLearningDataResponse, AdminStreak, AdminStudyObjectiveSummary, AdminTriggerAnalysisResponse, AdminUpdateChatRequest, AdminUserActivity, AdminUserEngagement, AdminUsersActivityRequest, QuizSessionSummary } from '../models/index';
13
+ import type { AdminChat, AdminChatAnalysis, AdminChatWithStats, AdminCohortStats, AdminPaginatedActiveStreaks, AdminPaginatedChats, AdminPaginatedLastExchanges, AdminPaginatedQuizSessions, AdminPaginatedStudyObjectiveUserCounts, AdminPaginatedStudyObjectives, AdminPaginatedTaxonomyEnrollments, AdminResetLearningDataResponse, AdminStreak, AdminStudyObjectiveSummary, AdminTriggerAnalysisResponse, AdminUpdateChatRequest, AdminUserActivity, AdminUserEngagement, AdminUsersActivityRequest, QuizSessionSummary } from '../models/index';
14
14
  export interface AdminGetChatRequest {
15
15
  xUserId: string;
16
16
  chatId: string;
@@ -55,6 +55,15 @@ export interface AdminListChatsRequest {
55
55
  chatType?: string;
56
56
  forReview?: boolean;
57
57
  }
58
+ export interface AdminListLastExchangesRequest {
59
+ xUserId: string;
60
+ since: Date;
61
+ limit?: number;
62
+ cursor?: string;
63
+ until?: Date;
64
+ maxUserMessages?: number;
65
+ inactiveDays?: number;
66
+ }
58
67
  export interface AdminListQuizSessionsRequest {
59
68
  xUserId: string;
60
69
  limit?: number;
@@ -194,6 +203,16 @@ export declare class AdminApi extends runtime.BaseAPI {
194
203
  * List recent chats across all account users
195
204
  */
196
205
  adminListChats(requestParameters: AdminListChatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AdminPaginatedChats>;
206
+ /**
207
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
208
+ * List the final user message and assistant reply for low-engagement new users
209
+ */
210
+ adminListLastExchangesRaw(requestParameters: AdminListLastExchangesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AdminPaginatedLastExchanges>>;
211
+ /**
212
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
213
+ * List the final user message and assistant reply for low-engagement new users
214
+ */
215
+ adminListLastExchanges(requestParameters: AdminListLastExchangesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AdminPaginatedLastExchanges>;
197
216
  /**
198
217
  * Returns a paginated list of quiz sessions belonging to users within the caller\'s account, ordered by start date (newest first), with embedded quiz info, the owning user\'s external id, and a score summary (including the number of questions answered). Intended for admin-style views in calling applications; authorization on whether the calling user is allowed to act as an admin is the calling application\'s responsibility - this endpoint only enforces account isolation. Questions and responses are not included; fetch them per session via the summary endpoint. Like the summary endpoint, this is not gated on the `enhanced-quizzing` feature flag.
199
218
  * List recent quiz sessions across all account users
@@ -440,6 +440,64 @@ class AdminApi extends runtime.BaseAPI {
440
440
  return yield response.value();
441
441
  });
442
442
  }
443
+ /**
444
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
445
+ * List the final user message and assistant reply for low-engagement new users
446
+ */
447
+ adminListLastExchangesRaw(requestParameters, initOverrides) {
448
+ return __awaiter(this, void 0, void 0, function* () {
449
+ if (requestParameters['xUserId'] == null) {
450
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling adminListLastExchanges().');
451
+ }
452
+ if (requestParameters['since'] == null) {
453
+ throw new runtime.RequiredError('since', 'Required parameter "since" was null or undefined when calling adminListLastExchanges().');
454
+ }
455
+ const queryParameters = {};
456
+ if (requestParameters['limit'] != null) {
457
+ queryParameters['limit'] = requestParameters['limit'];
458
+ }
459
+ if (requestParameters['cursor'] != null) {
460
+ queryParameters['cursor'] = requestParameters['cursor'];
461
+ }
462
+ if (requestParameters['since'] != null) {
463
+ queryParameters['since'] = requestParameters['since'].toISOString();
464
+ }
465
+ if (requestParameters['until'] != null) {
466
+ queryParameters['until'] = requestParameters['until'].toISOString();
467
+ }
468
+ if (requestParameters['maxUserMessages'] != null) {
469
+ queryParameters['maxUserMessages'] = requestParameters['maxUserMessages'];
470
+ }
471
+ if (requestParameters['inactiveDays'] != null) {
472
+ queryParameters['inactiveDays'] = requestParameters['inactiveDays'];
473
+ }
474
+ const headerParameters = {};
475
+ if (requestParameters['xUserId'] != null) {
476
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
477
+ }
478
+ if (this.configuration && this.configuration.apiKey) {
479
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
480
+ }
481
+ let urlPath = `/api/v1/admin/last-exchanges`;
482
+ const response = yield this.request({
483
+ path: urlPath,
484
+ method: 'GET',
485
+ headers: headerParameters,
486
+ query: queryParameters,
487
+ }, initOverrides);
488
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AdminPaginatedLastExchangesFromJSON)(jsonValue));
489
+ });
490
+ }
491
+ /**
492
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
493
+ * List the final user message and assistant reply for low-engagement new users
494
+ */
495
+ adminListLastExchanges(requestParameters, initOverrides) {
496
+ return __awaiter(this, void 0, void 0, function* () {
497
+ const response = yield this.adminListLastExchangesRaw(requestParameters, initOverrides);
498
+ return yield response.value();
499
+ });
500
+ }
443
501
  /**
444
502
  * Returns a paginated list of quiz sessions belonging to users within the caller\'s account, ordered by start date (newest first), with embedded quiz info, the owning user\'s external id, and a score summary (including the number of questions answered). Intended for admin-style views in calling applications; authorization on whether the calling user is allowed to act as an admin is the calling application\'s responsibility - this endpoint only enforces account isolation. Questions and responses are not included; fetch them per session via the summary endpoint. Like the summary endpoint, this is not gated on the `enhanced-quizzing` feature flag.
445
503
  * List recent quiz sessions across all account users
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { AdminChat, AdminChatAnalysis, AdminChatWithStats, AdminCohortStats, AdminPaginatedActiveStreaks, AdminPaginatedChats, AdminPaginatedQuizSessions, AdminPaginatedStudyObjectiveUserCounts, AdminPaginatedStudyObjectives, AdminPaginatedTaxonomyEnrollments, AdminResetLearningDataResponse, AdminStreak, AdminStudyObjectiveSummary, AdminTriggerAnalysisResponse, AdminUpdateChatRequest, AdminUserActivity, AdminUserEngagement, AdminUsersActivityRequest, QuizSessionSummary } from '../models/index';
13
+ import type { AdminChat, AdminChatAnalysis, AdminChatWithStats, AdminCohortStats, AdminPaginatedActiveStreaks, AdminPaginatedChats, AdminPaginatedLastExchanges, AdminPaginatedQuizSessions, AdminPaginatedStudyObjectiveUserCounts, AdminPaginatedStudyObjectives, AdminPaginatedTaxonomyEnrollments, AdminResetLearningDataResponse, AdminStreak, AdminStudyObjectiveSummary, AdminTriggerAnalysisResponse, AdminUpdateChatRequest, AdminUserActivity, AdminUserEngagement, AdminUsersActivityRequest, QuizSessionSummary } from '../models/index';
14
14
  export interface AdminGetChatRequest {
15
15
  xUserId: string;
16
16
  chatId: string;
@@ -55,6 +55,15 @@ export interface AdminListChatsRequest {
55
55
  chatType?: string;
56
56
  forReview?: boolean;
57
57
  }
58
+ export interface AdminListLastExchangesRequest {
59
+ xUserId: string;
60
+ since: Date;
61
+ limit?: number;
62
+ cursor?: string;
63
+ until?: Date;
64
+ maxUserMessages?: number;
65
+ inactiveDays?: number;
66
+ }
58
67
  export interface AdminListQuizSessionsRequest {
59
68
  xUserId: string;
60
69
  limit?: number;
@@ -194,6 +203,16 @@ export declare class AdminApi extends runtime.BaseAPI {
194
203
  * List recent chats across all account users
195
204
  */
196
205
  adminListChats(requestParameters: AdminListChatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AdminPaginatedChats>;
206
+ /**
207
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
208
+ * List the final user message and assistant reply for low-engagement new users
209
+ */
210
+ adminListLastExchangesRaw(requestParameters: AdminListLastExchangesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AdminPaginatedLastExchanges>>;
211
+ /**
212
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
213
+ * List the final user message and assistant reply for low-engagement new users
214
+ */
215
+ adminListLastExchanges(requestParameters: AdminListLastExchangesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AdminPaginatedLastExchanges>;
197
216
  /**
198
217
  * Returns a paginated list of quiz sessions belonging to users within the caller\'s account, ordered by start date (newest first), with embedded quiz info, the owning user\'s external id, and a score summary (including the number of questions answered). Intended for admin-style views in calling applications; authorization on whether the calling user is allowed to act as an admin is the calling application\'s responsibility - this endpoint only enforces account isolation. Questions and responses are not included; fetch them per session via the summary endpoint. Like the summary endpoint, this is not gated on the `enhanced-quizzing` feature flag.
199
218
  * List recent quiz sessions across all account users
@@ -21,7 +21,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
21
  });
22
22
  };
23
23
  import * as runtime from '../runtime';
24
- import { AdminChatFromJSON, AdminChatAnalysisFromJSON, AdminChatWithStatsFromJSON, AdminCohortStatsFromJSON, AdminPaginatedActiveStreaksFromJSON, AdminPaginatedChatsFromJSON, AdminPaginatedQuizSessionsFromJSON, AdminPaginatedStudyObjectiveUserCountsFromJSON, AdminPaginatedStudyObjectivesFromJSON, AdminPaginatedTaxonomyEnrollmentsFromJSON, AdminResetLearningDataResponseFromJSON, AdminStreakFromJSON, AdminStudyObjectiveSummaryFromJSON, AdminTriggerAnalysisResponseFromJSON, AdminUpdateChatRequestToJSON, AdminUserActivityFromJSON, AdminUserEngagementFromJSON, AdminUsersActivityRequestToJSON, QuizSessionSummaryFromJSON, } from '../models/index';
24
+ import { AdminChatFromJSON, AdminChatAnalysisFromJSON, AdminChatWithStatsFromJSON, AdminCohortStatsFromJSON, AdminPaginatedActiveStreaksFromJSON, AdminPaginatedChatsFromJSON, AdminPaginatedLastExchangesFromJSON, AdminPaginatedQuizSessionsFromJSON, AdminPaginatedStudyObjectiveUserCountsFromJSON, AdminPaginatedStudyObjectivesFromJSON, AdminPaginatedTaxonomyEnrollmentsFromJSON, AdminResetLearningDataResponseFromJSON, AdminStreakFromJSON, AdminStudyObjectiveSummaryFromJSON, AdminTriggerAnalysisResponseFromJSON, AdminUpdateChatRequestToJSON, AdminUserActivityFromJSON, AdminUserEngagementFromJSON, AdminUsersActivityRequestToJSON, QuizSessionSummaryFromJSON, } from '../models/index';
25
25
  /**
26
26
  *
27
27
  */
@@ -437,6 +437,64 @@ export class AdminApi extends runtime.BaseAPI {
437
437
  return yield response.value();
438
438
  });
439
439
  }
440
+ /**
441
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
442
+ * List the final user message and assistant reply for low-engagement new users
443
+ */
444
+ adminListLastExchangesRaw(requestParameters, initOverrides) {
445
+ return __awaiter(this, void 0, void 0, function* () {
446
+ if (requestParameters['xUserId'] == null) {
447
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling adminListLastExchanges().');
448
+ }
449
+ if (requestParameters['since'] == null) {
450
+ throw new runtime.RequiredError('since', 'Required parameter "since" was null or undefined when calling adminListLastExchanges().');
451
+ }
452
+ const queryParameters = {};
453
+ if (requestParameters['limit'] != null) {
454
+ queryParameters['limit'] = requestParameters['limit'];
455
+ }
456
+ if (requestParameters['cursor'] != null) {
457
+ queryParameters['cursor'] = requestParameters['cursor'];
458
+ }
459
+ if (requestParameters['since'] != null) {
460
+ queryParameters['since'] = requestParameters['since'].toISOString();
461
+ }
462
+ if (requestParameters['until'] != null) {
463
+ queryParameters['until'] = requestParameters['until'].toISOString();
464
+ }
465
+ if (requestParameters['maxUserMessages'] != null) {
466
+ queryParameters['maxUserMessages'] = requestParameters['maxUserMessages'];
467
+ }
468
+ if (requestParameters['inactiveDays'] != null) {
469
+ queryParameters['inactiveDays'] = requestParameters['inactiveDays'];
470
+ }
471
+ const headerParameters = {};
472
+ if (requestParameters['xUserId'] != null) {
473
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
474
+ }
475
+ if (this.configuration && this.configuration.apiKey) {
476
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
477
+ }
478
+ let urlPath = `/api/v1/admin/last-exchanges`;
479
+ const response = yield this.request({
480
+ path: urlPath,
481
+ method: 'GET',
482
+ headers: headerParameters,
483
+ query: queryParameters,
484
+ }, initOverrides);
485
+ return new runtime.JSONApiResponse(response, (jsonValue) => AdminPaginatedLastExchangesFromJSON(jsonValue));
486
+ });
487
+ }
488
+ /**
489
+ * For account users created within [since, until) who sent at most `maxUserMessages` learner-authored messages and whose last such message is at least `inactiveDays` old, returns that last message together with the first assistant reply that followed it in the same chat. Client-fired synthetic turns (learning-session kickoffs, daily-quiz starts) are ignored when counting and selecting messages. Users with no learner-authored messages are omitted. Ordered by most recent last message first.
490
+ * List the final user message and assistant reply for low-engagement new users
491
+ */
492
+ adminListLastExchanges(requestParameters, initOverrides) {
493
+ return __awaiter(this, void 0, void 0, function* () {
494
+ const response = yield this.adminListLastExchangesRaw(requestParameters, initOverrides);
495
+ return yield response.value();
496
+ });
497
+ }
440
498
  /**
441
499
  * Returns a paginated list of quiz sessions belonging to users within the caller\'s account, ordered by start date (newest first), with embedded quiz info, the owning user\'s external id, and a score summary (including the number of questions answered). Intended for admin-style views in calling applications; authorization on whether the calling user is allowed to act as an admin is the calling application\'s responsibility - this endpoint only enforces account isolation. Questions and responses are not included; fetch them per session via the summary endpoint. Like the summary endpoint, this is not gated on the `enhanced-quizzing` feature flag.
442
500
  * List recent quiz sessions across all account users
@@ -0,0 +1,50 @@
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 AdminExchangeChat
16
+ */
17
+ export interface AdminExchangeChat {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof AdminExchangeChat
22
+ */
23
+ id: string;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof AdminExchangeChat
28
+ */
29
+ title: string;
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof AdminExchangeChat
34
+ */
35
+ chatType: string | null;
36
+ /**
37
+ *
38
+ * @type {Date}
39
+ * @memberof AdminExchangeChat
40
+ */
41
+ createdAt: Date;
42
+ }
43
+ /**
44
+ * Check if a given object implements the AdminExchangeChat interface.
45
+ */
46
+ export declare function instanceOfAdminExchangeChat(value: object): value is AdminExchangeChat;
47
+ export declare function AdminExchangeChatFromJSON(json: any): AdminExchangeChat;
48
+ export declare function AdminExchangeChatFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminExchangeChat;
49
+ export declare function AdminExchangeChatToJSON(json: any): AdminExchangeChat;
50
+ export declare function AdminExchangeChatToJSONTyped(value?: AdminExchangeChat | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,55 @@
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
+ * Check if a given object implements the AdminExchangeChat interface.
16
+ */
17
+ export function instanceOfAdminExchangeChat(value) {
18
+ if (!('id' in value) || value['id'] === undefined)
19
+ return false;
20
+ if (!('title' in value) || value['title'] === undefined)
21
+ return false;
22
+ if (!('chatType' in value) || value['chatType'] === undefined)
23
+ return false;
24
+ if (!('createdAt' in value) || value['createdAt'] === undefined)
25
+ return false;
26
+ return true;
27
+ }
28
+ export function AdminExchangeChatFromJSON(json) {
29
+ return AdminExchangeChatFromJSONTyped(json, false);
30
+ }
31
+ export function AdminExchangeChatFromJSONTyped(json, ignoreDiscriminator) {
32
+ if (json == null) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'id': json['id'],
37
+ 'title': json['title'],
38
+ 'chatType': json['chatType'],
39
+ 'createdAt': (new Date(json['createdAt'])),
40
+ };
41
+ }
42
+ export function AdminExchangeChatToJSON(json) {
43
+ return AdminExchangeChatToJSONTyped(json, false);
44
+ }
45
+ export function AdminExchangeChatToJSONTyped(value, ignoreDiscriminator = false) {
46
+ if (value == null) {
47
+ return value;
48
+ }
49
+ return {
50
+ 'id': value['id'],
51
+ 'title': value['title'],
52
+ 'chatType': value['chatType'],
53
+ 'createdAt': value['createdAt'].toISOString(),
54
+ };
55
+ }
@@ -0,0 +1,56 @@
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 AdminExchangeMessage
16
+ */
17
+ export interface AdminExchangeMessage {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof AdminExchangeMessage
22
+ */
23
+ id: string;
24
+ /**
25
+ *
26
+ * @type {Date}
27
+ * @memberof AdminExchangeMessage
28
+ */
29
+ createdAt: Date;
30
+ /**
31
+ * Concatenated text parts of the message. Empty when the message carried no text (for example a file-only turn or a tool-only assistant step).
32
+ * @type {string}
33
+ * @memberof AdminExchangeMessage
34
+ */
35
+ text: string;
36
+ /**
37
+ * Distinct `type` values of the stored message parts, in first-seen order (e.g. text, file, tool-generateQuiz). Lets callers spot non-text turns without loading the full parts payload.
38
+ * @type {Array<string>}
39
+ * @memberof AdminExchangeMessage
40
+ */
41
+ partTypes: Array<string>;
42
+ /**
43
+ * Originating client for this turn, when the client declared one
44
+ * @type {string}
45
+ * @memberof AdminExchangeMessage
46
+ */
47
+ source: string | null;
48
+ }
49
+ /**
50
+ * Check if a given object implements the AdminExchangeMessage interface.
51
+ */
52
+ export declare function instanceOfAdminExchangeMessage(value: object): value is AdminExchangeMessage;
53
+ export declare function AdminExchangeMessageFromJSON(json: any): AdminExchangeMessage;
54
+ export declare function AdminExchangeMessageFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminExchangeMessage;
55
+ export declare function AdminExchangeMessageToJSON(json: any): AdminExchangeMessage;
56
+ export declare function AdminExchangeMessageToJSONTyped(value?: AdminExchangeMessage | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,59 @@
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
+ * Check if a given object implements the AdminExchangeMessage interface.
16
+ */
17
+ export function instanceOfAdminExchangeMessage(value) {
18
+ if (!('id' in value) || value['id'] === undefined)
19
+ return false;
20
+ if (!('createdAt' in value) || value['createdAt'] === undefined)
21
+ return false;
22
+ if (!('text' in value) || value['text'] === undefined)
23
+ return false;
24
+ if (!('partTypes' in value) || value['partTypes'] === undefined)
25
+ return false;
26
+ if (!('source' in value) || value['source'] === undefined)
27
+ return false;
28
+ return true;
29
+ }
30
+ export function AdminExchangeMessageFromJSON(json) {
31
+ return AdminExchangeMessageFromJSONTyped(json, false);
32
+ }
33
+ export function AdminExchangeMessageFromJSONTyped(json, ignoreDiscriminator) {
34
+ if (json == null) {
35
+ return json;
36
+ }
37
+ return {
38
+ 'id': json['id'],
39
+ 'createdAt': (new Date(json['createdAt'])),
40
+ 'text': json['text'],
41
+ 'partTypes': json['partTypes'],
42
+ 'source': json['source'],
43
+ };
44
+ }
45
+ export function AdminExchangeMessageToJSON(json) {
46
+ return AdminExchangeMessageToJSONTyped(json, false);
47
+ }
48
+ export function AdminExchangeMessageToJSONTyped(value, ignoreDiscriminator = false) {
49
+ if (value == null) {
50
+ return value;
51
+ }
52
+ return {
53
+ 'id': value['id'],
54
+ 'createdAt': value['createdAt'].toISOString(),
55
+ 'text': value['text'],
56
+ 'partTypes': value['partTypes'],
57
+ 'source': value['source'],
58
+ };
59
+ }
@@ -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
+ import type { AdminExchangeMessage } from './AdminExchangeMessage';
13
+ import type { AdminExchangeChat } from './AdminExchangeChat';
14
+ /**
15
+ *
16
+ * @export
17
+ * @interface AdminLastExchange
18
+ */
19
+ export interface AdminLastExchange {
20
+ /**
21
+ *
22
+ * @type {string}
23
+ * @memberof AdminLastExchange
24
+ */
25
+ accountUserId: string;
26
+ /**
27
+ * External user identifier supplied by the consumer
28
+ * @type {string}
29
+ * @memberof AdminLastExchange
30
+ */
31
+ userId: string | null;
32
+ /**
33
+ *
34
+ * @type {Date}
35
+ * @memberof AdminLastExchange
36
+ */
37
+ userCreatedAt: Date;
38
+ /**
39
+ * Total non-synthetic user-role messages this user has sent across all chats
40
+ * @type {number}
41
+ * @memberof AdminLastExchange
42
+ */
43
+ userMessageCount: number;
44
+ /**
45
+ * Number of distinct chats in which the user sent a message
46
+ * @type {number}
47
+ * @memberof AdminLastExchange
48
+ */
49
+ chatCount: number;
50
+ /**
51
+ * The chat containing the user's last message
52
+ * @type {AdminExchangeChat}
53
+ * @memberof AdminLastExchange
54
+ */
55
+ chat: AdminExchangeChat;
56
+ /**
57
+ * The last non-synthetic message the user sent
58
+ * @type {AdminExchangeMessage}
59
+ * @memberof AdminLastExchange
60
+ */
61
+ lastUserMessage: AdminExchangeMessage;
62
+ /**
63
+ * The first assistant message that followed the user's last message in the same chat. Null when the assistant never replied (for example the stream failed or was abandoned mid-flight).
64
+ * @type {AdminExchangeMessage}
65
+ * @memberof AdminLastExchange
66
+ */
67
+ assistantResponse: AdminExchangeMessage | null;
68
+ }
69
+ /**
70
+ * Check if a given object implements the AdminLastExchange interface.
71
+ */
72
+ export declare function instanceOfAdminLastExchange(value: object): value is AdminLastExchange;
73
+ export declare function AdminLastExchangeFromJSON(json: any): AdminLastExchange;
74
+ export declare function AdminLastExchangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminLastExchange;
75
+ export declare function AdminLastExchangeToJSON(json: any): AdminLastExchange;
76
+ export declare function AdminLastExchangeToJSONTyped(value?: AdminLastExchange | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,73 @@
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
+ import { AdminExchangeMessageFromJSON, AdminExchangeMessageToJSON, } from './AdminExchangeMessage';
15
+ import { AdminExchangeChatFromJSON, AdminExchangeChatToJSON, } from './AdminExchangeChat';
16
+ /**
17
+ * Check if a given object implements the AdminLastExchange interface.
18
+ */
19
+ export function instanceOfAdminLastExchange(value) {
20
+ if (!('accountUserId' in value) || value['accountUserId'] === undefined)
21
+ return false;
22
+ if (!('userId' in value) || value['userId'] === undefined)
23
+ return false;
24
+ if (!('userCreatedAt' in value) || value['userCreatedAt'] === undefined)
25
+ return false;
26
+ if (!('userMessageCount' in value) || value['userMessageCount'] === undefined)
27
+ return false;
28
+ if (!('chatCount' in value) || value['chatCount'] === undefined)
29
+ return false;
30
+ if (!('chat' in value) || value['chat'] === undefined)
31
+ return false;
32
+ if (!('lastUserMessage' in value) || value['lastUserMessage'] === undefined)
33
+ return false;
34
+ if (!('assistantResponse' in value) || value['assistantResponse'] === undefined)
35
+ return false;
36
+ return true;
37
+ }
38
+ export function AdminLastExchangeFromJSON(json) {
39
+ return AdminLastExchangeFromJSONTyped(json, false);
40
+ }
41
+ export function AdminLastExchangeFromJSONTyped(json, ignoreDiscriminator) {
42
+ if (json == null) {
43
+ return json;
44
+ }
45
+ return {
46
+ 'accountUserId': json['accountUserId'],
47
+ 'userId': json['userId'],
48
+ 'userCreatedAt': (new Date(json['userCreatedAt'])),
49
+ 'userMessageCount': json['userMessageCount'],
50
+ 'chatCount': json['chatCount'],
51
+ 'chat': AdminExchangeChatFromJSON(json['chat']),
52
+ 'lastUserMessage': AdminExchangeMessageFromJSON(json['lastUserMessage']),
53
+ 'assistantResponse': AdminExchangeMessageFromJSON(json['assistantResponse']),
54
+ };
55
+ }
56
+ export function AdminLastExchangeToJSON(json) {
57
+ return AdminLastExchangeToJSONTyped(json, false);
58
+ }
59
+ export function AdminLastExchangeToJSONTyped(value, ignoreDiscriminator = false) {
60
+ if (value == null) {
61
+ return value;
62
+ }
63
+ return {
64
+ 'accountUserId': value['accountUserId'],
65
+ 'userId': value['userId'],
66
+ 'userCreatedAt': value['userCreatedAt'].toISOString(),
67
+ 'userMessageCount': value['userMessageCount'],
68
+ 'chatCount': value['chatCount'],
69
+ 'chat': AdminExchangeChatToJSON(value['chat']),
70
+ 'lastUserMessage': AdminExchangeMessageToJSON(value['lastUserMessage']),
71
+ 'assistantResponse': AdminExchangeMessageToJSON(value['assistantResponse']),
72
+ };
73
+ }
@@ -0,0 +1,39 @@
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
+ import type { AdminLastExchange } from './AdminLastExchange';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface AdminPaginatedLastExchanges
17
+ */
18
+ export interface AdminPaginatedLastExchanges {
19
+ /**
20
+ * One entry per matching user, ordered by most recent last message first
21
+ * @type {Array<AdminLastExchange>}
22
+ * @memberof AdminPaginatedLastExchanges
23
+ */
24
+ data: Array<AdminLastExchange>;
25
+ /**
26
+ * Opaque cursor for fetching the next page. Null when there are no more results.
27
+ * @type {string}
28
+ * @memberof AdminPaginatedLastExchanges
29
+ */
30
+ nextCursor: string | null;
31
+ }
32
+ /**
33
+ * Check if a given object implements the AdminPaginatedLastExchanges interface.
34
+ */
35
+ export declare function instanceOfAdminPaginatedLastExchanges(value: object): value is AdminPaginatedLastExchanges;
36
+ export declare function AdminPaginatedLastExchangesFromJSON(json: any): AdminPaginatedLastExchanges;
37
+ export declare function AdminPaginatedLastExchangesFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminPaginatedLastExchanges;
38
+ export declare function AdminPaginatedLastExchangesToJSON(json: any): AdminPaginatedLastExchanges;
39
+ export declare function AdminPaginatedLastExchangesToJSONTyped(value?: AdminPaginatedLastExchanges | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,48 @@
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
+ import { AdminLastExchangeFromJSON, AdminLastExchangeToJSON, } from './AdminLastExchange';
15
+ /**
16
+ * Check if a given object implements the AdminPaginatedLastExchanges interface.
17
+ */
18
+ export function instanceOfAdminPaginatedLastExchanges(value) {
19
+ if (!('data' in value) || value['data'] === undefined)
20
+ return false;
21
+ if (!('nextCursor' in value) || value['nextCursor'] === undefined)
22
+ return false;
23
+ return true;
24
+ }
25
+ export function AdminPaginatedLastExchangesFromJSON(json) {
26
+ return AdminPaginatedLastExchangesFromJSONTyped(json, false);
27
+ }
28
+ export function AdminPaginatedLastExchangesFromJSONTyped(json, ignoreDiscriminator) {
29
+ if (json == null) {
30
+ return json;
31
+ }
32
+ return {
33
+ 'data': (json['data'].map(AdminLastExchangeFromJSON)),
34
+ 'nextCursor': json['nextCursor'],
35
+ };
36
+ }
37
+ export function AdminPaginatedLastExchangesToJSON(json) {
38
+ return AdminPaginatedLastExchangesToJSONTyped(json, false);
39
+ }
40
+ export function AdminPaginatedLastExchangesToJSONTyped(value, ignoreDiscriminator = false) {
41
+ if (value == null) {
42
+ return value;
43
+ }
44
+ return {
45
+ 'data': (value['data'].map(AdminLastExchangeToJSON)),
46
+ 'nextCursor': value['nextCursor'],
47
+ };
48
+ }
@@ -4,8 +4,12 @@ export * from './AdminChat';
4
4
  export * from './AdminChatAnalysis';
5
5
  export * from './AdminChatWithStats';
6
6
  export * from './AdminCohortStats';
7
+ export * from './AdminExchangeChat';
8
+ export * from './AdminExchangeMessage';
9
+ export * from './AdminLastExchange';
7
10
  export * from './AdminPaginatedActiveStreaks';
8
11
  export * from './AdminPaginatedChats';
12
+ export * from './AdminPaginatedLastExchanges';
9
13
  export * from './AdminPaginatedQuizSessions';
10
14
  export * from './AdminPaginatedStudyObjectiveUserCounts';
11
15
  export * from './AdminPaginatedStudyObjectives';
@@ -6,8 +6,12 @@ export * from './AdminChat';
6
6
  export * from './AdminChatAnalysis';
7
7
  export * from './AdminChatWithStats';
8
8
  export * from './AdminCohortStats';
9
+ export * from './AdminExchangeChat';
10
+ export * from './AdminExchangeMessage';
11
+ export * from './AdminLastExchange';
9
12
  export * from './AdminPaginatedActiveStreaks';
10
13
  export * from './AdminPaginatedChats';
14
+ export * from './AdminPaginatedLastExchanges';
11
15
  export * from './AdminPaginatedQuizSessions';
12
16
  export * from './AdminPaginatedStudyObjectiveUserCounts';
13
17
  export * from './AdminPaginatedStudyObjectives';
@@ -0,0 +1,50 @@
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 AdminExchangeChat
16
+ */
17
+ export interface AdminExchangeChat {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof AdminExchangeChat
22
+ */
23
+ id: string;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof AdminExchangeChat
28
+ */
29
+ title: string;
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof AdminExchangeChat
34
+ */
35
+ chatType: string | null;
36
+ /**
37
+ *
38
+ * @type {Date}
39
+ * @memberof AdminExchangeChat
40
+ */
41
+ createdAt: Date;
42
+ }
43
+ /**
44
+ * Check if a given object implements the AdminExchangeChat interface.
45
+ */
46
+ export declare function instanceOfAdminExchangeChat(value: object): value is AdminExchangeChat;
47
+ export declare function AdminExchangeChatFromJSON(json: any): AdminExchangeChat;
48
+ export declare function AdminExchangeChatFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminExchangeChat;
49
+ export declare function AdminExchangeChatToJSON(json: any): AdminExchangeChat;
50
+ export declare function AdminExchangeChatToJSONTyped(value?: AdminExchangeChat | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,62 @@
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.instanceOfAdminExchangeChat = instanceOfAdminExchangeChat;
17
+ exports.AdminExchangeChatFromJSON = AdminExchangeChatFromJSON;
18
+ exports.AdminExchangeChatFromJSONTyped = AdminExchangeChatFromJSONTyped;
19
+ exports.AdminExchangeChatToJSON = AdminExchangeChatToJSON;
20
+ exports.AdminExchangeChatToJSONTyped = AdminExchangeChatToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the AdminExchangeChat interface.
23
+ */
24
+ function instanceOfAdminExchangeChat(value) {
25
+ if (!('id' in value) || value['id'] === undefined)
26
+ return false;
27
+ if (!('title' in value) || value['title'] === undefined)
28
+ return false;
29
+ if (!('chatType' in value) || value['chatType'] === undefined)
30
+ return false;
31
+ if (!('createdAt' in value) || value['createdAt'] === undefined)
32
+ return false;
33
+ return true;
34
+ }
35
+ function AdminExchangeChatFromJSON(json) {
36
+ return AdminExchangeChatFromJSONTyped(json, false);
37
+ }
38
+ function AdminExchangeChatFromJSONTyped(json, ignoreDiscriminator) {
39
+ if (json == null) {
40
+ return json;
41
+ }
42
+ return {
43
+ 'id': json['id'],
44
+ 'title': json['title'],
45
+ 'chatType': json['chatType'],
46
+ 'createdAt': (new Date(json['createdAt'])),
47
+ };
48
+ }
49
+ function AdminExchangeChatToJSON(json) {
50
+ return AdminExchangeChatToJSONTyped(json, false);
51
+ }
52
+ function AdminExchangeChatToJSONTyped(value, ignoreDiscriminator = false) {
53
+ if (value == null) {
54
+ return value;
55
+ }
56
+ return {
57
+ 'id': value['id'],
58
+ 'title': value['title'],
59
+ 'chatType': value['chatType'],
60
+ 'createdAt': value['createdAt'].toISOString(),
61
+ };
62
+ }
@@ -0,0 +1,56 @@
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 AdminExchangeMessage
16
+ */
17
+ export interface AdminExchangeMessage {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof AdminExchangeMessage
22
+ */
23
+ id: string;
24
+ /**
25
+ *
26
+ * @type {Date}
27
+ * @memberof AdminExchangeMessage
28
+ */
29
+ createdAt: Date;
30
+ /**
31
+ * Concatenated text parts of the message. Empty when the message carried no text (for example a file-only turn or a tool-only assistant step).
32
+ * @type {string}
33
+ * @memberof AdminExchangeMessage
34
+ */
35
+ text: string;
36
+ /**
37
+ * Distinct `type` values of the stored message parts, in first-seen order (e.g. text, file, tool-generateQuiz). Lets callers spot non-text turns without loading the full parts payload.
38
+ * @type {Array<string>}
39
+ * @memberof AdminExchangeMessage
40
+ */
41
+ partTypes: Array<string>;
42
+ /**
43
+ * Originating client for this turn, when the client declared one
44
+ * @type {string}
45
+ * @memberof AdminExchangeMessage
46
+ */
47
+ source: string | null;
48
+ }
49
+ /**
50
+ * Check if a given object implements the AdminExchangeMessage interface.
51
+ */
52
+ export declare function instanceOfAdminExchangeMessage(value: object): value is AdminExchangeMessage;
53
+ export declare function AdminExchangeMessageFromJSON(json: any): AdminExchangeMessage;
54
+ export declare function AdminExchangeMessageFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminExchangeMessage;
55
+ export declare function AdminExchangeMessageToJSON(json: any): AdminExchangeMessage;
56
+ export declare function AdminExchangeMessageToJSONTyped(value?: AdminExchangeMessage | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,66 @@
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.instanceOfAdminExchangeMessage = instanceOfAdminExchangeMessage;
17
+ exports.AdminExchangeMessageFromJSON = AdminExchangeMessageFromJSON;
18
+ exports.AdminExchangeMessageFromJSONTyped = AdminExchangeMessageFromJSONTyped;
19
+ exports.AdminExchangeMessageToJSON = AdminExchangeMessageToJSON;
20
+ exports.AdminExchangeMessageToJSONTyped = AdminExchangeMessageToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the AdminExchangeMessage interface.
23
+ */
24
+ function instanceOfAdminExchangeMessage(value) {
25
+ if (!('id' in value) || value['id'] === undefined)
26
+ return false;
27
+ if (!('createdAt' in value) || value['createdAt'] === undefined)
28
+ return false;
29
+ if (!('text' in value) || value['text'] === undefined)
30
+ return false;
31
+ if (!('partTypes' in value) || value['partTypes'] === undefined)
32
+ return false;
33
+ if (!('source' in value) || value['source'] === undefined)
34
+ return false;
35
+ return true;
36
+ }
37
+ function AdminExchangeMessageFromJSON(json) {
38
+ return AdminExchangeMessageFromJSONTyped(json, false);
39
+ }
40
+ function AdminExchangeMessageFromJSONTyped(json, ignoreDiscriminator) {
41
+ if (json == null) {
42
+ return json;
43
+ }
44
+ return {
45
+ 'id': json['id'],
46
+ 'createdAt': (new Date(json['createdAt'])),
47
+ 'text': json['text'],
48
+ 'partTypes': json['partTypes'],
49
+ 'source': json['source'],
50
+ };
51
+ }
52
+ function AdminExchangeMessageToJSON(json) {
53
+ return AdminExchangeMessageToJSONTyped(json, false);
54
+ }
55
+ function AdminExchangeMessageToJSONTyped(value, ignoreDiscriminator = false) {
56
+ if (value == null) {
57
+ return value;
58
+ }
59
+ return {
60
+ 'id': value['id'],
61
+ 'createdAt': value['createdAt'].toISOString(),
62
+ 'text': value['text'],
63
+ 'partTypes': value['partTypes'],
64
+ 'source': value['source'],
65
+ };
66
+ }
@@ -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
+ import type { AdminExchangeMessage } from './AdminExchangeMessage';
13
+ import type { AdminExchangeChat } from './AdminExchangeChat';
14
+ /**
15
+ *
16
+ * @export
17
+ * @interface AdminLastExchange
18
+ */
19
+ export interface AdminLastExchange {
20
+ /**
21
+ *
22
+ * @type {string}
23
+ * @memberof AdminLastExchange
24
+ */
25
+ accountUserId: string;
26
+ /**
27
+ * External user identifier supplied by the consumer
28
+ * @type {string}
29
+ * @memberof AdminLastExchange
30
+ */
31
+ userId: string | null;
32
+ /**
33
+ *
34
+ * @type {Date}
35
+ * @memberof AdminLastExchange
36
+ */
37
+ userCreatedAt: Date;
38
+ /**
39
+ * Total non-synthetic user-role messages this user has sent across all chats
40
+ * @type {number}
41
+ * @memberof AdminLastExchange
42
+ */
43
+ userMessageCount: number;
44
+ /**
45
+ * Number of distinct chats in which the user sent a message
46
+ * @type {number}
47
+ * @memberof AdminLastExchange
48
+ */
49
+ chatCount: number;
50
+ /**
51
+ * The chat containing the user's last message
52
+ * @type {AdminExchangeChat}
53
+ * @memberof AdminLastExchange
54
+ */
55
+ chat: AdminExchangeChat;
56
+ /**
57
+ * The last non-synthetic message the user sent
58
+ * @type {AdminExchangeMessage}
59
+ * @memberof AdminLastExchange
60
+ */
61
+ lastUserMessage: AdminExchangeMessage;
62
+ /**
63
+ * The first assistant message that followed the user's last message in the same chat. Null when the assistant never replied (for example the stream failed or was abandoned mid-flight).
64
+ * @type {AdminExchangeMessage}
65
+ * @memberof AdminLastExchange
66
+ */
67
+ assistantResponse: AdminExchangeMessage | null;
68
+ }
69
+ /**
70
+ * Check if a given object implements the AdminLastExchange interface.
71
+ */
72
+ export declare function instanceOfAdminLastExchange(value: object): value is AdminLastExchange;
73
+ export declare function AdminLastExchangeFromJSON(json: any): AdminLastExchange;
74
+ export declare function AdminLastExchangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminLastExchange;
75
+ export declare function AdminLastExchangeToJSON(json: any): AdminLastExchange;
76
+ export declare function AdminLastExchangeToJSONTyped(value?: AdminLastExchange | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,80 @@
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.instanceOfAdminLastExchange = instanceOfAdminLastExchange;
17
+ exports.AdminLastExchangeFromJSON = AdminLastExchangeFromJSON;
18
+ exports.AdminLastExchangeFromJSONTyped = AdminLastExchangeFromJSONTyped;
19
+ exports.AdminLastExchangeToJSON = AdminLastExchangeToJSON;
20
+ exports.AdminLastExchangeToJSONTyped = AdminLastExchangeToJSONTyped;
21
+ const AdminExchangeMessage_1 = require("./AdminExchangeMessage");
22
+ const AdminExchangeChat_1 = require("./AdminExchangeChat");
23
+ /**
24
+ * Check if a given object implements the AdminLastExchange interface.
25
+ */
26
+ function instanceOfAdminLastExchange(value) {
27
+ if (!('accountUserId' in value) || value['accountUserId'] === undefined)
28
+ return false;
29
+ if (!('userId' in value) || value['userId'] === undefined)
30
+ return false;
31
+ if (!('userCreatedAt' in value) || value['userCreatedAt'] === undefined)
32
+ return false;
33
+ if (!('userMessageCount' in value) || value['userMessageCount'] === undefined)
34
+ return false;
35
+ if (!('chatCount' in value) || value['chatCount'] === undefined)
36
+ return false;
37
+ if (!('chat' in value) || value['chat'] === undefined)
38
+ return false;
39
+ if (!('lastUserMessage' in value) || value['lastUserMessage'] === undefined)
40
+ return false;
41
+ if (!('assistantResponse' in value) || value['assistantResponse'] === undefined)
42
+ return false;
43
+ return true;
44
+ }
45
+ function AdminLastExchangeFromJSON(json) {
46
+ return AdminLastExchangeFromJSONTyped(json, false);
47
+ }
48
+ function AdminLastExchangeFromJSONTyped(json, ignoreDiscriminator) {
49
+ if (json == null) {
50
+ return json;
51
+ }
52
+ return {
53
+ 'accountUserId': json['accountUserId'],
54
+ 'userId': json['userId'],
55
+ 'userCreatedAt': (new Date(json['userCreatedAt'])),
56
+ 'userMessageCount': json['userMessageCount'],
57
+ 'chatCount': json['chatCount'],
58
+ 'chat': (0, AdminExchangeChat_1.AdminExchangeChatFromJSON)(json['chat']),
59
+ 'lastUserMessage': (0, AdminExchangeMessage_1.AdminExchangeMessageFromJSON)(json['lastUserMessage']),
60
+ 'assistantResponse': (0, AdminExchangeMessage_1.AdminExchangeMessageFromJSON)(json['assistantResponse']),
61
+ };
62
+ }
63
+ function AdminLastExchangeToJSON(json) {
64
+ return AdminLastExchangeToJSONTyped(json, false);
65
+ }
66
+ function AdminLastExchangeToJSONTyped(value, ignoreDiscriminator = false) {
67
+ if (value == null) {
68
+ return value;
69
+ }
70
+ return {
71
+ 'accountUserId': value['accountUserId'],
72
+ 'userId': value['userId'],
73
+ 'userCreatedAt': value['userCreatedAt'].toISOString(),
74
+ 'userMessageCount': value['userMessageCount'],
75
+ 'chatCount': value['chatCount'],
76
+ 'chat': (0, AdminExchangeChat_1.AdminExchangeChatToJSON)(value['chat']),
77
+ 'lastUserMessage': (0, AdminExchangeMessage_1.AdminExchangeMessageToJSON)(value['lastUserMessage']),
78
+ 'assistantResponse': (0, AdminExchangeMessage_1.AdminExchangeMessageToJSON)(value['assistantResponse']),
79
+ };
80
+ }
@@ -0,0 +1,39 @@
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
+ import type { AdminLastExchange } from './AdminLastExchange';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface AdminPaginatedLastExchanges
17
+ */
18
+ export interface AdminPaginatedLastExchanges {
19
+ /**
20
+ * One entry per matching user, ordered by most recent last message first
21
+ * @type {Array<AdminLastExchange>}
22
+ * @memberof AdminPaginatedLastExchanges
23
+ */
24
+ data: Array<AdminLastExchange>;
25
+ /**
26
+ * Opaque cursor for fetching the next page. Null when there are no more results.
27
+ * @type {string}
28
+ * @memberof AdminPaginatedLastExchanges
29
+ */
30
+ nextCursor: string | null;
31
+ }
32
+ /**
33
+ * Check if a given object implements the AdminPaginatedLastExchanges interface.
34
+ */
35
+ export declare function instanceOfAdminPaginatedLastExchanges(value: object): value is AdminPaginatedLastExchanges;
36
+ export declare function AdminPaginatedLastExchangesFromJSON(json: any): AdminPaginatedLastExchanges;
37
+ export declare function AdminPaginatedLastExchangesFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminPaginatedLastExchanges;
38
+ export declare function AdminPaginatedLastExchangesToJSON(json: any): AdminPaginatedLastExchanges;
39
+ export declare function AdminPaginatedLastExchangesToJSONTyped(value?: AdminPaginatedLastExchanges | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,55 @@
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.instanceOfAdminPaginatedLastExchanges = instanceOfAdminPaginatedLastExchanges;
17
+ exports.AdminPaginatedLastExchangesFromJSON = AdminPaginatedLastExchangesFromJSON;
18
+ exports.AdminPaginatedLastExchangesFromJSONTyped = AdminPaginatedLastExchangesFromJSONTyped;
19
+ exports.AdminPaginatedLastExchangesToJSON = AdminPaginatedLastExchangesToJSON;
20
+ exports.AdminPaginatedLastExchangesToJSONTyped = AdminPaginatedLastExchangesToJSONTyped;
21
+ const AdminLastExchange_1 = require("./AdminLastExchange");
22
+ /**
23
+ * Check if a given object implements the AdminPaginatedLastExchanges interface.
24
+ */
25
+ function instanceOfAdminPaginatedLastExchanges(value) {
26
+ if (!('data' in value) || value['data'] === undefined)
27
+ return false;
28
+ if (!('nextCursor' in value) || value['nextCursor'] === undefined)
29
+ return false;
30
+ return true;
31
+ }
32
+ function AdminPaginatedLastExchangesFromJSON(json) {
33
+ return AdminPaginatedLastExchangesFromJSONTyped(json, false);
34
+ }
35
+ function AdminPaginatedLastExchangesFromJSONTyped(json, ignoreDiscriminator) {
36
+ if (json == null) {
37
+ return json;
38
+ }
39
+ return {
40
+ 'data': (json['data'].map(AdminLastExchange_1.AdminLastExchangeFromJSON)),
41
+ 'nextCursor': json['nextCursor'],
42
+ };
43
+ }
44
+ function AdminPaginatedLastExchangesToJSON(json) {
45
+ return AdminPaginatedLastExchangesToJSONTyped(json, false);
46
+ }
47
+ function AdminPaginatedLastExchangesToJSONTyped(value, ignoreDiscriminator = false) {
48
+ if (value == null) {
49
+ return value;
50
+ }
51
+ return {
52
+ 'data': (value['data'].map(AdminLastExchange_1.AdminLastExchangeToJSON)),
53
+ 'nextCursor': value['nextCursor'],
54
+ };
55
+ }
@@ -4,8 +4,12 @@ export * from './AdminChat';
4
4
  export * from './AdminChatAnalysis';
5
5
  export * from './AdminChatWithStats';
6
6
  export * from './AdminCohortStats';
7
+ export * from './AdminExchangeChat';
8
+ export * from './AdminExchangeMessage';
9
+ export * from './AdminLastExchange';
7
10
  export * from './AdminPaginatedActiveStreaks';
8
11
  export * from './AdminPaginatedChats';
12
+ export * from './AdminPaginatedLastExchanges';
9
13
  export * from './AdminPaginatedQuizSessions';
10
14
  export * from './AdminPaginatedStudyObjectiveUserCounts';
11
15
  export * from './AdminPaginatedStudyObjectives';
@@ -22,8 +22,12 @@ __exportStar(require("./AdminChat"), exports);
22
22
  __exportStar(require("./AdminChatAnalysis"), exports);
23
23
  __exportStar(require("./AdminChatWithStats"), exports);
24
24
  __exportStar(require("./AdminCohortStats"), exports);
25
+ __exportStar(require("./AdminExchangeChat"), exports);
26
+ __exportStar(require("./AdminExchangeMessage"), exports);
27
+ __exportStar(require("./AdminLastExchange"), exports);
25
28
  __exportStar(require("./AdminPaginatedActiveStreaks"), exports);
26
29
  __exportStar(require("./AdminPaginatedChats"), exports);
30
+ __exportStar(require("./AdminPaginatedLastExchanges"), exports);
27
31
  __exportStar(require("./AdminPaginatedQuizSessions"), exports);
28
32
  __exportStar(require("./AdminPaginatedStudyObjectiveUserCounts"), exports);
29
33
  __exportStar(require("./AdminPaginatedStudyObjectives"), exports);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@instructure/athena-api-client",
3
3
  "private": false,
4
- "version": "3.30.1",
4
+ "version": "3.31.0",
5
5
  "description": "OpenAPI client for the Athena API",
6
6
  "author": "Instructure",
7
7
  "repository": {