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
@@ -0,0 +1,590 @@
1
+ > Crackerjack Docs: [Main](<../../README.md>) | [CLAUDE.md](../../docs/guides/CLAUDE.md) | Workflows
2
+
3
+ # Workflows
4
+
5
+ Declarative workflow orchestration combining agents, services, and executors with ACB workflow engine integration.
6
+
7
+ ## Overview
8
+
9
+ The workflows package provides high-level workflow definitions and execution engines that coordinate multiple components (hooks, tests, agents) to accomplish complex tasks. Built on ACB's workflow engine, it supports automatic parallelization, event-driven coordination, and declarative workflow definitions.
10
+
11
+ ## Core Components
12
+
13
+ ### CrackerjackWorkflowEngine (`engine.py`)
14
+
15
+ ACB workflow engine with event bridge for backward compatibility:
16
+
17
+ **Features:**
18
+
19
+ - **Automatic Parallel Execution** - Dependency-based parallel step execution
20
+ - **Event Bridge** - Emits crackerjack-specific events for backward compatibility
21
+ - **Built-in Retry Logic** - Exponential backoff for transient failures
22
+ - **State Management** - Tracks workflow and step states
23
+ - **DI-Based Actions** - Dependency injection for action handlers
24
+ - **Timing & Metrics** - Automatic execution time tracking
25
+
26
+ **Key Capabilities:**
27
+
28
+ ```python
29
+ class CrackerjackWorkflowEngine(BasicWorkflowEngine):
30
+ async def execute(
31
+ self, workflow: WorkflowDefinition, context: dict | None = None
32
+ ) -> WorkflowResult:
33
+ """Execute workflow with parallel step execution."""
34
+ ```
35
+
36
+ ### Workflow Definitions (`definitions.py`)
37
+
38
+ Declarative workflow structures using ACB's WorkflowDefinition:
39
+
40
+ **Available Workflows:**
41
+
42
+ 1. **FAST_HOOKS_WORKFLOW** - Quick formatters and basic checks (~5s)
43
+ 1. **COMPREHENSIVE_HOOKS_WORKFLOW** - Type checking, security, complexity (~30s)
44
+ 1. **STANDARD_WORKFLOW** - Full quality checks with parallel phases
45
+ 1. **TEST_WORKFLOW** - Test execution with coverage reporting
46
+ 1. **COMMIT_WORKFLOW** - Pre-commit validation workflow
47
+ 1. **PUBLISH_WORKFLOW** - PyPI publishing workflow
48
+ 1. **COMPREHENSIVE_PARALLEL_WORKFLOW** - Maximum parallelization
49
+
50
+ **Workflow Selection:**
51
+
52
+ ```python
53
+ def select_workflow_for_options(options: OptionsProtocol) -> WorkflowDefinition:
54
+ """Select appropriate workflow based on CLI options."""
55
+ ```
56
+
57
+ ### Action Registry (`actions.py`)
58
+
59
+ Registry of workflow action handlers:
60
+
61
+ **Features:**
62
+
63
+ - **Action Registration** - Register custom action handlers
64
+ - **DI Integration** - Actions automatically get dependencies injected
65
+ - **Error Handling** - Standardized error handling for actions
66
+ - **Context Passing** - Pass state between workflow steps
67
+
68
+ **Built-in Actions:**
69
+
70
+ - `run_configuration` - Configure project settings
71
+ - `run_fast_hooks` - Execute fast quality hooks
72
+ - `run_comprehensive_hooks` - Execute comprehensive hooks
73
+ - `run_tests` - Run test suite with pytest
74
+ - `run_code_cleaning` - Code cleaning and optimization
75
+ - `run_ai_fixing` - AI-powered automatic fixing
76
+ - `run_commit` - Git commit with validation
77
+ - `run_publish` - PyPI package publishing
78
+
79
+ ### Event Bridge (`event_bridge.py`)
80
+
81
+ Adapter translating ACB workflow events to crackerjack events:
82
+
83
+ **Features:**
84
+
85
+ - **Backward Compatibility** - Maintains compatibility with existing event consumers
86
+ - **Event Translation** - Maps WorkflowStep to crackerjack events
87
+ - **State Mapping** - Translates workflow states to step events
88
+ - **Progress Tracking** - Emits progress events for UI updates
89
+
90
+ ### Container Builder (`container_builder.py`)
91
+
92
+ Builds DI containers for workflow execution:
93
+
94
+ **Features:**
95
+
96
+ - **Dependency Registration** - Registers all workflow dependencies
97
+ - **Service Configuration** - Configures services based on options
98
+ - **Lifecycle Management** - Manages service initialization/cleanup
99
+ - **Context Isolation** - Isolates workflow execution contexts
100
+
101
+ ### AutoFixWorkflow (`auto_fix.py`)
102
+
103
+ Legacy iterative auto-fix workflow (pre-ACB integration):
104
+
105
+ **Features:**
106
+
107
+ - **Iterative Fixing** - Multiple fix iterations until success
108
+ - **Pattern Learning** - Learns from successful fixes
109
+ - **Quality Gates** - Validates fixes meet quality standards
110
+ - **Rollback Support** - Can rollback failed iterations
111
+
112
+ ## Workflow Definitions
113
+
114
+ ### Fast Hooks Workflow
115
+
116
+ Quick quality checks for rapid feedback (~5s):
117
+
118
+ ```python
119
+ FAST_HOOKS_WORKFLOW = WorkflowDefinition(
120
+ workflow_id="crackerjack-fast-hooks",
121
+ name="Fast Quality Checks",
122
+ description="Quick formatters, import sorting, and basic static analysis",
123
+ steps=[
124
+ WorkflowStep(
125
+ step_id="config",
126
+ name="Configuration",
127
+ action="run_configuration",
128
+ retry_attempts=1,
129
+ timeout=30.0,
130
+ ),
131
+ WorkflowStep(
132
+ step_id="fast_hooks",
133
+ name="Fast Hooks",
134
+ action="run_fast_hooks",
135
+ depends_on=["config"],
136
+ retry_attempts=1,
137
+ timeout=300.0,
138
+ ),
139
+ ],
140
+ timeout=600.0,
141
+ retry_failed_steps=True,
142
+ continue_on_error=False,
143
+ )
144
+ ```
145
+
146
+ ### Standard Workflow
147
+
148
+ Full quality checks with phase-level parallelization:
149
+
150
+ ```python
151
+ STANDARD_WORKFLOW = WorkflowDefinition(
152
+ workflow_id="crackerjack-standard",
153
+ name="Standard Quality Workflow",
154
+ steps=[
155
+ WorkflowStep(step_id="config", action="run_configuration"),
156
+ # These run in parallel (both depend only on config)
157
+ WorkflowStep(
158
+ step_id="fast_hooks",
159
+ action="run_fast_hooks",
160
+ depends_on=["config"],
161
+ parallel=True,
162
+ ),
163
+ WorkflowStep(
164
+ step_id="cleaning",
165
+ action="run_code_cleaning",
166
+ depends_on=["config"],
167
+ parallel=True,
168
+ ),
169
+ # Tests run after both complete
170
+ WorkflowStep(
171
+ step_id="tests",
172
+ action="run_tests",
173
+ depends_on=["fast_hooks", "cleaning"],
174
+ ),
175
+ # Comprehensive hooks run after tests
176
+ WorkflowStep(
177
+ step_id="comprehensive",
178
+ action="run_comprehensive_hooks",
179
+ depends_on=["tests"],
180
+ ),
181
+ ],
182
+ timeout=1800.0,
183
+ )
184
+ ```
185
+
186
+ ### Test Workflow
187
+
188
+ Focused on test execution with coverage reporting:
189
+
190
+ ```python
191
+ TEST_WORKFLOW = WorkflowDefinition(
192
+ workflow_id="crackerjack-test",
193
+ name="Test Execution",
194
+ steps=[
195
+ WorkflowStep(step_id="config", action="run_configuration"),
196
+ WorkflowStep(
197
+ step_id="tests",
198
+ action="run_tests",
199
+ depends_on=["config"],
200
+ timeout=900.0,
201
+ ),
202
+ WorkflowStep(
203
+ step_id="coverage_report",
204
+ action="generate_coverage_report",
205
+ depends_on=["tests"],
206
+ ),
207
+ ],
208
+ )
209
+ ```
210
+
211
+ ### Comprehensive Parallel Workflow
212
+
213
+ Maximum parallelization for speed:
214
+
215
+ ```python
216
+ COMPREHENSIVE_PARALLEL_WORKFLOW = WorkflowDefinition(
217
+ workflow_id="crackerjack-comprehensive-parallel",
218
+ name="Comprehensive Parallel Workflow",
219
+ steps=[
220
+ WorkflowStep(step_id="config", action="run_configuration"),
221
+ # All quality checks run in parallel
222
+ WorkflowStep(
223
+ step_id="fast_hooks",
224
+ action="run_fast_hooks",
225
+ depends_on=["config"],
226
+ parallel=True,
227
+ ),
228
+ WorkflowStep(
229
+ step_id="comprehensive",
230
+ action="run_comprehensive_hooks",
231
+ depends_on=["config"],
232
+ parallel=True,
233
+ ),
234
+ WorkflowStep(
235
+ step_id="tests",
236
+ action="run_tests",
237
+ depends_on=["config"],
238
+ parallel=True,
239
+ ),
240
+ # AI fixing runs after all checks complete
241
+ WorkflowStep(
242
+ step_id="ai_fix",
243
+ action="run_ai_fixing",
244
+ depends_on=["fast_hooks", "comprehensive", "tests"],
245
+ ),
246
+ ],
247
+ )
248
+ ```
249
+
250
+ ## Usage Examples
251
+
252
+ ### Basic Workflow Execution
253
+
254
+ ```python
255
+ from crackerjack.workflows import CrackerjackWorkflowEngine, FAST_HOOKS_WORKFLOW
256
+ from acb.depends import depends
257
+
258
+ engine = depends.get(CrackerjackWorkflowEngine)
259
+
260
+ # Execute workflow
261
+ result = await engine.execute(
262
+ workflow=FAST_HOOKS_WORKFLOW, context={"options": options}
263
+ )
264
+
265
+ # Check result
266
+ if result.state == WorkflowState.COMPLETED:
267
+ print(f"✅ Workflow completed in {result.duration:.1f}s")
268
+ print(f"Steps executed: {len(result.steps)}")
269
+ else:
270
+ print(f"❌ Workflow failed: {result.error}")
271
+ for step in result.steps:
272
+ if step.state == StepState.FAILED:
273
+ print(f" Failed step: {step.step_id}")
274
+ ```
275
+
276
+ ### Custom Workflow Definition
277
+
278
+ ```python
279
+ from acb.workflows import WorkflowDefinition, WorkflowStep
280
+
281
+ custom_workflow = WorkflowDefinition(
282
+ workflow_id="my-custom-workflow",
283
+ name="Custom Quality Workflow",
284
+ description="My project-specific quality checks",
285
+ steps=[
286
+ WorkflowStep(
287
+ step_id="config",
288
+ name="Configuration",
289
+ action="run_configuration",
290
+ ),
291
+ WorkflowStep(
292
+ step_id="custom_check",
293
+ name="Custom Quality Check",
294
+ action="run_custom_check",
295
+ depends_on=["config"],
296
+ timeout=120.0,
297
+ retry_attempts=1,
298
+ ),
299
+ WorkflowStep(
300
+ step_id="tests",
301
+ name="Run Tests",
302
+ action="run_tests",
303
+ depends_on=["custom_check"],
304
+ ),
305
+ ],
306
+ timeout=600.0,
307
+ retry_failed_steps=True,
308
+ )
309
+
310
+ # Execute custom workflow
311
+ result = await engine.execute(custom_workflow, context={})
312
+ ```
313
+
314
+ ### Registering Custom Actions
315
+
316
+ ```python
317
+ from crackerjack.workflows import ACTION_REGISTRY
318
+
319
+
320
+ @ACTION_REGISTRY.register("run_custom_check")
321
+ async def run_custom_check(context: dict) -> dict:
322
+ """Custom quality check action."""
323
+ options = context.get("options")
324
+
325
+ # Perform custom checks
326
+ results = await perform_custom_checks(options.pkg_path)
327
+
328
+ return {
329
+ "success": results.passed,
330
+ "issues": results.issues,
331
+ "duration": results.duration,
332
+ }
333
+ ```
334
+
335
+ ### Workflow with Event Handling
336
+
337
+ ```python
338
+ from crackerjack.workflows import CrackerjackWorkflowEngine
339
+ from crackerjack.workflows.event_bridge import EventBridgeAdapter
340
+
341
+ engine = CrackerjackWorkflowEngine()
342
+
343
+
344
+ # Register event handlers
345
+ @engine.event_bridge.on_step_started
346
+ async def handle_step_started(step_id: str, context: dict):
347
+ print(f"Starting step: {step_id}")
348
+
349
+
350
+ @engine.event_bridge.on_step_completed
351
+ async def handle_step_completed(step_id: str, result: dict):
352
+ print(f"Completed step: {step_id} - {result.get('success')}")
353
+
354
+
355
+ # Execute workflow with event handling
356
+ result = await engine.execute(STANDARD_WORKFLOW)
357
+ ```
358
+
359
+ ### Workflow Selection Based on Options
360
+
361
+ ```python
362
+ from crackerjack.workflows import select_workflow_for_options
363
+
364
+ # Select appropriate workflow based on CLI options
365
+ workflow = select_workflow_for_options(options)
366
+
367
+ # Execute selected workflow
368
+ result = await engine.execute(workflow, context={"options": options})
369
+ ```
370
+
371
+ ### Parallel Step Execution
372
+
373
+ ```python
374
+ from acb.workflows import WorkflowDefinition, WorkflowStep
375
+
376
+ # Define workflow with parallel steps
377
+ parallel_workflow = WorkflowDefinition(
378
+ workflow_id="parallel-checks",
379
+ name="Parallel Quality Checks",
380
+ steps=[
381
+ WorkflowStep(step_id="config", action="run_configuration"),
382
+ # These three steps run in parallel
383
+ WorkflowStep(
384
+ step_id="linting",
385
+ action="run_linting",
386
+ depends_on=["config"],
387
+ parallel=True,
388
+ ),
389
+ WorkflowStep(
390
+ step_id="type_check",
391
+ action="run_type_checking",
392
+ depends_on=["config"],
393
+ parallel=True,
394
+ ),
395
+ WorkflowStep(
396
+ step_id="security",
397
+ action="run_security_scan",
398
+ depends_on=["config"],
399
+ parallel=True,
400
+ ),
401
+ # This runs after all parallel steps complete
402
+ WorkflowStep(
403
+ step_id="report",
404
+ action="generate_report",
405
+ depends_on=["linting", "type_check", "security"],
406
+ ),
407
+ ],
408
+ )
409
+ ```
410
+
411
+ ## WorkflowResult Structure
412
+
413
+ ```python
414
+ @dataclass
415
+ class WorkflowResult:
416
+ state: WorkflowState # COMPLETED, FAILED, CANCELLED
417
+ steps: list[StepResult] # Results from each step
418
+ duration: float # Total execution time (seconds)
419
+ error: str | None # Error message if failed
420
+ context: dict # Final execution context
421
+
422
+ @property
423
+ def success(self) -> bool:
424
+ """Whether workflow completed successfully."""
425
+ return self.state == WorkflowState.COMPLETED
426
+
427
+ @property
428
+ def failed_steps(self) -> list[StepResult]:
429
+ """List of failed steps."""
430
+ return [s for s in self.steps if s.state == StepState.FAILED]
431
+ ```
432
+
433
+ ## Workflow States
434
+
435
+ ```python
436
+ class WorkflowState(Enum):
437
+ PENDING = "pending" # Not yet started
438
+ RUNNING = "running" # Currently executing
439
+ COMPLETED = "completed" # Successfully completed
440
+ FAILED = "failed" # Failed with errors
441
+ CANCELLED = "cancelled" # Cancelled by user
442
+ ```
443
+
444
+ ## Step States
445
+
446
+ ```python
447
+ class StepState(Enum):
448
+ PENDING = "pending" # Waiting for dependencies
449
+ RUNNING = "running" # Currently executing
450
+ COMPLETED = "completed" # Successfully completed
451
+ FAILED = "failed" # Failed with error
452
+ SKIPPED = "skipped" # Skipped due to conditions
453
+ ```
454
+
455
+ ## Configuration
456
+
457
+ Workflow configuration through ACB Settings:
458
+
459
+ ```yaml
460
+ # settings/crackerjack.yaml
461
+
462
+ # Workflow engine
463
+ workflow_engine_enabled: true
464
+ max_concurrent_steps: 5 # Max parallel workflow steps
465
+ workflow_timeout: 1800 # Global workflow timeout (seconds)
466
+
467
+ # Workflow selection
468
+ default_workflow: "standard" # fast_hooks, standard, comprehensive
469
+ auto_select_workflow: true # Auto-select based on options
470
+
471
+ # Step configuration
472
+ step_retry_enabled: true
473
+ step_retry_attempts: 1
474
+ step_retry_delay: 5 # Seconds between retries
475
+ step_timeout: 300 # Default step timeout
476
+
477
+ # Event bridge
478
+ event_bridge_enabled: true
479
+ emit_progress_events: true
480
+ progress_update_interval: 1.0 # Seconds
481
+
482
+ # Parallelization
483
+ enable_parallel_execution: true
484
+ parallel_fast_and_cleaning: true
485
+ parallel_all_checks: false # Experimental: all checks in parallel
486
+ ```
487
+
488
+ ## Integration Examples
489
+
490
+ ### With Agent System
491
+
492
+ ```python
493
+ from crackerjack.workflows import CrackerjackWorkflowEngine
494
+ from crackerjack.intelligence import get_agent_orchestrator
495
+
496
+ engine = CrackerjackWorkflowEngine()
497
+ agent_orchestrator = get_agent_orchestrator()
498
+
499
+
500
+ # Register AI fixing action
501
+ @ACTION_REGISTRY.register("run_ai_fixing")
502
+ async def run_ai_fixing(context: dict) -> dict:
503
+ errors = context.get("errors", [])
504
+ fixed_count = 0
505
+
506
+ for error in errors:
507
+ result = await agent_orchestrator.fix_error(error)
508
+ if result.success:
509
+ fixed_count += 1
510
+
511
+ return {"fixed_count": fixed_count, "total_errors": len(errors)}
512
+ ```
513
+
514
+ ### With Hook Executors
515
+
516
+ ```python
517
+ from crackerjack.executors import CachedHookExecutor
518
+
519
+
520
+ @ACTION_REGISTRY.register("run_fast_hooks")
521
+ async def run_fast_hooks(context: dict) -> dict:
522
+ options = context["options"]
523
+ executor = CachedHookExecutor(console=console, pkg_path=options.pkg_path)
524
+
525
+ result = executor.execute_strategy("fast_hooks")
526
+
527
+ return {
528
+ "success": result.success,
529
+ "duration": result.total_duration,
530
+ "cache_hit_rate": result.cache_hit_rate,
531
+ }
532
+ ```
533
+
534
+ ## Best Practices
535
+
536
+ 1. **Use Declarative Definitions** - Define workflows declaratively for clarity
537
+ 1. **Enable Parallelization** - Mark independent steps as parallel for speed
538
+ 1. **Set Appropriate Timeouts** - Configure realistic timeouts for each step
539
+ 1. **Handle Failures Gracefully** - Use retry logic for transient failures
540
+ 1. **Minimize Dependencies** - Only declare necessary dependencies for max parallelism
541
+ 1. **Use Event Bridge** - Leverage event system for progress tracking
542
+ 1. **Context Passing** - Use context to share state between steps
543
+ 1. **Workflow Selection** - Auto-select workflows based on CLI options
544
+ 1. **Monitor Performance** - Track workflow execution metrics
545
+ 1. **Test Custom Actions** - Thoroughly test custom action handlers
546
+
547
+ ## Performance Considerations
548
+
549
+ ### Execution Time Comparison
550
+
551
+ ```
552
+ Sequential execution (no parallelization):
553
+ Standard workflow: ~120s
554
+ Comprehensive workflow: ~180s
555
+
556
+ Parallel execution (phase-level):
557
+ Standard workflow: ~60s (2x faster)
558
+ Comprehensive workflow: ~90s (2x faster)
559
+
560
+ Maximum parallelization:
561
+ Standard workflow: ~40s (3x faster)
562
+ Comprehensive workflow: ~60s (3x faster)
563
+ ```
564
+
565
+ ### Resource Usage
566
+
567
+ ```
568
+ Base workflow engine: ~50MB
569
+ Event bridge overhead: ~5MB
570
+ Per workflow instance: ~10MB
571
+ Per concurrent step: ~20-50MB (depends on step type)
572
+ ```
573
+
574
+ ## Related
575
+
576
+ - [Executors](<../executors/README.md>) - Hook execution engines
577
+ - [Intelligence](<../intelligence/README.md>) - Agent orchestration
578
+ - [Hooks](<../hooks/README.md>) - Hook system integration
579
+ - [CLAUDE.md](../../docs/guides/CLAUDE.md) - Workflow architecture overview
580
+
581
+ ## Future Enhancements
582
+
583
+ - [ ] DAG visualization for workflow dependencies
584
+ - [ ] Workflow composition (combine multiple workflows)
585
+ - [ ] Conditional step execution based on context
586
+ - [ ] Dynamic workflow generation from project analysis
587
+ - [ ] Workflow templates for common patterns
588
+ - [ ] Distributed workflow execution across machines
589
+ - [ ] Real-time workflow monitoring dashboard
590
+ - [ ] Workflow versioning and rollback
@@ -0,0 +1,46 @@
1
+ """
2
+ Workflow orchestration for crackerjack.
3
+
4
+ This module provides high-level workflows that coordinate multiple
5
+ agents and services to accomplish complex tasks like iterative auto-fixing.
6
+
7
+ It also provides ACB workflow integration for declarative workflow execution
8
+ with automatic parallelization and event-driven coordination.
9
+ """
10
+
11
+ from .actions import ACTION_REGISTRY, register_actions
12
+ from .auto_fix import AutoFixWorkflow, FixIteration
13
+ from .container_builder import WorkflowContainerBuilder
14
+ from .definitions import (
15
+ COMMIT_WORKFLOW,
16
+ COMPREHENSIVE_PARALLEL_WORKFLOW,
17
+ FAST_HOOKS_WORKFLOW,
18
+ PUBLISH_WORKFLOW,
19
+ STANDARD_WORKFLOW,
20
+ TEST_WORKFLOW,
21
+ select_workflow_for_options,
22
+ )
23
+ from .engine import CrackerjackWorkflowEngine
24
+ from .event_bridge import EventBridgeAdapter, StepEventMapping
25
+
26
+ __all__ = [
27
+ # Legacy auto-fix workflow
28
+ "AutoFixWorkflow",
29
+ "FixIteration",
30
+ # ACB workflow integration
31
+ "CrackerjackWorkflowEngine",
32
+ "EventBridgeAdapter",
33
+ "StepEventMapping",
34
+ "WorkflowContainerBuilder",
35
+ # Workflow definitions
36
+ "FAST_HOOKS_WORKFLOW",
37
+ "STANDARD_WORKFLOW",
38
+ "TEST_WORKFLOW",
39
+ "COMMIT_WORKFLOW",
40
+ "PUBLISH_WORKFLOW",
41
+ "COMPREHENSIVE_PARALLEL_WORKFLOW",
42
+ "select_workflow_for_options",
43
+ # Action handlers
44
+ "ACTION_REGISTRY",
45
+ "register_actions",
46
+ ]