tree-sitter-analyzer 1.3.5__tar.gz → 1.3.7__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.

Files changed (157) hide show
  1. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/CHANGELOG.md +36 -0
  2. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/PKG-INFO +10 -10
  3. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/README.md +9 -9
  4. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/README_ja.md +6 -6
  5. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/README_zh.md +6 -6
  6. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/pyproject.toml +2 -2
  7. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/__init__.py +1 -1
  8. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +19 -10
  9. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +23 -2
  10. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/uv.lock +1 -1
  11. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.gitattributes +0 -0
  12. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.gitignore +0 -0
  13. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.kiro/steering/product.md +0 -0
  14. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.kiro/steering/structure.md +0 -0
  15. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.kiro/steering/tech.md +0 -0
  16. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.pre-commit-config.yaml +0 -0
  17. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/.pre-commit-hooks.yaml +0 -0
  18. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/AI_COLLABORATION_GUIDE.md +0 -0
  19. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/CODE_STYLE_GUIDE.md +0 -0
  20. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/CONTRIBUTING.md +0 -0
  21. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/DEPLOYMENT_GUIDE.md +0 -0
  22. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/GITFLOW.md +0 -0
  23. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/GITFLOW_ja.md +0 -0
  24. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/GITFLOW_zh.md +0 -0
  25. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/LANGUAGE_GUIDELINES.md +0 -0
  26. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/LLM_CODING_GUIDELINES.md +0 -0
  27. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/MCP_SETUP_DEVELOPERS.md +0 -0
  28. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/MCP_SETUP_USERS.md +0 -0
  29. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/PROJECT_ROOT_CONFIG.md +0 -0
  30. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/PYPI_RELEASE_GUIDE.md +0 -0
  31. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/REFACTORING_SUMMARY.md +0 -0
  32. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/build_standalone.py +0 -0
  33. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/check_quality.py +0 -0
  34. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
  35. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
  36. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/docs/api.md +0 -0
  37. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/docs/mcp_fd_rg_design.md +0 -0
  38. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/BigService.java +0 -0
  39. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/BigService.json +0 -0
  40. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/BigService.summary.json +0 -0
  41. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/JavaDocTest.java +0 -0
  42. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/MultiClass.java +0 -0
  43. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/Sample.java +0 -0
  44. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/cache_demo.py +0 -0
  45. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/calculate_token_comparison.py +0 -0
  46. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/project_root_demo.py +0 -0
  47. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/sample.py +0 -0
  48. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/security_demo.py +0 -0
  49. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/security_integration_demo.py +0 -0
  50. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/smart_cache_demo.py +0 -0
  51. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/examples/total_only_optimization_demo.py +0 -0
  52. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/llm_code_checker.py +0 -0
  53. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/pypirc_example.txt +0 -0
  54. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/pytest.ini +0 -0
  55. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/scripts/README.md +0 -0
  56. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/scripts/gitflow_helper.py +0 -0
  57. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/scripts/gitflow_release_automation.py +0 -0
  58. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/scripts/sync_version.py +0 -0
  59. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/scripts/sync_version_minimal.py +0 -0
  60. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/start_mcp_server.py +0 -0
  61. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/01_onboarding.md +0 -0
  62. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/02_architecture_map.md +0 -0
  63. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/03_cli_cheatsheet.md +0 -0
  64. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/04_mcp_cheatsheet.md +0 -0
  65. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/05_plugin_tutorial.md +0 -0
  66. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/06_quality_workflow.md +0 -0
  67. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/07_troubleshooting.md +0 -0
  68. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/08_prompt_library.md +0 -0
  69. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/09_tasks.md +0 -0
  70. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/10_glossary.md +0 -0
  71. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/11_takeover_plan.md +0 -0
  72. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
  73. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/IMPROVEMENT_SUMMARY.md +0 -0
  74. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/training/README.md +0 -0
  75. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/__main__.py +0 -0
  76. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/api.py +0 -0
  77. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/__init__.py +0 -0
  78. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/__main__.py +0 -0
  79. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
  80. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
  81. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
  82. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
  83. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
  84. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
  85. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
  86. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
  87. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
  88. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli/info_commands.py +0 -0
  89. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/cli_main.py +0 -0
  90. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/constants.py +0 -0
  91. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/__init__.py +0 -0
  92. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
  93. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/cache_service.py +0 -0
  94. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/engine.py +0 -0
  95. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/parser.py +0 -0
  96. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/query.py +0 -0
  97. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/query_filter.py +0 -0
  98. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/core/query_service.py +0 -0
  99. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/encoding_utils.py +0 -0
  100. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/exceptions.py +0 -0
  101. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/file_handler.py +0 -0
  102. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/formatters/__init__.py +0 -0
  103. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
  104. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
  105. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
  106. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
  107. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
  108. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/interfaces/cli.py +0 -0
  109. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
  110. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
  111. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
  112. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/language_detector.py +0 -0
  113. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/language_loader.py +0 -0
  114. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/languages/__init__.py +0 -0
  115. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
  116. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
  117. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
  118. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/__init__.py +0 -0
  119. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
  120. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
  121. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
  122. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/server.py +0 -0
  123. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
  124. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
  125. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
  126. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
  127. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
  128. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
  129. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
  130. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
  131. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
  132. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
  133. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
  134. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
  135. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
  136. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
  137. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
  138. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/models.py +0 -0
  139. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/output_manager.py +0 -0
  140. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/plugins/__init__.py +0 -0
  141. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/plugins/base.py +0 -0
  142. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/plugins/manager.py +0 -0
  143. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/project_detector.py +0 -0
  144. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/queries/__init__.py +0 -0
  145. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/queries/java.py +0 -0
  146. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/queries/javascript.py +0 -0
  147. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/queries/python.py +0 -0
  148. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/queries/typescript.py +0 -0
  149. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/query_loader.py +0 -0
  150. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/security/__init__.py +0 -0
  151. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
  152. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/security/regex_checker.py +0 -0
  153. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/security/validator.py +0 -0
  154. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/table_formatter.py +0 -0
  155. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/tree_sitter_analyzer/utils.py +0 -0
  156. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/upload_interactive.py +0 -0
  157. {tree_sitter_analyzer-1.3.5 → tree_sitter_analyzer-1.3.7}/upload_to_pypi.py +0 -0
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.7] - 2025-01-15
4
+
5
+ ### Fixed
6
+ - **🔍 Search Content Files Parameter Bug**: Fixed critical issue where `search_content` tool with `files` parameter would search all files in parent directory instead of only specified files
7
+ - **🎯 File Filtering**: Added glob pattern filtering to restrict search scope to exactly the files specified in the `files` parameter
8
+ - **🛡️ Special Character Handling**: Properly escape special characters in filenames for glob pattern matching
9
+
10
+ ### Technical Details
11
+ - **Root Cause**: When using `files` parameter, the tool was extracting parent directories as search roots but not filtering the search to only the specified files
12
+ - **Solution**: Added file-specific glob patterns to `include_globs` parameter to restrict ripgrep search scope
13
+ - **Impact**: `search_content` tool now correctly searches only the files specified in the `files` parameter
14
+ - **Files Modified**: `tree_sitter_analyzer/mcp/tools/search_content_tool.py`
15
+
16
+ This hotfix resolves a critical bug that was causing incorrect search results when using the `files` parameter in the `search_content` tool.
17
+
18
+ ## [1.3.6] - 2025-09-17
19
+
20
+ ### Fixed
21
+ - **🔧 CI/CD Cross-Platform Compatibility**: Resolved CI test failures across multiple platforms and environments
22
+ - **🍎 macOS Path Resolution**: Fixed symbolic link path handling in test assertions for macOS compatibility
23
+ - **🎯 Code Quality**: Addressed Black formatting inconsistencies and Ruff linting issues across different environments
24
+ - **⚙️ Test Logic**: Improved test parameter validation and file verification logic in MCP tools
25
+
26
+ ### Technical Details
27
+ - **Root Cause**: Multiple CI failures due to environment-specific differences in path handling, code formatting, and test logic
28
+ - **Solutions Implemented**:
29
+ - Fixed `max_count` parameter clamping logic in `SearchContentTool`
30
+ - Added comprehensive file/roots validation in `validate_arguments` methods
31
+ - Resolved `Path` import scope issues in `FindAndGrepTool`
32
+ - Implemented robust macOS symbolic link path resolution in test assertions
33
+ - Fixed Black formatting consistency issues in `scripts/sync_version.py`
34
+ - **Impact**: All CI tests now pass consistently across Ubuntu, Windows, and macOS platforms
35
+ - **Test Statistics**: 1794 tests, 74.77% coverage
36
+
37
+ This release ensures robust cross-platform compatibility and resolves all CI/CD pipeline issues that were blocking the development workflow.
38
+
3
39
  ## [1.3.4] - 2025-01-15
4
40
 
5
41
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tree-sitter-analyzer
3
- Version: 1.3.5
3
+ Version: 1.3.7
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
@@ -163,11 +163,11 @@ Description-Content-Type: text/markdown
163
163
 
164
164
  [![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
165
165
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
166
- [![Tests](https://img.shields.io/badge/tests-1699%20passed-brightgreen.svg)](#quality-assurance)
167
- [![Coverage](https://img.shields.io/badge/coverage-74.42%25-green.svg)](#quality-assurance)
166
+ [![Tests](https://img.shields.io/badge/tests-1794%20passed-brightgreen.svg)](#quality-assurance)
167
+ [![Coverage](https://img.shields.io/badge/coverage-74.77%25-green.svg)](#quality-assurance)
168
168
  [![Quality](https://img.shields.io/badge/quality-enterprise%20grade-blue.svg)](#quality-assurance)
169
169
  [![PyPI](https://img.shields.io/pypi/v/tree-sitter-analyzer.svg)](https://pypi.org/project/tree-sitter-analyzer/)
170
- [![Version](https://img.shields.io/badge/version-1.3.5-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
170
+ [![Version](https://img.shields.io/badge/version-1.3.6-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
171
171
  [![GitHub Stars](https://img.shields.io/github/stars/aimasteracc/tree-sitter-analyzer.svg?style=social)](https://github.com/aimasteracc/tree-sitter-analyzer)
172
172
 
173
173
  ## 🚀 Break LLM Token Limits, Let AI Understand Code Files of Any Size
@@ -915,16 +915,16 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
915
915
  ## 🏆 Quality Assurance
916
916
 
917
917
  ### 📊 **Quality Metrics**
918
- - **1,514 tests** - 100% pass rate ✅
919
- - **74.24% code coverage** - Industry-leading level
918
+ - **1,794 tests** - 100% pass rate ✅
919
+ - **74.77% code coverage** - Industry-leading level
920
920
  - **Zero test failures** - Fully CI/CD ready
921
921
  - **Cross-platform compatibility** - Windows, macOS, Linux
922
922
 
923
- ### ⚡ **Latest Quality Achievements (v1.3.5)**
923
+ ### ⚡ **Latest Quality Achievements (v1.3.6)**
924
924
  - ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
925
925
  - ✅ **Windows environment** - Implemented robust path normalization using Windows API
926
926
  - ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
927
- - ✅ **Comprehensive test coverage** - 1699 tests, 74.42% coverage
927
+ - ✅ **Comprehensive test coverage** - 1794 tests, 74.77% coverage
928
928
  - ✅ **GitFlow implementation** - Professional development/release branch strategy. See [GitFlow documentation](GITFLOW.md) for details.
929
929
 
930
930
  ### ⚙️ **Running Tests**
@@ -1041,9 +1041,9 @@ All AI prompts in this document have been thoroughly tested in real environments
1041
1041
 
1042
1042
  **Test Environment:**
1043
1043
  - Operating System: Windows 10
1044
- - Project: tree-sitter-analyzer v1.3.5
1044
+ - Project: tree-sitter-analyzer v1.3.6
1045
1045
  - Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
1046
- - Test Coverage: 1699 tests passed, 74.42% coverage
1046
+ - Test Coverage: 1794 tests passed, 74.77% coverage
1047
1047
  - Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
1048
1048
 
1049
1049
  **🚀 Start Now** → [30-Second Quick Start](#-30-second-quick-start)
@@ -2,11 +2,11 @@
2
2
 
3
3
  [![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
4
4
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
- [![Tests](https://img.shields.io/badge/tests-1699%20passed-brightgreen.svg)](#quality-assurance)
6
- [![Coverage](https://img.shields.io/badge/coverage-74.42%25-green.svg)](#quality-assurance)
5
+ [![Tests](https://img.shields.io/badge/tests-1794%20passed-brightgreen.svg)](#quality-assurance)
6
+ [![Coverage](https://img.shields.io/badge/coverage-74.77%25-green.svg)](#quality-assurance)
7
7
  [![Quality](https://img.shields.io/badge/quality-enterprise%20grade-blue.svg)](#quality-assurance)
8
8
  [![PyPI](https://img.shields.io/pypi/v/tree-sitter-analyzer.svg)](https://pypi.org/project/tree-sitter-analyzer/)
9
- [![Version](https://img.shields.io/badge/version-1.3.5-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
9
+ [![Version](https://img.shields.io/badge/version-1.3.6-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
10
10
  [![GitHub Stars](https://img.shields.io/github/stars/aimasteracc/tree-sitter-analyzer.svg?style=social)](https://github.com/aimasteracc/tree-sitter-analyzer)
11
11
 
12
12
  ## 🚀 Break LLM Token Limits, Let AI Understand Code Files of Any Size
@@ -754,16 +754,16 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
754
754
  ## 🏆 Quality Assurance
755
755
 
756
756
  ### 📊 **Quality Metrics**
757
- - **1,514 tests** - 100% pass rate ✅
758
- - **74.24% code coverage** - Industry-leading level
757
+ - **1,794 tests** - 100% pass rate ✅
758
+ - **74.77% code coverage** - Industry-leading level
759
759
  - **Zero test failures** - Fully CI/CD ready
760
760
  - **Cross-platform compatibility** - Windows, macOS, Linux
761
761
 
762
- ### ⚡ **Latest Quality Achievements (v1.3.5)**
762
+ ### ⚡ **Latest Quality Achievements (v1.3.6)**
763
763
  - ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
764
764
  - ✅ **Windows environment** - Implemented robust path normalization using Windows API
765
765
  - ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
766
- - ✅ **Comprehensive test coverage** - 1699 tests, 74.42% coverage
766
+ - ✅ **Comprehensive test coverage** - 1794 tests, 74.77% coverage
767
767
  - ✅ **GitFlow implementation** - Professional development/release branch strategy. See [GitFlow documentation](GITFLOW.md) for details.
768
768
 
769
769
  ### ⚙️ **Running Tests**
@@ -880,9 +880,9 @@ All AI prompts in this document have been thoroughly tested in real environments
880
880
 
881
881
  **Test Environment:**
882
882
  - Operating System: Windows 10
883
- - Project: tree-sitter-analyzer v1.3.5
883
+ - Project: tree-sitter-analyzer v1.3.6
884
884
  - Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
885
- - Test Coverage: 1699 tests passed, 74.42% coverage
885
+ - Test Coverage: 1794 tests passed, 74.77% coverage
886
886
  - Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
887
887
 
888
888
  **🚀 Start Now** → [30-Second Quick Start](#-30-second-quick-start)
@@ -3,10 +3,10 @@
3
3
  [![Pythonバージョン](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
4
4
  [![ライセンス](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
5
  [![テスト](https://img.shields.io/badge/tests-1699%20passed-brightgreen.svg)](#品質保証)
6
- [![カバレッジ](https://img.shields.io/badge/coverage-74.42%25-green.svg)](#品質保証)
6
+ [![カバレッジ](https://img.shields.io/badge/coverage-74.77%25-green.svg)](#品質保証)
7
7
  [![品質](https://img.shields.io/badge/quality-enterprise%20grade-blue.svg)](#品質保証)
8
8
  [![PyPI](https://img.shields.io/pypi/v/tree-sitter-analyzer.svg)](https://pypi.org/project/tree-sitter-analyzer/)
9
- [![バージョン](https://img.shields.io/badge/version-1.3.5-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
9
+ [![バージョン](https://img.shields.io/badge/version-1.3.6-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
10
10
  [![GitHub Stars](https://img.shields.io/github/stars/aimasteracc/tree-sitter-analyzer.svg?style=social)](https://github.com/aimasteracc/tree-sitter-analyzer)
11
11
 
12
12
  ## 🚀 LLMトークン制限を突破し、AIにあらゆるサイズのコードファイルを理解させる
@@ -743,15 +743,15 @@ Tree-sitter Analyzerは自動的にプロジェクト境界を検出・保護:
743
743
 
744
744
  ### 📊 **品質メトリクス**
745
745
  - **1,599テスト** - 100%合格率 ✅
746
- - **74.24%コードカバレッジ** - 業界最高レベル
746
+ - **74.77%コードカバレッジ** - 業界最高レベル
747
747
  - **ゼロテスト失敗** - 完全なCI/CD対応
748
748
  - **クロスプラットフォーム対応** - Windows、macOS、Linux
749
749
 
750
- ### ⚡ **最新の品質成果(v1.3.5)**
750
+ ### ⚡ **最新の品質成果(v1.3.6)**
751
751
  - ✅ **クロスプラットフォームパス互換性** - Windows短パス名とmacOSシンボリックリンクの違いを修正
752
752
  - ✅ **Windows環境** - Windows APIを使用した堅牢なパス正規化を実装
753
753
  - ✅ **macOS環境** - `/var`と`/private/var`シンボリックリンクの違いを修正
754
- - ✅ **包括的テストカバレッジ** - 1699テスト、74.42%カバレッジ
754
+ - ✅ **包括的テストカバレッジ** - 1794テスト、74.77%カバレッジ
755
755
  - ✅ **GitFlow実装** - 開発/リリースブランチの専門的なブランチ戦略。詳細は[GitFlowドキュメント](GITFLOW_ja.md)を参照してください。
756
756
 
757
757
  ### ⚙️ **テスト実行**
@@ -866,7 +866,7 @@ MITライセンス - 詳細は[LICENSE](LICENSE)ファイルをご覧くださ
866
866
 
867
867
  **テスト環境:**
868
868
  - オペレーティングシステム:Windows 10
869
- - プロジェクト:tree-sitter-analyzer v1.3.5
869
+ - プロジェクト:tree-sitter-analyzer v1.3.6
870
870
  - テストファイル:BigService.java (1419行)、sample.py (256行)、MultiClass.java (54行)
871
871
  - テストツール:すべてのMCPツール(check_code_scale、analyze_code_structure、extract_code_section、query_code)
872
872
 
@@ -3,10 +3,10 @@
3
3
  [![Python版本](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
4
4
  [![许可证](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
5
  [![测试](https://img.shields.io/badge/tests-1699%20passed-brightgreen.svg)](#质量保证)
6
- [![覆盖率](https://img.shields.io/badge/coverage-74.42%25-green.svg)](#质量保证)
6
+ [![覆盖率](https://img.shields.io/badge/coverage-74.77%25-green.svg)](#质量保证)
7
7
  [![质量](https://img.shields.io/badge/quality-enterprise%20grade-blue.svg)](#质量保证)
8
8
  [![PyPI](https://img.shields.io/pypi/v/tree-sitter-analyzer.svg)](https://pypi.org/project/tree-sitter-analyzer/)
9
- [![版本](https://img.shields.io/badge/version-1.3.5-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
9
+ [![版本](https://img.shields.io/badge/version-1.3.6-blue.svg)](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
10
10
  [![GitHub Stars](https://img.shields.io/github/stars/aimasteracc/tree-sitter-analyzer.svg?style=social)](https://github.com/aimasteracc/tree-sitter-analyzer)
11
11
 
12
12
  ## 🚀 突破LLM token限制,让AI理解任意大小的代码文件
@@ -743,15 +743,15 @@ Tree-sitter Analyzer自动检测和保护项目边界:
743
743
 
744
744
  ### 📊 **质量指标**
745
745
  - **1,599个测试** - 100%通过率 ✅
746
- - **74.24%代码覆盖率** - 行业领先水平
746
+ - **74.77%代码覆盖率** - 行业领先水平
747
747
  - **零测试失败** - 完全CI/CD就绪
748
748
  - **跨平台兼容** - Windows、macOS、Linux
749
749
 
750
- ### ⚡ **最新质量成就(v1.3.5)**
750
+ ### ⚡ **最新质量成就(v1.3.6)**
751
751
  - ✅ **跨平台路径兼容性** - 修复Windows短路径名称和macOS符号链接差异
752
752
  - ✅ **Windows环境** - 使用Windows API实现稳健的路径标准化
753
753
  - ✅ **macOS环境** - 修复`/var`与`/private/var`符号链接差异
754
- - ✅ **全面测试覆盖** - 1699个测试,74.42%覆盖率
754
+ - ✅ **全面测试覆盖** - 1794个测试,74.77%覆盖率
755
755
  - ✅ **GitFlow实现** - 专业的开发/发布分支策略。详见[GitFlow文档](GITFLOW_zh.md)。
756
756
 
757
757
  ### ⚙️ **运行测试**
@@ -867,7 +867,7 @@ MIT许可证 - 详见[LICENSE](LICENSE)文件。
867
867
 
868
868
  **测试环境:**
869
869
  - 操作系统:Windows 10
870
- - 项目:tree-sitter-analyzer v1.3.5
870
+ - 项目:tree-sitter-analyzer v1.3.6
871
871
  - 测试文件:BigService.java (1419行)、sample.py (256行)、MultiClass.java (54行)
872
872
  - 测试工具:所有MCP工具(check_code_scale、analyze_code_structure、extract_code_section、query_code)
873
873
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "tree-sitter-analyzer"
7
- version = "1.3.5"
7
+ version = "1.3.7"
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"
@@ -320,7 +320,7 @@ directory = "htmlcov"
320
320
  # MCP server configuration
321
321
  [tool.mcp]
322
322
  server_name = "tree-sitter-analyzer"
323
- server_version = "1.3.5"
323
+ server_version = "1.3.7"
324
324
  description = "Tree-sitter based code analysis MCP server with multi-language support"
325
325
  capabilities = [
326
326
  "check_code_scale",
@@ -11,7 +11,7 @@ Architecture:
11
11
  - Data Models: Generic and language-specific code element representations
12
12
  """
13
13
 
14
- __version__ = "1.3.5"
14
+ __version__ = "1.3.7"
15
15
  __author__ = "aisheng.yu"
16
16
  __email__ = "aimasteracc@gmail.com"
17
17
 
@@ -8,6 +8,7 @@ First narrow files with fd, then search contents with ripgrep, with caps & meta.
8
8
  from __future__ import annotations
9
9
 
10
10
  import logging
11
+ import pathlib
11
12
  import time
12
13
  from typing import Any
13
14
 
@@ -303,17 +304,19 @@ class FindAndGrepTool(BaseMCPTool):
303
304
  if sort_mode == "path":
304
305
  files.sort()
305
306
  elif sort_mode == "mtime":
306
- files.sort(
307
- key=lambda p: (
308
- Path(p).stat().st_mtime if Path(p).exists() else 0
309
- ),
310
- reverse=True,
311
- )
307
+
308
+ def get_mtime(p):
309
+ path_obj = pathlib.Path(p)
310
+ return path_obj.stat().st_mtime if path_obj.exists() else 0
311
+
312
+ files.sort(key=get_mtime, reverse=True)
312
313
  elif sort_mode == "size":
313
- files.sort(
314
- key=lambda p: Path(p).stat().st_size if Path(p).exists() else 0,
315
- reverse=True,
316
- )
314
+
315
+ def get_size(p):
316
+ path_obj = pathlib.Path(p)
317
+ return path_obj.stat().st_size if path_obj.exists() else 0
318
+
319
+ files.sort(key=get_size, reverse=True)
317
320
  except (OSError, ValueError): # nosec B110
318
321
  pass
319
322
 
@@ -424,6 +427,12 @@ class FindAndGrepTool(BaseMCPTool):
424
427
  group_by_file = arguments.get("group_by_file", False)
425
428
  if group_by_file and matches:
426
429
  grouped_result = fd_rg_utils.group_matches_by_file(matches)
430
+
431
+ # If summary_only is also requested, add summary to grouped result
432
+ if arguments.get("summary_only", False):
433
+ summary = fd_rg_utils.summarize_search_results(matches)
434
+ grouped_result["summary"] = summary
435
+
427
436
  grouped_result["meta"] = {
428
437
  "searched_file_count": searched_file_count,
429
438
  "truncated": (truncated_fd or truncated_rg),
@@ -225,6 +225,13 @@ class SearchContentTool(BaseMCPTool):
225
225
  v = arguments[key]
226
226
  if not isinstance(v, list) or not all(isinstance(x, str) for x in v):
227
227
  raise ValueError(f"{key} must be an array of strings")
228
+
229
+ # Validate roots and files if provided
230
+ if "roots" in arguments:
231
+ self._validate_roots(arguments["roots"])
232
+ if "files" in arguments:
233
+ self._validate_files(arguments["files"])
234
+
228
235
  return True
229
236
 
230
237
  def _determine_requested_format(self, arguments: dict[str, Any]) -> str:
@@ -309,22 +316,36 @@ class SearchContentTool(BaseMCPTool):
309
316
  max_count = fd_rg_utils.clamp_int(
310
317
  arguments.get("max_count"),
311
318
  fd_rg_utils.DEFAULT_RESULTS_LIMIT,
312
- fd_rg_utils.MAX_RESULTS_HARD_CAP,
319
+ fd_rg_utils.DEFAULT_RESULTS_LIMIT,
313
320
  )
314
321
  timeout_ms = arguments.get("timeout_ms")
315
322
 
316
323
  # Note: --files-from is not supported in this ripgrep version
317
324
  # For files mode, we'll search in the parent directories of the files
325
+ # and use glob patterns to restrict search to specific files
318
326
  if files:
319
327
  # Extract unique parent directories from file paths
320
328
  parent_dirs = set()
329
+ file_globs = []
321
330
  for file_path in files:
322
331
  resolved = self.path_resolver.resolve(file_path)
323
- parent_dirs.add(str(Path(resolved).parent))
332
+ parent_dir = str(Path(resolved).parent)
333
+ parent_dirs.add(parent_dir)
334
+
335
+ # Create glob pattern for this specific file
336
+ file_name = Path(resolved).name
337
+ # Escape special characters in filename for glob pattern
338
+ escaped_name = file_name.replace("[", "[[]").replace("]", "[]]")
339
+ file_globs.append(escaped_name)
324
340
 
325
341
  # Use parent directories as roots for compatibility
326
342
  roots = list(parent_dirs)
327
343
 
344
+ # Add file-specific glob patterns to include_globs
345
+ if not arguments.get("include_globs"):
346
+ arguments["include_globs"] = []
347
+ arguments["include_globs"].extend(file_globs)
348
+
328
349
  # Check for count-only mode (total_only also requires count mode)
329
350
  total_only = bool(arguments.get("total_only", False))
330
351
  count_only_matches = (
@@ -1495,7 +1495,7 @@ wheels = [
1495
1495
 
1496
1496
  [[package]]
1497
1497
  name = "tree-sitter-analyzer"
1498
- version = "1.3.5"
1498
+ version = "1.3.7"
1499
1499
  source = { editable = "." }
1500
1500
  dependencies = [
1501
1501
  { name = "cachetools" },