feat(books): add read-aloud generation

Generate a synced read-aloud EPUB from a book's EPUB and audiobook through an
optional STAlign worker (Docker on CPU, or native with MLX on Apple Silicon),
with review, re-sync, replace in place, restart recovery and live progress on
the Files tab. Book details also stack the ebook and audiobook covers when
both exist. See docs/READ_ALOUD.md.
This commit is contained in:
neon
2026-10-21 23:44:37 +00:00
parent 99aa7dce70
commit 992224f2e8
154 changed files with 69074 additions and 271 deletions
@@ -63,7 +63,11 @@ runs:
shell: bash
run: pnpm fetch --frozen-lockfile
# onnxruntime-node's postinstall otherwise downloads its CUDA provider on Linux x64. Nothing in CI
# uses it, and the CPU binding the read-aloud worker tests load ships in the npm package itself.
- name: Install dependencies
if: ${{ inputs.install == 'true' }}
shell: bash
env:
ONNXRUNTIME_NODE_INSTALL: skip
run: pnpm install --frozen-lockfile