-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
120 lines (113 loc) · 4.54 KB
/
Copy pathpyproject.toml
File metadata and controls
120 lines (113 loc) · 4.54 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "mscodebase-intelligence"
version = "3.3.9"
description = "AI-powered semantic code search for Zed IDE via MCP. Hybrid BM25 + vector search with 48 analysis tools. Multi-window with per-project Indexer registry."
readme = "README.md"
license = {text = "MIT"}
authors = [{name = "ManSio"}]
requires-python = ">=3.10"
keywords = ["zed", "mcp", "code-search", "embeddings", "ai", "lancedb", "semantic-search", "zed-extension"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Text Processing :: Indexing",
"Environment :: Plugins",
]
dependencies = [
# MCP Protocol
"mcp>=1.0.0,<2", # upper bound: mcp 2.x меняет транспортный протокол
# LSP Protocol
"pygls>=2.0.0",
"lsprotocol>=24.0.0",
# Vector DB & Embeddings
# Pinned: lancedb 0.x менял публичный API внутри минорных релизов
# (сломал тест-сьют 2026-07 через lancedb.LanceDB). Ребилд/бамп —
# только после проверки совместимости API + прогона verify_clean_state.
"lancedb==0.34.0",
"pyarrow>=14.0.0", # + pyarrow.compute для to_arrow
"huggingface_hub>=0.20.0",
"numpy>=1.24.0,<3", # upper bound: numpy 3.x ломает ABI для pyarrow/onnxruntime
# Code parsing (Tree-sitter) — 23 пакета для 23 языков
# Core: полный граф (chunking + calls + data flow + imports)
"tree-sitter>=0.21.0,<1",
"tree-sitter-python>=0.21.0,<1",
"tree-sitter-rust>=0.21.0,<1",
"tree-sitter-typescript>=0.21.0,<1", # .ts/.tsx
"tree-sitter-javascript>=0.21.0,<1", # .js/.jsx
"tree-sitter-go>=0.21.0,<1",
"tree-sitter-java>=0.23.0,<1",
"tree-sitter-c-sharp>=0.23.0,<1",
"tree-sitter-ruby>=0.23.0,<1",
"tree-sitter-php>=0.24.0,<1",
"tree-sitter-kotlin>=1.1.0,<2",
"tree-sitter-swift>=0.7.0,<1",
"tree-sitter-c>=0.24.0,<1",
"tree-sitter-cpp>=0.23.0,<1",
"tree-sitter-scala>=0.26.0,<1",
"tree-sitter-dart>=0.1.0,<1",
"tree-sitter-bash>=0.25.0,<1", # shell, без data flow
# Context-языки (только AST-парсинг и чанкинг)
"tree-sitter-sql>=0.3.0,<1",
"tree-sitter-yaml>=0.7.0,<1",
"tree-sitter-toml>=0.7.0,<1",
"tree-sitter-html>=0.23.0,<1",
"tree-sitter-css>=0.25.0,<1",
"tree-sitter-hcl>=1.2.0,<2", # HCL/Terraform
# Search & Utils
"pathspec>=0.14.0",
"httpx>=0.24.0",
"python-dotenv>=1.0.0",
"pandas>=2.0.0",
"python-dateutil>=2.8.0",
# ONNX Embedder
"onnxruntime>=1.17.0",
"openvino>=2026.0.0",
# Reranker (transformers-based)
"transformers>=4.36.0,<5.15.0",
"tokenizers>=0.15.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"ruff>=0.5.0",
"black",
"isort",
]
[project.urls]
Homepage = "https://github.com/ManSio/mscodebase-intelligence"
Repository = "https://github.com/ManSio/mscodebase-intelligence"
Issues = "https://github.com/ManSio/mscodebase-intelligence/issues"
Documentation = "https://github.com/ManSio/mscodebase-intelligence/blob/main/README.md"
[project.scripts]
mscodebase = "src.main:main"
mscodebase-mcp = "src.main:main"
[tool.setuptools.packages.find]
where = ["."]
include = ["src*", "scripts*"]
[tool.setuptools.package-data]
"*" = ["*.json", "*.md", "*.bat", "*.cfg"]
"src" = ["*.json", "*.txt", "*.cfg"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"asyncio: marks tests as asyncio tests",
"benchmark: marks tests as benchmark tests (deselect with '-m \"not benchmark\"')",
]
norecursedirs = [".git", ".venv", "venv", ".idea", ".vscode", ".codebase_index", ".codebase_indices"]
addopts = "-v --tb=short -m 'not slow and not benchmark'"