crackerjack 0.35.0__tar.gz → 0.35.1__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 crackerjack might be problematic. Click here for more details.

Files changed (398) hide show
  1. {crackerjack-0.35.0 → crackerjack-0.35.1}/.pre-commit-config.yaml +19 -15
  2. {crackerjack-0.35.0 → crackerjack-0.35.1}/CHANGELOG.md +6 -0
  3. {crackerjack-0.35.0 → crackerjack-0.35.1}/PKG-INFO +1 -1
  4. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/api.py +4 -4
  5. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/dynamic_config.py +12 -6
  6. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/server_core.py +34 -7
  7. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/server_manager.py +29 -8
  8. crackerjack-0.35.1/crackerjack/ui/__init__.py +1 -0
  9. crackerjack-0.35.1/crackerjack/ui/server_panels.py +126 -0
  10. {crackerjack-0.35.0 → crackerjack-0.35.1}/pyproject.toml +1 -1
  11. {crackerjack-0.35.0 → crackerjack-0.35.1}/uv.lock +1 -1
  12. {crackerjack-0.35.0 → crackerjack-0.35.1}/.github/FUNDING.yml +0 -0
  13. {crackerjack-0.35.0 → crackerjack-0.35.1}/.gitignore +0 -0
  14. {crackerjack-0.35.0 → crackerjack-0.35.1}/AGENTS.md +0 -0
  15. {crackerjack-0.35.0 → crackerjack-0.35.1}/CLAUDE.md +0 -0
  16. {crackerjack-0.35.0 → crackerjack-0.35.1}/LICENSE +0 -0
  17. {crackerjack-0.35.0 → crackerjack-0.35.1}/QWEN.md +0 -0
  18. {crackerjack-0.35.0 → crackerjack-0.35.1}/README.md +0 -0
  19. {crackerjack-0.35.0 → crackerjack-0.35.1}/RULES.md +0 -0
  20. {crackerjack-0.35.0 → crackerjack-0.35.1}/SECURITY.md +0 -0
  21. {crackerjack-0.35.0 → crackerjack-0.35.1}/ai/AGENT-CAPABILITIES.json +0 -0
  22. {crackerjack-0.35.0 → crackerjack-0.35.1}/ai/AGENT_SELECTION.md +0 -0
  23. {crackerjack-0.35.0 → crackerjack-0.35.1}/ai/AI-REFERENCE.md +0 -0
  24. {crackerjack-0.35.0 → crackerjack-0.35.1}/ai/ERROR-PATTERNS.yaml +0 -0
  25. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/__init__.py +0 -0
  26. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/__main__.py +0 -0
  27. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/adapters/__init__.py +0 -0
  28. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/adapters/lsp_client.py +0 -0
  29. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/adapters/rust_tool_adapter.py +0 -0
  30. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/adapters/rust_tool_manager.py +0 -0
  31. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/adapters/skylos_adapter.py +0 -0
  32. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/adapters/zuban_adapter.py +0 -0
  33. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/__init__.py +0 -0
  34. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/architect_agent.py +0 -0
  35. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/base.py +0 -0
  36. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/coordinator.py +0 -0
  37. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/documentation_agent.py +0 -0
  38. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/dry_agent.py +0 -0
  39. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/formatting_agent.py +0 -0
  40. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/import_optimization_agent.py +0 -0
  41. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/performance_agent.py +0 -0
  42. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/performance_helpers.py +0 -0
  43. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/proactive_agent.py +0 -0
  44. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/refactoring_agent.py +0 -0
  45. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/refactoring_helpers.py +0 -0
  46. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/security_agent.py +0 -0
  47. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/test_creation_agent.py +0 -0
  48. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/test_specialist_agent.py +0 -0
  49. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/agents/tracker.py +0 -0
  50. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/__init__.py +0 -0
  51. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/cache_handlers.py +0 -0
  52. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/cache_handlers_enhanced.py +0 -0
  53. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/facade.py +0 -0
  54. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/handlers.py +0 -0
  55. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/interactive.py +0 -0
  56. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/options.py +0 -0
  57. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/cli/utils.py +0 -0
  58. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/code_cleaner.py +0 -0
  59. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/config/__init__.py +0 -0
  60. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/config/global_lock_config.py +0 -0
  61. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/config/hooks.py +0 -0
  62. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/__init__.py +0 -0
  63. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/async_workflow_orchestrator.py +0 -0
  64. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/autofix_coordinator.py +0 -0
  65. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/container.py +0 -0
  66. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/enhanced_container.py +0 -0
  67. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/file_lifecycle.py +0 -0
  68. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/performance.py +0 -0
  69. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/performance_monitor.py +0 -0
  70. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/phase_coordinator.py +0 -0
  71. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/proactive_workflow.py +0 -0
  72. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/resource_manager.py +0 -0
  73. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/service_watchdog.py +0 -0
  74. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/session_coordinator.py +0 -0
  75. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/timeout_manager.py +0 -0
  76. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/websocket_lifecycle.py +0 -0
  77. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/core/workflow_orchestrator.py +0 -0
  78. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/docs/INDEX.md +0 -0
  79. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/docs/generated/api/API_REFERENCE.md +0 -0
  80. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/docs/generated/api/CLI_REFERENCE.md +0 -0
  81. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/docs/generated/api/CROSS_REFERENCES.md +0 -0
  82. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/docs/generated/api/PROTOCOLS.md +0 -0
  83. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/docs/generated/api/SERVICES.md +0 -0
  84. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/documentation/__init__.py +0 -0
  85. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/documentation/ai_templates.py +0 -0
  86. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/documentation/dual_output_generator.py +0 -0
  87. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/documentation/mkdocs_integration.py +0 -0
  88. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/documentation/reference_generator.py +0 -0
  89. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/errors.py +0 -0
  90. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/__init__.py +0 -0
  91. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/async_hook_executor.py +0 -0
  92. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/cached_hook_executor.py +0 -0
  93. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/hook_executor.py +0 -0
  94. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/hook_lock_manager.py +0 -0
  95. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/individual_hook_executor.py +0 -0
  96. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/lsp_aware_hook_executor.py +0 -0
  97. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/executors/tool_proxy.py +0 -0
  98. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/hooks/lsp_hook.py +0 -0
  99. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/intelligence/__init__.py +0 -0
  100. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/intelligence/adaptive_learning.py +0 -0
  101. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/intelligence/agent_orchestrator.py +0 -0
  102. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/intelligence/agent_registry.py +0 -0
  103. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/intelligence/agent_selector.py +0 -0
  104. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/intelligence/integration.py +0 -0
  105. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/interactive.py +0 -0
  106. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/__init__.py +0 -0
  107. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/async_hook_manager.py +0 -0
  108. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/hook_manager.py +0 -0
  109. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/publish_manager.py +0 -0
  110. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/test_command_builder.py +0 -0
  111. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/test_executor.py +0 -0
  112. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/test_manager.py +0 -0
  113. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/test_manager_backup.py +0 -0
  114. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/managers/test_progress.py +0 -0
  115. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/__init__.py +0 -0
  116. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/cache.py +0 -0
  117. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/client_runner.py +0 -0
  118. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/context.py +0 -0
  119. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/dashboard.py +0 -0
  120. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/enhanced_progress_monitor.py +0 -0
  121. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/enhanced_progress_monitor.tcss +0 -0
  122. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/file_monitor.py +0 -0
  123. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/progress_components.py +0 -0
  124. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/progress_monitor.py +0 -0
  125. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/progress_monitor.tcss +0 -0
  126. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/rate_limiter.py +0 -0
  127. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/server.py +0 -0
  128. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/service_watchdog.py +0 -0
  129. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/state.py +0 -0
  130. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/task_manager.py +0 -0
  131. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/__init__.py +0 -0
  132. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/core_tools.py +0 -0
  133. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/error_analyzer.py +0 -0
  134. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/execution_tools.py +0 -0
  135. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/execution_tools_backup.py +0 -0
  136. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/intelligence_tool_registry.py +0 -0
  137. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/intelligence_tools.py +0 -0
  138. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/monitoring_tools.py +0 -0
  139. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/monitoring_tools.py.backup +0 -0
  140. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/proactive_tools.py +0 -0
  141. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/progress_tools.py +0 -0
  142. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/utility_tools.py +0 -0
  143. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/tools/workflow_executor.py +0 -0
  144. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/__init__.py +0 -0
  145. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/app.py +0 -0
  146. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/endpoints.py +0 -0
  147. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/jobs.py +0 -0
  148. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/monitoring_endpoints.py +0 -0
  149. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/server.py +0 -0
  150. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket/websocket_handler.py +0 -0
  151. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mcp/websocket_server.py +0 -0
  152. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mixins/__init__.py +0 -0
  153. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/mixins/error_handling.py +0 -0
  154. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/models/__init__.py +0 -0
  155. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/models/config.py +0 -0
  156. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/models/config_adapter.py +0 -0
  157. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/models/protocols.py +0 -0
  158. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/models/resource_protocols.py +0 -0
  159. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/models/task.py +0 -0
  160. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/monitoring/__init__.py +0 -0
  161. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/monitoring/ai_agent_watchdog.py +0 -0
  162. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/monitoring/metrics_collector.py +0 -0
  163. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/monitoring/regression_prevention.py +0 -0
  164. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/monitoring/websocket_server.py +0 -0
  165. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/orchestration/__init__.py +0 -0
  166. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/orchestration/advanced_orchestrator.py +0 -0
  167. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/orchestration/coverage_improvement.py +0 -0
  168. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/orchestration/execution_strategies.py +0 -0
  169. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/orchestration/test_progress_streamer.py +0 -0
  170. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/plugins/__init__.py +0 -0
  171. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/plugins/base.py +0 -0
  172. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/plugins/hooks.py +0 -0
  173. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/plugins/loader.py +0 -0
  174. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/plugins/managers.py +0 -0
  175. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/pyproject.toml +0 -0
  176. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/security/__init__.py +0 -0
  177. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/security/audit.py +0 -0
  178. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/__init__.py +0 -0
  179. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/anomaly_detector.py +0 -0
  180. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/api_extractor.py +0 -0
  181. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/backup_service.py +0 -0
  182. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/bounded_status_operations.py +0 -0
  183. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/cache.py +0 -0
  184. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/changelog_automation.py +0 -0
  185. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/config.py +0 -0
  186. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/config_integrity.py +0 -0
  187. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/config_merge.py +0 -0
  188. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/config_template.py +0 -0
  189. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/contextual_ai_assistant.py +0 -0
  190. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/coverage_badge_service.py +0 -0
  191. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/coverage_ratchet.py +0 -0
  192. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/debug.py +0 -0
  193. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/dependency_analyzer.py +0 -0
  194. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/dependency_monitor.py +0 -0
  195. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/documentation_generator.py +0 -0
  196. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/documentation_service.py +0 -0
  197. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/enhanced_filesystem.py +0 -0
  198. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/enterprise_optimizer.py +0 -0
  199. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/error_pattern_analyzer.py +0 -0
  200. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/file_hasher.py +0 -0
  201. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/filesystem.py +0 -0
  202. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/git.py +0 -0
  203. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/health_metrics.py +0 -0
  204. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/heatmap_generator.py +0 -0
  205. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/initialization.py +0 -0
  206. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/input_validator.py +0 -0
  207. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/intelligent_commit.py +0 -0
  208. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/log_manager.py +0 -0
  209. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/logging.py +0 -0
  210. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/lsp_client.py +0 -0
  211. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/memory_optimizer.py +0 -0
  212. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/metrics.py +0 -0
  213. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/parallel_executor.py +0 -0
  214. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/pattern_cache.py +0 -0
  215. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/pattern_detector.py +0 -0
  216. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/performance_benchmarks.py +0 -0
  217. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/performance_cache.py +0 -0
  218. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/performance_monitor.py +0 -0
  219. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/predictive_analytics.py +0 -0
  220. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/quality_baseline.py +0 -0
  221. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/quality_baseline_enhanced.py +0 -0
  222. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/quality_intelligence.py +0 -0
  223. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/regex_patterns.py +0 -0
  224. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/regex_utils.py +0 -0
  225. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/secure_path_utils.py +0 -0
  226. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/secure_status_formatter.py +0 -0
  227. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/secure_subprocess.py +0 -0
  228. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/security.py +0 -0
  229. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/security_logger.py +0 -0
  230. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/smart_scheduling.py +0 -0
  231. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/status_authentication.py +0 -0
  232. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/status_security_manager.py +0 -0
  233. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/terminal_utils.py +0 -0
  234. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/thread_safe_status_collector.py +0 -0
  235. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/tool_version_service.py +0 -0
  236. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/unified_config.py +0 -0
  237. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/validation_rate_limiter.py +0 -0
  238. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/version_analyzer.py +0 -0
  239. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/version_checker.py +0 -0
  240. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/websocket_resource_limiter.py +0 -0
  241. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/services/zuban_lsp_service.py +0 -0
  242. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/slash_commands/__init__.py +0 -0
  243. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/slash_commands/init.md +0 -0
  244. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/slash_commands/run.md +0 -0
  245. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/slash_commands/status.md +0 -0
  246. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/tools/__init__.py +0 -0
  247. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/tools/fix_terminal.sh +0 -0
  248. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/tools/validate_input_validator_patterns.py +0 -0
  249. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/tools/validate_regex_patterns.py +0 -0
  250. {crackerjack-0.35.0 → crackerjack-0.35.1}/crackerjack/uv.lock +0 -0
  251. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/architecture/API_REFERENCE.md +0 -0
  252. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/architecture/ARCHITECTURE.md +0 -0
  253. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/archive/CONFIG_MANAGEMENT_REPLACEMENT_PLAN.md +0 -0
  254. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/archive/CONFIG_MERGE_REMOVAL_PLAN.md +0 -0
  255. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/archive/DOCUMENTATION_REORGANIZATION_PLAN.md +0 -0
  256. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/development/IDE-SETUP.md +0 -0
  257. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/development/RUST_TOOLING_FRAMEWORK.md +0 -0
  258. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/COMPLEXITY_REFACTORING_PLAN.md +0 -0
  259. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/COVERAGE_BADGE_IMPLEMENTATION_PLAN.md +0 -0
  260. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/CURRENT_IMPLEMENTATION_STATUS.md +0 -0
  261. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/DOCUMENTATION_SYSTEM_ARCHITECTURE.md +0 -0
  262. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/EXPERIMENTAL-EVALUATION.md +0 -0
  263. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/FEATURE_IMPLEMENTATION_PLAN.md +0 -0
  264. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_IMPLEMENTATION_SUMMARY.md +0 -0
  265. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_PLAN.md +0 -0
  266. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/STAGE_HEADERS_IMPLEMENTATION_PLAN.md +0 -0
  267. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/TIMEOUT_ARCHITECTURE_SOLUTION.md +0 -0
  268. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/TYPE_ANNOTATION_FIXING_PLAN.md +0 -0
  269. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/UVXUSAGE.md +0 -0
  270. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/ZUBAN_LSP_INTEGRATION_PLAN.md +0 -0
  271. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/planning/ZUBAN_TOML_PARSING_BUG_ANALYSIS.md +0 -0
  272. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/security/INPUT_VALIDATOR_SECURITY_AUDIT.md +0 -0
  273. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/security/SECURITY-AUDIT.md +0 -0
  274. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/security/SECURITY_AUDIT_REPORT.md +0 -0
  275. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/security/SECURITY_AUDIT_STATUS_DISCLOSURE.md +0 -0
  276. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/security/SECURITY_HARDENING_REPORT.md +0 -0
  277. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/security/SECURITY_SUBPROCESS_HARDENING_REPORT.md +0 -0
  278. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/systems/BACKUP_SYSTEM.md +0 -0
  279. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/systems/CACHING_SYSTEM.md +0 -0
  280. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/systems/DASHBOARD_ARCHITECTURE.md +0 -0
  281. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/systems/MCP_INTEGRATION.md +0 -0
  282. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/systems/MONITORING_INTEGRATION.md +0 -0
  283. {crackerjack-0.35.0 → crackerjack-0.35.1}/docs/systems/UNIFIED_MONITORING_ARCHITECTURE.md +0 -0
  284. {crackerjack-0.35.0 → crackerjack-0.35.1}/example.mcp.json +0 -0
  285. {crackerjack-0.35.0 → crackerjack-0.35.1}/excalidraw.log +0 -0
  286. {crackerjack-0.35.0 → crackerjack-0.35.1}/fix_typing_imports.py +0 -0
  287. {crackerjack-0.35.0 → crackerjack-0.35.1}/mypy.ini +0 -0
  288. {crackerjack-0.35.0 → crackerjack-0.35.1}/scripts/__init__.py +0 -0
  289. {crackerjack-0.35.0 → crackerjack-0.35.1}/scripts/integrate_resource_management.py +0 -0
  290. {crackerjack-0.35.0 → crackerjack-0.35.1}/scripts/performance_benchmark.py +0 -0
  291. {crackerjack-0.35.0 → crackerjack-0.35.1}/templates/api_reference.md.template +0 -0
  292. {crackerjack-0.35.0 → crackerjack-0.35.1}/templates/changelog_entry.md.template +0 -0
  293. {crackerjack-0.35.0 → crackerjack-0.35.1}/templates/user_guide.md.template +0 -0
  294. {crackerjack-0.35.0 → crackerjack-0.35.1}/test_docs_site/site/docs/api-reference.md +0 -0
  295. {crackerjack-0.35.0 → crackerjack-0.35.1}/test_docs_site/site/docs/getting-started.md +0 -0
  296. {crackerjack-0.35.0 → crackerjack-0.35.1}/test_docs_site/site/docs/index.md +0 -0
  297. {crackerjack-0.35.0 → crackerjack-0.35.1}/test_docs_site/site/docs/stylesheets/extra.css +0 -0
  298. {crackerjack-0.35.0 → crackerjack-0.35.1}/test_docs_site/site/mkdocs.yml +0 -0
  299. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/__init__.py +0 -0
  300. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/base_test.py +0 -0
  301. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/conftest.py +0 -0
  302. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/coverage.json +0 -0
  303. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/data/__init__.py +0 -0
  304. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/data/comments_sample.txt +0 -0
  305. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/data/docstrings_sample.txt +0 -0
  306. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/data/expected_comments_sample.txt +0 -0
  307. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/data/init.py +0 -0
  308. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/docs/HEALTH_METRICS_TESTING_SUMMARY.md +0 -0
  309. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/docs/TEST_COVERAGE_PLAN.md +0 -0
  310. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/docs/TEST_IMPLEMENTATION_PLAN.md +0 -0
  311. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/run_tests.py +0 -0
  312. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/scripts/__init__.py +0 -0
  313. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/scripts/agent_audit_report.py +0 -0
  314. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/scripts/run_test_suite.py +0 -0
  315. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test___main__.py +0 -0
  316. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_ai_agent_workflow.py +0 -0
  317. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_ai_optimized_documentation.py +0 -0
  318. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_async_hook_executor.py +0 -0
  319. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_changelog_generation.py +0 -0
  320. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_cli/__init__.py +0 -0
  321. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_cli/test_global_lock_options.py +0 -0
  322. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_cli_semantic_naming.py +0 -0
  323. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_coordinator_performance.py +0 -0
  324. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_core_autofix_coordinator.py +0 -0
  325. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_core_comprehensive.py +0 -0
  326. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_core_coverage.py +0 -0
  327. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_core_enhanced_container.py +0 -0
  328. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_core_modules.py +0 -0
  329. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_core_performance.py +0 -0
  330. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_documentation_agent_simple.py +0 -0
  331. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_dynamic_config.py +0 -0
  332. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_dynamic_config_coverage.py +0 -0
  333. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_end_to_end_integration.py +0 -0
  334. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_enhanced_filesystem.py +0 -0
  335. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_enhanced_filesystem_comprehensive.py +0 -0
  336. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_enhanced_filesystem_coverage.py +0 -0
  337. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_execution_speed_optimization.py +0 -0
  338. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_executors/__init__.py +0 -0
  339. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_executors/test_lock_integration.py +0 -0
  340. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_fast_hooks_behavior.py +0 -0
  341. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_filesystem_coverage.py +0 -0
  342. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_final_validation.py +0 -0
  343. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_global_lock_config.py +0 -0
  344. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_hook_lock_manager.py +0 -0
  345. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_hook_manager_simple.py +0 -0
  346. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_import_coverage_consolidated.py +0 -0
  347. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_input_validation.py +0 -0
  348. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_intelligence_system.py +0 -0
  349. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_large_modules_coverage.py +0 -0
  350. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_main_entry_coverage.py +0 -0
  351. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_main_module.py +0 -0
  352. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_managers_consolidated.py +0 -0
  353. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_mcp_progress_monitor.py +0 -0
  354. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_mcp_server.py +0 -0
  355. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_models_comprehensive.py +0 -0
  356. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_models_config_adapter_coverage.py +0 -0
  357. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_models_focused.py +0 -0
  358. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_models_task_coverage.py +0 -0
  359. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_modernized_code.py +0 -0
  360. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_performance_agent_enhanced.py +0 -0
  361. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_performance_agent_simple.py +0 -0
  362. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_performance_benchmarks_focused.py.bak +0 -0
  363. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_phase_coordinator_simple.py +0 -0
  364. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_plugins_coverage.py +0 -0
  365. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_proactive_agent_system.py +0 -0
  366. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_protocol_compliance.py +0 -0
  367. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_publish_manager_coverage.py +0 -0
  368. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_pytest_features.py +0 -0
  369. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_regex_patterns.py +0 -0
  370. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_resource_cleanup_integration.py +0 -0
  371. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_secure_path_utils.py +0 -0
  372. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_secure_status_formatter.py +0 -0
  373. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_security_audit.py +0 -0
  374. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_security_hardening.py +0 -0
  375. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_security_integration.py +0 -0
  376. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_services_coverage.py +0 -0
  377. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_session_coordinator.py +0 -0
  378. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_session_coordinator_coverage.py +0 -0
  379. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_simple_tool_version_service.py +0 -0
  380. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_simple_workflow.py +0 -0
  381. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_stage_workflow_execution_order.py +0 -0
  382. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_structured_errors.py +0 -0
  383. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_structured_logging.py +0 -0
  384. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_syntax_validation.py +0 -0
  385. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_terminal_restoration.py +0 -0
  386. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_terminal_state.py +0 -0
  387. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_timeout_system.py +0 -0
  388. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_unified_api.py +0 -0
  389. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_unified_config.py +0 -0
  390. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_unified_monitoring_dashboard.py +0 -0
  391. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_validate_regex_patterns_tool.py +0 -0
  392. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_version_analyzer.py +0 -0
  393. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_version_bump_analyzer.py +0 -0
  394. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_websocket_endpoints.py +0 -0
  395. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_workflow_fast_hooks.py +0 -0
  396. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_workflow_integration.py +0 -0
  397. {crackerjack-0.35.0 → crackerjack-0.35.1}/tests/test_workflow_orchestrator.py +0 -0
  398. {crackerjack-0.35.0 → crackerjack-0.35.1}/tools/validate_regex_patterns_standalone.py +0 -0
@@ -6,13 +6,14 @@ repos:
6
6
  entry: uv run python -m crackerjack.tools.validate_regex_patterns
7
7
  language: system
8
8
  files: \.py$
9
- exclude: ^\.venv/
9
+ exclude: ^\.venv/|^src/
10
10
  - id: skylos
11
11
  name: skylos-dead-code-detection
12
12
  entry: skylos
13
13
  language: system
14
14
  args: ["crackerjack"]
15
15
  pass_filenames: false
16
+ exclude: ^src/
16
17
  stages: ["pre-push", "manual"]
17
18
  - id: zuban
18
19
  name: zuban-type-checking
@@ -20,73 +21,76 @@ repos:
20
21
  language: system
21
22
  args: ["--config-file", "mypy.ini", "./crackerjack"]
22
23
  pass_filenames: false
24
+ exclude: ^src/
23
25
  stages: ["pre-push", "manual"]
24
26
  - id: pyright
25
27
  name: pyright-type-checking
26
28
  entry: uv run pyright
27
29
  language: system
28
30
  files: ^crackerjack/.*\.py$
29
- exclude: ^crackerjack/(mcp|plugins)/.*\.py$|crackerjack/code_cleaner\.py$
31
+ exclude: ^crackerjack/(mcp|plugins)/.*\.py$|crackerjack/code_cleaner\.py$|^src/
30
32
  stages: ["pre-push", "manual"]
31
33
  - repo: https://github.com/pre-commit/pre-commit-hooks
32
34
  rev: v6.0.0
33
35
  hooks:
34
36
  - id: trailing-whitespace
35
37
  name: trailing-whitespace
36
- exclude: ^\.venv/
38
+ exclude: ^\.venv/|^src/
37
39
  - id: end-of-file-fixer
38
40
  name: end-of-file-fixer
39
- exclude: ^\.venv/
41
+ exclude: ^\.venv/|^src/
40
42
  - id: check-yaml
41
43
  name: check-yaml
42
- exclude: ^\.venv/
44
+ exclude: ^\.venv/|^src/
43
45
  - id: check-toml
44
46
  name: check-toml
45
- exclude: ^\.venv/
47
+ exclude: ^\.venv/|^src/
46
48
  - id: check-added-large-files
47
49
  name: check-added-large-files
48
- exclude: ^\.venv/
50
+ exclude: ^\.venv/|^src/
49
51
  - repo: https://github.com/astral-sh/uv-pre-commit
50
52
  rev: 0.8.15
51
53
  hooks:
52
54
  - id: uv-lock
53
55
  files: ^ pyproject\.toml$
56
+ exclude: ^src/
54
57
  - repo: https://github.com/gitleaks/gitleaks
55
58
  rev: v8.28.0
56
59
  hooks:
57
60
  - id: gitleaks
58
- exclude: uv\.lock|pyproject\.toml|tests/.*|docs/.*|.*\.md
61
+ exclude: uv\.lock|pyproject\.toml|tests/.*|docs/.*|.*\.md|^src/
59
62
  - repo: https://github.com/PyCQA/bandit
60
63
  rev: 1.8.6
61
64
  hooks:
62
65
  - id: bandit
63
66
  args: ["-c", "pyproject.toml", "-r", "-ll"]
64
67
  files: ^crackerjack/.*\.py$
68
+ exclude: ^src/
65
69
  stages: ["pre-push", "manual"]
66
70
  - repo: https://github.com/codespell-project/codespell
67
71
  rev: v2.4.1
68
72
  hooks:
69
73
  - id: codespell
70
- exclude: ^\.venv/
74
+ exclude: ^\.venv/|^src/
71
75
  additional_dependencies: ["tomli"]
72
76
  - repo: https://github.com/astral-sh/ruff-pre-commit
73
77
  rev: v0.12.12
74
78
  hooks:
75
79
  - id: ruff-check
76
- exclude: ^\.venv/
80
+ exclude: ^\.venv/|^src/
77
81
  - id: ruff-format
78
- exclude: ^\.venv/
82
+ exclude: ^\.venv/|^src/
79
83
  - repo: https://github.com/executablebooks/mdformat
80
84
  rev: 0.7.22
81
85
  hooks:
82
86
  - id: mdformat
83
- exclude: ^\.venv/
87
+ exclude: ^\.venv/|^src/
84
88
  additional_dependencies: ["mdformat-ruff"]
85
89
  - repo: https://github.com/fredrikaverpil/creosote
86
90
  rev: v4.1.0
87
91
  hooks:
88
92
  - id: creosote
89
- exclude: ^\.venv/
93
+ exclude: ^\.venv/|^src/
90
94
  stages: ["pre-push", "manual"]
91
95
  - repo: https://github.com/rohaquinlop/complexipy-pre-commit
92
96
  rev: v3.3.0
@@ -94,7 +98,7 @@ repos:
94
98
  - id: complexipy
95
99
  args: ["-d", "low", "--max-complexity-allowed", "15"]
96
100
  files: ^crackerjack/.*\.py$
97
- exclude: ^(\.venv/|tests/)
101
+ exclude: ^(\.venv/|tests/)|^src/
98
102
  stages: ["pre-push", "manual"]
99
103
  - repo: https://github.com/dosisod/refurb
100
104
  rev: v2.1.0
@@ -102,5 +106,5 @@ repos:
102
106
  - id: refurb
103
107
  args: ["--ignore", "FURB184", "--ignore", "FURB120"]
104
108
  files: ^crackerjack/.*\.py$
105
- exclude: ^tests/.*\.py$
109
+ exclude: ^tests/.*\.py$|^src/
106
110
  stages: ["pre-push", "manual"]
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.35.1] - 2025-09-15
9
+
10
+ ### Changed
11
+
12
+ - Crackerjack (quality: 76/100) - 2025-09-15 22:25:11
13
+
8
14
  ## [0.35.0] - 2025-09-15
9
15
 
10
16
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crackerjack
3
- Version: 0.35.0
3
+ Version: 0.35.1
4
4
  Summary: Crackerjack Python project management tool
5
5
  Project-URL: documentation, https://github.com/lesleslie/crackerjack
6
6
  Project-URL: homepage, https://github.com/lesleslie/crackerjack
@@ -601,10 +601,10 @@ class CrackerjackAPI:
601
601
  return None
602
602
 
603
603
  def _find_fallback_package_directory(self) -> Path | None:
604
- for possible_name in ("src", self.project_path.name):
605
- package_dir = self.project_path / possible_name
606
- if self._is_valid_python_package_directory(package_dir):
607
- return package_dir
604
+ # Only check project directory name, not src
605
+ package_dir = self.project_path / self.project_path.name
606
+ if self._is_valid_python_package_directory(package_dir):
607
+ return package_dir
608
608
  return None
609
609
 
610
610
  def _is_valid_python_package_directory(self, directory: Path) -> bool:
@@ -499,13 +499,12 @@ class DynamicConfigGenerator:
499
499
  except Exception:
500
500
  pass
501
501
 
502
- # Fallback to common patterns
503
- for possible_name in ("src", current_dir.name):
504
- if (current_dir / possible_name).exists():
505
- return possible_name
502
+ # Fallback to project directory name
503
+ if (current_dir / current_dir.name).exists():
504
+ return current_dir.name
506
505
 
507
- # Default fallback
508
- return "src"
506
+ # Default fallback to current directory name
507
+ return current_dir.name
509
508
 
510
509
  def _should_include_hook(
511
510
  self,
@@ -565,6 +564,13 @@ class DynamicConfigGenerator:
565
564
  "crackerjack", self.package_directory
566
565
  )
567
566
 
567
+ # Ensure hooks exclude src directories to avoid JavaScript conflicts
568
+ if hook["exclude"]:
569
+ if "src/" not in hook["exclude"]:
570
+ hook["exclude"] = f"{hook['exclude']}|^src/"
571
+ else:
572
+ hook["exclude"] = "^src/"
573
+
568
574
  return hook
569
575
 
570
576
  def group_hooks_by_repo(
@@ -6,6 +6,8 @@ from typing import Final
6
6
 
7
7
  from rich.console import Console
8
8
 
9
+ from ..ui.server_panels import create_server_panels
10
+
9
11
  try:
10
12
  import tomli
11
13
  except ImportError:
@@ -259,18 +261,23 @@ def _print_server_info(
259
261
  websocket_port: int | None,
260
262
  http_mode: bool,
261
263
  ) -> None:
262
- console.print("[green]Starting Crackerjack MCP Server...[/ green]")
263
- console.print(f"Project path: {project_path}")
264
+ panels = create_server_panels(console)
264
265
 
265
266
  if mcp_config.get("http_enabled", False) or http_mode:
266
- console.print(
267
- f"[cyan]HTTP Mode: http: //{mcp_config['http_host']}: {mcp_config['http_port']}/mcp[/ cyan]"
267
+ mode = "HTTP"
268
+ http_endpoint = (
269
+ f"http://{mcp_config['http_host']}:{mcp_config['http_port']}/mcp"
268
270
  )
269
271
  else:
270
- console.print("[cyan]STDIO Mode[/ cyan]")
272
+ mode = "STDIO"
273
+ http_endpoint = None
271
274
 
272
- if websocket_port:
273
- console.print(f"WebSocket port: {websocket_port}")
275
+ panels.start_panel(
276
+ project_path=project_path,
277
+ mode=mode,
278
+ http_endpoint=http_endpoint,
279
+ websocket_port=websocket_port,
280
+ )
274
281
 
275
282
 
276
283
  def _run_mcp_server(
@@ -331,6 +338,26 @@ def main(
331
338
  f"[yellow]⚠️ WebSocket server auto-start failed: {e}[/yellow]"
332
339
  )
333
340
 
341
+ # Show final success panel before starting the server
342
+ panels = create_server_panels(console)
343
+
344
+ if mcp_config.get("http_enabled", False) or http_mode:
345
+ http_endpoint = (
346
+ f"http://{mcp_config['http_host']}:{mcp_config['http_port']}/mcp"
347
+ )
348
+ else:
349
+ http_endpoint = None
350
+
351
+ websocket_monitor = (
352
+ f"ws://127.0.0.1:{websocket_port}" if websocket_port else None
353
+ )
354
+
355
+ panels.success_panel(
356
+ http_endpoint=http_endpoint,
357
+ websocket_monitor=websocket_monitor,
358
+ process_id=None, # Will be set by the process manager
359
+ )
360
+
334
361
  _run_mcp_server(mcp_app, mcp_config, http_mode)
335
362
 
336
363
  except KeyboardInterrupt:
@@ -7,6 +7,7 @@ from pathlib import Path
7
7
 
8
8
  from rich.console import Console
9
9
 
10
+ from ..ui.server_panels import create_server_panels
10
11
  from .secure_subprocess import execute_secure_subprocess
11
12
  from .security_logger import get_security_logger
12
13
 
@@ -201,21 +202,27 @@ def stop_mcp_server(console: Console | None = None) -> bool:
201
202
  if console is None:
202
203
  console = Console()
203
204
 
205
+ panels = create_server_panels(console)
204
206
  processes = find_mcp_server_processes()
205
207
 
206
208
  if not processes:
207
209
  console.print("[yellow]⚠️ No MCP server processes found[/ yellow]")
208
210
  return True
209
211
 
212
+ panels.stop_servers(len(processes))
213
+
210
214
  success = True
211
215
  for proc in processes:
212
- console.print(f"🛑 Stopping MCP server process {proc['pid']}")
216
+ console.print(f"Stopping process {proc['pid']}...")
213
217
  if stop_process(proc["pid"]):
214
- console.print(f"✅ Stopped process {proc['pid']}")
218
+ console.print(f"✅ Process {proc['pid']} terminated gracefully")
215
219
  else:
216
220
  console.print(f"❌ Failed to stop process {proc['pid']}")
217
221
  success = False
218
222
 
223
+ if success:
224
+ panels.stop_complete(len(processes))
225
+
219
226
  return success
220
227
 
221
228
 
@@ -282,14 +289,15 @@ def restart_mcp_server(
282
289
  if console is None:
283
290
  console = Console()
284
291
 
285
- console.print("[bold cyan]🔄 Restarting MCP server...[/ bold cyan]")
292
+ panels = create_server_panels(console)
293
+ panels.restart_header()
286
294
 
287
295
  stop_mcp_server(console)
288
296
 
289
- console.print("⏳ Waiting for cleanup...")
297
+ panels.cleanup_wait()
290
298
  time.sleep(2)
291
299
 
292
- console.print("🚀 Starting new MCP server...")
300
+ panels.starting_server()
293
301
  try:
294
302
  cmd = [sys.executable, "-m", "crackerjack", "--start-mcp-server"]
295
303
  if websocket_port:
@@ -297,7 +305,7 @@ def restart_mcp_server(
297
305
 
298
306
  import subprocess
299
307
 
300
- subprocess.Popen(
308
+ process = subprocess.Popen(
301
309
  cmd,
302
310
  stdout=subprocess.DEVNULL,
303
311
  stderr=subprocess.DEVNULL,
@@ -310,11 +318,24 @@ def restart_mcp_server(
310
318
  purpose="mcp_server_restart",
311
319
  )
312
320
 
313
- console.print("✅ MCP server restart initiated")
321
+ # Give the server a moment to start
322
+ time.sleep(1)
323
+
324
+ # Display success panel with server details
325
+ http_endpoint = "http://127.0.0.1:8676/mcp"
326
+ websocket_monitor = (
327
+ f"ws://127.0.0.1:{websocket_port or 8675}" if websocket_port else None
328
+ )
329
+
330
+ panels.success_panel(
331
+ http_endpoint=http_endpoint,
332
+ websocket_monitor=websocket_monitor,
333
+ process_id=process.pid,
334
+ )
314
335
  return True
315
336
 
316
337
  except Exception as e:
317
- console.print(f"❌ Failed to restart MCP server: {e}")
338
+ panels.failure_panel(str(e))
318
339
  return False
319
340
 
320
341
 
@@ -0,0 +1 @@
1
+ """UI components for Crackerjack."""
@@ -0,0 +1,126 @@
1
+ """Rich panel utilities for MCP server operations with consistent styling."""
2
+
3
+ import typing as t
4
+ from pathlib import Path
5
+
6
+ from rich.console import Console
7
+ from rich.panel import Panel
8
+ from rich.text import Text
9
+
10
+
11
+ class ServerPanels:
12
+ """Rich panel utilities for server operations with 74-char width limit."""
13
+
14
+ WIDTH = 74 # Match session-mgmt-mcp width constraint
15
+
16
+ def __init__(self, console: Console | None = None) -> None:
17
+ self.console = console or Console()
18
+
19
+ def restart_header(self) -> None:
20
+ """Display server restart header panel."""
21
+ panel = Panel(
22
+ "🔄 Restarting Crackerjack MCP Server...",
23
+ width=self.WIDTH,
24
+ title="Server Restart",
25
+ style="cyan",
26
+ )
27
+ self.console.print(panel)
28
+
29
+ def stop_servers(self, count: int) -> None:
30
+ """Display stopping servers status."""
31
+ self.console.print("📴 Stopping existing servers...")
32
+ self.console.print(f"🛑 Stopping {count} server process(es)...")
33
+
34
+ def process_stopped(self, pid: int) -> None:
35
+ """Display process stopped message."""
36
+ self.console.print(f"Stopping process {pid}...")
37
+ self.console.print(f"✅ Process {pid} terminated gracefully")
38
+
39
+ def stop_complete(self, count: int) -> None:
40
+ """Display stop completion panel."""
41
+ panel = Panel(
42
+ f"✅ Successfully stopped {count} process(es)",
43
+ width=self.WIDTH,
44
+ title="Server Stopped",
45
+ style="green",
46
+ )
47
+ self.console.print(panel)
48
+
49
+ def cleanup_wait(self) -> None:
50
+ """Display cleanup waiting message."""
51
+ self.console.print("⏳ Waiting for cleanup...")
52
+
53
+ def starting_server(self) -> None:
54
+ """Display starting server message."""
55
+ self.console.print("🚀 Starting fresh server instance...")
56
+ self.console.print("🚀 Starting Crackerjack MCP Server...")
57
+ self.console.print("⏳ Waiting for server to start...")
58
+
59
+ def success_panel(
60
+ self,
61
+ http_endpoint: str | None = None,
62
+ websocket_monitor: str | None = None,
63
+ process_id: int | None = None
64
+ ) -> None:
65
+ """Display success panel with server details."""
66
+ content = Text()
67
+ content.append("✅ Server started successfully!\n", style="green bold")
68
+
69
+ if http_endpoint:
70
+ content.append(f"🌐 HTTP Endpoint: {http_endpoint}\n", style="cyan")
71
+
72
+ if websocket_monitor:
73
+ content.append(f"🔌 WebSocket Monitor: {websocket_monitor}\n", style="cyan")
74
+
75
+ if process_id:
76
+ content.append(f"📊 Process ID: {process_id}", style="cyan")
77
+
78
+ panel = Panel(
79
+ content,
80
+ width=self.WIDTH,
81
+ title="Crackerjack MCP Server",
82
+ style="green",
83
+ )
84
+ self.console.print(panel)
85
+
86
+ def failure_panel(self, error: str) -> None:
87
+ """Display failure panel with error details."""
88
+ panel = Panel(
89
+ f"❌ Server failed to start: {error}",
90
+ width=self.WIDTH,
91
+ title="Server Error",
92
+ style="red",
93
+ )
94
+ self.console.print(panel)
95
+
96
+ def start_panel(
97
+ self,
98
+ project_path: Path,
99
+ mode: str = "STDIO",
100
+ http_endpoint: str | None = None,
101
+ websocket_port: int | None = None,
102
+ ) -> None:
103
+ """Display server start panel with configuration details."""
104
+ content = Text()
105
+ content.append("🚀 Starting Crackerjack MCP Server...\n", style="green bold")
106
+ content.append(f"📁 Project: {project_path.name}\n", style="cyan")
107
+ content.append(f"🔗 Mode: {mode}\n", style="cyan")
108
+
109
+ if http_endpoint:
110
+ content.append(f"🌐 HTTP: {http_endpoint}\n", style="cyan")
111
+
112
+ if websocket_port:
113
+ content.append(f"🔌 WebSocket: {websocket_port}", style="cyan")
114
+
115
+ panel = Panel(
116
+ content,
117
+ width=self.WIDTH,
118
+ title="Server Configuration",
119
+ style="green",
120
+ )
121
+ self.console.print(panel)
122
+
123
+
124
+ def create_server_panels(console: Console | None = None) -> ServerPanels:
125
+ """Factory function to create ServerPanels instance."""
126
+ return ServerPanels(console)
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "crackerjack"
9
- version = "0.35.0"
9
+ version = "0.35.1"
10
10
  description = "Crackerjack Python project management tool"
11
11
  readme = "README.md"
12
12
  authors = [
@@ -398,7 +398,7 @@ wheels = [
398
398
 
399
399
  [[package]]
400
400
  name = "crackerjack"
401
- version = "0.34.2"
401
+ version = "0.35.0"
402
402
  source = { editable = "." }
403
403
  dependencies = [
404
404
  { name = "aiofiles" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes