Files
redlight/package.json
T
MichelleandClaude Opus 4.8 51b42cfee5
Build & Push Docker Image / build (push) Successful in 4m17s
Build & Push Docker Image / build (release) Successful in 3m57s
feat: add AI summary / transcript integration for recordings
Ported from greenlight-tm: when TRANSCRIPTION_API_URL and
TRANSCRIPTION_API_KEY are set in the .env and the per-room
"AI summary / transcript" setting is enabled, Redlight POSTs to
${TRANSCRIPTION_API_URL}/prompt (header X-Api-Key) as soon as the
"video" format of a recording becomes available.

- transcription.js: service with env gating, timeout and logging
- bbb.js: pass meta_bbb-recording-ready-url on meeting create when the
  room has the setting enabled
- recordings.js: unauthenticated /recording-ready callback that
  verifies BBB's signed_parameters JWT (HS256, shared secret), caches
  the recording and requests the transcription once per recording
  (deduped via transcript_requested_at)
- rooms: new recording_transcript column, accepted on create/update
- branding endpoint exposes transcriptionEnabled so the UI only shows
  the toggle when the server is configured
- RoomDetail: toggle under "Allow recording" (disabled when recording
  is off), de/en i18n
- chore: bump version to 2.4.0

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 11:56:45 +02:00

53 lines
1.4 KiB
JSON

{
"name": "redlight",
"private": true,
"version": "2.4.0",
"license": "GPL-3.0-or-later",
"type": "module",
"scripts": {
"dev": "concurrently -n client,server -c blue,green \"vite\" \"node --watch server/index.js\"",
"dev:client": "vite",
"dev:server": "node --watch server/index.js",
"build": "vite build",
"preview": "vite preview",
"start": "NODE_ENV=production node server/index.js"
},
"dependencies": {
"axios": "^1.7.0",
"bcryptjs": "^3.0.3",
"better-sqlite3": "^12.6.2",
"concurrently": "^9.0.0",
"cors": "^2.8.5",
"dotenv": "^17.3.1",
"exceljs": "^4.4.0",
"express": "^5.2.1",
"express-rate-limit": "^8.5.2",
"flatpickr": "^4.6.13",
"ioredis": "^5.10.0",
"jsonwebtoken": "^9.0.0",
"lucide-react": "^1.16.0",
"multer": "^2.1.0",
"nodemailer": "^8.0.1",
"otpauth": "^9.5.0",
"pdfkit": "^0.18.0",
"pg": "^8.18.0",
"qrcode": "^1.5.4",
"rate-limit-redis": "^5.0.0",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"react-hot-toast": "^2.4.0",
"react-router-dom": "^7.15.1",
"uuid": "^14.0.0",
"xml2js": "^0.6.0"
},
"devDependencies": {
"@tailwindcss/postcss": "^4.3.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"postcss": "^8.4.0",
"tailwindcss": "^4.3.0",
"vite": "^8.0.0"
}
}