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,295 @@
|
|
|
1
|
+
> Crackerjack Docs: [Main](<../../../README.md>) | [CLAUDE.md](../../../docs/guides/CLAUDE.md) | [Services](<../README.md>) | AI Services
|
|
2
|
+
|
|
3
|
+
# AI Services
|
|
4
|
+
|
|
5
|
+
AI provider integrations and service abstractions for intelligent code analysis, optimization, and contextual assistance.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The AI services package provides intelligent automation capabilities powered by Claude and other AI providers. These services enhance crackerjack's ability to understand code context, generate intelligent recommendations, optimize workflows, and provide predictive analytics.
|
|
10
|
+
|
|
11
|
+
## Services
|
|
12
|
+
|
|
13
|
+
- **`contextual_ai_assistant.py`** - Context-aware AI recommendations based on project analysis
|
|
14
|
+
- **`intelligent_commit.py`** - AI-powered commit message generation
|
|
15
|
+
- **`embeddings.py`** - Vector embeddings for semantic code analysis
|
|
16
|
+
- **`predictive_analytics.py`** - Predictive quality trend analysis and forecasting
|
|
17
|
+
- **`advanced_optimizer.py`** - AI-driven code and workflow optimization
|
|
18
|
+
|
|
19
|
+
## Features
|
|
20
|
+
|
|
21
|
+
### Contextual AI Assistant
|
|
22
|
+
|
|
23
|
+
Analyzes your project context to provide intelligent, prioritized recommendations:
|
|
24
|
+
|
|
25
|
+
- **Project Analysis** - Detects project type, size, languages, and configuration
|
|
26
|
+
- **Smart Recommendations** - Prioritized suggestions based on current project state
|
|
27
|
+
- **Action Commands** - Executable commands to implement recommendations
|
|
28
|
+
- **Confidence Scoring** - AI confidence levels for each recommendation
|
|
29
|
+
- **Context Caching** - Caches project analysis for performance
|
|
30
|
+
|
|
31
|
+
### Intelligent Commit Messages
|
|
32
|
+
|
|
33
|
+
Generates meaningful commit messages from code changes:
|
|
34
|
+
|
|
35
|
+
- **Change Analysis** - Analyzes git diff to understand modifications
|
|
36
|
+
- **Semantic Understanding** - Recognizes refactoring, features, fixes, etc.
|
|
37
|
+
- **Convention Following** - Follows project commit message patterns
|
|
38
|
+
- **Multi-file Support** - Handles complex multi-file commits
|
|
39
|
+
|
|
40
|
+
### Embeddings & Semantic Search
|
|
41
|
+
|
|
42
|
+
Vector-based code analysis for semantic understanding:
|
|
43
|
+
|
|
44
|
+
- **Code Vectorization** - Converts code to semantic vectors
|
|
45
|
+
- **Similarity Detection** - Finds semantically similar code patterns
|
|
46
|
+
- **Intelligent Grouping** - Groups related functionality
|
|
47
|
+
- **Search Enhancement** - Improves code search beyond text matching
|
|
48
|
+
|
|
49
|
+
### Predictive Analytics
|
|
50
|
+
|
|
51
|
+
Forecasts quality trends and potential issues:
|
|
52
|
+
|
|
53
|
+
- **Coverage Trends** - Predicts coverage trajectory
|
|
54
|
+
- **Quality Degradation** - Detects early warning signs
|
|
55
|
+
- **Resource Forecasting** - Predicts resource needs
|
|
56
|
+
- **Risk Assessment** - Identifies high-risk code areas
|
|
57
|
+
|
|
58
|
+
### Advanced Optimizer
|
|
59
|
+
|
|
60
|
+
AI-driven optimization strategies:
|
|
61
|
+
|
|
62
|
+
- **Performance Analysis** - Identifies optimization opportunities
|
|
63
|
+
- **Resource Management** - Optimizes memory and CPU usage
|
|
64
|
+
- **Workflow Tuning** - Optimizes development workflow efficiency
|
|
65
|
+
- **Pattern Learning** - Learns from successful optimizations
|
|
66
|
+
|
|
67
|
+
## Usage Examples
|
|
68
|
+
|
|
69
|
+
### Contextual AI Assistant
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from crackerjack.services.ai import ContextualAIAssistant
|
|
73
|
+
from acb.depends import depends
|
|
74
|
+
|
|
75
|
+
assistant = depends.get(ContextualAIAssistant)
|
|
76
|
+
|
|
77
|
+
# Get top 5 recommendations for current project
|
|
78
|
+
recommendations = assistant.get_contextual_recommendations(max_recommendations=5)
|
|
79
|
+
|
|
80
|
+
for rec in recommendations:
|
|
81
|
+
print(f"[{rec.priority}] {rec.title}")
|
|
82
|
+
print(f" {rec.description}")
|
|
83
|
+
if rec.action_command:
|
|
84
|
+
print(f" Run: {rec.action_command}")
|
|
85
|
+
print(f" Confidence: {rec.confidence:.0%}")
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Intelligent Commit Messages
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from crackerjack.services.ai import IntelligentCommitService
|
|
92
|
+
from acb.depends import depends
|
|
93
|
+
|
|
94
|
+
commit_service = depends.get(IntelligentCommitService)
|
|
95
|
+
|
|
96
|
+
# Generate commit message from staged changes
|
|
97
|
+
message = await commit_service.generate_commit_message()
|
|
98
|
+
|
|
99
|
+
# Or analyze specific files
|
|
100
|
+
message = await commit_service.generate_commit_message(
|
|
101
|
+
files=["src/main.py", "tests/test_main.py"]
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
print(f"Suggested commit message:\n{message}")
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Embeddings for Code Analysis
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
from crackerjack.services.ai import EmbeddingService
|
|
111
|
+
from acb.depends import depends
|
|
112
|
+
|
|
113
|
+
embedding_service = depends.get(EmbeddingService)
|
|
114
|
+
|
|
115
|
+
# Generate embedding for code snippet
|
|
116
|
+
code = """
|
|
117
|
+
def calculate_total(items):
|
|
118
|
+
return sum(item.price for item in items)
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
embedding = await embedding_service.embed_code(code)
|
|
122
|
+
|
|
123
|
+
# Find similar code
|
|
124
|
+
similar_snippets = await embedding_service.find_similar_code(embedding, threshold=0.85)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Predictive Analytics
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
from crackerjack.services.ai import PredictiveAnalytics
|
|
131
|
+
from acb.depends import depends
|
|
132
|
+
|
|
133
|
+
analytics = depends.get(PredictiveAnalytics)
|
|
134
|
+
|
|
135
|
+
# Predict coverage trend
|
|
136
|
+
prediction = await analytics.predict_coverage_trend(
|
|
137
|
+
historical_data=[19.6, 20.1, 20.8, 21.6], days_ahead=30
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
print(f"Predicted coverage in 30 days: {prediction.coverage:.1%}")
|
|
141
|
+
print(f"Confidence: {prediction.confidence:.0%}")
|
|
142
|
+
print(f"Trend: {prediction.trend}") # 'improving', 'stable', 'degrading'
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Advanced Optimizer
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
from crackerjack.services.ai import AdvancedOptimizer
|
|
149
|
+
from acb.depends import depends
|
|
150
|
+
|
|
151
|
+
optimizer = depends.get(AdvancedOptimizer)
|
|
152
|
+
|
|
153
|
+
# Analyze and optimize workflow
|
|
154
|
+
optimization = await optimizer.optimize_workflow()
|
|
155
|
+
|
|
156
|
+
for suggestion in optimization.suggestions:
|
|
157
|
+
print(f"Optimization: {suggestion.title}")
|
|
158
|
+
print(f" Impact: {suggestion.impact}")
|
|
159
|
+
print(f" Effort: {suggestion.effort}")
|
|
160
|
+
print(f" ROI: {suggestion.roi:.1f}x")
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Architecture
|
|
164
|
+
|
|
165
|
+
### AI Provider Integration
|
|
166
|
+
|
|
167
|
+
All AI services follow the provider abstraction pattern:
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
from acb.depends import depends, Inject
|
|
171
|
+
from crackerjack.models.protocols import Console
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class AIServiceBase:
|
|
175
|
+
@depends.inject
|
|
176
|
+
def __init__(
|
|
177
|
+
self,
|
|
178
|
+
console: Inject[Console] = None,
|
|
179
|
+
) -> None:
|
|
180
|
+
self.console = console
|
|
181
|
+
self.provider = self._get_ai_provider()
|
|
182
|
+
|
|
183
|
+
def _get_ai_provider(self):
|
|
184
|
+
# Returns configured AI provider (Claude, OpenAI, etc.)
|
|
185
|
+
pass
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Context-Aware Design
|
|
189
|
+
|
|
190
|
+
AI services analyze project context to provide relevant recommendations:
|
|
191
|
+
|
|
192
|
+
1. **Project Detection** - Identifies project type, dependencies, and configuration
|
|
193
|
+
1. **State Analysis** - Analyzes current quality metrics and trends
|
|
194
|
+
1. **Pattern Recognition** - Recognizes code patterns and anti-patterns
|
|
195
|
+
1. **Recommendation Generation** - Generates prioritized, actionable recommendations
|
|
196
|
+
1. **Confidence Scoring** - Assigns confidence levels to recommendations
|
|
197
|
+
|
|
198
|
+
## Configuration
|
|
199
|
+
|
|
200
|
+
AI services are configured through ACB Settings:
|
|
201
|
+
|
|
202
|
+
```yaml
|
|
203
|
+
# settings/crackerjack.yaml
|
|
204
|
+
ai_enabled: true
|
|
205
|
+
ai_provider: "claude" # claude, openai, local
|
|
206
|
+
ai_model: "claude-3-sonnet"
|
|
207
|
+
ai_context_cache_ttl: 3600 # seconds
|
|
208
|
+
|
|
209
|
+
# Contextual assistant settings
|
|
210
|
+
ai_max_recommendations: 5
|
|
211
|
+
ai_min_confidence: 0.7
|
|
212
|
+
|
|
213
|
+
# Embeddings settings
|
|
214
|
+
embedding_model: "text-embedding-3-small"
|
|
215
|
+
embedding_dimension: 1536
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Integration with Agent System
|
|
219
|
+
|
|
220
|
+
AI services integrate with crackerjack's 12 specialized agents:
|
|
221
|
+
|
|
222
|
+
- **RefactoringAgent** - Uses AI for intelligent refactoring suggestions
|
|
223
|
+
- **SemanticAgent** - Leverages embeddings for semantic analysis
|
|
224
|
+
- **EnhancedProactiveAgent** - Uses predictive analytics for prevention
|
|
225
|
+
- **ArchitectAgent** - Uses AI for architectural recommendations
|
|
226
|
+
|
|
227
|
+
See [Intelligence](<../../intelligence/README.md>) for agent system details.
|
|
228
|
+
|
|
229
|
+
## Security & Privacy
|
|
230
|
+
|
|
231
|
+
### Data Handling
|
|
232
|
+
|
|
233
|
+
- **No Code Upload** - Code analysis happens locally when possible
|
|
234
|
+
- **Privacy-First** - Sensitive data filtered before AI processing
|
|
235
|
+
- **Opt-In Required** - AI features require explicit enablement
|
|
236
|
+
- **Cache Control** - Local caching of AI responses for privacy
|
|
237
|
+
|
|
238
|
+
### API Key Management
|
|
239
|
+
|
|
240
|
+
```python
|
|
241
|
+
# Use environment variables for API keys
|
|
242
|
+
import os
|
|
243
|
+
|
|
244
|
+
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
|
|
245
|
+
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
|
246
|
+
|
|
247
|
+
# Never hardcode API keys in code or configuration files
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## Performance Considerations
|
|
251
|
+
|
|
252
|
+
### Caching Strategy
|
|
253
|
+
|
|
254
|
+
AI services implement intelligent caching:
|
|
255
|
+
|
|
256
|
+
- **Context Cache** - Project analysis cached for 1 hour by default
|
|
257
|
+
- **Embedding Cache** - Code embeddings cached indefinitely (invalidated on change)
|
|
258
|
+
- **Response Cache** - AI responses cached for identical inputs
|
|
259
|
+
- **TTL Configuration** - Configurable cache time-to-live
|
|
260
|
+
|
|
261
|
+
### Rate Limiting
|
|
262
|
+
|
|
263
|
+
```python
|
|
264
|
+
from crackerjack.services.ai import AIRateLimiter
|
|
265
|
+
|
|
266
|
+
# Automatic rate limiting to prevent API throttling
|
|
267
|
+
limiter = AIRateLimiter(requests_per_minute=60)
|
|
268
|
+
await limiter.acquire()
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
## Best Practices
|
|
272
|
+
|
|
273
|
+
1. **Enable Selectively** - Enable AI features only where valuable
|
|
274
|
+
1. **Monitor Usage** - Track API usage and costs
|
|
275
|
+
1. **Cache Aggressively** - Leverage caching to minimize API calls
|
|
276
|
+
1. **Validate Recommendations** - Always review AI recommendations before applying
|
|
277
|
+
1. **Set Confidence Thresholds** - Filter low-confidence recommendations
|
|
278
|
+
1. **Use Batch Operations** - Batch similar operations to reduce API calls
|
|
279
|
+
1. **Handle Failures Gracefully** - Implement fallbacks when AI unavailable
|
|
280
|
+
|
|
281
|
+
## Related
|
|
282
|
+
|
|
283
|
+
- [Intelligence](<../../intelligence/README.md>) - Agent orchestration and selection
|
|
284
|
+
- [Workflows](<../../workflows/README.md>) - Workflow integration with AI services
|
|
285
|
+
- [Services](<../README.md>) - Parent services documentation
|
|
286
|
+
- [CLAUDE.md](../../../docs/guides/CLAUDE.md) - AI agent system overview
|
|
287
|
+
|
|
288
|
+
## Future Enhancements
|
|
289
|
+
|
|
290
|
+
- [ ] Support for additional AI providers (Gemini, local LLMs)
|
|
291
|
+
- [ ] Fine-tuned models for code-specific tasks
|
|
292
|
+
- [ ] Improved embedding models for better semantic understanding
|
|
293
|
+
- [ ] Real-time code analysis with streaming responses
|
|
294
|
+
- [ ] Multi-modal analysis (code + documentation + tests)
|
|
295
|
+
- [ ] Agent-to-agent communication for complex tasks
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"""AI-driven service modules."""
|
|
2
|
+
|
|
3
|
+
from .advanced_optimizer import * # noqa: F401,F403
|
|
4
|
+
from .contextual_ai_assistant import * # noqa: F401,F403
|
|
5
|
+
from .embeddings import * # noqa: F401,F403
|
|
6
|
+
from .intelligent_commit import * # noqa: F401,F403
|
|
7
|
+
from .predictive_analytics import * # noqa: F401,F403
|