tree-sitter-analyzer 0.9.9__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tree-sitter-analyzer might be problematic. Click here for more details.
- tree_sitter_analyzer/__init__.py +1 -1
- tree_sitter_analyzer/api.py +11 -2
- tree_sitter_analyzer/cli/commands/base_command.py +2 -2
- tree_sitter_analyzer/cli/commands/partial_read_command.py +2 -2
- tree_sitter_analyzer/cli/info_commands.py +7 -4
- tree_sitter_analyzer/cli_main.py +1 -2
- tree_sitter_analyzer/core/analysis_engine.py +2 -2
- tree_sitter_analyzer/core/query_service.py +162 -162
- tree_sitter_analyzer/file_handler.py +6 -4
- tree_sitter_analyzer/formatters/base_formatter.py +6 -4
- tree_sitter_analyzer/mcp/__init__.py +1 -1
- tree_sitter_analyzer/mcp/resources/__init__.py +1 -1
- tree_sitter_analyzer/mcp/resources/project_stats_resource.py +16 -5
- tree_sitter_analyzer/mcp/server.py +16 -11
- tree_sitter_analyzer/mcp/tools/__init__.py +1 -1
- tree_sitter_analyzer/mcp/utils/__init__.py +2 -2
- tree_sitter_analyzer/mcp/utils/error_handler.py +569 -569
- tree_sitter_analyzer/mcp/utils/path_resolver.py +240 -20
- tree_sitter_analyzer/output_manager.py +7 -3
- tree_sitter_analyzer/project_detector.py +27 -27
- tree_sitter_analyzer/security/boundary_manager.py +37 -28
- tree_sitter_analyzer/security/validator.py +23 -12
- tree_sitter_analyzer/table_formatter.py +6 -4
- tree_sitter_analyzer/utils.py +1 -2
- {tree_sitter_analyzer-0.9.9.dist-info → tree_sitter_analyzer-1.1.0.dist-info}/METADATA +38 -12
- {tree_sitter_analyzer-0.9.9.dist-info → tree_sitter_analyzer-1.1.0.dist-info}/RECORD +28 -28
- {tree_sitter_analyzer-0.9.9.dist-info → tree_sitter_analyzer-1.1.0.dist-info}/WHEEL +0 -0
- {tree_sitter_analyzer-0.9.9.dist-info → tree_sitter_analyzer-1.1.0.dist-info}/entry_points.txt +0 -0
|
@@ -6,8 +6,8 @@ Provides unified security validation framework inspired by code-index-mcp's
|
|
|
6
6
|
ValidationHelper but enhanced for tree-sitter analyzer's requirements.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
import os
|
|
10
9
|
import re
|
|
10
|
+
from pathlib import Path
|
|
11
11
|
|
|
12
12
|
from ..exceptions import SecurityError
|
|
13
13
|
from ..utils import log_debug, log_warning
|
|
@@ -75,11 +75,18 @@ class SecurityValidator:
|
|
|
75
75
|
return False, "File path contains null bytes"
|
|
76
76
|
|
|
77
77
|
# Layer 3: Windows drive letter check (only on non-Windows systems)
|
|
78
|
-
|
|
78
|
+
# Check if we're on Windows by checking for drive letter support
|
|
79
|
+
import platform
|
|
80
|
+
|
|
81
|
+
if (
|
|
82
|
+
len(file_path) > 1
|
|
83
|
+
and file_path[1] == ":"
|
|
84
|
+
and platform.system() != "Windows"
|
|
85
|
+
):
|
|
79
86
|
return False, "Windows drive letters are not allowed on this system"
|
|
80
87
|
|
|
81
88
|
# Layer 4: Absolute path check (cross-platform)
|
|
82
|
-
if
|
|
89
|
+
if Path(file_path).is_absolute() or file_path.startswith(("/", "\\")):
|
|
83
90
|
# If project boundaries are configured, enforce them strictly
|
|
84
91
|
if self.boundary_manager and self.boundary_manager.project_root:
|
|
85
92
|
if not self.boundary_manager.is_within_project(file_path):
|
|
@@ -91,14 +98,17 @@ class SecurityValidator:
|
|
|
91
98
|
# paths under system temp folder only (safe sandbox)
|
|
92
99
|
import tempfile
|
|
93
100
|
|
|
94
|
-
temp_dir =
|
|
95
|
-
real_path =
|
|
96
|
-
|
|
101
|
+
temp_dir = Path(tempfile.gettempdir()).resolve()
|
|
102
|
+
real_path = Path(file_path).resolve()
|
|
103
|
+
try:
|
|
104
|
+
real_path.relative_to(temp_dir)
|
|
97
105
|
return True, ""
|
|
106
|
+
except ValueError:
|
|
107
|
+
pass
|
|
98
108
|
return False, "Absolute file paths are not allowed"
|
|
99
109
|
|
|
100
110
|
# Layer 5: Path normalization and traversal check
|
|
101
|
-
norm_path =
|
|
111
|
+
norm_path = str(Path(file_path))
|
|
102
112
|
if "..\\" in norm_path or "../" in norm_path or norm_path.startswith(".."):
|
|
103
113
|
log_warning(f"Path traversal attempt detected: {file_path}")
|
|
104
114
|
return False, "Directory traversal not allowed"
|
|
@@ -106,7 +116,7 @@ class SecurityValidator:
|
|
|
106
116
|
# Layer 6: Project boundary validation
|
|
107
117
|
if self.boundary_manager and base_path:
|
|
108
118
|
if not self.boundary_manager.is_within_project(
|
|
109
|
-
|
|
119
|
+
str(Path(base_path) / norm_path)
|
|
110
120
|
):
|
|
111
121
|
return (
|
|
112
122
|
False,
|
|
@@ -115,8 +125,8 @@ class SecurityValidator:
|
|
|
115
125
|
|
|
116
126
|
# Layer 7: Symbolic link check (if file exists)
|
|
117
127
|
if base_path:
|
|
118
|
-
full_path =
|
|
119
|
-
if
|
|
128
|
+
full_path = Path(base_path) / norm_path
|
|
129
|
+
if full_path.exists() and full_path.is_symlink():
|
|
120
130
|
log_warning(f"Symbolic link detected: {full_path}")
|
|
121
131
|
return False, "Symbolic links are not allowed"
|
|
122
132
|
|
|
@@ -148,10 +158,11 @@ class SecurityValidator:
|
|
|
148
158
|
|
|
149
159
|
# Check if path exists and is directory
|
|
150
160
|
if must_exist:
|
|
151
|
-
|
|
161
|
+
dir_path_obj = Path(dir_path)
|
|
162
|
+
if not dir_path_obj.exists():
|
|
152
163
|
return False, f"Directory does not exist: {dir_path}"
|
|
153
164
|
|
|
154
|
-
if not
|
|
165
|
+
if not dir_path_obj.is_dir():
|
|
155
166
|
return False, f"Path is not a directory: {dir_path}"
|
|
156
167
|
|
|
157
168
|
log_debug(f"Directory path validation passed: {dir_path}")
|
|
@@ -7,7 +7,6 @@ Provides table-formatted output for Java code analysis results.
|
|
|
7
7
|
|
|
8
8
|
import csv
|
|
9
9
|
import io
|
|
10
|
-
import os
|
|
11
10
|
from typing import Any
|
|
12
11
|
|
|
13
12
|
|
|
@@ -26,12 +25,15 @@ class TableFormatter:
|
|
|
26
25
|
|
|
27
26
|
def _get_platform_newline(self) -> str:
|
|
28
27
|
"""Get platform-specific newline character"""
|
|
29
|
-
|
|
28
|
+
import os
|
|
29
|
+
|
|
30
|
+
return "\r\n" if os.name == "nt" else "\n" # Windows uses \r\n, others use \n
|
|
30
31
|
|
|
31
32
|
def _convert_to_platform_newlines(self, text: str) -> str:
|
|
32
33
|
"""Convert standard \\n to platform-specific newline characters"""
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
platform_newline = self._get_platform_newline()
|
|
35
|
+
if platform_newline != "\n":
|
|
36
|
+
return text.replace("\n", platform_newline)
|
|
35
37
|
return text
|
|
36
38
|
|
|
37
39
|
def format_structure(self, structure_data: dict[str, Any]) -> str:
|
tree_sitter_analyzer/utils.py
CHANGED
|
@@ -7,6 +7,7 @@ Provides logging, debugging, and common utility functions.
|
|
|
7
7
|
|
|
8
8
|
import atexit
|
|
9
9
|
import logging
|
|
10
|
+
import os
|
|
10
11
|
import sys
|
|
11
12
|
from functools import wraps
|
|
12
13
|
from typing import Any
|
|
@@ -17,8 +18,6 @@ def setup_logger(
|
|
|
17
18
|
name: str = "tree_sitter_analyzer", level: int = logging.WARNING
|
|
18
19
|
) -> logging.Logger:
|
|
19
20
|
"""Setup unified logger for the project"""
|
|
20
|
-
import os
|
|
21
|
-
|
|
22
21
|
# Get log level from environment variable
|
|
23
22
|
env_level = os.environ.get("LOG_LEVEL", "").upper()
|
|
24
23
|
if env_level == "DEBUG":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture
|
|
5
5
|
Project-URL: Homepage, https://github.com/aimasteracc/tree-sitter-analyzer
|
|
6
6
|
Project-URL: Documentation, https://github.com/aimasteracc/tree-sitter-analyzer#readme
|
|
@@ -39,6 +39,32 @@ Requires-Dist: tree-sitter-java>=0.23.5
|
|
|
39
39
|
Requires-Dist: tree-sitter-javascript>=0.23.1
|
|
40
40
|
Requires-Dist: tree-sitter-python>=0.23.6
|
|
41
41
|
Requires-Dist: tree-sitter==0.24.0
|
|
42
|
+
Provides-Extra: all
|
|
43
|
+
Requires-Dist: anyio>=4.0.0; extra == 'all'
|
|
44
|
+
Requires-Dist: black>=24.0.0; extra == 'all'
|
|
45
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == 'all'
|
|
46
|
+
Requires-Dist: isort>=5.13.0; extra == 'all'
|
|
47
|
+
Requires-Dist: mcp>=1.12.2; extra == 'all'
|
|
48
|
+
Requires-Dist: memory-profiler>=0.61.0; extra == 'all'
|
|
49
|
+
Requires-Dist: mypy>=1.17.0; extra == 'all'
|
|
50
|
+
Requires-Dist: pre-commit>=3.0.0; extra == 'all'
|
|
51
|
+
Requires-Dist: psutil<6,>=5.9.6; extra == 'all'
|
|
52
|
+
Requires-Dist: pydantic-settings>=2.2.1; extra == 'all'
|
|
53
|
+
Requires-Dist: pydantic>=2.5.0; extra == 'all'
|
|
54
|
+
Requires-Dist: pytest-asyncio>=1.1.0; extra == 'all'
|
|
55
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'all'
|
|
56
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == 'all'
|
|
57
|
+
Requires-Dist: pytest>=8.4.1; extra == 'all'
|
|
58
|
+
Requires-Dist: ruff>=0.5.0; extra == 'all'
|
|
59
|
+
Requires-Dist: tree-sitter-c>=0.20.0; extra == 'all'
|
|
60
|
+
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'all'
|
|
61
|
+
Requires-Dist: tree-sitter-go>=0.20.0; extra == 'all'
|
|
62
|
+
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'all'
|
|
63
|
+
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'all'
|
|
64
|
+
Requires-Dist: tree-sitter-python>=0.23.0; extra == 'all'
|
|
65
|
+
Requires-Dist: tree-sitter-rust>=0.20.0; extra == 'all'
|
|
66
|
+
Requires-Dist: tree-sitter-typescript>=0.20.0; extra == 'all'
|
|
67
|
+
Requires-Dist: types-psutil>=5.9.0; extra == 'all'
|
|
42
68
|
Provides-Extra: all-languages
|
|
43
69
|
Requires-Dist: tree-sitter-c>=0.20.0; extra == 'all-languages'
|
|
44
70
|
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'all-languages'
|
|
@@ -137,11 +163,11 @@ Description-Content-Type: text/markdown
|
|
|
137
163
|
|
|
138
164
|
[](https://python.org)
|
|
139
165
|
[](LICENSE)
|
|
140
|
-
[](#quality-assurance)
|
|
167
|
+
[](#quality-assurance)
|
|
142
168
|
[](#quality-assurance)
|
|
143
169
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
144
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
145
171
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
146
172
|
|
|
147
173
|
## 🚀 Break Through LLM Token Limits, Let AI Understand Code Files of Any Size
|
|
@@ -556,17 +582,17 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
556
582
|
## 🏆 Quality Assurance
|
|
557
583
|
|
|
558
584
|
### 📊 **Quality Metrics**
|
|
559
|
-
- **1,
|
|
560
|
-
- **74.
|
|
585
|
+
- **1,1504** - 100% pass rate ✅
|
|
586
|
+
- **74.44% Code Coverage** - Industry-leading level
|
|
561
587
|
- **Zero Test Failures** - Complete CI/CD ready
|
|
562
588
|
- **Cross-platform Compatible** - Windows, macOS, Linux
|
|
563
589
|
|
|
564
|
-
### ⚡ **Latest Quality Achievements (
|
|
565
|
-
- ✅ **
|
|
566
|
-
- ✅ **
|
|
567
|
-
- ✅ **
|
|
568
|
-
- ✅ **Comprehensive Test Coverage** - 74.
|
|
569
|
-
- ✅ **
|
|
590
|
+
### ⚡ **Latest Quality Achievements (v1.0.0)**
|
|
591
|
+
- ✅ **Cross-Platform Path Compatibility** - Fixed Windows short path names and macOS symlink differences
|
|
592
|
+
- ✅ **Windows Environment** - Implemented robust path normalization using Windows API
|
|
593
|
+
- ✅ **macOS Environment** - Fixed `/var` vs `/private/var` symlink differences
|
|
594
|
+
- ✅ **Comprehensive Test Coverage** - 74.44% coverage with 1504 tests
|
|
595
|
+
- ✅ **GitFlow Implementation** - Professional branching strategy with develop/release branches. See [GitFlow Documentation](GITFLOW.md) for details.
|
|
570
596
|
|
|
571
597
|
### ⚙️ **Running Tests**
|
|
572
598
|
```bash
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
tree_sitter_analyzer/__init__.py,sha256=
|
|
1
|
+
tree_sitter_analyzer/__init__.py,sha256=mNfMb8IDk8tBcuUUMUaS9rBKhut-K8cc85Gz6EiceOI,3067
|
|
2
2
|
tree_sitter_analyzer/__main__.py,sha256=Zl79tpe4UaMu-7yeztc06tgP0CVMRnvGgas4ZQP5SCs,228
|
|
3
|
-
tree_sitter_analyzer/api.py,sha256=
|
|
4
|
-
tree_sitter_analyzer/cli_main.py,sha256=
|
|
3
|
+
tree_sitter_analyzer/api.py,sha256=N_bcf1pLwzXS3elPn30OySLR6ehsHdWpchXMycjl0PY,17399
|
|
4
|
+
tree_sitter_analyzer/cli_main.py,sha256=jWjVJ5AgNmtf6Z7CgeK3IF-zi7yIiu9zn4Oyvzl-iNQ,10349
|
|
5
5
|
tree_sitter_analyzer/encoding_utils.py,sha256=NHkqOt7GdrxgMsd3k0rVxSO0mWJZXODw3uwl2Qk9ufc,14803
|
|
6
6
|
tree_sitter_analyzer/exceptions.py,sha256=AZryCQyKXekAg8lQZd3zqULnjhCKovBNNpnUlNGDhcI,11615
|
|
7
|
-
tree_sitter_analyzer/file_handler.py,sha256=
|
|
7
|
+
tree_sitter_analyzer/file_handler.py,sha256=mtWz-DE4yfmak347s0e20xFNy3qddcek58Enom5GlZQ,6689
|
|
8
8
|
tree_sitter_analyzer/language_detector.py,sha256=pn3nQClo8b_Ar8dS5X3hq9_t5IIlIcizIC0twMaowU4,11693
|
|
9
9
|
tree_sitter_analyzer/language_loader.py,sha256=P1vOa9NR_iVCpawpjziP1uQTX1uL6bgzTb6F9tw4pAc,7900
|
|
10
10
|
tree_sitter_analyzer/models.py,sha256=SrPxiRvlcH0uyOao47tzK-rVqK82JkmmxdU6yJlucSc,16014
|
|
11
|
-
tree_sitter_analyzer/output_manager.py,sha256=
|
|
12
|
-
tree_sitter_analyzer/project_detector.py,sha256=
|
|
11
|
+
tree_sitter_analyzer/output_manager.py,sha256=iqzYion317D6EIEliUTiwUM8d4XHy3cHImCDcElhyNY,8263
|
|
12
|
+
tree_sitter_analyzer/project_detector.py,sha256=10-aaIvgQSOkoR-1cWAyWVHAdEnJUEv0yOdxzN_VEv0,9463
|
|
13
13
|
tree_sitter_analyzer/query_loader.py,sha256=jcJc6_kIMeZINfTVGuiEmDii9LViP_pbJfg4A9phJY4,9863
|
|
14
|
-
tree_sitter_analyzer/table_formatter.py,sha256=
|
|
15
|
-
tree_sitter_analyzer/utils.py,sha256=
|
|
14
|
+
tree_sitter_analyzer/table_formatter.py,sha256=qqMFEavDpqfqn6Qt2QPShUvqzVdBLYsbwuBar1WVnkw,27689
|
|
15
|
+
tree_sitter_analyzer/utils.py,sha256=1x6V7xqrhHMyVQFnUzWWxK3D7maK2XqboK0BLW_PLyQ,10748
|
|
16
16
|
tree_sitter_analyzer/cli/__init__.py,sha256=O_3URpbdu5Ilb2-r48LjbZuWtOWQu_BhL3pa6C0G3Bk,871
|
|
17
17
|
tree_sitter_analyzer/cli/__main__.py,sha256=Xq8o8-0dPnMDU9WZqmqhzr98rx8rvoffTUHAkAwl-L8,218
|
|
18
|
-
tree_sitter_analyzer/cli/info_commands.py,sha256=
|
|
18
|
+
tree_sitter_analyzer/cli/info_commands.py,sha256=thWCLZ4iGVmqxuQfUz3t-uNRv9X3lgtWnsUJm6mbJ7o,4432
|
|
19
19
|
tree_sitter_analyzer/cli/commands/__init__.py,sha256=jpcpM1ptLuxLMBDUv1y_a87k8RAw1otFzeYpWtXvz3Y,671
|
|
20
20
|
tree_sitter_analyzer/cli/commands/advanced_command.py,sha256=xDZI4zKTMHNdf7fc_QN0eAQ8a5MnRb5DJ29ERLBDUQs,3424
|
|
21
|
-
tree_sitter_analyzer/cli/commands/base_command.py,sha256=
|
|
21
|
+
tree_sitter_analyzer/cli/commands/base_command.py,sha256=MGlRA6sIcMt6ta-07NOFcPz8-eUwwS2g-JlBVYn105s,6611
|
|
22
22
|
tree_sitter_analyzer/cli/commands/default_command.py,sha256=RAR_eaOK3EndIqU7QL5UAn44mwyhItTN7aUaKL1WmSc,524
|
|
23
|
-
tree_sitter_analyzer/cli/commands/partial_read_command.py,sha256=
|
|
23
|
+
tree_sitter_analyzer/cli/commands/partial_read_command.py,sha256=lbuy9X_q5pyf_cJXVvx_AYJg_tfxF1R0U93Is-MVW_A,4619
|
|
24
24
|
tree_sitter_analyzer/cli/commands/query_command.py,sha256=VFuCFJxffjSUrMa7NB_KJmMexUnJmnazpTDbw-i9Ulw,4003
|
|
25
25
|
tree_sitter_analyzer/cli/commands/structure_command.py,sha256=0iJwjOgtW838hXleXogWhbu6eQFfrLR1QgKe5PFBqvU,5220
|
|
26
26
|
tree_sitter_analyzer/cli/commands/summary_command.py,sha256=02WA3sOzfT83FVT6sW7nK04zVcZ9Qj_1S0WloqlTnFk,3602
|
|
27
27
|
tree_sitter_analyzer/cli/commands/table_command.py,sha256=GvGpLZ_YwE5syufNMfvjPrzwt-bXUtAF7EoOQ0Dr_O0,9441
|
|
28
28
|
tree_sitter_analyzer/core/__init__.py,sha256=VlYOy1epW16vjaVd__knESewnU0sfXF9a4hjrFxiSEE,440
|
|
29
|
-
tree_sitter_analyzer/core/analysis_engine.py,sha256=
|
|
29
|
+
tree_sitter_analyzer/core/analysis_engine.py,sha256=NNbYIfIgZPY0Q2ZC2do_akw3pa5_fbbnowU4hRsDS9Q,18904
|
|
30
30
|
tree_sitter_analyzer/core/cache_service.py,sha256=0oZGuTpeHBKYNdnqAOVi6VlQukYMIHncz2pbVfNpSqE,9762
|
|
31
31
|
tree_sitter_analyzer/core/engine.py,sha256=VFXGowDj6EfjFSh2MQDkQIc-4ISXaOg38n4lUhVY5Os,18721
|
|
32
32
|
tree_sitter_analyzer/core/parser.py,sha256=qT3yIlTRdod4tf_2o1hU_B-GYGukyM2BtaFxzSoxois,9293
|
|
33
33
|
tree_sitter_analyzer/core/query.py,sha256=UhQxUmQitFobe2YM7Ifhi3X2WdHVb02KzeBunueYJ4I,16397
|
|
34
34
|
tree_sitter_analyzer/core/query_filter.py,sha256=PvGztAZFooFNZe6iHNmbg6RUNtMvq6f6hBZFzllig6Y,6591
|
|
35
|
-
tree_sitter_analyzer/core/query_service.py,sha256=
|
|
35
|
+
tree_sitter_analyzer/core/query_service.py,sha256=j9v3w2j3axhxzFEbZLovDNT2h6kF4PWbJVL_PmKl3ho,5542
|
|
36
36
|
tree_sitter_analyzer/formatters/__init__.py,sha256=yVb4HF_4EEPRwTf3y3-vM2NllrhykG3zlvQhN-6dB4c,31
|
|
37
|
-
tree_sitter_analyzer/formatters/base_formatter.py,sha256=
|
|
37
|
+
tree_sitter_analyzer/formatters/base_formatter.py,sha256=XZwZ0klyCnmNkpWnMP7dy0XGaHForjE-BnBt1XZoQE8,5901
|
|
38
38
|
tree_sitter_analyzer/formatters/formatter_factory.py,sha256=mCnAbEHycoSttSuF4dU78hzcxyg-h57bo0_bj00zw58,2069
|
|
39
39
|
tree_sitter_analyzer/formatters/java_formatter.py,sha256=0jxKfrWtsr_K2VG1zW0LH2E6w6nfpIhcXTfIyWw3Jmc,11163
|
|
40
40
|
tree_sitter_analyzer/formatters/python_formatter.py,sha256=gHP4OtEwvv2ASbmTbyZNvQSP5r4Et4-sAMWr36y0k1Y,9840
|
|
@@ -47,12 +47,12 @@ tree_sitter_analyzer/languages/__init__.py,sha256=VTXxJgVjHJAciLhX0zzXOS4EygZMte
|
|
|
47
47
|
tree_sitter_analyzer/languages/java_plugin.py,sha256=ZTtDgyUdv-b9fFvCMEL3xS-yr0rfMueKkVleDybisag,47233
|
|
48
48
|
tree_sitter_analyzer/languages/javascript_plugin.py,sha256=k14kHfi5II9MRTsVuy0NQq5l2KZYncCnM1Q6T1c5q_U,15844
|
|
49
49
|
tree_sitter_analyzer/languages/python_plugin.py,sha256=MJ03F_Nv-nmInIkEFmPyEXYhyGbLHyr5kCbj2taEDYk,29144
|
|
50
|
-
tree_sitter_analyzer/mcp/__init__.py,sha256=
|
|
51
|
-
tree_sitter_analyzer/mcp/server.py,sha256=
|
|
52
|
-
tree_sitter_analyzer/mcp/resources/__init__.py,sha256=
|
|
50
|
+
tree_sitter_analyzer/mcp/__init__.py,sha256=FfuHi1pWJpRERx21AB5HktTljmh5-OnmpVuCye_SFOY,944
|
|
51
|
+
tree_sitter_analyzer/mcp/server.py,sha256=m-Vf2BQBzx5jCJRGLooznUP8R6cYfdYTZva5qPjZtv0,25222
|
|
52
|
+
tree_sitter_analyzer/mcp/resources/__init__.py,sha256=zBHnLTvNn9p4qW2Ck8afOAD3f40YcgByn3rXuDl524s,1389
|
|
53
53
|
tree_sitter_analyzer/mcp/resources/code_file_resource.py,sha256=ZX5ZYSJfylBedpL80kTDlco2YZqgRMb5f3OW0VvOVRM,6166
|
|
54
|
-
tree_sitter_analyzer/mcp/resources/project_stats_resource.py,sha256=
|
|
55
|
-
tree_sitter_analyzer/mcp/tools/__init__.py,sha256=
|
|
54
|
+
tree_sitter_analyzer/mcp/resources/project_stats_resource.py,sha256=r2owXkWrZ-Ee9hLGpt-SSNOxzrzuNVgNXcwxQghCcrM,20057
|
|
55
|
+
tree_sitter_analyzer/mcp/tools/__init__.py,sha256=9tAOgJjB75SQNY0X7kr9GHj37DEwV3bTU7Qb6kuimBs,762
|
|
56
56
|
tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py,sha256=ZiwIzVbzSMoUXpuC94-N9_xLrlSCWEFlHv2nB_ibOgU,27856
|
|
57
57
|
tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py,sha256=mssed7bEfGeGxW4mOf7dg8BDS1oqHLolIBNX9DaZ3DM,8997
|
|
58
58
|
tree_sitter_analyzer/mcp/tools/base_tool.py,sha256=FVSMgKIliQ5EBVQEfjYwWeqzWt9OqOFDr3dyACIDxig,1210
|
|
@@ -60,9 +60,9 @@ tree_sitter_analyzer/mcp/tools/query_tool.py,sha256=UzJSfVXr6DsF1E8EdysMHxlYOREZ
|
|
|
60
60
|
tree_sitter_analyzer/mcp/tools/read_partial_tool.py,sha256=Hc4PnF7wBBRhxVlzuqaz1rBA5rWSNvC6qEiWSLqdogI,11504
|
|
61
61
|
tree_sitter_analyzer/mcp/tools/table_format_tool.py,sha256=YeZs5tL8hjWOCR-v6VekNDMyCQOcNI06wHGbGdnacIQ,15451
|
|
62
62
|
tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py,sha256=cdc1K-NZomQK7PD1viVR1kBaNWwDeo1FrU0nn5sb1YA,22141
|
|
63
|
-
tree_sitter_analyzer/mcp/utils/__init__.py,sha256=
|
|
64
|
-
tree_sitter_analyzer/mcp/utils/error_handler.py,sha256=
|
|
65
|
-
tree_sitter_analyzer/mcp/utils/path_resolver.py,sha256=
|
|
63
|
+
tree_sitter_analyzer/mcp/utils/__init__.py,sha256=Nsx6Yan_t_GuUpYgXAnRA6hoW--24ov9WoaSS4gst18,3148
|
|
64
|
+
tree_sitter_analyzer/mcp/utils/error_handler.py,sha256=msrQHX67K3vhJsEc3OPRz5mmWU_yoHz55Lnxy0IZuy4,18404
|
|
65
|
+
tree_sitter_analyzer/mcp/utils/path_resolver.py,sha256=7pZvJ1CjKnLKTGvBBOitCLxgWaHNVQo2SwQrxuyqXkI,14976
|
|
66
66
|
tree_sitter_analyzer/plugins/__init__.py,sha256=ITE9bTz7NO4axnn8g5Z-1_ydhSLT0RnY6Y1J9OhUP3E,10326
|
|
67
67
|
tree_sitter_analyzer/plugins/base.py,sha256=FMRAOtjtDutNV8RnB6cmFgdvcjxKRAbrrzqldBBT1yk,17167
|
|
68
68
|
tree_sitter_analyzer/plugins/manager.py,sha256=PyEY3jeuCBpDVqguWhaAu7nzUZM17_pI6wml2e0Hamo,12535
|
|
@@ -72,10 +72,10 @@ tree_sitter_analyzer/queries/javascript.py,sha256=pnXrgISwDE5GhPHDbUKEGI3thyLmeb
|
|
|
72
72
|
tree_sitter_analyzer/queries/python.py,sha256=L33KRUyV3sAvA3_HFkPyGgtiq0ygSpNY_n2YojodPlc,7570
|
|
73
73
|
tree_sitter_analyzer/queries/typescript.py,sha256=eersyAF7TladuCWa8WE_-cO9YTF1LUSjLIl-tk2fZDo,6708
|
|
74
74
|
tree_sitter_analyzer/security/__init__.py,sha256=ZTqTt24hsljCpTXAZpJC57L7MU5lJLTf_XnlvEzXwEE,623
|
|
75
|
-
tree_sitter_analyzer/security/boundary_manager.py,sha256=
|
|
75
|
+
tree_sitter_analyzer/security/boundary_manager.py,sha256=vdoxABe7e7pAhyuu3-NM9iVz0irHdR1EMwbICdwdr8Y,8644
|
|
76
76
|
tree_sitter_analyzer/security/regex_checker.py,sha256=jWK6H8PTPgzbwRPfK_RZ8bBTS6rtEbgjY5vr3YWjQ_U,9616
|
|
77
|
-
tree_sitter_analyzer/security/validator.py,sha256=
|
|
78
|
-
tree_sitter_analyzer-
|
|
79
|
-
tree_sitter_analyzer-
|
|
80
|
-
tree_sitter_analyzer-
|
|
81
|
-
tree_sitter_analyzer-
|
|
77
|
+
tree_sitter_analyzer/security/validator.py,sha256=PWczaviFTOLjyCDMFnmZNDdL-D9Y-7Mfw-EkXFpT83g,9262
|
|
78
|
+
tree_sitter_analyzer-1.1.0.dist-info/METADATA,sha256=K4wyQP2czsCZpx54DH5ulq1fomzlo_TU-lQ3EnmVTQY,25064
|
|
79
|
+
tree_sitter_analyzer-1.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
80
|
+
tree_sitter_analyzer-1.1.0.dist-info/entry_points.txt,sha256=U4tfLGXgCWubKm2PyEb3zxhQ2pm7zVotMyfyS0CodD8,486
|
|
81
|
+
tree_sitter_analyzer-1.1.0.dist-info/RECORD,,
|
|
File without changes
|
{tree_sitter_analyzer-0.9.9.dist-info → tree_sitter_analyzer-1.1.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|