@altnovatrail/contracts 0.8.2 → 0.8.4
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 +367 -12
- package/novatrail/api/v1/cause_pb.js +76 -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 +631 -0
- package/novatrail/api/v1/progress_pb.js +143 -0
- package/package.json +17 -1
|
@@ -4,8 +4,10 @@
|
|
|
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, with the list of its reason
|
|
9
|
+
// codes, which the adult's progress alone carries. What they mean, and how `app` reads a cause it
|
|
10
|
+
// does not know, are the rules of contracts/README.md, section 15.
|
|
9
11
|
|
|
10
12
|
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
11
13
|
import type { Message } from "@bufbuild/protobuf";
|
|
@@ -74,6 +76,24 @@ export declare type Refusal = Message<"novatrail.api.v1.Refusal"> & {
|
|
|
74
76
|
*/
|
|
75
77
|
value: number;
|
|
76
78
|
case: "maxAuthAgeSeconds";
|
|
79
|
+
} | {
|
|
80
|
+
/**
|
|
81
|
+
* Beside `CAUSE_RUN_ENDED`: how the lesson run ended, and the engine's choice when this request
|
|
82
|
+
* ended it.
|
|
83
|
+
*
|
|
84
|
+
* @generated from field: novatrail.api.v1.RunEnd run_end = 7;
|
|
85
|
+
*/
|
|
86
|
+
value: RunEnd;
|
|
87
|
+
case: "runEnd";
|
|
88
|
+
} | {
|
|
89
|
+
/**
|
|
90
|
+
* Beside `CAUSE_SEGMENTS_NOT_ENDED` and `CAUSE_SEGMENT_UNAVAILABLE`: the task segments of the
|
|
91
|
+
* lesson run that have ended.
|
|
92
|
+
*
|
|
93
|
+
* @generated from field: novatrail.api.v1.EndedSegments ended_segments = 8;
|
|
94
|
+
*/
|
|
95
|
+
value: EndedSegments;
|
|
96
|
+
case: "endedSegments";
|
|
77
97
|
} | { case: undefined; value?: undefined };
|
|
78
98
|
};
|
|
79
99
|
|
|
@@ -84,7 +104,8 @@ export declare type Refusal = Message<"novatrail.api.v1.Refusal"> & {
|
|
|
84
104
|
export declare const RefusalSchema: GenMessage<Refusal>;
|
|
85
105
|
|
|
86
106
|
/**
|
|
87
|
-
* An outcome: what a call of AI came to when the answer holds no reading, or no words, of AI
|
|
107
|
+
* An outcome: what a call of AI came to when the answer holds no reading, or no words, of AI; and
|
|
108
|
+
* why the engine's choice gives nothing, when the AI that checks the tasks is closed to the learner.
|
|
88
109
|
*
|
|
89
110
|
* @generated from message novatrail.api.v1.Outcome
|
|
90
111
|
*/
|
|
@@ -93,7 +114,9 @@ export declare type Outcome = Message<"novatrail.api.v1.Outcome"> & {
|
|
|
93
114
|
* The outcome: `CAUSE_AI_FAILURE`, `CAUSE_QUOTA`, `CAUSE_PLATFORM_LIMIT`,
|
|
94
115
|
* `CAUSE_NOT_ADMITTED`, `CAUSE_LIMIT_REACHED`, `CAUSE_KEY_REFUSED` or `CAUSE_NO_OTHER_WORDS`.
|
|
95
116
|
* "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.
|
|
117
|
+
* of platform AI and no admission are refusals, and the right to it on the rung stays. Beside an
|
|
118
|
+
* engine's choice that gives nothing: `CAUSE_QUOTA`, `CAUSE_PLATFORM_LIMIT` or
|
|
119
|
+
* `CAUSE_NOT_ADMITTED`.
|
|
97
120
|
*
|
|
98
121
|
* @generated from field: novatrail.api.v1.Cause cause = 1;
|
|
99
122
|
*/
|
|
@@ -147,6 +170,96 @@ export declare type OwnKeyLimit = Message<"novatrail.api.v1.OwnKeyLimit"> & {
|
|
|
147
170
|
*/
|
|
148
171
|
export declare const OwnKeyLimitSchema: GenMessage<OwnKeyLimit>;
|
|
149
172
|
|
|
173
|
+
/**
|
|
174
|
+
* The engine's choice: what the learner is given next — a lesson, or a task outside a lesson — or
|
|
175
|
+
* that there is nothing to give (concepts 12). A choice begins nothing: `app` opens a lesson by
|
|
176
|
+
* `OpenLesson` and begins a task by `BeginAttempt`, each naming the choice. Its reason code is not
|
|
177
|
+
* here: a child is not told it, and it goes to the adult's progress alone, `AttemptRecord`.
|
|
178
|
+
*
|
|
179
|
+
* @generated from message novatrail.api.v1.EngineChoice
|
|
180
|
+
*/
|
|
181
|
+
export declare type EngineChoice = Message<"novatrail.api.v1.EngineChoice"> & {
|
|
182
|
+
/**
|
|
183
|
+
* The ID of the choice: empty beside `CHOICE_KIND_NOTHING`.
|
|
184
|
+
*
|
|
185
|
+
* @generated from field: string choice_id = 1;
|
|
186
|
+
*/
|
|
187
|
+
choiceId: string;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* What the choice gives.
|
|
191
|
+
*
|
|
192
|
+
* @generated from field: novatrail.api.v1.ChoiceKind kind = 2;
|
|
193
|
+
*/
|
|
194
|
+
kind: ChoiceKind;
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Beside `CHOICE_KIND_NOTHING`, when the AI that checks the tasks is closed to the learner and no
|
|
198
|
+
* task that a tap checks is left: `CAUSE_QUOTA`, with when the next family day begins,
|
|
199
|
+
* `CAUSE_PLATFORM_LIMIT` or `CAUSE_NOT_ADMITTED`. Absent when there is nothing to give for
|
|
200
|
+
* another reason, such as no module connected with a current version.
|
|
201
|
+
*
|
|
202
|
+
* @generated from field: novatrail.api.v1.Outcome outcome = 3;
|
|
203
|
+
*/
|
|
204
|
+
outcome?: Outcome | undefined;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Describes the message novatrail.api.v1.EngineChoice.
|
|
209
|
+
* Use `create(EngineChoiceSchema)` to create a new message.
|
|
210
|
+
*/
|
|
211
|
+
export declare const EngineChoiceSchema: GenMessage<EngineChoice>;
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* How a lesson run ended.
|
|
215
|
+
*
|
|
216
|
+
* @generated from message novatrail.api.v1.RunEnd
|
|
217
|
+
*/
|
|
218
|
+
export declare type RunEnd = Message<"novatrail.api.v1.RunEnd"> & {
|
|
219
|
+
/**
|
|
220
|
+
* Why it ended.
|
|
221
|
+
*
|
|
222
|
+
* @generated from field: novatrail.api.v1.RunEndReason reason = 1;
|
|
223
|
+
*/
|
|
224
|
+
reason: RunEndReason;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* The engine's choice that the end gave: when the request that carries it ended the run — "lesson
|
|
228
|
+
* done", or a request that found the run's package no longer given, the lesson unsuitable, or the
|
|
229
|
+
* run abandoned —, and on a repeat of the "lesson done" that ended it. Absent when the run had
|
|
230
|
+
* ended before by anything else, such as a job of the operator: `app` then asks `ChooseNext`.
|
|
231
|
+
*
|
|
232
|
+
* @generated from field: novatrail.api.v1.EngineChoice choice = 2;
|
|
233
|
+
*/
|
|
234
|
+
choice?: EngineChoice | undefined;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Describes the message novatrail.api.v1.RunEnd.
|
|
239
|
+
* Use `create(RunEndSchema)` to create a new message.
|
|
240
|
+
*/
|
|
241
|
+
export declare const RunEndSchema: GenMessage<RunEnd>;
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* The task segments of a lesson run that have ended.
|
|
245
|
+
*
|
|
246
|
+
* @generated from message novatrail.api.v1.EndedSegments
|
|
247
|
+
*/
|
|
248
|
+
export declare type EndedSegments = Message<"novatrail.api.v1.EndedSegments"> & {
|
|
249
|
+
/**
|
|
250
|
+
* Their places among the segments of the lesson, from 1, in order.
|
|
251
|
+
*
|
|
252
|
+
* @generated from field: repeated int32 places = 1;
|
|
253
|
+
*/
|
|
254
|
+
places: number[];
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Describes the message novatrail.api.v1.EndedSegments.
|
|
259
|
+
* Use `create(EndedSegmentsSchema)` to create a new message.
|
|
260
|
+
*/
|
|
261
|
+
export declare const EndedSegmentsSchema: GenMessage<EndedSegments>;
|
|
262
|
+
|
|
150
263
|
/**
|
|
151
264
|
* Why a request was refused, or what a call of AI in it came to: one list for the whole contract
|
|
152
265
|
* (R17 api). A refusal comes as the detail `Refusal` of an error of Connect, with the code that the
|
|
@@ -173,8 +286,11 @@ export enum Cause {
|
|
|
173
286
|
NO_PROFILE = 1,
|
|
174
287
|
|
|
175
288
|
/**
|
|
176
|
-
* The profile has no attempt
|
|
177
|
-
*
|
|
289
|
+
* The profile has no attempt, lesson run or engine's choice with the ID named, no module
|
|
290
|
+
* connected with the ID named, and no skill by the full ID named in the current version of a
|
|
291
|
+
* module connected to it; or the account has no consent with the ID named; or the pinned index
|
|
292
|
+
* of `api` has no module with the ID named. Another profile's, or another account's, is the
|
|
293
|
+
* same. Code `not_found`.
|
|
178
294
|
*
|
|
179
295
|
* @generated from enum value: CAUSE_NOT_FOUND = 2;
|
|
180
296
|
*/
|
|
@@ -206,16 +322,17 @@ export enum Cause {
|
|
|
206
322
|
STILL_GOING = 5,
|
|
207
323
|
|
|
208
324
|
/**
|
|
209
|
-
* The learner's own key
|
|
210
|
-
* `invalid_argument`.
|
|
325
|
+
* The learner's own key, or the provider of one at the beginning of an attempt, came with a
|
|
326
|
+
* profile whose age category is not `adult`. Code `invalid_argument`.
|
|
211
327
|
*
|
|
212
328
|
* @generated from enum value: CAUSE_KEY_NOT_FOR_PROFILE = 6;
|
|
213
329
|
*/
|
|
214
330
|
KEY_NOT_FOR_PROFILE = 6,
|
|
215
331
|
|
|
216
332
|
/**
|
|
217
|
-
* The quota of platform AI for the family day is spent
|
|
218
|
-
*
|
|
333
|
+
* The quota of platform AI for the family day is spent; at the beginning of an attempt on a task
|
|
334
|
+
* that platform AI checks, what is left of it is not enough for a typical task. A refusal holds
|
|
335
|
+
* when the next family day begins; so does an outcome. Code `resource_exhausted`.
|
|
219
336
|
*
|
|
220
337
|
* @generated from enum value: CAUSE_QUOTA = 7;
|
|
221
338
|
*/
|
|
@@ -364,8 +481,8 @@ export enum Cause {
|
|
|
364
481
|
CODE_NOT_ACCEPTED = 25,
|
|
365
482
|
|
|
366
483
|
/**
|
|
367
|
-
* What the request creates is there already: the account of the user, the owner's profile,
|
|
368
|
-
* the
|
|
484
|
+
* What the request creates is there already: the account of the user, the owner's profile, the
|
|
485
|
+
* profile of a consent, or the attempt of an engine's choice of a task. Code `already_exists`.
|
|
369
486
|
*
|
|
370
487
|
* @generated from enum value: CAUSE_ALREADY_EXISTS = 26;
|
|
371
488
|
*/
|
|
@@ -409,6 +526,67 @@ export enum Cause {
|
|
|
409
526
|
* @generated from enum value: CAUSE_NO_PIN = 31;
|
|
410
527
|
*/
|
|
411
528
|
NO_PIN = 31,
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* An open view asked for by the digest of a package whose version the image of `api` no longer
|
|
532
|
+
* gives: its index marks the version withdrawn, or the version's module format is out of the
|
|
533
|
+
* window of formats that `api` reads. `app` asks `CheckPackages` about the digests it keeps,
|
|
534
|
+
* and erases what it keeps of the version. An attempt or a lesson run on such a version is closed
|
|
535
|
+
* or ended `unchecked` instead. Code `failed_precondition`.
|
|
536
|
+
*
|
|
537
|
+
* @generated from enum value: CAUSE_VERSION_NOT_GIVEN = 32;
|
|
538
|
+
*/
|
|
539
|
+
VERSION_NOT_GIVEN = 32,
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* The index of the image of `api` does not know the package digest: a deployment is going on,
|
|
543
|
+
* and a repeat reaches the new image. Code `unavailable`.
|
|
544
|
+
*
|
|
545
|
+
* @generated from enum value: CAUSE_PACKAGE_UNKNOWN = 33;
|
|
546
|
+
*/
|
|
547
|
+
PACKAGE_UNKNOWN = 33,
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* The module has no current version for the learner — none at all, or one whose audience the
|
|
551
|
+
* learner is not in — or its current version has no lesson or task by the ID named. Code
|
|
552
|
+
* `failed_precondition`.
|
|
553
|
+
*
|
|
554
|
+
* @generated from enum value: CAUSE_NO_CURRENT_VERSION = 34;
|
|
555
|
+
*/
|
|
556
|
+
NO_CURRENT_VERSION = 34,
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* The lesson, one of its tasks, or the task does not suit the age category of the profile. Code
|
|
560
|
+
* `failed_precondition`.
|
|
561
|
+
*
|
|
562
|
+
* @generated from enum value: CAUSE_NOT_SUITABLE = 35;
|
|
563
|
+
*/
|
|
564
|
+
NOT_SUITABLE = 35,
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* The lesson run has ended. The refusal holds how it ended, and the engine's choice when this
|
|
568
|
+
* request ended it. Code `failed_precondition`.
|
|
569
|
+
*
|
|
570
|
+
* @generated from enum value: CAUSE_RUN_ENDED = 36;
|
|
571
|
+
*/
|
|
572
|
+
RUN_ENDED = 36,
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* "Lesson done" while a task segment of the lesson has not ended. The refusal holds the places
|
|
576
|
+
* of the task segments that have ended. Code `failed_precondition`.
|
|
577
|
+
*
|
|
578
|
+
* @generated from enum value: CAUSE_SEGMENTS_NOT_ENDED = 37;
|
|
579
|
+
*/
|
|
580
|
+
SEGMENTS_NOT_ENDED = 37,
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* An attempt asked for on a segment out of order: a task segment before it has not ended, or it
|
|
584
|
+
* has ended itself. The refusal holds the places of the task segments that have ended. Code
|
|
585
|
+
* `failed_precondition`.
|
|
586
|
+
*
|
|
587
|
+
* @generated from enum value: CAUSE_SEGMENT_UNAVAILABLE = 38;
|
|
588
|
+
*/
|
|
589
|
+
SEGMENT_UNAVAILABLE = 38,
|
|
412
590
|
}
|
|
413
591
|
|
|
414
592
|
/**
|
|
@@ -533,3 +711,180 @@ export enum CloseReason {
|
|
|
533
711
|
*/
|
|
534
712
|
export declare const CloseReasonSchema: GenEnum<CloseReason>;
|
|
535
713
|
|
|
714
|
+
/**
|
|
715
|
+
* What an engine's choice gives. A kind its build does not know `app` reads as
|
|
716
|
+
* `CHOICE_KIND_NOTHING`.
|
|
717
|
+
*
|
|
718
|
+
* @generated from enum novatrail.api.v1.ChoiceKind
|
|
719
|
+
*/
|
|
720
|
+
export enum ChoiceKind {
|
|
721
|
+
/**
|
|
722
|
+
* Not named: never sent.
|
|
723
|
+
*
|
|
724
|
+
* @generated from enum value: CHOICE_KIND_UNSPECIFIED = 0;
|
|
725
|
+
*/
|
|
726
|
+
UNSPECIFIED = 0,
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* A lesson: `app` opens it by `OpenLesson`. It may be the lesson of a run that is open.
|
|
730
|
+
*
|
|
731
|
+
* @generated from enum value: CHOICE_KIND_LESSON = 1;
|
|
732
|
+
*/
|
|
733
|
+
LESSON = 1,
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* A task outside a lesson: `app` begins it by `BeginAttempt`.
|
|
737
|
+
*
|
|
738
|
+
* @generated from enum value: CHOICE_KIND_TASK = 2;
|
|
739
|
+
*/
|
|
740
|
+
TASK = 2,
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* Nothing to give.
|
|
744
|
+
*
|
|
745
|
+
* @generated from enum value: CHOICE_KIND_NOTHING = 3;
|
|
746
|
+
*/
|
|
747
|
+
NOTHING = 3,
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* Describes the enum novatrail.api.v1.ChoiceKind.
|
|
752
|
+
*/
|
|
753
|
+
export declare const ChoiceKindSchema: GenEnum<ChoiceKind>;
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* Why the engine gave what it chose: its reason code (concepts 12; R29; R100). The adult sees it
|
|
757
|
+
* in the progress of a profile, and a child is not told it: no answer to a learning request
|
|
758
|
+
* carries it. A choice has one code, that of the branch of the engine's rule that made it, a
|
|
759
|
+
* lesson's as a task's, and `ChoiceKind` says what it gave. A value never changes its meaning: a
|
|
760
|
+
* branch of the engine's rule that the list does not name comes as a new value, and the value of a
|
|
761
|
+
* branch the engine drops stays, its comment saying that it is no longer given. A code its build
|
|
762
|
+
* does not know `app` words as a reason it does not name.
|
|
763
|
+
*
|
|
764
|
+
* @generated from enum novatrail.api.v1.ReasonCode
|
|
765
|
+
*/
|
|
766
|
+
export enum ReasonCode {
|
|
767
|
+
/**
|
|
768
|
+
* No code: a choice of nothing, and an attempt that the learner began again.
|
|
769
|
+
*
|
|
770
|
+
* @generated from enum value: REASON_CODE_UNSPECIFIED = 0;
|
|
771
|
+
*/
|
|
772
|
+
UNSPECIFIED = 0,
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* Consolidation: after a wrong answer, another task on the same skill, while the skill is within
|
|
776
|
+
* reach.
|
|
777
|
+
*
|
|
778
|
+
* @generated from enum value: REASON_CODE_CONSOLIDATION = 1;
|
|
779
|
+
*/
|
|
780
|
+
CONSOLIDATION = 1,
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* A new skill: one not given before, whose prerequisites are mastered or which has none.
|
|
784
|
+
*
|
|
785
|
+
* @generated from enum value: REASON_CODE_NEW_SKILL = 2;
|
|
786
|
+
*/
|
|
787
|
+
NEW_SKILL = 2,
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* The queue: of the skills within reach that were given before and are not mastered, the one
|
|
791
|
+
* not given for longest.
|
|
792
|
+
*
|
|
793
|
+
* @generated from enum value: REASON_CODE_QUEUE = 3;
|
|
794
|
+
*/
|
|
795
|
+
QUEUE = 3,
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* Repetition: the review date of a mastered skill has come.
|
|
799
|
+
*
|
|
800
|
+
* @generated from enum value: REASON_CODE_REPETITION = 4;
|
|
801
|
+
*/
|
|
802
|
+
REPETITION = 4,
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* A probe: a skill put aside comes back as a check.
|
|
806
|
+
*
|
|
807
|
+
* @generated from enum value: REASON_CODE_PROBE = 5;
|
|
808
|
+
*/
|
|
809
|
+
PROBE = 5,
|
|
810
|
+
|
|
811
|
+
/**
|
|
812
|
+
* The learner chose the skill on the skill map, and the engine the lesson or the task on it,
|
|
813
|
+
* whatever else the skill would fit.
|
|
814
|
+
*
|
|
815
|
+
* @generated from enum value: REASON_CODE_SKILL_CHOSEN = 6;
|
|
816
|
+
*/
|
|
817
|
+
SKILL_CHOSEN = 6,
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* The author's order: a skill with a rubric or without assessment comes next by the skill graph,
|
|
821
|
+
* without the learner model (concepts 4).
|
|
822
|
+
*
|
|
823
|
+
* @generated from enum value: REASON_CODE_AUTHOR_ORDER = 7;
|
|
824
|
+
*/
|
|
825
|
+
AUTHOR_ORDER = 7,
|
|
826
|
+
|
|
827
|
+
/**
|
|
828
|
+
* The lesson of a run that is open, which the learner goes on with, whatever else its skills
|
|
829
|
+
* would fit.
|
|
830
|
+
*
|
|
831
|
+
* @generated from enum value: REASON_CODE_OPEN_RUN = 8;
|
|
832
|
+
*/
|
|
833
|
+
OPEN_RUN = 8,
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
/**
|
|
837
|
+
* Describes the enum novatrail.api.v1.ReasonCode.
|
|
838
|
+
*/
|
|
839
|
+
export declare const ReasonCodeSchema: GenEnum<ReasonCode>;
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* Why a lesson run ended (concepts 5). A reason its build does not know `app` reads as an end other
|
|
843
|
+
* than `RUN_END_REASON_PASSED`, and erases the state of the lesson as at every end.
|
|
844
|
+
*
|
|
845
|
+
* @generated from enum novatrail.api.v1.RunEndReason
|
|
846
|
+
*/
|
|
847
|
+
export enum RunEndReason {
|
|
848
|
+
/**
|
|
849
|
+
* Not ended: the run is open.
|
|
850
|
+
*
|
|
851
|
+
* @generated from enum value: RUN_END_REASON_UNSPECIFIED = 0;
|
|
852
|
+
*/
|
|
853
|
+
UNSPECIFIED = 0,
|
|
854
|
+
|
|
855
|
+
/**
|
|
856
|
+
* The lesson is done: "lesson done" came once every task segment had ended.
|
|
857
|
+
*
|
|
858
|
+
* @generated from enum value: RUN_END_REASON_PASSED = 1;
|
|
859
|
+
*/
|
|
860
|
+
PASSED = 1,
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Unchecked: the run's version of the module is no longer given, withdrawn or out of the window
|
|
864
|
+
* of formats that `api` reads, or an attempt of the run was closed `CLOSE_REASON_UNCHECKED`.
|
|
865
|
+
*
|
|
866
|
+
* @generated from enum value: RUN_END_REASON_UNCHECKED = 2;
|
|
867
|
+
*/
|
|
868
|
+
UNCHECKED = 2,
|
|
869
|
+
|
|
870
|
+
/**
|
|
871
|
+
* Not suitable: the module is no longer connected or has no current version for the learner, or
|
|
872
|
+
* the lesson or one of its tasks no longer suits the age category of the profile.
|
|
873
|
+
*
|
|
874
|
+
* @generated from enum value: RUN_END_REASON_NOT_SUITABLE = 3;
|
|
875
|
+
*/
|
|
876
|
+
NOT_SUITABLE = 3,
|
|
877
|
+
|
|
878
|
+
/**
|
|
879
|
+
* Abandoned: no request on the run or its attempts for 30 days.
|
|
880
|
+
*
|
|
881
|
+
* @generated from enum value: RUN_END_REASON_ABANDONED = 4;
|
|
882
|
+
*/
|
|
883
|
+
ABANDONED = 4,
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* Describes the enum novatrail.api.v1.RunEndReason.
|
|
888
|
+
*/
|
|
889
|
+
export declare const RunEndReasonSchema: GenEnum<RunEndReason>;
|
|
890
|
+
|
|
@@ -4,8 +4,10 @@
|
|
|
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, with the list of its reason
|
|
9
|
+
// codes, which the adult's progress alone carries. What they mean, and how `app` reads a cause it
|
|
10
|
+
// does not know, are the rules of contracts/README.md, section 15.
|
|
9
11
|
|
|
10
12
|
import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
|
|
11
13
|
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
@@ -14,7 +16,7 @@ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
|
14
16
|
* Describes the file novatrail/api/v1/cause.proto.
|
|
15
17
|
*/
|
|
16
18
|
export const file_novatrail_api_v1_cause = /*@__PURE__*/
|
|
17
|
-
fileDesc("
|
|
19
|
+
fileDesc("Chxub3ZhdHJhaWwvYXBpL3YxL2NhdXNlLnByb3RvEhBub3ZhdHJhaWwuYXBpLnYxIvwCCgdSZWZ1c2FsEiYKBWNhdXNlGAEgASgOMhcubm92YXRyYWlsLmFwaS52MS5DYXVzZRI1CgxjbG9zZV9yZWFzb24YAiABKA4yHS5ub3ZhdHJhaWwuYXBpLnYxLkNsb3NlUmVhc29uSAASNQoPbmV4dF9mYW1pbHlfZGF5GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAEhcKDXdyb25nX2Fuc3dlcnMYBCABKAVIABIyCgxsb2NrZWRfdW50aWwYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAASHgoUbWF4X2F1dGhfYWdlX3NlY29uZHMYBiABKAVIABIrCgdydW5fZW5kGAcgASgLMhgubm92YXRyYWlsLmFwaS52MS5SdW5FbmRIABI5Cg5lbmRlZF9zZWdtZW50cxgIIAEoCzIfLm5vdmF0cmFpbC5hcGkudjEuRW5kZWRTZWdtZW50c0gAQgYKBGRhdGEinAEKB091dGNvbWUSJgoFY2F1c2UYASABKA4yFy5ub3ZhdHJhaWwuYXBpLnYxLkNhdXNlEjMKD25leHRfZmFtaWx5X2RheRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoNb3duX2tleV9saW1pdBgDIAEoCzIdLm5vdmF0cmFpbC5hcGkudjEuT3duS2V5TGltaXQibgoLT3duS2V5TGltaXQSKwoFY2F1c2UYASABKA4yHC5ub3ZhdHJhaWwuYXBpLnYxLkxpbWl0Q2F1c2USMgoOYWNjZXNzX3JldHVybnMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wInkKDEVuZ2luZUNob2ljZRIRCgljaG9pY2VfaWQYASABKAkSKgoEa2luZBgCIAEoDjIcLm5vdmF0cmFpbC5hcGkudjEuQ2hvaWNlS2luZBIqCgdvdXRjb21lGAMgASgLMhkubm92YXRyYWlsLmFwaS52MS5PdXRjb21lImgKBlJ1bkVuZBIuCgZyZWFzb24YASABKA4yHi5ub3ZhdHJhaWwuYXBpLnYxLlJ1bkVuZFJlYXNvbhIuCgZjaG9pY2UYAiABKAsyHi5ub3ZhdHJhaWwuYXBpLnYxLkVuZ2luZUNob2ljZSIfCg1FbmRlZFNlZ21lbnRzEg4KBnBsYWNlcxgBIAMoBSrVBwoFQ2F1c2USFQoRQ0FVU0VfVU5TUEVDSUZJRUQQABIUChBDQVVTRV9OT19QUk9GSUxFEAESEwoPQ0FVU0VfTk9UX0ZPVU5EEAISGAoUQ0FVU0VfQVRURU1QVF9DTE9TRUQQAxIaChZDQVVTRV9LRVlfQUxSRUFEWV9VU0VEEAQSFQoRQ0FVU0VfU1RJTExfR09JTkcQBRIdChlDQVVTRV9LRVlfTk9UX0ZPUl9QUk9GSUxFEAYSDwoLQ0FVU0VfUVVPVEEQBxIYChRDQVVTRV9QTEFURk9STV9MSU1JVBAIEhYKEkNBVVNFX05PVF9BRE1JVFRFRBAJEhQKEENBVVNFX0FJX0ZBSUxVUkUQChIXChNDQVVTRV9MSU1JVF9SRUFDSEVEEAsSFQoRQ0FVU0VfS0VZX1JFRlVTRUQQDBIWChJDQVVTRV9BRFVMVF9ORUVERUQQDRIbChdDQVVTRV9MQURERVJfTk9UX1BBU1NFRBAOEhQKEENBVVNFX05PX1NIT1dJTkcQDxIRCg1DQVVTRV9OT19SVU5HEBASFwoTQ0FVU0VfQUxSRUFEWV9BU0tFRBAREhgKFENBVVNFX05PX09USEVSX1dPUkRTEBISFwoTQ0FVU0VfTk9fTU9SRV9XT1JEUxATEhcKE0NBVVNFX05PX1NVQk1JU1NJT04QFBIVChFDQVVTRV9OT1RfQ1VSUkVOVBAVEhMKD0NBVVNFX05PX0FDQ0VTUxAWEhYKEkNBVVNFX0FDQ09VTlRfR09ORRAXEh4KGkNBVVNFX0ZSRVNIX1NJR05fSU5fTkVFREVEEBgSGwoXQ0FVU0VfQ09ERV9OT1RfQUNDRVBURUQQGRIYChRDQVVTRV9BTFJFQURZX0VYSVNUUxAaEh4KGkNBVVNFX0NPVU5UUllfTk9UX0FDQ0VQVEVEEBsSFAoQQ0FVU0VfTk9fQ09OU0VOVBAcEhQKEENBVVNFX1BJTl9MT0NLRUQQHRIZChVDQVVTRV9QSU5fQUxSRUFEWV9TRVQQHhIQCgxDQVVTRV9OT19QSU4QHxIbChdDQVVTRV9WRVJTSU9OX05PVF9HSVZFThAgEhkKFUNBVVNFX1BBQ0tBR0VfVU5LTk9XThAhEhwKGENBVVNFX05PX0NVUlJFTlRfVkVSU0lPThAiEhYKEkNBVVNFX05PVF9TVUlUQUJMRRAjEhMKD0NBVVNFX1JVTl9FTkRFRBAkEhwKGENBVVNFX1NFR01FTlRTX05PVF9FTkRFRBAlEh0KGUNBVVNFX1NFR01FTlRfVU5BVkFJTEFCTEUQJiqIAQoKTGltaXRDYXVzZRIbChdMSU1JVF9DQVVTRV9VTlNQRUNJRklFRBAAEhUKEUxJTUlUX0NBVVNFX0xJTUlUEAESFAoQTElNSVRfQ0FVU0VfVElFUhACEhcKE0xJTUlUX0NBVVNFX0JBTEFOQ0UQAxIXChNMSU1JVF9DQVVTRV9QQVlNRU5UEAQq6wEKC0Nsb3NlUmVhc29uEhwKGENMT1NFX1JFQVNPTl9VTlNQRUNJRklFRBAAEhgKFENMT1NFX1JFQVNPTl9DT1JSRUNUEAESHwobQ0xPU0VfUkVBU09OX1NPTFVUSU9OX1NIT1dOEAISFQoRQ0xPU0VfUkVBU09OX0xFRlQQAxIaChZDTE9TRV9SRUFTT05fQUJBTkRPTkVEEAQSGgoWQ0xPU0VfUkVBU09OX1VOQ0hFQ0tFRBAFEh0KGUNMT1NFX1JFQVNPTl9OT1RfU1VJVEFCTEUQBhIVChFDTE9TRV9SRUFTT05fRE9ORRAHKnAKCkNob2ljZUtpbmQSGwoXQ0hPSUNFX0tJTkRfVU5TUEVDSUZJRUQQABIWChJDSE9JQ0VfS0lORF9MRVNTT04QARIUChBDSE9JQ0VfS0lORF9UQVNLEAISFwoTQ0hPSUNFX0tJTkRfTk9USElORxADKoMCCgpSZWFzb25Db2RlEhsKF1JFQVNPTl9DT0RFX1VOU1BFQ0lGSUVEEAASHQoZUkVBU09OX0NPREVfQ09OU09MSURBVElPThABEhkKFVJFQVNPTl9DT0RFX05FV19TS0lMTBACEhUKEVJFQVNPTl9DT0RFX1FVRVVFEAMSGgoWUkVBU09OX0NPREVfUkVQRVRJVElPThAEEhUKEVJFQVNPTl9DT0RFX1BST0JFEAUSHAoYUkVBU09OX0NPREVfU0tJTExfQ0hPU0VOEAYSHAoYUkVBU09OX0NPREVfQVVUSE9SX09SREVSEAcSGAoUUkVBU09OX0NPREVfT1BFTl9SVU4QCCqmAQoMUnVuRW5kUmVhc29uEh4KGlJVTl9FTkRfUkVBU09OX1VOU1BFQ0lGSUVEEAASGQoVUlVOX0VORF9SRUFTT05fUEFTU0VEEAESHAoYUlVOX0VORF9SRUFTT05fVU5DSEVDS0VEEAISHwobUlVOX0VORF9SRUFTT05fTk9UX1NVSVRBQkxFEAMSHAoYUlVOX0VORF9SRUFTT05fQUJBTkRPTkVEEARCwwEKFGNvbS5ub3ZhdHJhaWwuYXBpLnYxQgpDYXVzZVByb3RvUAFaPWdpdGh1Yi5jb20vYWx0bm92YXRyYWlsL3NwZWMvY29udHJhY3RzL25vdmF0cmFpbC9hcGkvdjE7YXBpdjGiAgNOQViqAhBOb3ZhdHJhaWwuQXBpLlYxygIQTm92YXRyYWlsXEFwaVxWMeICHE5vdmF0cmFpbFxBcGlcVjFcR1BCTWV0YWRhdGHqAhJOb3ZhdHJhaWw6OkFwaTo6VjFiBnByb3RvMw", [file_google_protobuf_timestamp]);
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* Describes the message novatrail.api.v1.Refusal.
|
|
@@ -37,6 +39,27 @@ export const OutcomeSchema = /*@__PURE__*/
|
|
|
37
39
|
export const OwnKeyLimitSchema = /*@__PURE__*/
|
|
38
40
|
messageDesc(file_novatrail_api_v1_cause, 2);
|
|
39
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Describes the message novatrail.api.v1.EngineChoice.
|
|
44
|
+
* Use `create(EngineChoiceSchema)` to create a new message.
|
|
45
|
+
*/
|
|
46
|
+
export const EngineChoiceSchema = /*@__PURE__*/
|
|
47
|
+
messageDesc(file_novatrail_api_v1_cause, 3);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Describes the message novatrail.api.v1.RunEnd.
|
|
51
|
+
* Use `create(RunEndSchema)` to create a new message.
|
|
52
|
+
*/
|
|
53
|
+
export const RunEndSchema = /*@__PURE__*/
|
|
54
|
+
messageDesc(file_novatrail_api_v1_cause, 4);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Describes the message novatrail.api.v1.EndedSegments.
|
|
58
|
+
* Use `create(EndedSegmentsSchema)` to create a new message.
|
|
59
|
+
*/
|
|
60
|
+
export const EndedSegmentsSchema = /*@__PURE__*/
|
|
61
|
+
messageDesc(file_novatrail_api_v1_cause, 5);
|
|
62
|
+
|
|
40
63
|
/**
|
|
41
64
|
* Describes the enum novatrail.api.v1.Cause.
|
|
42
65
|
*/
|
|
@@ -84,3 +107,53 @@ export const CloseReasonSchema = /*@__PURE__*/
|
|
|
84
107
|
export const CloseReason = /*@__PURE__*/
|
|
85
108
|
tsEnum(CloseReasonSchema);
|
|
86
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Describes the enum novatrail.api.v1.ChoiceKind.
|
|
112
|
+
*/
|
|
113
|
+
export const ChoiceKindSchema = /*@__PURE__*/
|
|
114
|
+
enumDesc(file_novatrail_api_v1_cause, 3);
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* What an engine's choice gives. A kind its build does not know `app` reads as
|
|
118
|
+
* `CHOICE_KIND_NOTHING`.
|
|
119
|
+
*
|
|
120
|
+
* @generated from enum novatrail.api.v1.ChoiceKind
|
|
121
|
+
*/
|
|
122
|
+
export const ChoiceKind = /*@__PURE__*/
|
|
123
|
+
tsEnum(ChoiceKindSchema);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Describes the enum novatrail.api.v1.ReasonCode.
|
|
127
|
+
*/
|
|
128
|
+
export const ReasonCodeSchema = /*@__PURE__*/
|
|
129
|
+
enumDesc(file_novatrail_api_v1_cause, 4);
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Why the engine gave what it chose: its reason code (concepts 12; R29; R100). The adult sees it
|
|
133
|
+
* in the progress of a profile, and a child is not told it: no answer to a learning request
|
|
134
|
+
* carries it. A choice has one code, that of the branch of the engine's rule that made it, a
|
|
135
|
+
* lesson's as a task's, and `ChoiceKind` says what it gave. A value never changes its meaning: a
|
|
136
|
+
* branch of the engine's rule that the list does not name comes as a new value, and the value of a
|
|
137
|
+
* branch the engine drops stays, its comment saying that it is no longer given. A code its build
|
|
138
|
+
* does not know `app` words as a reason it does not name.
|
|
139
|
+
*
|
|
140
|
+
* @generated from enum novatrail.api.v1.ReasonCode
|
|
141
|
+
*/
|
|
142
|
+
export const ReasonCode = /*@__PURE__*/
|
|
143
|
+
tsEnum(ReasonCodeSchema);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Describes the enum novatrail.api.v1.RunEndReason.
|
|
147
|
+
*/
|
|
148
|
+
export const RunEndReasonSchema = /*@__PURE__*/
|
|
149
|
+
enumDesc(file_novatrail_api_v1_cause, 5);
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Why a lesson run ended (concepts 5). A reason its build does not know `app` reads as an end other
|
|
153
|
+
* than `RUN_END_REASON_PASSED`, and erases the state of the lesson as at every end.
|
|
154
|
+
*
|
|
155
|
+
* @generated from enum novatrail.api.v1.RunEndReason
|
|
156
|
+
*/
|
|
157
|
+
export const RunEndReason = /*@__PURE__*/
|
|
158
|
+
tsEnum(RunEndReasonSchema);
|
|
159
|
+
|