-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequirements.txt
More file actions
79 lines (63 loc) · 3.33 KB
/
Copy pathrequirements.txt
File metadata and controls
79 lines (63 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# ConvergeLoop Dependencies
# 所有依赖锁定到当前主版本范围内,避免大版本升级引入破坏性变更。
#
# 【部署说明】生产部署应使用 requirements.lock(含 == 精确版本 + --hash 校验),
# 而非本文件(开发依赖,使用 >=...<... 范围声明)。
# 生成方式:pip-compile --generate-hashes requirements.txt -o requirements.lock
# 安装方式:pip install --require-hashes -r requirements.lock
# CI 已在 .github/workflows/ci.yml 中自动生成 requirements.lock 并上传 artifact。
# 若直接使用本文件安装,将无法获得 hash 校验和精确版本锁定,存在供应链风险。
# MCP协议(官方Python SDK,内置FastMCP)
mcp[cli]>=1.9.0,<2.0.0
# AI模型适配
# openai 2.x 保持了 AsyncOpenAI/APIError 等 API 的兼容性,项目代码已验证在 2.44.0 下正常运行
openai>=1.0.0,<3.0.0
anthropic>=0.20.0,<1.0.0
httpx>=0.27.0,<1.0.0
aiohttp>=3.9.0,<4.0.0
# 异步
aiofiles>=23.0.0,<26.0.0
# 文件处理
pathspec>=0.12.0,<2.0.0
# 文本分析(embedding相似度)
numpy>=1.24.0,<3.0.0
# Git操作
GitPython>=3.1.40,<4.0.0
# 测试执行(仅 dev 依赖,见 pyproject.toml [project.optional-dependencies] dev)
# pytest/pytest-asyncio 不应进入生产镜像——Dockerfile 注释明确要求"dev 依赖不应进入生产镜像",
# 但原 requirements.txt 将其列为运行时依赖,导致 pip install -r requirements.txt 把测试框架
# (约 50MB + 可执行任意代码的攻击面)烤入生产镜像,与 Dockerfile 设计意图矛盾。
# dev 安装(pip install -e ".[dev]")从 pyproject.toml dev 可选依赖获取 pytest。
# 配置/日志/终端美化
pydantic>=2.0,<3.0
pydantic-settings>=2.0,<3.0
loguru>=0.7.0,<1.0.0
rich>=13.0.0,<16.0.0
typer>=0.9.0,<1.0.0
# 环境变量加载(自动读取 .env 文件)
python-dotenv>=1.0.0,<2.0.0
# Web服务
fastapi>=0.110.0,<1.0.0
uvicorn>=0.27.0,<1.0.0
slowapi>=0.1.9,<1.0.0
# 安全执行沙箱
docker>=7.0.0,<8.0.0
# 安全 XML 解析(防 XXE 攻击)
# 用于解析被审计项目的 Cobertura coverage.xml 等不可信 XML 文件,
# defusedxml 默认禁用外部实体解析,防止 XXE 读取服务器文件。
defusedxml>=0.7.0,<1.0.0
# [已移除] playwright — ConvergeLoop 是 MCP Server,不应加载 ~300MB 浏览器引擎。
# 浏览器E2E测试通过两种方式执行:
# 1. 协作模式:ConvergeLoop 生成提示语 → IDE AI(如 CatPaw)执行浏览器测试 → 回传结果
# 2. 自主模式:用户在项目环境中安装 playwright(pip install playwright && playwright install chromium)
# ConvergeLoop 通过 try/except ImportError 优雅降级——未安装时跳过浏览器测试门控
# [已移除] AST解析 tree-sitter 5个包
# 全量扫描 convergeloop/ 源码,tree_sitter 从未被 import(唯一匹配是
# convergence_judge.py:1487 的注释示例)。5个死依赖增加 ~100MB 镜像体积
# 和供应链攻击面。如需 AST 解析能力,请按需安装 tree-sitter 相关包。
# [已移除] sentence-transformers — 代码已通过 try/except ImportError 优雅降级
# (consistency_check.py:43-49),设计为可选特性。原配置将其列为硬依赖,
# 导致 PyTorch(~2GB)被烤入生产 Docker 镜像。用户需一致性检测时:
# pip install sentence-transformers>=2.3.0,<4.0.0
# 本地模型支持(可选)
# ollama>=0.1.0