a digital entity named phi that roams bsky

chore: remove transitive dependencies from explicit declarations

removes httpx and websockets from pyproject.toml as they are not directly imported and are provided transitively by atproto/fastmcp.

dependencies reduced from 11 to 9:
- anthropic, atproto, fastapi, fastmcp, openai, pydantic-ai, pydantic-settings, rich, turbopuffer, uvicorn

verified: bot still runs correctly, all HTTP operations working via transitive deps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

Changed files
+2 -8
-2
pyproject.toml
··· 10 "atproto@git+https://github.com/MarshalX/atproto.git@refs/pull/605/head", 11 "fastapi", 12 "fastmcp>=0.8.0", 13 - "httpx", 14 "openai", 15 "pydantic-ai", 16 "pydantic-settings", 17 "rich", 18 "turbopuffer", 19 "uvicorn", 20 - "websockets>=15.0.1", 21 ] 22 23 [tool.hatch.version]
··· 10 "atproto@git+https://github.com/MarshalX/atproto.git@refs/pull/605/head", 11 "fastapi", 12 "fastmcp>=0.8.0", 13 "openai", 14 "pydantic-ai", 15 "pydantic-settings", 16 "rich", 17 "turbopuffer", 18 "uvicorn", 19 ] 20 21 [tool.hatch.version]
+2 -6
uv.lock
··· 1 version = 1 2 - revision = 2 3 requires-python = ">=3.12" 4 5 [[package]] ··· 181 { name = "atproto" }, 182 { name = "fastapi" }, 183 { name = "fastmcp" }, 184 - { name = "httpx" }, 185 { name = "openai" }, 186 { name = "pydantic-ai" }, 187 { name = "pydantic-settings" }, 188 { name = "rich" }, 189 { name = "turbopuffer" }, 190 { name = "uvicorn" }, 191 - { name = "websockets" }, 192 ] 193 194 [package.dev-dependencies] ··· 205 { name = "atproto", git = "https://github.com/MarshalX/atproto.git?rev=refs%2Fpull%2F605%2Fhead" }, 206 { name = "fastapi" }, 207 { name = "fastmcp", specifier = ">=0.8.0" }, 208 - { name = "httpx" }, 209 { name = "openai" }, 210 { name = "pydantic-ai" }, 211 { name = "pydantic-settings" }, 212 { name = "rich" }, 213 { name = "turbopuffer" }, 214 { name = "uvicorn" }, 215 - { name = "websockets", specifier = ">=15.0.1" }, 216 ] 217 218 [package.metadata.requires-dev] ··· 419 source = { registry = "https://pypi.org/simple" } 420 dependencies = [ 421 { name = "attrs" }, 422 - { name = "docstring-parser", marker = "python_full_version < '4.0'" }, 423 { name = "rich" }, 424 { name = "rich-rst" }, 425 ]
··· 1 version = 1 2 + revision = 3 3 requires-python = ">=3.12" 4 5 [[package]] ··· 181 { name = "atproto" }, 182 { name = "fastapi" }, 183 { name = "fastmcp" }, 184 { name = "openai" }, 185 { name = "pydantic-ai" }, 186 { name = "pydantic-settings" }, 187 { name = "rich" }, 188 { name = "turbopuffer" }, 189 { name = "uvicorn" }, 190 ] 191 192 [package.dev-dependencies] ··· 203 { name = "atproto", git = "https://github.com/MarshalX/atproto.git?rev=refs%2Fpull%2F605%2Fhead" }, 204 { name = "fastapi" }, 205 { name = "fastmcp", specifier = ">=0.8.0" }, 206 { name = "openai" }, 207 { name = "pydantic-ai" }, 208 { name = "pydantic-settings" }, 209 { name = "rich" }, 210 { name = "turbopuffer" }, 211 { name = "uvicorn" }, 212 ] 213 214 [package.metadata.requires-dev] ··· 415 source = { registry = "https://pypi.org/simple" } 416 dependencies = [ 417 { name = "attrs" }, 418 + { name = "docstring-parser", marker = "python_full_version < '4'" }, 419 { name = "rich" }, 420 { name = "rich-rst" }, 421 ]