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:
Rotimi Best
2026-06-07 18:43:05 +01:00
committed by GitHub
parent a2e70779a0
commit d5b07d356e
496 changed files with 19050 additions and 8312 deletions
+7 -3
View File
@@ -8,7 +8,8 @@ export * as Breadcrumb from './base/breadcrumb';
export * as Button from './base/button';
export * as ButtonGroup from './base/button-group';
export * as Card from './base/card';
export * as Chart from './base/chart';
// Chart components are intentionally NOT re-exported from this barrel.
// Import from '@cio/ui/base/chart' directly to keep layerchart/d3 out of the shared bundle.
export * as Checkbox from './base/checkbox';
export * as Code from './custom/code';
export * as Collapsible from './base/collapsible';
@@ -50,13 +51,16 @@ export * as Tooltip from './base/tooltip';
export * as NavigationMenu from './base/navigation-menu';
export { Toaster } from './base/sonner';
export { BarChart, LineChart, AreaChart, PieChart, scaleBand } from './base/chart';
// BarChart, LineChart, AreaChart, PieChart, scaleBand: import from '@cio/ui/base/chart' directly.
export * from './tools';
export * as UnderlineTabs from './custom/underline-tabs';
export * as FileDropZone from './custom/file-drop-zone';
export * from './custom/editor/ui';
// Editor UI components (EdraEditor, EdraToolBar, etc.) are intentionally NOT
// re-exported from this barrel. They import TipTap with a CSS side-effect that
// prevents tree-shaking, adding ~1MB to every page. Import from the path directly:
// import { EdraEditor } from '@cio/ui/custom/editor/ui';
export * as ImageCropper from './custom/image-cropper';
export { Chip } from './custom/chip';
export { IconButton } from './custom/icon-button';