tree-sitter-analyzer 0.9.2__tar.gz → 0.9.3__tar.gz
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-0.9.2 → tree_sitter_analyzer-0.9.3}/CHANGELOG.md +29 -10
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/PKG-INFO +13 -13
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/pyproject.toml +9 -10
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/base_command.py +2 -3
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli_main.py +7 -3
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/core/analysis_engine.py +17 -9
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/core/cache_service.py +1 -1
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/interfaces/cli.py +1 -1
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/interfaces/cli_adapter.py +3 -3
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/project_detector.py +330 -317
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/security/boundary_manager.py +57 -51
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/utils.py +3 -3
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/upload_interactive.py +202 -167
- tree_sitter_analyzer-0.9.3/upload_to_pypi.py +302 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/uv.lock +17 -29
- tree_sitter_analyzer-0.9.2/RELEASE_NOTES_v0.9.1.md +0 -100
- tree_sitter_analyzer-0.9.2/RELEASE_NOTES_v0.9.2.md +0 -43
- tree_sitter_analyzer-0.9.2/TASKS.md +0 -18
- tree_sitter_analyzer-0.9.2/upload_to_pypi.py +0 -209
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/.gitignore +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/README.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/README_ja.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/README_zh.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/UPLOAD_COMMANDS.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/build_standalone.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/check_quality.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/docs/api.md +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/sample.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/pytest.ini +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/language_loader.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/server.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/table_formatter.py +0 -0
|
@@ -1,23 +1,42 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## [0.9.3] - 2025-08-15
|
|
3
|
+
|
|
4
|
+
### 🔇 Improved Output Experience
|
|
5
|
+
- Significantly reduced verbose logging in CLI default output
|
|
6
|
+
- Downgraded initialization and debug messages from INFO to DEBUG level
|
|
7
|
+
- Set default log level to WARNING for cleaner user experience
|
|
8
|
+
- Performance logs disabled by default, only shown in verbose mode
|
|
9
|
+
|
|
10
|
+
### 🎯 Affected Components
|
|
11
|
+
- CLI main program default log level adjustment
|
|
12
|
+
- Project detection, cache service, boundary manager log level optimization
|
|
13
|
+
- Performance monitoring log output optimization
|
|
14
|
+
- Preserved full functionality of `--quiet` and `--verbose` options
|
|
15
|
+
|
|
16
|
+
### 🚀 User Impact
|
|
17
|
+
- More concise and professional command line output
|
|
18
|
+
- Only displays critical information and error messages
|
|
19
|
+
- Enhanced user experience, especially when used in automation scripts
|
|
20
|
+
|
|
2
21
|
## [0.9.2] - 2025-08-14
|
|
3
22
|
|
|
4
23
|
### 🔄 Changed
|
|
5
|
-
- MCP
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
24
|
+
- MCP module version is now synchronized with the main package version (both read from package `__version__`)
|
|
25
|
+
- Initialization state errors now raise `MCPError`, consistent with MCP semantics
|
|
26
|
+
- Security checks: strengthened absolute path policy, temporary directory cases are safely allowed in test environments
|
|
27
|
+
- Code and tool descriptions fully Anglicized, removed remaining Chinese/Japanese comments and documentation fragments
|
|
9
28
|
|
|
10
29
|
### 📚 Docs
|
|
11
|
-
- `README.md`
|
|
12
|
-
-
|
|
30
|
+
- `README.md` is now the English source of truth, with 1:1 translations to `README_zh.md` and `README_ja.md`
|
|
31
|
+
- Added examples and recommended configuration for the three-step MCP workflow
|
|
13
32
|
|
|
14
33
|
### 🧪 Tests
|
|
15
|
-
-
|
|
16
|
-
-
|
|
34
|
+
- All 1358/1358 test cases passed, coverage at 74.82%
|
|
35
|
+
- Updated assertions to read dynamic version and new error types
|
|
17
36
|
|
|
18
37
|
### 🚀 Impact
|
|
19
|
-
-
|
|
20
|
-
-
|
|
38
|
+
- Improved IDE (Cursor/Claude) tool visibility and consistency
|
|
39
|
+
- Lowered onboarding barrier for international users, unified English descriptions and localized documentation
|
|
21
40
|
|
|
22
41
|
|
|
23
42
|
All notable changes to this project will be documented in this file.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.3
|
|
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
|
|
@@ -58,30 +58,30 @@ Requires-Dist: isort>=5.13.0; extra == 'dev'
|
|
|
58
58
|
Requires-Dist: memory-profiler>=0.61.0; extra == 'dev'
|
|
59
59
|
Requires-Dist: mypy>=1.17.0; extra == 'dev'
|
|
60
60
|
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
|
|
61
|
-
Requires-Dist: psutil
|
|
61
|
+
Requires-Dist: psutil<6,>=5.9.6; extra == 'dev'
|
|
62
62
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == 'dev'
|
|
63
63
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
64
64
|
Requires-Dist: pytest-mock>=3.14.1; extra == 'dev'
|
|
65
65
|
Requires-Dist: pytest>=8.4.1; extra == 'dev'
|
|
66
|
-
Requires-Dist: ruff>=0.
|
|
66
|
+
Requires-Dist: ruff>=0.5.0; extra == 'dev'
|
|
67
67
|
Requires-Dist: types-psutil>=5.9.0; extra == 'dev'
|
|
68
68
|
Provides-Extra: full
|
|
69
|
-
Requires-Dist: anyio>=4.
|
|
69
|
+
Requires-Dist: anyio>=4.0.0; extra == 'full'
|
|
70
70
|
Requires-Dist: black>=24.0.0; extra == 'full'
|
|
71
|
-
Requires-Dist: httpx
|
|
71
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == 'full'
|
|
72
72
|
Requires-Dist: isort>=5.13.0; extra == 'full'
|
|
73
73
|
Requires-Dist: mcp>=1.12.2; extra == 'full'
|
|
74
74
|
Requires-Dist: memory-profiler>=0.61.0; extra == 'full'
|
|
75
75
|
Requires-Dist: mypy>=1.17.0; extra == 'full'
|
|
76
76
|
Requires-Dist: pre-commit>=3.0.0; extra == 'full'
|
|
77
|
-
Requires-Dist: psutil
|
|
78
|
-
Requires-Dist: pydantic-settings>=2.
|
|
79
|
-
Requires-Dist: pydantic>=2.
|
|
77
|
+
Requires-Dist: psutil<6,>=5.9.6; extra == 'full'
|
|
78
|
+
Requires-Dist: pydantic-settings>=2.2.1; extra == 'full'
|
|
79
|
+
Requires-Dist: pydantic>=2.5.0; extra == 'full'
|
|
80
80
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == 'full'
|
|
81
81
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'full'
|
|
82
82
|
Requires-Dist: pytest-mock>=3.14.1; extra == 'full'
|
|
83
83
|
Requires-Dist: pytest>=8.4.1; extra == 'full'
|
|
84
|
-
Requires-Dist: ruff>=0.
|
|
84
|
+
Requires-Dist: ruff>=0.5.0; extra == 'full'
|
|
85
85
|
Requires-Dist: tree-sitter-c>=0.20.0; extra == 'full'
|
|
86
86
|
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'full'
|
|
87
87
|
Requires-Dist: tree-sitter-go>=0.20.0; extra == 'full'
|
|
@@ -98,11 +98,11 @@ Requires-Dist: tree-sitter-java>=0.23.5; extra == 'java'
|
|
|
98
98
|
Provides-Extra: javascript
|
|
99
99
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'javascript'
|
|
100
100
|
Provides-Extra: mcp
|
|
101
|
-
Requires-Dist: anyio>=4.
|
|
102
|
-
Requires-Dist: httpx
|
|
101
|
+
Requires-Dist: anyio>=4.0.0; extra == 'mcp'
|
|
102
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == 'mcp'
|
|
103
103
|
Requires-Dist: mcp>=1.12.2; extra == 'mcp'
|
|
104
|
-
Requires-Dist: pydantic-settings>=2.
|
|
105
|
-
Requires-Dist: pydantic>=2.
|
|
104
|
+
Requires-Dist: pydantic-settings>=2.2.1; extra == 'mcp'
|
|
105
|
+
Requires-Dist: pydantic>=2.5.0; extra == 'mcp'
|
|
106
106
|
Provides-Extra: popular
|
|
107
107
|
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'popular'
|
|
108
108
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'popular'
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tree-sitter-analyzer"
|
|
7
|
-
version = "0.9.
|
|
7
|
+
version = "0.9.3"
|
|
8
8
|
description = "Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -105,10 +105,10 @@ all-languages = [
|
|
|
105
105
|
# MCP server support
|
|
106
106
|
mcp = [
|
|
107
107
|
"mcp>=1.12.2",
|
|
108
|
-
"anyio>=4.
|
|
109
|
-
"httpx>=0.
|
|
110
|
-
"pydantic>=2.
|
|
111
|
-
"pydantic-settings>=2.
|
|
108
|
+
"anyio>=4.0.0",
|
|
109
|
+
"httpx>=0.27.0,<1.0.0",
|
|
110
|
+
"pydantic>=2.5.0",
|
|
111
|
+
"pydantic-settings>=2.2.1",
|
|
112
112
|
]
|
|
113
113
|
|
|
114
114
|
# Development dependencies
|
|
@@ -118,12 +118,12 @@ dev = [
|
|
|
118
118
|
"pytest-asyncio>=1.1.0",
|
|
119
119
|
"pytest-mock>=3.14.1",
|
|
120
120
|
"black>=24.0.0",
|
|
121
|
-
"ruff>=0.
|
|
121
|
+
"ruff>=0.5.0",
|
|
122
122
|
"mypy>=1.17.0",
|
|
123
123
|
"isort>=5.13.0",
|
|
124
124
|
"types-psutil>=5.9.0",
|
|
125
125
|
"memory-profiler>=0.61.0",
|
|
126
|
-
"psutil>=
|
|
126
|
+
"psutil>=5.9.6,<6",
|
|
127
127
|
"pre-commit>=3.0.0",
|
|
128
128
|
]
|
|
129
129
|
|
|
@@ -354,7 +354,6 @@ skips = ["B101", "B601"]
|
|
|
354
354
|
dev = [
|
|
355
355
|
"build>=1.2.2.post1",
|
|
356
356
|
"pre-commit>=4.2.0",
|
|
357
|
-
"ruff>=0.
|
|
358
|
-
"twine>=
|
|
359
|
-
"types-cachetools>=6.1.0.20250717",
|
|
357
|
+
"ruff>=0.5.0",
|
|
358
|
+
"twine>=4.0.2",
|
|
360
359
|
]
|
|
@@ -85,9 +85,8 @@ class BaseCommand(ABC):
|
|
|
85
85
|
if (not hasattr(self.args, "table") or not self.args.table) and (
|
|
86
86
|
not hasattr(self.args, "quiet") or not self.args.quiet
|
|
87
87
|
):
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
)
|
|
88
|
+
# Language auto-detected - only show in verbose mode
|
|
89
|
+
pass
|
|
91
90
|
|
|
92
91
|
# Language support validation
|
|
93
92
|
if not is_language_supported(target_language):
|
|
@@ -215,9 +215,7 @@ def handle_special_commands(args: argparse.Namespace) -> int | None:
|
|
|
215
215
|
return 1
|
|
216
216
|
|
|
217
217
|
if args.end_line and args.end_line < args.start_line:
|
|
218
|
-
output_error(
|
|
219
|
-
"--end-line must be greater than or equal to --start-line"
|
|
220
|
-
)
|
|
218
|
+
output_error("--end-line must be greater than or equal to --start-line")
|
|
221
219
|
return 1
|
|
222
220
|
|
|
223
221
|
if args.start_column is not None and args.start_column < 0:
|
|
@@ -256,10 +254,16 @@ def main() -> None:
|
|
|
256
254
|
|
|
257
255
|
if "--quiet" in sys.argv:
|
|
258
256
|
os.environ["LOG_LEVEL"] = "ERROR"
|
|
257
|
+
else:
|
|
258
|
+
# Set default log level to WARNING to reduce output
|
|
259
|
+
os.environ.setdefault("LOG_LEVEL", "WARNING")
|
|
259
260
|
|
|
260
261
|
parser = create_argument_parser()
|
|
261
262
|
args = parser.parse_args()
|
|
262
263
|
|
|
264
|
+
# Configure default logging levels to reduce output
|
|
265
|
+
logging.getLogger("tree_sitter_analyzer.performance").setLevel(logging.ERROR)
|
|
266
|
+
|
|
263
267
|
# Configure logging for table output
|
|
264
268
|
if hasattr(args, "table") and args.table:
|
|
265
269
|
logging.getLogger().setLevel(logging.ERROR)
|
|
@@ -15,7 +15,7 @@ Roo Code compliance:
|
|
|
15
15
|
import hashlib
|
|
16
16
|
import threading
|
|
17
17
|
from dataclasses import dataclass
|
|
18
|
-
from typing import Any,
|
|
18
|
+
from typing import Any, Optional, Protocol
|
|
19
19
|
|
|
20
20
|
from ..models import AnalysisResult
|
|
21
21
|
from ..plugins.base import LanguagePlugin as BaseLanguagePlugin
|
|
@@ -204,7 +204,7 @@ class UnifiedAnalysisEngine:
|
|
|
204
204
|
_performance_monitor: Performance monitor
|
|
205
205
|
"""
|
|
206
206
|
|
|
207
|
-
_instances:
|
|
207
|
+
_instances: dict[str, "UnifiedAnalysisEngine"] = {}
|
|
208
208
|
_lock: threading.Lock = threading.Lock()
|
|
209
209
|
|
|
210
210
|
def __new__(cls, project_root: str = None) -> "UnifiedAnalysisEngine":
|
|
@@ -238,18 +238,20 @@ class UnifiedAnalysisEngine:
|
|
|
238
238
|
|
|
239
239
|
self._initialized = True
|
|
240
240
|
|
|
241
|
-
|
|
241
|
+
log_debug(
|
|
242
|
+
f"UnifiedAnalysisEngine initialized with project root: {project_root}"
|
|
243
|
+
)
|
|
242
244
|
|
|
243
245
|
def _load_plugins(self) -> None:
|
|
244
246
|
"""Auto-load available plugins"""
|
|
245
|
-
|
|
247
|
+
log_debug("Loading plugins using PluginManager...")
|
|
246
248
|
|
|
247
249
|
try:
|
|
248
250
|
# PluginManagerの自動ロード機能を使用
|
|
249
251
|
loaded_plugins = self._plugin_manager.load_plugins()
|
|
250
252
|
|
|
251
253
|
final_languages = [plugin.get_language_name() for plugin in loaded_plugins]
|
|
252
|
-
|
|
254
|
+
log_debug(
|
|
253
255
|
f"Successfully loaded {len(final_languages)} language plugins: {', '.join(final_languages)}"
|
|
254
256
|
)
|
|
255
257
|
except Exception as e:
|
|
@@ -272,12 +274,16 @@ class UnifiedAnalysisEngine:
|
|
|
272
274
|
UnsupportedLanguageError: When language is not supported
|
|
273
275
|
FileNotFoundError: When file is not found
|
|
274
276
|
"""
|
|
275
|
-
|
|
277
|
+
log_debug(f"Starting analysis for {request.file_path}")
|
|
276
278
|
|
|
277
279
|
# Security validation
|
|
278
|
-
is_valid, error_msg = self._security_validator.validate_file_path(
|
|
280
|
+
is_valid, error_msg = self._security_validator.validate_file_path(
|
|
281
|
+
request.file_path
|
|
282
|
+
)
|
|
279
283
|
if not is_valid:
|
|
280
|
-
log_error(
|
|
284
|
+
log_error(
|
|
285
|
+
f"Security validation failed for file path: {request.file_path} - {error_msg}"
|
|
286
|
+
)
|
|
281
287
|
raise ValueError(f"Invalid file path: {error_msg}")
|
|
282
288
|
|
|
283
289
|
# Cache check (shared across CLI/MCP)
|
|
@@ -341,7 +347,9 @@ class UnifiedAnalysisEngine:
|
|
|
341
347
|
# Security validation
|
|
342
348
|
is_valid, error_msg = self._security_validator.validate_file_path(file_path)
|
|
343
349
|
if not is_valid:
|
|
344
|
-
log_error(
|
|
350
|
+
log_error(
|
|
351
|
+
f"Security validation failed for file path: {file_path} - {error_msg}"
|
|
352
|
+
)
|
|
345
353
|
raise ValueError(f"Invalid file path: {error_msg}")
|
|
346
354
|
|
|
347
355
|
request = AnalysisRequest(
|
{tree_sitter_analyzer-0.9.2 → tree_sitter_analyzer-0.9.3}/tree_sitter_analyzer/interfaces/cli.py
RENAMED
|
@@ -54,7 +54,7 @@ For more information, visit: https://github.com/aimasteracc/tree-sitter-analyzer
|
|
|
54
54
|
|
|
55
55
|
# Global options
|
|
56
56
|
parser.add_argument(
|
|
57
|
-
"--version", action="version", version="tree-sitter-analyzer 0.
|
|
57
|
+
"--version", action="version", version="tree-sitter-analyzer 0.9.3"
|
|
58
58
|
)
|
|
59
59
|
parser.add_argument(
|
|
60
60
|
"--verbose", "-v", action="store_true", help="Enable verbose output"
|
|
@@ -53,7 +53,7 @@ class CLIAdapter:
|
|
|
53
53
|
"""
|
|
54
54
|
try:
|
|
55
55
|
self._engine = UnifiedAnalysisEngine()
|
|
56
|
-
logger.
|
|
56
|
+
logger.debug("CLIAdapter initialized successfully")
|
|
57
57
|
except Exception as e:
|
|
58
58
|
logger.error(f"Failed to initialize CLIAdapter: {e}")
|
|
59
59
|
raise
|
|
@@ -111,7 +111,7 @@ class CLIAdapter:
|
|
|
111
111
|
|
|
112
112
|
# パフォーマンスログ
|
|
113
113
|
elapsed_time = time.time() - start_time
|
|
114
|
-
logger.
|
|
114
|
+
logger.debug(f"CLI analysis completed: {file_path} in {elapsed_time:.3f}s")
|
|
115
115
|
|
|
116
116
|
return result
|
|
117
117
|
|
|
@@ -251,7 +251,7 @@ class CLIAdapter:
|
|
|
251
251
|
>>> adapter.clear_cache()
|
|
252
252
|
"""
|
|
253
253
|
self._engine.clear_cache()
|
|
254
|
-
logger.
|
|
254
|
+
logger.debug("CLI adapter cache cleared")
|
|
255
255
|
|
|
256
256
|
def get_cache_stats(self) -> dict[str, Any]:
|
|
257
257
|
"""
|