mirror of
https://github.com/vegu-ai/talemate.git
synced 2026-07-10 20:40:00 +02:00
- **Per-Scene Agent Overrides** — Override agent configuration for a single scene without touching your global config. - **Message Revision History** — Browse and continue from previous regenerations / revisions. - **Scene Perspective Overrides** — Set distinct narrative perspectives for the player, NPCs, and narrator. - **Durable World State Snapshot** — The world state snapshot now persists and updates entities across refreshes. - **World State Highlights** — Characters, objects and places marked by the current world state snapshot are now clickable in the recent message(s) for additional detail. Plus 30 improvements and 17 bug fixes
177 lines
3.8 KiB
TOML
177 lines
3.8 KiB
TOML
[project]
|
|
name = "talemate"
|
|
version = "0.38.0"
|
|
description = "AI-backed roleplay and narrative tools"
|
|
authors = [{name = "VeguAITools"}]
|
|
license = {text = "GNU Affero General Public License v3.0"}
|
|
requires-python = ">=3.11,<3.14"
|
|
dependencies = [
|
|
"pip",
|
|
"astroid>=2.8",
|
|
"jedi>=0.18",
|
|
"black",
|
|
"rope>=0.22",
|
|
"isort>=5.10",
|
|
"jinja2>=3.0",
|
|
"openai>=1",
|
|
"mistralai>=2.4.0",
|
|
"cohere>=6.0.0",
|
|
"anthropic>=0.19.1",
|
|
"groq>=0.5.0",
|
|
"requests>=2.26",
|
|
"colorama>=0.4.6",
|
|
"Pillow>=9.5",
|
|
"httpx<1",
|
|
"piexif>=1.1",
|
|
"typing-inspect==0.8.0",
|
|
"typing_extensions>=4.5.0",
|
|
"uvicorn>=0.23",
|
|
"blinker>=1.6.2",
|
|
"pydantic<3",
|
|
"beautifulsoup4>=4.12.2",
|
|
"python-dotenv>=1.0.0",
|
|
"cryptography>48.0.0",
|
|
"keyring>=25.0",
|
|
"structlog>=23.1.0",
|
|
"google-genai>=1.20.0",
|
|
"nest_asyncio>=1.5.7",
|
|
"isodate>=0.6.1",
|
|
"thefuzz>=0.20.0",
|
|
"tiktoken>=0.5.1",
|
|
"nltk>=3.8.1",
|
|
"huggingface-hub>=0.20.2",
|
|
"RestrictedPython>7.1",
|
|
"numpy>=2",
|
|
"aiofiles>=25.1.0",
|
|
"pyyaml>=6.0",
|
|
"limits>=5.0",
|
|
"diff-match-patch>=20241021",
|
|
"sseclient-py>=1.8.0",
|
|
"ollama>=0.5.1",
|
|
# ChromaDB
|
|
"chromadb>=1.0.12",
|
|
"torch>=2.7.1",
|
|
"torchaudio>=2.7.1",
|
|
"sentence_transformers>=2.7.0",
|
|
"transformers<5",
|
|
# TTS
|
|
"elevenlabs>=2.7.1",
|
|
# Local TTS
|
|
# Chatterbox TTS
|
|
# we cannot upgrade to 0.1.3 because it installs ancient pkuseg library
|
|
# "chatterbox-tts==0.1.2",
|
|
# tts_webui_chatterbox_tts is much faster without seeminly any quality loss
|
|
"tts_webui_chatterbox_tts==0.4.4",
|
|
"torchcodec>=0.9.0",
|
|
# kokoro TTS
|
|
"kokoro>=0.9.4",
|
|
"soundfile>=0.13.1",
|
|
# F5-TTS
|
|
"f5-tts>=1.1.7",
|
|
"deepdiff>=8.6.1",
|
|
"hf-xet>=1.2.0",
|
|
"pocket-tts>=1.0.1",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=6.2",
|
|
"pytest-asyncio>=0.25.3",
|
|
"pytest-cov>=4.0",
|
|
"mypy>=0.910",
|
|
"mkdocs-material>=9.5.27",
|
|
"mkdocs-awesome-pages-plugin>=2.9.2",
|
|
"mkdocs-glightbox>=0.4.0",
|
|
"pre-commit>=2.13",
|
|
]
|
|
|
|
[project.scripts]
|
|
talemate = "talemate:cli.main"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py38']
|
|
include = '\.pyi?$'
|
|
exclude = '''
|
|
/(
|
|
\.git
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| _build
|
|
| buck-out
|
|
| build
|
|
| dist
|
|
| talemate_env
|
|
)/
|
|
'''
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
multi_line_output = 3
|
|
include_trailing_comma = true
|
|
force_grid_wrap = 0
|
|
use_parentheses = true
|
|
ensure_newline_before_comments = true
|
|
line_length = 88
|
|
|
|
[tool.uv]
|
|
exclude-newer = "1 week"
|
|
# safetensors 0.8.0 (uploaded 2026-06-09) is needed by diffusers 0.38.0, which fixes
|
|
# CVE-2026-45804 / CVE-2026-44513 / CVE-2026-44827; remove once it ages past the 1-week window
|
|
exclude-newer-package = { safetensors = "2026-06-10T00:00:00Z" }
|
|
override-dependencies = [
|
|
# chatterbox wants torch 2.6.0, but is confirmed working with 2.7.1
|
|
"torchaudio>=2.7.1",
|
|
"torch>=2.7.1",
|
|
# numba needs numpy < 2.3
|
|
"numpy>=2,<2.3",
|
|
"pydantic>=2.11",
|
|
]
|
|
|
|
[tool.uv.sources]
|
|
torch = [
|
|
{ index = "pytorch-cu128" },
|
|
]
|
|
torchaudio = [
|
|
{ index = "pytorch-cu128" },
|
|
]
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cu128"
|
|
url = "https://download.pytorch.org/whl/cu128"
|
|
explicit = true
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|
|
|
|
[tool.coverage.run]
|
|
source = ["src/talemate"]
|
|
branch = true
|
|
omit = [
|
|
"*/tests/*",
|
|
"*/__pycache__/*",
|
|
# Deprecated public game-scripting API surface; excluded from coverage
|
|
# to avoid skewing totals while it phases out.
|
|
"src/talemate/game/engine/api/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise NotImplementedError",
|
|
"if TYPE_CHECKING:",
|
|
"if __name__ == .__main__.:",
|
|
]
|
|
show_missing = true
|