# deepDDW 0.1 — Python 依赖（开源裁剪版）
# Python >= 3.11, < 3.15（3.11-3.14 实测可用；3.14 + mcp 1.29 验证通过）

# --- Web 框架 ---
# 版本组合（32G/16G 实测兼容）：fastapi 0.141.1 + starlette 0.49.3 + mcp 1.29.0
fastapi>=0.141.0,<0.142.0
uvicorn[standard]>=0.23.0,<0.60.0
starlette>=0.49.0,<0.50.0

# --- 数据层（async SQLAlchemy 2.0 + SQLite async driver） ---
sqlalchemy>=2.0.30,<2.1.0
aiosqlite>=0.19.0
greenlet>=3.0.0  # sqlalchemy asyncio 运行时依赖

# --- 数据校验 ---
pydantic>=2.6.0,<3.0.0

# --- 异步 HTTP 客户端（LLM 网关 DeepSeek/Ollama、SearXNG 插件） ---
httpx>=0.24.0

# --- 配置 / YAML ---
pyyaml>=6.0

# --- 向量检索（#1 LanceDB 可选增强；不可用自动降级纯关键词） ---
# 0.37.x 为实测兼容版本（arm64 macOS / x86_64 Linux CI 均有 wheel）；
# CI 必须安装才能跑 hybrid 断言（tests/test_kb_vector.py）。
lancedb>=0.37.1,<0.38.0

# --- MCP（双协议：streamable-http 2025-03-26 + 经典 2024-11-05） ---
# 注意：mcp 2.x 已移除 mcp.server.fastmcp（FastMCP），deepDDW 固定使用 1.x 系列；
# 1.29.0 为实测兼容版本（1.12.x 在 3.14 上 FastMCP issubclass 字符串注解会崩）。
# 必须锁 ==1.29.0：1.x 内部版本对注解处理有差异，宽松范围会拉到不兼容版。
mcp==1.29.0

# --- 插件打包验签（core/plugin_manager/installer + scripts/package_plugin.py） ---
cryptography>=42.0.0

# --- 测试 ---
pytest>=8.0.0
pytest-asyncio>=0.21.0

# --- 扫码配对（体验优化 C：/api/v1/gateway/pair 生成二维码 SVG） ---
qrcode>=7.4.0

# --- dsh WebSocket 反代（/api/events.mux 等事件推送通道） ---
websockets>=12.0
