[project] name = "thetabot" version = "0.1.0" description = "Local agentic platform that monitors and closes Robinhood options positions (covered calls + cash-secured puts) by rule or signal." requires-python = ">=3.11" dependencies = [ "pydantic>=2.6", "pydantic-settings>=2.2", "pyyaml>=6.0", ] [project.optional-dependencies] # Heavy / external-service deps are optional so the skeleton runs in paper mode # with only the core dependencies installed. # Pinned: a newer mcp moved/renamed streamablehttp_client, silently breaking the RH connect at # startup (bot falls back to paper). Pin to the known-good version so rebuilds are reproducible. mcp = ["mcp==1.28.1"] robinhood = ["robin_stocks>=3.0"] alpaca = ["alpaca-py>=0.20"] web = ["fastapi>=0.110", "uvicorn[standard]>=0.29", "httpx>=0.27"] ai = ["anthropic>=0.69"] all = [ "mcp==1.28.1", "robin_stocks>=3.0", "alpaca-py>=0.20", "fastapi>=0.110", "uvicorn[standard]>=0.29", "httpx>=0.27", "anthropic>=0.69", ] dev = ["pytest>=8.0", "pytest-asyncio>=0.23"] [project.scripts] agentic = "agentic.main:run" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/agentic"] [tool.pytest.ini_options] pythonpath = ["src"] asyncio_mode = "auto" testpaths = ["tests"]