@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.
Files changed (121) hide show
  1. package/AGENTS.md +18 -8
  2. package/README.md +36 -2
  3. package/agents/class-crunchlabs.md +83 -0
  4. package/agents/course-bundle-import.md +108 -18
  5. package/agents/course-work-design.md +144 -0
  6. package/agents/group-sharing.md +5 -1
  7. package/agents/learner-plan.md +3 -3
  8. package/agents/learner-service.md +1 -1
  9. package/agents/lesson-materials.md +52 -0
  10. package/agents/{workbook-service.md → lesson-work-service.md} +164 -95
  11. package/agents/{workbook-test-matrix.md → lesson-work-test-matrix.md} +3 -3
  12. package/agents/photo-intake.md +37 -50
  13. package/agents/question-records.md +1 -1
  14. package/agents/submission-service.md +22 -6
  15. package/dist/catalog-contracts.d.ts +6 -2
  16. package/dist/catalog-contracts.d.ts.map +1 -1
  17. package/dist/catalog-materialization-service.d.ts.map +1 -1
  18. package/dist/catalog-policy.d.ts +11 -1
  19. package/dist/catalog-policy.d.ts.map +1 -1
  20. package/dist/catalog-preview.d.ts +6 -1
  21. package/dist/catalog-preview.d.ts.map +1 -1
  22. package/dist/catalog-service.d.ts +1 -1
  23. package/dist/catalog-service.d.ts.map +1 -1
  24. package/dist/catalog.d.ts +11 -0
  25. package/dist/catalog.d.ts.map +1 -1
  26. package/dist/chunks/course-authoring-contracts-C4Hqba-e.js +131 -0
  27. package/dist/chunks/course-authoring-contracts-C4Hqba-e.js.map +1 -0
  28. package/dist/chunks/course-bundle-zip-5KUe3C5H.js +323 -0
  29. package/dist/chunks/course-bundle-zip-5KUe3C5H.js.map +1 -0
  30. package/dist/chunks/{workbook-photo-service-BtMQsbhq.js → workbook-photo-service-CjcB0y8Y.js} +6151 -5091
  31. package/dist/chunks/workbook-photo-service-CjcB0y8Y.js.map +1 -0
  32. package/dist/course-authoring-contracts.d.ts +6 -2
  33. package/dist/course-authoring-contracts.d.ts.map +1 -1
  34. package/dist/course-authoring-service.d.ts.map +1 -1
  35. package/dist/course-bundle-contracts.d.ts +21 -3
  36. package/dist/course-bundle-contracts.d.ts.map +1 -1
  37. package/dist/course-bundle-manifest-util.d.ts +15 -0
  38. package/dist/course-bundle-manifest-util.d.ts.map +1 -0
  39. package/dist/course-bundle-manifest-v2.d.ts +66 -0
  40. package/dist/course-bundle-manifest-v2.d.ts.map +1 -0
  41. package/dist/course-bundle-models.d.ts +29 -1
  42. package/dist/course-bundle-models.d.ts.map +1 -1
  43. package/dist/course-bundle-service.d.ts +104 -5
  44. package/dist/course-bundle-service.d.ts.map +1 -1
  45. package/dist/course-bundle.d.ts +81 -2
  46. package/dist/course-bundle.d.ts.map +1 -1
  47. package/dist/course-work-migration.d.ts +27 -0
  48. package/dist/course-work-migration.d.ts.map +1 -0
  49. package/dist/document-converter.d.ts +30 -18
  50. package/dist/document-converter.d.ts.map +1 -1
  51. package/dist/group-sharing-contracts.d.ts +3 -3
  52. package/dist/group-sharing-contracts.d.ts.map +1 -1
  53. package/dist/group-sharing-policy.d.ts +4 -4
  54. package/dist/group-sharing-policy.d.ts.map +1 -1
  55. package/dist/group-sharing-reader.d.ts.map +1 -1
  56. package/dist/hearth-catalog-providers.d.ts +1 -1
  57. package/dist/hearth-catalog-providers.d.ts.map +1 -1
  58. package/dist/hearth-class-crunchlabs.d.ts +94 -0
  59. package/dist/hearth-class-crunchlabs.d.ts.map +1 -0
  60. package/dist/index.d.ts +18 -13
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +1968 -419
  63. package/dist/index.js.map +1 -1
  64. package/dist/ingestion.d.ts +12 -11
  65. package/dist/ingestion.d.ts.map +1 -1
  66. package/dist/ingestion.js +63 -56
  67. package/dist/ingestion.js.map +1 -1
  68. package/dist/learner-plan-service.d.ts +1 -1
  69. package/dist/learner-plan-service.d.ts.map +1 -1
  70. package/dist/learner-service.d.ts +19 -5
  71. package/dist/learner-service.d.ts.map +1 -1
  72. package/dist/lesson-assets.d.ts +66 -2
  73. package/dist/lesson-assets.d.ts.map +1 -1
  74. package/dist/lesson-pages.d.ts +36 -0
  75. package/dist/lesson-pages.d.ts.map +1 -0
  76. package/dist/{workbook-completion.d.ts → lesson-work-completion.d.ts} +10 -10
  77. package/dist/lesson-work-completion.d.ts.map +1 -0
  78. package/dist/{workbook-contracts.d.ts → lesson-work-contracts.d.ts} +100 -52
  79. package/dist/lesson-work-contracts.d.ts.map +1 -0
  80. package/dist/lesson-work-models.d.ts +118 -0
  81. package/dist/lesson-work-models.d.ts.map +1 -0
  82. package/dist/lesson-work-service.d.ts +239 -0
  83. package/dist/lesson-work-service.d.ts.map +1 -0
  84. package/dist/manifest.json +6830 -5333
  85. package/dist/node.d.ts +3 -0
  86. package/dist/node.d.ts.map +1 -0
  87. package/dist/node.js +134 -0
  88. package/dist/node.js.map +1 -0
  89. package/dist/smrt-knowledge.json +2260 -1705
  90. package/dist/sources/class-crunchlabs-files.d.ts +8 -0
  91. package/dist/sources/class-crunchlabs-files.d.ts.map +1 -0
  92. package/dist/sources/class-crunchlabs.d.ts +217 -0
  93. package/dist/sources/class-crunchlabs.d.ts.map +1 -0
  94. package/dist/submission-service.d.ts +135 -5
  95. package/dist/submission-service.d.ts.map +1 -1
  96. package/dist/submissions.d.ts +2 -0
  97. package/dist/submissions.d.ts.map +1 -1
  98. package/dist/work-answer-regions.d.ts +11 -0
  99. package/dist/work-answer-regions.d.ts.map +1 -0
  100. package/dist/work-layout.d.ts +13 -0
  101. package/dist/work-layout.d.ts.map +1 -0
  102. package/dist/workbook-photo-contracts.d.ts +9 -7
  103. package/dist/workbook-photo-contracts.d.ts.map +1 -1
  104. package/dist/workbook-photo-ingestion.d.ts +1 -1
  105. package/dist/workbook-photo-ingestion.d.ts.map +1 -1
  106. package/dist/workbook-photo-models.d.ts +5 -5
  107. package/dist/workbook-photo-models.d.ts.map +1 -1
  108. package/dist/workbook-photo-service.d.ts +13 -10
  109. package/dist/workbook-photo-service.d.ts.map +1 -1
  110. package/package.json +12 -8
  111. package/dist/chunks/workbook-photo-service-BtMQsbhq.js.map +0 -1
  112. package/dist/workbook-answer-regions.d.ts +0 -11
  113. package/dist/workbook-answer-regions.d.ts.map +0 -1
  114. package/dist/workbook-completion.d.ts.map +0 -1
  115. package/dist/workbook-contracts.d.ts.map +0 -1
  116. package/dist/workbook-layout.d.ts +0 -13
  117. package/dist/workbook-layout.d.ts.map +0 -1
  118. package/dist/workbook-models.d.ts +0 -129
  119. package/dist/workbook-models.d.ts.map +0 -1
  120. package/dist/workbook-service.d.ts +0 -163
  121. package/dist/workbook-service.d.ts.map +0 -1
@@ -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
- /** Page role per path, `''` when none was declared. */
36
- roles: Array<CourseBundlePageRole | ''>;
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":"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"}
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. Wire the SDK processor once `@happyvertical/documents` with
66
- * `extractOffice` is released:
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":"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"}
1
+ {"version":3,"file":"document-converter.d.ts","sourceRoot":"","sources":["../src/document-converter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { WorkbookAssessment, WorkbookConceptSummary } from './workbook-contracts.js';
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: WorkbookAssessment;
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<WorkbookConceptSummary>;
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":"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"}
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 { WorkbookAssessment, WorkbookConceptSummary } from './workbook-contracts.js';
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 WorkbookEvidenceInput {
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: WorkbookAssessment;
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 summarizeWorkbookEvidence(evidence: WorkbookEvidenceInput[]): WorkbookConceptSummary[];
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,kBAAkB,EAElB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,4FAA4F;AAC5F,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,qBAAqB,GAC3B,oBAAoB,CAgCtB;AACD,MAAM,WAAW,qBAAqB;IACpC,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,kBAAkB,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD,mFAAmF;AACnF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,qBAAqB,EAAE,GAChC,sBAAsB,EAAE,CAsF1B"}
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;AAOtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAmUxE,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
+ {"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;AAElB;;;;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,EAgBtE,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"}
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, WorkbookOwnedLessonError, } from './learner-service.js';
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 type { LessonAssetRelationship } from './lesson-assets.js';
76
- export { LessonAsset } from './lesson-assets.js';
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, WorkbookWorkflowRequiredError, } from './submission-service.js';
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 { normalizeWorkbookAnswerRegions } from './workbook-answer-regions.js';
114
- export { WorkbookCompletionDecision, WorkbookCompletionDecisionCollection, } from './workbook-completion.js';
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