@altnovatrail/contracts 0.8.2 → 0.8.3
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/novatrail/api/v1/account_pb.d.ts +24 -8
- package/novatrail/api/v1/account_pb.js +2 -1
- package/novatrail/api/v1/attempt_pb.d.ts +72 -2
- package/novatrail/api/v1/attempt_pb.js +13 -4
- package/novatrail/api/v1/cause_pb.d.ts +280 -12
- package/novatrail/api/v1/cause_pb.js +55 -3
- package/novatrail/api/v1/learning_pb.d.ts +754 -0
- package/novatrail/api/v1/learning_pb.js +171 -0
- package/novatrail/api/v1/module_pb.d.ts +320 -0
- package/novatrail/api/v1/module_pb.js +102 -0
- package/novatrail/api/v1/package_pb.d.ts +401 -0
- package/novatrail/api/v1/package_pb.js +133 -0
- package/novatrail/api/v1/progress_pb.d.ts +623 -0
- package/novatrail/api/v1/progress_pb.js +143 -0
- package/package.json +17 -1
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
|
|
13
13
|
import type { Message } from "@bufbuild/protobuf";
|
|
14
|
+
import type { LessonRunRef, OpenAttemptRef } from "./learning_pb.js";
|
|
14
15
|
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
15
16
|
import type { OwnKey } from "./attempt_pb.js";
|
|
16
17
|
import type { Outcome } from "./cause_pb.js";
|
|
@@ -147,9 +148,9 @@ export declare type Account = Message<"novatrail.api.v1.Account"> & {
|
|
|
147
148
|
export declare const AccountSchema: GenMessage<Account>;
|
|
148
149
|
|
|
149
150
|
/**
|
|
150
|
-
* A profile, a learner in the account (concepts 13), as `api` keeps it
|
|
151
|
-
* and its last activity stay in `api`; its
|
|
152
|
-
* task a look by interests (concepts 13; R51).
|
|
151
|
+
* A profile, a learner in the account (concepts 13), as `api` keeps it, with its open attempt and
|
|
152
|
+
* its open lesson runs. Its date of the age given and its last activity stay in `api`; its
|
|
153
|
+
* interests come only once the module format gives a task a look by interests (concepts 13; R51).
|
|
153
154
|
*
|
|
154
155
|
* @generated from message novatrail.api.v1.Profile
|
|
155
156
|
*/
|
|
@@ -235,6 +236,20 @@ export declare type Profile = Message<"novatrail.api.v1.Profile"> & {
|
|
|
235
236
|
* @generated from field: bool ask_before_showing = 11;
|
|
236
237
|
*/
|
|
237
238
|
askBeforeShowing: boolean;
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* The profile's open attempt: absent when it has none. A profile has one open attempt at most.
|
|
242
|
+
*
|
|
243
|
+
* @generated from field: novatrail.api.v1.OpenAttemptRef open_attempt = 12;
|
|
244
|
+
*/
|
|
245
|
+
openAttempt?: OpenAttemptRef | undefined;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* The profile's open lesson runs, one at most for each lesson.
|
|
249
|
+
*
|
|
250
|
+
* @generated from field: repeated novatrail.api.v1.LessonRunRef open_lesson_runs = 13;
|
|
251
|
+
*/
|
|
252
|
+
openLessonRuns: LessonRunRef[];
|
|
238
253
|
};
|
|
239
254
|
|
|
240
255
|
/**
|
|
@@ -1322,11 +1337,12 @@ export declare const OwnKeyCheckSchema: GenEnum<OwnKeyCheck>;
|
|
|
1322
1337
|
*/
|
|
1323
1338
|
export declare const AccountService: GenService<{
|
|
1324
1339
|
/**
|
|
1325
|
-
* The account and its profiles, each with its fields,
|
|
1326
|
-
* `app` reads it when it starts and after signing in,
|
|
1327
|
-
* that the list does not hold: only by an answer that
|
|
1328
|
-
* the device names; a failure of the network erases
|
|
1329
|
-
*
|
|
1340
|
+
* The account and its profiles, each with its fields, its open attempt and its open lesson runs,
|
|
1341
|
+
* and the consents that have no profile yet. `app` reads it when it starts and after signing in,
|
|
1342
|
+
* and erases the databases of the profiles that the list does not hold: only by an answer that
|
|
1343
|
+
* came, and for the account the registry of the device names; a failure of the network erases
|
|
1344
|
+
* nothing. By the open attempt and runs a device that keeps no state of them finds them. A user
|
|
1345
|
+
* with no account gets `CAUSE_NO_ACCESS`, and `app` asks for an invite code.
|
|
1330
1346
|
*
|
|
1331
1347
|
* @generated from rpc novatrail.api.v1.AccountService.GetAccount
|
|
1332
1348
|
*/
|
|
@@ -13,12 +13,13 @@ import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/
|
|
|
13
13
|
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
14
14
|
import { file_novatrail_api_v1_attempt } from "./attempt_pb.js";
|
|
15
15
|
import { file_novatrail_api_v1_cause } from "./cause_pb.js";
|
|
16
|
+
import { file_novatrail_api_v1_learning } from "./learning_pb.js";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Describes the file novatrail/api/v1/account.proto.
|
|
19
20
|
*/
|
|
20
21
|
export const file_novatrail_api_v1_account = /*@__PURE__*/
|
|
21
|
-
fileDesc("
|
|
22
|
+
fileDesc("Ch5ub3ZhdHJhaWwvYXBpL3YxL2FjY291bnQucHJvdG8SEG5vdmF0cmFpbC5hcGkudjEiEwoRR2V0QWNjb3VudFJlcXVlc3QiQAoSR2V0QWNjb3VudFJlc3BvbnNlEioKB2FjY291bnQYASABKAsyGS5ub3ZhdHJhaWwuYXBpLnYxLkFjY291bnQiQQoUQ3JlYXRlQWNjb3VudFJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkSFAoMYWR1bHRfc3RhdGVkGAIgASgIIkMKFUNyZWF0ZUFjY291bnRSZXNwb25zZRIqCgdhY2NvdW50GAEgASgLMhkubm92YXRyYWlsLmFwaS52MS5BY2NvdW50IpMBCgdBY2NvdW50EhIKCmFjY291bnRfaWQYASABKAkSDwoHcGluX3NldBgCIAEoCBIrCghwcm9maWxlcxgDIAMoCzIZLm5vdmF0cmFpbC5hcGkudjEuUHJvZmlsZRI2Cg5jaGlsZF9jb25zZW50cxgEIAMoCzIeLm5vdmF0cmFpbC5hcGkudjEuQ2hpbGRDb25zZW50IskDCgdQcm9maWxlEhIKCnByb2ZpbGVfaWQYASABKAkSDQoFb3duZXIYAiABKAgSEQoJcHNldWRvbnltGAMgASgJEg4KBmF2YXRhchgEIAEoCRIUCgxhZ2VfY2F0ZWdvcnkYBSABKAkSDwoHY291bnRyeRgGIAEoCRI/ChJwcmVzZW50YXRpb25fc3R5bGUYByABKAsyIy5ub3ZhdHJhaWwuYXBpLnYxLlByZXNlbnRhdGlvblN0eWxlEiwKDGRlZmF1bHRfbW9kZRgIIAEoDjIWLm5vdmF0cmFpbC5hcGkudjEuTW9kZRIfChJpbnRlcmZhY2VfbGFuZ3VhZ2UYCSABKAlIAIgBARISCgVncmFkZRgKIAEoBUgBiAEBEhoKEmFza19iZWZvcmVfc2hvd2luZxgLIAEoCBI2CgxvcGVuX2F0dGVtcHQYDCABKAsyIC5ub3ZhdHJhaWwuYXBpLnYxLk9wZW5BdHRlbXB0UmVmEjgKEG9wZW5fbGVzc29uX3J1bnMYDSADKAsyHi5ub3ZhdHJhaWwuYXBpLnYxLkxlc3NvblJ1blJlZkIVChNfaW50ZXJmYWNlX2xhbmd1YWdlQggKBl9ncmFkZSI/ChFQcmVzZW50YXRpb25TdHlsZRIqCgd2b2ljaW5nGAEgASgLMhkubm92YXRyYWlsLmFwaS52MS5Wb2ljaW5nIloKB1ZvaWNpbmcSFAoHZW5hYmxlZBgBIAEoCEgAiAEBEi0KBXNwZWVkGAIgASgOMh4ubm92YXRyYWlsLmFwaS52MS5Wb2ljaW5nU3BlZWRCCgoIX2VuYWJsZWQivwIKD1Byb2ZpbGVTZXR0aW5ncxIWCglwc2V1ZG9ueW0YASABKAlIAIgBARITCgZhdmF0YXIYAiABKAlIAYgBARIqCgd2b2ljaW5nGAMgASgLMhkubm92YXRyYWlsLmFwaS52MS5Wb2ljaW5nEiwKDGRlZmF1bHRfbW9kZRgEIAEoDjIWLm5vdmF0cmFpbC5hcGkudjEuTW9kZRIfChJpbnRlcmZhY2VfbGFuZ3VhZ2UYBSABKAlIAogBARISCgVncmFkZRgGIAEoBUgDiAEBEh8KEmFza19iZWZvcmVfc2hvd2luZxgHIAEoCEgEiAEBQgwKCl9wc2V1ZG9ueW1CCQoHX2F2YXRhckIVChNfaW50ZXJmYWNlX2xhbmd1YWdlQggKBl9ncmFkZUIVChNfYXNrX2JlZm9yZV9zaG93aW5nIngKDENoaWxkQ29uc2VudBISCgpjb25zZW50X2lkGAEgASgJEhQKDGFnZV9jYXRlZ29yeRgCIAEoCRIPCgdjb3VudHJ5GAMgASgJEi0KBXN0YXRlGAQgASgOMh4ubm92YXRyYWlsLmFwaS52MS5Db25zZW50U3RhdGUiNQoNU2V0UGluUmVxdWVzdBILCgNwaW4YASABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJIhAKDlNldFBpblJlc3BvbnNlIjgKEFZlcmlmeVBpblJlcXVlc3QSCwoDcGluGAEgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgCIAEoCSI+ChFWZXJpZnlQaW5SZXNwb25zZRIpCgVjaGVjaxgBIAEoCzIaLm5vdmF0cmFpbC5hcGkudjEuUGluQ2hlY2siSQoQQ2hhbmdlUGluUmVxdWVzdBILCgNwaW4YASABKAkSDwoHbmV3X3BpbhgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkiPgoRQ2hhbmdlUGluUmVzcG9uc2USKQoFY2hlY2sYASABKAsyGi5ub3ZhdHJhaWwuYXBpLnYxLlBpbkNoZWNrImQKCFBpbkNoZWNrEg8KB21hdGNoZXMYASABKAgSFQoNYXR0ZW1wdHNfbGVmdBgCIAEoBRIwCgxsb2NrZWRfdW50aWwYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjsKD1Jlc2V0UGluUmVxdWVzdBIPCgduZXdfcGluGAEgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgCIAEoCSISChBSZXNldFBpblJlc3BvbnNlImEKGUNyZWF0ZU93bmVyUHJvZmlsZVJlcXVlc3QSDwoHY291bnRyeRgBIAEoCRIzCghzZXR0aW5ncxgCIAEoCzIhLm5vdmF0cmFpbC5hcGkudjEuUHJvZmlsZVNldHRpbmdzIkgKGkNyZWF0ZU93bmVyUHJvZmlsZVJlc3BvbnNlEioKB3Byb2ZpbGUYASABKAsyGS5ub3ZhdHJhaWwuYXBpLnYxLlByb2ZpbGUibAoaUmVxdWVzdENoaWxkQ29uc2VudFJlcXVlc3QSFwoPaWRlbXBvdGVuY3lfa2V5GAEgASgJEhYKCWFnZV95ZWFycxgCIAEoBUgAiAEBEg8KB2NvdW50cnkYAyABKAlCDAoKX2FnZV95ZWFycyJOChtSZXF1ZXN0Q2hpbGRDb25zZW50UmVzcG9uc2USLwoHY29uc2VudBgBIAEoCzIeLm5vdmF0cmFpbC5hcGkudjEuQ2hpbGRDb25zZW50ImQKGUNyZWF0ZUNoaWxkUHJvZmlsZVJlcXVlc3QSEgoKY29uc2VudF9pZBgBIAEoCRIzCghzZXR0aW5ncxgCIAEoCzIhLm5vdmF0cmFpbC5hcGkudjEuUHJvZmlsZVNldHRpbmdzIkgKGkNyZWF0ZUNoaWxkUHJvZmlsZVJlc3BvbnNlEioKB3Byb2ZpbGUYASABKAsyGS5ub3ZhdHJhaWwuYXBpLnYxLlByb2ZpbGUiXwoUVXBkYXRlUHJvZmlsZVJlcXVlc3QSEgoKcHJvZmlsZV9pZBgBIAEoCRIzCghzZXR0aW5ncxgCIAEoCzIhLm5vdmF0cmFpbC5hcGkudjEuUHJvZmlsZVNldHRpbmdzIkMKFVVwZGF0ZVByb2ZpbGVSZXNwb25zZRIqCgdwcm9maWxlGAEgASgLMhkubm92YXRyYWlsLmFwaS52MS5Qcm9maWxlIlMKEVNldFZvaWNpbmdSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkSKgoHdm9pY2luZxgCIAEoCzIZLm5vdmF0cmFpbC5hcGkudjEuVm9pY2luZyJAChJTZXRWb2ljaW5nUmVzcG9uc2USKgoHcHJvZmlsZRgBIAEoCzIZLm5vdmF0cmFpbC5hcGkudjEuUHJvZmlsZSIqChREZWxldGVQcm9maWxlUmVxdWVzdBISCgpwcm9maWxlX2lkGAEgASgJIhcKFURlbGV0ZVByb2ZpbGVSZXNwb25zZSIWChREZWxldGVBY2NvdW50UmVxdWVzdCIXChVEZWxldGVBY2NvdW50UmVzcG9uc2UiKgoURXhwb3J0UHJvZmlsZVJlcXVlc3QSEgoKcHJvZmlsZV9pZBgBIAEoCSJEChVFeHBvcnRQcm9maWxlUmVzcG9uc2USDAoEcGFydBgBIAEoDBIdChVleHBvcnRfZm9ybWF0X3ZlcnNpb24YAiABKAkiFgoURXhwb3J0QWNjb3VudFJlcXVlc3QiRAoVRXhwb3J0QWNjb3VudFJlc3BvbnNlEgwKBHBhcnQYASABKAwSHQoVZXhwb3J0X2Zvcm1hdF92ZXJzaW9uGAIgASgJIlMKEkNoZWNrT3duS2V5UmVxdWVzdBISCgpwcm9maWxlX2lkGAEgASgJEikKB293bl9rZXkYAiABKAsyGC5ub3ZhdHJhaWwuYXBpLnYxLk93bktleSJvChNDaGVja093bktleVJlc3BvbnNlEiwKBWNoZWNrGAEgASgOMh0ubm92YXRyYWlsLmFwaS52MS5Pd25LZXlDaGVjaxIqCgdvdXRjb21lGAIgASgLMhkubm92YXRyYWlsLmFwaS52MS5PdXRjb21lIjAKGkxpc3RPd25LZXlQcm92aWRlcnNSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkiUgobTGlzdE93bktleVByb3ZpZGVyc1Jlc3BvbnNlEjMKCXByb3ZpZGVycxgBIAMoCzIgLm5vdmF0cmFpbC5hcGkudjEuT3duS2V5UHJvdmlkZXIiMAoOT3duS2V5UHJvdmlkZXISEAoIcHJvdmlkZXIYASABKAkSDAoEbmFtZRgCIAEoCSpfCgxWb2ljaW5nU3BlZWQSHQoZVk9JQ0lOR19TUEVFRF9VTlNQRUNJRklFRBAAEhgKFFZPSUNJTkdfU1BFRURfTk9STUFMEAESFgoSVk9JQ0lOR19TUEVFRF9TTE9XEAIqPgoETW9kZRIUChBNT0RFX1VOU1BFQ0lGSUVEEAASEQoNTU9ERV9CWV9TVEVQUxABEg0KCU1PREVfU0VMRhACKmUKDENvbnNlbnRTdGF0ZRIdChlDT05TRU5UX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVQ09OU0VOVF9TVEFURV9XQUlUSU5HEAESGwoXQ09OU0VOVF9TVEFURV9DT05GSVJNRUQQAiqnAQoLT3duS2V5Q2hlY2sSHQoZT1dOX0tFWV9DSEVDS19VTlNQRUNJRklFRBAAEhoKFk9XTl9LRVlfQ0hFQ0tfQUNDRVBURUQQARIZChVPV05fS0VZX0NIRUNLX0lOVkFMSUQQAhIfChtPV05fS0VZX0NIRUNLX05PX1BFUk1JU1NJT04QAxIhCh1PV05fS0VZX0NIRUNLX1BST1ZJREVSX0NMT1NFRBAEMoANCg5BY2NvdW50U2VydmljZRJXCgpHZXRBY2NvdW50EiMubm92YXRyYWlsLmFwaS52MS5HZXRBY2NvdW50UmVxdWVzdBokLm5vdmF0cmFpbC5hcGkudjEuR2V0QWNjb3VudFJlc3BvbnNlEmAKDUNyZWF0ZUFjY291bnQSJi5ub3ZhdHJhaWwuYXBpLnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0Gicubm92YXRyYWlsLmFwaS52MS5DcmVhdGVBY2NvdW50UmVzcG9uc2USSwoGU2V0UGluEh8ubm92YXRyYWlsLmFwaS52MS5TZXRQaW5SZXF1ZXN0GiAubm92YXRyYWlsLmFwaS52MS5TZXRQaW5SZXNwb25zZRJUCglWZXJpZnlQaW4SIi5ub3ZhdHJhaWwuYXBpLnYxLlZlcmlmeVBpblJlcXVlc3QaIy5ub3ZhdHJhaWwuYXBpLnYxLlZlcmlmeVBpblJlc3BvbnNlElQKCUNoYW5nZVBpbhIiLm5vdmF0cmFpbC5hcGkudjEuQ2hhbmdlUGluUmVxdWVzdBojLm5vdmF0cmFpbC5hcGkudjEuQ2hhbmdlUGluUmVzcG9uc2USUQoIUmVzZXRQaW4SIS5ub3ZhdHJhaWwuYXBpLnYxLlJlc2V0UGluUmVxdWVzdBoiLm5vdmF0cmFpbC5hcGkudjEuUmVzZXRQaW5SZXNwb25zZRJvChJDcmVhdGVPd25lclByb2ZpbGUSKy5ub3ZhdHJhaWwuYXBpLnYxLkNyZWF0ZU93bmVyUHJvZmlsZVJlcXVlc3QaLC5ub3ZhdHJhaWwuYXBpLnYxLkNyZWF0ZU93bmVyUHJvZmlsZVJlc3BvbnNlEnIKE1JlcXVlc3RDaGlsZENvbnNlbnQSLC5ub3ZhdHJhaWwuYXBpLnYxLlJlcXVlc3RDaGlsZENvbnNlbnRSZXF1ZXN0Gi0ubm92YXRyYWlsLmFwaS52MS5SZXF1ZXN0Q2hpbGRDb25zZW50UmVzcG9uc2USbwoSQ3JlYXRlQ2hpbGRQcm9maWxlEisubm92YXRyYWlsLmFwaS52MS5DcmVhdGVDaGlsZFByb2ZpbGVSZXF1ZXN0Giwubm92YXRyYWlsLmFwaS52MS5DcmVhdGVDaGlsZFByb2ZpbGVSZXNwb25zZRJgCg1VcGRhdGVQcm9maWxlEiYubm92YXRyYWlsLmFwaS52MS5VcGRhdGVQcm9maWxlUmVxdWVzdBonLm5vdmF0cmFpbC5hcGkudjEuVXBkYXRlUHJvZmlsZVJlc3BvbnNlElcKClNldFZvaWNpbmcSIy5ub3ZhdHJhaWwuYXBpLnYxLlNldFZvaWNpbmdSZXF1ZXN0GiQubm92YXRyYWlsLmFwaS52MS5TZXRWb2ljaW5nUmVzcG9uc2USYAoNRGVsZXRlUHJvZmlsZRImLm5vdmF0cmFpbC5hcGkudjEuRGVsZXRlUHJvZmlsZVJlcXVlc3QaJy5ub3ZhdHJhaWwuYXBpLnYxLkRlbGV0ZVByb2ZpbGVSZXNwb25zZRJgCg1EZWxldGVBY2NvdW50EiYubm92YXRyYWlsLmFwaS52MS5EZWxldGVBY2NvdW50UmVxdWVzdBonLm5vdmF0cmFpbC5hcGkudjEuRGVsZXRlQWNjb3VudFJlc3BvbnNlEmAKDUV4cG9ydFByb2ZpbGUSJi5ub3ZhdHJhaWwuYXBpLnYxLkV4cG9ydFByb2ZpbGVSZXF1ZXN0Gicubm92YXRyYWlsLmFwaS52MS5FeHBvcnRQcm9maWxlUmVzcG9uc2USYAoNRXhwb3J0QWNjb3VudBImLm5vdmF0cmFpbC5hcGkudjEuRXhwb3J0QWNjb3VudFJlcXVlc3QaJy5ub3ZhdHJhaWwuYXBpLnYxLkV4cG9ydEFjY291bnRSZXNwb25zZRJaCgtDaGVja093bktleRIkLm5vdmF0cmFpbC5hcGkudjEuQ2hlY2tPd25LZXlSZXF1ZXN0GiUubm92YXRyYWlsLmFwaS52MS5DaGVja093bktleVJlc3BvbnNlEnIKE0xpc3RPd25LZXlQcm92aWRlcnMSLC5ub3ZhdHJhaWwuYXBpLnYxLkxpc3RPd25LZXlQcm92aWRlcnNSZXF1ZXN0Gi0ubm92YXRyYWlsLmFwaS52MS5MaXN0T3duS2V5UHJvdmlkZXJzUmVzcG9uc2VCxQEKFGNvbS5ub3ZhdHJhaWwuYXBpLnYxQgxBY2NvdW50UHJvdG9QAVo9Z2l0aHViLmNvbS9hbHRub3ZhdHJhaWwvc3BlYy9jb250cmFjdHMvbm92YXRyYWlsL2FwaS92MTthcGl2MaICA05BWKoCEE5vdmF0cmFpbC5BcGkuVjHKAhBOb3ZhdHJhaWxcQXBpXFYx4gIcTm92YXRyYWlsXEFwaVxWMVxHUEJNZXRhZGF0YeoCEk5vdmF0cmFpbDo6QXBpOjpWMWIGcHJvdG8z", [file_google_protobuf_timestamp, file_novatrail_api_v1_attempt, file_novatrail_api_v1_cause, file_novatrail_api_v1_learning]);
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Describes the message novatrail.api.v1.GetAccountRequest.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
|
|
11
11
|
import type { Message } from "@bufbuild/protobuf";
|
|
12
|
-
import type { CloseReason, Outcome } from "./cause_pb.js";
|
|
12
|
+
import type { CloseReason, EngineChoice, Outcome } from "./cause_pb.js";
|
|
13
13
|
import type { AnswerSlotPlace, CropBox } from "../../observation/v1/observation_pb.js";
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -117,6 +117,13 @@ export declare type SubmitWorkResponse = Message<"novatrail.api.v1.SubmitWorkRes
|
|
|
117
117
|
* @generated from field: novatrail.api.v1.SolvedTask solved = 4;
|
|
118
118
|
*/
|
|
119
119
|
solved?: SolvedTask | undefined;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* What comes next, beside `solved`.
|
|
123
|
+
*
|
|
124
|
+
* @generated from field: novatrail.api.v1.Next next = 5;
|
|
125
|
+
*/
|
|
126
|
+
next?: Next | undefined;
|
|
120
127
|
};
|
|
121
128
|
|
|
122
129
|
/**
|
|
@@ -288,6 +295,13 @@ export declare type DoneResponse = Message<"novatrail.api.v1.DoneResponse"> & {
|
|
|
288
295
|
* @generated from field: novatrail.api.v1.SolvedTask solved = 1;
|
|
289
296
|
*/
|
|
290
297
|
solved?: SolvedTask | undefined;
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* What comes next.
|
|
301
|
+
*
|
|
302
|
+
* @generated from field: novatrail.api.v1.Next next = 2;
|
|
303
|
+
*/
|
|
304
|
+
next?: Next | undefined;
|
|
291
305
|
};
|
|
292
306
|
|
|
293
307
|
/**
|
|
@@ -808,6 +822,13 @@ export declare type ShowSolutionResponse = Message<"novatrail.api.v1.ShowSolutio
|
|
|
808
822
|
* @generated from field: novatrail.api.v1.SolvedTask solved = 1;
|
|
809
823
|
*/
|
|
810
824
|
solved?: SolvedTask | undefined;
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* What comes next.
|
|
828
|
+
*
|
|
829
|
+
* @generated from field: novatrail.api.v1.Next next = 2;
|
|
830
|
+
*/
|
|
831
|
+
next?: Next | undefined;
|
|
811
832
|
};
|
|
812
833
|
|
|
813
834
|
/**
|
|
@@ -1093,6 +1114,53 @@ export declare type SolvedTask = Message<"novatrail.api.v1.SolvedTask"> & {
|
|
|
1093
1114
|
*/
|
|
1094
1115
|
export declare const SolvedTaskSchema: GenMessage<SolvedTask>;
|
|
1095
1116
|
|
|
1117
|
+
/**
|
|
1118
|
+
* What comes next once an attempt is closed by a correct answer, by the solution shown or by "Done".
|
|
1119
|
+
* A repeat gets the same: of `SubmitWork` and `ShowSolution` with the same idempotency key, and of
|
|
1120
|
+
* `Done` by the state of the attempt.
|
|
1121
|
+
*
|
|
1122
|
+
* @generated from message novatrail.api.v1.Next
|
|
1123
|
+
*/
|
|
1124
|
+
export declare type Next = Message<"novatrail.api.v1.Next"> & {
|
|
1125
|
+
/**
|
|
1126
|
+
* In a lesson, the segment that comes next; outside a lesson, the engine's choice.
|
|
1127
|
+
*
|
|
1128
|
+
* @generated from oneof novatrail.api.v1.Next.next
|
|
1129
|
+
*/
|
|
1130
|
+
next: {
|
|
1131
|
+
/**
|
|
1132
|
+
* In a lesson: the place of the next segment, from 1.
|
|
1133
|
+
*
|
|
1134
|
+
* @generated from field: int32 segment = 1;
|
|
1135
|
+
*/
|
|
1136
|
+
value: number;
|
|
1137
|
+
case: "segment";
|
|
1138
|
+
} | {
|
|
1139
|
+
/**
|
|
1140
|
+
* In a lesson: no segment is left after the one that ended. The lesson run stays open until
|
|
1141
|
+
* "lesson done", `CompleteLesson`, which `app` sends when the learner presses "Continue".
|
|
1142
|
+
*
|
|
1143
|
+
* @generated from field: bool segments_ended = 2;
|
|
1144
|
+
*/
|
|
1145
|
+
value: boolean;
|
|
1146
|
+
case: "segmentsEnded";
|
|
1147
|
+
} | {
|
|
1148
|
+
/**
|
|
1149
|
+
* Outside a lesson: the engine's choice.
|
|
1150
|
+
*
|
|
1151
|
+
* @generated from field: novatrail.api.v1.EngineChoice choice = 3;
|
|
1152
|
+
*/
|
|
1153
|
+
value: EngineChoice;
|
|
1154
|
+
case: "choice";
|
|
1155
|
+
} | { case: undefined; value?: undefined };
|
|
1156
|
+
};
|
|
1157
|
+
|
|
1158
|
+
/**
|
|
1159
|
+
* Describes the message novatrail.api.v1.Next.
|
|
1160
|
+
* Use `create(NextSchema)` to create a new message.
|
|
1161
|
+
*/
|
|
1162
|
+
export declare const NextSchema: GenMessage<Next>;
|
|
1163
|
+
|
|
1096
1164
|
/**
|
|
1097
1165
|
* The key of an answer slot.
|
|
1098
1166
|
*
|
|
@@ -1272,7 +1340,9 @@ export declare const MarkKindSchema: GenEnum<MarkKind>;
|
|
|
1272
1340
|
* take — gets the code `invalid_argument` with no `Refusal`. Every method carries the token of the
|
|
1273
1341
|
* sign-in service and may get the refusals of every request with a token, which the comment of
|
|
1274
1342
|
* `AccountService` names with what `app` does on each; a request of a profile whose consent is not
|
|
1275
|
-
* confirmed gets `CAUSE_NO_CONSENT`.
|
|
1343
|
+
* confirmed gets `CAUSE_NO_CONSENT`. An answer that closes the attempt by a correct answer, by the
|
|
1344
|
+
* solution shown or by "Done" says what comes next, `next`: an attempt begins by
|
|
1345
|
+
* `LearningService`.
|
|
1276
1346
|
*
|
|
1277
1347
|
* @generated from service novatrail.api.v1.AttemptService
|
|
1278
1348
|
*/
|
|
@@ -15,7 +15,7 @@ import { file_novatrail_observation_v1_observation } from "../../observation/v1/
|
|
|
15
15
|
* Describes the file novatrail/api/v1/attempt.proto.
|
|
16
16
|
*/
|
|
17
17
|
export const file_novatrail_api_v1_attempt = /*@__PURE__*/
|
|
18
|
-
fileDesc("
|
|
18
|
+
fileDesc("Ch5ub3ZhdHJhaWwvYXBpL3YxL2F0dGVtcHQucHJvdG8SEG5vdmF0cmFpbC5hcGkudjEimQIKEVN1Ym1pdFdvcmtSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkSEgoKYXR0ZW1wdF9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSJAoEd29yaxgEIAEoCzIWLm5vdmF0cmFpbC5hcGkudjEuV29yaxI2Cg50YXBwZWRfY2hvaWNlcxgFIAMoCzIeLm5vdmF0cmFpbC5hcGkudjEuVGFwcGVkQ2hvaWNlEikKB293bl9rZXkYBiABKAsyGC5ub3ZhdHJhaWwuYXBpLnYxLk93bktleRIhChRjbG9ja19vZmZzZXRfbWludXRlcxgHIAEoBUgAiAEBQhcKFV9jbG9ja19vZmZzZXRfbWludXRlcyLZAQoSU3VibWl0V29ya1Jlc3BvbnNlEiwKBWl0ZW1zGAEgAygLMh0ubm92YXRyYWlsLmFwaS52MS5JdGVtVmVyZGljdBIqCgdvdXRjb21lGAIgASgLMhkubm92YXRyYWlsLmFwaS52MS5PdXRjb21lEhUKDXdyb25nX2Fuc3dlcnMYAyABKAUSLAoGc29sdmVkGAQgASgLMhwubm92YXRyYWlsLmFwaS52MS5Tb2x2ZWRUYXNrEiQKBG5leHQYBSABKAsyFi5ub3ZhdHJhaWwuYXBpLnYxLk5leHQiygEKElN1Ym1pdEVzc2F5UmVxdWVzdBISCgpwcm9maWxlX2lkGAEgASgJEhIKCmF0dGVtcHRfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEgwKBGNyb3AYBCABKAwSKQoHb3duX2tleRgFIAEoCzIYLm5vdmF0cmFpbC5hcGkudjEuT3duS2V5EiEKFGNsb2NrX29mZnNldF9taW51dGVzGAYgASgFSACIAQFCFwoVX2Nsb2NrX29mZnNldF9taW51dGVzIoACChNTdWJtaXRFc3NheVJlc3BvbnNlEiwKA2VuZBgBIAEoDjIfLm5vdmF0cmFpbC5hcGkudjEuU3VibWlzc2lvbkVuZBIRCgR0ZXh0GAIgASgJSACIAQESDgoGcmVhc29uGAMgASgJEhUKCGZlZWRiYWNrGAQgASgJSAGIAQESKgoHb3V0Y29tZRgFIAEoCzIZLm5vdmF0cmFpbC5hcGkudjEuT3V0Y29tZRItCgZjbG9zZWQYBiABKA4yHS5ub3ZhdHJhaWwuYXBpLnYxLkNsb3NlUmVhc29uEhAKCHJlcGVhdGVkGAcgASgIQgcKBV90ZXh0QgsKCV9mZWVkYmFjayI1CgtEb25lUmVxdWVzdBISCgpwcm9maWxlX2lkGAEgASgJEhIKCmF0dGVtcHRfaWQYAiABKAkiYgoMRG9uZVJlc3BvbnNlEiwKBnNvbHZlZBgBIAEoCzIcLm5vdmF0cmFpbC5hcGkudjEuU29sdmVkVGFzaxIkCgRuZXh0GAIgASgLMhYubm92YXRyYWlsLmFwaS52MS5OZXh0IpECChNHZXRSdW5nV29yZHNSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkSEgoKYXR0ZW1wdF9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSGgoNd3JvbmdfYW5zd2VycxgEIAEoBUgAiAEBEiQKBHdvcmsYBSABKAsyFi5ub3ZhdHJhaWwuYXBpLnYxLldvcmsSKQoHb3duX2tleRgGIAEoCzIYLm5vdmF0cmFpbC5hcGkudjEuT3duS2V5EiEKFGNsb2NrX29mZnNldF9taW51dGVzGAcgASgFSAGIAQFCEAoOX3dyb25nX2Fuc3dlcnNCFwoVX2Nsb2NrX29mZnNldF9taW51dGVzIpgBChRHZXRSdW5nV29yZHNSZXNwb25zZRIMCgRydW5nGAEgASgFEg0KBXdvcmRzGAIgASgJEiUKBW1hcmtzGAMgAygLMhYubm92YXRyYWlsLmFwaS52MS5NYXJrEioKB291dGNvbWUYBCABKAsyGS5ub3ZhdHJhaWwuYXBpLnYxLk91dGNvbWUSEAoIcmVwZWF0ZWQYBSABKAgi7AEKHEdldENvcnJlY3RBbnN3ZXJXb3Jkc1JlcXVlc3QSEgoKcHJvZmlsZV9pZBgBIAEoCRISCgphdHRlbXB0X2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIkCgR3b3JrGAQgASgLMhYubm92YXRyYWlsLmFwaS52MS5Xb3JrEikKB293bl9rZXkYBSABKAsyGC5ub3ZhdHJhaWwuYXBpLnYxLk93bktleRIhChRjbG9ja19vZmZzZXRfbWludXRlcxgGIAEoBUgAiAEBQhcKFV9jbG9ja19vZmZzZXRfbWludXRlcyJ7Ch1HZXRDb3JyZWN0QW5zd2VyV29yZHNSZXNwb25zZRISCgV3b3JkcxgBIAEoCUgAiAEBEioKB291dGNvbWUYAiABKAsyGS5ub3ZhdHJhaWwuYXBpLnYxLk91dGNvbWUSEAoIcmVwZWF0ZWQYAyABKAhCCAoGX3dvcmRzIvEBChlFeHBsYWluRGlmZmVyZW50bHlSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkSEgoKYXR0ZW1wdF9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSKQoHb3duX2tleRgEIAEoCzIYLm5vdmF0cmFpbC5hcGkudjEuT3duS2V5EiEKFGNsb2NrX29mZnNldF9taW51dGVzGAUgASgFSACIAQESGgoNd3JvbmdfYW5zd2VycxgGIAEoBUgBiAEBQhcKFV9jbG9ja19vZmZzZXRfbWludXRlc0IQCg5fd3JvbmdfYW5zd2VycyJXChpFeHBsYWluRGlmZmVyZW50bHlSZXNwb25zZRINCgV3b3JkcxgBIAEoCRIqCgdvdXRjb21lGAIgASgLMhkubm92YXRyYWlsLmFwaS52MS5PdXRjb21lIjgKDkdldEhpbnRSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkSEgoKYXR0ZW1wdF9pZBgCIAEoCSJ5Cg9HZXRIaW50UmVzcG9uc2USMgoKdGVjaG5pcXVlcxgBIAEoCzIcLm5vdmF0cmFpbC5hcGkudjEuVGVjaG5pcXVlc0gAEioKBHJ1bmcYAiABKAsyGi5ub3ZhdHJhaWwuYXBpLnYxLlJ1bmdIaW50SABCBgoEaGludCIjCgpUZWNobmlxdWVzEhUKDXRlY2huaXF1ZV9pZHMYASADKAkiJwoIUnVuZ0hpbnQSDAoEcnVuZxgBIAEoBRINCgV3b3JkcxgCIAEoCSJIChBCZWdpblN0ZXBSZXF1ZXN0EhIKCnByb2ZpbGVfaWQYASABKAkSEgoKYXR0ZW1wdF9pZBgCIAEoCRIMCgRzdGVwGAMgASgFIkUKEUJlZ2luU3RlcFJlc3BvbnNlEjAKCnRlY2huaXF1ZXMYASABKAsyHC5ub3ZhdHJhaWwuYXBpLnYxLlRlY2huaXF1ZXMigAEKE1Nob3dTb2x1dGlvblJlcXVlc3QSEgoKcHJvZmlsZV9pZBgBIAEoCRISCgphdHRlbXB0X2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIoCgZhY3Rpb24YBCABKA4yGC5ub3ZhdHJhaWwuYXBpLnYxLkFjdGlvbiJqChRTaG93U29sdXRpb25SZXNwb25zZRIsCgZzb2x2ZWQYASABKAsyHC5ub3ZhdHJhaWwuYXBpLnYxLlNvbHZlZFRhc2sSJAoEbmV4dBgCIAEoCzIWLm5vdmF0cmFpbC5hcGkudjEuTmV4dCJzCgRXb3JrEiwKBXNoZWV0GAEgASgLMhsubm92YXRyYWlsLmFwaS52MS5TaGVldFdvcmtIABIyCgh3b3JrYm9vaxgCIAEoCzIeLm5vdmF0cmFpbC5hcGkudjEuV29ya2Jvb2tXb3JrSABCCQoHc3VyZmFjZSIZCglTaGVldFdvcmsSDAoEY3JvcBgBIAEoDCI4CgxXb3JrYm9va1dvcmsSKAoFYm94ZXMYASADKAsyGS5ub3ZhdHJhaWwuYXBpLnYxLkJveENyb3AiVwoHQm94Q3JvcBI+CgthbnN3ZXJfc2xvdBgBIAEoCzIpLm5vdmF0cmFpbC5vYnNlcnZhdGlvbi52MS5BbnN3ZXJTbG90UGxhY2USDAoEY3JvcBgCIAEoDCJdCgxUYXBwZWRDaG9pY2USPgoLYW5zd2VyX3Nsb3QYASABKAsyKS5ub3ZhdHJhaWwub2JzZXJ2YXRpb24udjEuQW5zd2VyU2xvdFBsYWNlEg0KBXZhbHVlGAIgASgJIicKBk93bktleRIQCghwcm92aWRlchgBIAEoCRILCgNrZXkYAiABKAkiWQoLSXRlbVZlcmRpY3QSDwoHdmVyZGljdBgBIAEoCRI5CgxhbnN3ZXJfc2xvdHMYAiADKAsyIy5ub3ZhdHJhaWwuYXBpLnYxLkFuc3dlclNsb3RWZXJkaWN0IpIBChFBbnN3ZXJTbG90VmVyZGljdBI+CgthbnN3ZXJfc2xvdBgBIAEoCzIpLm5vdmF0cmFpbC5vYnNlcnZhdGlvbi52MS5BbnN3ZXJTbG90UGxhY2USDwoHdmVyZGljdBgCIAEoCRIOCgZyZWFzb24YAyABKAkSEgoFdmFsdWUYBCABKAlIAIgBAUIICgZfdmFsdWUifgoKU29sdmVkVGFzaxItCgRrZXlzGAEgAygLMh8ubm92YXRyYWlsLmFwaS52MS5BbnN3ZXJTbG90S2V5EhAKCHNvbHV0aW9uGAIgASgMEh0KFW1vZHVsZV9mb3JtYXRfdmVyc2lvbhgDIAEoCRIQCghjcml0ZXJpYRgEIAMoCSJtCgROZXh0EhEKB3NlZ21lbnQYASABKAVIABIYCg5zZWdtZW50c19lbmRlZBgCIAEoCEgAEjAKBmNob2ljZRgDIAEoCzIeLm5vdmF0cmFpbC5hcGkudjEuRW5naW5lQ2hvaWNlSABCBgoEbmV4dCJcCg1BbnN3ZXJTbG90S2V5Ej4KC2Fuc3dlcl9zbG90GAEgASgLMikubm92YXRyYWlsLm9ic2VydmF0aW9uLnYxLkFuc3dlclNsb3RQbGFjZRILCgNrZXkYAiABKAkisgEKBE1hcmsSKAoEa2luZBgBIAEoDjIaLm5vdmF0cmFpbC5hcGkudjEuTWFya0tpbmQSQAoLYW5zd2VyX3Nsb3QYAiABKAsyKS5ub3ZhdHJhaWwub2JzZXJ2YXRpb24udjEuQW5zd2VyU2xvdFBsYWNlSAASNQoIY3JvcF9ib3gYAyABKAsyIS5ub3ZhdHJhaWwub2JzZXJ2YXRpb24udjEuQ3JvcEJveEgAQgcKBXBsYWNlKokBCg1TdWJtaXNzaW9uRW5kEh4KGlNVQk1JU1NJT05fRU5EX1VOU1BFQ0lGSUVEEAASGwoXU1VCTUlTU0lPTl9FTkRfRkVFREJBQ0sQARIdChlTVUJNSVNTSU9OX0VORF9VTlJFQURBQkxFEAISHAoYU1VCTUlTU0lPTl9FTkRfVU5DSEVDS0VEEAMqRwoGQWN0aW9uEhYKEkFDVElPTl9VTlNQRUNJRklFRBAAEhMKD0FDVElPTl9MRUFSTklORxABEhAKDEFDVElPTl9BRFVMVBACKjoKCE1hcmtLaW5kEhkKFU1BUktfS0lORF9VTlNQRUNJRklFRBAAEhMKD01BUktfS0lORF9GUkFNRRABMtsGCg5BdHRlbXB0U2VydmljZRJXCgpTdWJtaXRXb3JrEiMubm92YXRyYWlsLmFwaS52MS5TdWJtaXRXb3JrUmVxdWVzdBokLm5vdmF0cmFpbC5hcGkudjEuU3VibWl0V29ya1Jlc3BvbnNlEloKC1N1Ym1pdEVzc2F5EiQubm92YXRyYWlsLmFwaS52MS5TdWJtaXRFc3NheVJlcXVlc3QaJS5ub3ZhdHJhaWwuYXBpLnYxLlN1Ym1pdEVzc2F5UmVzcG9uc2USRQoERG9uZRIdLm5vdmF0cmFpbC5hcGkudjEuRG9uZVJlcXVlc3QaHi5ub3ZhdHJhaWwuYXBpLnYxLkRvbmVSZXNwb25zZRJdCgxHZXRSdW5nV29yZHMSJS5ub3ZhdHJhaWwuYXBpLnYxLkdldFJ1bmdXb3Jkc1JlcXVlc3QaJi5ub3ZhdHJhaWwuYXBpLnYxLkdldFJ1bmdXb3Jkc1Jlc3BvbnNlEngKFUdldENvcnJlY3RBbnN3ZXJXb3JkcxIuLm5vdmF0cmFpbC5hcGkudjEuR2V0Q29ycmVjdEFuc3dlcldvcmRzUmVxdWVzdBovLm5vdmF0cmFpbC5hcGkudjEuR2V0Q29ycmVjdEFuc3dlcldvcmRzUmVzcG9uc2USbwoSRXhwbGFpbkRpZmZlcmVudGx5Eisubm92YXRyYWlsLmFwaS52MS5FeHBsYWluRGlmZmVyZW50bHlSZXF1ZXN0Giwubm92YXRyYWlsLmFwaS52MS5FeHBsYWluRGlmZmVyZW50bHlSZXNwb25zZRJOCgdHZXRIaW50EiAubm92YXRyYWlsLmFwaS52MS5HZXRIaW50UmVxdWVzdBohLm5vdmF0cmFpbC5hcGkudjEuR2V0SGludFJlc3BvbnNlElQKCUJlZ2luU3RlcBIiLm5vdmF0cmFpbC5hcGkudjEuQmVnaW5TdGVwUmVxdWVzdBojLm5vdmF0cmFpbC5hcGkudjEuQmVnaW5TdGVwUmVzcG9uc2USXQoMU2hvd1NvbHV0aW9uEiUubm92YXRyYWlsLmFwaS52MS5TaG93U29sdXRpb25SZXF1ZXN0GiYubm92YXRyYWlsLmFwaS52MS5TaG93U29sdXRpb25SZXNwb25zZULFAQoUY29tLm5vdmF0cmFpbC5hcGkudjFCDEF0dGVtcHRQcm90b1ABWj1naXRodWIuY29tL2FsdG5vdmF0cmFpbC9zcGVjL2NvbnRyYWN0cy9ub3ZhdHJhaWwvYXBpL3YxO2FwaXYxogIDTkFYqgIQTm92YXRyYWlsLkFwaS5WMcoCEE5vdmF0cmFpbFxBcGlcVjHiAhxOb3ZhdHJhaWxcQXBpXFYxXEdQQk1ldGFkYXRh6gISTm92YXRyYWlsOjpBcGk6OlYxYgZwcm90bzM", [file_novatrail_api_v1_cause, file_novatrail_observation_v1_observation]);
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Describes the message novatrail.api.v1.SubmitWorkRequest.
|
|
@@ -220,19 +220,26 @@ export const AnswerSlotVerdictSchema = /*@__PURE__*/
|
|
|
220
220
|
export const SolvedTaskSchema = /*@__PURE__*/
|
|
221
221
|
messageDesc(file_novatrail_api_v1_attempt, 28);
|
|
222
222
|
|
|
223
|
+
/**
|
|
224
|
+
* Describes the message novatrail.api.v1.Next.
|
|
225
|
+
* Use `create(NextSchema)` to create a new message.
|
|
226
|
+
*/
|
|
227
|
+
export const NextSchema = /*@__PURE__*/
|
|
228
|
+
messageDesc(file_novatrail_api_v1_attempt, 29);
|
|
229
|
+
|
|
223
230
|
/**
|
|
224
231
|
* Describes the message novatrail.api.v1.AnswerSlotKey.
|
|
225
232
|
* Use `create(AnswerSlotKeySchema)` to create a new message.
|
|
226
233
|
*/
|
|
227
234
|
export const AnswerSlotKeySchema = /*@__PURE__*/
|
|
228
|
-
messageDesc(file_novatrail_api_v1_attempt,
|
|
235
|
+
messageDesc(file_novatrail_api_v1_attempt, 30);
|
|
229
236
|
|
|
230
237
|
/**
|
|
231
238
|
* Describes the message novatrail.api.v1.Mark.
|
|
232
239
|
* Use `create(MarkSchema)` to create a new message.
|
|
233
240
|
*/
|
|
234
241
|
export const MarkSchema = /*@__PURE__*/
|
|
235
|
-
messageDesc(file_novatrail_api_v1_attempt,
|
|
242
|
+
messageDesc(file_novatrail_api_v1_attempt, 31);
|
|
236
243
|
|
|
237
244
|
/**
|
|
238
245
|
* Describes the enum novatrail.api.v1.SubmissionEnd.
|
|
@@ -284,7 +291,9 @@ export const MarkKind = /*@__PURE__*/
|
|
|
284
291
|
* take — gets the code `invalid_argument` with no `Refusal`. Every method carries the token of the
|
|
285
292
|
* sign-in service and may get the refusals of every request with a token, which the comment of
|
|
286
293
|
* `AccountService` names with what `app` does on each; a request of a profile whose consent is not
|
|
287
|
-
* confirmed gets `CAUSE_NO_CONSENT`.
|
|
294
|
+
* confirmed gets `CAUSE_NO_CONSENT`. An answer that closes the attempt by a correct answer, by the
|
|
295
|
+
* solution shown or by "Done" says what comes next, `next`: an attempt begins by
|
|
296
|
+
* `LearningService`.
|
|
288
297
|
*
|
|
289
298
|
* @generated from service novatrail.api.v1.AttemptService
|
|
290
299
|
*/
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
// The causes of the contract between `app` and `api`: one list for its refusals and for the
|
|
6
6
|
// outcomes of its calls of AI, the refusal that a method's error carries, and the outcome that its
|
|
7
|
-
// answer carries
|
|
8
|
-
//
|
|
7
|
+
// answer carries; and the values that come both in answers and in the data of a refusal: why an
|
|
8
|
+
// attempt was closed, how a lesson run ended, and the engine's choice. What they mean, and how
|
|
9
|
+
// `app` reads a cause it does not know, are the rules of contracts/README.md, section 15.
|
|
9
10
|
|
|
10
11
|
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
11
12
|
import type { Message } from "@bufbuild/protobuf";
|
|
@@ -74,6 +75,24 @@ export declare type Refusal = Message<"novatrail.api.v1.Refusal"> & {
|
|
|
74
75
|
*/
|
|
75
76
|
value: number;
|
|
76
77
|
case: "maxAuthAgeSeconds";
|
|
78
|
+
} | {
|
|
79
|
+
/**
|
|
80
|
+
* Beside `CAUSE_RUN_ENDED`: how the lesson run ended, and the engine's choice when this request
|
|
81
|
+
* ended it.
|
|
82
|
+
*
|
|
83
|
+
* @generated from field: novatrail.api.v1.RunEnd run_end = 7;
|
|
84
|
+
*/
|
|
85
|
+
value: RunEnd;
|
|
86
|
+
case: "runEnd";
|
|
87
|
+
} | {
|
|
88
|
+
/**
|
|
89
|
+
* Beside `CAUSE_SEGMENTS_NOT_ENDED` and `CAUSE_SEGMENT_UNAVAILABLE`: the task segments of the
|
|
90
|
+
* lesson run that have ended.
|
|
91
|
+
*
|
|
92
|
+
* @generated from field: novatrail.api.v1.EndedSegments ended_segments = 8;
|
|
93
|
+
*/
|
|
94
|
+
value: EndedSegments;
|
|
95
|
+
case: "endedSegments";
|
|
77
96
|
} | { case: undefined; value?: undefined };
|
|
78
97
|
};
|
|
79
98
|
|
|
@@ -84,7 +103,8 @@ export declare type Refusal = Message<"novatrail.api.v1.Refusal"> & {
|
|
|
84
103
|
export declare const RefusalSchema: GenMessage<Refusal>;
|
|
85
104
|
|
|
86
105
|
/**
|
|
87
|
-
* An outcome: what a call of AI came to when the answer holds no reading, or no words, of AI
|
|
106
|
+
* An outcome: what a call of AI came to when the answer holds no reading, or no words, of AI; and
|
|
107
|
+
* why the engine's choice gives nothing, when the AI that checks the tasks is closed to the learner.
|
|
88
108
|
*
|
|
89
109
|
* @generated from message novatrail.api.v1.Outcome
|
|
90
110
|
*/
|
|
@@ -93,7 +113,9 @@ export declare type Outcome = Message<"novatrail.api.v1.Outcome"> & {
|
|
|
93
113
|
* The outcome: `CAUSE_AI_FAILURE`, `CAUSE_QUOTA`, `CAUSE_PLATFORM_LIMIT`,
|
|
94
114
|
* `CAUSE_NOT_ADMITTED`, `CAUSE_LIMIT_REACHED`, `CAUSE_KEY_REFUSED` or `CAUSE_NO_OTHER_WORDS`.
|
|
95
115
|
* "Explain differently" makes no call without the reserve of the quota: there the quota, the limit
|
|
96
|
-
* of platform AI and no admission are refusals, and the right to it on the rung stays.
|
|
116
|
+
* of platform AI and no admission are refusals, and the right to it on the rung stays. Beside an
|
|
117
|
+
* engine's choice that gives nothing: `CAUSE_QUOTA`, `CAUSE_PLATFORM_LIMIT` or
|
|
118
|
+
* `CAUSE_NOT_ADMITTED`.
|
|
97
119
|
*
|
|
98
120
|
* @generated from field: novatrail.api.v1.Cause cause = 1;
|
|
99
121
|
*/
|
|
@@ -147,6 +169,96 @@ export declare type OwnKeyLimit = Message<"novatrail.api.v1.OwnKeyLimit"> & {
|
|
|
147
169
|
*/
|
|
148
170
|
export declare const OwnKeyLimitSchema: GenMessage<OwnKeyLimit>;
|
|
149
171
|
|
|
172
|
+
/**
|
|
173
|
+
* The engine's choice: what the learner is given next — a lesson, or a task outside a lesson — or
|
|
174
|
+
* that there is nothing to give (concepts 12). A choice begins nothing: `app` opens a lesson by
|
|
175
|
+
* `OpenLesson` and begins a task by `BeginAttempt`, each naming the choice. Its reason code, which
|
|
176
|
+
* the adult sees, is RUN.md's T65.
|
|
177
|
+
*
|
|
178
|
+
* @generated from message novatrail.api.v1.EngineChoice
|
|
179
|
+
*/
|
|
180
|
+
export declare type EngineChoice = Message<"novatrail.api.v1.EngineChoice"> & {
|
|
181
|
+
/**
|
|
182
|
+
* The ID of the choice: empty beside `CHOICE_KIND_NOTHING`.
|
|
183
|
+
*
|
|
184
|
+
* @generated from field: string choice_id = 1;
|
|
185
|
+
*/
|
|
186
|
+
choiceId: string;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* What the choice gives.
|
|
190
|
+
*
|
|
191
|
+
* @generated from field: novatrail.api.v1.ChoiceKind kind = 2;
|
|
192
|
+
*/
|
|
193
|
+
kind: ChoiceKind;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Beside `CHOICE_KIND_NOTHING`, when the AI that checks the tasks is closed to the learner and no
|
|
197
|
+
* task that a tap checks is left: `CAUSE_QUOTA`, with when the next family day begins,
|
|
198
|
+
* `CAUSE_PLATFORM_LIMIT` or `CAUSE_NOT_ADMITTED`. Absent when there is nothing to give for
|
|
199
|
+
* another reason, such as no module connected with a current version.
|
|
200
|
+
*
|
|
201
|
+
* @generated from field: novatrail.api.v1.Outcome outcome = 3;
|
|
202
|
+
*/
|
|
203
|
+
outcome?: Outcome | undefined;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Describes the message novatrail.api.v1.EngineChoice.
|
|
208
|
+
* Use `create(EngineChoiceSchema)` to create a new message.
|
|
209
|
+
*/
|
|
210
|
+
export declare const EngineChoiceSchema: GenMessage<EngineChoice>;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* How a lesson run ended.
|
|
214
|
+
*
|
|
215
|
+
* @generated from message novatrail.api.v1.RunEnd
|
|
216
|
+
*/
|
|
217
|
+
export declare type RunEnd = Message<"novatrail.api.v1.RunEnd"> & {
|
|
218
|
+
/**
|
|
219
|
+
* Why it ended.
|
|
220
|
+
*
|
|
221
|
+
* @generated from field: novatrail.api.v1.RunEndReason reason = 1;
|
|
222
|
+
*/
|
|
223
|
+
reason: RunEndReason;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* The engine's choice that the end gave: when the request that carries it ended the run — "lesson
|
|
227
|
+
* done", or a request that found the run's package no longer given, the lesson unsuitable, or the
|
|
228
|
+
* run abandoned —, and on a repeat of the "lesson done" that ended it. Absent when the run had
|
|
229
|
+
* ended before by anything else, such as a job of the operator: `app` then asks `ChooseNext`.
|
|
230
|
+
*
|
|
231
|
+
* @generated from field: novatrail.api.v1.EngineChoice choice = 2;
|
|
232
|
+
*/
|
|
233
|
+
choice?: EngineChoice | undefined;
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Describes the message novatrail.api.v1.RunEnd.
|
|
238
|
+
* Use `create(RunEndSchema)` to create a new message.
|
|
239
|
+
*/
|
|
240
|
+
export declare const RunEndSchema: GenMessage<RunEnd>;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* The task segments of a lesson run that have ended.
|
|
244
|
+
*
|
|
245
|
+
* @generated from message novatrail.api.v1.EndedSegments
|
|
246
|
+
*/
|
|
247
|
+
export declare type EndedSegments = Message<"novatrail.api.v1.EndedSegments"> & {
|
|
248
|
+
/**
|
|
249
|
+
* Their places among the segments of the lesson, from 1, in order.
|
|
250
|
+
*
|
|
251
|
+
* @generated from field: repeated int32 places = 1;
|
|
252
|
+
*/
|
|
253
|
+
places: number[];
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Describes the message novatrail.api.v1.EndedSegments.
|
|
258
|
+
* Use `create(EndedSegmentsSchema)` to create a new message.
|
|
259
|
+
*/
|
|
260
|
+
export declare const EndedSegmentsSchema: GenMessage<EndedSegments>;
|
|
261
|
+
|
|
150
262
|
/**
|
|
151
263
|
* Why a request was refused, or what a call of AI in it came to: one list for the whole contract
|
|
152
264
|
* (R17 api). A refusal comes as the detail `Refusal` of an error of Connect, with the code that the
|
|
@@ -173,8 +285,11 @@ export enum Cause {
|
|
|
173
285
|
NO_PROFILE = 1,
|
|
174
286
|
|
|
175
287
|
/**
|
|
176
|
-
* The profile has no attempt
|
|
177
|
-
*
|
|
288
|
+
* The profile has no attempt, lesson run or engine's choice with the ID named, no module
|
|
289
|
+
* connected with the ID named, and no skill by the full ID named in the current version of a
|
|
290
|
+
* module connected to it; or the account has no consent with the ID named; or the pinned index
|
|
291
|
+
* of `api` has no module with the ID named. Another profile's, or another account's, is the
|
|
292
|
+
* same. Code `not_found`.
|
|
178
293
|
*
|
|
179
294
|
* @generated from enum value: CAUSE_NOT_FOUND = 2;
|
|
180
295
|
*/
|
|
@@ -206,16 +321,17 @@ export enum Cause {
|
|
|
206
321
|
STILL_GOING = 5,
|
|
207
322
|
|
|
208
323
|
/**
|
|
209
|
-
* The learner's own key
|
|
210
|
-
* `invalid_argument`.
|
|
324
|
+
* The learner's own key, or the provider of one at the beginning of an attempt, came with a
|
|
325
|
+
* profile whose age category is not `adult`. Code `invalid_argument`.
|
|
211
326
|
*
|
|
212
327
|
* @generated from enum value: CAUSE_KEY_NOT_FOR_PROFILE = 6;
|
|
213
328
|
*/
|
|
214
329
|
KEY_NOT_FOR_PROFILE = 6,
|
|
215
330
|
|
|
216
331
|
/**
|
|
217
|
-
* The quota of platform AI for the family day is spent
|
|
218
|
-
*
|
|
332
|
+
* The quota of platform AI for the family day is spent; at the beginning of an attempt on a task
|
|
333
|
+
* that platform AI checks, what is left of it is not enough for a typical task. A refusal holds
|
|
334
|
+
* when the next family day begins; so does an outcome. Code `resource_exhausted`.
|
|
219
335
|
*
|
|
220
336
|
* @generated from enum value: CAUSE_QUOTA = 7;
|
|
221
337
|
*/
|
|
@@ -364,8 +480,8 @@ export enum Cause {
|
|
|
364
480
|
CODE_NOT_ACCEPTED = 25,
|
|
365
481
|
|
|
366
482
|
/**
|
|
367
|
-
* What the request creates is there already: the account of the user, the owner's profile,
|
|
368
|
-
* the
|
|
483
|
+
* What the request creates is there already: the account of the user, the owner's profile, the
|
|
484
|
+
* profile of a consent, or the attempt of an engine's choice of a task. Code `already_exists`.
|
|
369
485
|
*
|
|
370
486
|
* @generated from enum value: CAUSE_ALREADY_EXISTS = 26;
|
|
371
487
|
*/
|
|
@@ -409,6 +525,67 @@ export enum Cause {
|
|
|
409
525
|
* @generated from enum value: CAUSE_NO_PIN = 31;
|
|
410
526
|
*/
|
|
411
527
|
NO_PIN = 31,
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* An open view asked for by the digest of a package whose version the image of `api` no longer
|
|
531
|
+
* gives: its index marks the version withdrawn, or the version's module format is out of the
|
|
532
|
+
* window of formats that `api` reads. `app` asks `CheckPackages` about the digests it keeps,
|
|
533
|
+
* and erases what it keeps of the version. An attempt or a lesson run on such a version is closed
|
|
534
|
+
* or ended `unchecked` instead. Code `failed_precondition`.
|
|
535
|
+
*
|
|
536
|
+
* @generated from enum value: CAUSE_VERSION_NOT_GIVEN = 32;
|
|
537
|
+
*/
|
|
538
|
+
VERSION_NOT_GIVEN = 32,
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* The index of the image of `api` does not know the package digest: a deployment is going on,
|
|
542
|
+
* and a repeat reaches the new image. Code `unavailable`.
|
|
543
|
+
*
|
|
544
|
+
* @generated from enum value: CAUSE_PACKAGE_UNKNOWN = 33;
|
|
545
|
+
*/
|
|
546
|
+
PACKAGE_UNKNOWN = 33,
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* The module has no current version for the learner — none at all, or one whose audience the
|
|
550
|
+
* learner is not in — or its current version has no lesson or task by the ID named. Code
|
|
551
|
+
* `failed_precondition`.
|
|
552
|
+
*
|
|
553
|
+
* @generated from enum value: CAUSE_NO_CURRENT_VERSION = 34;
|
|
554
|
+
*/
|
|
555
|
+
NO_CURRENT_VERSION = 34,
|
|
556
|
+
|
|
557
|
+
/**
|
|
558
|
+
* The lesson, one of its tasks, or the task does not suit the age category of the profile. Code
|
|
559
|
+
* `failed_precondition`.
|
|
560
|
+
*
|
|
561
|
+
* @generated from enum value: CAUSE_NOT_SUITABLE = 35;
|
|
562
|
+
*/
|
|
563
|
+
NOT_SUITABLE = 35,
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* The lesson run has ended. The refusal holds how it ended, and the engine's choice when this
|
|
567
|
+
* request ended it. Code `failed_precondition`.
|
|
568
|
+
*
|
|
569
|
+
* @generated from enum value: CAUSE_RUN_ENDED = 36;
|
|
570
|
+
*/
|
|
571
|
+
RUN_ENDED = 36,
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* "Lesson done" while a task segment of the lesson has not ended. The refusal holds the places
|
|
575
|
+
* of the task segments that have ended. Code `failed_precondition`.
|
|
576
|
+
*
|
|
577
|
+
* @generated from enum value: CAUSE_SEGMENTS_NOT_ENDED = 37;
|
|
578
|
+
*/
|
|
579
|
+
SEGMENTS_NOT_ENDED = 37,
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* An attempt asked for on a segment out of order: a task segment before it has not ended, or it
|
|
583
|
+
* has ended itself. The refusal holds the places of the task segments that have ended. Code
|
|
584
|
+
* `failed_precondition`.
|
|
585
|
+
*
|
|
586
|
+
* @generated from enum value: CAUSE_SEGMENT_UNAVAILABLE = 38;
|
|
587
|
+
*/
|
|
588
|
+
SEGMENT_UNAVAILABLE = 38,
|
|
412
589
|
}
|
|
413
590
|
|
|
414
591
|
/**
|
|
@@ -533,3 +710,94 @@ export enum CloseReason {
|
|
|
533
710
|
*/
|
|
534
711
|
export declare const CloseReasonSchema: GenEnum<CloseReason>;
|
|
535
712
|
|
|
713
|
+
/**
|
|
714
|
+
* What an engine's choice gives. A kind its build does not know `app` reads as
|
|
715
|
+
* `CHOICE_KIND_NOTHING`.
|
|
716
|
+
*
|
|
717
|
+
* @generated from enum novatrail.api.v1.ChoiceKind
|
|
718
|
+
*/
|
|
719
|
+
export enum ChoiceKind {
|
|
720
|
+
/**
|
|
721
|
+
* Not named: never sent.
|
|
722
|
+
*
|
|
723
|
+
* @generated from enum value: CHOICE_KIND_UNSPECIFIED = 0;
|
|
724
|
+
*/
|
|
725
|
+
UNSPECIFIED = 0,
|
|
726
|
+
|
|
727
|
+
/**
|
|
728
|
+
* A lesson: `app` opens it by `OpenLesson`. It may be the lesson of a run that is open.
|
|
729
|
+
*
|
|
730
|
+
* @generated from enum value: CHOICE_KIND_LESSON = 1;
|
|
731
|
+
*/
|
|
732
|
+
LESSON = 1,
|
|
733
|
+
|
|
734
|
+
/**
|
|
735
|
+
* A task outside a lesson: `app` begins it by `BeginAttempt`.
|
|
736
|
+
*
|
|
737
|
+
* @generated from enum value: CHOICE_KIND_TASK = 2;
|
|
738
|
+
*/
|
|
739
|
+
TASK = 2,
|
|
740
|
+
|
|
741
|
+
/**
|
|
742
|
+
* Nothing to give.
|
|
743
|
+
*
|
|
744
|
+
* @generated from enum value: CHOICE_KIND_NOTHING = 3;
|
|
745
|
+
*/
|
|
746
|
+
NOTHING = 3,
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
/**
|
|
750
|
+
* Describes the enum novatrail.api.v1.ChoiceKind.
|
|
751
|
+
*/
|
|
752
|
+
export declare const ChoiceKindSchema: GenEnum<ChoiceKind>;
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Why a lesson run ended (concepts 5). A reason its build does not know `app` reads as an end other
|
|
756
|
+
* than `RUN_END_REASON_PASSED`, and erases the state of the lesson as at every end.
|
|
757
|
+
*
|
|
758
|
+
* @generated from enum novatrail.api.v1.RunEndReason
|
|
759
|
+
*/
|
|
760
|
+
export enum RunEndReason {
|
|
761
|
+
/**
|
|
762
|
+
* Not ended: the run is open.
|
|
763
|
+
*
|
|
764
|
+
* @generated from enum value: RUN_END_REASON_UNSPECIFIED = 0;
|
|
765
|
+
*/
|
|
766
|
+
UNSPECIFIED = 0,
|
|
767
|
+
|
|
768
|
+
/**
|
|
769
|
+
* The lesson is done: "lesson done" came once every task segment had ended.
|
|
770
|
+
*
|
|
771
|
+
* @generated from enum value: RUN_END_REASON_PASSED = 1;
|
|
772
|
+
*/
|
|
773
|
+
PASSED = 1,
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* Unchecked: the run's version of the module is no longer given, withdrawn or out of the window
|
|
777
|
+
* of formats that `api` reads, or an attempt of the run was closed `CLOSE_REASON_UNCHECKED`.
|
|
778
|
+
*
|
|
779
|
+
* @generated from enum value: RUN_END_REASON_UNCHECKED = 2;
|
|
780
|
+
*/
|
|
781
|
+
UNCHECKED = 2,
|
|
782
|
+
|
|
783
|
+
/**
|
|
784
|
+
* Not suitable: the module is no longer connected or has no current version for the learner, or
|
|
785
|
+
* the lesson or one of its tasks no longer suits the age category of the profile.
|
|
786
|
+
*
|
|
787
|
+
* @generated from enum value: RUN_END_REASON_NOT_SUITABLE = 3;
|
|
788
|
+
*/
|
|
789
|
+
NOT_SUITABLE = 3,
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Abandoned: no request on the run or its attempts for 30 days.
|
|
793
|
+
*
|
|
794
|
+
* @generated from enum value: RUN_END_REASON_ABANDONED = 4;
|
|
795
|
+
*/
|
|
796
|
+
ABANDONED = 4,
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* Describes the enum novatrail.api.v1.RunEndReason.
|
|
801
|
+
*/
|
|
802
|
+
export declare const RunEndReasonSchema: GenEnum<RunEndReason>;
|
|
803
|
+
|