devsquad 3.6.7__tar.gz → 3.9.2__tar.gz
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.
- {devsquad-3.6.7 → devsquad-3.9.2}/PKG-INFO +57 -37
- {devsquad-3.6.7 → devsquad-3.9.2}/README.md +56 -36
- {devsquad-3.6.7 → devsquad-3.9.2}/devsquad.egg-info/PKG-INFO +57 -37
- {devsquad-3.6.7 → devsquad-3.9.2}/devsquad.egg-info/SOURCES.txt +135 -20
- {devsquad-3.6.7 → devsquad-3.9.2}/pyproject.toml +12 -8
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/__init__.py +26 -2
- devsquad-3.9.2/scripts/api/rate_limit.py +299 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/routes/dispatch.py +142 -39
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/routes/lifecycle.py +96 -23
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/routes/metrics.py +5 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/routes/metrics_gates.py +83 -37
- devsquad-3.9.2/scripts/api/security.py +428 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api_server.py +98 -33
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/auth.py +159 -58
- devsquad-3.9.2/scripts/benchmark_async_dispatch.py +124 -0
- devsquad-3.9.2/scripts/benchmark_real_llm.py +151 -0
- devsquad-3.9.2/scripts/check_version_consistency.py +267 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/cli/cli_visual.py +7 -10
- devsquad-3.9.2/scripts/cli.py +486 -0
- devsquad-3.9.2/scripts/cli_dispatch.py +328 -0
- devsquad-3.9.2/scripts/cli_lifecycle.py +209 -0
- devsquad-3.9.2/scripts/cli_utils.py +319 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/__init__.py +104 -16
- devsquad-3.9.2/scripts/collaboration/_version.py +1 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/adaptive_role_selector.py +5 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/agent_briefing.py +79 -10
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/ai_semantic_matcher.py +28 -13
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/anchor_checker.py +20 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/anti_rationalization.py +2 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/async_adapter.py +13 -16
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/async_coordinator.py +89 -55
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/async_llm_backend.py +263 -75
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/audit_logger.py +60 -46
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/batch_scheduler.py +4 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/cache_interface.py +128 -27
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/checkpoint_manager.py +144 -9
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/ci_feedback_adapter.py +60 -4
- devsquad-3.9.2/scripts/collaboration/code_graph_query.py +182 -0
- devsquad-3.9.2/scripts/collaboration/code_graph_storage.py +483 -0
- devsquad-3.9.2/scripts/collaboration/code_knowledge_graph.py +346 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/code_map_generator.py +39 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/concern_pack_loader.py +19 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/confidence_score.py +16 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/consensus.py +9 -9
- devsquad-3.9.2/scripts/collaboration/consensus_gate.py +209 -0
- devsquad-3.9.2/scripts/collaboration/constants.py +66 -0
- devsquad-3.9.2/scripts/collaboration/content_cache.py +349 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/context_compressor.py +112 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/coordinator.py +130 -56
- devsquad-3.9.2/scripts/collaboration/dispatch_audit.py +436 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_component_factory.py +228 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_hooks.py +156 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_lifecycle.py +28 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/dispatch_models.py +42 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/dispatch_performance.py +8 -7
- devsquad-3.9.2/scripts/collaboration/dispatch_pre_steps.py +556 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_rbac.py +290 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_result_assembler.py +197 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_services.py +276 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_steps.py +449 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_base.py +62 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_consensus_mixin.py +144 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_feedback_mixin.py +281 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_quality_mixin.py +188 -0
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_services_mixin.py +69 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher.py +546 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_async_mixin.py +154 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_audit_mixin.py +68 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_base.py +128 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_error_mixin.py +68 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_factory.py +38 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_lifecycle_mixin.py +54 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_status_mixin.py +118 -0
- devsquad-3.9.2/scripts/collaboration/dispatcher_utils_mixin.py +161 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/dual_layer_context.py +77 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/enhanced_worker.py +214 -45
- devsquad-3.9.2/scripts/collaboration/enterprise_feature.py +288 -0
- devsquad-3.9.2/scripts/collaboration/event_bus.py +42 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/execution_guard.py +3 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/feature_usage_tracker.py +61 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/feedback_control_loop.py +63 -10
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/five_axis_consensus.py +37 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/input_validator.py +70 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/intent_workflow_mapper.py +27 -2
- devsquad-3.9.2/scripts/collaboration/judge_agent.py +904 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/language_parsers.py +160 -11
- devsquad-3.9.2/scripts/collaboration/lifecycle_gate.py +136 -0
- devsquad-3.9.2/scripts/collaboration/lifecycle_protocol.py +246 -0
- devsquad-3.9.2/scripts/collaboration/lifecycle_shortcut_adapter.py +954 -0
- devsquad-3.9.2/scripts/collaboration/lifecycle_shortcut_helpers.py +612 -0
- devsquad-3.9.2/scripts/collaboration/lifecycle_templates.py +205 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/llm_backend.py +309 -63
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/llm_cache.py +103 -62
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/llm_cache_async.py +46 -44
- devsquad-3.9.2/scripts/collaboration/llm_cache_base.py +236 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/llm_retry.py +83 -136
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/llm_retry_async.py +88 -128
- devsquad-3.9.2/scripts/collaboration/llm_retry_base.py +453 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/mce_adapter.py +103 -24
- devsquad-3.9.2/scripts/collaboration/memory_bridge.py +420 -0
- devsquad-3.9.2/scripts/collaboration/memory_claw_source.py +441 -0
- devsquad-3.9.2/scripts/collaboration/memory_forgetting.py +137 -0
- devsquad-3.9.2/scripts/collaboration/memory_index.py +237 -0
- devsquad-3.9.2/scripts/collaboration/memory_query.py +379 -0
- devsquad-3.9.2/scripts/collaboration/memory_serializer.py +425 -0
- devsquad-3.9.2/scripts/collaboration/memory_types.py +243 -0
- devsquad-3.9.2/scripts/collaboration/micro_task_planner.py +861 -0
- devsquad-3.9.2/scripts/collaboration/models.py +60 -0
- devsquad-3.9.2/scripts/collaboration/models_base.py +479 -0
- devsquad-3.9.2/scripts/collaboration/models_dispatch.py +331 -0
- devsquad-3.9.2/scripts/collaboration/models_lifecycle.py +428 -0
- devsquad-3.9.2/scripts/collaboration/multi_host_adapter.py +291 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/multi_level_cache.py +112 -71
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/multi_tenant.py +36 -36
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/null_providers.py +20 -20
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/operation_classifier.py +8 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/output_slicer.py +27 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/performance_fingerprint.py +8 -8
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/performance_monitor.py +27 -16
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/permission_guard.py +44 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/prometheus_metrics.py +34 -22
- devsquad-3.9.2/scripts/collaboration/prompt_assembler.py +216 -0
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_base.py +112 -0
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_formatting_mixin.py +297 -0
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_substitution_mixin.py +219 -0
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_template_mixin.py +152 -0
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_validation_mixin.py +213 -0
- devsquad-3.9.2/scripts/collaboration/prompt_dials.py +198 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/protocols.py +88 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/rbac_engine.py +26 -32
- devsquad-3.9.2/scripts/collaboration/redesign_auditor.py +229 -0
- devsquad-3.9.2/scripts/collaboration/redesign_checkers.py +415 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/redis_cache.py +70 -74
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/report_formatter.py +19 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/retrospective.py +22 -12
- devsquad-3.9.2/scripts/collaboration/review_checkers.py +575 -0
- devsquad-3.9.2/scripts/collaboration/role_matcher.py +235 -0
- devsquad-3.9.2/scripts/collaboration/role_skill_loader.py +232 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/rule_collector.py +135 -24
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/scratchpad.py +20 -10
- devsquad-3.9.2/scripts/collaboration/secret_patterns.py +94 -0
- devsquad-3.9.2/scripts/collaboration/severity_router.py +853 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/similar_task_recommender.py +4 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/skill_extractor.py +11 -12
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/skill_registry.py +99 -9
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/skill_storage.py +131 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/skillifier.py +179 -25
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/standardized_role_template.py +1 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/task_completion_checker.py +31 -10
- devsquad-3.9.2/scripts/collaboration/tech_debt_manager.py +963 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/test_quality_guard.py +119 -22
- devsquad-3.9.2/scripts/collaboration/two_stage_review_gate.py +763 -0
- devsquad-3.9.2/scripts/collaboration/ue_test_accessibility_mixin.py +53 -0
- devsquad-3.9.2/scripts/collaboration/ue_test_framework.py +170 -0
- devsquad-3.9.2/scripts/collaboration/ue_test_framework_base.py +424 -0
- devsquad-3.9.2/scripts/collaboration/ue_test_heuristic_mixin.py +236 -0
- devsquad-3.9.2/scripts/collaboration/ue_test_journey_mixin.py +186 -0
- devsquad-3.9.2/scripts/collaboration/ue_test_persona_mixin.py +89 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/unified_gate_engine.py +23 -12
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/usage_tracker.py +3 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/user_friendly_error.py +14 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/verification_gate.py +5 -10
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/warmup_manager.py +171 -26
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/collaboration/worker.py +226 -21
- devsquad-3.9.2/scripts/collaboration/workflow_engine.py +103 -0
- devsquad-3.9.2/scripts/collaboration/workflow_engine_base.py +439 -0
- devsquad-3.9.2/scripts/collaboration/workflow_engine_lifecycle_mixin.py +282 -0
- devsquad-3.9.2/scripts/collaboration/workflow_engine_persistence_mixin.py +122 -0
- devsquad-3.9.2/scripts/collaboration/workflow_engine_state_mixin.py +156 -0
- devsquad-3.9.2/scripts/collaboration/workflow_engine_transition_mixin.py +145 -0
- devsquad-3.9.2/scripts/collaboration/yagni_checker.py +333 -0
- devsquad-3.9.2/scripts/dashboard/__init__.py +68 -0
- devsquad-3.9.2/scripts/dashboard/app.py +117 -0
- devsquad-3.9.2/scripts/dashboard/auth_views.py +118 -0
- devsquad-3.9.2/scripts/dashboard/components.py +366 -0
- devsquad-3.9.2/scripts/dashboard/dispatch_views.py +208 -0
- devsquad-3.9.2/scripts/dashboard/lifecycle_views.py +207 -0
- devsquad-3.9.2/scripts/dashboard/metrics_views.py +172 -0
- devsquad-3.9.2/scripts/dashboard/state.py +31 -0
- devsquad-3.9.2/scripts/dashboard.py +13 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/generate_benchmark_report.py +30 -30
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/history_manager.py +54 -43
- devsquad-3.9.2/scripts/mcp_server.py +577 -0
- devsquad-3.9.2/scripts/utils/__init__.py +1 -0
- devsquad-3.9.2/scripts/utils/_find_missing_hints.py +53 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/__init__.py +2 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/dispatch/handler.py +12 -9
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/intent/handler.py +16 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/registry.py +8 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/retrospective/handler.py +13 -10
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/review/handler.py +15 -17
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/security/handler.py +6 -6
- {devsquad-3.6.7 → devsquad-3.9.2}/skills/test/handler.py +7 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_agent_briefing.py +6 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_anchor_retrospective.py +7 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_anti_rationalization.py +17 -27
- devsquad-3.9.2/tests/test_api_security.py +792 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_api_server_v362.py +20 -8
- devsquad-3.9.2/tests/test_async_modules.py +265 -0
- devsquad-3.9.2/tests/test_audit_logger.py +253 -0
- devsquad-3.9.2/tests/test_auth_phase5.py +602 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_cli_deep_v362.py +16 -16
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_cli_lifecycle.py +7 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_cli_phase5.py +119 -102
- devsquad-3.9.2/tests/test_code_knowledge_graph.py +951 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_claw_integration_test.py +13 -17
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_context_compressor_test.py +1 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_core_test.py +156 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_dispatcher_test.py +158 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_dispatcher_ux_test.py +17 -27
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_e2e_test.py +2 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_enhanced_e2e_test.py +14 -17
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_llm_retry_test.py +4 -4
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_mce_adapter_test.py +1 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_memory_bridge_test.py +4 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_performance_monitor_test.py +7 -7
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_permission_guard_test.py +7 -8
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_prompt_optimization_test.py +5 -231
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_role_mapping_test.py +3 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_skillifier_test.py +1 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_test_quality_guard.py +2 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_test_quality_guard_test.py +19 -5
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_upstream_test.py +2 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_warmup_manager_test.py +11 -9
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_comprehensive_integration.py +17 -12
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_confidence_score.py +13 -13
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_config_injection.py +5 -4
- devsquad-3.9.2/tests/test_consensus_gate.py +194 -0
- devsquad-3.9.2/tests/test_content_cache.py +266 -0
- devsquad-3.9.2/tests/test_dashboard_split.py +102 -0
- devsquad-3.9.2/tests/test_data_backup.py +166 -0
- devsquad-3.9.2/tests/test_dependency_lock.py +66 -0
- devsquad-3.9.2/tests/test_dispatch_audit.py +435 -0
- devsquad-3.9.2/tests/test_dispatch_rbac.py +283 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_dispatcher_phase5_core.py +118 -114
- devsquad-3.9.2/tests/test_docker_deployment.py +97 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_extended_integration.py +1 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_final_integration.py +3 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_full_lifecycle_adapter.py +0 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_history_manager_v362.py +12 -16
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_input_validator_phase5.py +160 -65
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_intent_workflow_mapper.py +1 -1
- devsquad-3.9.2/tests/test_judge_agent.py +633 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_lifecycle_protocol.py +2 -2
- devsquad-3.9.2/tests/test_llm_auto_fallback.py +335 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_llm_cache_protocol.py +2 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_mcp_server_v362.py +34 -13
- devsquad-3.9.2/tests/test_memory_benchmarks.py +119 -0
- devsquad-3.9.2/tests/test_micro_task_planner.py +590 -0
- devsquad-3.9.2/tests/test_multi_host_adapter.py +310 -0
- devsquad-3.9.2/tests/test_multi_tenant.py +312 -0
- devsquad-3.9.2/tests/test_node_type_separation.py +231 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_null_providers.py +9 -9
- devsquad-3.9.2/tests/test_performance_benchmarks.py +166 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_performance_fingerprint.py +1 -1
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_performance_monitor_protocol.py +2 -2
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_permission_guard_phase5.py +12 -16
- devsquad-3.9.2/tests/test_pipeline_step19_20.py +120 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_plan_c_unified_architecture.py +2 -3
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_production_features.py +26 -137
- devsquad-3.9.2/tests/test_prompt_dials.py +343 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_protocols.py +4 -4
- devsquad-3.9.2/tests/test_rate_limit.py +447 -0
- devsquad-3.9.2/tests/test_rbac_engine.py +199 -0
- devsquad-3.9.2/tests/test_rbac_fail_closed.py +175 -0
- devsquad-3.9.2/tests/test_redesign_auditor.py +469 -0
- devsquad-3.9.2/tests/test_retry_jitter_strategies.py +171 -0
- devsquad-3.9.2/tests/test_role_skill_loader.py +272 -0
- devsquad-3.9.2/tests/test_severity_router.py +542 -0
- devsquad-3.9.2/tests/test_skill_security.py +113 -0
- devsquad-3.9.2/tests/test_start_script.py +156 -0
- devsquad-3.9.2/tests/test_step_node_types.py +141 -0
- devsquad-3.9.2/tests/test_suggested_next_steps.py +96 -0
- devsquad-3.9.2/tests/test_tech_debt_manager.py +529 -0
- devsquad-3.9.2/tests/test_two_stage_review_gate.py +489 -0
- devsquad-3.9.2/tests/test_ue_test_framework.py +447 -0
- devsquad-3.9.2/tests/test_v38_integration.py +391 -0
- devsquad-3.9.2/tests/test_v39_e2e.py +1139 -0
- devsquad-3.9.2/tests/test_v39_integration.py +702 -0
- devsquad-3.9.2/tests/test_v39_performance.py +788 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_verification_gate.py +3 -3
- devsquad-3.9.2/tests/test_version.py +84 -0
- devsquad-3.9.2/tests/test_yagni_checker.py +428 -0
- devsquad-3.6.7/scripts/MANUAL_PUBLISHING_GUIDE.md +0 -226
- devsquad-3.6.7/scripts/PUBLISHING_GUIDE.md +0 -208
- devsquad-3.6.7/scripts/RELEASE_NOTES_V3.6.5.md +0 -570
- devsquad-3.6.7/scripts/ai_semantic_matcher.py +0 -512
- devsquad-3.6.7/scripts/alert_manager.py +0 -496
- devsquad-3.6.7/scripts/cli.py +0 -1157
- devsquad-3.6.7/scripts/collaboration/_archived/adaptive_role_selector_test.py +0 -513
- devsquad-3.6.7/scripts/collaboration/_archived/async_integration_example.py +0 -241
- devsquad-3.6.7/scripts/collaboration/_archived/code_quality.py +0 -360
- devsquad-3.6.7/scripts/collaboration/_archived/execution_guard_test.py +0 -555
- devsquad-3.6.7/scripts/collaboration/_archived/feedback_control_loop_test.py +0 -474
- devsquad-3.6.7/scripts/collaboration/_archived/integration_example.py +0 -278
- devsquad-3.6.7/scripts/collaboration/_archived/multi_level_cache.py +0 -703
- devsquad-3.6.7/scripts/collaboration/_archived/similar_task_recommender_test.py +0 -382
- devsquad-3.6.7/scripts/collaboration/_archived/structured_logging.py +0 -365
- devsquad-3.6.7/scripts/collaboration/_version.py +0 -1
- devsquad-3.6.7/scripts/collaboration/config_loader.py +0 -188
- devsquad-3.6.7/scripts/collaboration/dispatcher.py +0 -2047
- devsquad-3.6.7/scripts/collaboration/lifecycle_protocol.py +0 -1437
- devsquad-3.6.7/scripts/collaboration/memory_bridge.py +0 -1681
- devsquad-3.6.7/scripts/collaboration/models.py +0 -1215
- devsquad-3.6.7/scripts/collaboration/prompt_assembler.py +0 -899
- devsquad-3.6.7/scripts/collaboration/prompt_variant_generator.py +0 -467
- devsquad-3.6.7/scripts/collaboration/role_matcher.py +0 -99
- devsquad-3.6.7/scripts/collaboration/role_template_market.py +0 -336
- devsquad-3.6.7/scripts/collaboration/workflow_engine.py +0 -741
- devsquad-3.6.7/scripts/dashboard.py +0 -1077
- devsquad-3.6.7/scripts/mcp_server.py +0 -304
- devsquad-3.6.7/scripts/verify_v361.py +0 -75
- devsquad-3.6.7/skills/test/__init__.py +0 -0
- devsquad-3.6.7/tests/test_auth_phase5.py +0 -333
- {devsquad-3.6.7 → devsquad-3.9.2}/LICENSE +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/devsquad.egg-info/dependency_links.txt +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/devsquad.egg-info/entry_points.txt +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/devsquad.egg-info/requires.txt +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/devsquad.egg-info/top_level.txt +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/__init__.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/models.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/api/routes/__init__.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/scripts/cli/__init__.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/setup.cfg +0 -0
- {devsquad-3.6.7/scripts/collaboration/_archived → devsquad-3.9.2/skills/retrospective}/__init__.py +0 -0
- {devsquad-3.6.7/skills/retrospective → devsquad-3.9.2/skills/test}/__init__.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_ci_feedback_adapter.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_collaboration_llm_cache_test.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_five_axis_consensus.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_operation_classifier.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_output_slicer.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_quick_bonus.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_rule_injection_security.py +0 -0
- {devsquad-3.6.7 → devsquad-3.9.2}/tests/test_standardized_role_template.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devsquad
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.9.2
|
|
4
4
|
Summary: Production-Ready Multi-Role AI Task Orchestrator
|
|
5
5
|
Author-email: DevSquad Team <devsquad@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -83,14 +83,14 @@ Dynamic: license-file
|
|
|
83
83
|
<p align="center">
|
|
84
84
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
85
85
|
<br>
|
|
86
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V3.
|
|
86
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V3.9.2 Enterprise Ready</em>
|
|
87
87
|
</p>
|
|
88
88
|
|
|
89
89
|
<p align="center">
|
|
90
|
-
<img alt="Python" src="https://img.shields.io/badge/Python-3.
|
|
90
|
+
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
91
91
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
92
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
93
|
-
<img alt="Version" src="https://img.shields.io/badge/V3.
|
|
92
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-2857%2B%20passing-brightgreen" />
|
|
93
|
+
<img alt="Version" src="https://img.shields.io/badge/V3.9.2-success" />
|
|
94
94
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
95
95
|
<img alt="Quality" src="https://img.shields.io/badge/Code%20Quality-4.3%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-blue" />
|
|
96
96
|
<img alt="Security" src="https://img.shields.io/badge/Security-5%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-success" />
|
|
@@ -144,22 +144,22 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
144
144
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
145
145
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
146
146
|
|
|
147
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
147
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [149+ 模块详细参考](SKILL.md)
|
|
148
148
|
|
|
149
149
|
---
|
|
150
150
|
|
|
151
151
|
<details>
|
|
152
152
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
153
153
|
|
|
154
|
-
## 🚀 V3.
|
|
154
|
+
## 🚀 V3.9.2: Auto LLM Fallback + Dashboard Split + SQLite Audit Persistence + P3 Cleanup
|
|
155
155
|
|
|
156
|
-
**DevSquad V3.
|
|
156
|
+
**DevSquad V3.9.2** introduces automatic LLM backend fallback (auto backend tries real LLM first, falls back to mock), splits dashboard.py from 1087 lines into an 8-module package, makes SQLite-backed dispatch audit persistence default, and performs P3 cleanup (magic number extraction + narrowed exception scopes), with 2857+ tests passing.
|
|
157
157
|
|
|
158
158
|
---
|
|
159
159
|
|
|
160
|
-
## ⚡ Quick Start (
|
|
160
|
+
## ⚡ Quick Start (5 Ways to Use DevSquad)
|
|
161
161
|
|
|
162
|
-
###
|
|
162
|
+
### Method 1: CLI (Recommended for Beginners)
|
|
163
163
|
|
|
164
164
|
```bash
|
|
165
165
|
# Interactive setup wizard (1-2 minutes)
|
|
@@ -169,7 +169,7 @@ python scripts/cli.py init
|
|
|
169
169
|
devsquad dispatch -t "your task description"
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
-
###
|
|
172
|
+
### Method 2: Web Dashboard (Recommended for Teams)
|
|
173
173
|
|
|
174
174
|
```bash
|
|
175
175
|
# Start Streamlit dashboard with authentication
|
|
@@ -177,10 +177,10 @@ streamlit run scripts/dashboard.py
|
|
|
177
177
|
|
|
178
178
|
# Open http://localhost:8501
|
|
179
179
|
# Login with default account, then change password immediately.
|
|
180
|
-
# Username: admin Password:
|
|
180
|
+
# Username: admin Password: admin123 (change in production)
|
|
181
181
|
```
|
|
182
182
|
|
|
183
|
-
###
|
|
183
|
+
### Method 3: REST API (Recommended for Integration)
|
|
184
184
|
|
|
185
185
|
```bash
|
|
186
186
|
# Install dependencies
|
|
@@ -193,7 +193,7 @@ uvicorn scripts.api_server:app --host 0.0.0.0 --port 8000 --reload
|
|
|
193
193
|
# Access ReDoc: http://localhost:8000/redoc
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
###
|
|
196
|
+
### Method 4: Python API (Recommended for Developers)
|
|
197
197
|
|
|
198
198
|
```python
|
|
199
199
|
from scripts.collaboration.dispatcher import MultiAgentDispatcher
|
|
@@ -207,6 +207,24 @@ print(result.report)
|
|
|
207
207
|
print(result.consensus)
|
|
208
208
|
```
|
|
209
209
|
|
|
210
|
+
### Method 5: One-Click Startup Script (V3.9.2+)
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# One-click startup — 4 phases: env check → DB init → frontend build → service start
|
|
214
|
+
./scripts/start.sh
|
|
215
|
+
|
|
216
|
+
# Launch Streamlit dashboard instead of API server
|
|
217
|
+
./scripts/start.sh --dashboard
|
|
218
|
+
|
|
219
|
+
# Override API port
|
|
220
|
+
DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
221
|
+
|
|
222
|
+
# Show help
|
|
223
|
+
./scripts/start.sh --help
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
`start.sh` is the unified entry point introduced in V3.9.2 (P0-2). It validates the environment, initializes the database, builds the frontend, and starts the service in one command. Use `requirements.lock` alongside it for reproducible builds (`pip install -r requirements.lock`).
|
|
227
|
+
|
|
210
228
|
---
|
|
211
229
|
|
|
212
230
|
## 👥 7 Core Roles
|
|
@@ -227,7 +245,7 @@ print(result.consensus)
|
|
|
227
245
|
|
|
228
246
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
229
247
|
|
|
230
|
-
DevSquad's
|
|
248
|
+
DevSquad's 149+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
231
249
|
|
|
232
250
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
233
251
|
|
|
@@ -280,10 +298,11 @@ User Task → [InputValidator] → [RoleMatcher] → [Coordinator Orchestration]
|
|
|
280
298
|
|--------|---------|------------|
|
|
281
299
|
| **PerformanceMonitor** | P95/P99 response time, CPU/memory tracking, bottleneck detection | Performance tuning |
|
|
282
300
|
| **UsageTracker** | Token/cost usage tracking and reporting | Cost control |
|
|
283
|
-
| **AuditLogger** | SHA256 integrity operation logs with CSV/JSON export | Compliance auditing |
|
|
284
|
-
| **RBAC Engine** | 15+ fine-grained permissions, 5 roles (SUPER_ADMIN/ADMIN/OPERATOR/ANALYST/VIEWER) | Enterprise access control |
|
|
301
|
+
| **AuditLogger** | SHA256 integrity operation logs with CSV/JSON export (Preview) | Compliance auditing |
|
|
302
|
+
| **RBAC Engine** | 15+ fine-grained permissions, 5 roles (SUPER_ADMIN/ADMIN/OPERATOR/ANALYST/VIEWER) (Preview) | Enterprise access control |
|
|
303
|
+
| **Multi-Tenancy Manager** | 3 isolation levels (strict/moderate/shared), tenant-scoped resources (Preview) | Multi-tenant SaaS |
|
|
304
|
+
| **Sensitive Data Masker** | PII detection and masking (email/phone/ID card/credit card), configurable rules (Preview) | Data compliance |
|
|
285
305
|
| **HistoryManager** | SQLite time-series storage: metrics snapshots, alert history, API logs | Retrospective analysis |
|
|
286
|
-
| **AlertManager** | Multi-channel alerting: Console/Slack/Email/Webhook with rate limiting | Production monitoring |
|
|
287
306
|
|
|
288
307
|
### 🔌 Domain 5: Integration & Extension
|
|
289
308
|
|
|
@@ -296,7 +315,7 @@ User Task → [InputValidator] → [RoleMatcher] → [Coordinator Orchestration]
|
|
|
296
315
|
| **Dashboard (Streamlit)** | Interactive web dashboard with authentication | Operations team visualization |
|
|
297
316
|
| **MCP Protocol** | Integration with TRAE/Claude Code/Cursor | AI Agent ecosystem |
|
|
298
317
|
| **Docker Support** | Multi-stage build for production deployment | Containerized environments |
|
|
299
|
-
| **GitHub Actions CI** | Python 3.
|
|
318
|
+
| **GitHub Actions CI** | Python 3.10-3.11 matrix testing | CI/CD pipelines |
|
|
300
319
|
|
|
301
320
|
---
|
|
302
321
|
|
|
@@ -393,10 +412,10 @@ All modules are **optional switches** — DevSquad works perfectly without them.
|
|
|
393
412
|
▼ ▼
|
|
394
413
|
┌─────────────────────────────────────────────────────────────┐
|
|
395
414
|
│ Business Logic Layer │
|
|
396
|
-
│ ┌─────────────┐ ┌─────────────┐
|
|
397
|
-
│ │AuthManager │ │
|
|
398
|
-
│ │(RBAC Auth) │ │(
|
|
399
|
-
│ └─────────────┘ └─────────────┘
|
|
415
|
+
│ ┌─────────────┐ ┌─────────────┐ │
|
|
416
|
+
│ │AuthManager │ │HistoryMgr │ │
|
|
417
|
+
│ │(RBAC Auth) │ │(SQLite TSDB)│ │
|
|
418
|
+
│ └─────────────┘ └─────────────┘ │
|
|
400
419
|
│ ┌─────────────────────────────────────────────┐ │
|
|
401
420
|
│ │ LifecycleProtocol (11-Phase Engine) │ │
|
|
402
421
|
│ │ UnifiedGateEngine + CheckpointManager │ │
|
|
@@ -489,7 +508,7 @@ CLI View Layer (6 commands) Core Engine (11 phases)
|
|
|
489
508
|
## 📦 Installation
|
|
490
509
|
|
|
491
510
|
### Prerequisites
|
|
492
|
-
- **Python 3.
|
|
511
|
+
- **Python 3.10+** (3.10, 3.11 supported, tested in CI)
|
|
493
512
|
- **pip** or **pipenv** for package management
|
|
494
513
|
|
|
495
514
|
### Option A: PyPI Install (Recommended)
|
|
@@ -504,7 +523,7 @@ pip install "devsquad[all]" # All optional features
|
|
|
504
523
|
|
|
505
524
|
### Option B: Git Clone + Local Install
|
|
506
525
|
```bash
|
|
507
|
-
git clone https://github.com/
|
|
526
|
+
git clone https://github.com/lulin70/DevSquad.git
|
|
508
527
|
cd DevSquad
|
|
509
528
|
|
|
510
529
|
# Install core package (minimal dependencies)
|
|
@@ -518,11 +537,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
518
537
|
```bash
|
|
519
538
|
# Check version
|
|
520
539
|
devsquad --version
|
|
521
|
-
# Expected: devsquad 3.
|
|
540
|
+
# Expected: devsquad 3.9.2
|
|
522
541
|
|
|
523
542
|
# Run tests
|
|
524
543
|
pytest tests/ -v --tb=short
|
|
525
|
-
# Expected:
|
|
544
|
+
# Expected: 2857+ passed
|
|
526
545
|
```
|
|
527
546
|
|
|
528
547
|
---
|
|
@@ -538,7 +557,7 @@ quality_control:
|
|
|
538
557
|
min_quality_score: 85
|
|
539
558
|
|
|
540
559
|
llm:
|
|
541
|
-
backend:
|
|
560
|
+
backend: auto
|
|
542
561
|
base_url: "" # Set via DEVSQUAD_OPENAI_BASE_URL env var
|
|
543
562
|
model: "" # Set via DEVSQUAD_OPENAI_MODEL env var
|
|
544
563
|
timeout: 120
|
|
@@ -547,7 +566,8 @@ llm:
|
|
|
547
566
|
Or use environment variables (higher priority):
|
|
548
567
|
|
|
549
568
|
```bash
|
|
550
|
-
|
|
569
|
+
# Default: auto tries real backends first, then falls back to mock
|
|
570
|
+
export DEVSQUAD_LLM_BACKEND=auto
|
|
551
571
|
export DEVSQUAD_OPENAI_BASE_URL=https://api.openai.com/v1
|
|
552
572
|
export DEVSQUAD_OPENAI_MODEL=gpt-4
|
|
553
573
|
export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
@@ -557,7 +577,7 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
557
577
|
|
|
558
578
|
| Variable | Purpose | Default |
|
|
559
579
|
|----------|---------|---------|
|
|
560
|
-
| `DEVSQUAD_LLM_BACKEND` | Default backend type (mock\|trae\|openai\|anthropic\|fallback) | `
|
|
580
|
+
| `DEVSQUAD_LLM_BACKEND` | Default backend type (auto\|mock\|trae\|openai\|anthropic\|fallback) | `auto` |
|
|
561
581
|
| `DEVSQUAD_OPENAI_API_KEY` | OpenAI/MOKA AI API key | None |
|
|
562
582
|
| `DEVSQUAD_OPENAI_BASE_URL` | OpenAI-compatible base URL | None |
|
|
563
583
|
| `DEVSQUAD_OPENAI_MODEL` | OpenAI model name | `gpt-4` |
|
|
@@ -572,14 +592,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
572
592
|
|
|
573
593
|
### Quick Smoke Test (< 30 seconds)
|
|
574
594
|
```bash
|
|
575
|
-
python3 scripts/cli.py --version # Expected: DevSquad 3.
|
|
595
|
+
python3 scripts/cli.py --version # Expected: DevSquad 3.9.2
|
|
576
596
|
python3 scripts/cli.py status # Expected: System ready
|
|
577
597
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
578
598
|
```
|
|
579
599
|
|
|
580
600
|
### Full Test Suite
|
|
581
601
|
```bash
|
|
582
|
-
# Run all tests (
|
|
602
|
+
# Run all tests (2857+ tests passing)
|
|
583
603
|
python3 -m pytest tests/ -q --tb=line
|
|
584
604
|
|
|
585
605
|
# With coverage report
|
|
@@ -596,7 +616,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
596
616
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
597
617
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
598
618
|
|
|
599
|
-
**Total:
|
|
619
|
+
**Total: 2857+ tests (2864 collected)**
|
|
600
620
|
|
|
601
621
|
Run by priority:
|
|
602
622
|
```bash
|
|
@@ -617,13 +637,13 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
617
637
|
| Document | Description | Language |
|
|
618
638
|
|----------|-------------|----------|
|
|
619
639
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
620
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
640
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 149+ 模块参考 | EN/CN/JP |
|
|
621
641
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
622
642
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
623
643
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
624
644
|
| [CHANGELOG.md](CHANGELOG.md) | 版本历史记录 | EN |
|
|
625
|
-
| [
|
|
626
|
-
| [
|
|
645
|
+
| [README-CN.md](README-CN.md) | 中文说明 | 中文 |
|
|
646
|
+
| [README-JP.md](README-JP.md) | 日本語説明 | 日本語 |
|
|
627
647
|
| [docs/PRD.md](docs/PRD.md) | 产品需求文档 | 中文 |
|
|
628
648
|
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 技术架构文档 | 中文 |
|
|
629
649
|
|
|
@@ -660,6 +680,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
660
680
|
|
|
661
681
|
---
|
|
662
682
|
|
|
663
|
-
*Last updated: 2026-06-
|
|
683
|
+
*Last updated: 2026-06-26 | Version: V3.9.2*
|
|
664
684
|
|
|
665
685
|
</details>
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
5
5
|
<br>
|
|
6
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V3.
|
|
6
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V3.9.2 Enterprise Ready</em>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<img alt="Python" src="https://img.shields.io/badge/Python-3.
|
|
10
|
+
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
11
11
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
12
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
13
|
-
<img alt="Version" src="https://img.shields.io/badge/V3.
|
|
12
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-2857%2B%20passing-brightgreen" />
|
|
13
|
+
<img alt="Version" src="https://img.shields.io/badge/V3.9.2-success" />
|
|
14
14
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
15
15
|
<img alt="Quality" src="https://img.shields.io/badge/Code%20Quality-4.3%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-blue" />
|
|
16
16
|
<img alt="Security" src="https://img.shields.io/badge/Security-5%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-success" />
|
|
@@ -64,22 +64,22 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
64
64
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
65
65
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
66
66
|
|
|
67
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
67
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [149+ 模块详细参考](SKILL.md)
|
|
68
68
|
|
|
69
69
|
---
|
|
70
70
|
|
|
71
71
|
<details>
|
|
72
72
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
73
73
|
|
|
74
|
-
## 🚀 V3.
|
|
74
|
+
## 🚀 V3.9.2: Auto LLM Fallback + Dashboard Split + SQLite Audit Persistence + P3 Cleanup
|
|
75
75
|
|
|
76
|
-
**DevSquad V3.
|
|
76
|
+
**DevSquad V3.9.2** introduces automatic LLM backend fallback (auto backend tries real LLM first, falls back to mock), splits dashboard.py from 1087 lines into an 8-module package, makes SQLite-backed dispatch audit persistence default, and performs P3 cleanup (magic number extraction + narrowed exception scopes), with 2857+ tests passing.
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
80
|
-
## ⚡ Quick Start (
|
|
80
|
+
## ⚡ Quick Start (5 Ways to Use DevSquad)
|
|
81
81
|
|
|
82
|
-
###
|
|
82
|
+
### Method 1: CLI (Recommended for Beginners)
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
85
|
# Interactive setup wizard (1-2 minutes)
|
|
@@ -89,7 +89,7 @@ python scripts/cli.py init
|
|
|
89
89
|
devsquad dispatch -t "your task description"
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
###
|
|
92
|
+
### Method 2: Web Dashboard (Recommended for Teams)
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
95
|
# Start Streamlit dashboard with authentication
|
|
@@ -97,10 +97,10 @@ streamlit run scripts/dashboard.py
|
|
|
97
97
|
|
|
98
98
|
# Open http://localhost:8501
|
|
99
99
|
# Login with default account, then change password immediately.
|
|
100
|
-
# Username: admin Password:
|
|
100
|
+
# Username: admin Password: admin123 (change in production)
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
###
|
|
103
|
+
### Method 3: REST API (Recommended for Integration)
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
106
|
# Install dependencies
|
|
@@ -113,7 +113,7 @@ uvicorn scripts.api_server:app --host 0.0.0.0 --port 8000 --reload
|
|
|
113
113
|
# Access ReDoc: http://localhost:8000/redoc
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
###
|
|
116
|
+
### Method 4: Python API (Recommended for Developers)
|
|
117
117
|
|
|
118
118
|
```python
|
|
119
119
|
from scripts.collaboration.dispatcher import MultiAgentDispatcher
|
|
@@ -127,6 +127,24 @@ print(result.report)
|
|
|
127
127
|
print(result.consensus)
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
+
### Method 5: One-Click Startup Script (V3.9.2+)
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# One-click startup — 4 phases: env check → DB init → frontend build → service start
|
|
134
|
+
./scripts/start.sh
|
|
135
|
+
|
|
136
|
+
# Launch Streamlit dashboard instead of API server
|
|
137
|
+
./scripts/start.sh --dashboard
|
|
138
|
+
|
|
139
|
+
# Override API port
|
|
140
|
+
DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
141
|
+
|
|
142
|
+
# Show help
|
|
143
|
+
./scripts/start.sh --help
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`start.sh` is the unified entry point introduced in V3.9.2 (P0-2). It validates the environment, initializes the database, builds the frontend, and starts the service in one command. Use `requirements.lock` alongside it for reproducible builds (`pip install -r requirements.lock`).
|
|
147
|
+
|
|
130
148
|
---
|
|
131
149
|
|
|
132
150
|
## 👥 7 Core Roles
|
|
@@ -147,7 +165,7 @@ print(result.consensus)
|
|
|
147
165
|
|
|
148
166
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
149
167
|
|
|
150
|
-
DevSquad's
|
|
168
|
+
DevSquad's 149+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
151
169
|
|
|
152
170
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
153
171
|
|
|
@@ -200,10 +218,11 @@ User Task → [InputValidator] → [RoleMatcher] → [Coordinator Orchestration]
|
|
|
200
218
|
|--------|---------|------------|
|
|
201
219
|
| **PerformanceMonitor** | P95/P99 response time, CPU/memory tracking, bottleneck detection | Performance tuning |
|
|
202
220
|
| **UsageTracker** | Token/cost usage tracking and reporting | Cost control |
|
|
203
|
-
| **AuditLogger** | SHA256 integrity operation logs with CSV/JSON export | Compliance auditing |
|
|
204
|
-
| **RBAC Engine** | 15+ fine-grained permissions, 5 roles (SUPER_ADMIN/ADMIN/OPERATOR/ANALYST/VIEWER) | Enterprise access control |
|
|
221
|
+
| **AuditLogger** | SHA256 integrity operation logs with CSV/JSON export (Preview) | Compliance auditing |
|
|
222
|
+
| **RBAC Engine** | 15+ fine-grained permissions, 5 roles (SUPER_ADMIN/ADMIN/OPERATOR/ANALYST/VIEWER) (Preview) | Enterprise access control |
|
|
223
|
+
| **Multi-Tenancy Manager** | 3 isolation levels (strict/moderate/shared), tenant-scoped resources (Preview) | Multi-tenant SaaS |
|
|
224
|
+
| **Sensitive Data Masker** | PII detection and masking (email/phone/ID card/credit card), configurable rules (Preview) | Data compliance |
|
|
205
225
|
| **HistoryManager** | SQLite time-series storage: metrics snapshots, alert history, API logs | Retrospective analysis |
|
|
206
|
-
| **AlertManager** | Multi-channel alerting: Console/Slack/Email/Webhook with rate limiting | Production monitoring |
|
|
207
226
|
|
|
208
227
|
### 🔌 Domain 5: Integration & Extension
|
|
209
228
|
|
|
@@ -216,7 +235,7 @@ User Task → [InputValidator] → [RoleMatcher] → [Coordinator Orchestration]
|
|
|
216
235
|
| **Dashboard (Streamlit)** | Interactive web dashboard with authentication | Operations team visualization |
|
|
217
236
|
| **MCP Protocol** | Integration with TRAE/Claude Code/Cursor | AI Agent ecosystem |
|
|
218
237
|
| **Docker Support** | Multi-stage build for production deployment | Containerized environments |
|
|
219
|
-
| **GitHub Actions CI** | Python 3.
|
|
238
|
+
| **GitHub Actions CI** | Python 3.10-3.11 matrix testing | CI/CD pipelines |
|
|
220
239
|
|
|
221
240
|
---
|
|
222
241
|
|
|
@@ -313,10 +332,10 @@ All modules are **optional switches** — DevSquad works perfectly without them.
|
|
|
313
332
|
▼ ▼
|
|
314
333
|
┌─────────────────────────────────────────────────────────────┐
|
|
315
334
|
│ Business Logic Layer │
|
|
316
|
-
│ ┌─────────────┐ ┌─────────────┐
|
|
317
|
-
│ │AuthManager │ │
|
|
318
|
-
│ │(RBAC Auth) │ │(
|
|
319
|
-
│ └─────────────┘ └─────────────┘
|
|
335
|
+
│ ┌─────────────┐ ┌─────────────┐ │
|
|
336
|
+
│ │AuthManager │ │HistoryMgr │ │
|
|
337
|
+
│ │(RBAC Auth) │ │(SQLite TSDB)│ │
|
|
338
|
+
│ └─────────────┘ └─────────────┘ │
|
|
320
339
|
│ ┌─────────────────────────────────────────────┐ │
|
|
321
340
|
│ │ LifecycleProtocol (11-Phase Engine) │ │
|
|
322
341
|
│ │ UnifiedGateEngine + CheckpointManager │ │
|
|
@@ -409,7 +428,7 @@ CLI View Layer (6 commands) Core Engine (11 phases)
|
|
|
409
428
|
## 📦 Installation
|
|
410
429
|
|
|
411
430
|
### Prerequisites
|
|
412
|
-
- **Python 3.
|
|
431
|
+
- **Python 3.10+** (3.10, 3.11 supported, tested in CI)
|
|
413
432
|
- **pip** or **pipenv** for package management
|
|
414
433
|
|
|
415
434
|
### Option A: PyPI Install (Recommended)
|
|
@@ -424,7 +443,7 @@ pip install "devsquad[all]" # All optional features
|
|
|
424
443
|
|
|
425
444
|
### Option B: Git Clone + Local Install
|
|
426
445
|
```bash
|
|
427
|
-
git clone https://github.com/
|
|
446
|
+
git clone https://github.com/lulin70/DevSquad.git
|
|
428
447
|
cd DevSquad
|
|
429
448
|
|
|
430
449
|
# Install core package (minimal dependencies)
|
|
@@ -438,11 +457,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
438
457
|
```bash
|
|
439
458
|
# Check version
|
|
440
459
|
devsquad --version
|
|
441
|
-
# Expected: devsquad 3.
|
|
460
|
+
# Expected: devsquad 3.9.2
|
|
442
461
|
|
|
443
462
|
# Run tests
|
|
444
463
|
pytest tests/ -v --tb=short
|
|
445
|
-
# Expected:
|
|
464
|
+
# Expected: 2857+ passed
|
|
446
465
|
```
|
|
447
466
|
|
|
448
467
|
---
|
|
@@ -458,7 +477,7 @@ quality_control:
|
|
|
458
477
|
min_quality_score: 85
|
|
459
478
|
|
|
460
479
|
llm:
|
|
461
|
-
backend:
|
|
480
|
+
backend: auto
|
|
462
481
|
base_url: "" # Set via DEVSQUAD_OPENAI_BASE_URL env var
|
|
463
482
|
model: "" # Set via DEVSQUAD_OPENAI_MODEL env var
|
|
464
483
|
timeout: 120
|
|
@@ -467,7 +486,8 @@ llm:
|
|
|
467
486
|
Or use environment variables (higher priority):
|
|
468
487
|
|
|
469
488
|
```bash
|
|
470
|
-
|
|
489
|
+
# Default: auto tries real backends first, then falls back to mock
|
|
490
|
+
export DEVSQUAD_LLM_BACKEND=auto
|
|
471
491
|
export DEVSQUAD_OPENAI_BASE_URL=https://api.openai.com/v1
|
|
472
492
|
export DEVSQUAD_OPENAI_MODEL=gpt-4
|
|
473
493
|
export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
@@ -477,7 +497,7 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
477
497
|
|
|
478
498
|
| Variable | Purpose | Default |
|
|
479
499
|
|----------|---------|---------|
|
|
480
|
-
| `DEVSQUAD_LLM_BACKEND` | Default backend type (mock\|trae\|openai\|anthropic\|fallback) | `
|
|
500
|
+
| `DEVSQUAD_LLM_BACKEND` | Default backend type (auto\|mock\|trae\|openai\|anthropic\|fallback) | `auto` |
|
|
481
501
|
| `DEVSQUAD_OPENAI_API_KEY` | OpenAI/MOKA AI API key | None |
|
|
482
502
|
| `DEVSQUAD_OPENAI_BASE_URL` | OpenAI-compatible base URL | None |
|
|
483
503
|
| `DEVSQUAD_OPENAI_MODEL` | OpenAI model name | `gpt-4` |
|
|
@@ -492,14 +512,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
492
512
|
|
|
493
513
|
### Quick Smoke Test (< 30 seconds)
|
|
494
514
|
```bash
|
|
495
|
-
python3 scripts/cli.py --version # Expected: DevSquad 3.
|
|
515
|
+
python3 scripts/cli.py --version # Expected: DevSquad 3.9.2
|
|
496
516
|
python3 scripts/cli.py status # Expected: System ready
|
|
497
517
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
498
518
|
```
|
|
499
519
|
|
|
500
520
|
### Full Test Suite
|
|
501
521
|
```bash
|
|
502
|
-
# Run all tests (
|
|
522
|
+
# Run all tests (2857+ tests passing)
|
|
503
523
|
python3 -m pytest tests/ -q --tb=line
|
|
504
524
|
|
|
505
525
|
# With coverage report
|
|
@@ -516,7 +536,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
516
536
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
517
537
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
518
538
|
|
|
519
|
-
**Total:
|
|
539
|
+
**Total: 2857+ tests (2864 collected)**
|
|
520
540
|
|
|
521
541
|
Run by priority:
|
|
522
542
|
```bash
|
|
@@ -537,13 +557,13 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
537
557
|
| Document | Description | Language |
|
|
538
558
|
|----------|-------------|----------|
|
|
539
559
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
540
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
560
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 149+ 模块参考 | EN/CN/JP |
|
|
541
561
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
542
562
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
543
563
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
544
564
|
| [CHANGELOG.md](CHANGELOG.md) | 版本历史记录 | EN |
|
|
545
|
-
| [
|
|
546
|
-
| [
|
|
565
|
+
| [README-CN.md](README-CN.md) | 中文说明 | 中文 |
|
|
566
|
+
| [README-JP.md](README-JP.md) | 日本語説明 | 日本語 |
|
|
547
567
|
| [docs/PRD.md](docs/PRD.md) | 产品需求文档 | 中文 |
|
|
548
568
|
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 技术架构文档 | 中文 |
|
|
549
569
|
|
|
@@ -580,6 +600,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
580
600
|
|
|
581
601
|
---
|
|
582
602
|
|
|
583
|
-
*Last updated: 2026-06-
|
|
603
|
+
*Last updated: 2026-06-26 | Version: V3.9.2*
|
|
584
604
|
|
|
585
605
|
</details>
|