# 打包工具也纳入 pip-audit；安全下限需随部署一起升级，避免应用依赖干净但
# 虚拟环境自带的 pip 仍触发已知漏洞。
pip>=26.1.2

litellm>=1.83.0    # zai provider(GLM)要 ≥1.83;PR #17307 merge 后才内置
aiohttp>=3.14.1    # litellm 传递依赖；3.14.1 修复 2026-08 pip-audit 命中项
pyyaml>=6.0
click>=8.1.0
rich>=13.7.0

# 文档生成 (run_python 在 ppt / proposal skill 里会用到)
python-pptx>=0.6.21
python-docx>=1.1.0
matplotlib>=3.8.0
Pillow>=12.3.0   # ppt skill(SVG-first)svg_finalize:配图裁切/内嵌 + 安全修复
# ppt skill 可选 —— 老版 Office(<2019)的 SVG→PNG 兜底;现代 PowerPoint 直接渲 SVG 无需,核心不依赖:
# svglib>=1.5.0
# reportlab>=4.0.0
markdown>=3.5    # skills/_shared/render_pdf.py: md→HTML→chromium 出 PDF(纯 Python,host/sandbox 通吃)

# 素材摄取: PDF/DOCX/PPTX/XLSX/HTML/URL → Markdown (ppt 阶段零 + proposal 阶段零)
markitdown[pdf,docx,pptx,xlsx]>=0.0.1

# 老格式(OLE 复合文档)解析 —— markitdown 只吃现代 xlsx/docx/pptx,盖不到二进制老件;
# 建材院高频收到老 .doc/.xls/.msg 转发件,run_python 里模型手撸解析撞 ModuleNotFoundError
# (toolfail 巡检:olefile 3 用户/3 任务),按"装齐免摩擦"策略补齐这一族:
olefile>=0.46      # OLE 复合文档底层读取(老 .doc/.ppt/.xls/.msg 手工解析)
xlrd>=2.0          # 老 .xls(BIFF)读取,openpyxl 读不了
extract-msg>=0.48  # Outlook .msg 直接解析,省手撸 olefile

# 联网搜索 / web fetch
httpx>=0.27.0
html2text>=2024.0
mcp==2.0.0          # [host-only] 外部系统 Streamable HTTP MCP client

# 语音听写(core/asr_xfyun.py 连讯飞 IAT wss;uvicorn[standard] 也附带,这里显式声明直接依赖)
websockets>=12.0
# 个人微信语音解码(core/audio.py):ClawBot voice_item 是 SILK v3,ffmpeg 解不了;
# 企微 AMR 由系统 ffmpeg 解(见 RUN.md env 段),不走 pilk。
# `[host-only]` 标记 = sandbox 镜像 build 时 grep 剔除:容器内 run_python 用不到语音解码,
# 且 pilk 无 py3.12 预编译 wheel,slim 镜像没 gcc 编不过;host 侧源码编译需 build-essential
pilk>=0.2.4    # [host-only]

# 定时任务(§8.5 scheduled_jobs):cron 串 → next_run_at 计算,正确处理 dom/dow OR 语义 + 时区
croniter>=2.0

# 微信接入(§8.7 ClawBot):segno 渲绑定二维码;cryptography 做凭据列加密 + 文件 AES-128-ECB
segno>=1.6
cryptography>=48.0.1

# broker 外置(§7.0,蓝绿双实例跨进程 SSE/cancel):ZCBOT_REDIS_URL 设了才用,
# 不设走进程内 broker(dev 不需要起 redis);fakeredis 供单测(无需真 redis 服务)
redis>=5.0
fakeredis>=2.23

# §7 B 阶段: Storage 落 PG
sqlalchemy>=2.0.0
jsonschema>=4.23.0  # 专业软件 capability contract 的 Draft 2020-12 校验
psycopg[binary]>=3.1.0
alembic>=1.13.0

# §7 Phase G / D: 纯 JSON API(FastAPI + 原生 SSE),前端由 platform 提供
fastapi>=0.111.0
starlette>=1.3.1      # FastAPI 底层 ASGI；显式固定安全下限
uvicorn[standard]>=0.30.0
python-multipart>=0.0.31  # files upload multipart 解析 + 安全修复
pyjwt>=2.8.0              # /v1/auth/login HS256 token mint/verify(§7 D' 过渡形态)
bcrypt>=4.1.0             # /v1/auth/login_password 密码哈希(users.password_hash)

# 科学计算 skill(2026-05-28 加)
# pymatgen skill: 无机材料计算(晶体结构/XRD/相图/Materials Project)
pymatgen>=2024.0
mp-api>=0.41.0
pydantic-settings>=2.14.2  # mp-api 传递依赖；固定安全下限
# stats_ml skill: 统计建模与 ML(sklearn 必装,statsmodels 必装,PyMC 可选)
scikit-learn>=1.4.0
statsmodels>=0.14.0
# pymc>=5.10.0           # 贝叶斯小样本估计,装包重(带 pytensor),按需打开
# arviz>=0.17.0          # PyMC 后验诊断,跟 pymc 一起开
# plot_pub skill: 出版级 matplotlib(中文字体 + viridis 配色),依赖 matplotlib 已在上面
