@happyvertical/smrt-education 0.57.52 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +18 -8
- package/README.md +36 -2
- package/agents/class-crunchlabs.md +83 -0
- package/agents/course-bundle-import.md +108 -18
- package/agents/course-work-design.md +144 -0
- package/agents/group-sharing.md +5 -1
- package/agents/learner-plan.md +3 -3
- package/agents/learner-service.md +1 -1
- package/agents/lesson-materials.md +52 -0
- package/agents/{workbook-service.md → lesson-work-service.md} +164 -95
- package/agents/{workbook-test-matrix.md → lesson-work-test-matrix.md} +3 -3
- package/agents/photo-intake.md +37 -50
- package/agents/question-records.md +1 -1
- package/agents/submission-service.md +22 -6
- package/dist/catalog-contracts.d.ts +6 -2
- package/dist/catalog-contracts.d.ts.map +1 -1
- package/dist/catalog-materialization-service.d.ts.map +1 -1
- package/dist/catalog-policy.d.ts +11 -1
- package/dist/catalog-policy.d.ts.map +1 -1
- package/dist/catalog-preview.d.ts +6 -1
- package/dist/catalog-preview.d.ts.map +1 -1
- package/dist/catalog-service.d.ts +1 -1
- package/dist/catalog-service.d.ts.map +1 -1
- package/dist/catalog.d.ts +11 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/chunks/course-authoring-contracts-C4Hqba-e.js +131 -0
- package/dist/chunks/course-authoring-contracts-C4Hqba-e.js.map +1 -0
- package/dist/chunks/course-bundle-zip-5KUe3C5H.js +323 -0
- package/dist/chunks/course-bundle-zip-5KUe3C5H.js.map +1 -0
- package/dist/chunks/{workbook-photo-service-BtMQsbhq.js → workbook-photo-service-CjcB0y8Y.js} +6151 -5091
- package/dist/chunks/workbook-photo-service-CjcB0y8Y.js.map +1 -0
- package/dist/course-authoring-contracts.d.ts +6 -2
- package/dist/course-authoring-contracts.d.ts.map +1 -1
- package/dist/course-authoring-service.d.ts.map +1 -1
- package/dist/course-bundle-contracts.d.ts +21 -3
- package/dist/course-bundle-contracts.d.ts.map +1 -1
- package/dist/course-bundle-manifest-util.d.ts +15 -0
- package/dist/course-bundle-manifest-util.d.ts.map +1 -0
- package/dist/course-bundle-manifest-v2.d.ts +66 -0
- package/dist/course-bundle-manifest-v2.d.ts.map +1 -0
- package/dist/course-bundle-models.d.ts +29 -1
- package/dist/course-bundle-models.d.ts.map +1 -1
- package/dist/course-bundle-service.d.ts +104 -5
- package/dist/course-bundle-service.d.ts.map +1 -1
- package/dist/course-bundle.d.ts +81 -2
- package/dist/course-bundle.d.ts.map +1 -1
- package/dist/course-work-migration.d.ts +27 -0
- package/dist/course-work-migration.d.ts.map +1 -0
- package/dist/document-converter.d.ts +30 -18
- package/dist/document-converter.d.ts.map +1 -1
- package/dist/group-sharing-contracts.d.ts +3 -3
- package/dist/group-sharing-contracts.d.ts.map +1 -1
- package/dist/group-sharing-policy.d.ts +4 -4
- package/dist/group-sharing-policy.d.ts.map +1 -1
- package/dist/group-sharing-reader.d.ts.map +1 -1
- package/dist/hearth-catalog-providers.d.ts +1 -1
- package/dist/hearth-catalog-providers.d.ts.map +1 -1
- package/dist/hearth-class-crunchlabs.d.ts +94 -0
- package/dist/hearth-class-crunchlabs.d.ts.map +1 -0
- package/dist/index.d.ts +18 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1968 -419
- package/dist/index.js.map +1 -1
- package/dist/ingestion.d.ts +12 -11
- package/dist/ingestion.d.ts.map +1 -1
- package/dist/ingestion.js +63 -56
- package/dist/ingestion.js.map +1 -1
- package/dist/learner-plan-service.d.ts +1 -1
- package/dist/learner-plan-service.d.ts.map +1 -1
- package/dist/learner-service.d.ts +19 -5
- package/dist/learner-service.d.ts.map +1 -1
- package/dist/lesson-assets.d.ts +66 -2
- package/dist/lesson-assets.d.ts.map +1 -1
- package/dist/lesson-pages.d.ts +36 -0
- package/dist/lesson-pages.d.ts.map +1 -0
- package/dist/{workbook-completion.d.ts → lesson-work-completion.d.ts} +10 -10
- package/dist/lesson-work-completion.d.ts.map +1 -0
- package/dist/{workbook-contracts.d.ts → lesson-work-contracts.d.ts} +100 -52
- package/dist/lesson-work-contracts.d.ts.map +1 -0
- package/dist/lesson-work-models.d.ts +118 -0
- package/dist/lesson-work-models.d.ts.map +1 -0
- package/dist/lesson-work-service.d.ts +239 -0
- package/dist/lesson-work-service.d.ts.map +1 -0
- package/dist/manifest.json +6830 -5333
- package/dist/node.d.ts +3 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +134 -0
- package/dist/node.js.map +1 -0
- package/dist/smrt-knowledge.json +2260 -1705
- package/dist/sources/class-crunchlabs-files.d.ts +8 -0
- package/dist/sources/class-crunchlabs-files.d.ts.map +1 -0
- package/dist/sources/class-crunchlabs.d.ts +217 -0
- package/dist/sources/class-crunchlabs.d.ts.map +1 -0
- package/dist/submission-service.d.ts +135 -5
- package/dist/submission-service.d.ts.map +1 -1
- package/dist/submissions.d.ts +2 -0
- package/dist/submissions.d.ts.map +1 -1
- package/dist/work-answer-regions.d.ts +11 -0
- package/dist/work-answer-regions.d.ts.map +1 -0
- package/dist/work-layout.d.ts +13 -0
- package/dist/work-layout.d.ts.map +1 -0
- package/dist/workbook-photo-contracts.d.ts +9 -7
- package/dist/workbook-photo-contracts.d.ts.map +1 -1
- package/dist/workbook-photo-ingestion.d.ts +1 -1
- package/dist/workbook-photo-ingestion.d.ts.map +1 -1
- package/dist/workbook-photo-models.d.ts +5 -5
- package/dist/workbook-photo-models.d.ts.map +1 -1
- package/dist/workbook-photo-service.d.ts +13 -10
- package/dist/workbook-photo-service.d.ts.map +1 -1
- package/package.json +12 -8
- package/dist/chunks/workbook-photo-service-BtMQsbhq.js.map +0 -1
- package/dist/workbook-answer-regions.d.ts +0 -11
- package/dist/workbook-answer-regions.d.ts.map +0 -1
- package/dist/workbook-completion.d.ts.map +0 -1
- package/dist/workbook-contracts.d.ts.map +0 -1
- package/dist/workbook-layout.d.ts +0 -13
- package/dist/workbook-layout.d.ts.map +0 -1
- package/dist/workbook-models.d.ts +0 -129
- package/dist/workbook-models.d.ts.map +0 -1
- package/dist/workbook-service.d.ts +0 -163
- package/dist/workbook-service.d.ts.map +0 -1
package/dist/course-bundle.d.ts
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* Pure functions over already-bounded members from `course-bundle-zip.ts`.
|
|
4
4
|
*/
|
|
5
5
|
import { type CourseBundleInput, type CourseBundleLimits, type CourseBundleMemberKind, type CourseBundleMemberReason, type CourseBundleMemberStatus, type CourseBundlePageRole } from './course-bundle-contracts.js';
|
|
6
|
+
import { type ManifestV2 } from './course-bundle-manifest-v2.js';
|
|
6
7
|
import { type RawBundleMember } from './course-bundle-zip.js';
|
|
7
8
|
import { type OfficeText } from './document-converter.js';
|
|
9
|
+
import type { LessonAssetRelationship, MaterialAudience } from './lesson-assets.js';
|
|
8
10
|
/** A member after sniffing its bytes. `bytes` is present only for `accepted` members. */
|
|
9
11
|
export interface ClassifiedBundleMember {
|
|
10
12
|
path: string;
|
|
@@ -32,8 +34,18 @@ export interface BundleStructureLesson {
|
|
|
32
34
|
title: string;
|
|
33
35
|
/** Member paths in declared order. */
|
|
34
36
|
paths: string[];
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Role per path, `''` when none was declared: a page role under manifest
|
|
39
|
+
* version 1, a material role under version 2.
|
|
40
|
+
*/
|
|
41
|
+
roles: Array<CourseBundlePageRole | LessonAssetRelationship | ''>;
|
|
42
|
+
/** Version 2: the effective audience per path (parallel to `paths`). */
|
|
43
|
+
audiences?: Array<MaterialAudience | ''>;
|
|
44
|
+
/** Version 2: member titles per path (`''` when none). */
|
|
45
|
+
titles?: string[];
|
|
46
|
+
/** Version 2: page ranges and external videos. */
|
|
47
|
+
pages?: ManifestV2['sections'][number]['lessons'][number]['pages'];
|
|
48
|
+
videos?: ManifestV2['sections'][number]['lessons'][number]['videos'];
|
|
37
49
|
}
|
|
38
50
|
export interface BundleStructureSection {
|
|
39
51
|
key: string;
|
|
@@ -43,6 +55,8 @@ export interface BundleStructureSection {
|
|
|
43
55
|
export interface BundleStructure {
|
|
44
56
|
subject?: string;
|
|
45
57
|
sections: BundleStructureSection[];
|
|
58
|
+
/** Version 2: members that belong to the course rather than a lesson. */
|
|
59
|
+
courseMembers?: ManifestV2['courseMembers'];
|
|
46
60
|
}
|
|
47
61
|
export interface PreparedBundle {
|
|
48
62
|
readerId: string;
|
|
@@ -92,6 +106,11 @@ interface Manifest {
|
|
|
92
106
|
}
|
|
93
107
|
/** Closed, versioned manifest schema: any unknown key is refused. */
|
|
94
108
|
export declare function parseBundleManifest(bytes: Uint8Array, paths: ReadonlySet<string>, limits?: CourseBundleLimits): Manifest;
|
|
109
|
+
/**
|
|
110
|
+
* Reader for a root `manifest.json` version 2: material roles and audience,
|
|
111
|
+
* lesson pages, course-level members and external video references.
|
|
112
|
+
*/
|
|
113
|
+
export declare const manifestV2BundleReader: BundleReader;
|
|
95
114
|
/** Reader for a root `manifest.json` (version 1): declared sections, lessons, roles. */
|
|
96
115
|
export declare const manifestBundleReader: BundleReader;
|
|
97
116
|
/**
|
|
@@ -114,6 +133,58 @@ export interface CourseBundlePlan {
|
|
|
114
133
|
sectionKey: string | null;
|
|
115
134
|
lessonKey: string | null;
|
|
116
135
|
role: string;
|
|
136
|
+
/** Version 2: the effective audience, `''` when none was declared. */
|
|
137
|
+
audience: MaterialAudience | '';
|
|
138
|
+
}>;
|
|
139
|
+
/** Version 2: what the bundle contributes as lesson and course material. */
|
|
140
|
+
materials: BundleMaterialsPlan;
|
|
141
|
+
}
|
|
142
|
+
/** One file material: a member placed under a lesson or the course with a role and audience. */
|
|
143
|
+
export interface BundleMaterial {
|
|
144
|
+
scope: 'course' | 'lesson';
|
|
145
|
+
sectionKey: string | null;
|
|
146
|
+
lessonKey: string | null;
|
|
147
|
+
/** The member as declared. */
|
|
148
|
+
path: string;
|
|
149
|
+
/** The member that holds the bytes: `path`, or the earlier identical member when `path` is a duplicate. */
|
|
150
|
+
assetPath: string;
|
|
151
|
+
kind: ClassifiedBundleMember['kind'];
|
|
152
|
+
sha256: string;
|
|
153
|
+
role: LessonAssetRelationship;
|
|
154
|
+
audience: MaterialAudience;
|
|
155
|
+
title: string;
|
|
156
|
+
sortOrder: number;
|
|
157
|
+
}
|
|
158
|
+
/** One lesson page: page `sourcePageNumber` of a paged member (the rendered PDF for Office). */
|
|
159
|
+
export interface BundlePage {
|
|
160
|
+
sectionKey: string;
|
|
161
|
+
lessonKey: string;
|
|
162
|
+
pageKey: string;
|
|
163
|
+
label: string;
|
|
164
|
+
sortOrder: number;
|
|
165
|
+
/** The member as declared. */
|
|
166
|
+
path: string;
|
|
167
|
+
assetPath: string;
|
|
168
|
+
sourcePageNumber: number;
|
|
169
|
+
}
|
|
170
|
+
export interface BundleVideo {
|
|
171
|
+
sectionKey: string;
|
|
172
|
+
lessonKey: string;
|
|
173
|
+
provider: 'youtube';
|
|
174
|
+
videoId: string;
|
|
175
|
+
title: string;
|
|
176
|
+
stepOrder: number;
|
|
177
|
+
audience: MaterialAudience;
|
|
178
|
+
}
|
|
179
|
+
/** The materials a version 2 manifest asks for. Empty for version 1 and plain file sets. */
|
|
180
|
+
export interface BundleMaterialsPlan {
|
|
181
|
+
materials: BundleMaterial[];
|
|
182
|
+
pages: BundlePage[];
|
|
183
|
+
videos: BundleVideo[];
|
|
184
|
+
/** Declared members that could not be used (unsupported, refused), with the member's reason. */
|
|
185
|
+
skipped: Array<{
|
|
186
|
+
path: string;
|
|
187
|
+
reason: string;
|
|
117
188
|
}>;
|
|
118
189
|
}
|
|
119
190
|
/** Stable identity of the bundle's contents: sorted (path, hash) pairs. */
|
|
@@ -148,6 +219,14 @@ export declare function planCourseBundle(raw: readonly RawBundleMember[], regist
|
|
|
148
219
|
* a member that could not be rendered never becomes a lesson.
|
|
149
220
|
*/
|
|
150
221
|
export declare function planClassifiedBundle(raw: readonly RawBundleMember[], classified: ClassifiedBundleMember[], registry?: BundleReaderRegistry, limits?: CourseBundleLimits, officeOutcomes?: ReadonlyMap<string, OfficeOutcome>): CourseBundlePlan;
|
|
222
|
+
/**
|
|
223
|
+
* Resolve a version 2 structure into material, page and video rows. A declared
|
|
224
|
+
* member that did not survive classification (unsupported, refused, failed
|
|
225
|
+
* rendering) is skipped, never half-applied; a duplicate member resolves to the
|
|
226
|
+
* earlier identical member's bytes. A page range over a member that cannot be
|
|
227
|
+
* paged (text, image) is a refusal of the bundle.
|
|
228
|
+
*/
|
|
229
|
+
export declare function planBundleMaterials(structure: BundleStructure, ordered: readonly ClassifiedBundleMember[]): BundleMaterialsPlan;
|
|
151
230
|
/** Closed proposal output (`validateCourseGenerationOutput` shape) for a structure. */
|
|
152
231
|
export declare function bundleProposalOutput(plan: CourseBundlePlan, limits?: CourseBundleLimits): {
|
|
153
232
|
course: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course-bundle.d.ts","sourceRoot":"","sources":["../src/course-bundle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"course-bundle.d.ts","sourceRoot":"","sources":["../src/course-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DatabaseInterface } from '@happyvertical/sql';
|
|
2
|
+
/** What one run of {@link migrateWorkbooksToCourses} changed. */
|
|
3
|
+
export interface WorkbookMigrationReport {
|
|
4
|
+
/** Book courses given their identity (existing scaffold or new). */
|
|
5
|
+
bookCourses: number;
|
|
6
|
+
/** Learner-scoped duplicate courses merged into a book course. */
|
|
7
|
+
mergedCourses: number;
|
|
8
|
+
lessonPages: number;
|
|
9
|
+
filings: number;
|
|
10
|
+
contextRevisions: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Move retired `Workbook` data into book courses (SMRT #4614). Host-run, once,
|
|
14
|
+
* after the schema migration that adds `courses.book_key`, `lesson_pages`,
|
|
15
|
+
* `lesson_work_filings` and `book_context_revisions`. Idempotent and
|
|
16
|
+
* transactional; a no-op when the retired `workbooks` table does not exist.
|
|
17
|
+
*
|
|
18
|
+
* One course per family per book key: the earliest learner's scaffold course
|
|
19
|
+
* becomes the book course and later learners' scaffold courses merge into it
|
|
20
|
+
* (their sections and enrollments are re-pointed; the emptied course is
|
|
21
|
+
* archived as `merged-book`). Learner history rows are never rewritten. Legacy
|
|
22
|
+
* page keys become lesson pages, legacy filings become placements with the same
|
|
23
|
+
* IDs, and cover context revisions are copied with the same IDs. Retired tables
|
|
24
|
+
* are left in place.
|
|
25
|
+
*/
|
|
26
|
+
export declare function migrateWorkbooksToCourses(db: DatabaseInterface): Promise<WorkbookMigrationReport>;
|
|
27
|
+
//# sourceMappingURL=course-work-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"course-work-migration.d.ts","sourceRoot":"","sources":["../src/course-work-migration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc5D,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAoCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAwPlC"}
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* a misbehaving adapter cannot exceed them.
|
|
8
8
|
*/
|
|
9
9
|
/** Office kinds the importer can render. */
|
|
10
|
-
export type OfficeDocumentKind = 'docx' | 'pptx';
|
|
10
|
+
export type OfficeDocumentKind = 'docx' | 'pptx' | 'xlsx';
|
|
11
|
+
export declare const OFFICE_DOCUMENT_KINDS: readonly OfficeDocumentKind[];
|
|
12
|
+
export declare const isOfficeDocumentKind: (value: unknown) => value is OfficeDocumentKind;
|
|
11
13
|
export declare const OFFICE_MEDIA_TYPES: Readonly<Record<OfficeDocumentKind, string>>;
|
|
12
14
|
export declare const DEFAULT_DOCUMENT_CONVERSION_TIMEOUT_MS = 60000;
|
|
13
15
|
export declare const DEFAULT_DOCUMENT_CONVERSION_MAX_BYTES: number;
|
|
@@ -62,23 +64,9 @@ export interface OfficeText {
|
|
|
62
64
|
}
|
|
63
65
|
/**
|
|
64
66
|
* Injectable text reader for Office members. Return `null` when the engine is
|
|
65
|
-
* unavailable.
|
|
66
|
-
* `
|
|
67
|
-
*
|
|
68
|
-
* ```ts
|
|
69
|
-
* import { extractOffice } from '@happyvertical/documents';
|
|
70
|
-
* const officeTextReader: OfficeTextReader = {
|
|
71
|
-
* async read({ bytes, kind }) {
|
|
72
|
-
* const r = await extractOffice(bytes, kind, { extractImages: false });
|
|
73
|
-
* if (r.status !== 'ok') return null;
|
|
74
|
-
* const slides = kind === 'pptx'
|
|
75
|
-
* ? r.parts.map((p, i) => ({ index: Number(p.metadata?.slide ?? i + 1), text: p.content, notes: p.notes }))
|
|
76
|
-
* : undefined;
|
|
77
|
-
* const text = r.parts.flatMap(function flat(p): string[] { return [p.content, ...(p.parts ?? []).flatMap(flat)]; }).filter(Boolean).join('\n\n');
|
|
78
|
-
* return { text, slides };
|
|
79
|
-
* },
|
|
80
|
-
* };
|
|
81
|
-
* ```
|
|
67
|
+
* unavailable. `createOfficeTextReader(extractOffice)` adapts the SDK processor
|
|
68
|
+
* (`@happyvertical/documents` >= 0.111.4, sdk#1486) without this package
|
|
69
|
+
* depending on it: the host imports `extractOffice` and passes it in.
|
|
82
70
|
*/
|
|
83
71
|
export interface OfficeTextReader {
|
|
84
72
|
read(input: {
|
|
@@ -86,6 +74,30 @@ export interface OfficeTextReader {
|
|
|
86
74
|
kind: OfficeDocumentKind;
|
|
87
75
|
}): Promise<OfficeText | null>;
|
|
88
76
|
}
|
|
77
|
+
/** The shape of an SDK document part that the reader below reads (`DocumentPart`). */
|
|
78
|
+
export interface OfficeExtractPart {
|
|
79
|
+
content?: string;
|
|
80
|
+
notes?: string;
|
|
81
|
+
metadata?: Record<string, unknown>;
|
|
82
|
+
parts?: OfficeExtractPart[];
|
|
83
|
+
}
|
|
84
|
+
/** `extractOffice` of `@happyvertical/documents` (structural, so no dependency is declared). */
|
|
85
|
+
export type OfficeExtractFunction = (source: Uint8Array, format: 'docx' | 'pptx', options?: {
|
|
86
|
+
extractImages?: boolean;
|
|
87
|
+
}) => Promise<{
|
|
88
|
+
status: 'ok';
|
|
89
|
+
parts: OfficeExtractPart[];
|
|
90
|
+
} | {
|
|
91
|
+
status: 'unsupported';
|
|
92
|
+
[key: string]: unknown;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Adapt the SDK Office extractor to an `OfficeTextReader`: whole-document text
|
|
96
|
+
* for Word, text and speaker notes per slide for PowerPoint. Images are never
|
|
97
|
+
* requested. An unsupported engine (Kreuzberg not installed) reads as `null`;
|
|
98
|
+
* a corrupt file rejects, and the importer treats that as "no text".
|
|
99
|
+
*/
|
|
100
|
+
export declare function createOfficeTextReader(extractOffice: OfficeExtractFunction): OfficeTextReader;
|
|
89
101
|
export interface GotenbergConverterOptions {
|
|
90
102
|
/** Base URL of the Gotenberg service, for example `http://gotenberg:3000`. */
|
|
91
103
|
baseUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-converter.d.ts","sourceRoot":"","sources":["../src/document-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"document-converter.d.ts","sourceRoot":"","sources":["../src/document-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1D,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAI9D,CAAC;AACF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,OAAO,KACb,KAAK,IAAI,kBACmD,CAAC;AAEhE,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAKxE,CAAC;AAEL,eAAO,MAAM,sCAAsC,QAAS,CAAC;AAC7D,eAAO,MAAM,qCAAqC,QAAmB,CAAC;AAEtE,MAAM,WAAW,wBAAwB;IACvC,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,kBAAkB,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,wBAAwB,CAAC;IACjC,sEAAsE;IACtE,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,sCAAsC;IACtC,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,YAAY,CACV,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,yBAAyB;AACnC,wEAAwE;AACtE,aAAa,GACb,SAAS,GACT,WAAW;AACb,yDAAyD;GACvD,UAAU;AACZ,uCAAuC;GACrC,gBAAgB,CAAC;AAErB,qBAAa,uBAAwB,SAAQ,KAAK;IAE9C,QAAQ,CAAC,IAAI,EAAE,yBAAyB;gBAA/B,IAAI,EAAE,yBAAyB,EACxC,OAAO,CAAC,EAAE,MAAM;CAKnB;AAED,iGAAiG;AACjG,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,kBAAkB,CAAC;KAC1B,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CAChC;AAED,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AACD,gGAAgG;AAChG,MAAM,MAAM,qBAAqB,GAAG,CAClC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,KAClC,OAAO,CACR;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CACpD,CAAC;AAOF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,qBAAqB,GACnC,gBAAgB,CA6BlB;AAID,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAGD,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAQvD;AA0BD;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,iBAAiB;IAClE,QAAQ,CAAC,EAAE,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,EAAE,yBAAyB;IAoBxC,YAAY,CAChB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC;CA+CrC;AAID,MAAM,WAAW,4BAA4B;IAC3C,yCAAyC;IACzC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC;IAC3D,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,uEAAuE;AACvE,qBAAa,qBAAsB,YAAW,iBAAiB;IAQjD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,kBAAkB,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAM;gBAEqB,OAAO,GAAE,4BAAiC;IAEjE,YAAY,CAChB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC;CA8BrC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { WorkAssessment, WorkConceptSummary } from './lesson-work-contracts.js';
|
|
2
2
|
export type GroupSharingSelector = {
|
|
3
3
|
mode: 'all';
|
|
4
4
|
} | {
|
|
@@ -132,7 +132,7 @@ export interface GroupSharedRevisionView {
|
|
|
132
132
|
readonly revisionId: string;
|
|
133
133
|
readonly createdAt: string;
|
|
134
134
|
readonly kind: 'ai' | 'guardian';
|
|
135
|
-
readonly assessment:
|
|
135
|
+
readonly assessment: WorkAssessment;
|
|
136
136
|
}
|
|
137
137
|
export interface GroupSharingPreview {
|
|
138
138
|
readonly policy: GroupSharingPolicyV1;
|
|
@@ -154,7 +154,7 @@ export interface GroupSharedProgressView {
|
|
|
154
154
|
unknown: number;
|
|
155
155
|
};
|
|
156
156
|
};
|
|
157
|
-
readonly concepts: ReadonlyArray<
|
|
157
|
+
readonly concepts: ReadonlyArray<WorkConceptSummary>;
|
|
158
158
|
}
|
|
159
159
|
export interface GroupRevisionCommentView {
|
|
160
160
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-sharing-contracts.d.ts","sourceRoot":"","sources":["../src/group-sharing-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"group-sharing-contracts.d.ts","sourceRoot":"","sources":["../src/group-sharing-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type GroupSharingDecision, type GroupSharingPolicyV1, type GroupSharingWorkFacts } from './group-sharing-contracts.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { WorkAssessment, WorkConceptSummary } from './lesson-work-contracts.js';
|
|
3
3
|
/** All facets use the same fail-closed eligibility gates. Facts come from owned records. */
|
|
4
4
|
export declare function evaluateGroupSharingPolicy(policy: GroupSharingPolicyV1, facts: GroupSharingWorkFacts): GroupSharingDecision;
|
|
5
|
-
export interface
|
|
5
|
+
export interface WorkEvidenceInput {
|
|
6
6
|
attempt: {
|
|
7
7
|
submissionId: string;
|
|
8
8
|
episodeId: string;
|
|
@@ -11,9 +11,9 @@ export interface WorkbookEvidenceInput {
|
|
|
11
11
|
capturedAt: Date;
|
|
12
12
|
};
|
|
13
13
|
revisionId: string;
|
|
14
|
-
assessment:
|
|
14
|
+
assessment: WorkAssessment;
|
|
15
15
|
confirmed: boolean;
|
|
16
16
|
}
|
|
17
17
|
/** Owning workbook aggregation shared by family and filtered group projections. */
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function summarizeWorkEvidence(evidence: WorkEvidenceInput[]): WorkConceptSummary[];
|
|
19
19
|
//# sourceMappingURL=group-sharing-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-sharing-policy.d.ts","sourceRoot":"","sources":["../src/group-sharing-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAE3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"group-sharing-policy.d.ts","sourceRoot":"","sources":["../src/group-sharing-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAE3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAEpC,4FAA4F;AAC5F,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,qBAAqB,GAC3B,oBAAoB,CAgCtB;AACD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,IAAI,CAAC;KAClB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,kBAAkB,EAAE,CAsFtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-sharing-reader.d.ts","sourceRoot":"","sources":["../src/group-sharing-reader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc5D,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAG5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAExB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEvB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"group-sharing-reader.d.ts","sourceRoot":"","sources":["../src/group-sharing-reader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc5D,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAG5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAExB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEvB,MAAM,8BAA8B,CAAC;AAgBtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAqVxE,iGAAiG;AACjG,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,iBAAiB,EACrB,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,uBAAuB,EAChC,MAAM,GAAE,kBAA8C;;;;;GAcvD;AACD,oGAAoG;AACpG,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,EAAE,EAAE,iBAAiB,EACrB,SAAS,EAAE,sBAAsB,EACjC,OAAO,CAAC,EAAE,wBAAwB,YAAA,EAClC,aAAa,UAAQ;IAExC,OAAO,CAAC,GAAG;IA+CX,qGAAqG;IAC/F,uBAAuB,CAC3B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAC1C,OAAO,CAAC,6BAA6B,CAAC;YA4F3B,SAAS;IAwCjB,cAAc,CAClB,OAAO,EAAE,iBAAiB,GAAG;QAAE,MAAM,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAC7D,OAAO,CAAC,mBAAmB,CAAC;IAqB/B,OAAO,CAAC,OAAO;IAkBT,cAAc,CAClB,OAAO,EAAE,iBAAiB,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/D,OAAO,CAAC;QAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAqBjE,aAAa,CACjB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC;IAOzB,iBAAiB,CACrB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC;IAsB7B,iBAAiB,CACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,uBAAuB,CAAC;IA+C7B,eAAe,CACnB,OAAO,EAAE,uBAAuB,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GACrD,OAAO,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,mBAAmB,CAAC;KACnC,CAAC;CA2DH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CatalogSyncAdapter, CatalogSyncCheckpoint, CatalogSyncPage } from './catalog-contracts.js';
|
|
2
|
-
export type HearthCatalogProviderId = 'illustrative-mathematics' | 'ck12' | 'oer-commons';
|
|
2
|
+
export type HearthCatalogProviderId = 'illustrative-mathematics' | 'ck12' | 'oer-commons' | 'class-crunchlabs';
|
|
3
3
|
/**
|
|
4
4
|
* A host-supplied integration for a provider-approved metadata feed. The
|
|
5
5
|
* provider must approve the exact feed URL and credentials before it is used.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hearth-catalog-providers.d.ts","sourceRoot":"","sources":["../src/hearth-catalog-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,uBAAuB,GAC/B,0BAA0B,GAC1B,MAAM,GACN,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hearth-catalog-providers.d.ts","sourceRoot":"","sources":["../src/hearth-catalog-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,uBAAuB,GAC/B,0BAA0B,GAC1B,MAAM,GACN,aAAa,GACb,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,uBAAuB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,IAAI,CAAC;IACpB,SAAS,CAAC,KAAK,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,qBAAqB,CAAC;KACnC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AACD,MAAM,MAAM,qBAAqB,GAAG,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IACP,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KACE,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAIvC,MAAM,WAAW,qCAAqC;IACpD,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,uBAAuB,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,uBAAuB,EAqBtE,CAAC;AAoLF;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,kBAAkB;IAEnE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBADL,UAAU,EAAE,uBAAuB,EACnC,IAAI,CAAC,EAAE,qBAAqB,YAAA;IAGzC,SAAS,CAAC,KAAK,EAAE;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,qBAAqB,CAAC;KACnC,GAAG,OAAO,CAAC,eAAe,CAAC;CAiE7B;AAED,wBAAgB,oCAAoC,CAClD,IAAI,CAAC,EAAE,qBAAqB,GAC3B,kBAAkB,CAEpB;AAED,iFAAiF;AACjF,wBAAgB,4CAA4C,CAC1D,MAAM,EAAE,qCAAqC,GAC5C,kBAAkB,CA2DpB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,qBAAqB,GAC3B,kBAAkB,CAEpB;AAED,wBAAgB,uBAAuB,CACrC,IAAI,CAAC,EAAE,qBAAqB,GAC3B,kBAAkB,CAEpB;AAED,+EAA+E;AAC/E,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,mBAAmB,GAC1B,kBAAkB,CAyDpB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class CrunchLabs as a global catalog provider (SMRT #4616).
|
|
3
|
+
*
|
|
4
|
+
* Units are listed under Science, with the @ClassCrunchLabs YouTube course
|
|
5
|
+
* playlists as previews. "Add to a course" (`addClassCrunchLabsUnit`) runs the
|
|
6
|
+
* CrunchLabs import into the family's own course; the files come from
|
|
7
|
+
* CrunchLabs' own downloads and from YouTube and are never hosted here.
|
|
8
|
+
*
|
|
9
|
+
* Until the operator has CrunchLabs' permission the provider is operator-only:
|
|
10
|
+
* its records have `operator` visibility (see `CatalogPolicy`), seen only by the
|
|
11
|
+
* families the host designated, with licence text "free curriculum, permission
|
|
12
|
+
* pending". Making it public is one explicit switch, `publicListing: true`,
|
|
13
|
+
* which only the operator sets in host configuration; it is off by default and
|
|
14
|
+
* is never read from a request.
|
|
15
|
+
*/
|
|
16
|
+
import type { CatalogActor, CatalogSourceRecord, CatalogSyncAdapter } from './catalog-contracts.js';
|
|
17
|
+
import type { CatalogPolicy } from './catalog-policy.js';
|
|
18
|
+
import type { CourseAuthoringActor } from './course-authoring-contracts.js';
|
|
19
|
+
import type { CourseBundleImportResult, CourseBundleImportService, ImportCourseBundleRequest } from './course-bundle-service.js';
|
|
20
|
+
import { CLASS_CRUNCHLABS_PROVIDER_ID, type ClassCrunchLabsBuild, type ClassCrunchLabsFileSource, type ClassCrunchLabsPageCounter, type ClassCrunchLabsPlaylist, type ClassCrunchLabsPlaylistSource } from './sources/class-crunchlabs.js';
|
|
21
|
+
export { CLASS_CRUNCHLABS_PROVIDER_ID };
|
|
22
|
+
/** The operator's switch for a public listing. Off until the operator turns it on. */
|
|
23
|
+
export declare const CLASS_CRUNCHLABS_PUBLIC_LISTING_DEFAULT = false;
|
|
24
|
+
export declare const CLASS_CRUNCHLABS_LICENSE_PENDING = "free curriculum, permission pending";
|
|
25
|
+
export declare const CLASS_CRUNCHLABS_LICENSE_FREE = "free curriculum";
|
|
26
|
+
export declare const CLASS_CRUNCHLABS_LICENSE_IDENTIFIER = "class-crunchlabs-free-curriculum";
|
|
27
|
+
export interface ClassCrunchLabsCatalogConfig {
|
|
28
|
+
/** The channel's unit course playlists. Injected; the adapter never touches the network. */
|
|
29
|
+
playlists: ClassCrunchLabsPlaylistSource;
|
|
30
|
+
/**
|
|
31
|
+
* The single switch that makes the provider public. Only the operator sets
|
|
32
|
+
* it, from host configuration; only the literal `true` counts. Default off:
|
|
33
|
+
* records are operator-only with licence "free curriculum, permission pending".
|
|
34
|
+
*/
|
|
35
|
+
publicListing?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** The unit a playlist is about: its `unit`, else the title before any `|`, dash or parenthetical. */
|
|
38
|
+
export declare function classCrunchLabsUnitOfPlaylist(playlist: Pick<ClassCrunchLabsPlaylist, 'title' | 'unit'>): string;
|
|
39
|
+
export declare const classCrunchLabsPlaylistUrl: (playlistId: string) => string;
|
|
40
|
+
/**
|
|
41
|
+
* The privacy-enhanced embed URL previewing a listed unit's playlist, or null
|
|
42
|
+
* when the record is not a Class CrunchLabs unit with a playlist.
|
|
43
|
+
*/
|
|
44
|
+
export declare function classCrunchLabsPreviewEmbedUrl(record: Pick<CatalogSourceRecord, 'providerId' | 'canonicalUrl'>): string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Lists the channel's unit playlists as Science units. A snapshot feed: one
|
|
47
|
+
* terminal page, no cursor. Visibility and licence follow `publicListing`;
|
|
48
|
+
* flipping it changes every record's revision, so the next sync rewrites them.
|
|
49
|
+
*/
|
|
50
|
+
export declare function createClassCrunchLabsCatalogAdapter(config: ClassCrunchLabsCatalogConfig): CatalogSyncAdapter;
|
|
51
|
+
/**
|
|
52
|
+
* The visibility the listing has right now, derived from the host's own
|
|
53
|
+
* configuration (the same `publicListing` the adapter was built with), never
|
|
54
|
+
* from a record or flag a caller supplies.
|
|
55
|
+
*/
|
|
56
|
+
export declare const classCrunchLabsListingVisibility: (config: Pick<ClassCrunchLabsCatalogConfig, "publicListing">) => "catalog" | "operator";
|
|
57
|
+
/** True when the actor may see (and so add) the Class CrunchLabs listing. */
|
|
58
|
+
export declare function canAddClassCrunchLabsUnit(actor: CatalogActor, policy: CatalogPolicy, config: Pick<ClassCrunchLabsCatalogConfig, 'publicListing'>): boolean;
|
|
59
|
+
export interface AddClassCrunchLabsUnitRequest {
|
|
60
|
+
service: CourseBundleImportService;
|
|
61
|
+
/** The authenticated course author (the family's guardian). */
|
|
62
|
+
actor: CourseAuthoringActor;
|
|
63
|
+
/** The same identity as the catalog actor the listing was read with. */
|
|
64
|
+
catalogActor: CatalogActor;
|
|
65
|
+
/** The unit being added. Only its provider and title are used; visibility and licence are never taken from the caller. */
|
|
66
|
+
record: Pick<CatalogSourceRecord, 'providerId' | 'title'>;
|
|
67
|
+
/** The host's listing configuration (the switch the adapter was built with). */
|
|
68
|
+
listing: Pick<ClassCrunchLabsCatalogConfig, 'publicListing'>;
|
|
69
|
+
/** Host policy carrying the operator families. */
|
|
70
|
+
policy: CatalogPolicy;
|
|
71
|
+
/** The family's own download of the unit (folder or zip parts). */
|
|
72
|
+
files: ClassCrunchLabsFileSource;
|
|
73
|
+
playlists: ClassCrunchLabsPlaylistSource;
|
|
74
|
+
pageCounter?: ClassCrunchLabsPageCounter;
|
|
75
|
+
limits?: ImportCourseBundleRequest['limits'];
|
|
76
|
+
onProgress?: ImportCourseBundleRequest['onProgress'];
|
|
77
|
+
receiveMember?: ImportCourseBundleRequest['receiveMember'];
|
|
78
|
+
}
|
|
79
|
+
export interface AddClassCrunchLabsUnitResult {
|
|
80
|
+
build: ClassCrunchLabsBuild;
|
|
81
|
+
/** One import per bundle part, in order (one for a unit that fits one archive). */
|
|
82
|
+
results: CourseBundleImportResult[];
|
|
83
|
+
/** The first part's import. */
|
|
84
|
+
result: CourseBundleImportResult;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* "Add to a course": re-checks that the actor may see this listing (an
|
|
88
|
+
* operator-only listing is refused to everyone else, whatever the client
|
|
89
|
+
* sends), reads the family's download into a manifest v2 bundle and imports it.
|
|
90
|
+
* Propose the structure and apply the materials for each `build.parts[i].bundle` as usual;
|
|
91
|
+
* the course is a `personal-use-copy` (`build.licenseKind`).
|
|
92
|
+
*/
|
|
93
|
+
export declare function addClassCrunchLabsUnit(request: AddClassCrunchLabsUnitRequest): Promise<AddClassCrunchLabsUnitResult>;
|
|
94
|
+
//# sourceMappingURL=hearth-class-crunchlabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hearth-class-crunchlabs.d.ts","sourceRoot":"","sources":["../src/hearth-class-crunchlabs.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,10 +26,11 @@ export { AUTHORED_IDENTITY_SOURCE_KEY, AUTHORED_RELEASE_SOURCE_KEY, isAuthoredRe
|
|
|
26
26
|
export * from './course-authoring-models.js';
|
|
27
27
|
export type { CourseAuthoringServiceOptions } from './course-authoring-service.js';
|
|
28
28
|
export { CourseAuthoringService } from './course-authoring-service.js';
|
|
29
|
-
export { type BundleReader, BundleReaderRegistry, type BundleStructure, type BundleStructureLesson, type BundleStructureSection, bundleProposalOutput, type ClassifiedBundleMember, type CourseBundlePlan, classifyBundle, classifyBundleMember, courseBundleIdentity, createBundleReaderRegistry, manifestBundleReader, naturalCompare, type OfficeOutcome, type PreparedBundle, parseBundleManifest, pdfIsEncrypted, plainBundleReader, planClassifiedBundle, planCourseBundle, unpackBundle, } from './course-bundle.js';
|
|
29
|
+
export { type BundleMaterial, type BundleMaterialsPlan, type BundlePage, type BundleReader, BundleReaderRegistry, type BundleStructure, type BundleStructureLesson, type BundleStructureSection, type BundleVideo, bundleProposalOutput, type ClassifiedBundleMember, type CourseBundlePlan, classifyBundle, classifyBundleMember, courseBundleIdentity, createBundleReaderRegistry, manifestBundleReader, manifestV2BundleReader, naturalCompare, type OfficeOutcome, type PreparedBundle, parseBundleManifest, pdfIsEncrypted, plainBundleReader, planBundleMaterials, planClassifiedBundle, planCourseBundle, unpackBundle, } from './course-bundle.js';
|
|
30
30
|
export * from './course-bundle-contracts.js';
|
|
31
|
+
export * from './course-bundle-manifest-v2.js';
|
|
31
32
|
export * from './course-bundle-models.js';
|
|
32
|
-
export { type AcceptedCourseBundleMember, type CourseBundleImportResult, CourseBundleImportService, type CourseBundleImportServiceOptions, type CourseBundleImportView, type CourseBundleMemberView, type ImportCourseBundleRequest, type ProposeBundleStructureRequest, } from './course-bundle-service.js';
|
|
33
|
+
export { type AcceptedCourseBundleMember, type ApplyBundleMaterialsRequest, type ApplyBundleMaterialsResult, type CourseBundleImportResult, CourseBundleImportService, type CourseBundleImportServiceOptions, type CourseBundleImportView, CourseBundleMaterialsError, type CourseBundleMemberView, type ImportCourseBundleRequest, type ProposeBundleStructureRequest, type RetryBundleRenderingRequest, type RetryBundleRenderingResult, } from './course-bundle-service.js';
|
|
33
34
|
export { normalizeBundlePath, type RawBundleMember, readFileSet, readZipArchive, } from './course-bundle-zip.js';
|
|
34
35
|
export * from './course-generation-contracts.js';
|
|
35
36
|
export * from './course-generation-models.js';
|
|
@@ -46,6 +47,8 @@ export * from './course-review-models.js';
|
|
|
46
47
|
export type { CourseSourceConfig, CourseSourceKind, SourceSharing, } from './course-source.js';
|
|
47
48
|
export { CourseSource, CourseSourceCollection } from './course-source.js';
|
|
48
49
|
export { authoredVisibilityPermitsGroups, effectiveCourseVisibility, } from './course-visibility.js';
|
|
50
|
+
export type { WorkbookMigrationReport } from './course-work-migration.js';
|
|
51
|
+
export { migrateWorkbooksToCourses } from './course-work-migration.js';
|
|
49
52
|
export * from './document-converter.js';
|
|
50
53
|
export type { EnrollmentParentNoteView } from './enrollment-note-service.js';
|
|
51
54
|
export { ENROLLMENT_NOTE_MAX_LENGTH, EnrollmentParentNote, EnrollmentParentNoteCollection, validateEnrollmentNote, } from './enrollment-notes.js';
|
|
@@ -60,6 +63,7 @@ export { GroupSharingService } from './group-sharing-service.js';
|
|
|
60
63
|
export { isGroupTenant } from './group-sharing-workspace.js';
|
|
61
64
|
export type { AuthorizedCatalogFeed, HearthCatalogProviderId, OerCommonsRssConfig, ProviderFeedRequirement, ProviderMetadataFetch, ProviderMetadataResponse, PublicIllustrativeMathematicsK5Config, } from './hearth-catalog-providers.js';
|
|
62
65
|
export { createCk12Adapter, createIllustrativeMathematicsAdapter, createOerCommonsAdapter, createOerCommonsRssAdapter, createPublicIllustrativeMathematicsK5Adapter, providerFeedRequirements, } from './hearth-catalog-providers.js';
|
|
66
|
+
export * from './hearth-class-crunchlabs.js';
|
|
63
67
|
export type { EasyPeasyGrade4Course, EasyPeasyGrade4Theme, EasyPeasyGrade4Variant, EasyPeasyThemeImportResult, } from './hearth-easy-peasy-grade4.js';
|
|
64
68
|
export { easyPeasyGrade4Courses, easyPeasyGrade4Themes, grade4Courses, grade4Theme, importEasyPeasyGrade4Course, importEasyPeasyGrade4Theme, } from './hearth-easy-peasy-grade4.js';
|
|
65
69
|
export type { LessonProgressTransitionKind } from './learner-history.js';
|
|
@@ -69,11 +73,15 @@ export { interestThemeFromColumns, MAX_INTEREST_THEME_KEY_CHARS, MAX_INTEREST_TH
|
|
|
69
73
|
export type { EnrollmentPlanView, PlanLessonView, } from './learner-plan-service.js';
|
|
70
74
|
export { LearnerPlanService } from './learner-plan-service.js';
|
|
71
75
|
export type { CompleteOwnLessonResult, CurriculumView, EnrollmentPace, EnrollmentView, LearnerAuthorizer, LearnerRequest, LearnerSetupStatus, LearnerSetupStatusRequest, LearnerView, LessonProgressView, PutBackLessonResult, SetEnrollmentPaceResult, SetEnrollmentStatusResult, SetInterestThemeResult, } from './learner-service.js';
|
|
72
|
-
export { ENROLLMENT_STATUS_TRANSITIONS, EnrollmentNotActiveError, EnrollmentPaceError, EnrollmentStatusTransitionError, InterestThemeError, LearnerAuthorizationError, LearnerHistoryUnavailableError, LearnerService, LearnerValidationError, LessonAlreadyCompleteError, LessonPutBackError, LessonSkippedError, MAX_LESSONS_PER_WEEK, MAX_NEXT_LESSONS_COUNT, MIN_LESSONS_PER_WEEK, requirePolicyBasis,
|
|
76
|
+
export { ENROLLMENT_STATUS_TRANSITIONS, EnrollmentNotActiveError, EnrollmentPaceError, EnrollmentStatusTransitionError, InterestThemeError, LearnerAuthorizationError, LearnerHistoryUnavailableError, LearnerService, LearnerValidationError, LessonAlreadyCompleteError, LessonPutBackError, LessonSkippedError, LessonWorkOwnedError, MAX_LESSONS_PER_WEEK, MAX_NEXT_LESSONS_COUNT, MIN_LESSONS_PER_WEEK, requirePolicyBasis, } from './learner-service.js';
|
|
73
77
|
export type { EnrollmentStatus, LessonProgressStatus } from './learners.js';
|
|
74
78
|
export { Curriculum, Enrollment, Learner, LessonProgress } from './learners.js';
|
|
75
|
-
export
|
|
76
|
-
export
|
|
79
|
+
export * from './lesson-assets.js';
|
|
80
|
+
export * from './lesson-pages.js';
|
|
81
|
+
export { WorkCompletionDecision, WorkCompletionDecisionCollection, } from './lesson-work-completion.js';
|
|
82
|
+
export * from './lesson-work-contracts.js';
|
|
83
|
+
export * from './lesson-work-models.js';
|
|
84
|
+
export { LessonWorkService } from './lesson-work-service.js';
|
|
77
85
|
export type { QuestionAuthoringServiceOptions } from './question-authoring-service.js';
|
|
78
86
|
export { QuestionAuthoringService } from './question-authoring-service.js';
|
|
79
87
|
export { type NormalizedQuestionContent, normalizeQuestionContent, } from './question-content.js';
|
|
@@ -92,6 +100,7 @@ export { parseQuestionRubric, validateRubricResults, } from './question-rubric.j
|
|
|
92
100
|
export { EducationCatalogRecipe, EducationLearnerRecipe, EducationSupervisorRecipe, } from './recipes.js';
|
|
93
101
|
export type { EasyPeasyRegistration, EnsureEasyPeasyCourseSourceRequest, EnsureEasyPeasyCourseSourceResult, SourceImportAuthorization, SourceImportAuthorizer, SourceImportRequest, SourceImportResult, } from './source-import-service.js';
|
|
94
102
|
export { SourceImportService } from './source-import-service.js';
|
|
103
|
+
export * from './sources/class-crunchlabs.js';
|
|
95
104
|
export type { ParsedSourceCourse, ParsedSourceLesson, } from './sources/easy-peasy-parser.js';
|
|
96
105
|
export { parseEasyPeasyPage, validateEasyPeasyUrl, } from './sources/easy-peasy-parser.js';
|
|
97
106
|
export type { DriveCatalogRecord, DriveDiscoveryCheckpoint, DriveDiscoveryOptions, DriveDiscoveryPage, DriveExclusion, DriveSelectionAuthorization, GoogleDriveFilesClient, PinnedDriveContent, } from './sources/google-drive-adapter.js';
|
|
@@ -100,8 +109,8 @@ export { parseIllustrativeMathematicsK5Index } from './sources/illustrative-math
|
|
|
100
109
|
export { parseOerCommonsRssFeed } from './sources/oer-commons-rss-parser.js';
|
|
101
110
|
export type { PublicIllustrativeMathematicsFirstEditionConfig } from './sources/public-illustrative-mathematics-adapter.js';
|
|
102
111
|
export { createPublicIllustrativeMathematicsFirstEditionAdapter } from './sources/public-illustrative-mathematics-adapter.js';
|
|
103
|
-
export type { SubmissionAssetClaim, SubmissionIntake, SubmissionPage, SubmissionServiceOptions, SubmissionView, } from './submission-service.js';
|
|
104
|
-
export { OwnAttestationConflictError, OwnAttestationLessonKindError, SELF_ATTESTABLE_LESSON_KINDS, SubmissionService, SubmissionStorageCleanupError,
|
|
112
|
+
export type { LessonMaterialView, SubmissionAssetClaim, SubmissionIntake, SubmissionPage, SubmissionServiceOptions, SubmissionView, } from './submission-service.js';
|
|
113
|
+
export { LessonWorkWorkflowRequiredError, OwnAttestationConflictError, OwnAttestationLessonKindError, SELF_ATTESTABLE_LESSON_KINDS, SubmissionService, SubmissionStorageCleanupError, submissionPageKey, } from './submission-service.js';
|
|
105
114
|
export type { ExternalCompletionReporter, GraderKind, SubmissionAssetRelationship, SubmissionKind, SubmissionStatus, } from './submissions.js';
|
|
106
115
|
export { Attestation, ExternalCompletion, Grade, LessonSelfAttestation, ScannedSubmission, Submission, SubmissionAsset, SubmissionIntakeBinding, } from './submissions.js';
|
|
107
116
|
export type { TutorContextRequest } from './tutor-context-service.js';
|
|
@@ -110,13 +119,9 @@ export * from './tutor-contracts.js';
|
|
|
110
119
|
export { TutorExchange, TutorExchangeCollection, TutorSession, TutorSessionClosure, TutorSessionClosureCollection, TutorSessionCollection, } from './tutor-models.js';
|
|
111
120
|
export type { AppendTutorExchangeRequest, ListTutorSessionsRequest, OpenTutorSessionRequest, TutorExchangeView, TutorSessionView, TutorSessionWithExchanges, } from './tutor-session-service.js';
|
|
112
121
|
export { TutorSessionService } from './tutor-session-service.js';
|
|
113
|
-
export {
|
|
114
|
-
export
|
|
115
|
-
export * from './workbook-contracts.js';
|
|
116
|
-
export * from './workbook-layout.js';
|
|
117
|
-
export * from './workbook-models.js';
|
|
122
|
+
export { normalizeWorkAnswerRegions } from './work-answer-regions.js';
|
|
123
|
+
export * from './work-layout.js';
|
|
118
124
|
export * from './workbook-photo-contracts.js';
|
|
119
125
|
export * from './workbook-photo-models.js';
|
|
120
126
|
export { WorkbookPhotoService } from './workbook-photo-service.js';
|
|
121
|
-
export { WorkbookService } from './workbook-service.js';
|
|
122
127
|
//# sourceMappingURL=index.d.ts.map
|