crackerjack 0.18.2__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 (533) hide show
  1. crackerjack/README.md +19 -0
  2. crackerjack/__init__.py +96 -2
  3. crackerjack/__main__.py +637 -138
  4. crackerjack/adapters/README.md +18 -0
  5. crackerjack/adapters/__init__.py +39 -0
  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/lsp/_base.py +194 -0
  27. crackerjack/adapters/lsp/_client.py +358 -0
  28. crackerjack/adapters/lsp/_manager.py +193 -0
  29. crackerjack/adapters/lsp/skylos.py +283 -0
  30. crackerjack/adapters/lsp/zuban.py +557 -0
  31. crackerjack/adapters/refactor/README.md +59 -0
  32. crackerjack/adapters/refactor/__init__.py +12 -0
  33. crackerjack/adapters/refactor/creosote.py +318 -0
  34. crackerjack/adapters/refactor/refurb.py +406 -0
  35. crackerjack/adapters/refactor/skylos.py +494 -0
  36. crackerjack/adapters/sast/README.md +132 -0
  37. crackerjack/adapters/sast/__init__.py +32 -0
  38. crackerjack/adapters/sast/_base.py +201 -0
  39. crackerjack/adapters/sast/bandit.py +423 -0
  40. crackerjack/adapters/sast/pyscn.py +405 -0
  41. crackerjack/adapters/sast/semgrep.py +241 -0
  42. crackerjack/adapters/security/README.md +111 -0
  43. crackerjack/adapters/security/__init__.py +17 -0
  44. crackerjack/adapters/security/gitleaks.py +339 -0
  45. crackerjack/adapters/type/README.md +52 -0
  46. crackerjack/adapters/type/__init__.py +12 -0
  47. crackerjack/adapters/type/pyrefly.py +402 -0
  48. crackerjack/adapters/type/ty.py +402 -0
  49. crackerjack/adapters/type/zuban.py +522 -0
  50. crackerjack/adapters/utility/README.md +51 -0
  51. crackerjack/adapters/utility/__init__.py +10 -0
  52. crackerjack/adapters/utility/checks.py +884 -0
  53. crackerjack/agents/README.md +264 -0
  54. crackerjack/agents/__init__.py +66 -0
  55. crackerjack/agents/architect_agent.py +238 -0
  56. crackerjack/agents/base.py +167 -0
  57. crackerjack/agents/claude_code_bridge.py +641 -0
  58. crackerjack/agents/coordinator.py +600 -0
  59. crackerjack/agents/documentation_agent.py +520 -0
  60. crackerjack/agents/dry_agent.py +585 -0
  61. crackerjack/agents/enhanced_coordinator.py +279 -0
  62. crackerjack/agents/enhanced_proactive_agent.py +185 -0
  63. crackerjack/agents/error_middleware.py +53 -0
  64. crackerjack/agents/formatting_agent.py +230 -0
  65. crackerjack/agents/helpers/__init__.py +9 -0
  66. crackerjack/agents/helpers/performance/__init__.py +22 -0
  67. crackerjack/agents/helpers/performance/performance_ast_analyzer.py +357 -0
  68. crackerjack/agents/helpers/performance/performance_pattern_detector.py +909 -0
  69. crackerjack/agents/helpers/performance/performance_recommender.py +572 -0
  70. crackerjack/agents/helpers/refactoring/__init__.py +22 -0
  71. crackerjack/agents/helpers/refactoring/code_transformer.py +536 -0
  72. crackerjack/agents/helpers/refactoring/complexity_analyzer.py +344 -0
  73. crackerjack/agents/helpers/refactoring/dead_code_detector.py +437 -0
  74. crackerjack/agents/helpers/test_creation/__init__.py +19 -0
  75. crackerjack/agents/helpers/test_creation/test_ast_analyzer.py +216 -0
  76. crackerjack/agents/helpers/test_creation/test_coverage_analyzer.py +643 -0
  77. crackerjack/agents/helpers/test_creation/test_template_generator.py +1031 -0
  78. crackerjack/agents/import_optimization_agent.py +1181 -0
  79. crackerjack/agents/performance_agent.py +325 -0
  80. crackerjack/agents/performance_helpers.py +205 -0
  81. crackerjack/agents/proactive_agent.py +55 -0
  82. crackerjack/agents/refactoring_agent.py +511 -0
  83. crackerjack/agents/refactoring_helpers.py +247 -0
  84. crackerjack/agents/security_agent.py +793 -0
  85. crackerjack/agents/semantic_agent.py +479 -0
  86. crackerjack/agents/semantic_helpers.py +356 -0
  87. crackerjack/agents/test_creation_agent.py +570 -0
  88. crackerjack/agents/test_specialist_agent.py +526 -0
  89. crackerjack/agents/tracker.py +110 -0
  90. crackerjack/api.py +647 -0
  91. crackerjack/cli/README.md +394 -0
  92. crackerjack/cli/__init__.py +24 -0
  93. crackerjack/cli/cache_handlers.py +209 -0
  94. crackerjack/cli/cache_handlers_enhanced.py +680 -0
  95. crackerjack/cli/facade.py +162 -0
  96. crackerjack/cli/formatting.py +13 -0
  97. crackerjack/cli/handlers/__init__.py +85 -0
  98. crackerjack/cli/handlers/advanced.py +103 -0
  99. crackerjack/cli/handlers/ai_features.py +62 -0
  100. crackerjack/cli/handlers/analytics.py +479 -0
  101. crackerjack/cli/handlers/changelog.py +271 -0
  102. crackerjack/cli/handlers/config_handlers.py +16 -0
  103. crackerjack/cli/handlers/coverage.py +84 -0
  104. crackerjack/cli/handlers/documentation.py +280 -0
  105. crackerjack/cli/handlers/main_handlers.py +497 -0
  106. crackerjack/cli/handlers/monitoring.py +371 -0
  107. crackerjack/cli/handlers.py +700 -0
  108. crackerjack/cli/interactive.py +488 -0
  109. crackerjack/cli/options.py +1216 -0
  110. crackerjack/cli/semantic_handlers.py +292 -0
  111. crackerjack/cli/utils.py +19 -0
  112. crackerjack/cli/version.py +19 -0
  113. crackerjack/code_cleaner.py +1307 -0
  114. crackerjack/config/README.md +472 -0
  115. crackerjack/config/__init__.py +275 -0
  116. crackerjack/config/global_lock_config.py +207 -0
  117. crackerjack/config/hooks.py +390 -0
  118. crackerjack/config/loader.py +239 -0
  119. crackerjack/config/settings.py +141 -0
  120. crackerjack/config/tool_commands.py +331 -0
  121. crackerjack/core/README.md +393 -0
  122. crackerjack/core/__init__.py +0 -0
  123. crackerjack/core/async_workflow_orchestrator.py +738 -0
  124. crackerjack/core/autofix_coordinator.py +282 -0
  125. crackerjack/core/container.py +105 -0
  126. crackerjack/core/enhanced_container.py +583 -0
  127. crackerjack/core/file_lifecycle.py +472 -0
  128. crackerjack/core/performance.py +244 -0
  129. crackerjack/core/performance_monitor.py +357 -0
  130. crackerjack/core/phase_coordinator.py +1227 -0
  131. crackerjack/core/proactive_workflow.py +267 -0
  132. crackerjack/core/resource_manager.py +425 -0
  133. crackerjack/core/retry.py +275 -0
  134. crackerjack/core/service_watchdog.py +601 -0
  135. crackerjack/core/session_coordinator.py +239 -0
  136. crackerjack/core/timeout_manager.py +563 -0
  137. crackerjack/core/websocket_lifecycle.py +410 -0
  138. crackerjack/core/workflow/__init__.py +21 -0
  139. crackerjack/core/workflow/workflow_ai_coordinator.py +863 -0
  140. crackerjack/core/workflow/workflow_event_orchestrator.py +1107 -0
  141. crackerjack/core/workflow/workflow_issue_parser.py +714 -0
  142. crackerjack/core/workflow/workflow_phase_executor.py +1158 -0
  143. crackerjack/core/workflow/workflow_security_gates.py +400 -0
  144. crackerjack/core/workflow_orchestrator.py +2243 -0
  145. crackerjack/data/README.md +11 -0
  146. crackerjack/data/__init__.py +8 -0
  147. crackerjack/data/models.py +79 -0
  148. crackerjack/data/repository.py +210 -0
  149. crackerjack/decorators/README.md +180 -0
  150. crackerjack/decorators/__init__.py +35 -0
  151. crackerjack/decorators/error_handling.py +649 -0
  152. crackerjack/decorators/error_handling_decorators.py +334 -0
  153. crackerjack/decorators/helpers.py +58 -0
  154. crackerjack/decorators/patterns.py +281 -0
  155. crackerjack/decorators/utils.py +58 -0
  156. crackerjack/docs/INDEX.md +11 -0
  157. crackerjack/docs/README.md +11 -0
  158. crackerjack/docs/generated/api/API_REFERENCE.md +10895 -0
  159. crackerjack/docs/generated/api/CLI_REFERENCE.md +109 -0
  160. crackerjack/docs/generated/api/CROSS_REFERENCES.md +1755 -0
  161. crackerjack/docs/generated/api/PROTOCOLS.md +3 -0
  162. crackerjack/docs/generated/api/SERVICES.md +1252 -0
  163. crackerjack/documentation/README.md +11 -0
  164. crackerjack/documentation/__init__.py +31 -0
  165. crackerjack/documentation/ai_templates.py +756 -0
  166. crackerjack/documentation/dual_output_generator.py +767 -0
  167. crackerjack/documentation/mkdocs_integration.py +518 -0
  168. crackerjack/documentation/reference_generator.py +1065 -0
  169. crackerjack/dynamic_config.py +678 -0
  170. crackerjack/errors.py +378 -0
  171. crackerjack/events/README.md +11 -0
  172. crackerjack/events/__init__.py +16 -0
  173. crackerjack/events/telemetry.py +175 -0
  174. crackerjack/events/workflow_bus.py +346 -0
  175. crackerjack/exceptions/README.md +301 -0
  176. crackerjack/exceptions/__init__.py +5 -0
  177. crackerjack/exceptions/config.py +4 -0
  178. crackerjack/exceptions/tool_execution_error.py +245 -0
  179. crackerjack/executors/README.md +591 -0
  180. crackerjack/executors/__init__.py +13 -0
  181. crackerjack/executors/async_hook_executor.py +938 -0
  182. crackerjack/executors/cached_hook_executor.py +316 -0
  183. crackerjack/executors/hook_executor.py +1295 -0
  184. crackerjack/executors/hook_lock_manager.py +708 -0
  185. crackerjack/executors/individual_hook_executor.py +739 -0
  186. crackerjack/executors/lsp_aware_hook_executor.py +349 -0
  187. crackerjack/executors/progress_hook_executor.py +282 -0
  188. crackerjack/executors/tool_proxy.py +433 -0
  189. crackerjack/hooks/README.md +485 -0
  190. crackerjack/hooks/lsp_hook.py +93 -0
  191. crackerjack/intelligence/README.md +557 -0
  192. crackerjack/intelligence/__init__.py +37 -0
  193. crackerjack/intelligence/adaptive_learning.py +693 -0
  194. crackerjack/intelligence/agent_orchestrator.py +485 -0
  195. crackerjack/intelligence/agent_registry.py +377 -0
  196. crackerjack/intelligence/agent_selector.py +439 -0
  197. crackerjack/intelligence/integration.py +250 -0
  198. crackerjack/interactive.py +719 -0
  199. crackerjack/managers/README.md +369 -0
  200. crackerjack/managers/__init__.py +11 -0
  201. crackerjack/managers/async_hook_manager.py +135 -0
  202. crackerjack/managers/hook_manager.py +585 -0
  203. crackerjack/managers/publish_manager.py +631 -0
  204. crackerjack/managers/test_command_builder.py +391 -0
  205. crackerjack/managers/test_executor.py +474 -0
  206. crackerjack/managers/test_manager.py +1357 -0
  207. crackerjack/managers/test_progress.py +187 -0
  208. crackerjack/mcp/README.md +374 -0
  209. crackerjack/mcp/__init__.py +0 -0
  210. crackerjack/mcp/cache.py +352 -0
  211. crackerjack/mcp/client_runner.py +121 -0
  212. crackerjack/mcp/context.py +802 -0
  213. crackerjack/mcp/dashboard.py +657 -0
  214. crackerjack/mcp/enhanced_progress_monitor.py +493 -0
  215. crackerjack/mcp/file_monitor.py +394 -0
  216. crackerjack/mcp/progress_components.py +607 -0
  217. crackerjack/mcp/progress_monitor.py +1016 -0
  218. crackerjack/mcp/rate_limiter.py +336 -0
  219. crackerjack/mcp/server.py +24 -0
  220. crackerjack/mcp/server_core.py +526 -0
  221. crackerjack/mcp/service_watchdog.py +505 -0
  222. crackerjack/mcp/state.py +407 -0
  223. crackerjack/mcp/task_manager.py +259 -0
  224. crackerjack/mcp/tools/README.md +27 -0
  225. crackerjack/mcp/tools/__init__.py +19 -0
  226. crackerjack/mcp/tools/core_tools.py +469 -0
  227. crackerjack/mcp/tools/error_analyzer.py +283 -0
  228. crackerjack/mcp/tools/execution_tools.py +384 -0
  229. crackerjack/mcp/tools/intelligence_tool_registry.py +46 -0
  230. crackerjack/mcp/tools/intelligence_tools.py +264 -0
  231. crackerjack/mcp/tools/monitoring_tools.py +628 -0
  232. crackerjack/mcp/tools/proactive_tools.py +367 -0
  233. crackerjack/mcp/tools/progress_tools.py +222 -0
  234. crackerjack/mcp/tools/semantic_tools.py +584 -0
  235. crackerjack/mcp/tools/utility_tools.py +358 -0
  236. crackerjack/mcp/tools/workflow_executor.py +699 -0
  237. crackerjack/mcp/websocket/README.md +31 -0
  238. crackerjack/mcp/websocket/__init__.py +14 -0
  239. crackerjack/mcp/websocket/app.py +54 -0
  240. crackerjack/mcp/websocket/endpoints.py +492 -0
  241. crackerjack/mcp/websocket/event_bridge.py +188 -0
  242. crackerjack/mcp/websocket/jobs.py +406 -0
  243. crackerjack/mcp/websocket/monitoring/__init__.py +25 -0
  244. crackerjack/mcp/websocket/monitoring/api/__init__.py +19 -0
  245. crackerjack/mcp/websocket/monitoring/api/dependencies.py +141 -0
  246. crackerjack/mcp/websocket/monitoring/api/heatmap.py +154 -0
  247. crackerjack/mcp/websocket/monitoring/api/intelligence.py +199 -0
  248. crackerjack/mcp/websocket/monitoring/api/metrics.py +203 -0
  249. crackerjack/mcp/websocket/monitoring/api/telemetry.py +101 -0
  250. crackerjack/mcp/websocket/monitoring/dashboard.py +18 -0
  251. crackerjack/mcp/websocket/monitoring/factory.py +109 -0
  252. crackerjack/mcp/websocket/monitoring/filters.py +10 -0
  253. crackerjack/mcp/websocket/monitoring/metrics.py +64 -0
  254. crackerjack/mcp/websocket/monitoring/models.py +90 -0
  255. crackerjack/mcp/websocket/monitoring/utils.py +171 -0
  256. crackerjack/mcp/websocket/monitoring/websocket_manager.py +78 -0
  257. crackerjack/mcp/websocket/monitoring/websockets/__init__.py +17 -0
  258. crackerjack/mcp/websocket/monitoring/websockets/dependencies.py +126 -0
  259. crackerjack/mcp/websocket/monitoring/websockets/heatmap.py +176 -0
  260. crackerjack/mcp/websocket/monitoring/websockets/intelligence.py +291 -0
  261. crackerjack/mcp/websocket/monitoring/websockets/metrics.py +291 -0
  262. crackerjack/mcp/websocket/monitoring_endpoints.py +21 -0
  263. crackerjack/mcp/websocket/server.py +174 -0
  264. crackerjack/mcp/websocket/websocket_handler.py +276 -0
  265. crackerjack/mcp/websocket_server.py +10 -0
  266. crackerjack/models/README.md +308 -0
  267. crackerjack/models/__init__.py +40 -0
  268. crackerjack/models/config.py +730 -0
  269. crackerjack/models/config_adapter.py +265 -0
  270. crackerjack/models/protocols.py +1535 -0
  271. crackerjack/models/pydantic_models.py +320 -0
  272. crackerjack/models/qa_config.py +145 -0
  273. crackerjack/models/qa_results.py +134 -0
  274. crackerjack/models/resource_protocols.py +299 -0
  275. crackerjack/models/results.py +35 -0
  276. crackerjack/models/semantic_models.py +258 -0
  277. crackerjack/models/task.py +173 -0
  278. crackerjack/models/test_models.py +60 -0
  279. crackerjack/monitoring/README.md +11 -0
  280. crackerjack/monitoring/__init__.py +0 -0
  281. crackerjack/monitoring/ai_agent_watchdog.py +405 -0
  282. crackerjack/monitoring/metrics_collector.py +427 -0
  283. crackerjack/monitoring/regression_prevention.py +580 -0
  284. crackerjack/monitoring/websocket_server.py +406 -0
  285. crackerjack/orchestration/README.md +340 -0
  286. crackerjack/orchestration/__init__.py +43 -0
  287. crackerjack/orchestration/advanced_orchestrator.py +894 -0
  288. crackerjack/orchestration/cache/README.md +312 -0
  289. crackerjack/orchestration/cache/__init__.py +37 -0
  290. crackerjack/orchestration/cache/memory_cache.py +338 -0
  291. crackerjack/orchestration/cache/tool_proxy_cache.py +340 -0
  292. crackerjack/orchestration/config.py +297 -0
  293. crackerjack/orchestration/coverage_improvement.py +180 -0
  294. crackerjack/orchestration/execution_strategies.py +361 -0
  295. crackerjack/orchestration/hook_orchestrator.py +1398 -0
  296. crackerjack/orchestration/strategies/README.md +401 -0
  297. crackerjack/orchestration/strategies/__init__.py +39 -0
  298. crackerjack/orchestration/strategies/adaptive_strategy.py +630 -0
  299. crackerjack/orchestration/strategies/parallel_strategy.py +237 -0
  300. crackerjack/orchestration/strategies/sequential_strategy.py +299 -0
  301. crackerjack/orchestration/test_progress_streamer.py +647 -0
  302. crackerjack/plugins/README.md +11 -0
  303. crackerjack/plugins/__init__.py +15 -0
  304. crackerjack/plugins/base.py +200 -0
  305. crackerjack/plugins/hooks.py +254 -0
  306. crackerjack/plugins/loader.py +335 -0
  307. crackerjack/plugins/managers.py +264 -0
  308. crackerjack/py313.py +191 -0
  309. crackerjack/security/README.md +11 -0
  310. crackerjack/security/__init__.py +0 -0
  311. crackerjack/security/audit.py +197 -0
  312. crackerjack/services/README.md +374 -0
  313. crackerjack/services/__init__.py +9 -0
  314. crackerjack/services/ai/README.md +295 -0
  315. crackerjack/services/ai/__init__.py +7 -0
  316. crackerjack/services/ai/advanced_optimizer.py +878 -0
  317. crackerjack/services/ai/contextual_ai_assistant.py +542 -0
  318. crackerjack/services/ai/embeddings.py +444 -0
  319. crackerjack/services/ai/intelligent_commit.py +328 -0
  320. crackerjack/services/ai/predictive_analytics.py +510 -0
  321. crackerjack/services/anomaly_detector.py +392 -0
  322. crackerjack/services/api_extractor.py +617 -0
  323. crackerjack/services/backup_service.py +467 -0
  324. crackerjack/services/bounded_status_operations.py +530 -0
  325. crackerjack/services/cache.py +369 -0
  326. crackerjack/services/changelog_automation.py +399 -0
  327. crackerjack/services/command_execution_service.py +305 -0
  328. crackerjack/services/config_integrity.py +132 -0
  329. crackerjack/services/config_merge.py +546 -0
  330. crackerjack/services/config_service.py +198 -0
  331. crackerjack/services/config_template.py +493 -0
  332. crackerjack/services/coverage_badge_service.py +173 -0
  333. crackerjack/services/coverage_ratchet.py +381 -0
  334. crackerjack/services/debug.py +733 -0
  335. crackerjack/services/dependency_analyzer.py +460 -0
  336. crackerjack/services/dependency_monitor.py +622 -0
  337. crackerjack/services/documentation_generator.py +493 -0
  338. crackerjack/services/documentation_service.py +704 -0
  339. crackerjack/services/enhanced_filesystem.py +497 -0
  340. crackerjack/services/enterprise_optimizer.py +865 -0
  341. crackerjack/services/error_pattern_analyzer.py +676 -0
  342. crackerjack/services/file_filter.py +221 -0
  343. crackerjack/services/file_hasher.py +149 -0
  344. crackerjack/services/file_io_service.py +361 -0
  345. crackerjack/services/file_modifier.py +615 -0
  346. crackerjack/services/filesystem.py +381 -0
  347. crackerjack/services/git.py +422 -0
  348. crackerjack/services/health_metrics.py +615 -0
  349. crackerjack/services/heatmap_generator.py +744 -0
  350. crackerjack/services/incremental_executor.py +380 -0
  351. crackerjack/services/initialization.py +823 -0
  352. crackerjack/services/input_validator.py +668 -0
  353. crackerjack/services/intelligent_commit.py +327 -0
  354. crackerjack/services/log_manager.py +289 -0
  355. crackerjack/services/logging.py +228 -0
  356. crackerjack/services/lsp_client.py +628 -0
  357. crackerjack/services/memory_optimizer.py +414 -0
  358. crackerjack/services/metrics.py +587 -0
  359. crackerjack/services/monitoring/README.md +30 -0
  360. crackerjack/services/monitoring/__init__.py +9 -0
  361. crackerjack/services/monitoring/dependency_monitor.py +678 -0
  362. crackerjack/services/monitoring/error_pattern_analyzer.py +676 -0
  363. crackerjack/services/monitoring/health_metrics.py +716 -0
  364. crackerjack/services/monitoring/metrics.py +587 -0
  365. crackerjack/services/monitoring/performance_benchmarks.py +410 -0
  366. crackerjack/services/monitoring/performance_cache.py +388 -0
  367. crackerjack/services/monitoring/performance_monitor.py +569 -0
  368. crackerjack/services/parallel_executor.py +527 -0
  369. crackerjack/services/pattern_cache.py +333 -0
  370. crackerjack/services/pattern_detector.py +478 -0
  371. crackerjack/services/patterns/__init__.py +142 -0
  372. crackerjack/services/patterns/agents.py +107 -0
  373. crackerjack/services/patterns/code/__init__.py +15 -0
  374. crackerjack/services/patterns/code/detection.py +118 -0
  375. crackerjack/services/patterns/code/imports.py +107 -0
  376. crackerjack/services/patterns/code/paths.py +159 -0
  377. crackerjack/services/patterns/code/performance.py +119 -0
  378. crackerjack/services/patterns/code/replacement.py +36 -0
  379. crackerjack/services/patterns/core.py +212 -0
  380. crackerjack/services/patterns/documentation/__init__.py +14 -0
  381. crackerjack/services/patterns/documentation/badges_markdown.py +96 -0
  382. crackerjack/services/patterns/documentation/comments_blocks.py +83 -0
  383. crackerjack/services/patterns/documentation/docstrings.py +89 -0
  384. crackerjack/services/patterns/formatting.py +226 -0
  385. crackerjack/services/patterns/operations.py +339 -0
  386. crackerjack/services/patterns/security/__init__.py +23 -0
  387. crackerjack/services/patterns/security/code_injection.py +122 -0
  388. crackerjack/services/patterns/security/credentials.py +190 -0
  389. crackerjack/services/patterns/security/path_traversal.py +221 -0
  390. crackerjack/services/patterns/security/unsafe_operations.py +216 -0
  391. crackerjack/services/patterns/templates.py +62 -0
  392. crackerjack/services/patterns/testing/__init__.py +18 -0
  393. crackerjack/services/patterns/testing/error_patterns.py +107 -0
  394. crackerjack/services/patterns/testing/pytest_output.py +126 -0
  395. crackerjack/services/patterns/tool_output/__init__.py +16 -0
  396. crackerjack/services/patterns/tool_output/bandit.py +72 -0
  397. crackerjack/services/patterns/tool_output/other.py +97 -0
  398. crackerjack/services/patterns/tool_output/pyright.py +67 -0
  399. crackerjack/services/patterns/tool_output/ruff.py +44 -0
  400. crackerjack/services/patterns/url_sanitization.py +114 -0
  401. crackerjack/services/patterns/utilities.py +42 -0
  402. crackerjack/services/patterns/utils.py +339 -0
  403. crackerjack/services/patterns/validation.py +46 -0
  404. crackerjack/services/patterns/versioning.py +62 -0
  405. crackerjack/services/predictive_analytics.py +523 -0
  406. crackerjack/services/profiler.py +280 -0
  407. crackerjack/services/quality/README.md +415 -0
  408. crackerjack/services/quality/__init__.py +11 -0
  409. crackerjack/services/quality/anomaly_detector.py +392 -0
  410. crackerjack/services/quality/pattern_cache.py +333 -0
  411. crackerjack/services/quality/pattern_detector.py +479 -0
  412. crackerjack/services/quality/qa_orchestrator.py +491 -0
  413. crackerjack/services/quality/quality_baseline.py +395 -0
  414. crackerjack/services/quality/quality_baseline_enhanced.py +649 -0
  415. crackerjack/services/quality/quality_intelligence.py +949 -0
  416. crackerjack/services/regex_patterns.py +58 -0
  417. crackerjack/services/regex_utils.py +483 -0
  418. crackerjack/services/secure_path_utils.py +524 -0
  419. crackerjack/services/secure_status_formatter.py +450 -0
  420. crackerjack/services/secure_subprocess.py +635 -0
  421. crackerjack/services/security.py +239 -0
  422. crackerjack/services/security_logger.py +495 -0
  423. crackerjack/services/server_manager.py +411 -0
  424. crackerjack/services/smart_scheduling.py +167 -0
  425. crackerjack/services/status_authentication.py +460 -0
  426. crackerjack/services/status_security_manager.py +315 -0
  427. crackerjack/services/terminal_utils.py +0 -0
  428. crackerjack/services/thread_safe_status_collector.py +441 -0
  429. crackerjack/services/tool_filter.py +368 -0
  430. crackerjack/services/tool_version_service.py +43 -0
  431. crackerjack/services/unified_config.py +115 -0
  432. crackerjack/services/validation_rate_limiter.py +220 -0
  433. crackerjack/services/vector_store.py +689 -0
  434. crackerjack/services/version_analyzer.py +461 -0
  435. crackerjack/services/version_checker.py +223 -0
  436. crackerjack/services/websocket_resource_limiter.py +438 -0
  437. crackerjack/services/zuban_lsp_service.py +391 -0
  438. crackerjack/slash_commands/README.md +11 -0
  439. crackerjack/slash_commands/__init__.py +59 -0
  440. crackerjack/slash_commands/init.md +112 -0
  441. crackerjack/slash_commands/run.md +197 -0
  442. crackerjack/slash_commands/status.md +127 -0
  443. crackerjack/tools/README.md +11 -0
  444. crackerjack/tools/__init__.py +30 -0
  445. crackerjack/tools/_git_utils.py +105 -0
  446. crackerjack/tools/check_added_large_files.py +139 -0
  447. crackerjack/tools/check_ast.py +105 -0
  448. crackerjack/tools/check_json.py +103 -0
  449. crackerjack/tools/check_jsonschema.py +297 -0
  450. crackerjack/tools/check_toml.py +103 -0
  451. crackerjack/tools/check_yaml.py +110 -0
  452. crackerjack/tools/codespell_wrapper.py +72 -0
  453. crackerjack/tools/end_of_file_fixer.py +202 -0
  454. crackerjack/tools/format_json.py +128 -0
  455. crackerjack/tools/mdformat_wrapper.py +114 -0
  456. crackerjack/tools/trailing_whitespace.py +198 -0
  457. crackerjack/tools/validate_input_validator_patterns.py +236 -0
  458. crackerjack/tools/validate_regex_patterns.py +188 -0
  459. crackerjack/ui/README.md +11 -0
  460. crackerjack/ui/__init__.py +1 -0
  461. crackerjack/ui/dashboard_renderer.py +28 -0
  462. crackerjack/ui/templates/README.md +11 -0
  463. crackerjack/utils/console_utils.py +13 -0
  464. crackerjack/utils/dependency_guard.py +230 -0
  465. crackerjack/utils/retry_utils.py +275 -0
  466. crackerjack/workflows/README.md +590 -0
  467. crackerjack/workflows/__init__.py +46 -0
  468. crackerjack/workflows/actions.py +811 -0
  469. crackerjack/workflows/auto_fix.py +444 -0
  470. crackerjack/workflows/container_builder.py +499 -0
  471. crackerjack/workflows/definitions.py +443 -0
  472. crackerjack/workflows/engine.py +177 -0
  473. crackerjack/workflows/event_bridge.py +242 -0
  474. crackerjack-0.45.2.dist-info/METADATA +1678 -0
  475. crackerjack-0.45.2.dist-info/RECORD +478 -0
  476. {crackerjack-0.18.2.dist-info → crackerjack-0.45.2.dist-info}/WHEEL +1 -1
  477. crackerjack-0.45.2.dist-info/entry_points.txt +2 -0
  478. crackerjack/.gitignore +0 -14
  479. crackerjack/.libcst.codemod.yaml +0 -18
  480. crackerjack/.pdm.toml +0 -1
  481. crackerjack/.pre-commit-config.yaml +0 -91
  482. crackerjack/.pytest_cache/.gitignore +0 -2
  483. crackerjack/.pytest_cache/CACHEDIR.TAG +0 -4
  484. crackerjack/.pytest_cache/README.md +0 -8
  485. crackerjack/.pytest_cache/v/cache/nodeids +0 -1
  486. crackerjack/.pytest_cache/v/cache/stepwise +0 -1
  487. crackerjack/.ruff_cache/.gitignore +0 -1
  488. crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
  489. crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
  490. crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
  491. crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
  492. crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
  493. crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
  494. crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
  495. crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
  496. crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
  497. crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
  498. crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
  499. crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
  500. crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
  501. crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
  502. crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
  503. crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
  504. crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
  505. crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
  506. crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
  507. crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
  508. crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
  509. crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
  510. crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
  511. crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
  512. crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
  513. crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
  514. crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
  515. crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
  516. crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
  517. crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
  518. crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
  519. crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
  520. crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
  521. crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
  522. crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
  523. crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
  524. crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
  525. crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
  526. crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
  527. crackerjack/.ruff_cache/CACHEDIR.TAG +0 -1
  528. crackerjack/crackerjack.py +0 -855
  529. crackerjack/pyproject.toml +0 -214
  530. crackerjack-0.18.2.dist-info/METADATA +0 -420
  531. crackerjack-0.18.2.dist-info/RECORD +0 -59
  532. crackerjack-0.18.2.dist-info/entry_points.txt +0 -4
  533. {crackerjack-0.18.2.dist-info → crackerjack-0.45.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,374 @@
1
+ > Crackerjack Docs: [Main](<../../README.md>) | [CLAUDE.md](../../docs/guides/CLAUDE.md) | [Services](<./README.md>)
2
+
3
+ # Services
4
+
5
+ Service abstractions and provider integrations for infrastructure, quality, monitoring, and AI capabilities.
6
+
7
+ ## Overview
8
+
9
+ The services package contains 60+ specialized service modules organized into functional categories. Services handle infrastructure concerns (filesystem, git, config), quality enforcement, monitoring, security, and AI integration. Most services follow ACB patterns with dependency injection and lifecycle management.
10
+
11
+ ## Service Categories
12
+
13
+ ### Core Infrastructure
14
+
15
+ **Filesystem & File Operations**
16
+
17
+ - `filesystem.py`: Core filesystem operations with path validation
18
+ - `enhanced_filesystem.py`: Advanced filesystem operations with atomic writes
19
+ - `file_modifier.py`: Safe file modification with backup and rollback
20
+ - `file_filter.py`: File filtering and pattern matching
21
+ - `file_hasher.py`: Content hashing for change detection
22
+ - `backup_service.py`: Automated backup creation and management
23
+
24
+ **Version Control**
25
+
26
+ - `git.py`: Git operations (commit, push, status, branch management)
27
+ - `intelligent_commit.py`: AI-powered commit message generation
28
+ - `changelog_automation.py`: Automatic changelog generation from commits
29
+
30
+ **Configuration Management**
31
+
32
+ - `unified_config.py`: Unified configuration loading and validation
33
+ - `config_merge.py`: Intelligent configuration merging for initialization
34
+ - `config_template.py`: Configuration template management and versioning
35
+ - `config_integrity.py`: Configuration validation and integrity checking
36
+
37
+ **Initialization**
38
+
39
+ - `initialization.py`: Project initialization and setup workflows
40
+
41
+ ### Quality & Testing
42
+
43
+ **Coverage & Testing**
44
+
45
+ - `coverage_ratchet.py`: Coverage ratchet system (never decrease coverage)
46
+ - `coverage_badge_service.py`: Coverage badge generation and updates
47
+ - `incremental_executor.py`: Incremental test execution
48
+ - `parallel_executor.py`: Parallel test execution with pytest-xdist
49
+
50
+ **Quality Enforcement**
51
+
52
+ - `tool_filter.py`: Quality tool filtering and selection
53
+ - `tool_version_service.py`: Tool version management and compatibility
54
+ - `quality/` subdirectory — Quality-specific services
55
+
56
+ ### Security
57
+
58
+ **Input Validation & Security**
59
+
60
+ - `input_validator.py`: Comprehensive input validation framework
61
+ - `validation_rate_limiter.py`: Rate limiting for validation failures
62
+ - `security.py`: Core security utilities and validation
63
+ - `security_logger.py`: Security event logging with severity levels
64
+ - `secure_path_utils.py`: Path traversal prevention and validation
65
+ - `secure_subprocess.py`: Safe subprocess execution without shell injection
66
+
67
+ **Status & Authentication**
68
+
69
+ - `status_security_manager.py`: Security manager for status operations
70
+ - `status_authentication.py`: Authentication for status endpoints
71
+ - `bounded_status_operations.py`: Bounded operations for status queries
72
+ - `thread_safe_status_collector.py`: Thread-safe status data collection
73
+ - `secure_status_formatter.py`: Secure formatting for status output
74
+
75
+ **Resource Management**
76
+
77
+ - `websocket_resource_limiter.py`: WebSocket connection and resource limits
78
+
79
+ ### Monitoring & Metrics
80
+
81
+ **Health & Metrics**
82
+
83
+ - `health_metrics.py`: Health metrics collection and reporting
84
+ - `metrics.py`: General metrics tracking and aggregation
85
+ - `profiler.py`: Performance profiling and analysis
86
+ - `dependency_monitor.py`: Dependency health monitoring
87
+ - `monitoring/` subdirectory — Monitoring-specific services
88
+
89
+ **Debugging & Logging**
90
+
91
+ - `debug.py`: Debug utilities and helpers
92
+ - `logging.py`: Structured logging configuration
93
+ - `log_manager.py`: Log file management and rotation
94
+
95
+ ### Pattern Analysis & Intelligence
96
+
97
+ **Pattern Detection & Analysis**
98
+
99
+ - `regex_patterns.py`: Centralized regex pattern registry (advanced-grade)
100
+ - `regex_utils.py`: Regex utilities and validation
101
+ - `pattern_detector.py`: Code pattern detection and analysis
102
+ - `pattern_cache.py`: Pattern caching for performance
103
+ - `error_pattern_analyzer.py`: Error pattern analysis and categorization
104
+
105
+ **AI & Intelligence**
106
+
107
+ - `anomaly_detector.py`: Anomaly detection in code and metrics
108
+ - `predictive_analytics.py`: Predictive analytics for quality trends
109
+ - `ai/` subdirectory — AI-specific services
110
+ - `vector_store.py`: Vector storage for semantic search
111
+
112
+ **Analysis & Optimization**
113
+
114
+ - `dependency_analyzer.py`: Dependency graph analysis
115
+ - `version_analyzer.py`: Version compatibility analysis
116
+ - `heatmap_generator.py`: Code complexity heatmap generation
117
+ - `memory_optimizer.py`: Memory usage optimization
118
+ - `enterprise_optimizer.py`: Enterprise-level optimization strategies
119
+
120
+ ### Documentation & Code Analysis
121
+
122
+ **Documentation**
123
+
124
+ - `documentation_generator.py`: Automated API documentation generation
125
+ - `documentation_service.py`: Documentation management and updates
126
+
127
+ **Code Intelligence**
128
+
129
+ - `api_extractor.py`: API surface extraction and analysis
130
+ - `smart_scheduling.py`: Intelligent task scheduling
131
+
132
+ ### Language Server Protocol (LSP)
133
+
134
+ **LSP Integration**
135
+
136
+ - `lsp_client.py`: Generic LSP client implementation
137
+ - `zuban_lsp_service.py`: Zuban LSP service integration
138
+ - `server_manager.py`: LSP server lifecycle management
139
+
140
+ ### Utilities
141
+
142
+ **Cache & Performance**
143
+
144
+ - `cache.py`: General-purpose caching
145
+ - `terminal_utils.py`: Terminal and console utilities
146
+ - `version_checker.py`: Version checking and updates
147
+
148
+ ## Architecture
149
+
150
+ ### ACB Compliance Status
151
+
152
+ Based on Phase 2-4 refactoring audit:
153
+
154
+ | Category | Compliance | Status | Notes |
155
+ |----------|-----------|--------|-------|
156
+ | Core Infrastructure | 95% | ✅ Excellent | Phase 3 refactored, consistent constructors |
157
+ | Security Services | 95% | ✅ Excellent | Comprehensive validation and logging |
158
+ | Quality Services | 90% | ✅ Good | Coverage ratchet, testing infrastructure |
159
+ | Monitoring Services | 85% | ✅ Good | Health metrics, profiling |
160
+ | LSP Services | 80% | ✅ Good | Server management, client integration |
161
+ | AI Services | 75% | ⚠️ Mixed | Some legacy patterns remain |
162
+
163
+ ### Dependency Injection Pattern
164
+
165
+ Most services follow ACB dependency injection:
166
+
167
+ ```python
168
+ from acb.depends import depends, Inject
169
+ from crackerjack.models.protocols import Console, CrackerjackCache
170
+
171
+
172
+ @depends.inject
173
+ class FileSystemService:
174
+ def __init__(
175
+ self,
176
+ console: Inject[Console] = None,
177
+ cache: Inject[CrackerjackCache] = None,
178
+ ) -> None:
179
+ self.console = console
180
+ self.cache = cache
181
+
182
+ async def init(self) -> None:
183
+ # Async initialization if needed
184
+ pass
185
+ ```
186
+
187
+ ## Usage Examples
188
+
189
+ ### Filesystem Operations
190
+
191
+ ```python
192
+ from crackerjack.services.filesystem import FileSystemService
193
+
194
+ fs = FileSystemService()
195
+ await fs.init()
196
+
197
+ # Safe file operations
198
+ content = await fs.read_file(Path("config.yaml"))
199
+ await fs.write_file(Path("output.txt"), "data")
200
+ ```
201
+
202
+ ### Git Operations
203
+
204
+ ```python
205
+ from crackerjack.services.git import GitService
206
+
207
+ git = GitService()
208
+ await git.init()
209
+
210
+ # Commit with intelligent message
211
+ await git.commit_changes(
212
+ message="Auto-generated commit message", files=["file1.py", "file2.py"]
213
+ )
214
+ ```
215
+
216
+ ### Coverage Ratchet
217
+
218
+ ```python
219
+ from crackerjack.services.coverage_ratchet import CoverageRatchet
220
+
221
+ ratchet = CoverageRatchet()
222
+ current = 21.6
223
+ baseline = 19.6
224
+
225
+ if ratchet.validate_coverage(current, baseline):
226
+ print("Coverage improved!")
227
+ ```
228
+
229
+ ### Security Validation
230
+
231
+ ```python
232
+ from crackerjack.services.input_validator import get_input_validator
233
+
234
+ validator = get_input_validator()
235
+ result = validator.validate_command_args("safe_command arg1 arg2")
236
+
237
+ if result.valid:
238
+ # Safe to execute
239
+ execute(result.sanitized_value)
240
+ ```
241
+
242
+ ### Pattern Detection
243
+
244
+ ```python
245
+ from crackerjack.services.regex_patterns import SAFE_PATTERNS
246
+
247
+ # Use centralized, validated patterns
248
+ text = SAFE_PATTERNS["fix_hyphenated_names"].apply(text)
249
+ ```
250
+
251
+ ## Service Subdirectories
252
+
253
+ ### AI Services (`ai/`)
254
+
255
+ AI-specific services for code analysis and generation:
256
+
257
+ - Claude integration
258
+ - Code generation
259
+ - Semantic analysis
260
+ - See [ai/README.md](<./ai/README.md>)
261
+
262
+ ### Monitoring Services (`monitoring/`)
263
+
264
+ Health and performance monitoring:
265
+
266
+ - Real-time metrics
267
+ - Performance tracking
268
+ - Resource monitoring
269
+ - See [monitoring/README.md](<./monitoring/README.md>)
270
+
271
+ ### Quality Services (`quality/`)
272
+
273
+ Quality enforcement and tracking:
274
+
275
+ - Quality metrics
276
+ - Standards enforcement
277
+ - Compliance tracking
278
+ - See [quality/README.md](<./quality/README.md>)
279
+
280
+ ### Pattern Services (`patterns/`)
281
+
282
+ Pattern detection and analysis:
283
+
284
+ - Code pattern recognition
285
+ - Anti-pattern detection
286
+ - Pattern libraries
287
+ - See [patterns/README.md](./patterns/README.md) (if exists)
288
+
289
+ ## Configuration
290
+
291
+ Services use ACB Settings for configuration:
292
+
293
+ ```python
294
+ from acb.depends import depends
295
+ from crackerjack.config import CrackerjackSettings
296
+
297
+ settings = depends.get(CrackerjackSettings)
298
+ ```
299
+
300
+ Configuration files:
301
+
302
+ - `settings/crackerjack.yaml` — Base configuration
303
+ - `settings/local.yaml` — Local overrides (gitignored)
304
+
305
+ ## Security Considerations
306
+
307
+ ### Input Validation
308
+
309
+ All user input should be validated through `input_validator.py`:
310
+
311
+ ```python
312
+ from crackerjack.services.input_validator import validate_and_sanitize_string
313
+
314
+ try:
315
+ safe_input = validate_and_sanitize_string(user_input)
316
+ # Use safe_input
317
+ except ExecutionError as e:
318
+ # Handle validation failure
319
+ pass
320
+ ```
321
+
322
+ ### Path Validation
323
+
324
+ Use `secure_path_utils.py` for all path operations:
325
+
326
+ ```python
327
+ from crackerjack.services.secure_path_utils import SecurePathValidator
328
+
329
+ validated_path = SecurePathValidator.validate_file_path(
330
+ user_path, base_directory=project_root
331
+ )
332
+ ```
333
+
334
+ ### Subprocess Security
335
+
336
+ Use `secure_subprocess.py` instead of direct subprocess calls:
337
+
338
+ ```python
339
+ from crackerjack.services.secure_subprocess import SecureSubprocess
340
+
341
+ result = await SecureSubprocess.run_command(
342
+ ["python", "-m", "pytest"], cwd=project_root
343
+ )
344
+ ```
345
+
346
+ ## Best Practices
347
+
348
+ 1. **Use DI**: Always use dependency injection via `@depends.inject`
349
+ 1. **Import Protocols**: Import from `models/protocols.py`, not concrete classes
350
+ 1. **Validate Input**: Use input_validator for all external input
351
+ 1. **Secure Paths**: Use SecurePathValidator for path operations
352
+ 1. **Centralize Patterns**: Use regex_patterns.py instead of raw regex
353
+ 1. **Handle Errors**: Use structured error handling with specific exceptions
354
+ 1. **Log Security Events**: Use security_logger for security-relevant operations
355
+ 1. **Cache Appropriately**: Use cache service for expensive operations
356
+ 1. **Async When Needed**: Use async/await for I/O-bound operations
357
+ 1. **Test Thoroughly**: Add tests for all new services
358
+
359
+ ## Related
360
+
361
+ - [Adapters](<../adapters/README.md>) — Quality tool adapters that use services
362
+ - [Managers](<../managers/README.md>) — Managers that coordinate services
363
+ - [Orchestration](<../orchestration/README.md>) — Orchestration using services
364
+ - [Config](<../config/README.md>) — ACB Settings integration
365
+ - [SECURITY.md](<../../docs/reference/SECURITY.md>) — Security documentation
366
+
367
+ ## Future Enhancements
368
+
369
+ - [ ] Standardize async/sync patterns across all services
370
+ - [ ] Add telemetry and observability
371
+ - [ ] Implement service health checks
372
+ - [ ] Add circuit breaker patterns for external services
373
+ - [ ] Create service benchmarking framework
374
+ - [ ] Develop service plugin system
@@ -0,0 +1,9 @@
1
+ """Services for crackerjack.
2
+
3
+ This package contains service classes that provide business logic
4
+ and operations that are used across multiple components.
5
+ """
6
+
7
+ from crackerjack.services.file_modifier import SafeFileModifier
8
+
9
+ __all__ = ["SafeFileModifier"]
@@ -0,0 +1,295 @@
1
+ > Crackerjack Docs: [Main](<../../../README.md>) | [CLAUDE.md](../../../docs/guides/CLAUDE.md) | [Services](<../README.md>) | AI Services
2
+
3
+ # AI Services
4
+
5
+ AI provider integrations and service abstractions for intelligent code analysis, optimization, and contextual assistance.
6
+
7
+ ## Overview
8
+
9
+ The AI services package provides intelligent automation capabilities powered by Claude and other AI providers. These services enhance crackerjack's ability to understand code context, generate intelligent recommendations, optimize workflows, and provide predictive analytics.
10
+
11
+ ## Services
12
+
13
+ - **`contextual_ai_assistant.py`** - Context-aware AI recommendations based on project analysis
14
+ - **`intelligent_commit.py`** - AI-powered commit message generation
15
+ - **`embeddings.py`** - Vector embeddings for semantic code analysis
16
+ - **`predictive_analytics.py`** - Predictive quality trend analysis and forecasting
17
+ - **`advanced_optimizer.py`** - AI-driven code and workflow optimization
18
+
19
+ ## Features
20
+
21
+ ### Contextual AI Assistant
22
+
23
+ Analyzes your project context to provide intelligent, prioritized recommendations:
24
+
25
+ - **Project Analysis** - Detects project type, size, languages, and configuration
26
+ - **Smart Recommendations** - Prioritized suggestions based on current project state
27
+ - **Action Commands** - Executable commands to implement recommendations
28
+ - **Confidence Scoring** - AI confidence levels for each recommendation
29
+ - **Context Caching** - Caches project analysis for performance
30
+
31
+ ### Intelligent Commit Messages
32
+
33
+ Generates meaningful commit messages from code changes:
34
+
35
+ - **Change Analysis** - Analyzes git diff to understand modifications
36
+ - **Semantic Understanding** - Recognizes refactoring, features, fixes, etc.
37
+ - **Convention Following** - Follows project commit message patterns
38
+ - **Multi-file Support** - Handles complex multi-file commits
39
+
40
+ ### Embeddings & Semantic Search
41
+
42
+ Vector-based code analysis for semantic understanding:
43
+
44
+ - **Code Vectorization** - Converts code to semantic vectors
45
+ - **Similarity Detection** - Finds semantically similar code patterns
46
+ - **Intelligent Grouping** - Groups related functionality
47
+ - **Search Enhancement** - Improves code search beyond text matching
48
+
49
+ ### Predictive Analytics
50
+
51
+ Forecasts quality trends and potential issues:
52
+
53
+ - **Coverage Trends** - Predicts coverage trajectory
54
+ - **Quality Degradation** - Detects early warning signs
55
+ - **Resource Forecasting** - Predicts resource needs
56
+ - **Risk Assessment** - Identifies high-risk code areas
57
+
58
+ ### Advanced Optimizer
59
+
60
+ AI-driven optimization strategies:
61
+
62
+ - **Performance Analysis** - Identifies optimization opportunities
63
+ - **Resource Management** - Optimizes memory and CPU usage
64
+ - **Workflow Tuning** - Optimizes development workflow efficiency
65
+ - **Pattern Learning** - Learns from successful optimizations
66
+
67
+ ## Usage Examples
68
+
69
+ ### Contextual AI Assistant
70
+
71
+ ```python
72
+ from crackerjack.services.ai import ContextualAIAssistant
73
+ from acb.depends import depends
74
+
75
+ assistant = depends.get(ContextualAIAssistant)
76
+
77
+ # Get top 5 recommendations for current project
78
+ recommendations = assistant.get_contextual_recommendations(max_recommendations=5)
79
+
80
+ for rec in recommendations:
81
+ print(f"[{rec.priority}] {rec.title}")
82
+ print(f" {rec.description}")
83
+ if rec.action_command:
84
+ print(f" Run: {rec.action_command}")
85
+ print(f" Confidence: {rec.confidence:.0%}")
86
+ ```
87
+
88
+ ### Intelligent Commit Messages
89
+
90
+ ```python
91
+ from crackerjack.services.ai import IntelligentCommitService
92
+ from acb.depends import depends
93
+
94
+ commit_service = depends.get(IntelligentCommitService)
95
+
96
+ # Generate commit message from staged changes
97
+ message = await commit_service.generate_commit_message()
98
+
99
+ # Or analyze specific files
100
+ message = await commit_service.generate_commit_message(
101
+ files=["src/main.py", "tests/test_main.py"]
102
+ )
103
+
104
+ print(f"Suggested commit message:\n{message}")
105
+ ```
106
+
107
+ ### Embeddings for Code Analysis
108
+
109
+ ```python
110
+ from crackerjack.services.ai import EmbeddingService
111
+ from acb.depends import depends
112
+
113
+ embedding_service = depends.get(EmbeddingService)
114
+
115
+ # Generate embedding for code snippet
116
+ code = """
117
+ def calculate_total(items):
118
+ return sum(item.price for item in items)
119
+ """
120
+
121
+ embedding = await embedding_service.embed_code(code)
122
+
123
+ # Find similar code
124
+ similar_snippets = await embedding_service.find_similar_code(embedding, threshold=0.85)
125
+ ```
126
+
127
+ ### Predictive Analytics
128
+
129
+ ```python
130
+ from crackerjack.services.ai import PredictiveAnalytics
131
+ from acb.depends import depends
132
+
133
+ analytics = depends.get(PredictiveAnalytics)
134
+
135
+ # Predict coverage trend
136
+ prediction = await analytics.predict_coverage_trend(
137
+ historical_data=[19.6, 20.1, 20.8, 21.6], days_ahead=30
138
+ )
139
+
140
+ print(f"Predicted coverage in 30 days: {prediction.coverage:.1%}")
141
+ print(f"Confidence: {prediction.confidence:.0%}")
142
+ print(f"Trend: {prediction.trend}") # 'improving', 'stable', 'degrading'
143
+ ```
144
+
145
+ ### Advanced Optimizer
146
+
147
+ ```python
148
+ from crackerjack.services.ai import AdvancedOptimizer
149
+ from acb.depends import depends
150
+
151
+ optimizer = depends.get(AdvancedOptimizer)
152
+
153
+ # Analyze and optimize workflow
154
+ optimization = await optimizer.optimize_workflow()
155
+
156
+ for suggestion in optimization.suggestions:
157
+ print(f"Optimization: {suggestion.title}")
158
+ print(f" Impact: {suggestion.impact}")
159
+ print(f" Effort: {suggestion.effort}")
160
+ print(f" ROI: {suggestion.roi:.1f}x")
161
+ ```
162
+
163
+ ## Architecture
164
+
165
+ ### AI Provider Integration
166
+
167
+ All AI services follow the provider abstraction pattern:
168
+
169
+ ```python
170
+ from acb.depends import depends, Inject
171
+ from crackerjack.models.protocols import Console
172
+
173
+
174
+ class AIServiceBase:
175
+ @depends.inject
176
+ def __init__(
177
+ self,
178
+ console: Inject[Console] = None,
179
+ ) -> None:
180
+ self.console = console
181
+ self.provider = self._get_ai_provider()
182
+
183
+ def _get_ai_provider(self):
184
+ # Returns configured AI provider (Claude, OpenAI, etc.)
185
+ pass
186
+ ```
187
+
188
+ ### Context-Aware Design
189
+
190
+ AI services analyze project context to provide relevant recommendations:
191
+
192
+ 1. **Project Detection** - Identifies project type, dependencies, and configuration
193
+ 1. **State Analysis** - Analyzes current quality metrics and trends
194
+ 1. **Pattern Recognition** - Recognizes code patterns and anti-patterns
195
+ 1. **Recommendation Generation** - Generates prioritized, actionable recommendations
196
+ 1. **Confidence Scoring** - Assigns confidence levels to recommendations
197
+
198
+ ## Configuration
199
+
200
+ AI services are configured through ACB Settings:
201
+
202
+ ```yaml
203
+ # settings/crackerjack.yaml
204
+ ai_enabled: true
205
+ ai_provider: "claude" # claude, openai, local
206
+ ai_model: "claude-3-sonnet"
207
+ ai_context_cache_ttl: 3600 # seconds
208
+
209
+ # Contextual assistant settings
210
+ ai_max_recommendations: 5
211
+ ai_min_confidence: 0.7
212
+
213
+ # Embeddings settings
214
+ embedding_model: "text-embedding-3-small"
215
+ embedding_dimension: 1536
216
+ ```
217
+
218
+ ## Integration with Agent System
219
+
220
+ AI services integrate with crackerjack's 12 specialized agents:
221
+
222
+ - **RefactoringAgent** - Uses AI for intelligent refactoring suggestions
223
+ - **SemanticAgent** - Leverages embeddings for semantic analysis
224
+ - **EnhancedProactiveAgent** - Uses predictive analytics for prevention
225
+ - **ArchitectAgent** - Uses AI for architectural recommendations
226
+
227
+ See [Intelligence](<../../intelligence/README.md>) for agent system details.
228
+
229
+ ## Security & Privacy
230
+
231
+ ### Data Handling
232
+
233
+ - **No Code Upload** - Code analysis happens locally when possible
234
+ - **Privacy-First** - Sensitive data filtered before AI processing
235
+ - **Opt-In Required** - AI features require explicit enablement
236
+ - **Cache Control** - Local caching of AI responses for privacy
237
+
238
+ ### API Key Management
239
+
240
+ ```python
241
+ # Use environment variables for API keys
242
+ import os
243
+
244
+ ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
245
+ OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
246
+
247
+ # Never hardcode API keys in code or configuration files
248
+ ```
249
+
250
+ ## Performance Considerations
251
+
252
+ ### Caching Strategy
253
+
254
+ AI services implement intelligent caching:
255
+
256
+ - **Context Cache** - Project analysis cached for 1 hour by default
257
+ - **Embedding Cache** - Code embeddings cached indefinitely (invalidated on change)
258
+ - **Response Cache** - AI responses cached for identical inputs
259
+ - **TTL Configuration** - Configurable cache time-to-live
260
+
261
+ ### Rate Limiting
262
+
263
+ ```python
264
+ from crackerjack.services.ai import AIRateLimiter
265
+
266
+ # Automatic rate limiting to prevent API throttling
267
+ limiter = AIRateLimiter(requests_per_minute=60)
268
+ await limiter.acquire()
269
+ ```
270
+
271
+ ## Best Practices
272
+
273
+ 1. **Enable Selectively** - Enable AI features only where valuable
274
+ 1. **Monitor Usage** - Track API usage and costs
275
+ 1. **Cache Aggressively** - Leverage caching to minimize API calls
276
+ 1. **Validate Recommendations** - Always review AI recommendations before applying
277
+ 1. **Set Confidence Thresholds** - Filter low-confidence recommendations
278
+ 1. **Use Batch Operations** - Batch similar operations to reduce API calls
279
+ 1. **Handle Failures Gracefully** - Implement fallbacks when AI unavailable
280
+
281
+ ## Related
282
+
283
+ - [Intelligence](<../../intelligence/README.md>) - Agent orchestration and selection
284
+ - [Workflows](<../../workflows/README.md>) - Workflow integration with AI services
285
+ - [Services](<../README.md>) - Parent services documentation
286
+ - [CLAUDE.md](../../../docs/guides/CLAUDE.md) - AI agent system overview
287
+
288
+ ## Future Enhancements
289
+
290
+ - [ ] Support for additional AI providers (Gemini, local LLMs)
291
+ - [ ] Fine-tuned models for code-specific tasks
292
+ - [ ] Improved embedding models for better semantic understanding
293
+ - [ ] Real-time code analysis with streaming responses
294
+ - [ ] Multi-modal analysis (code + documentation + tests)
295
+ - [ ] Agent-to-agent communication for complex tasks
@@ -0,0 +1,7 @@
1
+ """AI-driven service modules."""
2
+
3
+ from .advanced_optimizer import * # noqa: F401,F403
4
+ from .contextual_ai_assistant import * # noqa: F401,F403
5
+ from .embeddings import * # noqa: F401,F403
6
+ from .intelligent_commit import * # noqa: F401,F403
7
+ from .predictive_analytics import * # noqa: F401,F403