devsquad 3.9.2__tar.gz → 4.1.6__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.9.2 → devsquad-4.1.6}/PKG-INFO +37 -16
- {devsquad-3.9.2 → devsquad-4.1.6}/README.md +23 -15
- {devsquad-3.9.2 → devsquad-4.1.6}/devsquad.egg-info/PKG-INFO +37 -16
- {devsquad-3.9.2 → devsquad-4.1.6}/devsquad.egg-info/SOURCES.txt +100 -5
- {devsquad-3.9.2 → devsquad-4.1.6}/devsquad.egg-info/requires.txt +14 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/pyproject.toml +50 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/routes/dispatch.py +41 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/routes/metrics_gates.py +3 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api_server.py +45 -17
- devsquad-4.1.6/scripts/benchmark_ponytail_smart.py +435 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/benchmark_real_llm.py +26 -12
- devsquad-4.1.6/scripts/check_dependency_sync.py +95 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/check_version_consistency.py +15 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/cli/cli_visual.py +2 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/cli.py +88 -50
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/cli_dispatch.py +91 -48
- devsquad-4.1.6/scripts/cli_lifecycle.py +265 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/cli_utils.py +30 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/__init__.py +2 -0
- devsquad-4.1.6/scripts/collaboration/_version.py +1 -0
- devsquad-4.1.6/scripts/collaboration/adversarial_verify.py +374 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/anti_rationalization.py +7 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/async_adapter.py +3 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/async_coordinator.py +63 -94
- devsquad-4.1.6/scripts/collaboration/autonomous/__init__.py +39 -0
- devsquad-4.1.6/scripts/collaboration/autonomous/git_driver.py +167 -0
- devsquad-4.1.6/scripts/collaboration/autonomous/loop_controller.py +538 -0
- devsquad-4.1.6/scripts/collaboration/autonomous/notes_memory.py +105 -0
- devsquad-4.1.6/scripts/collaboration/autonomous/run_state.py +122 -0
- devsquad-4.1.6/scripts/collaboration/autonomous/sleep_guard.py +166 -0
- devsquad-4.1.6/scripts/collaboration/autonomous/smart_confirmation.py +179 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/batch_scheduler.py +2 -1
- devsquad-4.1.6/scripts/collaboration/ccr_store.py +253 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/checkpoint_manager.py +170 -11
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/ci_feedback_adapter.py +3 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/code_map_generator.py +52 -31
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/concern_pack_loader.py +2 -2
- devsquad-4.1.6/scripts/collaboration/config_manager.py +555 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/consensus.py +26 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/content_cache.py +4 -4
- devsquad-4.1.6/scripts/collaboration/content_crusher.py +327 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/context_compressor.py +85 -12
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/coordinator.py +241 -6
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_audit.py +191 -11
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_component_factory.py +102 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_hooks.py +12 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_models.py +190 -121
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_pre_steps.py +74 -41
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_result_assembler.py +3 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_services.py +18 -9
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_steps.py +96 -5
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_steps_base.py +4 -1
- devsquad-4.1.6/scripts/collaboration/dispatch_steps_consensus_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatch_steps_feedback_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatch_steps_mixins.py +710 -0
- devsquad-4.1.6/scripts/collaboration/dispatch_steps_quality_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatch_steps_services_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher.py +956 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_async_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_audit_mixin.py +9 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatcher_base.py +34 -4
- devsquad-4.1.6/scripts/collaboration/dispatcher_config.py +200 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_error_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_lifecycle_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_mixins.py +569 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_status_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/dispatcher_utils_mixin.py +15 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/enhanced_worker.py +86 -62
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/enterprise_feature.py +34 -23
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/execution_guard.py +110 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/feedback_control_loop.py +84 -57
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/intent_workflow_mapper.py +53 -3
- devsquad-4.1.6/scripts/collaboration/learned_rule_store.py +201 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/lifecycle_protocol.py +93 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/lifecycle_shortcut_adapter.py +7 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/lifecycle_shortcut_helpers.py +11 -8
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_backend.py +17 -4
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_cache.py +135 -98
- devsquad-4.1.6/scripts/collaboration/loop_engineering/__init__.py +52 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/discovery_probe.py +51 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/handoff_adapter.py +47 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/independent_evaluator.py +57 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/kernel.py +215 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/loop_scheduler.py +62 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/models.py +123 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/protocols.py +74 -0
- devsquad-4.1.6/scripts/collaboration/loop_engineering/unified_memory.py +59 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/mce_adapter.py +1 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_bridge.py +3 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_query.py +6 -6
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_serializer.py +93 -69
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/micro_task_planner.py +69 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/models.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/models_base.py +195 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/multi_tenant.py +13 -19
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/operation_classifier.py +202 -0
- devsquad-4.1.6/scripts/collaboration/output_validator.py +308 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/performance_monitor.py +12 -6
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/permission_guard.py +85 -17
- devsquad-4.1.6/scripts/collaboration/plugins/__init__.py +23 -0
- devsquad-4.1.6/scripts/collaboration/plugins/hot_loader.py +509 -0
- devsquad-4.1.6/scripts/collaboration/ponytail_rule_injector.py +108 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/prometheus_metrics.py +16 -11
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/prompt_assembler.py +108 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/prompt_assembler_base.py +17 -0
- devsquad-4.1.6/scripts/collaboration/prompt_assembler_formatting_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/prompt_assembler_mixins.py +951 -0
- devsquad-4.1.6/scripts/collaboration/prompt_assembler_substitution_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/prompt_assembler_template_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/prompt_assembler_validation_mixin.py +9 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/protocols.py +8 -3
- devsquad-4.1.6/scripts/collaboration/redesign_auditor.py +472 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/redis_cache.py +84 -42
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/report_formatter.py +139 -129
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/retrospective.py +80 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/review_checkers.py +64 -50
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/role_skill_loader.py +34 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/rule_collector.py +349 -4
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/scratchpad.py +65 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/severity_router.py +91 -45
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/similar_task_recommender.py +3 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/skill_extractor.py +1 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/skillifier.py +81 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/standardized_role_template.py +219 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/task_completion_checker.py +4 -4
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/tech_debt_manager.py +116 -20
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/test_quality_guard.py +337 -14
- devsquad-4.1.6/scripts/collaboration/ue_test_accessibility_mixin.py +9 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/ue_test_framework_base.py +76 -49
- devsquad-4.1.6/scripts/collaboration/ue_test_heuristic_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/ue_test_journey_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/ue_test_mixins.py +524 -0
- devsquad-4.1.6/scripts/collaboration/ue_test_persona_mixin.py +9 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/unified_gate_engine.py +103 -6
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/verification_gate.py +166 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/worker.py +2 -2
- devsquad-4.1.6/scripts/collaboration/workflow_engine_lifecycle_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/workflow_engine_mixins.py +580 -0
- devsquad-4.1.6/scripts/collaboration/workflow_engine_persistence_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/workflow_engine_state_mixin.py +9 -0
- devsquad-4.1.6/scripts/collaboration/workflow_engine_transition_mixin.py +9 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/yagni_checker.py +173 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/app.py +4 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/auth_views.py +2 -2
- devsquad-4.1.6/scripts/dashboard/components.py +1203 -0
- devsquad-4.1.6/scripts/dashboard/dag_views.py +553 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/dispatch_views.py +164 -8
- devsquad-4.1.6/scripts/dashboard/i18n.py +155 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/metrics_views.py +111 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/mcp_server.py +368 -10
- devsquad-4.1.6/scripts/qa/__init__.py +25 -0
- devsquad-4.1.6/scripts/qa/deterministic_rule_engine.py +1576 -0
- devsquad-4.1.6/scripts/qa/models.py +71 -0
- devsquad-4.1.6/scripts/qa/taste_dials.py +231 -0
- devsquad-4.1.6/scripts/qa/uiux_analyzer.py +989 -0
- devsquad-4.1.6/scripts/qa/visual_regression.py +179 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/utils/_find_missing_hints.py +2 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/__init__.py +3 -3
- devsquad-4.1.6/skills/_version.py +13 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/dispatch/handler.py +0 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/intent/handler.py +1 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/registry.py +8 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/retrospective/handler.py +1 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/review/handler.py +0 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/security/handler.py +1 -2
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/test/handler.py +0 -1
- devsquad-4.1.6/tests/test_4pt_grid.py +155 -0
- devsquad-4.1.6/tests/test_adaptive_role_selector.py +387 -0
- devsquad-4.1.6/tests/test_adversarial_verify.py +416 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_agent_briefing.py +0 -17
- devsquad-4.1.6/tests/test_antipattern_bans.py +225 -0
- devsquad-4.1.6/tests/test_api_budget_status_endpoint.py +90 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_api_security.py +2 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_api_server_v362.py +40 -0
- devsquad-4.1.6/tests/test_async_coordinator.py +952 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_audit_logger.py +5 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_auth_phase5.py +2 -0
- devsquad-4.1.6/tests/test_autonomous.py +1551 -0
- devsquad-4.1.6/tests/test_benchmark_ponytail_smart.py +164 -0
- devsquad-4.1.6/tests/test_ccr_store.py +281 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_cli_deep_v362.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_cli_lifecycle.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_cli_phase5.py +2 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_context_compressor_test.py +5 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_core_test.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_dispatcher_test.py +5 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_llm_cache_test.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_llm_retry_test.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_memory_bridge_test.py +5 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_prompt_optimization_test.py +20 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_role_mapping_test.py +5 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_skillifier_test.py +4 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_upstream_test.py +5 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_warmup_manager_test.py +34 -7
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_confidence_score.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_content_cache.py +5 -0
- devsquad-4.1.6/tests/test_content_crusher.py +398 -0
- devsquad-4.1.6/tests/test_coordinator_smart_compression.py +331 -0
- devsquad-4.1.6/tests/test_dag_views.py +310 -0
- devsquad-4.1.6/tests/test_dashboard_ui_e2e.py +442 -0
- devsquad-4.1.6/tests/test_deep_shallow.py +380 -0
- devsquad-4.1.6/tests/test_deletion_test.py +357 -0
- devsquad-4.1.6/tests/test_deterministic_rule_engine.py +730 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_dispatch_audit.py +5 -0
- devsquad-4.1.6/tests/test_dispatch_performance.py +355 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_dispatch_rbac.py +5 -0
- devsquad-4.1.6/tests/test_dispatch_steps.py +847 -0
- devsquad-4.1.6/tests/test_dispatcher_mixins.py +733 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_dispatcher_phase5_core.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_docker_deployment.py +9 -13
- devsquad-4.1.6/tests/test_dual_layer_context.py +365 -0
- devsquad-4.1.6/tests/test_enhanced_worker.py +679 -0
- devsquad-4.1.6/tests/test_feedback_control_loop.py +446 -0
- devsquad-4.1.6/tests/test_flow_standalone.py +159 -0
- devsquad-4.1.6/tests/test_git_guardrails.py +283 -0
- devsquad-4.1.6/tests/test_glossary_loader.py +157 -0
- devsquad-4.1.6/tests/test_grilling_mode.py +591 -0
- devsquad-4.1.6/tests/test_handoff_redaction.py +240 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_input_validator_phase5.py +3 -0
- devsquad-4.1.6/tests/test_learned_rule_phase4.py +280 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_llm_auto_fallback.py +5 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_llm_cache_protocol.py +3 -0
- devsquad-4.1.6/tests/test_loop_engineering.py +346 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_mcp_server_v362.py +14 -3
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_multi_tenant.py +3 -0
- devsquad-4.1.6/tests/test_multi_tenant_isolation_e2e.py +441 -0
- devsquad-4.1.6/tests/test_no_op_test.py +303 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_null_providers.py +3 -0
- devsquad-4.1.6/tests/test_oklch_color.py +171 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_permission_guard_phase5.py +3 -0
- devsquad-4.1.6/tests/test_phase4_ghost_feature_defense.py +470 -0
- devsquad-4.1.6/tests/test_plugins_hot_loader.py +660 -0
- devsquad-4.1.6/tests/test_ponytail_rule_injector.py +267 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_production_features.py +2 -2
- devsquad-4.1.6/tests/test_prometheus_metrics.py +354 -0
- devsquad-4.1.6/tests/test_qa_uiux_visual_regression.py +577 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_rate_limit.py +4 -1
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_rbac_engine.py +3 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_rbac_fail_closed.py +5 -0
- devsquad-4.1.6/tests/test_red_capable_gate.py +284 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_redesign_auditor.py +3 -3
- devsquad-4.1.6/tests/test_redis_cache.py +510 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_retry_jitter_strategies.py +3 -0
- devsquad-4.1.6/tests/test_role_skill_loader.py +666 -0
- devsquad-4.1.6/tests/test_rule_collector.py +1052 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_rule_injection_security.py +5 -0
- devsquad-4.1.6/tests/test_secret_patterns.py +233 -0
- devsquad-4.1.6/tests/test_similar_task_recommender.py +251 -0
- devsquad-4.1.6/tests/test_skill_registry_coverage.py +426 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_skill_security.py +5 -0
- devsquad-4.1.6/tests/test_sleep_guard.py +224 -0
- devsquad-4.1.6/tests/test_task_completion_checker.py +360 -0
- devsquad-4.1.6/tests/test_taste_dials.py +511 -0
- devsquad-4.1.6/tests/test_tautological_seams.py +374 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_tech_debt_manager.py +136 -0
- devsquad-4.1.6/tests/test_token_budget_compressed_scratchpad.py +328 -0
- devsquad-4.1.6/tests/test_triage_label.py +201 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_ue_test_framework.py +74 -0
- devsquad-4.1.6/tests/test_usage_tracker_coverage.py +453 -0
- devsquad-4.1.6/tests/test_v411_security_hardening.py +770 -0
- devsquad-4.1.6/tests/test_vertical_slice.py +220 -0
- devsquad-4.1.6/tests/test_workflow_engine.py +100 -0
- devsquad-4.1.6/tests/test_workflow_engine_base.py +470 -0
- devsquad-4.1.6/tests/test_workflow_engine_lifecycle.py +397 -0
- devsquad-4.1.6/tests/test_workflow_engine_state.py +375 -0
- devsquad-4.1.6/tests/test_workflow_engine_transition.py +443 -0
- devsquad-4.1.6/tests/test_workflow_persistence_coverage.py +331 -0
- devsquad-3.9.2/scripts/cli_lifecycle.py +0 -209
- devsquad-3.9.2/scripts/collaboration/_version.py +0 -1
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_consensus_mixin.py +0 -144
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_feedback_mixin.py +0 -281
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_quality_mixin.py +0 -188
- devsquad-3.9.2/scripts/collaboration/dispatch_steps_services_mixin.py +0 -69
- devsquad-3.9.2/scripts/collaboration/dispatcher.py +0 -546
- devsquad-3.9.2/scripts/collaboration/dispatcher_async_mixin.py +0 -154
- devsquad-3.9.2/scripts/collaboration/dispatcher_audit_mixin.py +0 -68
- devsquad-3.9.2/scripts/collaboration/dispatcher_error_mixin.py +0 -68
- devsquad-3.9.2/scripts/collaboration/dispatcher_lifecycle_mixin.py +0 -54
- devsquad-3.9.2/scripts/collaboration/dispatcher_status_mixin.py +0 -118
- devsquad-3.9.2/scripts/collaboration/dispatcher_utils_mixin.py +0 -161
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_formatting_mixin.py +0 -297
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_substitution_mixin.py +0 -219
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_template_mixin.py +0 -152
- devsquad-3.9.2/scripts/collaboration/prompt_assembler_validation_mixin.py +0 -213
- devsquad-3.9.2/scripts/collaboration/redesign_auditor.py +0 -229
- devsquad-3.9.2/scripts/collaboration/ue_test_accessibility_mixin.py +0 -53
- devsquad-3.9.2/scripts/collaboration/ue_test_heuristic_mixin.py +0 -236
- devsquad-3.9.2/scripts/collaboration/ue_test_journey_mixin.py +0 -186
- devsquad-3.9.2/scripts/collaboration/ue_test_persona_mixin.py +0 -89
- devsquad-3.9.2/scripts/collaboration/workflow_engine_lifecycle_mixin.py +0 -282
- devsquad-3.9.2/scripts/collaboration/workflow_engine_persistence_mixin.py +0 -122
- devsquad-3.9.2/scripts/collaboration/workflow_engine_state_mixin.py +0 -156
- devsquad-3.9.2/scripts/collaboration/workflow_engine_transition_mixin.py +0 -145
- devsquad-3.9.2/scripts/dashboard/components.py +0 -366
- devsquad-3.9.2/tests/test_comprehensive_integration.py +0 -637
- devsquad-3.9.2/tests/test_extended_integration.py +0 -640
- devsquad-3.9.2/tests/test_final_integration.py +0 -661
- devsquad-3.9.2/tests/test_role_skill_loader.py +0 -272
- devsquad-3.9.2/tests/test_v38_integration.py +0 -391
- devsquad-3.9.2/tests/test_v39_integration.py +0 -702
- {devsquad-3.9.2 → devsquad-4.1.6}/LICENSE +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/devsquad.egg-info/dependency_links.txt +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/devsquad.egg-info/entry_points.txt +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/devsquad.egg-info/top_level.txt +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/models.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/rate_limit.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/routes/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/routes/lifecycle.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/routes/metrics.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/api/security.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/auth.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/benchmark_async_dispatch.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/cli/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/adaptive_role_selector.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/agent_briefing.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/ai_semantic_matcher.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/anchor_checker.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/async_llm_backend.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/audit_logger.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/cache_interface.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/code_graph_query.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/code_graph_storage.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/code_knowledge_graph.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/confidence_score.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/consensus_gate.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/constants.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_lifecycle.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_performance.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatch_rbac.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dispatcher_factory.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/dual_layer_context.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/event_bus.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/feature_usage_tracker.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/five_axis_consensus.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/input_validator.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/judge_agent.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/language_parsers.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/lifecycle_gate.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/lifecycle_templates.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_cache_async.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_cache_base.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_retry.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_retry_async.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/llm_retry_base.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_claw_source.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_forgetting.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_index.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/memory_types.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/models_dispatch.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/models_lifecycle.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/multi_host_adapter.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/multi_level_cache.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/null_providers.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/output_slicer.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/performance_fingerprint.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/prompt_dials.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/rbac_engine.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/redesign_checkers.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/role_matcher.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/secret_patterns.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/skill_registry.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/skill_storage.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/two_stage_review_gate.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/ue_test_framework.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/usage_tracker.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/user_friendly_error.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/warmup_manager.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/workflow_engine.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/collaboration/workflow_engine_base.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/lifecycle_views.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard/state.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/dashboard.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/generate_benchmark_report.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/history_manager.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/scripts/utils/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/setup.cfg +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/retrospective/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/skills/test/__init__.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_anchor_retrospective.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_anti_rationalization.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_async_modules.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_ci_feedback_adapter.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_code_knowledge_graph.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_claw_integration_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_dispatcher_ux_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_e2e_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_enhanced_e2e_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_mce_adapter_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_performance_monitor_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_permission_guard_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_test_quality_guard.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_collaboration_test_quality_guard_test.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_config_injection.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_consensus_gate.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_dashboard_split.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_data_backup.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_dependency_lock.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_five_axis_consensus.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_full_lifecycle_adapter.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_history_manager_v362.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_intent_workflow_mapper.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_judge_agent.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_lifecycle_protocol.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_memory_benchmarks.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_micro_task_planner.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_multi_host_adapter.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_node_type_separation.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_operation_classifier.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_output_slicer.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_performance_benchmarks.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_performance_fingerprint.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_performance_monitor_protocol.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_pipeline_step19_20.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_plan_c_unified_architecture.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_prompt_dials.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_protocols.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_quick_bonus.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_severity_router.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_standardized_role_template.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_start_script.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_step_node_types.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_suggested_next_steps.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_two_stage_review_gate.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_v39_e2e.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_v39_performance.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_verification_gate.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_version.py +0 -0
- {devsquad-3.9.2 → devsquad-4.1.6}/tests/test_yagni_checker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devsquad
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.1.6
|
|
4
4
|
Summary: Production-Ready Multi-Role AI Task Orchestrator
|
|
5
5
|
Author-email: DevSquad Team <devsquad@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -48,6 +48,8 @@ Requires-Dist: streamlit>=1.28.0; extra == "visualization"
|
|
|
48
48
|
Requires-Dist: jupyter>=1.0; extra == "visualization"
|
|
49
49
|
Provides-Extra: alerts
|
|
50
50
|
Requires-Dist: slack-sdk>=3.21.0; extra == "alerts"
|
|
51
|
+
Provides-Extra: qa
|
|
52
|
+
Requires-Dist: Pillow>=10.0.0; extra == "qa"
|
|
51
53
|
Provides-Extra: dev
|
|
52
54
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
53
55
|
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
@@ -56,6 +58,12 @@ Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
|
56
58
|
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
57
59
|
Requires-Dist: black>=23.0; extra == "dev"
|
|
58
60
|
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
61
|
+
Requires-Dist: httpx2>=2.5.0; extra == "dev"
|
|
62
|
+
Requires-Dist: streamlit>=1.28.0; extra == "dev"
|
|
63
|
+
Requires-Dist: Pillow>=10.0.0; extra == "dev"
|
|
64
|
+
Requires-Dist: fakeredis>=2.30; extra == "dev"
|
|
65
|
+
Requires-Dist: redis>=5.0; extra == "dev"
|
|
66
|
+
Requires-Dist: hypothesis>=6.0; extra == "dev"
|
|
59
67
|
Provides-Extra: all
|
|
60
68
|
Requires-Dist: openai>=1.0; extra == "all"
|
|
61
69
|
Requires-Dist: anthropic>=0.18; extra == "all"
|
|
@@ -69,6 +77,7 @@ Requires-Dist: pydantic>=2.0; extra == "all"
|
|
|
69
77
|
Requires-Dist: streamlit>=1.28.0; extra == "all"
|
|
70
78
|
Requires-Dist: jupyter>=1.0; extra == "all"
|
|
71
79
|
Requires-Dist: slack-sdk>=3.21.0; extra == "all"
|
|
80
|
+
Requires-Dist: Pillow>=10.0.0; extra == "all"
|
|
72
81
|
Requires-Dist: pytest>=7.0; extra == "all"
|
|
73
82
|
Requires-Dist: pytest-asyncio>=0.21; extra == "all"
|
|
74
83
|
Requires-Dist: pytest-cov>=4.1; extra == "all"
|
|
@@ -76,6 +85,10 @@ Requires-Dist: ruff>=0.4.0; extra == "all"
|
|
|
76
85
|
Requires-Dist: mypy>=1.0; extra == "all"
|
|
77
86
|
Requires-Dist: black>=23.0; extra == "all"
|
|
78
87
|
Requires-Dist: flake8>=6.0; extra == "all"
|
|
88
|
+
Requires-Dist: httpx2>=2.5.0; extra == "all"
|
|
89
|
+
Requires-Dist: fakeredis>=2.30; extra == "all"
|
|
90
|
+
Requires-Dist: redis>=5.0; extra == "all"
|
|
91
|
+
Requires-Dist: hypothesis>=6.0; extra == "all"
|
|
79
92
|
Dynamic: license-file
|
|
80
93
|
|
|
81
94
|
# DevSquad — Multi-Role AI Task Orchestrator
|
|
@@ -83,14 +96,14 @@ Dynamic: license-file
|
|
|
83
96
|
<p align="center">
|
|
84
97
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
85
98
|
<br>
|
|
86
|
-
<em>One task → Multi-role AI collaboration → One conclusion |
|
|
99
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.1.6 Enterprise-Ready (RBAC/Audit/Multi-Tenancy in Preview)</em>
|
|
87
100
|
</p>
|
|
88
101
|
|
|
89
102
|
<p align="center">
|
|
90
103
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
91
104
|
<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/
|
|
105
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-5250%2B%20passing-brightgreen" />
|
|
106
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.1.6-success" />
|
|
94
107
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
95
108
|
<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
109
|
<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,16 +157,24 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
144
157
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
145
158
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
146
159
|
|
|
147
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
160
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
|
|
148
161
|
|
|
149
162
|
---
|
|
150
163
|
|
|
151
164
|
<details>
|
|
152
165
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
153
166
|
|
|
154
|
-
## 🚀
|
|
167
|
+
## 🚀 V4.1.0: Loop Engineering + UI/UX 巡检 + Adversarial 验证 + DAG 可视化 + Autonomous + 插件热加载
|
|
155
168
|
|
|
156
|
-
**DevSquad
|
|
169
|
+
**DevSquad V4.1.0** 借鉴上游 TraeMultiAgentSkill v2.7 理念,新增 6 个特性(P1-P3),全面接入 dispatch pipeline,无幽灵功能:
|
|
170
|
+
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
171
|
+
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
172
|
+
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
173
|
+
- **P2-2 DAG 可视化**: Mermaid / JSON / DOT 三种格式依赖图可视化
|
|
174
|
+
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
175
|
+
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
176
|
+
|
|
177
|
+
5250+ tests passing。
|
|
157
178
|
|
|
158
179
|
---
|
|
159
180
|
|
|
@@ -223,7 +244,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
223
244
|
./scripts/start.sh --help
|
|
224
245
|
```
|
|
225
246
|
|
|
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`).
|
|
247
|
+
`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`). V4.1.0 adds Loop Engineering, UI/UX 巡检, Adversarial 验证, DAG 可视化, Autonomous, and 插件热加载.
|
|
227
248
|
|
|
228
249
|
---
|
|
229
250
|
|
|
@@ -245,7 +266,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
245
266
|
|
|
246
267
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
247
268
|
|
|
248
|
-
DevSquad's
|
|
269
|
+
DevSquad's 185+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
249
270
|
|
|
250
271
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
251
272
|
|
|
@@ -537,11 +558,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
537
558
|
```bash
|
|
538
559
|
# Check version
|
|
539
560
|
devsquad --version
|
|
540
|
-
# Expected: devsquad
|
|
561
|
+
# Expected: devsquad 4.1.0
|
|
541
562
|
|
|
542
563
|
# Run tests
|
|
543
564
|
pytest tests/ -v --tb=short
|
|
544
|
-
# Expected:
|
|
565
|
+
# Expected: 5250+ passed
|
|
545
566
|
```
|
|
546
567
|
|
|
547
568
|
---
|
|
@@ -592,14 +613,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
592
613
|
|
|
593
614
|
### Quick Smoke Test (< 30 seconds)
|
|
594
615
|
```bash
|
|
595
|
-
python3 scripts/cli.py --version # Expected: DevSquad
|
|
616
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.1.0
|
|
596
617
|
python3 scripts/cli.py status # Expected: System ready
|
|
597
618
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
598
619
|
```
|
|
599
620
|
|
|
600
621
|
### Full Test Suite
|
|
601
622
|
```bash
|
|
602
|
-
# Run all tests (
|
|
623
|
+
# Run all tests (5250+ tests passing)
|
|
603
624
|
python3 -m pytest tests/ -q --tb=line
|
|
604
625
|
|
|
605
626
|
# With coverage report
|
|
@@ -616,7 +637,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
616
637
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
617
638
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
618
639
|
|
|
619
|
-
**Total:
|
|
640
|
+
**Total: 5250+ CI tests / 66 e2e (5355 collected)**
|
|
620
641
|
|
|
621
642
|
Run by priority:
|
|
622
643
|
```bash
|
|
@@ -637,7 +658,7 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
637
658
|
| Document | Description | Language |
|
|
638
659
|
|----------|-------------|----------|
|
|
639
660
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
640
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
661
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
|
|
641
662
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
642
663
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
643
664
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
@@ -680,6 +701,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
680
701
|
|
|
681
702
|
---
|
|
682
703
|
|
|
683
|
-
*Last updated: 2026-
|
|
704
|
+
*Last updated: 2026-07-20 | Version: V4.1.6*
|
|
684
705
|
|
|
685
706
|
</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 |
|
|
6
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.1.6 Enterprise-Ready (RBAC/Audit/Multi-Tenancy in Preview)</em>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
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/
|
|
12
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-5250%2B%20passing-brightgreen" />
|
|
13
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.1.6-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,16 +64,24 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
64
64
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
65
65
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
66
66
|
|
|
67
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
67
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
|
|
68
68
|
|
|
69
69
|
---
|
|
70
70
|
|
|
71
71
|
<details>
|
|
72
72
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
73
73
|
|
|
74
|
-
## 🚀
|
|
74
|
+
## 🚀 V4.1.0: Loop Engineering + UI/UX 巡检 + Adversarial 验证 + DAG 可视化 + Autonomous + 插件热加载
|
|
75
75
|
|
|
76
|
-
**DevSquad
|
|
76
|
+
**DevSquad V4.1.0** 借鉴上游 TraeMultiAgentSkill v2.7 理念,新增 6 个特性(P1-P3),全面接入 dispatch pipeline,无幽灵功能:
|
|
77
|
+
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
78
|
+
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
79
|
+
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
80
|
+
- **P2-2 DAG 可视化**: Mermaid / JSON / DOT 三种格式依赖图可视化
|
|
81
|
+
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
82
|
+
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
83
|
+
|
|
84
|
+
5250+ tests passing。
|
|
77
85
|
|
|
78
86
|
---
|
|
79
87
|
|
|
@@ -143,7 +151,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
143
151
|
./scripts/start.sh --help
|
|
144
152
|
```
|
|
145
153
|
|
|
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`).
|
|
154
|
+
`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`). V4.1.0 adds Loop Engineering, UI/UX 巡检, Adversarial 验证, DAG 可视化, Autonomous, and 插件热加载.
|
|
147
155
|
|
|
148
156
|
---
|
|
149
157
|
|
|
@@ -165,7 +173,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
165
173
|
|
|
166
174
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
167
175
|
|
|
168
|
-
DevSquad's
|
|
176
|
+
DevSquad's 185+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
169
177
|
|
|
170
178
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
171
179
|
|
|
@@ -457,11 +465,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
457
465
|
```bash
|
|
458
466
|
# Check version
|
|
459
467
|
devsquad --version
|
|
460
|
-
# Expected: devsquad
|
|
468
|
+
# Expected: devsquad 4.1.0
|
|
461
469
|
|
|
462
470
|
# Run tests
|
|
463
471
|
pytest tests/ -v --tb=short
|
|
464
|
-
# Expected:
|
|
472
|
+
# Expected: 5250+ passed
|
|
465
473
|
```
|
|
466
474
|
|
|
467
475
|
---
|
|
@@ -512,14 +520,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
512
520
|
|
|
513
521
|
### Quick Smoke Test (< 30 seconds)
|
|
514
522
|
```bash
|
|
515
|
-
python3 scripts/cli.py --version # Expected: DevSquad
|
|
523
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.1.0
|
|
516
524
|
python3 scripts/cli.py status # Expected: System ready
|
|
517
525
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
518
526
|
```
|
|
519
527
|
|
|
520
528
|
### Full Test Suite
|
|
521
529
|
```bash
|
|
522
|
-
# Run all tests (
|
|
530
|
+
# Run all tests (5250+ tests passing)
|
|
523
531
|
python3 -m pytest tests/ -q --tb=line
|
|
524
532
|
|
|
525
533
|
# With coverage report
|
|
@@ -536,7 +544,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
536
544
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
537
545
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
538
546
|
|
|
539
|
-
**Total:
|
|
547
|
+
**Total: 5250+ CI tests / 66 e2e (5355 collected)**
|
|
540
548
|
|
|
541
549
|
Run by priority:
|
|
542
550
|
```bash
|
|
@@ -557,7 +565,7 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
557
565
|
| Document | Description | Language |
|
|
558
566
|
|----------|-------------|----------|
|
|
559
567
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
560
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
568
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
|
|
561
569
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
562
570
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
563
571
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
@@ -600,6 +608,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
600
608
|
|
|
601
609
|
---
|
|
602
610
|
|
|
603
|
-
*Last updated: 2026-
|
|
611
|
+
*Last updated: 2026-07-20 | Version: V4.1.6*
|
|
604
612
|
|
|
605
613
|
</details>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devsquad
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.1.6
|
|
4
4
|
Summary: Production-Ready Multi-Role AI Task Orchestrator
|
|
5
5
|
Author-email: DevSquad Team <devsquad@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -48,6 +48,8 @@ Requires-Dist: streamlit>=1.28.0; extra == "visualization"
|
|
|
48
48
|
Requires-Dist: jupyter>=1.0; extra == "visualization"
|
|
49
49
|
Provides-Extra: alerts
|
|
50
50
|
Requires-Dist: slack-sdk>=3.21.0; extra == "alerts"
|
|
51
|
+
Provides-Extra: qa
|
|
52
|
+
Requires-Dist: Pillow>=10.0.0; extra == "qa"
|
|
51
53
|
Provides-Extra: dev
|
|
52
54
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
53
55
|
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
@@ -56,6 +58,12 @@ Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
|
56
58
|
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
57
59
|
Requires-Dist: black>=23.0; extra == "dev"
|
|
58
60
|
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
61
|
+
Requires-Dist: httpx2>=2.5.0; extra == "dev"
|
|
62
|
+
Requires-Dist: streamlit>=1.28.0; extra == "dev"
|
|
63
|
+
Requires-Dist: Pillow>=10.0.0; extra == "dev"
|
|
64
|
+
Requires-Dist: fakeredis>=2.30; extra == "dev"
|
|
65
|
+
Requires-Dist: redis>=5.0; extra == "dev"
|
|
66
|
+
Requires-Dist: hypothesis>=6.0; extra == "dev"
|
|
59
67
|
Provides-Extra: all
|
|
60
68
|
Requires-Dist: openai>=1.0; extra == "all"
|
|
61
69
|
Requires-Dist: anthropic>=0.18; extra == "all"
|
|
@@ -69,6 +77,7 @@ Requires-Dist: pydantic>=2.0; extra == "all"
|
|
|
69
77
|
Requires-Dist: streamlit>=1.28.0; extra == "all"
|
|
70
78
|
Requires-Dist: jupyter>=1.0; extra == "all"
|
|
71
79
|
Requires-Dist: slack-sdk>=3.21.0; extra == "all"
|
|
80
|
+
Requires-Dist: Pillow>=10.0.0; extra == "all"
|
|
72
81
|
Requires-Dist: pytest>=7.0; extra == "all"
|
|
73
82
|
Requires-Dist: pytest-asyncio>=0.21; extra == "all"
|
|
74
83
|
Requires-Dist: pytest-cov>=4.1; extra == "all"
|
|
@@ -76,6 +85,10 @@ Requires-Dist: ruff>=0.4.0; extra == "all"
|
|
|
76
85
|
Requires-Dist: mypy>=1.0; extra == "all"
|
|
77
86
|
Requires-Dist: black>=23.0; extra == "all"
|
|
78
87
|
Requires-Dist: flake8>=6.0; extra == "all"
|
|
88
|
+
Requires-Dist: httpx2>=2.5.0; extra == "all"
|
|
89
|
+
Requires-Dist: fakeredis>=2.30; extra == "all"
|
|
90
|
+
Requires-Dist: redis>=5.0; extra == "all"
|
|
91
|
+
Requires-Dist: hypothesis>=6.0; extra == "all"
|
|
79
92
|
Dynamic: license-file
|
|
80
93
|
|
|
81
94
|
# DevSquad — Multi-Role AI Task Orchestrator
|
|
@@ -83,14 +96,14 @@ Dynamic: license-file
|
|
|
83
96
|
<p align="center">
|
|
84
97
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
85
98
|
<br>
|
|
86
|
-
<em>One task → Multi-role AI collaboration → One conclusion |
|
|
99
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.1.6 Enterprise-Ready (RBAC/Audit/Multi-Tenancy in Preview)</em>
|
|
87
100
|
</p>
|
|
88
101
|
|
|
89
102
|
<p align="center">
|
|
90
103
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
91
104
|
<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/
|
|
105
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-5250%2B%20passing-brightgreen" />
|
|
106
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.1.6-success" />
|
|
94
107
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
95
108
|
<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
109
|
<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,16 +157,24 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
144
157
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
145
158
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
146
159
|
|
|
147
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
160
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
|
|
148
161
|
|
|
149
162
|
---
|
|
150
163
|
|
|
151
164
|
<details>
|
|
152
165
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
153
166
|
|
|
154
|
-
## 🚀
|
|
167
|
+
## 🚀 V4.1.0: Loop Engineering + UI/UX 巡检 + Adversarial 验证 + DAG 可视化 + Autonomous + 插件热加载
|
|
155
168
|
|
|
156
|
-
**DevSquad
|
|
169
|
+
**DevSquad V4.1.0** 借鉴上游 TraeMultiAgentSkill v2.7 理念,新增 6 个特性(P1-P3),全面接入 dispatch pipeline,无幽灵功能:
|
|
170
|
+
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
171
|
+
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
172
|
+
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
173
|
+
- **P2-2 DAG 可视化**: Mermaid / JSON / DOT 三种格式依赖图可视化
|
|
174
|
+
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
175
|
+
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
176
|
+
|
|
177
|
+
5250+ tests passing。
|
|
157
178
|
|
|
158
179
|
---
|
|
159
180
|
|
|
@@ -223,7 +244,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
223
244
|
./scripts/start.sh --help
|
|
224
245
|
```
|
|
225
246
|
|
|
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`).
|
|
247
|
+
`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`). V4.1.0 adds Loop Engineering, UI/UX 巡检, Adversarial 验证, DAG 可视化, Autonomous, and 插件热加载.
|
|
227
248
|
|
|
228
249
|
---
|
|
229
250
|
|
|
@@ -245,7 +266,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
245
266
|
|
|
246
267
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
247
268
|
|
|
248
|
-
DevSquad's
|
|
269
|
+
DevSquad's 185+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
249
270
|
|
|
250
271
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
251
272
|
|
|
@@ -537,11 +558,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
537
558
|
```bash
|
|
538
559
|
# Check version
|
|
539
560
|
devsquad --version
|
|
540
|
-
# Expected: devsquad
|
|
561
|
+
# Expected: devsquad 4.1.0
|
|
541
562
|
|
|
542
563
|
# Run tests
|
|
543
564
|
pytest tests/ -v --tb=short
|
|
544
|
-
# Expected:
|
|
565
|
+
# Expected: 5250+ passed
|
|
545
566
|
```
|
|
546
567
|
|
|
547
568
|
---
|
|
@@ -592,14 +613,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
592
613
|
|
|
593
614
|
### Quick Smoke Test (< 30 seconds)
|
|
594
615
|
```bash
|
|
595
|
-
python3 scripts/cli.py --version # Expected: DevSquad
|
|
616
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.1.0
|
|
596
617
|
python3 scripts/cli.py status # Expected: System ready
|
|
597
618
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
598
619
|
```
|
|
599
620
|
|
|
600
621
|
### Full Test Suite
|
|
601
622
|
```bash
|
|
602
|
-
# Run all tests (
|
|
623
|
+
# Run all tests (5250+ tests passing)
|
|
603
624
|
python3 -m pytest tests/ -q --tb=line
|
|
604
625
|
|
|
605
626
|
# With coverage report
|
|
@@ -616,7 +637,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
616
637
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
617
638
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
618
639
|
|
|
619
|
-
**Total:
|
|
640
|
+
**Total: 5250+ CI tests / 66 e2e (5355 collected)**
|
|
620
641
|
|
|
621
642
|
Run by priority:
|
|
622
643
|
```bash
|
|
@@ -637,7 +658,7 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
637
658
|
| Document | Description | Language |
|
|
638
659
|
|----------|-------------|----------|
|
|
639
660
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
640
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
661
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
|
|
641
662
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
642
663
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
643
664
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
@@ -680,6 +701,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
680
701
|
|
|
681
702
|
---
|
|
682
703
|
|
|
683
|
-
*Last updated: 2026-
|
|
704
|
+
*Last updated: 2026-07-20 | Version: V4.1.6*
|
|
684
705
|
|
|
685
706
|
</details>
|