Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ torch==2.13.0
tqdm==4.70.1
transformers==5.17.0
tree-sitter==0.26.0
tree-sitter-language-pack==1.17.0
tree-sitter-language-pack==1.21.0
typer==0.27.2
typing-inspection==0.4.4
typing_extensions==4.16.0
Expand Down
14 changes: 7 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ vector = [
# The MCP server — plug Engraphis into Claude Code, Cursor, Cline, Zed, etc.
# The upstream MCP SDK requires Python 3.10+; the numpy-only core remains Python 3.9.
mcp = [
# 1.28.1 contains the current 1.x transport-security fixes; upstream explicitly
# 1.30.0 fixes CVE-2026-59951 in the compatible 1.x SDK; upstream explicitly
# recommends the <2 cap because stable v2 is a breaking line.
"mcp>=1.28.1,<2; python_version >= '3.10'",
"mcp>=1.30.0,<2; python_version >= '3.10'",
"python-multipart>=0.0.31; python_version >= '3.10'",
"starlette>=1.3.1,<2; python_version >= '3.10'",
"pydantic-settings>=2.14.2; python_version >= '3.10'",
Expand All @@ -98,7 +98,7 @@ mcp = [
code = [
"tree-sitter>=0.23; python_version >= '3.10'",
"tree-sitter-language-pack==0.9.0; python_version < '3.10'",
"tree-sitter-language-pack==1.20.0; python_version >= '3.10'",
"tree-sitter-language-pack==1.21.0; python_version >= '3.10'",
]
# Local resource extraction. Text/code/HTML/DOCX remain stdlib-only; this adds PDF
# extraction and image OCR bindings (the Tesseract executable is installed separately).
Expand Down Expand Up @@ -140,12 +140,12 @@ all = [
"python-dotenv>=1.0",
"python-multipart>=0.0.31; python_version >= '3.10'",
"sentence-transformers>=2.7; python_version >= '3.10'",
"mcp>=1.28.1,<2; python_version >= '3.10'",
"mcp>=1.30.0,<2; python_version >= '3.10'",
"pydantic-settings>=2.14.2; python_version >= '3.10'",
"cryptography>=50.0.0; python_version >= '3.10'",
"tree-sitter>=0.23; python_version >= '3.10'",
"tree-sitter-language-pack==0.9.0; python_version < '3.10'",
"tree-sitter-language-pack==1.20.0; python_version >= '3.10'",
"tree-sitter-language-pack==1.21.0; python_version >= '3.10'",
"pypdf>=6.15.0",
"Pillow>=12.3.0; python_version >= '3.10'",
"pytesseract>=0.3.10; python_version >= '3.10'",
Expand Down Expand Up @@ -183,12 +183,12 @@ test = [
# exercises the real sqlite-vec native KNN backend (k=? + filtered widening) in CI.
# 0.1.9 fixes DELETE behavior for vec0 rows with longer text primary keys.
"sqlite-vec>=0.1.9,<0.2",
"mcp>=1.28.1,<2; python_version >= '3.10'",
"mcp>=1.30.0,<2; python_version >= '3.10'",
"pydantic-settings>=2.14.2; python_version >= '3.10'",
"cryptography>=50.0.0; python_version >= '3.10'",
"tree-sitter>=0.23; python_version >= '3.10'",
"tree-sitter-language-pack==0.9.0; python_version < '3.10'",
"tree-sitter-language-pack==1.20.0; python_version >= '3.10'",
"tree-sitter-language-pack==1.21.0; python_version >= '3.10'",
"pypdf>=6.15.0",
"Pillow>=12.3.0; python_version >= '3.10'",
"pytesseract>=0.3.10; python_version >= '3.10'",
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ numpy>=1.24
pydantic>=2.0
python-dotenv>=1.0
sentence-transformers>=2.7; python_version >= '3.10'
mcp>=1.28.1,<2; python_version >= '3.10'
mcp>=1.30.0,<2; python_version >= '3.10'
pydantic-settings>=2.14.2; python_version >= '3.10'
cryptography>=50.0.0; python_version >= '3.10'
pypdf>=6.15.0
5 changes: 3 additions & 2 deletions tests/test_packaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -492,10 +492,11 @@ def test_extras_stay_resolvable_on_the_lowest_supported_python():
def test_dependency_floors_exclude_known_vulnerable_and_breaking_releases():
pyproject = (ROOT / "pyproject.toml").read_text(encoding="utf-8")
requirements = (ROOT / "requirements.txt").read_text(encoding="utf-8")
expected = '"mcp>=1.28.1,<2; python_version >= \'3.10\'"'
expected = '"mcp>=1.30.0,<2; python_version >= \'3.10\'"'
assert pyproject.count(expected) == 3
combined = pyproject + requirements
assert "mcp>=1.28.1,<2" in requirements
assert "mcp>=1.30.0,<2" in requirements
assert "mcp>=1.28.1" not in combined
assert "mcp>=1.14.0" not in combined
assert "python-multipart>=0.0.31" in combined
assert "starlette>=1.3.1,<2" in combined
Expand Down
Loading