@happyvertical/smrt-education 0.58.0 → 0.59.1

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 (57) hide show
  1. package/AGENTS.md +6 -1
  2. package/agents/class-crunchlabs.md +83 -0
  3. package/agents/course-bundle-import.md +108 -18
  4. package/agents/group-sharing.md +7 -0
  5. package/dist/catalog-contracts.d.ts +6 -2
  6. package/dist/catalog-contracts.d.ts.map +1 -1
  7. package/dist/catalog-materialization-service.d.ts.map +1 -1
  8. package/dist/catalog-policy.d.ts +11 -1
  9. package/dist/catalog-policy.d.ts.map +1 -1
  10. package/dist/catalog-preview.d.ts +6 -1
  11. package/dist/catalog-preview.d.ts.map +1 -1
  12. package/dist/chunks/course-authoring-contracts-C4Hqba-e.js +131 -0
  13. package/dist/chunks/course-authoring-contracts-C4Hqba-e.js.map +1 -0
  14. package/dist/chunks/course-bundle-zip-5KUe3C5H.js +323 -0
  15. package/dist/chunks/course-bundle-zip-5KUe3C5H.js.map +1 -0
  16. package/dist/chunks/{workbook-photo-service-COtyQL1y.js → workbook-photo-service-CjcB0y8Y.js} +226 -130
  17. package/dist/chunks/workbook-photo-service-CjcB0y8Y.js.map +1 -0
  18. package/dist/course-authoring-contracts.d.ts +1 -1
  19. package/dist/course-authoring-contracts.d.ts.map +1 -1
  20. package/dist/course-bundle-contracts.d.ts +21 -3
  21. package/dist/course-bundle-contracts.d.ts.map +1 -1
  22. package/dist/course-bundle-manifest-util.d.ts +15 -0
  23. package/dist/course-bundle-manifest-util.d.ts.map +1 -0
  24. package/dist/course-bundle-manifest-v2.d.ts +66 -0
  25. package/dist/course-bundle-manifest-v2.d.ts.map +1 -0
  26. package/dist/course-bundle-models.d.ts +29 -1
  27. package/dist/course-bundle-models.d.ts.map +1 -1
  28. package/dist/course-bundle-service.d.ts +104 -5
  29. package/dist/course-bundle-service.d.ts.map +1 -1
  30. package/dist/course-bundle.d.ts +81 -2
  31. package/dist/course-bundle.d.ts.map +1 -1
  32. package/dist/document-converter.d.ts +30 -18
  33. package/dist/document-converter.d.ts.map +1 -1
  34. package/dist/group-sharing-contracts.d.ts +4 -0
  35. package/dist/group-sharing-contracts.d.ts.map +1 -1
  36. package/dist/group-sharing-reader.d.ts.map +1 -1
  37. package/dist/hearth-catalog-providers.d.ts +1 -1
  38. package/dist/hearth-catalog-providers.d.ts.map +1 -1
  39. package/dist/hearth-class-crunchlabs.d.ts +94 -0
  40. package/dist/hearth-class-crunchlabs.d.ts.map +1 -0
  41. package/dist/index.d.ts +5 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1654 -400
  44. package/dist/index.js.map +1 -1
  45. package/dist/ingestion.js +1 -1
  46. package/dist/manifest.json +418 -6
  47. package/dist/node.d.ts +3 -0
  48. package/dist/node.d.ts.map +1 -0
  49. package/dist/node.js +134 -0
  50. package/dist/node.js.map +1 -0
  51. package/dist/smrt-knowledge.json +164 -12
  52. package/dist/sources/class-crunchlabs-files.d.ts +8 -0
  53. package/dist/sources/class-crunchlabs-files.d.ts.map +1 -0
  54. package/dist/sources/class-crunchlabs.d.ts +217 -0
  55. package/dist/sources/class-crunchlabs.d.ts.map +1 -0
  56. package/package.json +12 -8
  57. package/dist/chunks/workbook-photo-service-COtyQL1y.js.map +0 -1
@@ -6,7 +6,7 @@ import type { LessonLayoutParams, LessonQuestionRefInput } from './question-cont
6
6
  export type CourseAuthoringAction = 'education.course.read-draft' | 'education.course.author' | 'education.course.generate' | 'education.course.review' | 'education.course.release' | 'education.course.assign' | 'education.course.archive' | 'education.course.set-visibility' | 'education.course.set-cover';
7
7
  export declare const COURSE_AUTHORING_ACTIONS: readonly CourseAuthoringAction[];
8
8
  /** Which service operation asked, so a host can deny agents specific operations. */
9
- export type CourseAuthoringOperation = 'create' | 'save-draft' | 'append-lesson' | 'read-draft' | 'release' | 'archive' | 'unarchive' | 'set-visibility' | 'set-cover' | 'discard' | 'pin-enrollment' | 'upgrade-enrollment' | 'set-auto-upgrade' | 'auto-upgrade' | 'read-enrollment' | 'create-question' | 'save-question' | 'read-question' | 'resolve-question-revisions' | 'create-objective' | 'save-objective' | 'link-objectives' | 'read-worksheet' | 'request-generation' | 'run-generation' | 'cancel-generation' | 'accept-proposal' | 'read-generation' | 'record-review' | 'read-review' | 'resolve-finding' | 'note-context-change' | 'list-courses' | 'list-upgrade-choices' | 'list-auto-upgrade-skips' | 'read-released-lesson' | 'attach-printable' | 'preserve-question-extraction' | 'read-question-extraction' | 'apply-question-extraction' | 'import-course-bundle' | 'read-course-bundle';
9
+ export type CourseAuthoringOperation = 'create' | 'save-draft' | 'append-lesson' | 'read-draft' | 'release' | 'archive' | 'unarchive' | 'set-visibility' | 'set-cover' | 'discard' | 'pin-enrollment' | 'upgrade-enrollment' | 'set-auto-upgrade' | 'auto-upgrade' | 'read-enrollment' | 'create-question' | 'save-question' | 'read-question' | 'resolve-question-revisions' | 'create-objective' | 'save-objective' | 'link-objectives' | 'read-worksheet' | 'request-generation' | 'run-generation' | 'cancel-generation' | 'accept-proposal' | 'read-generation' | 'record-review' | 'read-review' | 'resolve-finding' | 'note-context-change' | 'list-courses' | 'list-upgrade-choices' | 'list-auto-upgrade-skips' | 'read-released-lesson' | 'attach-printable' | 'preserve-question-extraction' | 'read-question-extraction' | 'apply-question-extraction' | 'import-course-bundle' | 'read-course-bundle' | 'retry-course-bundle-rendering' | 'apply-course-bundle-materials';
10
10
  /** Trusted identity supplied by the host session, never by a browser form. */
11
11
  export interface CourseAuthoringActor {
12
12
  tenantId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"course-authoring-contracts.d.ts","sourceRoot":"","sources":["../src/course-authoring-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAC7B,6BAA6B,GAC7B,yBAAyB,GACzB,2BAA2B,GAC3B,yBAAyB,GACzB,0BAA0B,GAC1B,yBAAyB,GACzB,0BAA0B,GAC1B,iCAAiC,GACjC,4BAA4B,CAAC;AAEjC,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAUpE,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,GAChC,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,SAAS,GACT,SAAS,GACT,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,4BAA4B,GAC5B,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,sBAAsB,GACtB,yBAAyB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,8BAA8B,GAC9B,0BAA0B,GAC1B,2BAA2B,GAC3B,sBAAsB,GACtB,oBAAoB,CAAC;AAEzB,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,MAAM,wBAAwB,GAChC,OAAO,GACP;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,KACE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAElE,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,oBAAoB,GAAG;IAC9B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC;IACpC,iFAAiF;IACjF,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,KAEC,OAAO,GACP,2BAA2B,GAC3B,OAAO,CAAC,OAAO,GAAG,2BAA2B,CAAC,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAChB,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAKzD,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEhF,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,KAEjE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtE,0FAA0F;AAC1F,MAAM,MAAM,oBAAoB,GAAG,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAE7C;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC;AAEhE,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,uBAAuB,CAAC;CACvC;AACD,MAAM,WAAW,sBAAsB;IACrC,yFAAyF;IACzF,IAAI,CACF,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,uBAAuB,CAAC;IACtC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AACD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,uBAAuB,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,UAAU,EAAE;QACV,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,mEAAmE;IACnE,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AACD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,gBAAgB,CAAC;IAC7B,cAAc,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClD,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,YAAY,EAAE,kBAAkB,CAAC;CAClC;AACD,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,wBAAwB,EAAE,CAAC;KACrC,CAAC,CAAC;CACJ;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,mFAAmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0FAA0F;IAC1F,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ,CAAC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,UAAU,GACV,UAAU,GACV,WAAW,CAAC;AAChB,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,uFAAuF;IACvF,cAAc,EAAE,OAAO,CAAC;IACxB,2DAA2D;IAC3D,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gFAAgF;IAChF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;CACJ,CAAC,CAAC;AACH,4EAA4E;AAC5E,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;IACnC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AACH,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,IAAI,EAAE,QAAQ,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,GAAG,IAAI,CAAC;IACV,aAAa,EAAE,QAAQ,CAAC;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,+CAA+C;QAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,GAAG,IAAI,CAAC;IACV,OAAO,EAAE,QAAQ,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;KAClD,CAAC,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC/B,sCAAsC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,IAAI,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,6DAA6D;QAC7D,UAAU,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,CAAC,CAAC;AACH,0FAA0F;AAC1F,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,iBAAiB,CAAC;IACvB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,CAAC,CAAC;AACH,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC,CAAC;AAEH,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;AACD,qBAAa,iCAAkC,SAAQ,oBAAoB;;CAI1E;AACD,qBAAa,8BAA+B,SAAQ,oBAAoB;gBAC1D,OAAO,EAAE,MAAM;CAG5B;AACD,qBAAa,mBAAoB,SAAQ,oBAAoB;;CAI5D;AACD,qBAAa,oBAAqB,SAAQ,oBAAoB;;CAI7D;AACD,qBAAa,mBAAoB,SAAQ,oBAAoB;;CAI5D;AACD;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAE9D,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,GAAG,kBAAkB;gBAAlE,MAAM,EAAE,cAAc,GAAG,oBAAoB,GAAG,kBAAkB;CAI9E;AACD,qBAAa,oBAAqB,SAAQ,oBAAoB;IAChD,QAAQ,CAAC,qBAAqB,EAAE,MAAM;gBAA7B,qBAAqB,EAAE,MAAM;CAGnD;AACD,yEAAyE;AACzE,qBAAa,8BAA+B,SAAQ,oBAAoB;;CAOvE;AACD,qBAAa,6BAA8B,SAAQ,oBAAoB;;CAOtE;AACD,qBAAa,uBAAwB,SAAQ,oBAAoB;;CAOhE;AACD,qBAAa,qBAAsB,SAAQ,oBAAoB;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAAf,MAAM,CAAC,EAAE,MAAM,YAAA;CAMrC;AACD,qBAAa,kCAAmC,SAAQ,oBAAoB;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAGvC;AACD,qBAAa,yBAA0B,SAAQ,oBAAoB;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE;gBAA7B,UAAU,EAAE,SAAS,MAAM,EAAE;CAMnD;AACD,qBAAa,0BAA2B,SAAQ,oBAAoB;gBAEhE,OAAO,SAAyD;CAInE;AACD,qBAAa,uBAAwB,SAAQ,oBAAoB;gBAE7D,OAAO,SAA2D;CAIrE;AAED,gGAAgG;AAChG,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEhD,qFAAqF;AACrF,qBAAa,4BAA6B,SAAQ,oBAAoB;IACxD,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAA5B,UAAU,EAAE,gBAAgB;CAMlD;AACD,sFAAsF;AACtF,qBAAa,uBAAwB,SAAQ,oBAAoB;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAMpC"}
1
+ {"version":3,"file":"course-authoring-contracts.d.ts","sourceRoot":"","sources":["../src/course-authoring-contracts.ts"],"names":[],"mappings":"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"}
@@ -40,13 +40,23 @@ export interface CourseBundleLimits {
40
40
  export declare const COURSE_BUNDLE_LIMITS: Readonly<CourseBundleLimits>;
41
41
  /** Nested archives are never expanded: depth is one, and a zip member is unsupported evidence. */
42
42
  export declare const COURSE_BUNDLE_MAX_ARCHIVE_DEPTH = 1;
43
- /** The only manifest schema version. */
43
+ /** The original manifest schema version (page roles, no materials). */
44
44
  export declare const COURSE_BUNDLE_MANIFEST_VERSION = 1;
45
+ /** Manifest version 2: material roles and audience, lesson pages, course members, videos. */
46
+ export declare const COURSE_BUNDLE_MANIFEST_VERSION_2 = 2;
45
47
  /** Manifest location: the archive (or file set) root. */
46
48
  export declare const COURSE_BUNDLE_MANIFEST_PATH = "manifest.json";
47
49
  /** Clamp a host override to the hard ceilings; invalid values fall back to the ceiling. */
48
50
  export declare function resolveCourseBundleLimits(override?: Partial<CourseBundleLimits>): CourseBundleLimits;
49
- export type CourseBundleRefusalReason = 'archive_too_large' | 'not_a_zip' | 'truncated' | 'ambiguous_end_record' | 'zip64_unsupported' | 'multi_disk' | 'too_many_entries' | 'invalid_central_directory' | 'invalid_entry' | 'unsupported_method' | 'encrypted_entry' | 'symlink_entry' | 'special_entry' | 'invalid_path' | 'path_too_deep' | 'duplicate_name' | 'entry_out_of_range' | 'overlapping_entries' | 'local_header_mismatch' | 'compression_ratio' | 'total_too_large' | 'size_mismatch' | 'bad_crc' | 'inflate_failed' | 'empty_bundle' | 'manifest_invalid' | 'manifest_version' | 'manifest_unknown_key' | 'manifest_missing_member' | 'manifest_duplicate_member' | 'duplicate_key' | 'too_many_lessons' | 'lesson_too_large';
51
+ export type CourseBundleRefusalReason = 'archive_too_large' | 'not_a_zip' | 'truncated' | 'ambiguous_end_record' | 'zip64_unsupported' | 'multi_disk' | 'too_many_entries' | 'invalid_central_directory' | 'invalid_entry' | 'unsupported_method' | 'encrypted_entry' | 'symlink_entry' | 'special_entry' | 'invalid_path' | 'path_too_deep' | 'duplicate_name' | 'entry_out_of_range' | 'overlapping_entries' | 'local_header_mismatch' | 'compression_ratio' | 'total_too_large' | 'size_mismatch' | 'bad_crc' | 'inflate_failed' | 'empty_bundle' | 'manifest_invalid' | 'manifest_version' | 'manifest_unknown_key'
52
+ /** v2: a member role that is not a material role. */
53
+ | 'manifest_role'
54
+ /** v2: a learner audience on a guardian-only role, or an unknown audience. */
55
+ | 'manifest_audience'
56
+ /** v2: a page range that is malformed or names a member that cannot be paged. */
57
+ | 'manifest_pages'
58
+ /** v2: a video reference that is not an allowlisted YouTube id or URL. */
59
+ | 'manifest_video' | 'manifest_missing_member' | 'manifest_duplicate_member' | 'duplicate_key' | 'too_many_lessons' | 'lesson_too_large';
50
60
  /**
51
61
  * The whole bundle is refused: it is hostile, damaged or outside the contract.
52
62
  * `reason` is stable; `entry` names the offending member path when one applies
@@ -65,7 +75,9 @@ export type CourseBundleMemberKind = 'pdf' | 'image' | 'text'
65
75
  /** Word (`.docx`): rendered to PDF by the converter, text read by the SDK processor. */
66
76
  | 'docx'
67
77
  /** PowerPoint (`.pptx`): the deck is kept as the original and as rendered pages. */
68
- | 'pptx' | 'manifest' | 'unsupported';
78
+ | 'pptx'
79
+ /** Excel (`.xlsx`): rendered to PDF by the converter; no text reader. */
80
+ | 'xlsx' | 'manifest' | 'unsupported';
69
81
  export type CourseBundleMemberStatus =
70
82
  /** Supported, unique content: handed to extraction and eligible for a lesson. */
71
83
  'accepted'
@@ -88,6 +100,12 @@ export type CourseBundleMemberReason = 'unsupported_type' | 'nested_archive' | '
88
100
  | 'converter_failed' | 'converter_timeout' | 'converter_too_large'
89
101
  /** The converter refused the file, or returned something that is not a PDF. */
90
102
  | 'converter_rejected';
103
+ /**
104
+ * Converter outcomes that a deliberate retry may repair. A bundle that was
105
+ * never rendered or whose converter was unreachable can be rendered later;
106
+ * a file the converter rejected, or a limit, cannot be fixed by asking again.
107
+ */
108
+ export declare const COURSE_BUNDLE_RETRYABLE_REASONS: ReadonlySet<CourseBundleMemberReason>;
91
109
  export declare const COURSE_BUNDLE_PAGE_ROLES: readonly ["exercise", "example", "instructions", "cover", "answer_key", "mixed", "unknown"];
92
110
  export type CourseBundlePageRole = (typeof COURSE_BUNDLE_PAGE_ROLES)[number];
93
111
  /** Named progress stages, in order. */
@@ -1 +1 @@
1
- {"version":3,"file":"course-bundle-contracts.d.ts","sourceRoot":"","sources":["../src/course-bundle-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAKvE;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,gBAAgB,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,kBAAkB,CAkB7D,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,+BAA+B,IAAI,CAAC;AACjD,wCAAwC;AACxC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D,2FAA2F;AAC3F,wBAAgB,yBAAyB,CACvC,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACzC,kBAAkB,CAapB;AAED,MAAM,MAAM,yBAAyB,GACjC,mBAAmB,GACnB,WAAW,GACX,WAAW,GACX,sBAAsB,GACtB,mBAAmB,GACnB,YAAY,GACZ,kBAAkB,GAClB,2BAA2B,GAC3B,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,uBAAuB,GACvB,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,GACzB,2BAA2B,GAC3B,eAAe,GACf,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAE9D,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;gBADd,MAAM,EAAE,yBAAyB,EACjC,KAAK,CAAC,EAAE,MAAM,YAAA;CAI1B;AACD,qBAAa,yBAA0B,SAAQ,oBAAoB;;CAIlE;AAED,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAC9B,KAAK,GACL,OAAO,GACP,MAAM;AACR,wFAAwF;GACtF,MAAM;AACR,oFAAoF;GAClF,MAAM,GACN,UAAU,GACV,aAAa,CAAC;AAClB,MAAM,MAAM,wBAAwB;AAClC,iFAAiF;AAC/E,UAAU;AACZ,2FAA2F;GACzF,WAAW;AACb,kFAAkF;GAChF,aAAa;AACf,+DAA+D;GAC7D,SAAS;AACX,kCAAkC;GAChC,UAAU,CAAC;AACf,MAAM,MAAM,wBAAwB,GAChC,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,mBAAmB;AACrB,kFAAkF;GAChF,eAAe;AACjB,mDAAmD;GACjD,cAAc;AAChB,2EAA2E;GACzE,uBAAuB;AACzB,kEAAkE;GAChE,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB;AACvB,+EAA+E;GAC7E,oBAAoB,CAAC;AAEzB,eAAO,MAAM,wBAAwB,6FAQ3B,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,uCAAuC;AACvC,eAAO,MAAM,oBAAoB,iEAMvB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AACtE,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,mEAAmE;AACnE,MAAM,MAAM,4BAA4B,GAAG,CACzC,KAAK,EAAE,oBAAoB,KACxB,IAAI,CAAC;AAEV,uEAAuE;AACvE,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,UAAU,CAAA;CAAE,GACvB;IAAE,KAAK,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"course-bundle-contracts.d.ts","sourceRoot":"","sources":["../src/course-bundle-contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared checks for the closed bundle manifests (versions 1 and 2): every
3
+ * object is closed, every string bounded, every key a short token.
4
+ */
5
+ import { type CourseBundleRefusalReason } from './course-bundle-contracts.js';
6
+ export declare const MANIFEST_KEY: RegExp;
7
+ export declare const MANIFEST_CONTROL: RegExp;
8
+ export declare const refuse: (reason: CourseBundleRefusalReason, entry?: string) => never;
9
+ /** An object whose keys are all in `allowed`; any other key is `manifest_unknown_key`. */
10
+ export declare function closedObject(value: unknown, allowed: readonly string[], path: string): Record<string, unknown>;
11
+ export declare function manifestText(value: unknown, path: string, max: number): string;
12
+ export declare function manifestKey(value: unknown, path: string): string;
13
+ /** The `version` of a manifest document, or null when it is not a JSON object with one. */
14
+ export declare function manifestVersionOf(bytes: Uint8Array): number | null;
15
+ //# sourceMappingURL=course-bundle-manifest-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course-bundle-manifest-util.d.ts","sourceRoot":"","sources":["../src/course-bundle-manifest-util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,YAAY,QAA6B,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAEqB,CAAC;AAEnD,eAAO,MAAM,MAAM,GACjB,QAAQ,yBAAyB,EACjC,QAAQ,MAAM,KACb,KAEF,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,CAUR;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAalE"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Course bundle manifest version 2 (SMRT #4615): a closed schema that places
3
+ * members with a material role and an audience, names the pages of a lesson
4
+ * (a member plus page ranges), carries course-level members, and references
5
+ * allowlisted external videos. Pure parsing; nothing here reads bytes.
6
+ *
7
+ * ```json
8
+ * { "version": 2, "course": { "subject": "Science" },
9
+ * "courseMembers": [ { "path": "unit/supplies.pdf", "role": "attachment" } ],
10
+ * "sections": [ { "key": "unit", "title": "Unit", "lessons": [ {
11
+ * "key": "l1", "title": "Lesson 1",
12
+ * "members": [ { "path": "l1/log.pdf", "role": "learner-pages" },
13
+ * { "path": "l1/guide.pdf", "role": "teacher-guide" } ],
14
+ * "pages": [ { "member": "l1/log.pdf", "from": 1, "to": 4, "label": "Mission log" } ],
15
+ * "videos": [ { "reference": "dQw4w9WgXcQ", "title": "Recap", "step": 1 } ] } ] } ] }
16
+ * ```
17
+ */
18
+ import { type CourseBundleLimits } from './course-bundle-contracts.js';
19
+ import { type LessonAssetRelationship, type MaterialAudience } from './lesson-assets.js';
20
+ /** Roles a bundle file member may take. A video is an external reference, never a file member. */
21
+ export declare const COURSE_BUNDLE_MATERIAL_ROLES: readonly LessonAssetRelationship[];
22
+ /** Most pages one lesson may declare, and the highest page number a range may name. */
23
+ export declare const COURSE_BUNDLE_MAX_LESSON_PAGES = 500;
24
+ export declare const COURSE_BUNDLE_MAX_PAGE_NUMBER = 5000;
25
+ export declare const COURSE_BUNDLE_MAX_STEP = 9999;
26
+ export interface ManifestV2Member {
27
+ path: string;
28
+ role: LessonAssetRelationship;
29
+ /** Effective audience: stated, else the role default. */
30
+ audience: MaterialAudience;
31
+ title: string;
32
+ }
33
+ export interface ManifestV2PageRange {
34
+ /** Path of a member declared in the same lesson. */
35
+ member: string;
36
+ from: number;
37
+ to: number;
38
+ /** Label prefix; pages are labelled `<label> <n>` (default `Page <n>`). */
39
+ label: string;
40
+ }
41
+ export interface ManifestV2Video {
42
+ provider: 'youtube';
43
+ videoId: string;
44
+ title: string;
45
+ stepOrder: number;
46
+ audience: MaterialAudience;
47
+ }
48
+ export interface ManifestV2Lesson {
49
+ key: string;
50
+ title: string;
51
+ members: ManifestV2Member[];
52
+ pages: ManifestV2PageRange[];
53
+ videos: ManifestV2Video[];
54
+ }
55
+ export interface ManifestV2 {
56
+ subject?: string;
57
+ sections: Array<{
58
+ key: string;
59
+ title: string;
60
+ lessons: ManifestV2Lesson[];
61
+ }>;
62
+ courseMembers: ManifestV2Member[];
63
+ }
64
+ /** Closed, versioned manifest schema: any unknown key is refused. */
65
+ export declare function parseBundleManifestV2(bytes: Uint8Array, paths: ReadonlySet<string>, limits?: CourseBundleLimits): ManifestV2;
66
+ //# sourceMappingURL=course-bundle-manifest-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course-bundle-manifest-v2.d.ts","sourceRoot":"","sources":["../src/course-bundle-manifest-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAEtB,MAAM,oBAAoB,CAAC;AAE5B,kGAAkG;AAClG,eAAO,MAAM,4BAA4B,EAAE,SAAS,uBAAuB,EACG,CAAC;AAE/E,uFAAuF;AACvF,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AACnD,eAAO,MAAM,sBAAsB,OAAQ,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AACD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AACD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAAC;IAC7E,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC;AA0BD,qEAAqE;AACrE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,MAAM,GAAE,kBAAyC,GAChD,UAAU,CAqMZ"}
@@ -51,8 +51,13 @@ export declare class CourseBundleMember extends SmrtObject {
51
51
  reason: string;
52
52
  /** Path of the earlier member with identical bytes. */
53
53
  duplicateOfPath: string;
54
- /** Declared page role (manifest), empty when none. */
54
+ /**
55
+ * Declared role (manifest): a page role under version 1, a material role
56
+ * under version 2. Empty when none.
57
+ */
55
58
  role: string;
59
+ /** Version 2: the effective audience (`learner` or `guardian`); empty when none. */
60
+ audience: string;
56
61
  sectionKey: string;
57
62
  lessonKey: string;
58
63
  /** sha256 of the PDF rendered from a Word/PowerPoint member; empty otherwise. */
@@ -66,4 +71,27 @@ export declare class CourseBundleMember extends SmrtObject {
66
71
  export declare class CourseBundleMemberCollection extends SmrtCollection<CourseBundleMember> {
67
72
  static readonly _itemClass: typeof CourseBundleMember;
68
73
  }
74
+ /**
75
+ * Append-only record that a Word/PowerPoint member whose first rendering failed
76
+ * was rendered later by a deliberate retry (SMRT #4615). The import's member
77
+ * rows stay as first recorded; readers overlay this record. One row per
78
+ * (import, content hash): a second retry of a repaired member is a replay.
79
+ */
80
+ export declare class CourseBundleRendering extends SmrtObject {
81
+ tenantId: string;
82
+ importId: string;
83
+ /** Content hash of the Word/PowerPoint member that was rendered. */
84
+ sha256: string;
85
+ renderedSha256: string;
86
+ renderedSizeBytes: number;
87
+ converterId: string;
88
+ retriedByUserId: string;
89
+ recordedAt: Date;
90
+ constructor(options?: Record<string, unknown>);
91
+ delete(): Promise<void>;
92
+ save(options?: SmrtSaveOptions): Promise<this>;
93
+ }
94
+ export declare class CourseBundleRenderingCollection extends SmrtCollection<CourseBundleRendering> {
95
+ static readonly _itemClass: typeof CourseBundleRendering;
96
+ }
69
97
  //# sourceMappingURL=course-bundle-models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"course-bundle-models.d.ts","sourceRoot":"","sources":["../src/course-bundle-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,UAAU,EACV,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AA6ClC;;;;;GAKG;AACH,qBAaa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC1B,yDAAyD;IACzD,cAAc,SAAM;IACpB,wBAAwB;IACxB,MAAM,SAAS;IACf,gFAAgF;IAChF,QAAQ,SAAM;IACd,4CAA4C;IAC5C,eAAe,SAAK;IACpB,UAAU,SAAK;IACf,aAAa,SAAK;IAClB,cAAc,SAAK;IACnB,gBAAgB,SAAK;IACrB,YAAY,SAAK;IACjB,UAAU,SAAK;IACf,gBAAgB,SAAM;IACtB,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB9D;AACD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD;AAED;;;;GAIG;AACH,qBAiBa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC4B,QAAQ,SAAM;IACpE,gDAAgD;IAChD,OAAO,SAAK;IACZ,IAAI,SAAM;IACV,wEAAwE;IACxE,MAAM,SAAM;IACZ,SAAS,SAAK;IACd,SAAS,SAAM;IACf,IAAI,SAAiB;IACrB,MAAM,SAAiB;IACvB,gEAAgE;IAChE,MAAM,SAAM;IACZ,uDAAuD;IACvD,eAAe,SAAM;IACrB,sDAAsD;IACtD,IAAI,SAAM;IACV,UAAU,SAAM;IAChB,SAAS,SAAM;IACf,iFAAiF;IACjF,cAAc,SAAM;IACpB,iBAAiB,SAAK;IACtB,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB9D;AACD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD"}
1
+ {"version":3,"file":"course-bundle-models.d.ts","sourceRoot":"","sources":["../src/course-bundle-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,UAAU,EACV,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AA8ClC;;;;;GAKG;AACH,qBAaa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC1B,yDAAyD;IACzD,cAAc,SAAM;IACpB,wBAAwB;IACxB,MAAM,SAAS;IACf,gFAAgF;IAChF,QAAQ,SAAM;IACd,4CAA4C;IAC5C,eAAe,SAAK;IACpB,UAAU,SAAK;IACf,aAAa,SAAK;IAClB,cAAc,SAAK;IACnB,gBAAgB,SAAK;IACrB,YAAY,SAAK;IACjB,UAAU,SAAK;IACf,gBAAgB,SAAM;IACtB,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB9D;AACD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD;AAED;;;;GAIG;AACH,qBAiBa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC4B,QAAQ,SAAM;IACpE,gDAAgD;IAChD,OAAO,SAAK;IACZ,IAAI,SAAM;IACV,wEAAwE;IACxE,MAAM,SAAM;IACZ,SAAS,SAAK;IACd,SAAS,SAAM;IACf,IAAI,SAAiB;IACrB,MAAM,SAAiB;IACvB,gEAAgE;IAChE,MAAM,SAAM;IACZ,uDAAuD;IACvD,eAAe,SAAM;IACrB;;;OAGG;IACH,IAAI,SAAM;IACV,oFAAoF;IACpF,QAAQ,SAAM;IACd,UAAU,SAAM;IAChB,SAAS,SAAM;IACf,iFAAiF;IACjF,cAAc,SAAM;IACpB,iBAAiB,SAAK;IACtB,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B9D;AACD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD;AAED;;;;;GAKG;AACH,qBAaa,qBAAsB,SAAQ,UAAU;IACvC,QAAQ,SAAM;IAC4B,QAAQ,SAAM;IACpE,oEAAoE;IACpE,MAAM,SAAM;IACZ,cAAc,SAAM;IACpB,iBAAiB,SAAK;IACtB,WAAW,SAAM;IACjB,eAAe,SAAM;IACrB,UAAU,OAAc;gBACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAgB9D;AACD,qBAAa,+BAAgC,SAAQ,cAAc,CAAC,qBAAqB,CAAC;IACxF,MAAM,CAAC,QAAQ,CAAC,UAAU,+BAAyB;CACpD"}
@@ -1,11 +1,12 @@
1
1
  import type { DatabaseInterface } from '@happyvertical/sql';
2
- import type { CourseAuthoringActor, CourseAuthoringAuthorizer } from './course-authoring-contracts.js';
2
+ import { type CourseAuthoringActor, type CourseAuthoringAuthorizer, CourseAuthoringError } from './course-authoring-contracts.js';
3
3
  import { CourseAuthoringService } from './course-authoring-service.js';
4
- import { type BundleReaderRegistry } from './course-bundle.js';
4
+ import { type BundleMaterialsPlan, type BundleReaderRegistry } from './course-bundle.js';
5
5
  import { type CourseBundleInput, type CourseBundleLimits, type CourseBundleMemberKind, type CourseBundleMemberReason, type CourseBundleMemberStatus, type CourseBundleProgressListener } from './course-bundle-contracts.js';
6
6
  import type { CourseGenerationView } from './course-generation-contracts.js';
7
7
  import { type CourseGenerationReviewServiceOptions } from './course-generation-review-service.js';
8
- import { type DocumentConverter, type OfficeText, type OfficeTextReader } from './document-converter.js';
8
+ import { type DocumentConverter, type OfficeDocumentKind, type OfficeText, type OfficeTextReader } from './document-converter.js';
9
+ import { type MaterialAudience } from './lesson-assets.js';
9
10
  /** One bundle member as evidence. Never carries bytes, storage locators or text. */
10
11
  export interface CourseBundleMemberView {
11
12
  path: string;
@@ -17,7 +18,10 @@ export interface CourseBundleMemberView {
17
18
  status: CourseBundleMemberStatus;
18
19
  reason: CourseBundleMemberReason | null;
19
20
  duplicateOfPath: string | null;
21
+ /** The declared role: a page role (manifest v1) or a material role (v2). */
20
22
  role: string | null;
23
+ /** Manifest v2: the effective audience. */
24
+ audience: MaterialAudience | null;
21
25
  sectionKey: string | null;
22
26
  lessonKey: string | null;
23
27
  /** sha256 of the PDF rendered from a Word/PowerPoint member, null otherwise. */
@@ -45,9 +49,13 @@ export interface AcceptedCourseBundleMember {
45
49
  path: string;
46
50
  sha256: string;
47
51
  mediaType: string;
48
- kind: 'pdf' | 'image' | 'text' | 'docx' | 'pptx';
49
- /** Declared page role (`exercise`, `answer_key`, ...), or null. */
52
+ kind: 'pdf' | 'image' | 'text' | OfficeDocumentKind;
53
+ /** Declared role: a page role (`exercise`, ...) under v1, a material role (`slides`, ...) under v2. */
50
54
  role: string | null;
55
+ /** Manifest v2: who the material is for; null otherwise. */
56
+ audience: MaterialAudience | null;
57
+ /** Manifest v2: true for a course-level member (no lesson). */
58
+ courseLevel: boolean;
51
59
  sectionKey: string | null;
52
60
  lessonKey: string | null;
53
61
  /** The original bytes. For Word/PowerPoint, keep these as the private original asset. */
@@ -75,6 +83,8 @@ export interface CourseBundleImportResult {
75
83
  accepted: AcceptedCourseBundleMember[];
76
84
  /** What `receiveMember` returned per path. */
77
85
  receipts: Record<string, unknown>;
86
+ /** Manifest v2: the lesson pages, course members and videos the bundle asks for. */
87
+ materials: BundleMaterialsPlan;
78
88
  }
79
89
  export interface ImportCourseBundleRequest extends CourseAuthoringActor {
80
90
  bundle: CourseBundleInput;
@@ -101,6 +111,72 @@ export interface ProposeBundleStructureRequest extends CourseAuthoringActor {
101
111
  limits?: Partial<CourseBundleLimits>;
102
112
  onProgress?: CourseBundleProgressListener;
103
113
  }
114
+ export interface RetryBundleRenderingRequest extends CourseAuthoringActor {
115
+ importId: string;
116
+ /** The same bundle again: bytes are never retained by this service. */
117
+ bundle: CourseBundleInput;
118
+ /** Limit the retry to these member paths; omitted retries every retryable failure. */
119
+ paths?: string[];
120
+ limits?: Partial<CourseBundleLimits>;
121
+ onProgress?: CourseBundleProgressListener;
122
+ /** Called for each member that rendered on this retry, as on a replayed import. */
123
+ receiveMember?: ImportCourseBundleRequest['receiveMember'];
124
+ }
125
+ export interface RetryBundleRenderingResult {
126
+ import: CourseBundleImportView;
127
+ /**
128
+ * Per requested member: `rendered` (recorded now), `failed` (still failing,
129
+ * nothing recorded; `reason` names why), or `unchanged` (not a retryable
130
+ * failure, for example already rendered or rejected by the converter).
131
+ */
132
+ retried: Array<{
133
+ path: string;
134
+ outcome: 'rendered' | 'failed' | 'unchanged';
135
+ reason: CourseBundleMemberReason | null;
136
+ }>;
137
+ /** Members that rendered on this retry, as handed to `receiveMember`. */
138
+ accepted: AcceptedCourseBundleMember[];
139
+ receipts: Record<string, unknown>;
140
+ materials: BundleMaterialsPlan;
141
+ }
142
+ export interface ApplyBundleMaterialsRequest extends CourseAuthoringActor {
143
+ importId: string;
144
+ /** The same bundle again: bytes are never retained by this service. */
145
+ bundle: CourseBundleInput;
146
+ /** A family-owned course (not an authored one; authored material goes through authoring). */
147
+ courseId: string;
148
+ /** Manifest lesson key to the `Lesson` id in `courseId` that the host created for it. */
149
+ lessons: Record<string, string>;
150
+ /**
151
+ * Member path to the private assets the host stored from `receiveMember`:
152
+ * the original, and the rendered PDF for Word/PowerPoint members. Slides
153
+ * join both; every other Office member joins only its rendered PDF, so a
154
+ * learner is never handed an editable original.
155
+ */
156
+ assets: Record<string, {
157
+ original?: string;
158
+ rendered?: string;
159
+ }>;
160
+ limits?: Partial<CourseBundleLimits>;
161
+ onProgress?: CourseBundleProgressListener;
162
+ }
163
+ export interface ApplyBundleMaterialsResult {
164
+ courseAssets: number;
165
+ lessonAssets: number;
166
+ lessonPages: number;
167
+ lessonVideos: number;
168
+ /** Rows that already existed with the same details (a replay). */
169
+ unchanged: number;
170
+ /** Original-deck joins whose audience was corrected to guardian-only. */
171
+ repaired: number;
172
+ skipped: BundleMaterialsPlan['skipped'];
173
+ }
174
+ /** The materials could not be applied; nothing was written. */
175
+ export declare class CourseBundleMaterialsError extends CourseAuthoringError {
176
+ readonly reason: 'authored-course' | 'course-not-found' | 'lesson-missing' | 'asset-missing' | 'conflict';
177
+ readonly entry?: string | undefined;
178
+ constructor(reason: 'authored-course' | 'course-not-found' | 'lesson-missing' | 'asset-missing' | 'conflict', entry?: string | undefined);
179
+ }
104
180
  export interface CourseBundleImportServiceOptions extends Omit<CourseGenerationReviewServiceOptions, 'generator'> {
105
181
  readers?: BundleReaderRegistry;
106
182
  limits?: Partial<CourseBundleLimits>;
@@ -153,6 +229,29 @@ export declare class CourseBundleImportService extends CourseAuthoringService {
153
229
  * write transaction. Idempotent per (tenant, bundle content identity).
154
230
  */
155
231
  importBundle(request: ImportCourseBundleRequest): Promise<CourseBundleImportResult>;
232
+ /**
233
+ * Deliberately retry the rendering of Word/PowerPoint members whose first
234
+ * import recorded a retryable converter failure (`converter_unavailable`,
235
+ * `converter_failed`, `converter_timeout`). Safe and idempotent: the first
236
+ * import's evidence is append-only and is never rewritten; a success is one
237
+ * extra `course_bundle_renderings` row per (import, content hash), after which
238
+ * readers (and a replayed import or proposal) see the member as accepted. A
239
+ * failure records nothing, so asking again is always allowed. Rejections,
240
+ * size limits and the Office member cap are not retryable: change the bundle.
241
+ * Needs `education.course.author` and a configured converter.
242
+ */
243
+ retryRendering(request: RetryBundleRenderingRequest): Promise<RetryBundleRenderingResult>;
244
+ /**
245
+ * Turn a bundle's version 2 materials into rows of a family-owned course:
246
+ * `CourseAsset` (course members), `LessonAsset` (lesson members, slides as
247
+ * original plus rendered pages), `LessonPage` (page ranges, sourced from the
248
+ * paged member's PDF) and `LessonExternalVideo` (allowlisted YouTube
249
+ * references; never downloaded). The host has already stored each accepted
250
+ * member as a private asset and created the course's lessons. All or nothing,
251
+ * idempotent: a row that exists with the same details is left alone, one that
252
+ * exists with other details is a conflict. Needs `education.course.author`.
253
+ */
254
+ applyMaterials(request: ApplyBundleMaterialsRequest): Promise<ApplyBundleMaterialsResult>;
156
255
  /** The recorded evidence of one import; needs `education.course.read-draft`. */
157
256
  readImport(request: CourseAuthoringActor & {
158
257
  importId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"course-bundle-service.d.ts","sourceRoot":"","sources":["../src/course-bundle-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"course-bundle-service.d.ts","sourceRoot":"","sources":["../src/course-bundle-service.ts"],"names":[],"mappings":"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"}
@@ -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: {