crackerjack 0.37.9__py3-none-any.whl → 0.45.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. crackerjack/README.md +19 -0
  2. crackerjack/__init__.py +30 -1
  3. crackerjack/__main__.py +342 -1263
  4. crackerjack/adapters/README.md +18 -0
  5. crackerjack/adapters/__init__.py +27 -5
  6. crackerjack/adapters/_output_paths.py +167 -0
  7. crackerjack/adapters/_qa_adapter_base.py +309 -0
  8. crackerjack/adapters/_tool_adapter_base.py +706 -0
  9. crackerjack/adapters/ai/README.md +65 -0
  10. crackerjack/adapters/ai/__init__.py +5 -0
  11. crackerjack/adapters/ai/claude.py +853 -0
  12. crackerjack/adapters/complexity/README.md +53 -0
  13. crackerjack/adapters/complexity/__init__.py +10 -0
  14. crackerjack/adapters/complexity/complexipy.py +641 -0
  15. crackerjack/adapters/dependency/__init__.py +22 -0
  16. crackerjack/adapters/dependency/pip_audit.py +418 -0
  17. crackerjack/adapters/format/README.md +72 -0
  18. crackerjack/adapters/format/__init__.py +11 -0
  19. crackerjack/adapters/format/mdformat.py +313 -0
  20. crackerjack/adapters/format/ruff.py +516 -0
  21. crackerjack/adapters/lint/README.md +47 -0
  22. crackerjack/adapters/lint/__init__.py +11 -0
  23. crackerjack/adapters/lint/codespell.py +273 -0
  24. crackerjack/adapters/lsp/README.md +49 -0
  25. crackerjack/adapters/lsp/__init__.py +27 -0
  26. crackerjack/adapters/{rust_tool_manager.py → lsp/_manager.py} +3 -3
  27. crackerjack/adapters/{skylos_adapter.py → lsp/skylos.py} +59 -7
  28. crackerjack/adapters/{zuban_adapter.py → lsp/zuban.py} +3 -6
  29. crackerjack/adapters/refactor/README.md +59 -0
  30. crackerjack/adapters/refactor/__init__.py +12 -0
  31. crackerjack/adapters/refactor/creosote.py +318 -0
  32. crackerjack/adapters/refactor/refurb.py +406 -0
  33. crackerjack/adapters/refactor/skylos.py +494 -0
  34. crackerjack/adapters/sast/README.md +132 -0
  35. crackerjack/adapters/sast/__init__.py +32 -0
  36. crackerjack/adapters/sast/_base.py +201 -0
  37. crackerjack/adapters/sast/bandit.py +423 -0
  38. crackerjack/adapters/sast/pyscn.py +405 -0
  39. crackerjack/adapters/sast/semgrep.py +241 -0
  40. crackerjack/adapters/security/README.md +111 -0
  41. crackerjack/adapters/security/__init__.py +17 -0
  42. crackerjack/adapters/security/gitleaks.py +339 -0
  43. crackerjack/adapters/type/README.md +52 -0
  44. crackerjack/adapters/type/__init__.py +12 -0
  45. crackerjack/adapters/type/pyrefly.py +402 -0
  46. crackerjack/adapters/type/ty.py +402 -0
  47. crackerjack/adapters/type/zuban.py +522 -0
  48. crackerjack/adapters/utility/README.md +51 -0
  49. crackerjack/adapters/utility/__init__.py +10 -0
  50. crackerjack/adapters/utility/checks.py +884 -0
  51. crackerjack/agents/README.md +264 -0
  52. crackerjack/agents/__init__.py +40 -12
  53. crackerjack/agents/base.py +1 -0
  54. crackerjack/agents/claude_code_bridge.py +641 -0
  55. crackerjack/agents/coordinator.py +49 -53
  56. crackerjack/agents/dry_agent.py +187 -3
  57. crackerjack/agents/enhanced_coordinator.py +279 -0
  58. crackerjack/agents/enhanced_proactive_agent.py +185 -0
  59. crackerjack/agents/error_middleware.py +53 -0
  60. crackerjack/agents/formatting_agent.py +6 -8
  61. crackerjack/agents/helpers/__init__.py +9 -0
  62. crackerjack/agents/helpers/performance/__init__.py +22 -0
  63. crackerjack/agents/helpers/performance/performance_ast_analyzer.py +357 -0
  64. crackerjack/agents/helpers/performance/performance_pattern_detector.py +909 -0
  65. crackerjack/agents/helpers/performance/performance_recommender.py +572 -0
  66. crackerjack/agents/helpers/refactoring/__init__.py +22 -0
  67. crackerjack/agents/helpers/refactoring/code_transformer.py +536 -0
  68. crackerjack/agents/helpers/refactoring/complexity_analyzer.py +344 -0
  69. crackerjack/agents/helpers/refactoring/dead_code_detector.py +437 -0
  70. crackerjack/agents/helpers/test_creation/__init__.py +19 -0
  71. crackerjack/agents/helpers/test_creation/test_ast_analyzer.py +216 -0
  72. crackerjack/agents/helpers/test_creation/test_coverage_analyzer.py +643 -0
  73. crackerjack/agents/helpers/test_creation/test_template_generator.py +1031 -0
  74. crackerjack/agents/performance_agent.py +121 -1152
  75. crackerjack/agents/refactoring_agent.py +156 -655
  76. crackerjack/agents/semantic_agent.py +479 -0
  77. crackerjack/agents/semantic_helpers.py +356 -0
  78. crackerjack/agents/test_creation_agent.py +19 -1605
  79. crackerjack/api.py +5 -7
  80. crackerjack/cli/README.md +394 -0
  81. crackerjack/cli/__init__.py +1 -1
  82. crackerjack/cli/cache_handlers.py +23 -18
  83. crackerjack/cli/cache_handlers_enhanced.py +1 -4
  84. crackerjack/cli/facade.py +70 -8
  85. crackerjack/cli/formatting.py +13 -0
  86. crackerjack/cli/handlers/__init__.py +85 -0
  87. crackerjack/cli/handlers/advanced.py +103 -0
  88. crackerjack/cli/handlers/ai_features.py +62 -0
  89. crackerjack/cli/handlers/analytics.py +479 -0
  90. crackerjack/cli/handlers/changelog.py +271 -0
  91. crackerjack/cli/handlers/config_handlers.py +16 -0
  92. crackerjack/cli/handlers/coverage.py +84 -0
  93. crackerjack/cli/handlers/documentation.py +280 -0
  94. crackerjack/cli/handlers/main_handlers.py +497 -0
  95. crackerjack/cli/handlers/monitoring.py +371 -0
  96. crackerjack/cli/handlers.py +249 -49
  97. crackerjack/cli/interactive.py +8 -5
  98. crackerjack/cli/options.py +203 -110
  99. crackerjack/cli/semantic_handlers.py +292 -0
  100. crackerjack/cli/version.py +19 -0
  101. crackerjack/code_cleaner.py +60 -24
  102. crackerjack/config/README.md +472 -0
  103. crackerjack/config/__init__.py +256 -0
  104. crackerjack/config/global_lock_config.py +191 -54
  105. crackerjack/config/hooks.py +188 -16
  106. crackerjack/config/loader.py +239 -0
  107. crackerjack/config/settings.py +141 -0
  108. crackerjack/config/tool_commands.py +331 -0
  109. crackerjack/core/README.md +393 -0
  110. crackerjack/core/async_workflow_orchestrator.py +79 -53
  111. crackerjack/core/autofix_coordinator.py +22 -9
  112. crackerjack/core/container.py +10 -9
  113. crackerjack/core/enhanced_container.py +9 -9
  114. crackerjack/core/performance.py +1 -1
  115. crackerjack/core/performance_monitor.py +5 -3
  116. crackerjack/core/phase_coordinator.py +1018 -634
  117. crackerjack/core/proactive_workflow.py +3 -3
  118. crackerjack/core/retry.py +275 -0
  119. crackerjack/core/service_watchdog.py +167 -23
  120. crackerjack/core/session_coordinator.py +187 -382
  121. crackerjack/core/timeout_manager.py +161 -44
  122. crackerjack/core/workflow/__init__.py +21 -0
  123. crackerjack/core/workflow/workflow_ai_coordinator.py +863 -0
  124. crackerjack/core/workflow/workflow_event_orchestrator.py +1107 -0
  125. crackerjack/core/workflow/workflow_issue_parser.py +714 -0
  126. crackerjack/core/workflow/workflow_phase_executor.py +1158 -0
  127. crackerjack/core/workflow/workflow_security_gates.py +400 -0
  128. crackerjack/core/workflow_orchestrator.py +1247 -953
  129. crackerjack/data/README.md +11 -0
  130. crackerjack/data/__init__.py +8 -0
  131. crackerjack/data/models.py +79 -0
  132. crackerjack/data/repository.py +210 -0
  133. crackerjack/decorators/README.md +180 -0
  134. crackerjack/decorators/__init__.py +35 -0
  135. crackerjack/decorators/error_handling.py +649 -0
  136. crackerjack/decorators/error_handling_decorators.py +334 -0
  137. crackerjack/decorators/helpers.py +58 -0
  138. crackerjack/decorators/patterns.py +281 -0
  139. crackerjack/decorators/utils.py +58 -0
  140. crackerjack/docs/README.md +11 -0
  141. crackerjack/docs/generated/api/CLI_REFERENCE.md +1 -1
  142. crackerjack/documentation/README.md +11 -0
  143. crackerjack/documentation/ai_templates.py +1 -1
  144. crackerjack/documentation/dual_output_generator.py +11 -9
  145. crackerjack/documentation/reference_generator.py +104 -59
  146. crackerjack/dynamic_config.py +52 -61
  147. crackerjack/errors.py +1 -1
  148. crackerjack/events/README.md +11 -0
  149. crackerjack/events/__init__.py +16 -0
  150. crackerjack/events/telemetry.py +175 -0
  151. crackerjack/events/workflow_bus.py +346 -0
  152. crackerjack/exceptions/README.md +301 -0
  153. crackerjack/exceptions/__init__.py +5 -0
  154. crackerjack/exceptions/config.py +4 -0
  155. crackerjack/exceptions/tool_execution_error.py +245 -0
  156. crackerjack/executors/README.md +591 -0
  157. crackerjack/executors/__init__.py +2 -0
  158. crackerjack/executors/async_hook_executor.py +539 -77
  159. crackerjack/executors/cached_hook_executor.py +3 -3
  160. crackerjack/executors/hook_executor.py +967 -102
  161. crackerjack/executors/hook_lock_manager.py +31 -22
  162. crackerjack/executors/individual_hook_executor.py +66 -32
  163. crackerjack/executors/lsp_aware_hook_executor.py +136 -57
  164. crackerjack/executors/progress_hook_executor.py +282 -0
  165. crackerjack/executors/tool_proxy.py +23 -7
  166. crackerjack/hooks/README.md +485 -0
  167. crackerjack/hooks/lsp_hook.py +8 -9
  168. crackerjack/intelligence/README.md +557 -0
  169. crackerjack/interactive.py +37 -10
  170. crackerjack/managers/README.md +369 -0
  171. crackerjack/managers/async_hook_manager.py +41 -57
  172. crackerjack/managers/hook_manager.py +449 -79
  173. crackerjack/managers/publish_manager.py +81 -36
  174. crackerjack/managers/test_command_builder.py +290 -12
  175. crackerjack/managers/test_executor.py +93 -8
  176. crackerjack/managers/test_manager.py +1082 -75
  177. crackerjack/managers/test_progress.py +118 -26
  178. crackerjack/mcp/README.md +374 -0
  179. crackerjack/mcp/cache.py +25 -2
  180. crackerjack/mcp/client_runner.py +35 -18
  181. crackerjack/mcp/context.py +9 -9
  182. crackerjack/mcp/dashboard.py +24 -8
  183. crackerjack/mcp/enhanced_progress_monitor.py +34 -23
  184. crackerjack/mcp/file_monitor.py +27 -6
  185. crackerjack/mcp/progress_components.py +45 -34
  186. crackerjack/mcp/progress_monitor.py +6 -9
  187. crackerjack/mcp/rate_limiter.py +11 -7
  188. crackerjack/mcp/server.py +2 -0
  189. crackerjack/mcp/server_core.py +187 -55
  190. crackerjack/mcp/service_watchdog.py +12 -9
  191. crackerjack/mcp/task_manager.py +2 -2
  192. crackerjack/mcp/tools/README.md +27 -0
  193. crackerjack/mcp/tools/__init__.py +2 -0
  194. crackerjack/mcp/tools/core_tools.py +75 -52
  195. crackerjack/mcp/tools/execution_tools.py +87 -31
  196. crackerjack/mcp/tools/intelligence_tools.py +2 -2
  197. crackerjack/mcp/tools/proactive_tools.py +1 -1
  198. crackerjack/mcp/tools/semantic_tools.py +584 -0
  199. crackerjack/mcp/tools/utility_tools.py +180 -132
  200. crackerjack/mcp/tools/workflow_executor.py +87 -46
  201. crackerjack/mcp/websocket/README.md +31 -0
  202. crackerjack/mcp/websocket/app.py +11 -1
  203. crackerjack/mcp/websocket/event_bridge.py +188 -0
  204. crackerjack/mcp/websocket/jobs.py +27 -4
  205. crackerjack/mcp/websocket/monitoring/__init__.py +25 -0
  206. crackerjack/mcp/websocket/monitoring/api/__init__.py +19 -0
  207. crackerjack/mcp/websocket/monitoring/api/dependencies.py +141 -0
  208. crackerjack/mcp/websocket/monitoring/api/heatmap.py +154 -0
  209. crackerjack/mcp/websocket/monitoring/api/intelligence.py +199 -0
  210. crackerjack/mcp/websocket/monitoring/api/metrics.py +203 -0
  211. crackerjack/mcp/websocket/monitoring/api/telemetry.py +101 -0
  212. crackerjack/mcp/websocket/monitoring/dashboard.py +18 -0
  213. crackerjack/mcp/websocket/monitoring/factory.py +109 -0
  214. crackerjack/mcp/websocket/monitoring/filters.py +10 -0
  215. crackerjack/mcp/websocket/monitoring/metrics.py +64 -0
  216. crackerjack/mcp/websocket/monitoring/models.py +90 -0
  217. crackerjack/mcp/websocket/monitoring/utils.py +171 -0
  218. crackerjack/mcp/websocket/monitoring/websocket_manager.py +78 -0
  219. crackerjack/mcp/websocket/monitoring/websockets/__init__.py +17 -0
  220. crackerjack/mcp/websocket/monitoring/websockets/dependencies.py +126 -0
  221. crackerjack/mcp/websocket/monitoring/websockets/heatmap.py +176 -0
  222. crackerjack/mcp/websocket/monitoring/websockets/intelligence.py +291 -0
  223. crackerjack/mcp/websocket/monitoring/websockets/metrics.py +291 -0
  224. crackerjack/mcp/websocket/monitoring_endpoints.py +16 -2930
  225. crackerjack/mcp/websocket/server.py +1 -3
  226. crackerjack/mcp/websocket/websocket_handler.py +107 -6
  227. crackerjack/models/README.md +308 -0
  228. crackerjack/models/__init__.py +10 -1
  229. crackerjack/models/config.py +639 -22
  230. crackerjack/models/config_adapter.py +6 -6
  231. crackerjack/models/protocols.py +1167 -23
  232. crackerjack/models/pydantic_models.py +320 -0
  233. crackerjack/models/qa_config.py +145 -0
  234. crackerjack/models/qa_results.py +134 -0
  235. crackerjack/models/results.py +35 -0
  236. crackerjack/models/semantic_models.py +258 -0
  237. crackerjack/models/task.py +19 -3
  238. crackerjack/models/test_models.py +60 -0
  239. crackerjack/monitoring/README.md +11 -0
  240. crackerjack/monitoring/ai_agent_watchdog.py +5 -4
  241. crackerjack/monitoring/metrics_collector.py +4 -3
  242. crackerjack/monitoring/regression_prevention.py +4 -3
  243. crackerjack/monitoring/websocket_server.py +4 -241
  244. crackerjack/orchestration/README.md +340 -0
  245. crackerjack/orchestration/__init__.py +43 -0
  246. crackerjack/orchestration/advanced_orchestrator.py +20 -67
  247. crackerjack/orchestration/cache/README.md +312 -0
  248. crackerjack/orchestration/cache/__init__.py +37 -0
  249. crackerjack/orchestration/cache/memory_cache.py +338 -0
  250. crackerjack/orchestration/cache/tool_proxy_cache.py +340 -0
  251. crackerjack/orchestration/config.py +297 -0
  252. crackerjack/orchestration/coverage_improvement.py +13 -6
  253. crackerjack/orchestration/execution_strategies.py +6 -6
  254. crackerjack/orchestration/hook_orchestrator.py +1398 -0
  255. crackerjack/orchestration/strategies/README.md +401 -0
  256. crackerjack/orchestration/strategies/__init__.py +39 -0
  257. crackerjack/orchestration/strategies/adaptive_strategy.py +630 -0
  258. crackerjack/orchestration/strategies/parallel_strategy.py +237 -0
  259. crackerjack/orchestration/strategies/sequential_strategy.py +299 -0
  260. crackerjack/orchestration/test_progress_streamer.py +1 -1
  261. crackerjack/plugins/README.md +11 -0
  262. crackerjack/plugins/hooks.py +3 -2
  263. crackerjack/plugins/loader.py +3 -3
  264. crackerjack/plugins/managers.py +1 -1
  265. crackerjack/py313.py +191 -0
  266. crackerjack/security/README.md +11 -0
  267. crackerjack/services/README.md +374 -0
  268. crackerjack/services/__init__.py +8 -21
  269. crackerjack/services/ai/README.md +295 -0
  270. crackerjack/services/ai/__init__.py +7 -0
  271. crackerjack/services/ai/advanced_optimizer.py +878 -0
  272. crackerjack/services/{contextual_ai_assistant.py → ai/contextual_ai_assistant.py} +5 -3
  273. crackerjack/services/ai/embeddings.py +444 -0
  274. crackerjack/services/ai/intelligent_commit.py +328 -0
  275. crackerjack/services/ai/predictive_analytics.py +510 -0
  276. crackerjack/services/api_extractor.py +5 -3
  277. crackerjack/services/bounded_status_operations.py +45 -5
  278. crackerjack/services/cache.py +249 -318
  279. crackerjack/services/changelog_automation.py +7 -3
  280. crackerjack/services/command_execution_service.py +305 -0
  281. crackerjack/services/config_integrity.py +83 -39
  282. crackerjack/services/config_merge.py +9 -6
  283. crackerjack/services/config_service.py +198 -0
  284. crackerjack/services/config_template.py +13 -26
  285. crackerjack/services/coverage_badge_service.py +6 -4
  286. crackerjack/services/coverage_ratchet.py +53 -27
  287. crackerjack/services/debug.py +18 -7
  288. crackerjack/services/dependency_analyzer.py +4 -4
  289. crackerjack/services/dependency_monitor.py +13 -13
  290. crackerjack/services/documentation_generator.py +4 -2
  291. crackerjack/services/documentation_service.py +62 -33
  292. crackerjack/services/enhanced_filesystem.py +81 -27
  293. crackerjack/services/enterprise_optimizer.py +1 -1
  294. crackerjack/services/error_pattern_analyzer.py +10 -10
  295. crackerjack/services/file_filter.py +221 -0
  296. crackerjack/services/file_hasher.py +5 -7
  297. crackerjack/services/file_io_service.py +361 -0
  298. crackerjack/services/file_modifier.py +615 -0
  299. crackerjack/services/filesystem.py +80 -109
  300. crackerjack/services/git.py +99 -5
  301. crackerjack/services/health_metrics.py +4 -6
  302. crackerjack/services/heatmap_generator.py +12 -3
  303. crackerjack/services/incremental_executor.py +380 -0
  304. crackerjack/services/initialization.py +101 -49
  305. crackerjack/services/log_manager.py +2 -2
  306. crackerjack/services/logging.py +120 -68
  307. crackerjack/services/lsp_client.py +12 -12
  308. crackerjack/services/memory_optimizer.py +27 -22
  309. crackerjack/services/monitoring/README.md +30 -0
  310. crackerjack/services/monitoring/__init__.py +9 -0
  311. crackerjack/services/monitoring/dependency_monitor.py +678 -0
  312. crackerjack/services/monitoring/error_pattern_analyzer.py +676 -0
  313. crackerjack/services/monitoring/health_metrics.py +716 -0
  314. crackerjack/services/monitoring/metrics.py +587 -0
  315. crackerjack/services/{performance_benchmarks.py → monitoring/performance_benchmarks.py} +100 -14
  316. crackerjack/services/{performance_cache.py → monitoring/performance_cache.py} +21 -15
  317. crackerjack/services/{performance_monitor.py → monitoring/performance_monitor.py} +10 -6
  318. crackerjack/services/parallel_executor.py +166 -55
  319. crackerjack/services/patterns/__init__.py +142 -0
  320. crackerjack/services/patterns/agents.py +107 -0
  321. crackerjack/services/patterns/code/__init__.py +15 -0
  322. crackerjack/services/patterns/code/detection.py +118 -0
  323. crackerjack/services/patterns/code/imports.py +107 -0
  324. crackerjack/services/patterns/code/paths.py +159 -0
  325. crackerjack/services/patterns/code/performance.py +119 -0
  326. crackerjack/services/patterns/code/replacement.py +36 -0
  327. crackerjack/services/patterns/core.py +212 -0
  328. crackerjack/services/patterns/documentation/__init__.py +14 -0
  329. crackerjack/services/patterns/documentation/badges_markdown.py +96 -0
  330. crackerjack/services/patterns/documentation/comments_blocks.py +83 -0
  331. crackerjack/services/patterns/documentation/docstrings.py +89 -0
  332. crackerjack/services/patterns/formatting.py +226 -0
  333. crackerjack/services/patterns/operations.py +339 -0
  334. crackerjack/services/patterns/security/__init__.py +23 -0
  335. crackerjack/services/patterns/security/code_injection.py +122 -0
  336. crackerjack/services/patterns/security/credentials.py +190 -0
  337. crackerjack/services/patterns/security/path_traversal.py +221 -0
  338. crackerjack/services/patterns/security/unsafe_operations.py +216 -0
  339. crackerjack/services/patterns/templates.py +62 -0
  340. crackerjack/services/patterns/testing/__init__.py +18 -0
  341. crackerjack/services/patterns/testing/error_patterns.py +107 -0
  342. crackerjack/services/patterns/testing/pytest_output.py +126 -0
  343. crackerjack/services/patterns/tool_output/__init__.py +16 -0
  344. crackerjack/services/patterns/tool_output/bandit.py +72 -0
  345. crackerjack/services/patterns/tool_output/other.py +97 -0
  346. crackerjack/services/patterns/tool_output/pyright.py +67 -0
  347. crackerjack/services/patterns/tool_output/ruff.py +44 -0
  348. crackerjack/services/patterns/url_sanitization.py +114 -0
  349. crackerjack/services/patterns/utilities.py +42 -0
  350. crackerjack/services/patterns/utils.py +339 -0
  351. crackerjack/services/patterns/validation.py +46 -0
  352. crackerjack/services/patterns/versioning.py +62 -0
  353. crackerjack/services/predictive_analytics.py +21 -8
  354. crackerjack/services/profiler.py +280 -0
  355. crackerjack/services/quality/README.md +415 -0
  356. crackerjack/services/quality/__init__.py +11 -0
  357. crackerjack/services/quality/anomaly_detector.py +392 -0
  358. crackerjack/services/quality/pattern_cache.py +333 -0
  359. crackerjack/services/quality/pattern_detector.py +479 -0
  360. crackerjack/services/quality/qa_orchestrator.py +491 -0
  361. crackerjack/services/{quality_baseline.py → quality/quality_baseline.py} +163 -2
  362. crackerjack/services/{quality_baseline_enhanced.py → quality/quality_baseline_enhanced.py} +4 -1
  363. crackerjack/services/{quality_intelligence.py → quality/quality_intelligence.py} +180 -16
  364. crackerjack/services/regex_patterns.py +58 -2987
  365. crackerjack/services/regex_utils.py +55 -29
  366. crackerjack/services/secure_status_formatter.py +42 -15
  367. crackerjack/services/secure_subprocess.py +35 -2
  368. crackerjack/services/security.py +16 -8
  369. crackerjack/services/server_manager.py +40 -51
  370. crackerjack/services/smart_scheduling.py +46 -6
  371. crackerjack/services/status_authentication.py +3 -3
  372. crackerjack/services/thread_safe_status_collector.py +1 -0
  373. crackerjack/services/tool_filter.py +368 -0
  374. crackerjack/services/tool_version_service.py +9 -5
  375. crackerjack/services/unified_config.py +43 -351
  376. crackerjack/services/vector_store.py +689 -0
  377. crackerjack/services/version_analyzer.py +6 -4
  378. crackerjack/services/version_checker.py +14 -8
  379. crackerjack/services/zuban_lsp_service.py +5 -4
  380. crackerjack/slash_commands/README.md +11 -0
  381. crackerjack/slash_commands/init.md +2 -12
  382. crackerjack/slash_commands/run.md +84 -50
  383. crackerjack/tools/README.md +11 -0
  384. crackerjack/tools/__init__.py +30 -0
  385. crackerjack/tools/_git_utils.py +105 -0
  386. crackerjack/tools/check_added_large_files.py +139 -0
  387. crackerjack/tools/check_ast.py +105 -0
  388. crackerjack/tools/check_json.py +103 -0
  389. crackerjack/tools/check_jsonschema.py +297 -0
  390. crackerjack/tools/check_toml.py +103 -0
  391. crackerjack/tools/check_yaml.py +110 -0
  392. crackerjack/tools/codespell_wrapper.py +72 -0
  393. crackerjack/tools/end_of_file_fixer.py +202 -0
  394. crackerjack/tools/format_json.py +128 -0
  395. crackerjack/tools/mdformat_wrapper.py +114 -0
  396. crackerjack/tools/trailing_whitespace.py +198 -0
  397. crackerjack/tools/validate_regex_patterns.py +7 -3
  398. crackerjack/ui/README.md +11 -0
  399. crackerjack/ui/dashboard_renderer.py +28 -0
  400. crackerjack/ui/templates/README.md +11 -0
  401. crackerjack/utils/console_utils.py +13 -0
  402. crackerjack/utils/dependency_guard.py +230 -0
  403. crackerjack/utils/retry_utils.py +275 -0
  404. crackerjack/workflows/README.md +590 -0
  405. crackerjack/workflows/__init__.py +46 -0
  406. crackerjack/workflows/actions.py +811 -0
  407. crackerjack/workflows/auto_fix.py +444 -0
  408. crackerjack/workflows/container_builder.py +499 -0
  409. crackerjack/workflows/definitions.py +443 -0
  410. crackerjack/workflows/engine.py +177 -0
  411. crackerjack/workflows/event_bridge.py +242 -0
  412. {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/METADATA +678 -98
  413. crackerjack-0.45.2.dist-info/RECORD +478 -0
  414. {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/WHEEL +1 -1
  415. crackerjack/managers/test_manager_backup.py +0 -1075
  416. crackerjack/mcp/tools/execution_tools_backup.py +0 -1011
  417. crackerjack/mixins/__init__.py +0 -3
  418. crackerjack/mixins/error_handling.py +0 -145
  419. crackerjack/services/config.py +0 -358
  420. crackerjack/ui/server_panels.py +0 -125
  421. crackerjack-0.37.9.dist-info/RECORD +0 -231
  422. /crackerjack/adapters/{rust_tool_adapter.py → lsp/_base.py} +0 -0
  423. /crackerjack/adapters/{lsp_client.py → lsp/_client.py} +0 -0
  424. {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/entry_points.txt +0 -0
  425. {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/licenses/LICENSE +0 -0
@@ -78,6 +78,7 @@ class Options(BaseModel):
78
78
  bump: BumpOption | None = None
79
79
  verbose: bool = False
80
80
  debug: bool = False
81
+ ai_debug: bool = False # Enable verbose debugging for AI auto-fixing mode
81
82
  benchmark: bool = False
82
83
  test_workers: int = 0
83
84
  test_timeout: int = 0
@@ -88,6 +89,10 @@ class Options(BaseModel):
88
89
  skip_hooks: bool = False
89
90
  fast: bool = False
90
91
  comp: bool = False
92
+ fast_iteration: bool = False # Phase 10.2.4: Skip comprehensive hooks
93
+ tool: str | None = None # Phase 10.2.4: Run only specific tool
94
+ changed_only: bool = False # Phase 10.2.4: Run on changed files only
95
+ all_files: bool = False # Run hooks on all files (not just changed)
91
96
  async_mode: bool = False
92
97
  experimental_hooks: bool = False
93
98
  enable_pyrefly: bool = False
@@ -117,32 +122,45 @@ class Options(BaseModel):
117
122
  no_zuban_lsp: bool = False
118
123
  zuban_lsp_port: int = 8677
119
124
  zuban_lsp_mode: str = "tcp"
120
- zuban_lsp_timeout: int = 30
125
+ zuban_lsp_timeout: int = 120
121
126
  enable_lsp_hooks: bool = False
122
127
  dev: bool = False
123
128
  dashboard: bool = False
124
129
  unified_dashboard: bool = False
125
130
  unified_dashboard_port: int | None = None
126
131
  max_iterations: int = 5
127
- enterprise_batch: str | None = None
132
+ advanced_batch: str | None = None
128
133
  monitor_dashboard: str | None = None
129
134
  coverage_status: bool = False
130
135
  coverage_goal: float | None = None
131
136
  no_coverage_ratchet: bool = False
132
137
  skip_config_merge: bool = False
133
138
  disable_global_locks: bool = False
134
- global_lock_timeout: int = 600
139
+ global_lock_timeout: int = 1800
135
140
  global_lock_cleanup: bool = True
136
141
  global_lock_dir: str | None = None
137
142
  quick: bool = False
138
143
  thorough: bool = False
139
144
  clear_cache: bool = False
145
+
146
+ # Semantic search options
147
+ index: str | None = None
148
+ search: str | None = None
149
+ semantic_stats: bool = False
150
+ remove_from_index: str | None = None
140
151
  cache_stats: bool = False
141
152
 
153
+ # ACB workflow integration (Phase 4.2 COMPLETE: ACB is now the default)
154
+ # Use --use-legacy-orchestrator to revert to the old orchestration system
155
+ use_acb_workflows: bool = True # ACB workflow engine is now the default
156
+ use_legacy_orchestrator: bool = False # Opt-in to legacy orchestrator
157
+ refresh_cache: bool = False
158
+
142
159
  # Semantic field names (new primary interface)
143
160
  strip_code: bool | None = None # Replaces clean
144
161
  run_tests: bool = False # Replaces test
145
162
  ai_fix: bool | None = None # Replaces ai_agent
163
+ dry_run: bool = False # Preview fixes without applying
146
164
  full_release: str | None = None # Replaces all
147
165
  show_progress: bool | None = None # Replaces track_progress
148
166
  advanced_monitor: bool | None = None # Replaces enhanced_monitor
@@ -180,12 +198,10 @@ class Options(BaseModel):
180
198
  apply_config_updates: bool = False
181
199
  diff_config: str | None = None
182
200
  config_interactive: bool = False
183
- refresh_cache: bool = False
184
-
185
- # Enterprise features
186
- enterprise_optimizer: bool = False
187
- enterprise_profile: str | None = None
188
- enterprise_report: str | None = None
201
+ # Advanced features
202
+ advanced_optimizer: bool = False
203
+ advanced_profile: str | None = None
204
+ advanced_report: str | None = None
189
205
  mkdocs_integration: bool = False
190
206
  mkdocs_serve: bool = False
191
207
  mkdocs_theme: str = "material"
@@ -323,8 +339,8 @@ CLI_OPTIONS = {
323
339
  "update_precommit": typer.Option(
324
340
  False,
325
341
  "-u",
326
- "--update-precommit",
327
- help="Update pre-commit hooks configuration.",
342
+ "--update-hooks",
343
+ help="Update hooks configuration.",
328
344
  ),
329
345
  "verbose": typer.Option(False, "-v", "--verbose", help="Enable verbose output."),
330
346
  "debug": typer.Option(False, "--debug", help="Enable debug output."),
@@ -333,8 +349,6 @@ CLI_OPTIONS = {
333
349
  "-p",
334
350
  "--publish",
335
351
  callback=parse_bump_option_with_flag_support,
336
- is_flag=False,
337
- flag_value="interactive",
338
352
  help=(
339
353
  "Bump version and publish to PyPI (patch, minor, major, auto). "
340
354
  "Use 'interactive' to be prompted for version selection. "
@@ -368,8 +382,12 @@ CLI_OPTIONS = {
368
382
  0,
369
383
  "--test-workers",
370
384
  help=(
371
- "Number of parallel workers for running tests "
372
- "(0 = auto-detect, 1 = disable parallelization)."
385
+ "Number of parallel workers for running tests. "
386
+ "0 = auto-detect via pytest-xdist (default), "
387
+ "1 = sequential execution, "
388
+ ">1 = explicit worker count, "
389
+ "<0 = fractional (e.g., -2 = half of CPU cores). "
390
+ "Set CRACKERJACK_DISABLE_AUTO_WORKERS=1 to force sequential."
373
391
  ),
374
392
  ),
375
393
  "test_timeout": typer.Option(
@@ -384,7 +402,7 @@ CLI_OPTIONS = {
384
402
  False,
385
403
  "-s",
386
404
  "--skip-hooks",
387
- help="Skip running pre-commit hooks (useful with -t).",
405
+ help="Skip running hooks (useful with -t).",
388
406
  ),
389
407
  "fast": typer.Option(
390
408
  False,
@@ -399,6 +417,26 @@ CLI_OPTIONS = {
399
417
  "complexity analysis)."
400
418
  ),
401
419
  ),
420
+ "fast_iteration": typer.Option(
421
+ False,
422
+ "--fast-iteration",
423
+ help="Skip comprehensive hooks during active development (formatters only).",
424
+ ),
425
+ "tool": typer.Option(
426
+ None,
427
+ "--tool",
428
+ help="Run only the specified tool (e.g., 'ruff-check', 'zuban').",
429
+ ),
430
+ "changed_only": typer.Option(
431
+ False,
432
+ "--changed-only",
433
+ help="Run quality checks only on files changed in git.",
434
+ ),
435
+ "all_files": typer.Option(
436
+ False,
437
+ "--all-files",
438
+ help="Run hooks on all files (not just changed files). Useful for CI/CD or after dependency updates.",
439
+ ),
402
440
  "create_pr": typer.Option(
403
441
  False,
404
442
  "-r",
@@ -430,7 +468,7 @@ CLI_OPTIONS = {
430
468
  "experimental_hooks": typer.Option(
431
469
  False,
432
470
  "--experimental-hooks",
433
- help="Enable experimental pre-commit hooks (includes pyrefly and ty).",
471
+ help="Enable experimental hooks (includes pyrefly and ty).",
434
472
  ),
435
473
  "enable_pyrefly": typer.Option(
436
474
  False,
@@ -577,9 +615,9 @@ CLI_OPTIONS = {
577
615
  help="Port for unified dashboard server (default: 8675).",
578
616
  ),
579
617
  "max_iterations": typer.Option(
580
- 5,
618
+ 10,
581
619
  "--max-iterations",
582
- help="Maximum number of iterations for AI agent auto-fixing workflows (default: 5).",
620
+ help="Maximum auto-fix iterations (default: 10).",
583
621
  ),
584
622
  "ai_debug": typer.Option(
585
623
  False,
@@ -700,10 +738,17 @@ CLI_OPTIONS = {
700
738
  None,
701
739
  "--ai-fix",
702
740
  help=(
703
- "Enable AI-powered automatic fixing of code quality issues "
704
- "and test failures."
741
+ "Enable AI-powered auto-fixing. "
742
+ "Iteratively fixes code issues using Claude AI. "
743
+ "Requires ANTHROPIC_API_KEY environment variable. "
744
+ "Max 10 iterations, stops when all hooks pass."
705
745
  ),
706
746
  ),
747
+ "dry_run": typer.Option(
748
+ False,
749
+ "--dry-run",
750
+ help="Preview fixes without modifying files (implies --ai-fix).",
751
+ ),
707
752
  "full_release": typer.Option(
708
753
  None,
709
754
  "-a",
@@ -847,21 +892,21 @@ CLI_OPTIONS = {
847
892
  "--analytics-dashboard",
848
893
  help="Output file path for analytics dashboard (HTML format).",
849
894
  ),
850
- # Enterprise features
851
- "enterprise_optimizer": typer.Option(
895
+ # Advanced features
896
+ "advanced_optimizer": typer.Option(
852
897
  False,
853
- "--enterprise-optimizer",
854
- help="Enable enterprise-scale optimization engine with resource monitoring and scaling analysis.",
898
+ "--advanced-optimizer",
899
+ help="Enable advanced-scale optimization engine with resource monitoring and scaling analysis.",
855
900
  ),
856
- "enterprise_profile": typer.Option(
901
+ "advanced_profile": typer.Option(
857
902
  None,
858
- "--enterprise-profile",
859
- help="Enterprise optimization profile: balanced, performance, memory, throughput.",
903
+ "--advanced-profile",
904
+ help="Advanced optimization profile: balanced, performance, memory, throughput.",
860
905
  ),
861
- "enterprise_report": typer.Option(
906
+ "advanced_report": typer.Option(
862
907
  None,
863
- "--enterprise-report",
864
- help="Output file path for enterprise optimization report (JSON format).",
908
+ "--advanced-report",
909
+ help="Output file path for advanced optimization report (JSON format).",
865
910
  ),
866
911
  "mkdocs_integration": typer.Option(
867
912
  False,
@@ -922,7 +967,41 @@ CLI_OPTIONS = {
922
967
  "refresh_cache": typer.Option(
923
968
  False,
924
969
  "--refresh-cache",
925
- help="Refresh pre-commit cache to ensure fresh environment.",
970
+ help="Refresh cache to ensure fresh environment.",
971
+ ),
972
+ # ACB workflow integration (Phase 4.2 COMPLETE - ACB is now the default)
973
+ "use_acb_workflows": typer.Option(
974
+ True, # ACB workflows are now the default
975
+ "--use-acb-workflows",
976
+ help="[DEFAULT - REDUNDANT] ACB is now always used (kept for compatibility).",
977
+ hidden=True, # Hidden since it's redundant (ACB is always the default)
978
+ ),
979
+ "use_legacy_orchestrator": typer.Option(
980
+ False,
981
+ "--use-legacy-orchestrator/--no-use-legacy-orchestrator",
982
+ help="Opt out of ACB workflows and use legacy orchestrator (for compatibility).",
983
+ hidden=False,
984
+ ),
985
+ # Semantic search options
986
+ "index": typer.Option(
987
+ None,
988
+ "--index",
989
+ help="Index a file or directory for semantic search (e.g., --index path/to/file.py).",
990
+ ),
991
+ "search": typer.Option(
992
+ None,
993
+ "--search",
994
+ help="Perform semantic search across indexed files (e.g., --search 'similarity calculation').",
995
+ ),
996
+ "semantic_stats": typer.Option(
997
+ False,
998
+ "--semantic-stats",
999
+ help="Display statistics about the semantic search index.",
1000
+ ),
1001
+ "remove_from_index": typer.Option(
1002
+ None,
1003
+ "--remove-from-index",
1004
+ help="Remove a file from the semantic search index (e.g., --remove-from-index path/to/file.py).",
926
1005
  ),
927
1006
  }
928
1007
 
@@ -934,90 +1013,97 @@ def create_options(
934
1013
  update_precommit: bool,
935
1014
  verbose: bool,
936
1015
  debug: bool,
937
- publish: str | None,
938
- bump: str | None,
1016
+ publish: BumpOption | None,
1017
+ bump: BumpOption | None,
939
1018
  benchmark: bool,
940
1019
  test_workers: int,
941
1020
  test_timeout: int,
942
1021
  skip_hooks: bool,
943
1022
  fast: bool,
944
1023
  comp: bool,
945
- create_pr: bool,
946
- async_mode: bool,
947
- experimental_hooks: bool,
948
- enable_pyrefly: bool,
949
- enable_ty: bool,
950
- start_zuban_lsp: bool,
951
- stop_zuban_lsp: bool,
952
- restart_zuban_lsp: bool,
953
- no_zuban_lsp: bool,
954
- zuban_lsp_port: int,
955
- zuban_lsp_mode: str,
956
- zuban_lsp_timeout: int,
957
- enable_lsp_hooks: bool,
958
- no_git_tags: bool,
959
- skip_version_check: bool,
960
- orchestrated: bool,
961
- orchestration_strategy: str,
962
- orchestration_progress: str,
963
- orchestration_ai_mode: str,
964
- dev: bool,
965
- dashboard: bool,
966
- unified_dashboard: bool,
967
- unified_dashboard_port: int | None,
968
- max_iterations: int,
969
- coverage_status: bool,
970
- coverage_goal: float | None,
971
- no_coverage_ratchet: bool,
972
- boost_coverage: bool,
973
- disable_global_locks: bool,
974
- global_lock_timeout: int,
975
- global_lock_cleanup: bool,
976
- global_lock_dir: str | None,
977
- quick: bool,
978
- thorough: bool,
979
- clear_cache: bool,
980
- cache_stats: bool,
981
- generate_docs: bool,
982
- docs_format: str,
983
- validate_docs: bool,
984
- generate_changelog: bool,
985
- changelog_version: str | None,
986
- changelog_since: str | None,
987
- changelog_dry_run: bool,
988
- auto_version: bool,
989
- version_since: str | None,
990
- accept_version: bool,
991
- smart_commit: bool,
992
- heatmap: bool,
993
- heatmap_type: str,
994
- heatmap_output: str | None,
995
- anomaly_detection: bool,
996
- anomaly_sensitivity: float,
997
- anomaly_report: str | None,
998
- predictive_analytics: bool,
999
- prediction_periods: int,
1000
- analytics_dashboard: str | None,
1001
- # Enterprise features
1002
- enterprise_optimizer: bool,
1003
- enterprise_profile: str | None,
1004
- enterprise_report: str | None,
1005
- mkdocs_integration: bool,
1006
- mkdocs_serve: bool,
1007
- mkdocs_theme: str,
1008
- mkdocs_output: str | None,
1009
- contextual_ai: bool,
1010
- ai_recommendations: int,
1011
- ai_help_query: str | None,
1012
- check_config_updates: bool,
1013
- apply_config_updates: bool,
1014
- diff_config: str | None,
1015
- config_interactive: bool,
1016
- refresh_cache: bool,
1024
+ fast_iteration: bool = False,
1025
+ tool: str | None = None,
1026
+ changed_only: bool = False,
1027
+ all_files: bool = False,
1028
+ create_pr: bool = False,
1029
+ async_mode: bool = False,
1030
+ experimental_hooks: bool = False,
1031
+ enable_pyrefly: bool = False,
1032
+ enable_ty: bool = False,
1033
+ start_zuban_lsp: bool = False,
1034
+ stop_zuban_lsp: bool = False,
1035
+ restart_zuban_lsp: bool = False,
1036
+ no_zuban_lsp: bool = False,
1037
+ zuban_lsp_port: int = 8677,
1038
+ zuban_lsp_mode: str = "tcp",
1039
+ zuban_lsp_timeout: int = 120,
1040
+ enable_lsp_hooks: bool = False,
1041
+ no_git_tags: bool = False,
1042
+ skip_version_check: bool = False,
1043
+ orchestrated: bool = False,
1044
+ orchestration_strategy: str = "adaptive",
1045
+ orchestration_progress: str = "granular",
1046
+ orchestration_ai_mode: str = "single-agent",
1047
+ dev: bool = False,
1048
+ dashboard: bool = False,
1049
+ unified_dashboard: bool = False,
1050
+ unified_dashboard_port: int | None = None,
1051
+ max_iterations: int = 10,
1052
+ coverage_status: bool = False,
1053
+ coverage_goal: float | None = None,
1054
+ no_coverage_ratchet: bool = False,
1055
+ boost_coverage: bool = True,
1056
+ disable_global_locks: bool = False,
1057
+ global_lock_timeout: int = 1800,
1058
+ global_lock_cleanup: bool = True,
1059
+ global_lock_dir: str | None = None,
1060
+ quick: bool = False,
1061
+ thorough: bool = False,
1062
+ clear_cache: bool = False,
1063
+ cache_stats: bool = False,
1064
+ generate_docs: bool = False,
1065
+ docs_format: str = "markdown",
1066
+ validate_docs: bool = False,
1067
+ generate_changelog: bool = False,
1068
+ changelog_version: str | None = None,
1069
+ changelog_since: str | None = None,
1070
+ changelog_dry_run: bool = False,
1071
+ auto_version: bool = False,
1072
+ version_since: str | None = None,
1073
+ accept_version: bool = False,
1074
+ smart_commit: bool = True,
1075
+ heatmap: bool = False,
1076
+ heatmap_type: str = "error_frequency",
1077
+ heatmap_output: str | None = None,
1078
+ anomaly_detection: bool = False,
1079
+ anomaly_sensitivity: float = 2.0,
1080
+ anomaly_report: str | None = None,
1081
+ predictive_analytics: bool = False,
1082
+ prediction_periods: int = 10,
1083
+ analytics_dashboard: str | None = None,
1084
+ # Advanced features
1085
+ advanced_optimizer: bool = False,
1086
+ advanced_profile: str | None = None,
1087
+ advanced_report: str | None = None,
1088
+ mkdocs_integration: bool = False,
1089
+ mkdocs_serve: bool = False,
1090
+ mkdocs_theme: str = "material",
1091
+ mkdocs_output: str | None = None,
1092
+ contextual_ai: bool = False,
1093
+ ai_recommendations: int = 5,
1094
+ ai_help_query: str | None = None,
1095
+ check_config_updates: bool = False,
1096
+ apply_config_updates: bool = False,
1097
+ diff_config: str | None = None,
1098
+ config_interactive: bool = False,
1099
+ refresh_cache: bool = False,
1100
+ use_acb_workflows: bool = True,
1101
+ use_legacy_orchestrator: bool = False,
1017
1102
  # New semantic parameters
1018
1103
  strip_code: bool | None = None,
1019
1104
  run_tests: bool = False,
1020
1105
  ai_fix: bool | None = None,
1106
+ dry_run: bool = False,
1021
1107
  full_release: str | None = None,
1022
1108
  show_progress: bool | None = None,
1023
1109
  advanced_monitor: bool | None = None,
@@ -1039,6 +1125,10 @@ def create_options(
1039
1125
  skip_hooks=skip_hooks,
1040
1126
  fast=fast,
1041
1127
  comp=comp,
1128
+ fast_iteration=fast_iteration,
1129
+ tool=tool,
1130
+ changed_only=changed_only,
1131
+ all_files=all_files,
1042
1132
  create_pr=create_pr,
1043
1133
  async_mode=async_mode,
1044
1134
  experimental_hooks=experimental_hooks,
@@ -1095,10 +1185,10 @@ def create_options(
1095
1185
  predictive_analytics=predictive_analytics,
1096
1186
  prediction_periods=prediction_periods,
1097
1187
  analytics_dashboard=analytics_dashboard,
1098
- # Enterprise features
1099
- enterprise_optimizer=enterprise_optimizer,
1100
- enterprise_profile=enterprise_profile,
1101
- enterprise_report=enterprise_report,
1188
+ # Advanced features
1189
+ advanced_optimizer=advanced_optimizer,
1190
+ advanced_profile=advanced_profile,
1191
+ advanced_report=advanced_report,
1102
1192
  mkdocs_integration=mkdocs_integration,
1103
1193
  mkdocs_serve=mkdocs_serve,
1104
1194
  mkdocs_theme=mkdocs_theme,
@@ -1111,10 +1201,13 @@ def create_options(
1111
1201
  diff_config=diff_config,
1112
1202
  config_interactive=config_interactive,
1113
1203
  refresh_cache=refresh_cache,
1204
+ use_acb_workflows=use_acb_workflows,
1205
+ use_legacy_orchestrator=use_legacy_orchestrator,
1114
1206
  # New semantic parameters
1115
1207
  strip_code=strip_code,
1116
1208
  run_tests=run_tests,
1117
1209
  ai_fix=ai_fix,
1210
+ dry_run=dry_run,
1118
1211
  full_release=full_release,
1119
1212
  show_progress=show_progress,
1120
1213
  advanced_monitor=advanced_monitor,