@happyvertical/smrt-education 0.57.48 → 0.57.49
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/AGENTS.md +9 -0
- package/README.md +23 -2
- package/agents/course-authoring-service.md +44 -1
- package/agents/course-bundle-import.md +148 -0
- package/agents/group-sharing.md +20 -0
- package/agents/learner-service.md +35 -0
- package/agents/question-extraction.md +4 -1
- package/agents/tutor-context.md +62 -0
- package/dist/catalog.d.ts +12 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/chunks/{workbook-photo-service-B7Tujv__.js → workbook-photo-service-WwDDC5GF.js} +692 -18
- package/dist/chunks/workbook-photo-service-WwDDC5GF.js.map +1 -0
- package/dist/course-authoring-contracts.d.ts +26 -3
- package/dist/course-authoring-contracts.d.ts.map +1 -1
- package/dist/course-authoring-models.d.ts +44 -1
- package/dist/course-authoring-models.d.ts.map +1 -1
- package/dist/course-authoring-service.d.ts +39 -0
- package/dist/course-authoring-service.d.ts.map +1 -1
- package/dist/course-bundle-contracts.d.ts +93 -0
- package/dist/course-bundle-contracts.d.ts.map +1 -0
- package/dist/course-bundle-models.d.ts +66 -0
- package/dist/course-bundle-models.d.ts.map +1 -0
- package/dist/course-bundle-service.d.ts +126 -0
- package/dist/course-bundle-service.d.ts.map +1 -0
- package/dist/course-bundle-zip.d.ts +48 -0
- package/dist/course-bundle-zip.d.ts.map +1 -0
- package/dist/course-bundle.d.ts +135 -0
- package/dist/course-bundle.d.ts.map +1 -0
- package/dist/course-visibility.d.ts +22 -0
- package/dist/course-visibility.d.ts.map +1 -0
- package/dist/group-sharing-reader.d.ts.map +1 -1
- package/dist/index.d.ts +17 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2563 -510
- package/dist/index.js.map +1 -1
- package/dist/ingestion.js +1 -1
- package/dist/learner-history.d.ts +50 -1
- package/dist/learner-history.d.ts.map +1 -1
- package/dist/learner-plan-service.d.ts.map +1 -1
- package/dist/learner-service.d.ts +91 -2
- package/dist/learner-service.d.ts.map +1 -1
- package/dist/learners.d.ts +2 -0
- package/dist/learners.d.ts.map +1 -1
- package/dist/manifest.json +11774 -7626
- package/dist/question-response-service.d.ts +21 -3
- package/dist/question-response-service.d.ts.map +1 -1
- package/dist/smrt-knowledge.json +3507 -2008
- package/dist/tutor-context-service.d.ts +34 -0
- package/dist/tutor-context-service.d.ts.map +1 -0
- package/dist/tutor-contracts.d.ts +123 -0
- package/dist/tutor-contracts.d.ts.map +1 -0
- package/dist/tutor-models.d.ts +77 -0
- package/dist/tutor-models.d.ts.map +1 -0
- package/dist/tutor-session-service.d.ts +115 -0
- package/dist/tutor-session-service.d.ts.map +1 -0
- package/package.json +8 -8
- package/dist/chunks/workbook-photo-service-B7Tujv__.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { DatabaseInterface } from '@happyvertical/sql';
|
|
2
|
-
import type { CourseLicenseKind, CourseModality } from './catalog.js';
|
|
2
|
+
import type { CourseLicenseKind, CourseModality, CourseVisibility } from './catalog.js';
|
|
3
3
|
import type { LessonAssetRelationship } from './lesson-assets.js';
|
|
4
4
|
import type { LessonLayoutParams, LessonQuestionRefInput } from './question-contracts.js';
|
|
5
5
|
/** Authorizer actions. The host maps roles; the service never infers a role. */
|
|
6
|
-
export type CourseAuthoringAction = 'education.course.read-draft' | 'education.course.author' | 'education.course.generate' | 'education.course.review' | 'education.course.release' | 'education.course.assign' | 'education.course.archive';
|
|
6
|
+
export type CourseAuthoringAction = 'education.course.read-draft' | 'education.course.author' | 'education.course.generate' | 'education.course.review' | 'education.course.release' | 'education.course.assign' | 'education.course.archive' | 'education.course.set-visibility' | 'education.course.set-cover';
|
|
7
7
|
export declare const COURSE_AUTHORING_ACTIONS: readonly CourseAuthoringAction[];
|
|
8
8
|
/** Which service operation asked, so a host can deny agents specific operations. */
|
|
9
|
-
export type CourseAuthoringOperation = 'create' | 'save-draft' | 'read-draft' | 'release' | 'archive' | 'unarchive' | 'discard' | 'pin-enrollment' | 'upgrade-enrollment' | 'set-auto-upgrade' | 'auto-upgrade' | 'read-enrollment' | 'create-question' | 'save-question' | 'read-question' | 'resolve-question-revisions' | 'create-objective' | 'save-objective' | 'link-objectives' | 'read-worksheet' | 'request-generation' | 'run-generation' | 'cancel-generation' | 'accept-proposal' | 'read-generation' | 'record-review' | 'read-review' | 'resolve-finding' | 'note-context-change' | 'list-courses' | 'list-upgrade-choices' | 'list-auto-upgrade-skips' | 'read-released-lesson' | 'attach-printable' | 'preserve-question-extraction' | 'read-question-extraction' | 'apply-question-extraction';
|
|
9
|
+
export type CourseAuthoringOperation = 'create' | 'save-draft' | 'read-draft' | 'release' | 'archive' | 'unarchive' | 'set-visibility' | 'set-cover' | 'discard' | 'pin-enrollment' | 'upgrade-enrollment' | 'set-auto-upgrade' | 'auto-upgrade' | 'read-enrollment' | 'create-question' | 'save-question' | 'read-question' | 'resolve-question-revisions' | 'create-objective' | 'save-objective' | 'link-objectives' | 'read-worksheet' | 'request-generation' | 'run-generation' | 'cancel-generation' | 'accept-proposal' | 'read-generation' | 'record-review' | 'read-review' | 'resolve-finding' | 'note-context-change' | 'list-courses' | 'list-upgrade-choices' | 'list-auto-upgrade-skips' | 'read-released-lesson' | 'attach-printable' | 'preserve-question-extraction' | 'read-question-extraction' | 'apply-question-extraction' | 'import-course-bundle' | 'read-course-bundle';
|
|
10
10
|
/** Trusted identity supplied by the host session, never by a browser form. */
|
|
11
11
|
export interface CourseAuthoringActor {
|
|
12
12
|
tenantId: string;
|
|
@@ -239,6 +239,8 @@ export type CourseReleaseView = Readonly<{
|
|
|
239
239
|
revisionId: string;
|
|
240
240
|
releaseNumber: number;
|
|
241
241
|
releaseCourseId: string;
|
|
242
|
+
/** The cover snapshotted onto this release; null when the course had none. */
|
|
243
|
+
coverAssetId: string | null;
|
|
242
244
|
reviewId: string | null;
|
|
243
245
|
actorUserId: string;
|
|
244
246
|
delegatingGuardianUserId: string | null;
|
|
@@ -259,6 +261,10 @@ export type CourseStateView = Readonly<{
|
|
|
259
261
|
licenseKind: CourseLicenseKind;
|
|
260
262
|
/** Personal-use material makes the course tenant-private and never group-shareable. */
|
|
261
263
|
groupShareable: boolean;
|
|
264
|
+
/** `family` unless set otherwise (see `setVisibility`). */
|
|
265
|
+
visibility: CourseVisibility;
|
|
266
|
+
/** The education-owned cover image asset, or null (hosts render a fallback). */
|
|
267
|
+
coverAssetId: string | null;
|
|
262
268
|
headRevisionId: string | null;
|
|
263
269
|
releases: ReadonlyArray<{
|
|
264
270
|
id: string;
|
|
@@ -305,6 +311,8 @@ export type CourseSummaryView = Readonly<{
|
|
|
305
311
|
* false until the course has a release (nothing to share).
|
|
306
312
|
*/
|
|
307
313
|
groupShareable: boolean;
|
|
314
|
+
visibility: CourseVisibility;
|
|
315
|
+
coverAssetId: string | null;
|
|
308
316
|
/** Number of releases (0 for a draft-only course). */
|
|
309
317
|
releaseCount: number;
|
|
310
318
|
/** The draft head; `revisionId` is the expected-head token for the next save. */
|
|
@@ -318,6 +326,8 @@ export type CourseSummaryView = Readonly<{
|
|
|
318
326
|
revisionId: string;
|
|
319
327
|
releaseNumber: number;
|
|
320
328
|
releaseCourseId: string;
|
|
329
|
+
/** The cover snapshotted onto that release. */
|
|
330
|
+
coverAssetId: string | null;
|
|
321
331
|
recordedAt: string;
|
|
322
332
|
}> | null;
|
|
323
333
|
archive: Readonly<{
|
|
@@ -461,4 +471,17 @@ export declare class EnrollmentPinConflictError extends CourseAuthoringError {
|
|
|
461
471
|
export declare class CourseMaterialCopyError extends CourseAuthoringError {
|
|
462
472
|
constructor(message?: string);
|
|
463
473
|
}
|
|
474
|
+
/** Result of `setVisibility`/`setCover`: the course state after the (maybe unchanged) write. */
|
|
475
|
+
export type CourseVisibilityResult = CourseStateView;
|
|
476
|
+
export type CourseCoverResult = CourseStateView;
|
|
477
|
+
/** A personal-use-copy course can never be shared with groups or listed publicly. */
|
|
478
|
+
export declare class CourseVisibilityRefusedError extends CourseAuthoringError {
|
|
479
|
+
readonly visibility: CourseVisibility;
|
|
480
|
+
constructor(visibility: CourseVisibility);
|
|
481
|
+
}
|
|
482
|
+
/** The cover asset is missing, foreign, not an image, an answer key or unreadable. */
|
|
483
|
+
export declare class CourseCoverInvalidError extends CourseAuthoringError {
|
|
484
|
+
readonly reason: string;
|
|
485
|
+
constructor(reason: string);
|
|
486
|
+
}
|
|
464
487
|
//# sourceMappingURL=course-authoring-contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course-authoring-contracts.d.ts","sourceRoot":"","sources":["../src/course-authoring-contracts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"course-authoring-contracts.d.ts","sourceRoot":"","sources":["../src/course-authoring-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SmrtCollection, SmrtObject, type SmrtSaveOptions } from '@happyvertical/smrt-core';
|
|
2
|
-
import type
|
|
2
|
+
import { type CourseLicenseKind } from './catalog.js';
|
|
3
3
|
/** Immutable snapshot of one authored course draft. The head row selects the draft. */
|
|
4
4
|
export declare class CourseRevision extends SmrtObject {
|
|
5
5
|
tenantId: string;
|
|
@@ -141,6 +141,49 @@ export declare class CourseArchiveDecision extends SmrtObject {
|
|
|
141
141
|
export declare class CourseArchiveDecisionCollection extends SmrtCollection<CourseArchiveDecision> {
|
|
142
142
|
static readonly _itemClass: typeof CourseArchiveDecision;
|
|
143
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Append-only record of every visibility change of an authored course: the
|
|
146
|
+
* previous and new value, the actor and why ('request' for `setVisibility`,
|
|
147
|
+
* 'licence' when a personal-use revision narrowed the course back to family).
|
|
148
|
+
*/
|
|
149
|
+
export declare class CourseVisibilityChange extends SmrtObject {
|
|
150
|
+
tenantId: string;
|
|
151
|
+
courseId: string;
|
|
152
|
+
sequence: number;
|
|
153
|
+
previousVisibility: string;
|
|
154
|
+
visibility: string;
|
|
155
|
+
reason: string;
|
|
156
|
+
actorUserId: string;
|
|
157
|
+
delegatingGuardianUserId: string;
|
|
158
|
+
delegationId: string;
|
|
159
|
+
requestKey: string;
|
|
160
|
+
recordedAt: Date;
|
|
161
|
+
constructor(options?: Record<string, unknown>);
|
|
162
|
+
delete(): Promise<void>;
|
|
163
|
+
save(options?: SmrtSaveOptions): Promise<this>;
|
|
164
|
+
}
|
|
165
|
+
export declare class CourseVisibilityChangeCollection extends SmrtCollection<CourseVisibilityChange> {
|
|
166
|
+
static readonly _itemClass: typeof CourseVisibilityChange;
|
|
167
|
+
}
|
|
168
|
+
/** Append-only record of every cover change; an empty asset id means "no cover". */
|
|
169
|
+
export declare class CourseCoverChange extends SmrtObject {
|
|
170
|
+
tenantId: string;
|
|
171
|
+
courseId: string;
|
|
172
|
+
sequence: number;
|
|
173
|
+
previousAssetId: string;
|
|
174
|
+
assetId: string;
|
|
175
|
+
actorUserId: string;
|
|
176
|
+
delegatingGuardianUserId: string;
|
|
177
|
+
delegationId: string;
|
|
178
|
+
requestKey: string;
|
|
179
|
+
recordedAt: Date;
|
|
180
|
+
constructor(options?: Record<string, unknown>);
|
|
181
|
+
delete(): Promise<void>;
|
|
182
|
+
save(options?: SmrtSaveOptions): Promise<this>;
|
|
183
|
+
}
|
|
184
|
+
export declare class CourseCoverChangeCollection extends SmrtCollection<CourseCoverChange> {
|
|
185
|
+
static readonly _itemClass: typeof CourseCoverChange;
|
|
186
|
+
}
|
|
144
187
|
/** Audit record left when an unreferenced draft is discarded. */
|
|
145
188
|
export declare class CourseDiscardTombstone extends SmrtObject {
|
|
146
189
|
tenantId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course-authoring-models.d.ts","sourceRoot":"","sources":["../src/course-authoring-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,UAAU,EACV,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"course-authoring-models.d.ts","sourceRoot":"","sources":["../src/course-authoring-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DatabaseInterface } from '@happyvertical/sql';
|
|
2
|
+
import { type CourseVisibility } from './catalog.js';
|
|
2
3
|
import { type AutoUpgradeSkipView, type CourseAuthoringAction, type CourseAuthoringActor, type CourseAuthoringAuthorizer, type CourseAuthoringOperation, type CourseDelegationVerifier, type CourseDraftInput, type CourseHeadView, type CourseLessonRevisionView, type CourseLifecycleState, type CourseMaterialCopyPort, type CoursePage, type CoursePageRequest, type CourseReferenceGuard, type CourseReleaseView, type CourseRevisionView, type CourseStateView, type CourseSummaryView, type CourseUpgradeChoiceView, type EnrollmentPinView, type EnrollmentReleaseView, type ReleaseReviewGate, type SetAutoUpgradeResult } from './course-authoring-contracts.js';
|
|
3
4
|
import { type CourseRevision, type LessonRevision } from './course-authoring-models.js';
|
|
4
5
|
type Row = Record<string, unknown>;
|
|
@@ -129,6 +130,8 @@ export declare class CourseAuthoringService {
|
|
|
129
130
|
*/
|
|
130
131
|
listCourses(request: CourseAuthoringActor & CoursePageRequest & {
|
|
131
132
|
includeDiscarded?: boolean;
|
|
133
|
+
/** Only courses whose effective visibility is this value. */
|
|
134
|
+
visibility?: CourseVisibility;
|
|
132
135
|
}): Promise<CoursePage<CourseSummaryView>>;
|
|
133
136
|
private courseSummary;
|
|
134
137
|
private choiceView;
|
|
@@ -164,6 +167,42 @@ export declare class CourseAuthoringService {
|
|
|
164
167
|
}): Promise<CourseReleaseView>;
|
|
165
168
|
private materialize;
|
|
166
169
|
private releaseView;
|
|
170
|
+
/** Most restrictive of the head revision and every release's materialized course. */
|
|
171
|
+
private effectiveLicence;
|
|
172
|
+
private requireChangeTable;
|
|
173
|
+
/**
|
|
174
|
+
* Sets who the course is meant for. `groups` is the precondition for sharing a
|
|
175
|
+
* released course with the family's groups; `public` is a listing label only
|
|
176
|
+
* and grants no read. A personal-use-copy course (any part, ever) can only be
|
|
177
|
+
* `family`. Appends a change row (actor, previous, new, time); a request that
|
|
178
|
+
* leaves the stored value unchanged writes nothing.
|
|
179
|
+
*/
|
|
180
|
+
setVisibility(request: CourseAuthoringActor & {
|
|
181
|
+
courseId: string;
|
|
182
|
+
visibility: CourseVisibility;
|
|
183
|
+
requestKey: string;
|
|
184
|
+
}): Promise<CourseStateView>;
|
|
185
|
+
/** Narrows to family (with a change row) when a revision made the course personal-use. */
|
|
186
|
+
private narrowForLicence;
|
|
187
|
+
private writeIdentity;
|
|
188
|
+
/**
|
|
189
|
+
* Why an asset cannot be this course's cover, or null. Education-owned means a
|
|
190
|
+
* material this course copied into the tenant (`materialCopy`); it must be an
|
|
191
|
+
* image and never an answer key anywhere in the tenant.
|
|
192
|
+
*/
|
|
193
|
+
private coverIneligibility;
|
|
194
|
+
/** Fails closed: the asset must be readable by this very actor through the asset guard. */
|
|
195
|
+
private coverReadable;
|
|
196
|
+
/**
|
|
197
|
+
* Sets (or, with `assetId: null`, clears) the course cover: an education-owned
|
|
198
|
+
* image the actor can read, never an answer key. The next release snapshots it
|
|
199
|
+
* onto the release row. Appends a change row; an unchanged cover writes nothing.
|
|
200
|
+
*/
|
|
201
|
+
setCover(request: CourseAuthoringActor & {
|
|
202
|
+
courseId: string;
|
|
203
|
+
assetId: string | null;
|
|
204
|
+
requestKey: string;
|
|
205
|
+
}): Promise<CourseStateView>;
|
|
167
206
|
/** Reversible; never touches enrollments, progress, submissions, grades or notes. */
|
|
168
207
|
archive(request: CourseAuthoringActor & {
|
|
169
208
|
courseId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course-authoring-service.d.ts","sourceRoot":"","sources":["../src/course-authoring-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"course-authoring-service.d.ts","sourceRoot":"","sources":["../src/course-authoring-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { CourseAuthoringError } from './course-authoring-contracts.js';
|
|
2
|
+
/**
|
|
3
|
+
* Hard ceilings for untrusted course bundles (SMRT #4578). A host may lower any
|
|
4
|
+
* of them per call (`resolveCourseBundleLimits`) but never raise them. Declared
|
|
5
|
+
* sizes in an archive are never trusted: every cap is enforced on the bytes
|
|
6
|
+
* actually produced.
|
|
7
|
+
*/
|
|
8
|
+
export interface CourseBundleLimits {
|
|
9
|
+
/** Largest accepted archive (or total input of a plain file set), in bytes. */
|
|
10
|
+
maxArchiveBytes: number;
|
|
11
|
+
/** Most entries (files and directories) in one archive or file set. */
|
|
12
|
+
maxEntries: number;
|
|
13
|
+
/** Largest single inflated member. A larger honest member is recorded refused. */
|
|
14
|
+
maxEntryBytes: number;
|
|
15
|
+
/** Largest sum of inflated members. */
|
|
16
|
+
maxTotalBytes: number;
|
|
17
|
+
/** Largest inflated/compressed ratio for a member above `ratioFloorBytes`. */
|
|
18
|
+
maxCompressionRatio: number;
|
|
19
|
+
/** Members at or below this inflated size skip the ratio check. */
|
|
20
|
+
ratioFloorBytes: number;
|
|
21
|
+
/** Longest normalised path, in UTF-8 bytes. */
|
|
22
|
+
maxPathBytes: number;
|
|
23
|
+
/** Longest path segment, in UTF-8 bytes. */
|
|
24
|
+
maxSegmentBytes: number;
|
|
25
|
+
/** Deepest directory path (segments, including the file name). */
|
|
26
|
+
maxPathDepth: number;
|
|
27
|
+
/** Largest `manifest.json`. */
|
|
28
|
+
maxManifestBytes: number;
|
|
29
|
+
/** Most lessons one bundle may propose (matches the proposal schema). */
|
|
30
|
+
maxLessons: number;
|
|
31
|
+
/** Longest text member used as a lesson body, in characters. */
|
|
32
|
+
maxLessonBodyChars: number;
|
|
33
|
+
}
|
|
34
|
+
export declare const COURSE_BUNDLE_LIMITS: Readonly<CourseBundleLimits>;
|
|
35
|
+
/** Nested archives are never expanded: depth is one, and a zip member is unsupported evidence. */
|
|
36
|
+
export declare const COURSE_BUNDLE_MAX_ARCHIVE_DEPTH = 1;
|
|
37
|
+
/** The only manifest schema version. */
|
|
38
|
+
export declare const COURSE_BUNDLE_MANIFEST_VERSION = 1;
|
|
39
|
+
/** Manifest location: the archive (or file set) root. */
|
|
40
|
+
export declare const COURSE_BUNDLE_MANIFEST_PATH = "manifest.json";
|
|
41
|
+
/** Clamp a host override to the hard ceilings; invalid values fall back to the ceiling. */
|
|
42
|
+
export declare function resolveCourseBundleLimits(override?: Partial<CourseBundleLimits>): CourseBundleLimits;
|
|
43
|
+
export type CourseBundleRefusalReason = 'archive_too_large' | 'not_a_zip' | 'truncated' | 'ambiguous_end_record' | 'zip64_unsupported' | 'multi_disk' | 'too_many_entries' | 'invalid_central_directory' | 'invalid_entry' | 'unsupported_method' | 'encrypted_entry' | 'symlink_entry' | 'special_entry' | 'invalid_path' | 'path_too_deep' | 'duplicate_name' | 'entry_out_of_range' | 'overlapping_entries' | 'local_header_mismatch' | 'compression_ratio' | 'total_too_large' | 'size_mismatch' | 'bad_crc' | 'inflate_failed' | 'empty_bundle' | 'manifest_invalid' | 'manifest_version' | 'manifest_unknown_key' | 'manifest_missing_member' | 'manifest_duplicate_member' | 'duplicate_key' | 'too_many_lessons' | 'lesson_too_large';
|
|
44
|
+
/**
|
|
45
|
+
* The whole bundle is refused: it is hostile, damaged or outside the contract.
|
|
46
|
+
* `reason` is stable; `entry` names the offending member path when one applies
|
|
47
|
+
* (untrusted text, never rendered as markup).
|
|
48
|
+
*/
|
|
49
|
+
export declare class CourseBundleRefusedError extends CourseAuthoringError {
|
|
50
|
+
readonly reason: CourseBundleRefusalReason;
|
|
51
|
+
readonly entry?: string | undefined;
|
|
52
|
+
constructor(reason: CourseBundleRefusalReason, entry?: string | undefined);
|
|
53
|
+
}
|
|
54
|
+
export declare class CourseBundleNotFoundError extends CourseAuthoringError {
|
|
55
|
+
constructor();
|
|
56
|
+
}
|
|
57
|
+
/** What the bytes of a bundle member turned out to be (by content, never by name alone). */
|
|
58
|
+
export type CourseBundleMemberKind = 'pdf' | 'image' | 'text' | 'manifest' | 'unsupported';
|
|
59
|
+
export type CourseBundleMemberStatus =
|
|
60
|
+
/** Supported, unique content: handed to extraction and eligible for a lesson. */
|
|
61
|
+
'accepted'
|
|
62
|
+
/** Identical bytes to an earlier accepted member: evidence only, never extracted twice. */
|
|
63
|
+
| 'duplicate'
|
|
64
|
+
/** Visible but not understood (unknown type, nested archive, unreadable text). */
|
|
65
|
+
| 'unsupported'
|
|
66
|
+
/** Understood and refused (encrypted PDF, oversize member). */
|
|
67
|
+
| 'refused'
|
|
68
|
+
/** The bundle manifest itself. */
|
|
69
|
+
| 'metadata';
|
|
70
|
+
export type CourseBundleMemberReason = 'unsupported_type' | 'nested_archive' | 'unreadable_text' | 'encrypted_pdf' | 'entry_too_large' | 'duplicate_content';
|
|
71
|
+
export declare const COURSE_BUNDLE_PAGE_ROLES: readonly ["exercise", "example", "instructions", "cover", "answer_key", "mixed", "unknown"];
|
|
72
|
+
export type CourseBundlePageRole = (typeof COURSE_BUNDLE_PAGE_ROLES)[number];
|
|
73
|
+
/** Named progress stages, in order. */
|
|
74
|
+
export declare const COURSE_BUNDLE_STAGES: readonly ["unpack", "classify", "extract", "propose"];
|
|
75
|
+
export type CourseBundleStage = (typeof COURSE_BUNDLE_STAGES)[number];
|
|
76
|
+
/** One progress event. A stage emits `completed: 0` first and `completed === total` last. */
|
|
77
|
+
export interface CourseBundleProgress {
|
|
78
|
+
stage: CourseBundleStage;
|
|
79
|
+
completed: number;
|
|
80
|
+
total: number;
|
|
81
|
+
}
|
|
82
|
+
/** Observer only: a throwing listener never changes the import. */
|
|
83
|
+
export type CourseBundleProgressListener = (event: CourseBundleProgress) => void;
|
|
84
|
+
/** A bundle supplied as one zip archive or as a plain set of files. */
|
|
85
|
+
export type CourseBundleInput = {
|
|
86
|
+
archive: Uint8Array;
|
|
87
|
+
} | {
|
|
88
|
+
files: ReadonlyArray<{
|
|
89
|
+
path: string;
|
|
90
|
+
bytes: Uint8Array;
|
|
91
|
+
}>;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=course-bundle-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"course-bundle-contracts.d.ts","sourceRoot":"","sources":["../src/course-bundle-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { SmrtCollection, SmrtObject, type SmrtSaveOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
/**
|
|
3
|
+
* Append-only record of one imported course bundle (SMRT #4578), keyed by the
|
|
4
|
+
* content identity of its members so re-uploading the same bundle replays.
|
|
5
|
+
* Holds hashes, sizes and placements only; the bytes stay with the host's
|
|
6
|
+
* ingestion receipts and are never copied here.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CourseBundleImport extends SmrtObject {
|
|
9
|
+
tenantId: string;
|
|
10
|
+
/** `cbi1-` digest of the sorted (path, sha256) pairs. */
|
|
11
|
+
bundleIdentity: string;
|
|
12
|
+
/** `zip` or `files`. */
|
|
13
|
+
format: string;
|
|
14
|
+
/** Reader format id that laid the bundle out (`manifest-v1`, `plain-files`). */
|
|
15
|
+
readerId: string;
|
|
16
|
+
/** Manifest schema version, 0 when none. */
|
|
17
|
+
manifestVersion: number;
|
|
18
|
+
entryCount: number;
|
|
19
|
+
acceptedCount: number;
|
|
20
|
+
duplicateCount: number;
|
|
21
|
+
unsupportedCount: number;
|
|
22
|
+
refusedCount: number;
|
|
23
|
+
totalBytes: number;
|
|
24
|
+
importedByUserId: string;
|
|
25
|
+
recordedAt: Date;
|
|
26
|
+
constructor(options?: Record<string, unknown>);
|
|
27
|
+
delete(): Promise<void>;
|
|
28
|
+
save(options?: SmrtSaveOptions): Promise<this>;
|
|
29
|
+
}
|
|
30
|
+
export declare class CourseBundleImportCollection extends SmrtCollection<CourseBundleImport> {
|
|
31
|
+
static readonly _itemClass: typeof CourseBundleImport;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Append-only evidence of one member of an imported bundle: what it was, what
|
|
35
|
+
* became of it (accepted, duplicate, unsupported, refused with a typed reason)
|
|
36
|
+
* and where the manifest or the plain layout placed it.
|
|
37
|
+
*/
|
|
38
|
+
export declare class CourseBundleMember extends SmrtObject {
|
|
39
|
+
tenantId: string;
|
|
40
|
+
importId: string;
|
|
41
|
+
/** Position in the bundle's canonical order. */
|
|
42
|
+
ordinal: number;
|
|
43
|
+
path: string;
|
|
44
|
+
/** Empty when the member was refused as oversize and never inflated. */
|
|
45
|
+
sha256: string;
|
|
46
|
+
sizeBytes: number;
|
|
47
|
+
mediaType: string;
|
|
48
|
+
kind: string;
|
|
49
|
+
status: string;
|
|
50
|
+
/** Typed reason for any status other than accepted/metadata. */
|
|
51
|
+
reason: string;
|
|
52
|
+
/** Path of the earlier member with identical bytes. */
|
|
53
|
+
duplicateOfPath: string;
|
|
54
|
+
/** Declared page role (manifest), empty when none. */
|
|
55
|
+
role: string;
|
|
56
|
+
sectionKey: string;
|
|
57
|
+
lessonKey: string;
|
|
58
|
+
recordedAt: Date;
|
|
59
|
+
constructor(options?: Record<string, unknown>);
|
|
60
|
+
delete(): Promise<void>;
|
|
61
|
+
save(options?: SmrtSaveOptions): Promise<this>;
|
|
62
|
+
}
|
|
63
|
+
export declare class CourseBundleMemberCollection extends SmrtCollection<CourseBundleMember> {
|
|
64
|
+
static readonly _itemClass: typeof CourseBundleMember;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=course-bundle-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"course-bundle-models.d.ts","sourceRoot":"","sources":["../src/course-bundle-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,UAAU,EACV,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAqClC;;;;;GAKG;AACH,qBAaa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC1B,yDAAyD;IACzD,cAAc,SAAM;IACpB,wBAAwB;IACxB,MAAM,SAAS;IACf,gFAAgF;IAChF,QAAQ,SAAM;IACd,4CAA4C;IAC5C,eAAe,SAAK;IACpB,UAAU,SAAK;IACf,aAAa,SAAK;IAClB,cAAc,SAAK;IACnB,gBAAgB,SAAK;IACrB,YAAY,SAAK;IACjB,UAAU,SAAK;IACf,gBAAgB,SAAM;IACtB,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB9D;AACD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD;AAED;;;;GAIG;AACH,qBAiBa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC4B,QAAQ,SAAM;IACpE,gDAAgD;IAChD,OAAO,SAAK;IACZ,IAAI,SAAM;IACV,wEAAwE;IACxE,MAAM,SAAM;IACZ,SAAS,SAAK;IACd,SAAS,SAAM;IACf,IAAI,SAAiB;IACrB,MAAM,SAAiB;IACvB,gEAAgE;IAChE,MAAM,SAAM;IACZ,uDAAuD;IACvD,eAAe,SAAM;IACrB,sDAAsD;IACtD,IAAI,SAAM;IACV,UAAU,SAAM;IAChB,SAAS,SAAM;IACf,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAuB9D;AACD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { DatabaseInterface } from '@happyvertical/sql';
|
|
2
|
+
import type { CourseAuthoringActor, CourseAuthoringAuthorizer } from './course-authoring-contracts.js';
|
|
3
|
+
import { CourseAuthoringService } from './course-authoring-service.js';
|
|
4
|
+
import { type BundleReaderRegistry } from './course-bundle.js';
|
|
5
|
+
import { type CourseBundleInput, type CourseBundleLimits, type CourseBundleMemberKind, type CourseBundleMemberReason, type CourseBundleMemberStatus, type CourseBundleProgressListener } from './course-bundle-contracts.js';
|
|
6
|
+
import type { CourseGenerationView } from './course-generation-contracts.js';
|
|
7
|
+
import { type CourseGenerationReviewServiceOptions } from './course-generation-review-service.js';
|
|
8
|
+
/** One bundle member as evidence. Never carries bytes, storage locators or text. */
|
|
9
|
+
export interface CourseBundleMemberView {
|
|
10
|
+
path: string;
|
|
11
|
+
ordinal: number;
|
|
12
|
+
sha256: string | null;
|
|
13
|
+
sizeBytes: number;
|
|
14
|
+
mediaType: string;
|
|
15
|
+
kind: CourseBundleMemberKind;
|
|
16
|
+
status: CourseBundleMemberStatus;
|
|
17
|
+
reason: CourseBundleMemberReason | null;
|
|
18
|
+
duplicateOfPath: string | null;
|
|
19
|
+
role: string | null;
|
|
20
|
+
sectionKey: string | null;
|
|
21
|
+
lessonKey: string | null;
|
|
22
|
+
}
|
|
23
|
+
export interface CourseBundleImportView {
|
|
24
|
+
importId: string;
|
|
25
|
+
bundleIdentity: string;
|
|
26
|
+
format: 'zip' | 'files';
|
|
27
|
+
readerId: string;
|
|
28
|
+
manifestVersion: number;
|
|
29
|
+
/** True when this bundle was already imported and nothing new was recorded. */
|
|
30
|
+
replayed: boolean;
|
|
31
|
+
entryCount: number;
|
|
32
|
+
acceptedCount: number;
|
|
33
|
+
duplicateCount: number;
|
|
34
|
+
unsupportedCount: number;
|
|
35
|
+
refusedCount: number;
|
|
36
|
+
totalBytes: number;
|
|
37
|
+
members: CourseBundleMemberView[];
|
|
38
|
+
}
|
|
39
|
+
/** An accepted member handed to the host, in memory only, for ingestion. */
|
|
40
|
+
export interface AcceptedCourseBundleMember {
|
|
41
|
+
path: string;
|
|
42
|
+
sha256: string;
|
|
43
|
+
mediaType: string;
|
|
44
|
+
kind: 'pdf' | 'image' | 'text';
|
|
45
|
+
/** Declared page role (`exercise`, `answer_key`, ...), or null. */
|
|
46
|
+
role: string | null;
|
|
47
|
+
sectionKey: string | null;
|
|
48
|
+
lessonKey: string | null;
|
|
49
|
+
bytes: Uint8Array;
|
|
50
|
+
}
|
|
51
|
+
export interface CourseBundleImportResult {
|
|
52
|
+
import: CourseBundleImportView;
|
|
53
|
+
/** Accepted members in canonical order; duplicates and unsupported ones are absent. */
|
|
54
|
+
accepted: AcceptedCourseBundleMember[];
|
|
55
|
+
/** What `receiveMember` returned per path. */
|
|
56
|
+
receipts: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
export interface ImportCourseBundleRequest extends CourseAuthoringActor {
|
|
59
|
+
bundle: CourseBundleInput;
|
|
60
|
+
/** Can only lower the hard ceilings in `COURSE_BUNDLE_LIMITS`. */
|
|
61
|
+
limits?: Partial<CourseBundleLimits>;
|
|
62
|
+
onProgress?: CourseBundleProgressListener;
|
|
63
|
+
/**
|
|
64
|
+
* Hand each accepted member to ingestion (for example `IngestionService.receive`
|
|
65
|
+
* with `sourceKind: 'course_import'`). Runs after the evidence commits and
|
|
66
|
+
* outside any transaction; it is also called on a replay, because ingestion
|
|
67
|
+
* dedups by content hash, so an interrupted first run can be driven again.
|
|
68
|
+
*/
|
|
69
|
+
receiveMember?: (member: AcceptedCourseBundleMember, context: {
|
|
70
|
+
replayed: boolean;
|
|
71
|
+
}) => unknown | Promise<unknown>;
|
|
72
|
+
}
|
|
73
|
+
export interface ProposeBundleStructureRequest extends CourseAuthoringActor {
|
|
74
|
+
importId: string;
|
|
75
|
+
/** The same bundle again: bytes are never retained by this service. */
|
|
76
|
+
bundle: CourseBundleInput;
|
|
77
|
+
courseId: string;
|
|
78
|
+
expectedHeadRevisionId: string;
|
|
79
|
+
instruction?: string;
|
|
80
|
+
limits?: Partial<CourseBundleLimits>;
|
|
81
|
+
onProgress?: CourseBundleProgressListener;
|
|
82
|
+
}
|
|
83
|
+
export interface CourseBundleImportServiceOptions extends Omit<CourseGenerationReviewServiceOptions, 'generator'> {
|
|
84
|
+
readers?: BundleReaderRegistry;
|
|
85
|
+
limits?: Partial<CourseBundleLimits>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Import a course bundle (zip with an optional closed manifest, or a plain file
|
|
89
|
+
* set) as evidence, and propose its structure through
|
|
90
|
+
* `CourseGenerationReviewService` (SMRT #4578). Untrusted input is parsed with
|
|
91
|
+
* hard bounds before anything is written; accepted members are handed to the
|
|
92
|
+
* host for ingestion extraction and nothing is published. Reuses the course
|
|
93
|
+
* authorizer: import needs `education.course.author`, reads need
|
|
94
|
+
* `education.course.read-draft`, proposals need `education.course.generate`.
|
|
95
|
+
*/
|
|
96
|
+
export declare class CourseBundleImportService extends CourseAuthoringService {
|
|
97
|
+
private readonly serviceDb;
|
|
98
|
+
private readonly serviceAuthorizer;
|
|
99
|
+
private readonly serviceOptions;
|
|
100
|
+
private readonly readers;
|
|
101
|
+
constructor(db: DatabaseInterface, authorizer: CourseAuthoringAuthorizer, options?: CourseBundleImportServiceOptions);
|
|
102
|
+
/** The same service bound to a host-owned transaction executor. */
|
|
103
|
+
withExecutor(executor: DatabaseInterface): CourseBundleImportService;
|
|
104
|
+
private limits;
|
|
105
|
+
private plan;
|
|
106
|
+
/**
|
|
107
|
+
* Unpack, classify and record a bundle, then hand accepted members to the
|
|
108
|
+
* host. Authorization is checked before any bytes are parsed and again in the
|
|
109
|
+
* write transaction. Idempotent per (tenant, bundle content identity).
|
|
110
|
+
*/
|
|
111
|
+
importBundle(request: ImportCourseBundleRequest): Promise<CourseBundleImportResult>;
|
|
112
|
+
/** The recorded evidence of one import; needs `education.course.read-draft`. */
|
|
113
|
+
readImport(request: CourseAuthoringActor & {
|
|
114
|
+
importId: string;
|
|
115
|
+
}): Promise<CourseBundleImportView>;
|
|
116
|
+
/**
|
|
117
|
+
* Propose the bundle's sections and lessons as a generation proposal on a
|
|
118
|
+
* course draft. The host reviews and accepts (`decideProposal`); fills land in
|
|
119
|
+
* a new draft revision, conflicts wait, and nothing is released or published.
|
|
120
|
+
* Idempotent per (course, bundle): a retry returns the same job and proposal.
|
|
121
|
+
*/
|
|
122
|
+
proposeStructure(request: ProposeBundleStructureRequest): Promise<CourseGenerationView>;
|
|
123
|
+
private record;
|
|
124
|
+
private view;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=course-bundle-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"course-bundle-service.d.ts","sourceRoot":"","sources":["../src/course-bundle-service.ts"],"names":[],"mappings":"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"}
|