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.
- crackerjack/README.md +19 -0
- crackerjack/__init__.py +30 -1
- crackerjack/__main__.py +342 -1263
- crackerjack/adapters/README.md +18 -0
- crackerjack/adapters/__init__.py +27 -5
- crackerjack/adapters/_output_paths.py +167 -0
- crackerjack/adapters/_qa_adapter_base.py +309 -0
- crackerjack/adapters/_tool_adapter_base.py +706 -0
- crackerjack/adapters/ai/README.md +65 -0
- crackerjack/adapters/ai/__init__.py +5 -0
- crackerjack/adapters/ai/claude.py +853 -0
- crackerjack/adapters/complexity/README.md +53 -0
- crackerjack/adapters/complexity/__init__.py +10 -0
- crackerjack/adapters/complexity/complexipy.py +641 -0
- crackerjack/adapters/dependency/__init__.py +22 -0
- crackerjack/adapters/dependency/pip_audit.py +418 -0
- crackerjack/adapters/format/README.md +72 -0
- crackerjack/adapters/format/__init__.py +11 -0
- crackerjack/adapters/format/mdformat.py +313 -0
- crackerjack/adapters/format/ruff.py +516 -0
- crackerjack/adapters/lint/README.md +47 -0
- crackerjack/adapters/lint/__init__.py +11 -0
- crackerjack/adapters/lint/codespell.py +273 -0
- crackerjack/adapters/lsp/README.md +49 -0
- crackerjack/adapters/lsp/__init__.py +27 -0
- crackerjack/adapters/{rust_tool_manager.py → lsp/_manager.py} +3 -3
- crackerjack/adapters/{skylos_adapter.py → lsp/skylos.py} +59 -7
- crackerjack/adapters/{zuban_adapter.py → lsp/zuban.py} +3 -6
- crackerjack/adapters/refactor/README.md +59 -0
- crackerjack/adapters/refactor/__init__.py +12 -0
- crackerjack/adapters/refactor/creosote.py +318 -0
- crackerjack/adapters/refactor/refurb.py +406 -0
- crackerjack/adapters/refactor/skylos.py +494 -0
- crackerjack/adapters/sast/README.md +132 -0
- crackerjack/adapters/sast/__init__.py +32 -0
- crackerjack/adapters/sast/_base.py +201 -0
- crackerjack/adapters/sast/bandit.py +423 -0
- crackerjack/adapters/sast/pyscn.py +405 -0
- crackerjack/adapters/sast/semgrep.py +241 -0
- crackerjack/adapters/security/README.md +111 -0
- crackerjack/adapters/security/__init__.py +17 -0
- crackerjack/adapters/security/gitleaks.py +339 -0
- crackerjack/adapters/type/README.md +52 -0
- crackerjack/adapters/type/__init__.py +12 -0
- crackerjack/adapters/type/pyrefly.py +402 -0
- crackerjack/adapters/type/ty.py +402 -0
- crackerjack/adapters/type/zuban.py +522 -0
- crackerjack/adapters/utility/README.md +51 -0
- crackerjack/adapters/utility/__init__.py +10 -0
- crackerjack/adapters/utility/checks.py +884 -0
- crackerjack/agents/README.md +264 -0
- crackerjack/agents/__init__.py +40 -12
- crackerjack/agents/base.py +1 -0
- crackerjack/agents/claude_code_bridge.py +641 -0
- crackerjack/agents/coordinator.py +49 -53
- crackerjack/agents/dry_agent.py +187 -3
- crackerjack/agents/enhanced_coordinator.py +279 -0
- crackerjack/agents/enhanced_proactive_agent.py +185 -0
- crackerjack/agents/error_middleware.py +53 -0
- crackerjack/agents/formatting_agent.py +6 -8
- crackerjack/agents/helpers/__init__.py +9 -0
- crackerjack/agents/helpers/performance/__init__.py +22 -0
- crackerjack/agents/helpers/performance/performance_ast_analyzer.py +357 -0
- crackerjack/agents/helpers/performance/performance_pattern_detector.py +909 -0
- crackerjack/agents/helpers/performance/performance_recommender.py +572 -0
- crackerjack/agents/helpers/refactoring/__init__.py +22 -0
- crackerjack/agents/helpers/refactoring/code_transformer.py +536 -0
- crackerjack/agents/helpers/refactoring/complexity_analyzer.py +344 -0
- crackerjack/agents/helpers/refactoring/dead_code_detector.py +437 -0
- crackerjack/agents/helpers/test_creation/__init__.py +19 -0
- crackerjack/agents/helpers/test_creation/test_ast_analyzer.py +216 -0
- crackerjack/agents/helpers/test_creation/test_coverage_analyzer.py +643 -0
- crackerjack/agents/helpers/test_creation/test_template_generator.py +1031 -0
- crackerjack/agents/performance_agent.py +121 -1152
- crackerjack/agents/refactoring_agent.py +156 -655
- crackerjack/agents/semantic_agent.py +479 -0
- crackerjack/agents/semantic_helpers.py +356 -0
- crackerjack/agents/test_creation_agent.py +19 -1605
- crackerjack/api.py +5 -7
- crackerjack/cli/README.md +394 -0
- crackerjack/cli/__init__.py +1 -1
- crackerjack/cli/cache_handlers.py +23 -18
- crackerjack/cli/cache_handlers_enhanced.py +1 -4
- crackerjack/cli/facade.py +70 -8
- crackerjack/cli/formatting.py +13 -0
- crackerjack/cli/handlers/__init__.py +85 -0
- crackerjack/cli/handlers/advanced.py +103 -0
- crackerjack/cli/handlers/ai_features.py +62 -0
- crackerjack/cli/handlers/analytics.py +479 -0
- crackerjack/cli/handlers/changelog.py +271 -0
- crackerjack/cli/handlers/config_handlers.py +16 -0
- crackerjack/cli/handlers/coverage.py +84 -0
- crackerjack/cli/handlers/documentation.py +280 -0
- crackerjack/cli/handlers/main_handlers.py +497 -0
- crackerjack/cli/handlers/monitoring.py +371 -0
- crackerjack/cli/handlers.py +249 -49
- crackerjack/cli/interactive.py +8 -5
- crackerjack/cli/options.py +203 -110
- crackerjack/cli/semantic_handlers.py +292 -0
- crackerjack/cli/version.py +19 -0
- crackerjack/code_cleaner.py +60 -24
- crackerjack/config/README.md +472 -0
- crackerjack/config/__init__.py +256 -0
- crackerjack/config/global_lock_config.py +191 -54
- crackerjack/config/hooks.py +188 -16
- crackerjack/config/loader.py +239 -0
- crackerjack/config/settings.py +141 -0
- crackerjack/config/tool_commands.py +331 -0
- crackerjack/core/README.md +393 -0
- crackerjack/core/async_workflow_orchestrator.py +79 -53
- crackerjack/core/autofix_coordinator.py +22 -9
- crackerjack/core/container.py +10 -9
- crackerjack/core/enhanced_container.py +9 -9
- crackerjack/core/performance.py +1 -1
- crackerjack/core/performance_monitor.py +5 -3
- crackerjack/core/phase_coordinator.py +1018 -634
- crackerjack/core/proactive_workflow.py +3 -3
- crackerjack/core/retry.py +275 -0
- crackerjack/core/service_watchdog.py +167 -23
- crackerjack/core/session_coordinator.py +187 -382
- crackerjack/core/timeout_manager.py +161 -44
- crackerjack/core/workflow/__init__.py +21 -0
- crackerjack/core/workflow/workflow_ai_coordinator.py +863 -0
- crackerjack/core/workflow/workflow_event_orchestrator.py +1107 -0
- crackerjack/core/workflow/workflow_issue_parser.py +714 -0
- crackerjack/core/workflow/workflow_phase_executor.py +1158 -0
- crackerjack/core/workflow/workflow_security_gates.py +400 -0
- crackerjack/core/workflow_orchestrator.py +1247 -953
- crackerjack/data/README.md +11 -0
- crackerjack/data/__init__.py +8 -0
- crackerjack/data/models.py +79 -0
- crackerjack/data/repository.py +210 -0
- crackerjack/decorators/README.md +180 -0
- crackerjack/decorators/__init__.py +35 -0
- crackerjack/decorators/error_handling.py +649 -0
- crackerjack/decorators/error_handling_decorators.py +334 -0
- crackerjack/decorators/helpers.py +58 -0
- crackerjack/decorators/patterns.py +281 -0
- crackerjack/decorators/utils.py +58 -0
- crackerjack/docs/README.md +11 -0
- crackerjack/docs/generated/api/CLI_REFERENCE.md +1 -1
- crackerjack/documentation/README.md +11 -0
- crackerjack/documentation/ai_templates.py +1 -1
- crackerjack/documentation/dual_output_generator.py +11 -9
- crackerjack/documentation/reference_generator.py +104 -59
- crackerjack/dynamic_config.py +52 -61
- crackerjack/errors.py +1 -1
- crackerjack/events/README.md +11 -0
- crackerjack/events/__init__.py +16 -0
- crackerjack/events/telemetry.py +175 -0
- crackerjack/events/workflow_bus.py +346 -0
- crackerjack/exceptions/README.md +301 -0
- crackerjack/exceptions/__init__.py +5 -0
- crackerjack/exceptions/config.py +4 -0
- crackerjack/exceptions/tool_execution_error.py +245 -0
- crackerjack/executors/README.md +591 -0
- crackerjack/executors/__init__.py +2 -0
- crackerjack/executors/async_hook_executor.py +539 -77
- crackerjack/executors/cached_hook_executor.py +3 -3
- crackerjack/executors/hook_executor.py +967 -102
- crackerjack/executors/hook_lock_manager.py +31 -22
- crackerjack/executors/individual_hook_executor.py +66 -32
- crackerjack/executors/lsp_aware_hook_executor.py +136 -57
- crackerjack/executors/progress_hook_executor.py +282 -0
- crackerjack/executors/tool_proxy.py +23 -7
- crackerjack/hooks/README.md +485 -0
- crackerjack/hooks/lsp_hook.py +8 -9
- crackerjack/intelligence/README.md +557 -0
- crackerjack/interactive.py +37 -10
- crackerjack/managers/README.md +369 -0
- crackerjack/managers/async_hook_manager.py +41 -57
- crackerjack/managers/hook_manager.py +449 -79
- crackerjack/managers/publish_manager.py +81 -36
- crackerjack/managers/test_command_builder.py +290 -12
- crackerjack/managers/test_executor.py +93 -8
- crackerjack/managers/test_manager.py +1082 -75
- crackerjack/managers/test_progress.py +118 -26
- crackerjack/mcp/README.md +374 -0
- crackerjack/mcp/cache.py +25 -2
- crackerjack/mcp/client_runner.py +35 -18
- crackerjack/mcp/context.py +9 -9
- crackerjack/mcp/dashboard.py +24 -8
- crackerjack/mcp/enhanced_progress_monitor.py +34 -23
- crackerjack/mcp/file_monitor.py +27 -6
- crackerjack/mcp/progress_components.py +45 -34
- crackerjack/mcp/progress_monitor.py +6 -9
- crackerjack/mcp/rate_limiter.py +11 -7
- crackerjack/mcp/server.py +2 -0
- crackerjack/mcp/server_core.py +187 -55
- crackerjack/mcp/service_watchdog.py +12 -9
- crackerjack/mcp/task_manager.py +2 -2
- crackerjack/mcp/tools/README.md +27 -0
- crackerjack/mcp/tools/__init__.py +2 -0
- crackerjack/mcp/tools/core_tools.py +75 -52
- crackerjack/mcp/tools/execution_tools.py +87 -31
- crackerjack/mcp/tools/intelligence_tools.py +2 -2
- crackerjack/mcp/tools/proactive_tools.py +1 -1
- crackerjack/mcp/tools/semantic_tools.py +584 -0
- crackerjack/mcp/tools/utility_tools.py +180 -132
- crackerjack/mcp/tools/workflow_executor.py +87 -46
- crackerjack/mcp/websocket/README.md +31 -0
- crackerjack/mcp/websocket/app.py +11 -1
- crackerjack/mcp/websocket/event_bridge.py +188 -0
- crackerjack/mcp/websocket/jobs.py +27 -4
- crackerjack/mcp/websocket/monitoring/__init__.py +25 -0
- crackerjack/mcp/websocket/monitoring/api/__init__.py +19 -0
- crackerjack/mcp/websocket/monitoring/api/dependencies.py +141 -0
- crackerjack/mcp/websocket/monitoring/api/heatmap.py +154 -0
- crackerjack/mcp/websocket/monitoring/api/intelligence.py +199 -0
- crackerjack/mcp/websocket/monitoring/api/metrics.py +203 -0
- crackerjack/mcp/websocket/monitoring/api/telemetry.py +101 -0
- crackerjack/mcp/websocket/monitoring/dashboard.py +18 -0
- crackerjack/mcp/websocket/monitoring/factory.py +109 -0
- crackerjack/mcp/websocket/monitoring/filters.py +10 -0
- crackerjack/mcp/websocket/monitoring/metrics.py +64 -0
- crackerjack/mcp/websocket/monitoring/models.py +90 -0
- crackerjack/mcp/websocket/monitoring/utils.py +171 -0
- crackerjack/mcp/websocket/monitoring/websocket_manager.py +78 -0
- crackerjack/mcp/websocket/monitoring/websockets/__init__.py +17 -0
- crackerjack/mcp/websocket/monitoring/websockets/dependencies.py +126 -0
- crackerjack/mcp/websocket/monitoring/websockets/heatmap.py +176 -0
- crackerjack/mcp/websocket/monitoring/websockets/intelligence.py +291 -0
- crackerjack/mcp/websocket/monitoring/websockets/metrics.py +291 -0
- crackerjack/mcp/websocket/monitoring_endpoints.py +16 -2930
- crackerjack/mcp/websocket/server.py +1 -3
- crackerjack/mcp/websocket/websocket_handler.py +107 -6
- crackerjack/models/README.md +308 -0
- crackerjack/models/__init__.py +10 -1
- crackerjack/models/config.py +639 -22
- crackerjack/models/config_adapter.py +6 -6
- crackerjack/models/protocols.py +1167 -23
- crackerjack/models/pydantic_models.py +320 -0
- crackerjack/models/qa_config.py +145 -0
- crackerjack/models/qa_results.py +134 -0
- crackerjack/models/results.py +35 -0
- crackerjack/models/semantic_models.py +258 -0
- crackerjack/models/task.py +19 -3
- crackerjack/models/test_models.py +60 -0
- crackerjack/monitoring/README.md +11 -0
- crackerjack/monitoring/ai_agent_watchdog.py +5 -4
- crackerjack/monitoring/metrics_collector.py +4 -3
- crackerjack/monitoring/regression_prevention.py +4 -3
- crackerjack/monitoring/websocket_server.py +4 -241
- crackerjack/orchestration/README.md +340 -0
- crackerjack/orchestration/__init__.py +43 -0
- crackerjack/orchestration/advanced_orchestrator.py +20 -67
- crackerjack/orchestration/cache/README.md +312 -0
- crackerjack/orchestration/cache/__init__.py +37 -0
- crackerjack/orchestration/cache/memory_cache.py +338 -0
- crackerjack/orchestration/cache/tool_proxy_cache.py +340 -0
- crackerjack/orchestration/config.py +297 -0
- crackerjack/orchestration/coverage_improvement.py +13 -6
- crackerjack/orchestration/execution_strategies.py +6 -6
- crackerjack/orchestration/hook_orchestrator.py +1398 -0
- crackerjack/orchestration/strategies/README.md +401 -0
- crackerjack/orchestration/strategies/__init__.py +39 -0
- crackerjack/orchestration/strategies/adaptive_strategy.py +630 -0
- crackerjack/orchestration/strategies/parallel_strategy.py +237 -0
- crackerjack/orchestration/strategies/sequential_strategy.py +299 -0
- crackerjack/orchestration/test_progress_streamer.py +1 -1
- crackerjack/plugins/README.md +11 -0
- crackerjack/plugins/hooks.py +3 -2
- crackerjack/plugins/loader.py +3 -3
- crackerjack/plugins/managers.py +1 -1
- crackerjack/py313.py +191 -0
- crackerjack/security/README.md +11 -0
- crackerjack/services/README.md +374 -0
- crackerjack/services/__init__.py +8 -21
- crackerjack/services/ai/README.md +295 -0
- crackerjack/services/ai/__init__.py +7 -0
- crackerjack/services/ai/advanced_optimizer.py +878 -0
- crackerjack/services/{contextual_ai_assistant.py → ai/contextual_ai_assistant.py} +5 -3
- crackerjack/services/ai/embeddings.py +444 -0
- crackerjack/services/ai/intelligent_commit.py +328 -0
- crackerjack/services/ai/predictive_analytics.py +510 -0
- crackerjack/services/api_extractor.py +5 -3
- crackerjack/services/bounded_status_operations.py +45 -5
- crackerjack/services/cache.py +249 -318
- crackerjack/services/changelog_automation.py +7 -3
- crackerjack/services/command_execution_service.py +305 -0
- crackerjack/services/config_integrity.py +83 -39
- crackerjack/services/config_merge.py +9 -6
- crackerjack/services/config_service.py +198 -0
- crackerjack/services/config_template.py +13 -26
- crackerjack/services/coverage_badge_service.py +6 -4
- crackerjack/services/coverage_ratchet.py +53 -27
- crackerjack/services/debug.py +18 -7
- crackerjack/services/dependency_analyzer.py +4 -4
- crackerjack/services/dependency_monitor.py +13 -13
- crackerjack/services/documentation_generator.py +4 -2
- crackerjack/services/documentation_service.py +62 -33
- crackerjack/services/enhanced_filesystem.py +81 -27
- crackerjack/services/enterprise_optimizer.py +1 -1
- crackerjack/services/error_pattern_analyzer.py +10 -10
- crackerjack/services/file_filter.py +221 -0
- crackerjack/services/file_hasher.py +5 -7
- crackerjack/services/file_io_service.py +361 -0
- crackerjack/services/file_modifier.py +615 -0
- crackerjack/services/filesystem.py +80 -109
- crackerjack/services/git.py +99 -5
- crackerjack/services/health_metrics.py +4 -6
- crackerjack/services/heatmap_generator.py +12 -3
- crackerjack/services/incremental_executor.py +380 -0
- crackerjack/services/initialization.py +101 -49
- crackerjack/services/log_manager.py +2 -2
- crackerjack/services/logging.py +120 -68
- crackerjack/services/lsp_client.py +12 -12
- crackerjack/services/memory_optimizer.py +27 -22
- crackerjack/services/monitoring/README.md +30 -0
- crackerjack/services/monitoring/__init__.py +9 -0
- crackerjack/services/monitoring/dependency_monitor.py +678 -0
- crackerjack/services/monitoring/error_pattern_analyzer.py +676 -0
- crackerjack/services/monitoring/health_metrics.py +716 -0
- crackerjack/services/monitoring/metrics.py +587 -0
- crackerjack/services/{performance_benchmarks.py → monitoring/performance_benchmarks.py} +100 -14
- crackerjack/services/{performance_cache.py → monitoring/performance_cache.py} +21 -15
- crackerjack/services/{performance_monitor.py → monitoring/performance_monitor.py} +10 -6
- crackerjack/services/parallel_executor.py +166 -55
- crackerjack/services/patterns/__init__.py +142 -0
- crackerjack/services/patterns/agents.py +107 -0
- crackerjack/services/patterns/code/__init__.py +15 -0
- crackerjack/services/patterns/code/detection.py +118 -0
- crackerjack/services/patterns/code/imports.py +107 -0
- crackerjack/services/patterns/code/paths.py +159 -0
- crackerjack/services/patterns/code/performance.py +119 -0
- crackerjack/services/patterns/code/replacement.py +36 -0
- crackerjack/services/patterns/core.py +212 -0
- crackerjack/services/patterns/documentation/__init__.py +14 -0
- crackerjack/services/patterns/documentation/badges_markdown.py +96 -0
- crackerjack/services/patterns/documentation/comments_blocks.py +83 -0
- crackerjack/services/patterns/documentation/docstrings.py +89 -0
- crackerjack/services/patterns/formatting.py +226 -0
- crackerjack/services/patterns/operations.py +339 -0
- crackerjack/services/patterns/security/__init__.py +23 -0
- crackerjack/services/patterns/security/code_injection.py +122 -0
- crackerjack/services/patterns/security/credentials.py +190 -0
- crackerjack/services/patterns/security/path_traversal.py +221 -0
- crackerjack/services/patterns/security/unsafe_operations.py +216 -0
- crackerjack/services/patterns/templates.py +62 -0
- crackerjack/services/patterns/testing/__init__.py +18 -0
- crackerjack/services/patterns/testing/error_patterns.py +107 -0
- crackerjack/services/patterns/testing/pytest_output.py +126 -0
- crackerjack/services/patterns/tool_output/__init__.py +16 -0
- crackerjack/services/patterns/tool_output/bandit.py +72 -0
- crackerjack/services/patterns/tool_output/other.py +97 -0
- crackerjack/services/patterns/tool_output/pyright.py +67 -0
- crackerjack/services/patterns/tool_output/ruff.py +44 -0
- crackerjack/services/patterns/url_sanitization.py +114 -0
- crackerjack/services/patterns/utilities.py +42 -0
- crackerjack/services/patterns/utils.py +339 -0
- crackerjack/services/patterns/validation.py +46 -0
- crackerjack/services/patterns/versioning.py +62 -0
- crackerjack/services/predictive_analytics.py +21 -8
- crackerjack/services/profiler.py +280 -0
- crackerjack/services/quality/README.md +415 -0
- crackerjack/services/quality/__init__.py +11 -0
- crackerjack/services/quality/anomaly_detector.py +392 -0
- crackerjack/services/quality/pattern_cache.py +333 -0
- crackerjack/services/quality/pattern_detector.py +479 -0
- crackerjack/services/quality/qa_orchestrator.py +491 -0
- crackerjack/services/{quality_baseline.py → quality/quality_baseline.py} +163 -2
- crackerjack/services/{quality_baseline_enhanced.py → quality/quality_baseline_enhanced.py} +4 -1
- crackerjack/services/{quality_intelligence.py → quality/quality_intelligence.py} +180 -16
- crackerjack/services/regex_patterns.py +58 -2987
- crackerjack/services/regex_utils.py +55 -29
- crackerjack/services/secure_status_formatter.py +42 -15
- crackerjack/services/secure_subprocess.py +35 -2
- crackerjack/services/security.py +16 -8
- crackerjack/services/server_manager.py +40 -51
- crackerjack/services/smart_scheduling.py +46 -6
- crackerjack/services/status_authentication.py +3 -3
- crackerjack/services/thread_safe_status_collector.py +1 -0
- crackerjack/services/tool_filter.py +368 -0
- crackerjack/services/tool_version_service.py +9 -5
- crackerjack/services/unified_config.py +43 -351
- crackerjack/services/vector_store.py +689 -0
- crackerjack/services/version_analyzer.py +6 -4
- crackerjack/services/version_checker.py +14 -8
- crackerjack/services/zuban_lsp_service.py +5 -4
- crackerjack/slash_commands/README.md +11 -0
- crackerjack/slash_commands/init.md +2 -12
- crackerjack/slash_commands/run.md +84 -50
- crackerjack/tools/README.md +11 -0
- crackerjack/tools/__init__.py +30 -0
- crackerjack/tools/_git_utils.py +105 -0
- crackerjack/tools/check_added_large_files.py +139 -0
- crackerjack/tools/check_ast.py +105 -0
- crackerjack/tools/check_json.py +103 -0
- crackerjack/tools/check_jsonschema.py +297 -0
- crackerjack/tools/check_toml.py +103 -0
- crackerjack/tools/check_yaml.py +110 -0
- crackerjack/tools/codespell_wrapper.py +72 -0
- crackerjack/tools/end_of_file_fixer.py +202 -0
- crackerjack/tools/format_json.py +128 -0
- crackerjack/tools/mdformat_wrapper.py +114 -0
- crackerjack/tools/trailing_whitespace.py +198 -0
- crackerjack/tools/validate_regex_patterns.py +7 -3
- crackerjack/ui/README.md +11 -0
- crackerjack/ui/dashboard_renderer.py +28 -0
- crackerjack/ui/templates/README.md +11 -0
- crackerjack/utils/console_utils.py +13 -0
- crackerjack/utils/dependency_guard.py +230 -0
- crackerjack/utils/retry_utils.py +275 -0
- crackerjack/workflows/README.md +590 -0
- crackerjack/workflows/__init__.py +46 -0
- crackerjack/workflows/actions.py +811 -0
- crackerjack/workflows/auto_fix.py +444 -0
- crackerjack/workflows/container_builder.py +499 -0
- crackerjack/workflows/definitions.py +443 -0
- crackerjack/workflows/engine.py +177 -0
- crackerjack/workflows/event_bridge.py +242 -0
- {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/METADATA +678 -98
- crackerjack-0.45.2.dist-info/RECORD +478 -0
- {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/WHEEL +1 -1
- crackerjack/managers/test_manager_backup.py +0 -1075
- crackerjack/mcp/tools/execution_tools_backup.py +0 -1011
- crackerjack/mixins/__init__.py +0 -3
- crackerjack/mixins/error_handling.py +0 -145
- crackerjack/services/config.py +0 -358
- crackerjack/ui/server_panels.py +0 -125
- crackerjack-0.37.9.dist-info/RECORD +0 -231
- /crackerjack/adapters/{rust_tool_adapter.py → lsp/_base.py} +0 -0
- /crackerjack/adapters/{lsp_client.py → lsp/_client.py} +0 -0
- {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/entry_points.txt +0 -0
- {crackerjack-0.37.9.dist-info → crackerjack-0.45.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
# Core
|
|
2
|
+
|
|
3
|
+
> Crackerjack Docs: [Main](<../../README.md>) | [CLAUDE.md](../../docs/guides/CLAUDE.md) | [Core](<./README.md>)
|
|
4
|
+
|
|
5
|
+
Core utilities, coordinators, and orchestration layer for Crackerjack's workflow management.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The core package provides the orchestration backbone for Crackerjack's workflow execution. It implements coordinators for session management, phase execution, workflow orchestration, and service lifecycle management. Core components bridge CLI handlers and the service layer, managing execution flow, resource coordination, and error handling.
|
|
10
|
+
|
|
11
|
+
## Key Components
|
|
12
|
+
|
|
13
|
+
### Coordinators
|
|
14
|
+
|
|
15
|
+
**session_coordinator.py** - Lightweight session tracking:
|
|
16
|
+
|
|
17
|
+
- `SessionCoordinator` - Session lifecycle management
|
|
18
|
+
- Session metadata and task tracking via `SessionTracker`
|
|
19
|
+
- Cleanup handler registration and execution
|
|
20
|
+
- Lock file management
|
|
21
|
+
- Gold standard ACB integration with protocol-based DI
|
|
22
|
+
|
|
23
|
+
**phase_coordinator.py** - Execution phase coordination:
|
|
24
|
+
|
|
25
|
+
- Fast hooks phase (~5s): formatting, basic checks
|
|
26
|
+
- Test phase: full test suite with coverage
|
|
27
|
+
- Comprehensive hooks phase (~30s): type checking, security
|
|
28
|
+
- AI batch fixing phase: process all collected failures
|
|
29
|
+
- Phase dependency management and ordering
|
|
30
|
+
|
|
31
|
+
**autofix_coordinator.py** - AI agent autofix coordination:
|
|
32
|
+
|
|
33
|
+
- Agent-based issue fixing orchestration
|
|
34
|
+
- Batch processing of quality issues
|
|
35
|
+
- Confidence-based agent selection
|
|
36
|
+
- Fix validation and rollback support
|
|
37
|
+
- Integration with 12 specialized AI agents
|
|
38
|
+
|
|
39
|
+
**async_workflow_orchestrator.py** - Async workflow management:
|
|
40
|
+
|
|
41
|
+
- Asynchronous workflow execution
|
|
42
|
+
- Parallel phase execution support
|
|
43
|
+
- Event-driven workflow coordination
|
|
44
|
+
- Resource pooling and lifecycle management
|
|
45
|
+
|
|
46
|
+
**proactive_workflow.py** - Proactive quality monitoring:
|
|
47
|
+
|
|
48
|
+
- Predictive issue detection
|
|
49
|
+
- Preemptive optimization recommendations
|
|
50
|
+
- Trend analysis and quality forecasting
|
|
51
|
+
- Integration with `EnhancedProactiveAgent`
|
|
52
|
+
|
|
53
|
+
### Workflow Orchestration
|
|
54
|
+
|
|
55
|
+
**workflow_orchestrator.py** - Main workflow pipeline:
|
|
56
|
+
|
|
57
|
+
- `WorkflowPipeline` - End-to-end workflow execution
|
|
58
|
+
- Hook execution (fast → comprehensive)
|
|
59
|
+
- Test management integration
|
|
60
|
+
- Publishing and release coordination
|
|
61
|
+
- Error aggregation and reporting
|
|
62
|
+
|
|
63
|
+
**workflow/** - Specialized workflow components:
|
|
64
|
+
|
|
65
|
+
- `workflow_ai_coordinator.py` - AI agent workflow integration
|
|
66
|
+
- `workflow_event_orchestrator.py` - Event-driven workflow coordination
|
|
67
|
+
- `workflow_issue_parser.py` - Quality issue parsing and categorization
|
|
68
|
+
- `workflow_phase_executor.py` - Individual phase execution logic
|
|
69
|
+
- `workflow_security_gates.py` - Security validation gates
|
|
70
|
+
|
|
71
|
+
### Service Management
|
|
72
|
+
|
|
73
|
+
**service_watchdog.py** - Service health monitoring:
|
|
74
|
+
|
|
75
|
+
- Monitors long-running services (MCP server, WebSocket server)
|
|
76
|
+
- Automatic restart on failure
|
|
77
|
+
- Health check coordination
|
|
78
|
+
- Service status reporting
|
|
79
|
+
- **⚠️ Needs DI integration** (currently uses factory functions)
|
|
80
|
+
|
|
81
|
+
**timeout_manager.py** - Centralized timeout management:
|
|
82
|
+
|
|
83
|
+
- Per-operation timeout configuration
|
|
84
|
+
- Timeout strategy selection (fixed, adaptive, exponential backoff)
|
|
85
|
+
- Timeout enforcement and tracking
|
|
86
|
+
- Performance metrics for timeout tuning
|
|
87
|
+
|
|
88
|
+
**resource_manager.py** - Resource lifecycle coordination:
|
|
89
|
+
|
|
90
|
+
- Resource registration and tracking
|
|
91
|
+
- Cleanup coordination across components
|
|
92
|
+
- Memory optimization support
|
|
93
|
+
- Resource leak detection
|
|
94
|
+
|
|
95
|
+
### Performance & Monitoring
|
|
96
|
+
|
|
97
|
+
**performance.py** - Performance tracking utilities:
|
|
98
|
+
|
|
99
|
+
- Execution timing decorators
|
|
100
|
+
- Performance metric collection
|
|
101
|
+
- Benchmark helpers
|
|
102
|
+
- Performance regression detection
|
|
103
|
+
|
|
104
|
+
**performance_monitor.py** - Workflow performance monitoring:
|
|
105
|
+
|
|
106
|
+
- Per-workflow performance tracking
|
|
107
|
+
- Phase-level performance metrics
|
|
108
|
+
- Performance trend analysis
|
|
109
|
+
- Benchmark comparison and reporting
|
|
110
|
+
|
|
111
|
+
### Lifecycle Management
|
|
112
|
+
|
|
113
|
+
**file_lifecycle.py** - File operation lifecycle:
|
|
114
|
+
|
|
115
|
+
- Atomic file operations
|
|
116
|
+
- Backup and rollback support
|
|
117
|
+
- Safe file modification
|
|
118
|
+
- File lock coordination
|
|
119
|
+
|
|
120
|
+
**websocket_lifecycle.py** - WebSocket connection lifecycle:
|
|
121
|
+
|
|
122
|
+
- WebSocket connection management
|
|
123
|
+
- Reconnection logic
|
|
124
|
+
- Event subscription handling
|
|
125
|
+
- Connection health monitoring
|
|
126
|
+
|
|
127
|
+
### Dependency Injection Containers
|
|
128
|
+
|
|
129
|
+
**container.py** - Base DI container:
|
|
130
|
+
|
|
131
|
+
- Service registration
|
|
132
|
+
- Dependency resolution
|
|
133
|
+
- Singleton management
|
|
134
|
+
- Factory function support
|
|
135
|
+
|
|
136
|
+
**enhanced_container.py** - Enhanced DI container:
|
|
137
|
+
|
|
138
|
+
- Advanced dependency injection features
|
|
139
|
+
- Circular dependency detection
|
|
140
|
+
- Lazy initialization support
|
|
141
|
+
- Scope management (singleton, transient, scoped)
|
|
142
|
+
|
|
143
|
+
## Usage Examples
|
|
144
|
+
|
|
145
|
+
### Session Coordination (Gold Standard)
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
from acb.depends import depends, Inject
|
|
149
|
+
from crackerjack.core.session_coordinator import SessionCoordinator
|
|
150
|
+
from crackerjack.models.protocols import Console
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
@depends.inject
|
|
154
|
+
def run_workflow(
|
|
155
|
+
session: Inject[SessionCoordinator] = None,
|
|
156
|
+
console: Inject[Console] = None,
|
|
157
|
+
) -> None:
|
|
158
|
+
"""Run workflow with session tracking."""
|
|
159
|
+
session.start_session("quality_checks")
|
|
160
|
+
|
|
161
|
+
try:
|
|
162
|
+
# Execute workflow phases
|
|
163
|
+
console.print("[bold]Running quality checks...[/bold]")
|
|
164
|
+
# ... workflow logic ...
|
|
165
|
+
session.end_session(success=True)
|
|
166
|
+
except Exception as e:
|
|
167
|
+
console.print(f"[red]Error: {e}[/red]")
|
|
168
|
+
session.end_session(success=False)
|
|
169
|
+
raise
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Phase Coordination
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
from crackerjack.core.phase_coordinator import PhaseCoordinator
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
@depends.inject
|
|
179
|
+
async def execute_quality_pipeline(
|
|
180
|
+
phase_coord: Inject[PhaseCoordinator] = None,
|
|
181
|
+
) -> bool:
|
|
182
|
+
"""Execute quality assurance pipeline."""
|
|
183
|
+
# Phase 1: Fast hooks
|
|
184
|
+
fast_results = await phase_coord.execute_fast_phase()
|
|
185
|
+
|
|
186
|
+
# Phase 2: Tests
|
|
187
|
+
test_results = await phase_coord.execute_test_phase()
|
|
188
|
+
|
|
189
|
+
# Phase 3: Comprehensive hooks
|
|
190
|
+
comp_results = await phase_coord.execute_comprehensive_phase()
|
|
191
|
+
|
|
192
|
+
# Phase 4: AI batch fixing (if enabled)
|
|
193
|
+
if phase_coord.ai_fix_enabled:
|
|
194
|
+
fix_results = await phase_coord.execute_ai_fix_phase(
|
|
195
|
+
fast_results + comp_results + test_results
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
return all([fast_results, test_results, comp_results])
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Workflow Orchestration
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
from crackerjack.core.workflow_orchestrator import WorkflowPipeline
|
|
205
|
+
from crackerjack.models.protocols import OptionsProtocol
|
|
206
|
+
|
|
207
|
+
@depends.inject
|
|
208
|
+
async def run_full_workflow(
|
|
209
|
+
workflow: Inject[WorkflowPipeline] = None,
|
|
210
|
+
options: OptionsProtocol,
|
|
211
|
+
) -> bool:
|
|
212
|
+
"""Execute complete workflow pipeline."""
|
|
213
|
+
result = await workflow.execute(options)
|
|
214
|
+
|
|
215
|
+
if result.success:
|
|
216
|
+
console.print("[green]✓ Workflow completed successfully[/green]")
|
|
217
|
+
else:
|
|
218
|
+
console.print("[red]✗ Workflow failed[/red]")
|
|
219
|
+
for error in result.errors:
|
|
220
|
+
console.print(f" - {error}")
|
|
221
|
+
|
|
222
|
+
return result.success
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Performance Monitoring
|
|
226
|
+
|
|
227
|
+
```python
|
|
228
|
+
from crackerjack.core.performance_monitor import PerformanceMonitor
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
@depends.inject
|
|
232
|
+
def monitored_operation(
|
|
233
|
+
perf_monitor: Inject[PerformanceMonitor] = None,
|
|
234
|
+
) -> None:
|
|
235
|
+
"""Operation with performance monitoring."""
|
|
236
|
+
workflow_id = "quality_checks_2025"
|
|
237
|
+
|
|
238
|
+
perf_monitor.start_workflow(workflow_id)
|
|
239
|
+
perf_monitor.start_phase(workflow_id, "fast_hooks")
|
|
240
|
+
|
|
241
|
+
try:
|
|
242
|
+
# Execute operation
|
|
243
|
+
run_fast_hooks()
|
|
244
|
+
perf_monitor.end_phase(workflow_id, "fast_hooks", success=True)
|
|
245
|
+
except Exception:
|
|
246
|
+
perf_monitor.end_phase(workflow_id, "fast_hooks", success=False)
|
|
247
|
+
raise
|
|
248
|
+
finally:
|
|
249
|
+
perf_data = perf_monitor.end_workflow(workflow_id)
|
|
250
|
+
print(f"Workflow duration: {perf_data.duration}s")
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Timeout Management
|
|
254
|
+
|
|
255
|
+
```python
|
|
256
|
+
from crackerjack.core.timeout_manager import TimeoutManager
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
@depends.inject
|
|
260
|
+
def execute_with_timeout(
|
|
261
|
+
timeout_mgr: Inject[TimeoutManager] = None,
|
|
262
|
+
) -> bool:
|
|
263
|
+
"""Execute operation with managed timeout."""
|
|
264
|
+
try:
|
|
265
|
+
result = timeout_mgr.apply_timeout(
|
|
266
|
+
operation="hook_execution",
|
|
267
|
+
func=run_expensive_hook,
|
|
268
|
+
hook_name="bandit",
|
|
269
|
+
)
|
|
270
|
+
return result
|
|
271
|
+
except TimeoutError:
|
|
272
|
+
print("Operation timed out")
|
|
273
|
+
return False
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Architecture Patterns
|
|
277
|
+
|
|
278
|
+
### Coordinator Pattern
|
|
279
|
+
|
|
280
|
+
Coordinators orchestrate multiple services to accomplish complex workflows:
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
class MyCoordinator:
|
|
284
|
+
@depends.inject
|
|
285
|
+
def __init__(
|
|
286
|
+
self,
|
|
287
|
+
console: Inject[Console],
|
|
288
|
+
hook_manager: Inject[HookManager],
|
|
289
|
+
test_manager: Inject[TestManagerProtocol],
|
|
290
|
+
) -> None:
|
|
291
|
+
"""Coordinator with protocol-based dependencies."""
|
|
292
|
+
self.console = console
|
|
293
|
+
self.hook_manager = hook_manager
|
|
294
|
+
self.test_manager = test_manager
|
|
295
|
+
|
|
296
|
+
async def coordinate_workflow(self) -> bool:
|
|
297
|
+
"""Coordinate multi-service workflow."""
|
|
298
|
+
# Fast hooks
|
|
299
|
+
hook_results = await self.hook_manager.run_fast_hooks()
|
|
300
|
+
|
|
301
|
+
# Tests if hooks pass
|
|
302
|
+
if all(r.success for r in hook_results):
|
|
303
|
+
test_results = await self.test_manager.run_tests()
|
|
304
|
+
return test_results
|
|
305
|
+
|
|
306
|
+
return False
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Lifecycle Management
|
|
310
|
+
|
|
311
|
+
Resources are managed through registration and cleanup:
|
|
312
|
+
|
|
313
|
+
```python
|
|
314
|
+
from crackerjack.core.resource_manager import ResourceManager
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
@depends.inject
|
|
318
|
+
def manage_resources(
|
|
319
|
+
resource_mgr: Inject[ResourceManager] = None,
|
|
320
|
+
) -> None:
|
|
321
|
+
"""Manage resource lifecycle."""
|
|
322
|
+
# Register resources
|
|
323
|
+
lock_file = acquire_lock()
|
|
324
|
+
resource_mgr.register_resource(lock_file)
|
|
325
|
+
|
|
326
|
+
try:
|
|
327
|
+
# Use resource
|
|
328
|
+
perform_operation(lock_file)
|
|
329
|
+
finally:
|
|
330
|
+
# Cleanup happens automatically
|
|
331
|
+
resource_mgr.cleanup_resource(lock_file)
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## Configuration
|
|
335
|
+
|
|
336
|
+
Core components integrate with ACB Settings:
|
|
337
|
+
|
|
338
|
+
```yaml
|
|
339
|
+
# settings/crackerjack.yaml
|
|
340
|
+
max_parallel_hooks: 8
|
|
341
|
+
workflow_timeout: 600
|
|
342
|
+
enable_performance_monitoring: true
|
|
343
|
+
session_tracking: true
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
```python
|
|
347
|
+
from crackerjack.config import CrackerjackSettings
|
|
348
|
+
|
|
349
|
+
settings = CrackerjackSettings.load()
|
|
350
|
+
max_parallel = settings.max_parallel_hooks
|
|
351
|
+
timeout = settings.workflow_timeout
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Best Practices
|
|
355
|
+
|
|
356
|
+
1. **Use Protocol-Based DI**: Always inject dependencies via protocols
|
|
357
|
+
1. **Coordinate, Don't Implement**: Coordinators orchestrate, services implement
|
|
358
|
+
1. **Track Performance**: Use `PerformanceMonitor` for execution metrics
|
|
359
|
+
1. **Manage Lifecycle**: Register resources for automatic cleanup
|
|
360
|
+
1. **Handle Timeouts**: Use `TimeoutManager` for consistent timeout handling
|
|
361
|
+
1. **Log Structured Data**: Use structured logging with context
|
|
362
|
+
1. **Fail Gracefully**: Coordinators should handle errors and report clearly
|
|
363
|
+
|
|
364
|
+
## Compliance Status
|
|
365
|
+
|
|
366
|
+
Based on Phase 2-4 refactoring audit:
|
|
367
|
+
|
|
368
|
+
- **Coordinators (70% compliant)**:
|
|
369
|
+
|
|
370
|
+
- ✅ `SessionCoordinator` - Gold standard ACB integration
|
|
371
|
+
- ✅ Phase coordinators use proper DI
|
|
372
|
+
- ⚠️ Async coordinators need protocol standardization
|
|
373
|
+
|
|
374
|
+
- **Orchestration (70% compliant)**:
|
|
375
|
+
|
|
376
|
+
- ✅ `WorkflowOrchestrator` - DI containers, lifecycle management
|
|
377
|
+
- ⚠️ `ServiceWatchdog` - Needs DI integration (factory functions, manual fallbacks)
|
|
378
|
+
|
|
379
|
+
## Related Documentation
|
|
380
|
+
|
|
381
|
+
- [CLAUDE.md](../../docs/guides/CLAUDE.md) - Architecture overview and patterns
|
|
382
|
+
- [Models](<../models/README.md>) - Protocol definitions
|
|
383
|
+
- [Managers](<../managers/README.md>) - Service implementations
|
|
384
|
+
- [Orchestration](<../orchestration/README.md>) - Execution strategies
|
|
385
|
+
- [Agents](<../agents/README.md>) - AI agent system
|
|
386
|
+
|
|
387
|
+
## Future Enhancements
|
|
388
|
+
|
|
389
|
+
- Complete DI migration for `ServiceWatchdog`
|
|
390
|
+
- Enhanced async workflow coordination
|
|
391
|
+
- Advanced performance profiling
|
|
392
|
+
- Real-time workflow dashboards
|
|
393
|
+
- Distributed workflow execution support
|