.gitignore
.releaserc.json
CHANGELOG.md
Dockerfile
README.md
Taskfile.yml
pyproject.toml
task.md
uv.lock
.devcontainer/Dockerfile
.devcontainer/devcontainer.json
.devcontainer/docker-compose.yml
.github/workflows/ci.yml
.github/workflows/integration.yml
.github/workflows/publish.yml
.github/workflows/release.yml
demo/.env
demo/docker-compose.yml
demo/incoming/audio/haha.mp3
demo/incoming/audio/piano_sample.wav
demo/incoming/audio/sample_audio.mp3
demo/incoming/audio/sample_audio2.mp3
demo/incoming/manga/color_page.jpg
demo/incoming/manga/manga_page.png
demo/incoming/manga/manga_page_bordered.png
demo/incoming/manga/sample_page.jpg
demo/incoming/video/big_buck_bunny_clip.mp4
demo/incoming/video/sample_video.mp4
demo/workflows/demo-audio.yaml
demo/workflows/demo-image.yaml
demo/workflows/demo-video.yaml
docs/superpowers/plans/2026-03-24-ai-subtitles.md
docs/superpowers/specs/2026-03-24-ai-subtitles-design.md
installer/bootstrap.ps1
installer/create-shortcut.ps1
installer/register-startup.ps1
installer/uninstall.ps1
samples/audio-normalize-hls.js
samples/video-full-pipeline-hls.js
src/desktop/__init__.py
src/desktop/config.py
src/desktop/server.py
src/desktop/service.py
src/desktop/tray.py
src/desktop/updater.py
src/desktop/static/htmx.min.js
src/desktop/static/style.css
src/desktop/templates/base.html
src/desktop/templates/dashboard.html
src/desktop/templates/files.html
src/desktop/templates/logs.html
src/desktop/templates/settings.html
src/desktop/templates/workflows.html
src/desktop/templates/partials/files_table.html
src/desktop/templates/partials/status.html
src/mediariver/__init__.py
src/mediariver/__main__.py
src/mediariver/cli.py
src/mediariver.egg-info/PKG-INFO
src/mediariver.egg-info/SOURCES.txt
src/mediariver.egg-info/dependency_links.txt
src/mediariver.egg-info/entry_points.txt
src/mediariver.egg-info/requires.txt
src/mediariver.egg-info/top_level.txt
src/mediariver/actions/__init__.py
src/mediariver/actions/base.py
src/mediariver/actions/copy.py
src/mediariver/actions/delete.py
src/mediariver/actions/executor.py
src/mediariver/actions/move.py
src/mediariver/actions/registry.py
src/mediariver/actions/audio/__init__.py
src/mediariver/actions/audio/convert.py
src/mediariver/actions/audio/duration_check.py
src/mediariver/actions/audio/embed_art.py
src/mediariver/actions/audio/hls.py
src/mediariver/actions/audio/info.py
src/mediariver/actions/audio/normalize.py
src/mediariver/actions/audio/tag.py
src/mediariver/actions/image/__init__.py
src/mediariver/actions/image/convert.py
src/mediariver/actions/image/crop.py
src/mediariver/actions/image/flip_rotate.py
src/mediariver/actions/image/info.py
src/mediariver/actions/image/optimize.py
src/mediariver/actions/image/orientation_check.py
src/mediariver/actions/image/pixel_check.py
src/mediariver/actions/image/resize.py
src/mediariver/actions/image/upscale.py
src/mediariver/actions/util/__init__.py
src/mediariver/actions/util/docker_run.py
src/mediariver/actions/util/hash_verify.py
src/mediariver/actions/util/http.py
src/mediariver/actions/util/ocr.py
src/mediariver/actions/util/shell.py
src/mediariver/actions/util/strip_metadata.py
src/mediariver/actions/util/watermark.py
src/mediariver/actions/video/__init__.py
src/mediariver/actions/video/concat.py
src/mediariver/actions/video/crop.py
src/mediariver/actions/video/extract_audio.py
src/mediariver/actions/video/extract_subs.py
src/mediariver/actions/video/hls.py
src/mediariver/actions/video/info.py
src/mediariver/actions/video/normalize_audio.py
src/mediariver/actions/video/preview.py
src/mediariver/actions/video/thumbnail.py
src/mediariver/actions/video/transcode.py
src/mediariver/actions/video/upscale.py
src/mediariver/actions/video/__pycache__/__init__.cpython-312.pyc
src/mediariver/actions/video/__pycache__/crop.cpython-312.pyc
src/mediariver/actions/video/__pycache__/hls.cpython-312.pyc
src/mediariver/actions/video/__pycache__/info.cpython-312.pyc
src/mediariver/actions/video/__pycache__/normalize_audio.cpython-312.pyc
src/mediariver/actions/video/__pycache__/thumbnail.cpython-312.pyc
src/mediariver/actions/video/__pycache__/transcode.cpython-312.pyc
src/mediariver/config/__init__.py
src/mediariver/config/loader.py
src/mediariver/config/schema.py
src/mediariver/config/validators.py
src/mediariver/connections/__init__.py
src/mediariver/connections/ftp.py
src/mediariver/connections/local.py
src/mediariver/connections/registry.py
src/mediariver/connections/s3.py
src/mediariver/connections/sftp.py
src/mediariver/connections/__pycache__/__init__.cpython-312.pyc
src/mediariver/connections/__pycache__/local.cpython-312.pyc
src/mediariver/connections/__pycache__/registry.cpython-312.pyc
src/mediariver/connections/__pycache__/s3.cpython-312.pyc
src/mediariver/docker/__init__.py
src/mediariver/docker/manager.py
src/mediariver/docker/__pycache__/__init__.cpython-312.pyc
src/mediariver/docker/__pycache__/manager.cpython-312.pyc
src/mediariver/engine/__init__.py
src/mediariver/engine/context.py
src/mediariver/engine/errors.py
src/mediariver/engine/runner.py
src/mediariver/engine/template.py
src/mediariver/logging/__init__.py
src/mediariver/logging/setup.py
src/mediariver/logging/__pycache__/__init__.cpython-312.pyc
src/mediariver/logging/__pycache__/setup.cpython-312.pyc
src/mediariver/state/__init__.py
src/mediariver/state/database.py
src/mediariver/state/models.py
src/mediariver/state/__pycache__/__init__.cpython-312.pyc
src/mediariver/state/__pycache__/database.cpython-312.pyc
src/mediariver/state/__pycache__/models.cpython-312.pyc
src/mediariver/watcher/__init__.py
src/mediariver/watcher/filter.py
src/mediariver/watcher/poller.py
src/mediariver/watcher/__pycache__/__init__.cpython-312.pyc
src/mediariver/watcher/__pycache__/filter.cpython-312.pyc
src/mediariver/watcher/__pycache__/poller.cpython-312.pyc
tests/__init__.py
tests/conftest.py
tests/fixtures/workflows/invalid_missing_conn.yaml
tests/fixtures/workflows/valid_basic.yaml
tests/fixtures/workflows/valid_conditional.yaml
tests/integration/__init__.py
tests/integration/test_s3_connection.py
tests/integration/test_workflow_s3.py
tests/unit/__init__.py
tests/unit/test_action_registry.py
tests/unit/test_actions_audio.py
tests/unit/test_actions_copy.py
tests/unit/test_actions_image.py
tests/unit/test_actions_util.py
tests/unit/test_actions_video.py
tests/unit/test_cli.py
tests/unit/test_connections.py
tests/unit/test_context.py
tests/unit/test_desktop_config.py
tests/unit/test_desktop_server.py
tests/unit/test_desktop_service.py
tests/unit/test_desktop_updater.py
tests/unit/test_errors.py
tests/unit/test_executor.py
tests/unit/test_loader.py
tests/unit/test_runner.py
tests/unit/test_schema.py
tests/unit/test_state.py
tests/unit/test_template.py
tests/unit/test_validators.py
tests/unit/test_watcher.py