[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "ratatoskr" version = "0.0.0" description = "Worldtree Conversation API debug TUI — multi-pane observability dashboard" readme = "README.md" requires-python = ">=3.12" license = { file = "LICENSE" } authors = [{ name = "Vuong Hoang" }] keywords = ["worldtree", "tui", "debug", "sse", "textual"] # Network + SSE consumer + TUI framework. # See docs/design-brief.md §1 (Textual), §3 (httpx-sse). dependencies = [ "httpx>=0.27", "httpx-sse>=0.4", "textual>=0.85", ] [project.optional-dependencies] dev = [ "pytest>=8", "pytest-asyncio>=0.24", "respx>=0.21", # httpx mocking for SSE-recorded snapshot tests "ruff>=0.6", "mypy>=1.11", "textual-dev>=1.5", # textual console + live reload during dev "pyyaml>=6", # used by docs/contracts/contract_parser.py and scripts/contract_drift_check.py ] [project.scripts] ratatoskr = "ratatoskr.cli:main" [project.urls] Repository = "https://gitea.phasefinal.com/vh/ratatoskr" "Design Brief" = "https://gitea.phasefinal.com/vh/brokkr-smithy/src/branch/main/docs/ratatoskr-design-brief.md" # Worldtree spec pin — see docs/SPEC-PIN.md for the full bump procedure. # Ratatoskr is built against Worldtree at this commit; the vendored # spec snapshot in docs/ reflects that SHA. [tool.ratatoskr.spec-pin] worldtree-spec-rev = "55101e909abcd2219833266b6f905c5bc956e0f0" worldtree-version = "v0.19.0" pinned-on = "2026-05-20" [tool.hatch.build.targets.wheel] packages = ["src/ratatoskr"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "RUF"] [tool.mypy] python_version = "3.12" strict = true