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.
- crackerjack/README.md +19 -0
- crackerjack/__init__.py +96 -2
- crackerjack/__main__.py +637 -138
- crackerjack/adapters/README.md +18 -0
- crackerjack/adapters/__init__.py +39 -0
- 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/lsp/_base.py +194 -0
- crackerjack/adapters/lsp/_client.py +358 -0
- crackerjack/adapters/lsp/_manager.py +193 -0
- crackerjack/adapters/lsp/skylos.py +283 -0
- crackerjack/adapters/lsp/zuban.py +557 -0
- 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 +66 -0
- crackerjack/agents/architect_agent.py +238 -0
- crackerjack/agents/base.py +167 -0
- crackerjack/agents/claude_code_bridge.py +641 -0
- crackerjack/agents/coordinator.py +600 -0
- crackerjack/agents/documentation_agent.py +520 -0
- crackerjack/agents/dry_agent.py +585 -0
- 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 +230 -0
- 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/import_optimization_agent.py +1181 -0
- crackerjack/agents/performance_agent.py +325 -0
- crackerjack/agents/performance_helpers.py +205 -0
- crackerjack/agents/proactive_agent.py +55 -0
- crackerjack/agents/refactoring_agent.py +511 -0
- crackerjack/agents/refactoring_helpers.py +247 -0
- crackerjack/agents/security_agent.py +793 -0
- crackerjack/agents/semantic_agent.py +479 -0
- crackerjack/agents/semantic_helpers.py +356 -0
- crackerjack/agents/test_creation_agent.py +570 -0
- crackerjack/agents/test_specialist_agent.py +526 -0
- crackerjack/agents/tracker.py +110 -0
- crackerjack/api.py +647 -0
- crackerjack/cli/README.md +394 -0
- crackerjack/cli/__init__.py +24 -0
- crackerjack/cli/cache_handlers.py +209 -0
- crackerjack/cli/cache_handlers_enhanced.py +680 -0
- crackerjack/cli/facade.py +162 -0
- 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 +700 -0
- crackerjack/cli/interactive.py +488 -0
- crackerjack/cli/options.py +1216 -0
- crackerjack/cli/semantic_handlers.py +292 -0
- crackerjack/cli/utils.py +19 -0
- crackerjack/cli/version.py +19 -0
- crackerjack/code_cleaner.py +1307 -0
- crackerjack/config/README.md +472 -0
- crackerjack/config/__init__.py +275 -0
- crackerjack/config/global_lock_config.py +207 -0
- crackerjack/config/hooks.py +390 -0
- 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/__init__.py +0 -0
- crackerjack/core/async_workflow_orchestrator.py +738 -0
- crackerjack/core/autofix_coordinator.py +282 -0
- crackerjack/core/container.py +105 -0
- crackerjack/core/enhanced_container.py +583 -0
- crackerjack/core/file_lifecycle.py +472 -0
- crackerjack/core/performance.py +244 -0
- crackerjack/core/performance_monitor.py +357 -0
- crackerjack/core/phase_coordinator.py +1227 -0
- crackerjack/core/proactive_workflow.py +267 -0
- crackerjack/core/resource_manager.py +425 -0
- crackerjack/core/retry.py +275 -0
- crackerjack/core/service_watchdog.py +601 -0
- crackerjack/core/session_coordinator.py +239 -0
- crackerjack/core/timeout_manager.py +563 -0
- crackerjack/core/websocket_lifecycle.py +410 -0
- 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 +2243 -0
- 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/INDEX.md +11 -0
- crackerjack/docs/README.md +11 -0
- crackerjack/docs/generated/api/API_REFERENCE.md +10895 -0
- crackerjack/docs/generated/api/CLI_REFERENCE.md +109 -0
- crackerjack/docs/generated/api/CROSS_REFERENCES.md +1755 -0
- crackerjack/docs/generated/api/PROTOCOLS.md +3 -0
- crackerjack/docs/generated/api/SERVICES.md +1252 -0
- crackerjack/documentation/README.md +11 -0
- crackerjack/documentation/__init__.py +31 -0
- crackerjack/documentation/ai_templates.py +756 -0
- crackerjack/documentation/dual_output_generator.py +767 -0
- crackerjack/documentation/mkdocs_integration.py +518 -0
- crackerjack/documentation/reference_generator.py +1065 -0
- crackerjack/dynamic_config.py +678 -0
- crackerjack/errors.py +378 -0
- 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 +13 -0
- crackerjack/executors/async_hook_executor.py +938 -0
- crackerjack/executors/cached_hook_executor.py +316 -0
- crackerjack/executors/hook_executor.py +1295 -0
- crackerjack/executors/hook_lock_manager.py +708 -0
- crackerjack/executors/individual_hook_executor.py +739 -0
- crackerjack/executors/lsp_aware_hook_executor.py +349 -0
- crackerjack/executors/progress_hook_executor.py +282 -0
- crackerjack/executors/tool_proxy.py +433 -0
- crackerjack/hooks/README.md +485 -0
- crackerjack/hooks/lsp_hook.py +93 -0
- crackerjack/intelligence/README.md +557 -0
- crackerjack/intelligence/__init__.py +37 -0
- crackerjack/intelligence/adaptive_learning.py +693 -0
- crackerjack/intelligence/agent_orchestrator.py +485 -0
- crackerjack/intelligence/agent_registry.py +377 -0
- crackerjack/intelligence/agent_selector.py +439 -0
- crackerjack/intelligence/integration.py +250 -0
- crackerjack/interactive.py +719 -0
- crackerjack/managers/README.md +369 -0
- crackerjack/managers/__init__.py +11 -0
- crackerjack/managers/async_hook_manager.py +135 -0
- crackerjack/managers/hook_manager.py +585 -0
- crackerjack/managers/publish_manager.py +631 -0
- crackerjack/managers/test_command_builder.py +391 -0
- crackerjack/managers/test_executor.py +474 -0
- crackerjack/managers/test_manager.py +1357 -0
- crackerjack/managers/test_progress.py +187 -0
- crackerjack/mcp/README.md +374 -0
- crackerjack/mcp/__init__.py +0 -0
- crackerjack/mcp/cache.py +352 -0
- crackerjack/mcp/client_runner.py +121 -0
- crackerjack/mcp/context.py +802 -0
- crackerjack/mcp/dashboard.py +657 -0
- crackerjack/mcp/enhanced_progress_monitor.py +493 -0
- crackerjack/mcp/file_monitor.py +394 -0
- crackerjack/mcp/progress_components.py +607 -0
- crackerjack/mcp/progress_monitor.py +1016 -0
- crackerjack/mcp/rate_limiter.py +336 -0
- crackerjack/mcp/server.py +24 -0
- crackerjack/mcp/server_core.py +526 -0
- crackerjack/mcp/service_watchdog.py +505 -0
- crackerjack/mcp/state.py +407 -0
- crackerjack/mcp/task_manager.py +259 -0
- crackerjack/mcp/tools/README.md +27 -0
- crackerjack/mcp/tools/__init__.py +19 -0
- crackerjack/mcp/tools/core_tools.py +469 -0
- crackerjack/mcp/tools/error_analyzer.py +283 -0
- crackerjack/mcp/tools/execution_tools.py +384 -0
- crackerjack/mcp/tools/intelligence_tool_registry.py +46 -0
- crackerjack/mcp/tools/intelligence_tools.py +264 -0
- crackerjack/mcp/tools/monitoring_tools.py +628 -0
- crackerjack/mcp/tools/proactive_tools.py +367 -0
- crackerjack/mcp/tools/progress_tools.py +222 -0
- crackerjack/mcp/tools/semantic_tools.py +584 -0
- crackerjack/mcp/tools/utility_tools.py +358 -0
- crackerjack/mcp/tools/workflow_executor.py +699 -0
- crackerjack/mcp/websocket/README.md +31 -0
- crackerjack/mcp/websocket/__init__.py +14 -0
- crackerjack/mcp/websocket/app.py +54 -0
- crackerjack/mcp/websocket/endpoints.py +492 -0
- crackerjack/mcp/websocket/event_bridge.py +188 -0
- crackerjack/mcp/websocket/jobs.py +406 -0
- 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 +21 -0
- crackerjack/mcp/websocket/server.py +174 -0
- crackerjack/mcp/websocket/websocket_handler.py +276 -0
- crackerjack/mcp/websocket_server.py +10 -0
- crackerjack/models/README.md +308 -0
- crackerjack/models/__init__.py +40 -0
- crackerjack/models/config.py +730 -0
- crackerjack/models/config_adapter.py +265 -0
- crackerjack/models/protocols.py +1535 -0
- crackerjack/models/pydantic_models.py +320 -0
- crackerjack/models/qa_config.py +145 -0
- crackerjack/models/qa_results.py +134 -0
- crackerjack/models/resource_protocols.py +299 -0
- crackerjack/models/results.py +35 -0
- crackerjack/models/semantic_models.py +258 -0
- crackerjack/models/task.py +173 -0
- crackerjack/models/test_models.py +60 -0
- crackerjack/monitoring/README.md +11 -0
- crackerjack/monitoring/__init__.py +0 -0
- crackerjack/monitoring/ai_agent_watchdog.py +405 -0
- crackerjack/monitoring/metrics_collector.py +427 -0
- crackerjack/monitoring/regression_prevention.py +580 -0
- crackerjack/monitoring/websocket_server.py +406 -0
- crackerjack/orchestration/README.md +340 -0
- crackerjack/orchestration/__init__.py +43 -0
- crackerjack/orchestration/advanced_orchestrator.py +894 -0
- 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 +180 -0
- crackerjack/orchestration/execution_strategies.py +361 -0
- 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 +647 -0
- crackerjack/plugins/README.md +11 -0
- crackerjack/plugins/__init__.py +15 -0
- crackerjack/plugins/base.py +200 -0
- crackerjack/plugins/hooks.py +254 -0
- crackerjack/plugins/loader.py +335 -0
- crackerjack/plugins/managers.py +264 -0
- crackerjack/py313.py +191 -0
- crackerjack/security/README.md +11 -0
- crackerjack/security/__init__.py +0 -0
- crackerjack/security/audit.py +197 -0
- crackerjack/services/README.md +374 -0
- crackerjack/services/__init__.py +9 -0
- crackerjack/services/ai/README.md +295 -0
- crackerjack/services/ai/__init__.py +7 -0
- crackerjack/services/ai/advanced_optimizer.py +878 -0
- crackerjack/services/ai/contextual_ai_assistant.py +542 -0
- 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/anomaly_detector.py +392 -0
- crackerjack/services/api_extractor.py +617 -0
- crackerjack/services/backup_service.py +467 -0
- crackerjack/services/bounded_status_operations.py +530 -0
- crackerjack/services/cache.py +369 -0
- crackerjack/services/changelog_automation.py +399 -0
- crackerjack/services/command_execution_service.py +305 -0
- crackerjack/services/config_integrity.py +132 -0
- crackerjack/services/config_merge.py +546 -0
- crackerjack/services/config_service.py +198 -0
- crackerjack/services/config_template.py +493 -0
- crackerjack/services/coverage_badge_service.py +173 -0
- crackerjack/services/coverage_ratchet.py +381 -0
- crackerjack/services/debug.py +733 -0
- crackerjack/services/dependency_analyzer.py +460 -0
- crackerjack/services/dependency_monitor.py +622 -0
- crackerjack/services/documentation_generator.py +493 -0
- crackerjack/services/documentation_service.py +704 -0
- crackerjack/services/enhanced_filesystem.py +497 -0
- crackerjack/services/enterprise_optimizer.py +865 -0
- crackerjack/services/error_pattern_analyzer.py +676 -0
- crackerjack/services/file_filter.py +221 -0
- crackerjack/services/file_hasher.py +149 -0
- crackerjack/services/file_io_service.py +361 -0
- crackerjack/services/file_modifier.py +615 -0
- crackerjack/services/filesystem.py +381 -0
- crackerjack/services/git.py +422 -0
- crackerjack/services/health_metrics.py +615 -0
- crackerjack/services/heatmap_generator.py +744 -0
- crackerjack/services/incremental_executor.py +380 -0
- crackerjack/services/initialization.py +823 -0
- crackerjack/services/input_validator.py +668 -0
- crackerjack/services/intelligent_commit.py +327 -0
- crackerjack/services/log_manager.py +289 -0
- crackerjack/services/logging.py +228 -0
- crackerjack/services/lsp_client.py +628 -0
- crackerjack/services/memory_optimizer.py +414 -0
- crackerjack/services/metrics.py +587 -0
- 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/monitoring/performance_benchmarks.py +410 -0
- crackerjack/services/monitoring/performance_cache.py +388 -0
- crackerjack/services/monitoring/performance_monitor.py +569 -0
- crackerjack/services/parallel_executor.py +527 -0
- crackerjack/services/pattern_cache.py +333 -0
- crackerjack/services/pattern_detector.py +478 -0
- 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 +523 -0
- 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/quality_baseline.py +395 -0
- crackerjack/services/quality/quality_baseline_enhanced.py +649 -0
- crackerjack/services/quality/quality_intelligence.py +949 -0
- crackerjack/services/regex_patterns.py +58 -0
- crackerjack/services/regex_utils.py +483 -0
- crackerjack/services/secure_path_utils.py +524 -0
- crackerjack/services/secure_status_formatter.py +450 -0
- crackerjack/services/secure_subprocess.py +635 -0
- crackerjack/services/security.py +239 -0
- crackerjack/services/security_logger.py +495 -0
- crackerjack/services/server_manager.py +411 -0
- crackerjack/services/smart_scheduling.py +167 -0
- crackerjack/services/status_authentication.py +460 -0
- crackerjack/services/status_security_manager.py +315 -0
- crackerjack/services/terminal_utils.py +0 -0
- crackerjack/services/thread_safe_status_collector.py +441 -0
- crackerjack/services/tool_filter.py +368 -0
- crackerjack/services/tool_version_service.py +43 -0
- crackerjack/services/unified_config.py +115 -0
- crackerjack/services/validation_rate_limiter.py +220 -0
- crackerjack/services/vector_store.py +689 -0
- crackerjack/services/version_analyzer.py +461 -0
- crackerjack/services/version_checker.py +223 -0
- crackerjack/services/websocket_resource_limiter.py +438 -0
- crackerjack/services/zuban_lsp_service.py +391 -0
- crackerjack/slash_commands/README.md +11 -0
- crackerjack/slash_commands/__init__.py +59 -0
- crackerjack/slash_commands/init.md +112 -0
- crackerjack/slash_commands/run.md +197 -0
- crackerjack/slash_commands/status.md +127 -0
- 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_input_validator_patterns.py +236 -0
- crackerjack/tools/validate_regex_patterns.py +188 -0
- crackerjack/ui/README.md +11 -0
- crackerjack/ui/__init__.py +1 -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.45.2.dist-info/METADATA +1678 -0
- crackerjack-0.45.2.dist-info/RECORD +478 -0
- {crackerjack-0.18.2.dist-info → crackerjack-0.45.2.dist-info}/WHEEL +1 -1
- crackerjack-0.45.2.dist-info/entry_points.txt +2 -0
- crackerjack/.gitignore +0 -14
- crackerjack/.libcst.codemod.yaml +0 -18
- crackerjack/.pdm.toml +0 -1
- crackerjack/.pre-commit-config.yaml +0 -91
- crackerjack/.pytest_cache/.gitignore +0 -2
- crackerjack/.pytest_cache/CACHEDIR.TAG +0 -4
- crackerjack/.pytest_cache/README.md +0 -8
- crackerjack/.pytest_cache/v/cache/nodeids +0 -1
- crackerjack/.pytest_cache/v/cache/stepwise +0 -1
- crackerjack/.ruff_cache/.gitignore +0 -1
- crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
- crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
- crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
- crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
- crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
- crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
- crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
- crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
- crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
- crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
- crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
- crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
- crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
- crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
- crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
- crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
- crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
- crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
- crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
- crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
- crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
- crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
- crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
- crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
- crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
- crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
- crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
- crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
- crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
- crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
- crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
- crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
- crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
- crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
- crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
- crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
- crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
- crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
- crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
- crackerjack/.ruff_cache/CACHEDIR.TAG +0 -1
- crackerjack/crackerjack.py +0 -855
- crackerjack/pyproject.toml +0 -214
- crackerjack-0.18.2.dist-info/METADATA +0 -420
- crackerjack-0.18.2.dist-info/RECORD +0 -59
- crackerjack-0.18.2.dist-info/entry_points.txt +0 -4
- {crackerjack-0.18.2.dist-info → crackerjack-0.45.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"""CLI handlers for monitoring, server, and LSP commands.
|
|
2
|
+
|
|
3
|
+
This module contains command coordinators for:
|
|
4
|
+
- Monitoring modes (monitor, enhanced_monitor, dashboard, watchdog)
|
|
5
|
+
- WebSocket server lifecycle (start, stop, restart)
|
|
6
|
+
- MCP server lifecycle (start, stop, restart)
|
|
7
|
+
- Zuban LSP lifecycle (start, stop, restart)
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import asyncio
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
from acb.console import Console
|
|
14
|
+
from acb.depends import Inject, depends
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@depends.inject # type: ignore[misc]
|
|
18
|
+
def handle_mcp_server(
|
|
19
|
+
websocket_port: int | None = None, console: Inject[Console] = None
|
|
20
|
+
) -> None:
|
|
21
|
+
from crackerjack.mcp.server import main as start_mcp_main
|
|
22
|
+
|
|
23
|
+
project_path = str(Path.cwd())
|
|
24
|
+
|
|
25
|
+
if websocket_port:
|
|
26
|
+
start_mcp_main(project_path, websocket_port)
|
|
27
|
+
else:
|
|
28
|
+
start_mcp_main(project_path)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@depends.inject # type: ignore[misc]
|
|
32
|
+
def handle_monitor_mode(
|
|
33
|
+
dev_mode: bool = False, console: Inject[Console] = None
|
|
34
|
+
) -> None:
|
|
35
|
+
from crackerjack.mcp.progress_monitor import run_progress_monitor
|
|
36
|
+
|
|
37
|
+
console.print("[bold cyan]🌟 Starting Multi-Project Progress Monitor[/ bold cyan]")
|
|
38
|
+
console.print(
|
|
39
|
+
"[bold yellow]🐕 With integrated Service Watchdog and WebSocket polling[/ bold yellow]",
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
try:
|
|
43
|
+
asyncio.run(run_progress_monitor(dev_mode=dev_mode))
|
|
44
|
+
except KeyboardInterrupt:
|
|
45
|
+
console.print("\n[yellow]🛑 Monitor stopped[/ yellow]")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@depends.inject # type: ignore[misc]
|
|
49
|
+
def handle_enhanced_monitor_mode(
|
|
50
|
+
dev_mode: bool = False, console: Inject[Console] = None
|
|
51
|
+
) -> None:
|
|
52
|
+
from crackerjack.mcp.enhanced_progress_monitor import run_enhanced_progress_monitor
|
|
53
|
+
|
|
54
|
+
console.print("[bold magenta]✨ Starting Enhanced Progress Monitor[/ bold magenta]")
|
|
55
|
+
console.print(
|
|
56
|
+
"[bold cyan]📊 With advanced MetricCard widgets and modern web UI patterns[/ bold cyan]",
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
try:
|
|
60
|
+
asyncio.run(run_enhanced_progress_monitor(dev_mode=dev_mode))
|
|
61
|
+
except KeyboardInterrupt:
|
|
62
|
+
console.print("\n[yellow]🛑 Enhanced Monitor stopped[/ yellow]")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@depends.inject # type: ignore[misc]
|
|
66
|
+
def handle_dashboard_mode(
|
|
67
|
+
dev_mode: bool = False, console: Inject[Console] = None
|
|
68
|
+
) -> None:
|
|
69
|
+
from crackerjack.mcp.dashboard import run_dashboard
|
|
70
|
+
|
|
71
|
+
console.print("[bold green]🎯 Starting Comprehensive Dashboard[/ bold green]")
|
|
72
|
+
console.print(
|
|
73
|
+
"[bold cyan]📈 With system metrics, job tracking, and performance monitoring[/ bold cyan]",
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
run_dashboard()
|
|
78
|
+
except KeyboardInterrupt:
|
|
79
|
+
console.print("\n[yellow]🛑 Dashboard stopped[/ yellow]")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@depends.inject # type: ignore[misc]
|
|
83
|
+
def handle_unified_dashboard_mode(
|
|
84
|
+
port: int = 8675, dev_mode: bool = False, console: Inject[Console] = None
|
|
85
|
+
) -> None:
|
|
86
|
+
from crackerjack.monitoring.websocket_server import CrackerjackMonitoringServer
|
|
87
|
+
|
|
88
|
+
console.print("[bold green]🚀 Starting Unified Monitoring Dashboard[/bold green]")
|
|
89
|
+
console.print(
|
|
90
|
+
f"[bold cyan]🌐 WebSocket server on port {port} with real-time streaming and web UI[/bold cyan]",
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
try:
|
|
94
|
+
server = CrackerjackMonitoringServer()
|
|
95
|
+
asyncio.run(server.start_monitoring(port))
|
|
96
|
+
except KeyboardInterrupt:
|
|
97
|
+
console.print("\n[yellow]🛑 Unified Dashboard stopped[/yellow]")
|
|
98
|
+
except Exception as e:
|
|
99
|
+
console.print(f"\n[red]❌ Unified Dashboard failed: {e}[/red]")
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
@depends.inject # type: ignore[misc]
|
|
103
|
+
def handle_watchdog_mode(console: Inject[Console] = None) -> None:
|
|
104
|
+
from crackerjack.mcp.service_watchdog import main as start_watchdog
|
|
105
|
+
|
|
106
|
+
try:
|
|
107
|
+
asyncio.run(start_watchdog())
|
|
108
|
+
except KeyboardInterrupt:
|
|
109
|
+
console.print("\n[yellow]🛑 Watchdog stopped[/ yellow]")
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def handle_start_websocket_server(port: int = 8675) -> None:
|
|
113
|
+
from crackerjack.mcp.websocket.server import handle_websocket_server_command
|
|
114
|
+
|
|
115
|
+
handle_websocket_server_command(start=True, port=port)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def handle_stop_websocket_server() -> None:
|
|
119
|
+
from crackerjack.mcp.websocket.server import handle_websocket_server_command
|
|
120
|
+
|
|
121
|
+
handle_websocket_server_command(stop=True)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def handle_restart_websocket_server(port: int = 8675) -> None:
|
|
125
|
+
from crackerjack.mcp.websocket.server import handle_websocket_server_command
|
|
126
|
+
|
|
127
|
+
handle_websocket_server_command(restart=True, port=port)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@depends.inject # type: ignore[misc]
|
|
131
|
+
def handle_stop_mcp_server(console: Inject[Console] = None) -> None:
|
|
132
|
+
from crackerjack.services.server_manager import (
|
|
133
|
+
list_server_status,
|
|
134
|
+
stop_all_servers,
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
console.print("[bold red]🛑 Stopping MCP Servers[/ bold red]")
|
|
138
|
+
|
|
139
|
+
list_server_status(console)
|
|
140
|
+
|
|
141
|
+
if stop_all_servers(console):
|
|
142
|
+
console.print("\n[bold green]✅ All servers stopped successfully[/ bold green]")
|
|
143
|
+
else:
|
|
144
|
+
console.print("\n[bold red]❌ Some servers failed to stop[/ bold red]")
|
|
145
|
+
raise SystemExit(1)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
@depends.inject # type: ignore[misc]
|
|
149
|
+
def handle_restart_mcp_server(
|
|
150
|
+
websocket_port: int | None = None, console: Inject[Console] = None
|
|
151
|
+
) -> None:
|
|
152
|
+
from crackerjack.services.server_manager import restart_mcp_server
|
|
153
|
+
|
|
154
|
+
if restart_mcp_server(websocket_port, console):
|
|
155
|
+
console.print("\n[bold green]✅ MCP server restart completed[/ bold green]")
|
|
156
|
+
else:
|
|
157
|
+
console.print("\n[bold red]❌ MCP server restart failed[/ bold red]")
|
|
158
|
+
raise SystemExit(1)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
@depends.inject # type: ignore[misc]
|
|
162
|
+
def handle_start_zuban_lsp(
|
|
163
|
+
port: int = 8677, mode: str = "tcp", console: Inject[Console] = None
|
|
164
|
+
) -> None:
|
|
165
|
+
"""Start Zuban LSP server."""
|
|
166
|
+
from crackerjack.services.zuban_lsp_service import (
|
|
167
|
+
create_zuban_lsp_service,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
console.print("[bold cyan]🚀 Starting Zuban LSP Server[/bold cyan]")
|
|
171
|
+
|
|
172
|
+
async def _start() -> None:
|
|
173
|
+
lsp_service = await create_zuban_lsp_service(
|
|
174
|
+
port=port, mode=mode, console=console
|
|
175
|
+
)
|
|
176
|
+
if await lsp_service.start():
|
|
177
|
+
console.print(
|
|
178
|
+
f"[bold green]✅ Zuban LSP server started on port {port} ({mode} mode)[/bold green]"
|
|
179
|
+
)
|
|
180
|
+
else:
|
|
181
|
+
console.print("[bold red]❌ Failed to start Zuban LSP server[/bold red]")
|
|
182
|
+
raise SystemExit(1)
|
|
183
|
+
|
|
184
|
+
try:
|
|
185
|
+
asyncio.run(_start())
|
|
186
|
+
except KeyboardInterrupt:
|
|
187
|
+
console.print("\n[yellow]🛑 Zuban LSP startup interrupted[/yellow]")
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
@depends.inject # type: ignore[misc]
|
|
191
|
+
def handle_stop_zuban_lsp(console: Inject[Console] = None) -> None:
|
|
192
|
+
"""Stop Zuban LSP server."""
|
|
193
|
+
from crackerjack.services.server_manager import stop_zuban_lsp
|
|
194
|
+
|
|
195
|
+
console.print("[bold red]🛑 Stopping Zuban LSP Server[/bold red]")
|
|
196
|
+
|
|
197
|
+
if stop_zuban_lsp(console):
|
|
198
|
+
console.print(
|
|
199
|
+
"\n[bold green]✅ Zuban LSP server stopped successfully[/bold green]"
|
|
200
|
+
)
|
|
201
|
+
else:
|
|
202
|
+
console.print("\n[bold red]❌ Failed to stop Zuban LSP server[/bold red]")
|
|
203
|
+
raise SystemExit(1)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
@depends.inject # type: ignore[misc]
|
|
207
|
+
def handle_restart_zuban_lsp(
|
|
208
|
+
port: int = 8677, mode: str = "tcp", console: Inject[Console] = None
|
|
209
|
+
) -> None:
|
|
210
|
+
"""Restart Zuban LSP server."""
|
|
211
|
+
from crackerjack.services.server_manager import restart_zuban_lsp
|
|
212
|
+
|
|
213
|
+
if restart_zuban_lsp(console):
|
|
214
|
+
console.print(
|
|
215
|
+
"\n[bold green]✅ Zuban LSP server restart completed[/bold green]"
|
|
216
|
+
)
|
|
217
|
+
else:
|
|
218
|
+
console.print("\n[bold red]❌ Zuban LSP server restart failed[/bold red]")
|
|
219
|
+
raise SystemExit(1)
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def handle_monitoring_commands(
|
|
223
|
+
monitor: bool,
|
|
224
|
+
enhanced_monitor: bool,
|
|
225
|
+
dashboard: bool,
|
|
226
|
+
unified_dashboard: bool,
|
|
227
|
+
unified_dashboard_port: int | None,
|
|
228
|
+
watchdog: bool,
|
|
229
|
+
dev: bool,
|
|
230
|
+
) -> bool:
|
|
231
|
+
"""Route monitoring and dashboard commands to appropriate handlers."""
|
|
232
|
+
if monitor:
|
|
233
|
+
handle_monitor_mode(dev_mode=dev)
|
|
234
|
+
return True
|
|
235
|
+
if enhanced_monitor:
|
|
236
|
+
handle_enhanced_monitor_mode(dev_mode=dev)
|
|
237
|
+
return True
|
|
238
|
+
if dashboard:
|
|
239
|
+
handle_dashboard_mode(dev_mode=dev)
|
|
240
|
+
return True
|
|
241
|
+
if unified_dashboard:
|
|
242
|
+
port = unified_dashboard_port or 8675
|
|
243
|
+
handle_unified_dashboard_mode(port=port, dev_mode=dev)
|
|
244
|
+
return True
|
|
245
|
+
if watchdog:
|
|
246
|
+
handle_watchdog_mode()
|
|
247
|
+
return True
|
|
248
|
+
return False
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def handle_websocket_commands(
|
|
252
|
+
start_websocket_server: bool,
|
|
253
|
+
stop_websocket_server: bool,
|
|
254
|
+
restart_websocket_server: bool,
|
|
255
|
+
websocket_port: int | None,
|
|
256
|
+
) -> bool:
|
|
257
|
+
"""Route WebSocket server lifecycle commands to appropriate handlers."""
|
|
258
|
+
if start_websocket_server:
|
|
259
|
+
port = websocket_port or 8675
|
|
260
|
+
handle_start_websocket_server(port)
|
|
261
|
+
return True
|
|
262
|
+
if stop_websocket_server:
|
|
263
|
+
handle_stop_websocket_server()
|
|
264
|
+
return True
|
|
265
|
+
if restart_websocket_server:
|
|
266
|
+
port = websocket_port or 8675
|
|
267
|
+
handle_restart_websocket_server(port)
|
|
268
|
+
return True
|
|
269
|
+
return False
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
def handle_mcp_commands(
|
|
273
|
+
start_mcp_server: bool,
|
|
274
|
+
stop_mcp_server: bool,
|
|
275
|
+
restart_mcp_server: bool,
|
|
276
|
+
websocket_port: int | None,
|
|
277
|
+
) -> bool:
|
|
278
|
+
"""Route MCP server lifecycle commands to appropriate handlers."""
|
|
279
|
+
if start_mcp_server:
|
|
280
|
+
handle_mcp_server(websocket_port)
|
|
281
|
+
return True
|
|
282
|
+
if stop_mcp_server:
|
|
283
|
+
handle_stop_mcp_server()
|
|
284
|
+
return True
|
|
285
|
+
if restart_mcp_server:
|
|
286
|
+
handle_restart_mcp_server(websocket_port)
|
|
287
|
+
return True
|
|
288
|
+
return False
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
def handle_zuban_lsp_commands(
|
|
292
|
+
start_zuban_lsp: bool,
|
|
293
|
+
stop_zuban_lsp: bool,
|
|
294
|
+
restart_zuban_lsp: bool,
|
|
295
|
+
zuban_lsp_port: int,
|
|
296
|
+
zuban_lsp_mode: str,
|
|
297
|
+
) -> bool:
|
|
298
|
+
"""Route Zuban LSP lifecycle commands to appropriate handlers."""
|
|
299
|
+
if start_zuban_lsp:
|
|
300
|
+
handle_start_zuban_lsp(port=zuban_lsp_port, mode=zuban_lsp_mode)
|
|
301
|
+
return True
|
|
302
|
+
if stop_zuban_lsp:
|
|
303
|
+
handle_stop_zuban_lsp()
|
|
304
|
+
return True
|
|
305
|
+
if restart_zuban_lsp:
|
|
306
|
+
handle_restart_zuban_lsp(port=zuban_lsp_port, mode=zuban_lsp_mode)
|
|
307
|
+
return True
|
|
308
|
+
return False
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
def handle_server_commands(
|
|
312
|
+
monitor: bool,
|
|
313
|
+
enhanced_monitor: bool,
|
|
314
|
+
dashboard: bool,
|
|
315
|
+
unified_dashboard: bool,
|
|
316
|
+
unified_dashboard_port: int | None,
|
|
317
|
+
watchdog: bool,
|
|
318
|
+
start_websocket_server: bool,
|
|
319
|
+
stop_websocket_server: bool,
|
|
320
|
+
restart_websocket_server: bool,
|
|
321
|
+
start_mcp_server: bool,
|
|
322
|
+
stop_mcp_server: bool,
|
|
323
|
+
restart_mcp_server: bool,
|
|
324
|
+
websocket_port: int | None,
|
|
325
|
+
start_zuban_lsp: bool,
|
|
326
|
+
stop_zuban_lsp: bool,
|
|
327
|
+
restart_zuban_lsp: bool,
|
|
328
|
+
zuban_lsp_port: int,
|
|
329
|
+
zuban_lsp_mode: str,
|
|
330
|
+
dev: bool,
|
|
331
|
+
) -> bool:
|
|
332
|
+
"""Master coordinator for all server-related commands.
|
|
333
|
+
|
|
334
|
+
Routes to:
|
|
335
|
+
- handle_monitoring_commands (monitor, dashboard, watchdog)
|
|
336
|
+
- handle_websocket_commands (WebSocket server lifecycle)
|
|
337
|
+
- handle_mcp_commands (MCP server lifecycle)
|
|
338
|
+
- handle_zuban_lsp_commands (LSP server lifecycle)
|
|
339
|
+
|
|
340
|
+
Returns True if any server command was handled.
|
|
341
|
+
"""
|
|
342
|
+
return (
|
|
343
|
+
handle_monitoring_commands(
|
|
344
|
+
monitor,
|
|
345
|
+
enhanced_monitor,
|
|
346
|
+
dashboard,
|
|
347
|
+
unified_dashboard,
|
|
348
|
+
unified_dashboard_port,
|
|
349
|
+
watchdog,
|
|
350
|
+
dev,
|
|
351
|
+
)
|
|
352
|
+
or handle_websocket_commands(
|
|
353
|
+
start_websocket_server,
|
|
354
|
+
stop_websocket_server,
|
|
355
|
+
restart_websocket_server,
|
|
356
|
+
websocket_port,
|
|
357
|
+
)
|
|
358
|
+
or handle_mcp_commands(
|
|
359
|
+
start_mcp_server,
|
|
360
|
+
stop_mcp_server,
|
|
361
|
+
restart_mcp_server,
|
|
362
|
+
websocket_port,
|
|
363
|
+
)
|
|
364
|
+
or handle_zuban_lsp_commands(
|
|
365
|
+
start_zuban_lsp,
|
|
366
|
+
stop_zuban_lsp,
|
|
367
|
+
restart_zuban_lsp,
|
|
368
|
+
zuban_lsp_port,
|
|
369
|
+
zuban_lsp_mode,
|
|
370
|
+
)
|
|
371
|
+
)
|