feat: HLS streaming, transcripts, agent course generation & landing-page course previews (#663)
New features: - HLS video encoding/streaming (hls routes, hls-encoder) and a media transcripts pipeline (transcripts route + media-transcript queries) - AI assistant chat vs. run model: agent-course-generation worker/queue, run-monitor pane, chat-changes card, content ask-ai bar - Per-theme course-page previews across org landing-page themes (bold, classic, corporate, editorial, etc.) with a shared course token/component set - View-as-student mode and login-link / link-invite invite flows Refactor: - Extract packages/core consolidating config (env, storage, dashboard-url), services and utils previously duplicated under apps/api/src/config - Remove legacy agent service modules (chat-tools, chat-context, context-window, document, fetch-url, lesson-content) - Relax Cross-Origin-Resource-Policy to allow cross-origin media embedding - Add format script to tenant-router so turbo run format covers it
This commit is contained in:
@@ -1,43 +1,74 @@
|
||||
export { default as MinimalLandingPage } from './minimal.svelte';
|
||||
export { default as BoldLandingPage } from './bold.svelte';
|
||||
export { default as ClassicLandingPage } from './classic.svelte';
|
||||
export { default as SaasLandingPage } from './saas.svelte';
|
||||
export { default as TechLandingPage } from './tech.svelte';
|
||||
export { default as StudioLandingPage } from './studio.svelte';
|
||||
export { default as CorporateLandingPage } from './corporate.svelte';
|
||||
export { default as TerminalLandingPage } from './terminal.svelte';
|
||||
export { default as EditorialLandingPage } from './editorial.svelte';
|
||||
export { default as VibrantLandingPage } from './vibrant.svelte';
|
||||
export { default as BoldLandingNav } from './bold/nav.svelte';
|
||||
export { default as BoldLandingHero } from './bold/hero.svelte';
|
||||
export { default as ClassicLandingNav } from './classic/nav.svelte';
|
||||
export { default as ClassicLandingHero } from './classic/hero.svelte';
|
||||
export { default as MinimalLandingNav } from './minimal/nav.svelte';
|
||||
export { default as MinimalLandingHero } from './minimal/hero.svelte';
|
||||
export { default as SaasLandingNav } from './saas/nav.svelte';
|
||||
export { default as SaasLandingHero } from './saas/hero.svelte';
|
||||
export { default as TechLandingNav } from './tech/nav.svelte';
|
||||
export { default as TechLandingHero } from './tech/hero.svelte';
|
||||
export { default as StudioLandingNav } from './studio/nav.svelte';
|
||||
export { default as StudioLandingHero } from './studio/hero.svelte';
|
||||
export { default as CorporateLandingNav } from './corporate/nav.svelte';
|
||||
export { default as CorporateLandingHero } from './corporate/hero.svelte';
|
||||
export { default as TerminalLandingNav } from './terminal/nav.svelte';
|
||||
export { default as TerminalLandingHero } from './terminal/hero.svelte';
|
||||
export { default as EditorialLandingNav } from './editorial/nav.svelte';
|
||||
export { default as EditorialLandingHero } from './editorial/hero.svelte';
|
||||
export { default as VibrantLandingNav } from './vibrant/nav.svelte';
|
||||
export { default as VibrantLandingHero } from './vibrant/hero.svelte';
|
||||
export { default as MinimalLandingCourseCard } from './minimal/course-card.svelte';
|
||||
export { default as BoldLandingCourseCard } from './bold/course-card.svelte';
|
||||
export { default as ClassicLandingCourseCard } from './classic/course-card.svelte';
|
||||
export { default as SaasLandingCourseCard } from './saas/course-card.svelte';
|
||||
export { default as TechLandingCourseCard } from './tech/course-card.svelte';
|
||||
export { default as StudioLandingCourseCard } from './studio/course-card.svelte';
|
||||
export { default as CorporateLandingCourseCard } from './corporate/course-card.svelte';
|
||||
export { default as TerminalLandingCourseCard } from './terminal/course-card.svelte';
|
||||
export { default as EditorialLandingCourseCard } from './editorial/course-card.svelte';
|
||||
export { default as VibrantLandingCourseCard } from './vibrant/course-card.svelte';
|
||||
export {
|
||||
org as MinimalLandingPage,
|
||||
course as MinimalCourseLanding,
|
||||
nav as MinimalLandingNav,
|
||||
hero as MinimalLandingHero,
|
||||
courseCard as MinimalLandingCourseCard
|
||||
} from './minimal';
|
||||
export {
|
||||
org as BoldLandingPage,
|
||||
course as BoldCourseLanding,
|
||||
nav as BoldLandingNav,
|
||||
hero as BoldLandingHero,
|
||||
courseCard as BoldLandingCourseCard
|
||||
} from './bold';
|
||||
export {
|
||||
org as ClassicLandingPage,
|
||||
course as ClassicCourseLanding,
|
||||
nav as ClassicLandingNav,
|
||||
hero as ClassicLandingHero,
|
||||
courseCard as ClassicLandingCourseCard
|
||||
} from './classic';
|
||||
export {
|
||||
org as SaasLandingPage,
|
||||
course as SaasCourseLanding,
|
||||
nav as SaasLandingNav,
|
||||
hero as SaasLandingHero,
|
||||
courseCard as SaasLandingCourseCard
|
||||
} from './saas';
|
||||
export {
|
||||
org as TechLandingPage,
|
||||
course as TechCourseLanding,
|
||||
nav as TechLandingNav,
|
||||
hero as TechLandingHero,
|
||||
courseCard as TechLandingCourseCard
|
||||
} from './tech';
|
||||
export {
|
||||
org as StudioLandingPage,
|
||||
course as StudioCourseLanding,
|
||||
nav as StudioLandingNav,
|
||||
hero as StudioLandingHero,
|
||||
courseCard as StudioLandingCourseCard
|
||||
} from './studio';
|
||||
export {
|
||||
org as CorporateLandingPage,
|
||||
course as CorporateCourseLanding,
|
||||
nav as CorporateLandingNav,
|
||||
hero as CorporateLandingHero,
|
||||
courseCard as CorporateLandingCourseCard
|
||||
} from './corporate';
|
||||
export {
|
||||
org as TerminalLandingPage,
|
||||
course as TerminalCourseLanding,
|
||||
nav as TerminalLandingNav,
|
||||
hero as TerminalLandingHero,
|
||||
courseCard as TerminalLandingCourseCard
|
||||
} from './terminal';
|
||||
export {
|
||||
org as EditorialLandingPage,
|
||||
course as EditorialCourseLanding,
|
||||
nav as EditorialLandingNav,
|
||||
hero as EditorialLandingHero,
|
||||
courseCard as EditorialLandingCourseCard
|
||||
} from './editorial';
|
||||
export {
|
||||
org as VibrantLandingPage,
|
||||
course as VibrantCourseLanding,
|
||||
nav as VibrantLandingNav,
|
||||
hero as VibrantLandingHero,
|
||||
courseCard as VibrantLandingCourseCard
|
||||
} from './vibrant';
|
||||
|
||||
export { default as LandingButton } from './landing-button.svelte';
|
||||
export { default as OrgLandingPageEmbed } from './embed.svelte';
|
||||
export { default as OrgLandingPageCallout } from './callout.svelte';
|
||||
@@ -45,13 +76,22 @@ export { default as OrgLandingPageLinks } from './links.svelte';
|
||||
export { default as OrgLandingPageFooter } from './landing-page-footer.svelte';
|
||||
export { default as SecondaryActionButton } from './secondary-action-button.svelte';
|
||||
export { default as EditableLandingSection } from './editable-section.svelte';
|
||||
export { default as CourseLandingSocialProof } from './course-social-proof.svelte';
|
||||
export { default as CourseLandingInfoBlocks } from './course-info-blocks.svelte';
|
||||
export { default as CourseLandingCurriculum } from './course-curriculum.svelte';
|
||||
export { default as CourseLandingSectionNav } from './course-section-nav.svelte';
|
||||
export { default as CourseLandingChips } from './course-chips.svelte';
|
||||
export { default as CourseLandingInstructor } from './course-instructor.svelte';
|
||||
export { default as CourseLandingReviews } from './course-reviews.svelte';
|
||||
export { default as CourseLandingPricing } from './course-pricing.svelte';
|
||||
export {
|
||||
setLandingPageEditContext,
|
||||
getLandingPageEditContext,
|
||||
type LandingSectionKey,
|
||||
type LandingPageEditContext
|
||||
} from './edit-context';
|
||||
export { courseLandingTokens, type CourseLandingTokens } from './course-landing-page.tokens';
|
||||
export * from './landing-page-link-icons';
|
||||
export * from './theme-style';
|
||||
export * from './types';
|
||||
export { mockOrgLandingPageProps } from './fixtures';
|
||||
export { mockOrgLandingPageProps, mockCourseLandingPageProps } from './fixtures';
|
||||
|
||||
Reference in New Issue
Block a user