tree-sitter-analyzer 1.3.4__tar.gz → 1.3.6__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.4 → tree_sitter_analyzer-1.3.6}/CHANGELOG.md +21 -0
  2. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/GITFLOW.md +8 -0
  3. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/GITFLOW_ja.md +8 -0
  4. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/GITFLOW_zh.md +8 -0
  5. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/PKG-INFO +10 -10
  6. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/README.md +9 -9
  7. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/README_ja.md +7 -7
  8. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/README_zh.md +7 -7
  9. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/pyproject.toml +2 -2
  10. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/__init__.py +1 -1
  11. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +19 -10
  12. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +8 -1
  13. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/uv.lock +1 -1
  14. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.gitattributes +0 -0
  15. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.gitignore +0 -0
  16. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.kiro/steering/product.md +0 -0
  17. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.kiro/steering/structure.md +0 -0
  18. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.kiro/steering/tech.md +0 -0
  19. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.pre-commit-config.yaml +0 -0
  20. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/.pre-commit-hooks.yaml +0 -0
  21. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/AI_COLLABORATION_GUIDE.md +0 -0
  22. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/CODE_STYLE_GUIDE.md +0 -0
  23. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/CONTRIBUTING.md +0 -0
  24. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/DEPLOYMENT_GUIDE.md +0 -0
  25. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/LANGUAGE_GUIDELINES.md +0 -0
  26. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/LLM_CODING_GUIDELINES.md +0 -0
  27. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/MCP_SETUP_DEVELOPERS.md +0 -0
  28. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/MCP_SETUP_USERS.md +0 -0
  29. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/PROJECT_ROOT_CONFIG.md +0 -0
  30. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/PYPI_RELEASE_GUIDE.md +0 -0
  31. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/REFACTORING_SUMMARY.md +0 -0
  32. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/build_standalone.py +0 -0
  33. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/check_quality.py +0 -0
  34. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
  35. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
  36. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/docs/api.md +0 -0
  37. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/docs/mcp_fd_rg_design.md +0 -0
  38. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/BigService.java +0 -0
  39. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/BigService.json +0 -0
  40. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/BigService.summary.json +0 -0
  41. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/JavaDocTest.java +0 -0
  42. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/MultiClass.java +0 -0
  43. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/Sample.java +0 -0
  44. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/cache_demo.py +0 -0
  45. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/calculate_token_comparison.py +0 -0
  46. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/project_root_demo.py +0 -0
  47. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/sample.py +0 -0
  48. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/security_demo.py +0 -0
  49. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/security_integration_demo.py +0 -0
  50. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/smart_cache_demo.py +0 -0
  51. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/examples/total_only_optimization_demo.py +0 -0
  52. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/llm_code_checker.py +0 -0
  53. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/pypirc_example.txt +0 -0
  54. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/pytest.ini +0 -0
  55. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/scripts/README.md +0 -0
  56. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/scripts/gitflow_helper.py +0 -0
  57. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/scripts/gitflow_release_automation.py +0 -0
  58. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/scripts/sync_version.py +0 -0
  59. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/scripts/sync_version_minimal.py +0 -0
  60. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/start_mcp_server.py +0 -0
  61. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/01_onboarding.md +0 -0
  62. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/02_architecture_map.md +0 -0
  63. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/03_cli_cheatsheet.md +0 -0
  64. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/04_mcp_cheatsheet.md +0 -0
  65. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/05_plugin_tutorial.md +0 -0
  66. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/06_quality_workflow.md +0 -0
  67. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/07_troubleshooting.md +0 -0
  68. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/08_prompt_library.md +0 -0
  69. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/09_tasks.md +0 -0
  70. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/10_glossary.md +0 -0
  71. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/11_takeover_plan.md +0 -0
  72. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
  73. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/IMPROVEMENT_SUMMARY.md +0 -0
  74. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/training/README.md +0 -0
  75. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/__main__.py +0 -0
  76. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/api.py +0 -0
  77. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/__init__.py +0 -0
  78. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/__main__.py +0 -0
  79. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
  80. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
  81. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
  82. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
  83. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
  84. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
  85. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
  86. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
  87. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
  88. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli/info_commands.py +0 -0
  89. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/cli_main.py +0 -0
  90. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/constants.py +0 -0
  91. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/__init__.py +0 -0
  92. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
  93. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/cache_service.py +0 -0
  94. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/engine.py +0 -0
  95. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/parser.py +0 -0
  96. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/query.py +0 -0
  97. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/query_filter.py +0 -0
  98. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/core/query_service.py +0 -0
  99. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/encoding_utils.py +0 -0
  100. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/exceptions.py +0 -0
  101. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/file_handler.py +0 -0
  102. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/formatters/__init__.py +0 -0
  103. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
  104. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
  105. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
  106. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
  107. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
  108. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/interfaces/cli.py +0 -0
  109. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
  110. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
  111. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
  112. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/language_detector.py +0 -0
  113. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/language_loader.py +0 -0
  114. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/languages/__init__.py +0 -0
  115. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
  116. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
  117. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
  118. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/__init__.py +0 -0
  119. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
  120. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
  121. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
  122. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/server.py +0 -0
  123. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
  124. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
  125. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
  126. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
  127. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
  128. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
  129. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
  130. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
  131. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
  132. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
  133. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
  134. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
  135. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
  136. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
  137. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
  138. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/models.py +0 -0
  139. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/output_manager.py +0 -0
  140. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/plugins/__init__.py +0 -0
  141. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/plugins/base.py +0 -0
  142. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/plugins/manager.py +0 -0
  143. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/project_detector.py +0 -0
  144. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/queries/__init__.py +0 -0
  145. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/queries/java.py +0 -0
  146. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/queries/javascript.py +0 -0
  147. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/queries/python.py +0 -0
  148. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/queries/typescript.py +0 -0
  149. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/query_loader.py +0 -0
  150. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/security/__init__.py +0 -0
  151. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
  152. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/security/regex_checker.py +0 -0
  153. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/security/validator.py +0 -0
  154. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/table_formatter.py +0 -0
  155. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/tree_sitter_analyzer/utils.py +0 -0
  156. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/upload_interactive.py +0 -0
  157. {tree_sitter_analyzer-1.3.4 → tree_sitter_analyzer-1.3.6}/upload_to_pypi.py +0 -0
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.6] - 2025-09-17
4
+
5
+ ### Fixed
6
+ - **🔧 CI/CD Cross-Platform Compatibility**: Resolved CI test failures across multiple platforms and environments
7
+ - **🍎 macOS Path Resolution**: Fixed symbolic link path handling in test assertions for macOS compatibility
8
+ - **🎯 Code Quality**: Addressed Black formatting inconsistencies and Ruff linting issues across different environments
9
+ - **⚙️ Test Logic**: Improved test parameter validation and file verification logic in MCP tools
10
+
11
+ ### Technical Details
12
+ - **Root Cause**: Multiple CI failures due to environment-specific differences in path handling, code formatting, and test logic
13
+ - **Solutions Implemented**:
14
+ - Fixed `max_count` parameter clamping logic in `SearchContentTool`
15
+ - Added comprehensive file/roots validation in `validate_arguments` methods
16
+ - Resolved `Path` import scope issues in `FindAndGrepTool`
17
+ - Implemented robust macOS symbolic link path resolution in test assertions
18
+ - Fixed Black formatting consistency issues in `scripts/sync_version.py`
19
+ - **Impact**: All CI tests now pass consistently across Ubuntu, Windows, and macOS platforms
20
+ - **Test Statistics**: 1794 tests, 74.77% coverage
21
+
22
+ This release ensures robust cross-platform compatibility and resolves all CI/CD pipeline issues that were blocking the development workflow.
23
+
3
24
  ## [1.3.4] - 2025-01-15
4
25
 
5
26
  ### Fixed
@@ -108,6 +108,10 @@ For manual releases:
108
108
 
109
109
  3. **Update documentation**:
110
110
  ```bash
111
+ # Get current test count and coverage statistics:
112
+ # Test count: uv run python -m pytest --collect-only -q | findstr /C:"collected"
113
+ # Coverage: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
114
+
111
115
  # Update README.md with new version, test counts, and coverage:
112
116
  # - Version badges ([![Version](https://img.shields.io/badge/version-X.X.X-blue.svg)])
113
117
  # - Test count badges ([![Tests](https://img.shields.io/badge/tests-XXXX%20passed-brightgreen.svg)])
@@ -171,6 +175,10 @@ For manual releases:
171
175
 
172
176
  4. **Update documentation**:
173
177
  ```bash
178
+ # Get current test count and coverage statistics:
179
+ # Test count: uv run python -m pytest --collect-only -q | findstr /C:"collected"
180
+ # Coverage: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
181
+
174
182
  # Update CHANGELOG.md with hotfix details
175
183
  # Update README.md with new version, test counts, and coverage:
176
184
  # - Version badges ([![Version](https://img.shields.io/badge/version-X.X.X-blue.svg)])
@@ -88,6 +88,10 @@ gitGraph
88
88
  # __init__.py にバージョン番号を同期
89
89
  uv run python scripts/sync_version_minimal.py
90
90
 
91
+ # 現在のテスト数とカバレッジ統計を取得:
92
+ # テスト数: uv run python -m pytest --collect-only -q | findstr /C:"collected"
93
+ # カバレッジ: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
94
+
91
95
  # ドキュメントの更新:
92
96
  # - README.md のバージョン番号、テスト数、カバレッジを更新
93
97
  # - バージョンバッジ、テストバッジ、カバレッジバッジを更新
@@ -127,6 +131,10 @@ gitGraph
127
131
  # __init__.py にバージョン番号を同期
128
132
  uv run python scripts/sync_version_minimal.py
129
133
 
134
+ # 現在のテスト数とカバレッジ統計を取得:
135
+ # テスト数: uv run python -m pytest --collect-only -q | findstr /C:"collected"
136
+ # カバレッジ: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
137
+
130
138
  # ドキュメントの更新:
131
139
  # - CHANGELOG.md にホットフィックス詳細を更新
132
140
  # - README.md のバージョン番号、テスト数、カバレッジを更新
@@ -88,6 +88,10 @@ gitGraph
88
88
  # 同步版本号到 __init__.py
89
89
  uv run python scripts/sync_version_minimal.py
90
90
 
91
+ # 获取当前测试数量和覆盖率统计:
92
+ # 测试数量: uv run python -m pytest --collect-only -q | findstr /C:"collected"
93
+ # 覆盖率: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
94
+
91
95
  # 更新文档:
92
96
  # - 更新 README.md 中的版本号、测试数量和覆盖率
93
97
  # - 更新版本徽章、测试徽章、覆盖率徽章
@@ -127,6 +131,10 @@ gitGraph
127
131
  # 同步版本号到 __init__.py
128
132
  uv run python scripts/sync_version_minimal.py
129
133
 
134
+ # 获取当前测试数量和覆盖率统计:
135
+ # 测试数量: uv run python -m pytest --collect-only -q | findstr /C:"collected"
136
+ # 覆盖率: uv run python -m pytest --cov=tree_sitter_analyzer --cov-report=term-missing --cov-report=json -x -q | findstr "TOTAL"
137
+
130
138
  # 更新文档:
131
139
  # - 更新 CHANGELOG.md 添加 hotfix 详情
132
140
  # - 更新 README.md 中的版本号、测试数量和覆盖率
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tree-sitter-analyzer
3
- Version: 1.3.4
3
+ Version: 1.3.6
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-1605%20passed-brightgreen.svg)](#quality-assurance)
167
- [![Coverage](https://img.shields.io/badge/coverage-74.38%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.4-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.4)**
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** - 1605 tests, 74.38% 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.4
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: 1605 tests passed, 74.38% 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-1605%20passed-brightgreen.svg)](#quality-assurance)
6
- [![Coverage](https://img.shields.io/badge/coverage-74.38%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.4-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.4)**
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** - 1605 tests, 74.38% 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.4
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: 1605 tests passed, 74.38% 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)
@@ -2,11 +2,11 @@
2
2
 
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
- [![テスト](https://img.shields.io/badge/tests-1605%20passed-brightgreen.svg)](#品質保証)
6
- [![カバレッジ](https://img.shields.io/badge/coverage-74.38%25-green.svg)](#品質保証)
5
+ [![テスト](https://img.shields.io/badge/tests-1699%20passed-brightgreen.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.4-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.4)**
750
+ ### ⚡ **最新の品質成果(v1.3.6)**
751
751
  - ✅ **クロスプラットフォームパス互換性** - Windows短パス名とmacOSシンボリックリンクの違いを修正
752
752
  - ✅ **Windows環境** - Windows APIを使用した堅牢なパス正規化を実装
753
753
  - ✅ **macOS環境** - `/var`と`/private/var`シンボリックリンクの違いを修正
754
- - ✅ **包括的テストカバレッジ** - 1605テスト、74.38%カバレッジ
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.4
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
 
@@ -2,11 +2,11 @@
2
2
 
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
- [![测试](https://img.shields.io/badge/tests-1605%20passed-brightgreen.svg)](#质量保证)
6
- [![覆盖率](https://img.shields.io/badge/coverage-74.38%25-green.svg)](#质量保证)
5
+ [![测试](https://img.shields.io/badge/tests-1699%20passed-brightgreen.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.4-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.4)**
750
+ ### ⚡ **最新质量成就(v1.3.6)**
751
751
  - ✅ **跨平台路径兼容性** - 修复Windows短路径名称和macOS符号链接差异
752
752
  - ✅ **Windows环境** - 使用Windows API实现稳健的路径标准化
753
753
  - ✅ **macOS环境** - 修复`/var`与`/private/var`符号链接差异
754
- - ✅ **全面测试覆盖** - 1605个测试,74.38%覆盖率
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.4
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.4"
7
+ version = "1.3.6"
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.4"
323
+ server_version = "1.3.6"
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.4"
14
+ __version__ = "1.3.6"
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,7 +316,7 @@ 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
 
@@ -1495,7 +1495,7 @@ wheels = [
1495
1495
 
1496
1496
  [[package]]
1497
1497
  name = "tree-sitter-analyzer"
1498
- version = "1.3.4"
1498
+ version = "1.3.6"
1499
1499
  source = { editable = "." }
1500
1500
  dependencies = [
1501
1501
  { name = "cachetools" },