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,1216 @@
1
+ import typing as t
2
+ import warnings
3
+ from enum import Enum
4
+
5
+ import click
6
+ import typer
7
+ from pydantic import BaseModel, field_validator, model_validator
8
+
9
+
10
+ def parse_bump_option_with_flag_support(
11
+ ctx: click.Context, param: click.Parameter, value: str | None
12
+ ) -> str | None:
13
+ """Parse bump option that supports both flag usage (-p) and value usage (-p patch)."""
14
+ if value is None:
15
+ return None
16
+
17
+ # If the value starts with a dash, it's likely another flag that typer mistakenly captured
18
+ if value.startswith("-"):
19
+ # Map of consumed flags to their corresponding parameter names
20
+ flag_mapping = {
21
+ "-c": "commit",
22
+ "--commit": "commit",
23
+ "-v": "verbose",
24
+ "--verbose": "verbose",
25
+ "-s": "skip_hooks",
26
+ "--skip-hooks": "skip_hooks",
27
+ "-i": "interactive",
28
+ "--interactive": "interactive",
29
+ "-n": "no_config_updates",
30
+ "--no-config-updates": "no_config_updates",
31
+ "-u": "update_precommit",
32
+ "--update-precommit": "update_precommit",
33
+ "-t": "run_tests",
34
+ "--run-tests": "run_tests",
35
+ "-x": "strip_code",
36
+ "--strip-code": "strip_code",
37
+ "--debug": "debug",
38
+ }
39
+
40
+ # Handle any consumed flag
41
+ if value in flag_mapping:
42
+ param_name = flag_mapping[value]
43
+ # Set the parameter directly in the context
44
+ if not hasattr(ctx, "params"):
45
+ ctx.params = {}
46
+ ctx.params[param_name] = True
47
+
48
+ # CRITICAL FIX: Remove the consumed flag from sys.argv to prevent double processing
49
+ import sys
50
+
51
+ if value in sys.argv:
52
+ sys.argv.remove(value)
53
+
54
+ # Default to interactive mode when used as a flag
55
+ return "interactive"
56
+
57
+ return value
58
+
59
+
60
+ class BumpOption(str, Enum):
61
+ patch = "patch"
62
+ minor = "minor"
63
+ major = "major"
64
+ interactive = "interactive"
65
+ auto = "auto"
66
+
67
+ def __str__(self) -> str:
68
+ return str(self.value)
69
+
70
+
71
+ class Options(BaseModel):
72
+ commit: bool = False
73
+ interactive: bool = False
74
+ no_config_updates: bool = False
75
+ update_precommit: bool = False
76
+ publish: BumpOption | None = None
77
+ all: BumpOption | None = None
78
+ bump: BumpOption | None = None
79
+ verbose: bool = False
80
+ debug: bool = False
81
+ ai_debug: bool = False # Enable verbose debugging for AI auto-fixing mode
82
+ benchmark: bool = False
83
+ test_workers: int = 0
84
+ test_timeout: int = 0
85
+ start_mcp_server: bool = False
86
+ stop_mcp_server: bool = False
87
+ restart_mcp_server: bool = False
88
+ create_pr: bool = False
89
+ skip_hooks: bool = False
90
+ fast: bool = False
91
+ comp: bool = False
92
+ fast_iteration: bool = False # Phase 10.2.4: Skip comprehensive hooks
93
+ tool: str | None = None # Phase 10.2.4: Run only specific tool
94
+ changed_only: bool = False # Phase 10.2.4: Run on changed files only
95
+ all_files: bool = False # Run hooks on all files (not just changed)
96
+ async_mode: bool = False
97
+ experimental_hooks: bool = False
98
+ enable_pyrefly: bool = False
99
+ enable_ty: bool = False
100
+ cleanup: t.Any | None = None
101
+ no_git_tags: bool = False
102
+ skip_version_check: bool = False
103
+ cleanup_pypi: bool = False
104
+ keep_releases: int = 10
105
+ track_progress: bool = False
106
+ orchestrated: bool = False
107
+ boost_coverage: bool = True
108
+ coverage: bool = False
109
+ orchestration_strategy: str = "adaptive"
110
+ orchestration_progress: str = "granular"
111
+ orchestration_ai_mode: str = "single-agent"
112
+ monitor: bool = False
113
+ enhanced_monitor: bool = False
114
+ watchdog: bool = False
115
+ start_websocket_server: bool = False
116
+ stop_websocket_server: bool = False
117
+ restart_websocket_server: bool = False
118
+ websocket_port: int | None = None
119
+ start_zuban_lsp: bool = False
120
+ stop_zuban_lsp: bool = False
121
+ restart_zuban_lsp: bool = False
122
+ no_zuban_lsp: bool = False
123
+ zuban_lsp_port: int = 8677
124
+ zuban_lsp_mode: str = "tcp"
125
+ zuban_lsp_timeout: int = 120
126
+ enable_lsp_hooks: bool = False
127
+ dev: bool = False
128
+ dashboard: bool = False
129
+ unified_dashboard: bool = False
130
+ unified_dashboard_port: int | None = None
131
+ max_iterations: int = 5
132
+ advanced_batch: str | None = None
133
+ monitor_dashboard: str | None = None
134
+ coverage_status: bool = False
135
+ coverage_goal: float | None = None
136
+ no_coverage_ratchet: bool = False
137
+ skip_config_merge: bool = False
138
+ disable_global_locks: bool = False
139
+ global_lock_timeout: int = 1800
140
+ global_lock_cleanup: bool = True
141
+ global_lock_dir: str | None = None
142
+ quick: bool = False
143
+ thorough: bool = False
144
+ clear_cache: bool = False
145
+
146
+ # Semantic search options
147
+ index: str | None = None
148
+ search: str | None = None
149
+ semantic_stats: bool = False
150
+ remove_from_index: str | None = None
151
+ cache_stats: bool = False
152
+
153
+ # ACB workflow integration (Phase 4.2 COMPLETE: ACB is now the default)
154
+ # Use --use-legacy-orchestrator to revert to the old orchestration system
155
+ use_acb_workflows: bool = True # ACB workflow engine is now the default
156
+ use_legacy_orchestrator: bool = False # Opt-in to legacy orchestrator
157
+ refresh_cache: bool = False
158
+
159
+ # Semantic field names (new primary interface)
160
+ strip_code: bool | None = None # Replaces clean
161
+ run_tests: bool = False # Replaces test
162
+ ai_fix: bool | None = None # Replaces ai_agent
163
+ dry_run: bool = False # Preview fixes without applying
164
+ full_release: str | None = None # Replaces all
165
+ show_progress: bool | None = None # Replaces track_progress
166
+ advanced_monitor: bool | None = None # Replaces enhanced_monitor
167
+ coverage_report: bool | None = None # Replaces coverage_status
168
+ clean_releases: bool | None = None # Replaces cleanup_pypi
169
+
170
+ # Documentation and changelog generation fields
171
+ generate_docs: bool = False
172
+ docs_format: str = "markdown"
173
+ validate_docs: bool = False
174
+ generate_changelog: bool = False
175
+ changelog_version: str | None = None
176
+ changelog_since: str | None = None
177
+ changelog_dry_run: bool = False
178
+ auto_version: bool = False
179
+ version_since: str | None = None
180
+ accept_version: bool = False
181
+
182
+ # Intelligent features
183
+ smart_commit: bool = True # Default enabled for advanced services integration
184
+
185
+ # Analytics and visualization features
186
+ heatmap: bool = False
187
+ heatmap_type: str = "error_frequency"
188
+ heatmap_output: str | None = None
189
+ anomaly_detection: bool = False
190
+ anomaly_sensitivity: float = 2.0
191
+ anomaly_report: str | None = None
192
+ predictive_analytics: bool = False
193
+ prediction_periods: int = 10
194
+ analytics_dashboard: str | None = None
195
+
196
+ # Configuration management features
197
+ check_config_updates: bool = False
198
+ apply_config_updates: bool = False
199
+ diff_config: str | None = None
200
+ config_interactive: bool = False
201
+ # Advanced features
202
+ advanced_optimizer: bool = False
203
+ advanced_profile: str | None = None
204
+ advanced_report: str | None = None
205
+ mkdocs_integration: bool = False
206
+ mkdocs_serve: bool = False
207
+ mkdocs_theme: str = "material"
208
+ mkdocs_output: str | None = None
209
+ contextual_ai: bool = False
210
+ ai_recommendations: int = 5
211
+ ai_help_query: str | None = None
212
+
213
+ def _map_legacy_flag(
214
+ self, old_attr: str, new_attr: str, deprecation_msg: str | None = None
215
+ ) -> None:
216
+ """Helper to map legacy flag to new flag with optional deprecation warning."""
217
+ old_value = getattr(self, old_attr)
218
+ new_value = getattr(self, new_attr)
219
+
220
+ if old_value and new_value is None:
221
+ setattr(self, new_attr, old_value)
222
+ if deprecation_msg:
223
+ warnings.warn(deprecation_msg, DeprecationWarning, stacklevel=4)
224
+ elif new_value is not None:
225
+ setattr(self, old_attr, new_value)
226
+
227
+ @model_validator(mode="after")
228
+ def handle_legacy_mappings(self) -> "Options":
229
+ """Handle backward compatibility for deprecated flags."""
230
+ # Map flags without deprecation warnings
231
+ self._map_legacy_flag("all", "full_release")
232
+ self._map_legacy_flag("track_progress", "show_progress")
233
+ self._map_legacy_flag("enhanced_monitor", "advanced_monitor")
234
+ self._map_legacy_flag("coverage_status", "coverage_report")
235
+ self._map_legacy_flag("cleanup_pypi", "clean_releases")
236
+
237
+ return self
238
+
239
+ @property
240
+ def test(self) -> bool:
241
+ """Compatibility property for run_tests field."""
242
+ return self.run_tests
243
+
244
+ @test.setter
245
+ def test(self, value: bool) -> None:
246
+ """Setter for test property."""
247
+ self.run_tests = value
248
+
249
+ @property
250
+ def ai_agent(self) -> bool:
251
+ """Compatibility property for ai_fix field."""
252
+ return bool(self.ai_fix)
253
+
254
+ @ai_agent.setter
255
+ def ai_agent(self, value: bool) -> None:
256
+ """Setter for ai_agent property."""
257
+ self.ai_fix = value if self.ai_fix is not None else value
258
+
259
+ @property
260
+ def clean(self) -> bool:
261
+ """Compatibility property for strip_code field."""
262
+ return bool(self.strip_code)
263
+
264
+ @clean.setter
265
+ def clean(self, value: bool) -> None:
266
+ """Setter for clean property."""
267
+ self.strip_code = value
268
+
269
+ @property
270
+ def update_docs_index(self) -> bool:
271
+ """Compatibility property for generate_docs field."""
272
+ return self.generate_docs
273
+
274
+ @update_docs_index.setter
275
+ def update_docs_index(self, value: bool) -> None:
276
+ """Setter for update_docs_index property."""
277
+ self.generate_docs = value
278
+
279
+ @property
280
+ def effective_max_iterations(self) -> int:
281
+ if self.quick:
282
+ return 2
283
+ if self.thorough:
284
+ return 8
285
+ return self.max_iterations
286
+
287
+ @classmethod
288
+ @field_validator("publish", "bump", "full_release", mode="before")
289
+ def validate_bump_options(cls, value: t.Any) -> BumpOption | None:
290
+ if value is None:
291
+ return None
292
+ if value == "":
293
+ return BumpOption.interactive
294
+
295
+ # Handle case where typer parsed a flag as the value (e.g., -p -c becomes value="-c")
296
+ if isinstance(value, str) and value.startswith("-"):
297
+ return BumpOption.interactive
298
+
299
+ try:
300
+ return BumpOption(value.lower())
301
+ except ValueError:
302
+ valid_options = ", ".join([o.value for o in BumpOption])
303
+ msg = f"Invalid bump option: {value}. Must be one of: {valid_options}"
304
+ raise ValueError(
305
+ msg,
306
+ )
307
+
308
+ @classmethod
309
+ @field_validator("zuban_lsp_mode", mode="before")
310
+ def validate_zuban_lsp_mode(cls, value: t.Any) -> str:
311
+ if value is None:
312
+ return "tcp"
313
+ valid_modes = ["tcp", "stdio"]
314
+ if value.lower() not in valid_modes:
315
+ msg = f"Invalid zuban LSP mode: {value}. Must be one of: {', '.join(valid_modes)}"
316
+ raise ValueError(msg)
317
+ return str(value).lower()
318
+
319
+
320
+ CLI_OPTIONS = {
321
+ "commit": typer.Option(
322
+ False,
323
+ "-c",
324
+ "--commit",
325
+ help="Commit and push changes to Git.",
326
+ ),
327
+ "interactive": typer.Option(
328
+ False,
329
+ "-i",
330
+ "--interactive",
331
+ help="Use the interactive Rich UI for a better experience.",
332
+ ),
333
+ "no_config_updates": typer.Option(
334
+ False,
335
+ "-n",
336
+ "--no-config-updates",
337
+ help="Do not update configuration files.",
338
+ ),
339
+ "update_precommit": typer.Option(
340
+ False,
341
+ "-u",
342
+ "--update-hooks",
343
+ help="Update hooks configuration.",
344
+ ),
345
+ "verbose": typer.Option(False, "-v", "--verbose", help="Enable verbose output."),
346
+ "debug": typer.Option(False, "--debug", help="Enable debug output."),
347
+ "publish": typer.Option(
348
+ None,
349
+ "-p",
350
+ "--publish",
351
+ callback=parse_bump_option_with_flag_support,
352
+ help=(
353
+ "Bump version and publish to PyPI (patch, minor, major, auto). "
354
+ "Use 'interactive' to be prompted for version selection. "
355
+ "Use 'auto' to automatically use AI recommendations. "
356
+ "When used as a flag (-p), defaults to 'interactive'."
357
+ ),
358
+ case_sensitive=False,
359
+ ),
360
+ "all": typer.Option(
361
+ None,
362
+ "-a",
363
+ "--all",
364
+ callback=parse_bump_option_with_flag_support,
365
+ help="Full release workflow: bump version, run quality checks, and publish (patch, minor, major, auto). When used as a flag (-a), defaults to 'interactive'.",
366
+ case_sensitive=False,
367
+ ),
368
+ "bump": typer.Option(
369
+ None,
370
+ "-b",
371
+ "--bump",
372
+ callback=parse_bump_option_with_flag_support,
373
+ help="Bump version (patch, minor, major, auto). When used as a flag (-b), defaults to 'interactive'.",
374
+ case_sensitive=False,
375
+ ),
376
+ "benchmark": typer.Option(
377
+ False,
378
+ "--benchmark",
379
+ help="Run tests in benchmark mode (disables parallel execution).",
380
+ ),
381
+ "test_workers": typer.Option(
382
+ 0,
383
+ "--test-workers",
384
+ help=(
385
+ "Number of parallel workers for running tests. "
386
+ "0 = auto-detect via pytest-xdist (default), "
387
+ "1 = sequential execution, "
388
+ ">1 = explicit worker count, "
389
+ "<0 = fractional (e.g., -2 = half of CPU cores). "
390
+ "Set CRACKERJACK_DISABLE_AUTO_WORKERS=1 to force sequential."
391
+ ),
392
+ ),
393
+ "test_timeout": typer.Option(
394
+ 0,
395
+ "--test-timeout",
396
+ help=(
397
+ "Timeout in seconds for individual tests "
398
+ "(0 = use default based on project size)."
399
+ ),
400
+ ),
401
+ "skip_hooks": typer.Option(
402
+ False,
403
+ "-s",
404
+ "--skip-hooks",
405
+ help="Skip running hooks (useful with -t).",
406
+ ),
407
+ "fast": typer.Option(
408
+ False,
409
+ "--fast",
410
+ help="Run only fast hooks (formatting and basic checks).",
411
+ ),
412
+ "comp": typer.Option(
413
+ False,
414
+ "--comp",
415
+ help=(
416
+ "Run only comprehensive hooks (type checking, security, "
417
+ "complexity analysis)."
418
+ ),
419
+ ),
420
+ "fast_iteration": typer.Option(
421
+ False,
422
+ "--fast-iteration",
423
+ help="Skip comprehensive hooks during active development (formatters only).",
424
+ ),
425
+ "tool": typer.Option(
426
+ None,
427
+ "--tool",
428
+ help="Run only the specified tool (e.g., 'ruff-check', 'zuban').",
429
+ ),
430
+ "changed_only": typer.Option(
431
+ False,
432
+ "--changed-only",
433
+ help="Run quality checks only on files changed in git.",
434
+ ),
435
+ "all_files": typer.Option(
436
+ False,
437
+ "--all-files",
438
+ help="Run hooks on all files (not just changed files). Useful for CI/CD or after dependency updates.",
439
+ ),
440
+ "create_pr": typer.Option(
441
+ False,
442
+ "-r",
443
+ "--pr",
444
+ "--new-pull-request",
445
+ help="Create a new pull request to the upstream repository.",
446
+ ),
447
+ "start_mcp_server": typer.Option(
448
+ False,
449
+ "--start-mcp-server",
450
+ help="Start MCP server for AI agent integration.",
451
+ ),
452
+ "stop_mcp_server": typer.Option(
453
+ False,
454
+ "--stop-mcp-server",
455
+ help="Stop all running MCP servers.",
456
+ ),
457
+ "restart_mcp_server": typer.Option(
458
+ False,
459
+ "--restart-mcp-server",
460
+ help="Restart MCP server (stop and start again).",
461
+ ),
462
+ "async_mode": typer.Option(
463
+ False,
464
+ "--async",
465
+ help="Enable async mode for faster file operations (experimental).",
466
+ hidden=True,
467
+ ),
468
+ "experimental_hooks": typer.Option(
469
+ False,
470
+ "--experimental-hooks",
471
+ help="Enable experimental hooks (includes pyrefly and ty).",
472
+ ),
473
+ "enable_pyrefly": typer.Option(
474
+ False,
475
+ "--enable-pyrefly",
476
+ help=(
477
+ "Enable pyrefly experimental type checking "
478
+ "(requires experimental hooks mode)."
479
+ ),
480
+ ),
481
+ "enable_ty": typer.Option(
482
+ False,
483
+ "--enable-ty",
484
+ help=(
485
+ "Enable ty experimental type verification "
486
+ "(requires experimental hooks mode)."
487
+ ),
488
+ ),
489
+ "no_git_tags": typer.Option(
490
+ False,
491
+ "--no-git-tags",
492
+ help=(
493
+ "Skip creating git tags during version bumping "
494
+ "(tags are created by default)."
495
+ ),
496
+ ),
497
+ "skip_version_check": typer.Option(
498
+ False,
499
+ "--skip-version-check",
500
+ help=(
501
+ "Skip version consistency verification between pyproject.toml and git tags."
502
+ ),
503
+ ),
504
+ "start_websocket_server": typer.Option(
505
+ False,
506
+ "--start-websocket-server",
507
+ help="Start WebSocket progress server on port 8675.",
508
+ ),
509
+ "stop_websocket_server": typer.Option(
510
+ False,
511
+ "--stop-websocket-server",
512
+ help="Stop all running WebSocket servers.",
513
+ ),
514
+ "restart_websocket_server": typer.Option(
515
+ False,
516
+ "--restart-websocket-server",
517
+ help="Restart WebSocket server (stop and start again).",
518
+ ),
519
+ "websocket_port": typer.Option(
520
+ None,
521
+ "--websocket-port",
522
+ help="Port for WebSocket server when using --start-mcp-server (e.g., 8675).",
523
+ ),
524
+ "start_zuban_lsp": typer.Option(
525
+ False,
526
+ "--start-zuban-lsp",
527
+ help="Start Zuban LSP server for real-time type checking.",
528
+ ),
529
+ "stop_zuban_lsp": typer.Option(
530
+ False,
531
+ "--stop-zuban-lsp",
532
+ help="Stop all running Zuban LSP servers.",
533
+ ),
534
+ "restart_zuban_lsp": typer.Option(
535
+ False,
536
+ "--restart-zuban-lsp",
537
+ help="Restart Zuban LSP server (stop and start again).",
538
+ ),
539
+ "no_zuban_lsp": typer.Option(
540
+ False,
541
+ "--no-zuban-lsp",
542
+ help="Disable automatic Zuban LSP server startup.",
543
+ ),
544
+ "zuban_lsp_port": typer.Option(
545
+ 8677,
546
+ "--zuban-lsp-port",
547
+ help="Port for Zuban LSP server (default: 8677).",
548
+ ),
549
+ "zuban_lsp_mode": typer.Option(
550
+ "tcp",
551
+ "--zuban-lsp-mode",
552
+ help="Transport mode for Zuban LSP: tcp or stdio (default: tcp).",
553
+ ),
554
+ "zuban_lsp_timeout": typer.Option(
555
+ 30,
556
+ "--zuban-lsp-timeout",
557
+ help="Timeout in seconds for LSP server operations (default: 30).",
558
+ ),
559
+ "enable_lsp_hooks": typer.Option(
560
+ False,
561
+ "--enable-lsp-hooks",
562
+ help="Enable LSP-optimized hook execution for faster type checking.",
563
+ ),
564
+ "watchdog": typer.Option(
565
+ False,
566
+ "--watchdog",
567
+ help=(
568
+ "Start service watchdog to monitor and auto-restart "
569
+ "MCP and WebSocket servers."
570
+ ),
571
+ ),
572
+ "monitor": typer.Option(
573
+ False,
574
+ "--monitor",
575
+ help=(
576
+ "Start multi-project progress monitor with WebSocket polling, "
577
+ "watchdog services, and autodiscovery."
578
+ ),
579
+ ),
580
+ "enhanced_monitor": typer.Option(
581
+ False,
582
+ "--enhanced-monitor",
583
+ help=(
584
+ "Start enhanced progress monitor with advanced MetricCard widgets "
585
+ "and modern web UI patterns."
586
+ ),
587
+ ),
588
+ "dev": typer.Option(
589
+ False,
590
+ "--dev",
591
+ help=(
592
+ "Enable development mode for progress monitors "
593
+ "(enables textual --dev mode)."
594
+ ),
595
+ ),
596
+ "dashboard": typer.Option(
597
+ False,
598
+ "--dashboard",
599
+ help=(
600
+ "Start the comprehensive dashboard with system metrics, "
601
+ "job tracking, and performance monitoring."
602
+ ),
603
+ ),
604
+ "unified_dashboard": typer.Option(
605
+ False,
606
+ "--unified-dashboard",
607
+ help=(
608
+ "Start the unified monitoring dashboard with real-time WebSocket streaming, "
609
+ "web UI, and comprehensive system metrics aggregation."
610
+ ),
611
+ ),
612
+ "unified_dashboard_port": typer.Option(
613
+ None,
614
+ "--unified-dashboard-port",
615
+ help="Port for unified dashboard server (default: 8675).",
616
+ ),
617
+ "max_iterations": typer.Option(
618
+ 10,
619
+ "--max-iterations",
620
+ help="Maximum auto-fix iterations (default: 10).",
621
+ ),
622
+ "ai_debug": typer.Option(
623
+ False,
624
+ "--ai-debug",
625
+ help="Enable verbose debugging for AI auto-fixing mode (implies --ai-fix).",
626
+ ),
627
+ "job_id": typer.Option(
628
+ None,
629
+ "--job-id",
630
+ help="Job ID for WebSocket progress tracking (internal use).",
631
+ hidden=True,
632
+ ),
633
+ "orchestrated": typer.Option(
634
+ False,
635
+ "--orchestrated",
636
+ help="Enable advanced orchestrated workflow mode with intelligent execution strategies, granular progress tracking, and multi-agent AI coordination.",
637
+ ),
638
+ "orchestration_strategy": typer.Option(
639
+ "adaptive",
640
+ "--orchestration-strategy",
641
+ help="Execution strategy for orchestrated mode: batch, individual, adaptive, selective (default: adaptive).",
642
+ ),
643
+ "orchestration_progress": typer.Option(
644
+ "granular",
645
+ "--orchestration-progress",
646
+ help="Progress tracking level: basic, detailed, granular, streaming (default: granular).",
647
+ ),
648
+ "orchestration_ai_mode": typer.Option(
649
+ "single-agent",
650
+ "--orchestration-ai-mode",
651
+ help=(
652
+ "AI coordination mode: single-agent, multi-agent, coordinator "
653
+ "(default: single-agent)."
654
+ ),
655
+ ),
656
+ "coverage_status": typer.Option(
657
+ False,
658
+ "--coverage-status",
659
+ help="Show current coverage ratchet status and progress toward 100%.",
660
+ ),
661
+ "coverage_goal": typer.Option(
662
+ None,
663
+ "--coverage-goal",
664
+ help="Set explicit coverage target for this session (e.g., 15.0).",
665
+ ),
666
+ "no_coverage_ratchet": typer.Option(
667
+ False,
668
+ "--no-coverage-ratchet",
669
+ help="Disable coverage ratchet system temporarily (for experiments).",
670
+ ),
671
+ "boost_coverage": typer.Option(
672
+ True,
673
+ "--boost-coverage/--no-boost-coverage",
674
+ help=(
675
+ "Automatically improve test coverage after successful "
676
+ "workflow execution (default: True)."
677
+ ),
678
+ ),
679
+ "disable_global_locks": typer.Option(
680
+ False,
681
+ "--disable-global-locks",
682
+ help=(
683
+ "Disable global locking (allow concurrent hook execution across sessions)."
684
+ ),
685
+ ),
686
+ "global_lock_timeout": typer.Option(
687
+ 600,
688
+ "--global-lock-timeout",
689
+ help="Global lock timeout in seconds (default: 600).",
690
+ ),
691
+ "global_lock_cleanup": typer.Option(
692
+ True,
693
+ "--cleanup-stale-locks/--no-cleanup-stale-locks",
694
+ help="Clean up stale global lock files before execution (default: True).",
695
+ ),
696
+ "global_lock_dir": typer.Option(
697
+ None,
698
+ "--global-lock-dir",
699
+ help="Custom directory for global lock files (default: ~/.crackerjack/locks).",
700
+ ),
701
+ "quick": typer.Option(
702
+ False,
703
+ "--quick",
704
+ help="Quick mode: Run with maximum 3 iterations (ideal for CI/CD).",
705
+ ),
706
+ "thorough": typer.Option(
707
+ False,
708
+ "--thorough",
709
+ help="Thorough mode: Run with maximum 8 iterations (for complex refactoring).",
710
+ ),
711
+ "clear_cache": typer.Option(
712
+ False,
713
+ "--clear-cache",
714
+ help="Clear all caches (hook results, file hashes, agent decisions) and exit.",
715
+ ),
716
+ "cache_stats": typer.Option(
717
+ False,
718
+ "--cache-stats",
719
+ help="Display cache statistics (hit rates, sizes, entries) and exit.",
720
+ ),
721
+ # New semantic CLI options with backward compatibility
722
+ "strip_code": typer.Option(
723
+ None,
724
+ "-x",
725
+ "--strip-code",
726
+ help="Remove docstrings, line comments, and unnecessary whitespace from source code with automatic backup protection (doesn't affect test files).",
727
+ ),
728
+ "run_tests": typer.Option(
729
+ False,
730
+ "-t",
731
+ "--run-tests",
732
+ help=(
733
+ "Execute the test suite with automatic worker detection "
734
+ "and timeout handling."
735
+ ),
736
+ ),
737
+ "ai_fix": typer.Option(
738
+ None,
739
+ "--ai-fix",
740
+ help=(
741
+ "Enable AI-powered auto-fixing. "
742
+ "Iteratively fixes code issues using Claude AI. "
743
+ "Requires ANTHROPIC_API_KEY environment variable. "
744
+ "Max 10 iterations, stops when all hooks pass."
745
+ ),
746
+ ),
747
+ "dry_run": typer.Option(
748
+ False,
749
+ "--dry-run",
750
+ help="Preview fixes without modifying files (implies --ai-fix).",
751
+ ),
752
+ "full_release": typer.Option(
753
+ None,
754
+ "-a",
755
+ "--full-release",
756
+ callback=parse_bump_option_with_flag_support,
757
+ help="Complete release workflow: strip code, run tests, bump version, and publish (patch, minor, major, auto). Equivalent to `-x -t -p <version> -c`. When used as a flag (-a), defaults to 'interactive'.",
758
+ case_sensitive=False,
759
+ ),
760
+ "show_progress": typer.Option(
761
+ None,
762
+ "--show-progress",
763
+ help=(
764
+ "Display detailed progress tracking during execution. "
765
+ "[Semantic alias for --track-progress]"
766
+ ),
767
+ ),
768
+ "advanced_monitor": typer.Option(
769
+ None,
770
+ "--advanced-monitor",
771
+ help=(
772
+ "Enable advanced monitoring dashboard with detailed metrics "
773
+ "and analytics. [Semantic alias for --enhanced-monitor]"
774
+ ),
775
+ ),
776
+ "coverage_report": typer.Option(
777
+ None,
778
+ "--coverage-report",
779
+ help=(
780
+ "Display comprehensive coverage analysis and report. "
781
+ "[Semantic alias for --coverage-status]"
782
+ ),
783
+ ),
784
+ "clean_releases": typer.Option(
785
+ None,
786
+ "--clean-releases",
787
+ help=(
788
+ "Clean up old releases from PyPI, keeping only the most recent "
789
+ "versions. [Semantic alias for --cleanup-pypi]"
790
+ ),
791
+ ),
792
+ "generate_docs": typer.Option(
793
+ False,
794
+ "--generate-docs",
795
+ help=(
796
+ "Generate comprehensive API documentation from source code "
797
+ "with AST analysis and cross-references."
798
+ ),
799
+ ),
800
+ "docs_format": typer.Option(
801
+ "markdown",
802
+ "--docs-format",
803
+ help="Documentation output format: 'markdown' (default), 'rst', or 'html'.",
804
+ ),
805
+ "validate_docs": typer.Option(
806
+ False,
807
+ "--validate-docs",
808
+ help="Validate existing documentation for completeness and consistency.",
809
+ ),
810
+ "generate_changelog": typer.Option(
811
+ False,
812
+ "--generate-changelog",
813
+ help="Generate changelog entries from git commits.",
814
+ ),
815
+ "changelog_version": typer.Option(
816
+ None,
817
+ "--changelog-version",
818
+ help="Version number for changelog generation (default: next version).",
819
+ ),
820
+ "changelog_since": typer.Option(
821
+ None,
822
+ "--changelog-since",
823
+ help="Generate changelog since this version/tag (default: last release).",
824
+ ),
825
+ "changelog_dry_run": typer.Option(
826
+ False,
827
+ "--changelog-dry-run",
828
+ help="Preview changelog generation without writing to file.",
829
+ ),
830
+ "auto_version": typer.Option(
831
+ False,
832
+ "--auto-version",
833
+ help="Automatically analyze changes and recommend version bump.",
834
+ ),
835
+ "version_since": typer.Option(
836
+ None,
837
+ "--version-since",
838
+ help="Analyze changes since this version/tag for version bump recommendation.",
839
+ ),
840
+ "accept_version": typer.Option(
841
+ False,
842
+ "--accept-version",
843
+ help="Automatically accept version bump recommendation without confirmation.",
844
+ ),
845
+ "smart_commit": typer.Option(
846
+ True, # Now enabled by default for advanced services integration
847
+ "--smart-commit/--basic-commit",
848
+ help="Generate intelligent commit messages using AI analysis (default: enabled). Use --basic-commit for simple messages.",
849
+ ),
850
+ "heatmap": typer.Option(
851
+ False,
852
+ "--heatmap",
853
+ help="Generate visual heat map analysis of code quality patterns and error distributions.",
854
+ ),
855
+ "heatmap_type": typer.Option(
856
+ "error_frequency",
857
+ "--heatmap-type",
858
+ help="Type of heat map to generate: error_frequency, complexity, quality_metrics, test_failures.",
859
+ ),
860
+ "heatmap_output": typer.Option(
861
+ None,
862
+ "--heatmap-output",
863
+ help="Output file path for heat map data (JSON/CSV) or HTML visualization.",
864
+ ),
865
+ "anomaly_detection": typer.Option(
866
+ False,
867
+ "--anomaly-detection",
868
+ help="Enable ML-based anomaly detection for quality metrics monitoring.",
869
+ ),
870
+ "anomaly_sensitivity": typer.Option(
871
+ 2.0,
872
+ "--anomaly-sensitivity",
873
+ help="Sensitivity level for anomaly detection (1.0=very sensitive, 3.0=less sensitive).",
874
+ ),
875
+ "anomaly_report": typer.Option(
876
+ None,
877
+ "--anomaly-report",
878
+ help="Output file path for anomaly detection report (JSON format).",
879
+ ),
880
+ "predictive_analytics": typer.Option(
881
+ False,
882
+ "--predictive-analytics",
883
+ help="Enable predictive analytics for quality metrics forecasting and trend analysis.",
884
+ ),
885
+ "prediction_periods": typer.Option(
886
+ 10,
887
+ "--prediction-periods",
888
+ help="Number of future periods to predict (default: 10).",
889
+ ),
890
+ "analytics_dashboard": typer.Option(
891
+ None,
892
+ "--analytics-dashboard",
893
+ help="Output file path for analytics dashboard (HTML format).",
894
+ ),
895
+ # Advanced features
896
+ "advanced_optimizer": typer.Option(
897
+ False,
898
+ "--advanced-optimizer",
899
+ help="Enable advanced-scale optimization engine with resource monitoring and scaling analysis.",
900
+ ),
901
+ "advanced_profile": typer.Option(
902
+ None,
903
+ "--advanced-profile",
904
+ help="Advanced optimization profile: balanced, performance, memory, throughput.",
905
+ ),
906
+ "advanced_report": typer.Option(
907
+ None,
908
+ "--advanced-report",
909
+ help="Output file path for advanced optimization report (JSON format).",
910
+ ),
911
+ "mkdocs_integration": typer.Option(
912
+ False,
913
+ "--mkdocs-integration",
914
+ help="Generate complete MkDocs documentation site with Material theme and automation.",
915
+ ),
916
+ "mkdocs_serve": typer.Option(
917
+ False,
918
+ "--mkdocs-serve",
919
+ help="Start MkDocs development server after building documentation site.",
920
+ ),
921
+ "mkdocs_theme": typer.Option(
922
+ "material",
923
+ "--mkdocs-theme",
924
+ help="MkDocs theme to use for documentation generation (default: material).",
925
+ ),
926
+ "mkdocs_output": typer.Option(
927
+ None,
928
+ "--mkdocs-output",
929
+ help="Output directory for MkDocs site generation (default: ./docs_site).",
930
+ ),
931
+ "contextual_ai": typer.Option(
932
+ False,
933
+ "--contextual-ai",
934
+ help="Enable contextual AI assistant with project-specific recommendations and insights.",
935
+ ),
936
+ "ai_recommendations": typer.Option(
937
+ 5,
938
+ "--ai-recommendations",
939
+ help="Maximum number of AI recommendations to display (default: 5).",
940
+ ),
941
+ "ai_help_query": typer.Option(
942
+ None,
943
+ "--ai-help-query",
944
+ help="Get contextual help for specific query using AI assistant.",
945
+ ),
946
+ # Configuration management features
947
+ "check_config_updates": typer.Option(
948
+ False,
949
+ "--check-config-updates",
950
+ help="Check for available configuration template updates.",
951
+ ),
952
+ "apply_config_updates": typer.Option(
953
+ False,
954
+ "--apply-config-updates",
955
+ help="Apply available configuration template updates.",
956
+ ),
957
+ "diff_config": typer.Option(
958
+ None,
959
+ "--diff-config",
960
+ help="Show diff preview for a specific configuration type.",
961
+ ),
962
+ "config_interactive": typer.Option(
963
+ False,
964
+ "--config-interactive",
965
+ help="Apply configuration updates interactively with confirmations.",
966
+ ),
967
+ "refresh_cache": typer.Option(
968
+ False,
969
+ "--refresh-cache",
970
+ help="Refresh cache to ensure fresh environment.",
971
+ ),
972
+ # ACB workflow integration (Phase 4.2 COMPLETE - ACB is now the default)
973
+ "use_acb_workflows": typer.Option(
974
+ True, # ACB workflows are now the default
975
+ "--use-acb-workflows",
976
+ help="[DEFAULT - REDUNDANT] ACB is now always used (kept for compatibility).",
977
+ hidden=True, # Hidden since it's redundant (ACB is always the default)
978
+ ),
979
+ "use_legacy_orchestrator": typer.Option(
980
+ False,
981
+ "--use-legacy-orchestrator/--no-use-legacy-orchestrator",
982
+ help="Opt out of ACB workflows and use legacy orchestrator (for compatibility).",
983
+ hidden=False,
984
+ ),
985
+ # Semantic search options
986
+ "index": typer.Option(
987
+ None,
988
+ "--index",
989
+ help="Index a file or directory for semantic search (e.g., --index path/to/file.py).",
990
+ ),
991
+ "search": typer.Option(
992
+ None,
993
+ "--search",
994
+ help="Perform semantic search across indexed files (e.g., --search 'similarity calculation').",
995
+ ),
996
+ "semantic_stats": typer.Option(
997
+ False,
998
+ "--semantic-stats",
999
+ help="Display statistics about the semantic search index.",
1000
+ ),
1001
+ "remove_from_index": typer.Option(
1002
+ None,
1003
+ "--remove-from-index",
1004
+ help="Remove a file from the semantic search index (e.g., --remove-from-index path/to/file.py).",
1005
+ ),
1006
+ }
1007
+
1008
+
1009
+ def create_options(
1010
+ commit: bool,
1011
+ interactive: bool,
1012
+ no_config_updates: bool,
1013
+ update_precommit: bool,
1014
+ verbose: bool,
1015
+ debug: bool,
1016
+ publish: BumpOption | None,
1017
+ bump: BumpOption | None,
1018
+ benchmark: bool,
1019
+ test_workers: int,
1020
+ test_timeout: int,
1021
+ skip_hooks: bool,
1022
+ fast: bool,
1023
+ comp: bool,
1024
+ fast_iteration: bool = False,
1025
+ tool: str | None = None,
1026
+ changed_only: bool = False,
1027
+ all_files: bool = False,
1028
+ create_pr: bool = False,
1029
+ async_mode: bool = False,
1030
+ experimental_hooks: bool = False,
1031
+ enable_pyrefly: bool = False,
1032
+ enable_ty: bool = False,
1033
+ start_zuban_lsp: bool = False,
1034
+ stop_zuban_lsp: bool = False,
1035
+ restart_zuban_lsp: bool = False,
1036
+ no_zuban_lsp: bool = False,
1037
+ zuban_lsp_port: int = 8677,
1038
+ zuban_lsp_mode: str = "tcp",
1039
+ zuban_lsp_timeout: int = 120,
1040
+ enable_lsp_hooks: bool = False,
1041
+ no_git_tags: bool = False,
1042
+ skip_version_check: bool = False,
1043
+ orchestrated: bool = False,
1044
+ orchestration_strategy: str = "adaptive",
1045
+ orchestration_progress: str = "granular",
1046
+ orchestration_ai_mode: str = "single-agent",
1047
+ dev: bool = False,
1048
+ dashboard: bool = False,
1049
+ unified_dashboard: bool = False,
1050
+ unified_dashboard_port: int | None = None,
1051
+ max_iterations: int = 10,
1052
+ coverage_status: bool = False,
1053
+ coverage_goal: float | None = None,
1054
+ no_coverage_ratchet: bool = False,
1055
+ boost_coverage: bool = True,
1056
+ disable_global_locks: bool = False,
1057
+ global_lock_timeout: int = 1800,
1058
+ global_lock_cleanup: bool = True,
1059
+ global_lock_dir: str | None = None,
1060
+ quick: bool = False,
1061
+ thorough: bool = False,
1062
+ clear_cache: bool = False,
1063
+ cache_stats: bool = False,
1064
+ generate_docs: bool = False,
1065
+ docs_format: str = "markdown",
1066
+ validate_docs: bool = False,
1067
+ generate_changelog: bool = False,
1068
+ changelog_version: str | None = None,
1069
+ changelog_since: str | None = None,
1070
+ changelog_dry_run: bool = False,
1071
+ auto_version: bool = False,
1072
+ version_since: str | None = None,
1073
+ accept_version: bool = False,
1074
+ smart_commit: bool = True,
1075
+ heatmap: bool = False,
1076
+ heatmap_type: str = "error_frequency",
1077
+ heatmap_output: str | None = None,
1078
+ anomaly_detection: bool = False,
1079
+ anomaly_sensitivity: float = 2.0,
1080
+ anomaly_report: str | None = None,
1081
+ predictive_analytics: bool = False,
1082
+ prediction_periods: int = 10,
1083
+ analytics_dashboard: str | None = None,
1084
+ # Advanced features
1085
+ advanced_optimizer: bool = False,
1086
+ advanced_profile: str | None = None,
1087
+ advanced_report: str | None = None,
1088
+ mkdocs_integration: bool = False,
1089
+ mkdocs_serve: bool = False,
1090
+ mkdocs_theme: str = "material",
1091
+ mkdocs_output: str | None = None,
1092
+ contextual_ai: bool = False,
1093
+ ai_recommendations: int = 5,
1094
+ ai_help_query: str | None = None,
1095
+ check_config_updates: bool = False,
1096
+ apply_config_updates: bool = False,
1097
+ diff_config: str | None = None,
1098
+ config_interactive: bool = False,
1099
+ refresh_cache: bool = False,
1100
+ use_acb_workflows: bool = True,
1101
+ use_legacy_orchestrator: bool = False,
1102
+ # New semantic parameters
1103
+ strip_code: bool | None = None,
1104
+ run_tests: bool = False,
1105
+ ai_fix: bool | None = None,
1106
+ dry_run: bool = False,
1107
+ full_release: str | None = None,
1108
+ show_progress: bool | None = None,
1109
+ advanced_monitor: bool | None = None,
1110
+ coverage_report: bool | None = None,
1111
+ clean_releases: bool | None = None,
1112
+ ) -> Options:
1113
+ return Options(
1114
+ commit=commit,
1115
+ interactive=interactive,
1116
+ no_config_updates=no_config_updates,
1117
+ update_precommit=update_precommit,
1118
+ verbose=verbose,
1119
+ debug=debug,
1120
+ publish=publish,
1121
+ bump=bump,
1122
+ benchmark=benchmark,
1123
+ test_workers=test_workers,
1124
+ test_timeout=test_timeout,
1125
+ skip_hooks=skip_hooks,
1126
+ fast=fast,
1127
+ comp=comp,
1128
+ fast_iteration=fast_iteration,
1129
+ tool=tool,
1130
+ changed_only=changed_only,
1131
+ all_files=all_files,
1132
+ create_pr=create_pr,
1133
+ async_mode=async_mode,
1134
+ experimental_hooks=experimental_hooks,
1135
+ enable_pyrefly=enable_pyrefly,
1136
+ enable_ty=enable_ty,
1137
+ start_zuban_lsp=start_zuban_lsp,
1138
+ stop_zuban_lsp=stop_zuban_lsp,
1139
+ restart_zuban_lsp=restart_zuban_lsp,
1140
+ no_zuban_lsp=no_zuban_lsp,
1141
+ zuban_lsp_port=zuban_lsp_port,
1142
+ zuban_lsp_mode=zuban_lsp_mode,
1143
+ zuban_lsp_timeout=zuban_lsp_timeout,
1144
+ enable_lsp_hooks=enable_lsp_hooks,
1145
+ no_git_tags=no_git_tags,
1146
+ skip_version_check=skip_version_check,
1147
+ orchestrated=orchestrated,
1148
+ orchestration_strategy=orchestration_strategy,
1149
+ orchestration_progress=orchestration_progress,
1150
+ orchestration_ai_mode=orchestration_ai_mode,
1151
+ dev=dev,
1152
+ dashboard=dashboard,
1153
+ unified_dashboard=unified_dashboard,
1154
+ unified_dashboard_port=unified_dashboard_port,
1155
+ max_iterations=max_iterations,
1156
+ coverage_status=coverage_status,
1157
+ coverage_goal=coverage_goal,
1158
+ no_coverage_ratchet=no_coverage_ratchet,
1159
+ boost_coverage=boost_coverage,
1160
+ disable_global_locks=disable_global_locks,
1161
+ global_lock_timeout=global_lock_timeout,
1162
+ global_lock_cleanup=global_lock_cleanup,
1163
+ global_lock_dir=global_lock_dir,
1164
+ quick=quick,
1165
+ thorough=thorough,
1166
+ clear_cache=clear_cache,
1167
+ cache_stats=cache_stats,
1168
+ generate_docs=generate_docs,
1169
+ docs_format=docs_format,
1170
+ validate_docs=validate_docs,
1171
+ generate_changelog=generate_changelog,
1172
+ changelog_version=changelog_version,
1173
+ changelog_since=changelog_since,
1174
+ changelog_dry_run=changelog_dry_run,
1175
+ auto_version=auto_version,
1176
+ version_since=version_since,
1177
+ accept_version=accept_version,
1178
+ smart_commit=smart_commit,
1179
+ heatmap=heatmap,
1180
+ heatmap_type=heatmap_type,
1181
+ heatmap_output=heatmap_output,
1182
+ anomaly_detection=anomaly_detection,
1183
+ anomaly_sensitivity=anomaly_sensitivity,
1184
+ anomaly_report=anomaly_report,
1185
+ predictive_analytics=predictive_analytics,
1186
+ prediction_periods=prediction_periods,
1187
+ analytics_dashboard=analytics_dashboard,
1188
+ # Advanced features
1189
+ advanced_optimizer=advanced_optimizer,
1190
+ advanced_profile=advanced_profile,
1191
+ advanced_report=advanced_report,
1192
+ mkdocs_integration=mkdocs_integration,
1193
+ mkdocs_serve=mkdocs_serve,
1194
+ mkdocs_theme=mkdocs_theme,
1195
+ mkdocs_output=mkdocs_output,
1196
+ contextual_ai=contextual_ai,
1197
+ ai_recommendations=ai_recommendations,
1198
+ ai_help_query=ai_help_query,
1199
+ check_config_updates=check_config_updates,
1200
+ apply_config_updates=apply_config_updates,
1201
+ diff_config=diff_config,
1202
+ config_interactive=config_interactive,
1203
+ refresh_cache=refresh_cache,
1204
+ use_acb_workflows=use_acb_workflows,
1205
+ use_legacy_orchestrator=use_legacy_orchestrator,
1206
+ # New semantic parameters
1207
+ strip_code=strip_code,
1208
+ run_tests=run_tests,
1209
+ ai_fix=ai_fix,
1210
+ dry_run=dry_run,
1211
+ full_release=full_release,
1212
+ show_progress=show_progress,
1213
+ advanced_monitor=advanced_monitor,
1214
+ coverage_report=coverage_report,
1215
+ clean_releases=clean_releases,
1216
+ )