[project] name = "etot-motif" version = "0.5.0" description = "Motif: an agentic loop that turns interview transcripts into a cited, critic-checked research synthesis." readme = "README.md" license = "MIT" license-files = ["LICENSE"] requires-python = ">=3.10" keywords = ["research-synthesis", "interviews", "qualitative", "mcp", "claude"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", ] dependencies = ["etot-core>=0.1.0", "python-dotenv", "python-docx"] [project.optional-dependencies] mcp = ["mcp>=2,<3"] hosted = ["fastapi>=0.115", "uvicorn[standard]>=0.30"] dev = ["pytest", "httpx"] [project.scripts] motif = "synth.cli:main" motif-mcp = "surfaces.mcp.server:main" motif-hosted = "surfaces.hosted.app:main" [project.urls] Homepage = "https://etot.design" Repository = "https://github.com/sleepycobalt/motif" "Case study" = "https://ericfrye.info/ui/ux/motif" [build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [tool.setuptools] packages = ["synth", "surfaces", "surfaces.mcp", "surfaces.hosted"] [tool.setuptools.package-data] synth = ["synth.yaml"]