Files
UmbraTrans/pyproject.toml
umbra audio 3e0568b9d1 Generate backend endpoints for language-project workflow
Add REST endpoints and frontend wiring for per-language project actions:
- POST /api/workspace/{project}/translation/{lang}/queue — queue translation
- POST /api/workspace/{project}/audio/{lang}/queue — queue audio generation
- GET/POST /api/workspace/{project}/format/{lang} — format metadata (EPUB/PDF)
- GET /api/workspace/{project}/review/{lang}/chapters/{chapter} — utterance review
- GET/POST /api/workspace/{project}/front-matter/{lang} — front matter editor
- GET /api/workspace/{project}/chapters/{lang} — chapter list
- GET /api/workspace/{project}/chapter-content/{lang}/{chapter} — chapter text

Frontend fixes:
- Review page shows per-language text (English source, Chinese translation, etc.)
- Non-translated languages show 'Queue translation' button only
- Speaker data from English source matched by paragraph ID
- UmbraAudio column layout: Speaker, Variation, Text, Actions
- Chapter tree in left sidebar: Front matter, Back matter, Body
- Audio Format label at top of sidebar
- Pandoc formatting toolbar for front matter text editing
2026-10-25 11:04:53 -07:00

44 lines
962 B
TOML

[project]
name = "umbratrans-agent-comm"
version = "0.1.0"
description = "Local stdio-only sanitized agent communication server"
requires-python = ">=3.11"
dependencies = [
"argon2-cffi>=23.1,<26",
"fastapi>=0.115,<1",
"psycopg-pool>=3.2,<4",
"psycopg[binary]>=3.2,<4",
"uvicorn>=0.34,<1",
]
[project.scripts]
agent-comm = "agent_comm.server:main"
umbratrans-bootstrap-admin = "umbratrans_web.cli:main"
[dependency-groups]
dev = [
"httpx>=0.28,<1",
"pytest>=8,<9",
"ruff==0.16.9",
]
[tool.uv]
package = true
[tool.setuptools.packages.find]
include = ["agent_comm*", "umbratrans_web*"]
[tool.setuptools.package-data]
umbratrans_web = ["migrations/*.sql", "migrations/*.md"]
[tool.pytest.ini_options]
testpaths = ["umbratrans_web/tests", "agent_comm/tests", "tools/translation/tests"]
python_files = ["test_*.py"]
[tool.ruff]
target-version = "py311"
line-length = 120
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I"]