devsquad 4.0.0__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-4.0.0 → devsquad-4.1.6}/PKG-INFO +25 -17
- {devsquad-4.0.0 → devsquad-4.1.6}/README.md +16 -16
- {devsquad-4.0.0 → devsquad-4.1.6}/devsquad.egg-info/PKG-INFO +25 -17
- {devsquad-4.0.0 → devsquad-4.1.6}/devsquad.egg-info/SOURCES.txt +51 -9
- {devsquad-4.0.0 → devsquad-4.1.6}/devsquad.egg-info/requires.txt +8 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/pyproject.toml +42 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/routes/metrics_gates.py +3 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api_server.py +45 -17
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/benchmark_real_llm.py +26 -12
- devsquad-4.1.6/scripts/check_dependency_sync.py +95 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/check_version_consistency.py +15 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/cli/cli_visual.py +2 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/cli.py +88 -50
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/cli_dispatch.py +91 -48
- devsquad-4.1.6/scripts/cli_lifecycle.py +265 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/cli_utils.py +30 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/__init__.py +2 -0
- devsquad-4.1.6/scripts/collaboration/_version.py +1 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/anti_rationalization.py +7 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/async_adapter.py +3 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/async_coordinator.py +63 -94
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/loop_controller.py +4 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/run_state.py +2 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/batch_scheduler.py +2 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/checkpoint_manager.py +170 -11
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/ci_feedback_adapter.py +3 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/code_map_generator.py +52 -31
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/concern_pack_loader.py +2 -2
- devsquad-4.1.6/scripts/collaboration/config_manager.py +555 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/content_cache.py +4 -4
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/context_compressor.py +25 -10
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/coordinator.py +7 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_audit.py +191 -11
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_hooks.py +12 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_models.py +190 -121
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_pre_steps.py +74 -41
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_result_assembler.py +3 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_services.py +18 -9
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_steps.py +94 -5
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_steps_base.py +3 -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.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatcher.py +223 -104
- 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-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/scripts/collaboration/enhanced_worker.py +86 -62
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/enterprise_feature.py +34 -23
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/execution_guard.py +110 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/feedback_control_loop.py +84 -57
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/intent_workflow_mapper.py +53 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/lifecycle_protocol.py +93 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/lifecycle_shortcut_adapter.py +7 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/lifecycle_shortcut_helpers.py +11 -8
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_backend.py +17 -4
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_cache.py +135 -98
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/kernel.py +6 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/models.py +1 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/mce_adapter.py +1 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_bridge.py +3 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_query.py +6 -6
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_serializer.py +93 -69
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/micro_task_planner.py +69 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/multi_tenant.py +13 -19
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/operation_classifier.py +202 -0
- devsquad-4.1.6/scripts/collaboration/output_validator.py +308 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/performance_monitor.py +12 -6
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/permission_guard.py +85 -17
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/prometheus_metrics.py +16 -11
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/prompt_assembler.py +79 -1
- 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-4.0.0 → devsquad-4.1.6}/scripts/collaboration/protocols.py +8 -3
- devsquad-4.1.6/scripts/collaboration/redesign_auditor.py +472 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/redis_cache.py +84 -42
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/report_formatter.py +139 -129
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/retrospective.py +1 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/review_checkers.py +64 -50
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/role_skill_loader.py +34 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/rule_collector.py +349 -4
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/severity_router.py +91 -45
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/similar_task_recommender.py +3 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/skill_extractor.py +1 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/skillifier.py +81 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/standardized_role_template.py +219 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/task_completion_checker.py +4 -4
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/tech_debt_manager.py +116 -20
- {devsquad-4.0.0 → 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-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/scripts/collaboration/unified_gate_engine.py +103 -6
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/verification_gate.py +166 -3
- {devsquad-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/scripts/collaboration/yagni_checker.py +173 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/auth_views.py +2 -2
- devsquad-4.1.6/scripts/dashboard/components.py +1203 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/dag_views.py +172 -5
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/dispatch_views.py +164 -8
- devsquad-4.1.6/scripts/dashboard/i18n.py +155 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/metrics_views.py +111 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/mcp_server.py +368 -10
- devsquad-4.1.6/scripts/qa/deterministic_rule_engine.py +1576 -0
- devsquad-4.1.6/scripts/qa/taste_dials.py +231 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/qa/uiux_analyzer.py +461 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/qa/visual_regression.py +2 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/utils/_find_missing_hints.py +2 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/__init__.py +3 -3
- devsquad-4.1.6/skills/_version.py +13 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/dispatch/handler.py +0 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/intent/handler.py +1 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/registry.py +8 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/retrospective/handler.py +1 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/review/handler.py +0 -2
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/security/handler.py +1 -2
- {devsquad-4.0.0 → 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.0.0 → devsquad-4.1.6}/tests/test_agent_briefing.py +0 -17
- devsquad-4.1.6/tests/test_antipattern_bans.py +225 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_api_budget_status_endpoint.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_api_security.py +2 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_api_server_v362.py +40 -0
- devsquad-4.1.6/tests/test_async_coordinator.py +952 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_audit_logger.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_auth_phase5.py +2 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_autonomous.py +92 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_cli_deep_v362.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_cli_lifecycle.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_cli_phase5.py +2 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_context_compressor_test.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_core_test.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_dispatcher_test.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_llm_cache_test.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_llm_retry_test.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_memory_bridge_test.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_prompt_optimization_test.py +18 -1
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_role_mapping_test.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_skillifier_test.py +4 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_upstream_test.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_warmup_manager_test.py +34 -7
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_confidence_score.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_content_cache.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_dashboard_ui_e2e.py +82 -7
- 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-4.0.0 → devsquad-4.1.6}/tests/test_dispatch_audit.py +5 -0
- devsquad-4.1.6/tests/test_dispatch_performance.py +355 -0
- {devsquad-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/tests/test_dispatcher_phase5_core.py +3 -0
- {devsquad-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/tests/test_input_validator_phase5.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_llm_auto_fallback.py +5 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_llm_cache_protocol.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_mcp_server_v362.py +14 -3
- {devsquad-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/tests/test_null_providers.py +3 -0
- devsquad-4.1.6/tests/test_oklch_color.py +171 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_permission_guard_phase5.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_production_features.py +2 -2
- devsquad-4.1.6/tests/test_prometheus_metrics.py +354 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_qa_uiux_visual_regression.py +6 -3
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_rate_limit.py +3 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_rbac_engine.py +3 -0
- {devsquad-4.0.0 → 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-4.0.0 → devsquad-4.1.6}/tests/test_redesign_auditor.py +3 -3
- devsquad-4.1.6/tests/test_redis_cache.py +510 -0
- {devsquad-4.0.0 → 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-4.0.0 → 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.0.0 → devsquad-4.1.6}/tests/test_skill_security.py +5 -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-4.0.0 → devsquad-4.1.6}/tests/test_tech_debt_manager.py +136 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_token_budget_compressed_scratchpad.py +5 -0
- devsquad-4.1.6/tests/test_triage_label.py +201 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_ue_test_framework.py +74 -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.0.0 → devsquad-4.1.6}/tests/test_workflow_persistence_coverage.py +4 -0
- devsquad-4.0.0/scripts/cli_lifecycle.py +0 -209
- devsquad-4.0.0/scripts/collaboration/_version.py +0 -1
- devsquad-4.0.0/scripts/collaboration/dispatch_steps_consensus_mixin.py +0 -144
- devsquad-4.0.0/scripts/collaboration/dispatch_steps_feedback_mixin.py +0 -281
- devsquad-4.0.0/scripts/collaboration/dispatch_steps_quality_mixin.py +0 -228
- devsquad-4.0.0/scripts/collaboration/dispatch_steps_services_mixin.py +0 -69
- devsquad-4.0.0/scripts/collaboration/dispatcher_async_mixin.py +0 -154
- devsquad-4.0.0/scripts/collaboration/dispatcher_audit_mixin.py +0 -68
- devsquad-4.0.0/scripts/collaboration/dispatcher_error_mixin.py +0 -68
- devsquad-4.0.0/scripts/collaboration/dispatcher_lifecycle_mixin.py +0 -54
- devsquad-4.0.0/scripts/collaboration/dispatcher_status_mixin.py +0 -118
- devsquad-4.0.0/scripts/collaboration/dispatcher_utils_mixin.py +0 -161
- devsquad-4.0.0/scripts/collaboration/prompt_assembler_formatting_mixin.py +0 -329
- devsquad-4.0.0/scripts/collaboration/prompt_assembler_substitution_mixin.py +0 -219
- devsquad-4.0.0/scripts/collaboration/prompt_assembler_template_mixin.py +0 -152
- devsquad-4.0.0/scripts/collaboration/prompt_assembler_validation_mixin.py +0 -213
- devsquad-4.0.0/scripts/collaboration/redesign_auditor.py +0 -229
- devsquad-4.0.0/scripts/collaboration/ue_test_accessibility_mixin.py +0 -53
- devsquad-4.0.0/scripts/collaboration/ue_test_heuristic_mixin.py +0 -236
- devsquad-4.0.0/scripts/collaboration/ue_test_journey_mixin.py +0 -186
- devsquad-4.0.0/scripts/collaboration/ue_test_persona_mixin.py +0 -89
- devsquad-4.0.0/scripts/collaboration/workflow_engine_lifecycle_mixin.py +0 -282
- devsquad-4.0.0/scripts/collaboration/workflow_engine_persistence_mixin.py +0 -122
- devsquad-4.0.0/scripts/collaboration/workflow_engine_state_mixin.py +0 -156
- devsquad-4.0.0/scripts/collaboration/workflow_engine_transition_mixin.py +0 -145
- devsquad-4.0.0/scripts/dashboard/components.py +0 -368
- devsquad-4.0.0/tests/test_ccr_marker_integration.py +0 -203
- devsquad-4.0.0/tests/test_comprehensive_integration.py +0 -637
- devsquad-4.0.0/tests/test_coordinator_budget_ccr_integration.py +0 -328
- devsquad-4.0.0/tests/test_extended_integration.py +0 -640
- devsquad-4.0.0/tests/test_final_integration.py +0 -661
- devsquad-4.0.0/tests/test_qa_integration.py +0 -111
- devsquad-4.0.0/tests/test_role_skill_loader.py +0 -272
- devsquad-4.0.0/tests/test_v38_integration.py +0 -391
- devsquad-4.0.0/tests/test_v39_integration.py +0 -702
- devsquad-4.0.0/tests/test_v4_integration.py +0 -177
- {devsquad-4.0.0 → devsquad-4.1.6}/LICENSE +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/devsquad.egg-info/dependency_links.txt +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/devsquad.egg-info/entry_points.txt +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/devsquad.egg-info/top_level.txt +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/models.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/rate_limit.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/routes/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/routes/dispatch.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/routes/lifecycle.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/routes/metrics.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/api/security.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/auth.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/benchmark_async_dispatch.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/benchmark_ponytail_smart.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/cli/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/adaptive_role_selector.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/adversarial_verify.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/agent_briefing.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/ai_semantic_matcher.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/anchor_checker.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/async_llm_backend.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/audit_logger.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/git_driver.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/notes_memory.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/sleep_guard.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/autonomous/smart_confirmation.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/cache_interface.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/ccr_store.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/code_graph_query.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/code_graph_storage.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/code_knowledge_graph.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/confidence_score.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/consensus.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/consensus_gate.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/constants.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/content_crusher.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_component_factory.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_lifecycle.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_performance.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatch_rbac.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dispatcher_factory.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/dual_layer_context.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/event_bus.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/feature_usage_tracker.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/five_axis_consensus.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/input_validator.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/judge_agent.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/language_parsers.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/learned_rule_store.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/lifecycle_gate.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/lifecycle_templates.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_cache_async.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_cache_base.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_retry.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_retry_async.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/llm_retry_base.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/discovery_probe.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/handoff_adapter.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/independent_evaluator.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/loop_scheduler.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/protocols.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/loop_engineering/unified_memory.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_claw_source.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_forgetting.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_index.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/memory_types.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/models.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/models_base.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/models_dispatch.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/models_lifecycle.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/multi_host_adapter.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/multi_level_cache.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/null_providers.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/output_slicer.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/performance_fingerprint.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/plugins/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/plugins/hot_loader.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/ponytail_rule_injector.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/prompt_assembler_base.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/prompt_dials.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/rbac_engine.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/redesign_checkers.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/role_matcher.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/scratchpad.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/secret_patterns.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/skill_registry.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/skill_storage.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/two_stage_review_gate.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/ue_test_framework.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/usage_tracker.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/user_friendly_error.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/warmup_manager.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/workflow_engine.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/collaboration/workflow_engine_base.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/app.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/lifecycle_views.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard/state.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/dashboard.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/generate_benchmark_report.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/history_manager.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/qa/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/qa/models.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/scripts/utils/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/setup.cfg +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/retrospective/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/skills/test/__init__.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_adversarial_verify.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_anchor_retrospective.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_anti_rationalization.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_async_modules.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_benchmark_ponytail_smart.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_ccr_store.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_ci_feedback_adapter.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_code_knowledge_graph.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_claw_integration_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_dispatcher_ux_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_e2e_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_enhanced_e2e_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_mce_adapter_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_performance_monitor_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_permission_guard_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_test_quality_guard.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_collaboration_test_quality_guard_test.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_config_injection.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_consensus_gate.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_content_crusher.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_coordinator_smart_compression.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_dag_views.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_dashboard_split.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_data_backup.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_dependency_lock.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_five_axis_consensus.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_full_lifecycle_adapter.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_history_manager_v362.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_intent_workflow_mapper.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_judge_agent.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_learned_rule_phase4.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_lifecycle_protocol.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_loop_engineering.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_memory_benchmarks.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_micro_task_planner.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_multi_host_adapter.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_node_type_separation.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_operation_classifier.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_output_slicer.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_performance_benchmarks.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_performance_fingerprint.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_performance_monitor_protocol.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_phase4_ghost_feature_defense.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_pipeline_step19_20.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_plan_c_unified_architecture.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_plugins_hot_loader.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_ponytail_rule_injector.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_prompt_dials.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_protocols.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_quick_bonus.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_severity_router.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_skill_registry_coverage.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_sleep_guard.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_standardized_role_template.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_start_script.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_step_node_types.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_suggested_next_steps.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_two_stage_review_gate.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_usage_tracker_coverage.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_v39_e2e.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_v39_performance.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_verification_gate.py +0 -0
- {devsquad-4.0.0 → devsquad-4.1.6}/tests/test_version.py +0 -0
- {devsquad-4.0.0 → 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: 4.
|
|
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
|
|
@@ -59,6 +59,11 @@ Requires-Dist: mypy>=1.0; extra == "dev"
|
|
|
59
59
|
Requires-Dist: black>=23.0; extra == "dev"
|
|
60
60
|
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
61
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"
|
|
62
67
|
Provides-Extra: all
|
|
63
68
|
Requires-Dist: openai>=1.0; extra == "all"
|
|
64
69
|
Requires-Dist: anthropic>=0.18; extra == "all"
|
|
@@ -81,6 +86,9 @@ Requires-Dist: mypy>=1.0; extra == "all"
|
|
|
81
86
|
Requires-Dist: black>=23.0; extra == "all"
|
|
82
87
|
Requires-Dist: flake8>=6.0; extra == "all"
|
|
83
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"
|
|
84
92
|
Dynamic: license-file
|
|
85
93
|
|
|
86
94
|
# DevSquad — Multi-Role AI Task Orchestrator
|
|
@@ -88,14 +96,14 @@ Dynamic: license-file
|
|
|
88
96
|
<p align="center">
|
|
89
97
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
90
98
|
<br>
|
|
91
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V4.
|
|
99
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.1.6 Enterprise-Ready (RBAC/Audit/Multi-Tenancy in Preview)</em>
|
|
92
100
|
</p>
|
|
93
101
|
|
|
94
102
|
<p align="center">
|
|
95
103
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
96
104
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
97
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
98
|
-
<img alt="Version" src="https://img.shields.io/badge/V4.
|
|
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" />
|
|
99
107
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
100
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" />
|
|
101
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" />
|
|
@@ -149,16 +157,16 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
149
157
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
150
158
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
151
159
|
|
|
152
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
160
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
|
|
153
161
|
|
|
154
162
|
---
|
|
155
163
|
|
|
156
164
|
<details>
|
|
157
165
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
158
166
|
|
|
159
|
-
## 🚀 V4.
|
|
167
|
+
## 🚀 V4.1.0: Loop Engineering + UI/UX 巡检 + Adversarial 验证 + DAG 可视化 + Autonomous + 插件热加载
|
|
160
168
|
|
|
161
|
-
**DevSquad V4.
|
|
169
|
+
**DevSquad V4.1.0** 借鉴上游 TraeMultiAgentSkill v2.7 理念,新增 6 个特性(P1-P3),全面接入 dispatch pipeline,无幽灵功能:
|
|
162
170
|
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
163
171
|
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
164
172
|
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
@@ -166,7 +174,7 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
166
174
|
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
167
175
|
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
168
176
|
|
|
169
|
-
|
|
177
|
+
5250+ tests passing。
|
|
170
178
|
|
|
171
179
|
---
|
|
172
180
|
|
|
@@ -236,7 +244,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
236
244
|
./scripts/start.sh --help
|
|
237
245
|
```
|
|
238
246
|
|
|
239
|
-
`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.
|
|
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 插件热加载.
|
|
240
248
|
|
|
241
249
|
---
|
|
242
250
|
|
|
@@ -258,7 +266,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
258
266
|
|
|
259
267
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
260
268
|
|
|
261
|
-
DevSquad's
|
|
269
|
+
DevSquad's 185+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
262
270
|
|
|
263
271
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
264
272
|
|
|
@@ -550,11 +558,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
550
558
|
```bash
|
|
551
559
|
# Check version
|
|
552
560
|
devsquad --version
|
|
553
|
-
# Expected: devsquad 4.
|
|
561
|
+
# Expected: devsquad 4.1.0
|
|
554
562
|
|
|
555
563
|
# Run tests
|
|
556
564
|
pytest tests/ -v --tb=short
|
|
557
|
-
# Expected:
|
|
565
|
+
# Expected: 5250+ passed
|
|
558
566
|
```
|
|
559
567
|
|
|
560
568
|
---
|
|
@@ -605,14 +613,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
605
613
|
|
|
606
614
|
### Quick Smoke Test (< 30 seconds)
|
|
607
615
|
```bash
|
|
608
|
-
python3 scripts/cli.py --version # Expected: DevSquad 4.
|
|
616
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.1.0
|
|
609
617
|
python3 scripts/cli.py status # Expected: System ready
|
|
610
618
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
611
619
|
```
|
|
612
620
|
|
|
613
621
|
### Full Test Suite
|
|
614
622
|
```bash
|
|
615
|
-
# Run all tests (
|
|
623
|
+
# Run all tests (5250+ tests passing)
|
|
616
624
|
python3 -m pytest tests/ -q --tb=line
|
|
617
625
|
|
|
618
626
|
# With coverage report
|
|
@@ -629,7 +637,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
629
637
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
630
638
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
631
639
|
|
|
632
|
-
**Total:
|
|
640
|
+
**Total: 5250+ CI tests / 66 e2e (5355 collected)**
|
|
633
641
|
|
|
634
642
|
Run by priority:
|
|
635
643
|
```bash
|
|
@@ -650,7 +658,7 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
650
658
|
| Document | Description | Language |
|
|
651
659
|
|----------|-------------|----------|
|
|
652
660
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
653
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
661
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
|
|
654
662
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
655
663
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
656
664
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
@@ -693,6 +701,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
693
701
|
|
|
694
702
|
---
|
|
695
703
|
|
|
696
|
-
*Last updated: 2026-07-
|
|
704
|
+
*Last updated: 2026-07-20 | Version: V4.1.6*
|
|
697
705
|
|
|
698
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 | V4.
|
|
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/V4.
|
|
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,16 @@ 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
|
-
## 🚀 V4.
|
|
74
|
+
## 🚀 V4.1.0: Loop Engineering + UI/UX 巡检 + Adversarial 验证 + DAG 可视化 + Autonomous + 插件热加载
|
|
75
75
|
|
|
76
|
-
**DevSquad V4.
|
|
76
|
+
**DevSquad V4.1.0** 借鉴上游 TraeMultiAgentSkill v2.7 理念,新增 6 个特性(P1-P3),全面接入 dispatch pipeline,无幽灵功能:
|
|
77
77
|
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
78
78
|
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
79
79
|
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
@@ -81,7 +81,7 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
81
81
|
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
82
82
|
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
5250+ tests passing。
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
@@ -151,7 +151,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
151
151
|
./scripts/start.sh --help
|
|
152
152
|
```
|
|
153
153
|
|
|
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.
|
|
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 插件热加载.
|
|
155
155
|
|
|
156
156
|
---
|
|
157
157
|
|
|
@@ -173,7 +173,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
173
173
|
|
|
174
174
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
175
175
|
|
|
176
|
-
DevSquad's
|
|
176
|
+
DevSquad's 185+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
177
177
|
|
|
178
178
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
179
179
|
|
|
@@ -465,11 +465,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
465
465
|
```bash
|
|
466
466
|
# Check version
|
|
467
467
|
devsquad --version
|
|
468
|
-
# Expected: devsquad 4.
|
|
468
|
+
# Expected: devsquad 4.1.0
|
|
469
469
|
|
|
470
470
|
# Run tests
|
|
471
471
|
pytest tests/ -v --tb=short
|
|
472
|
-
# Expected:
|
|
472
|
+
# Expected: 5250+ passed
|
|
473
473
|
```
|
|
474
474
|
|
|
475
475
|
---
|
|
@@ -520,14 +520,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
520
520
|
|
|
521
521
|
### Quick Smoke Test (< 30 seconds)
|
|
522
522
|
```bash
|
|
523
|
-
python3 scripts/cli.py --version # Expected: DevSquad 4.
|
|
523
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.1.0
|
|
524
524
|
python3 scripts/cli.py status # Expected: System ready
|
|
525
525
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
526
526
|
```
|
|
527
527
|
|
|
528
528
|
### Full Test Suite
|
|
529
529
|
```bash
|
|
530
|
-
# Run all tests (
|
|
530
|
+
# Run all tests (5250+ tests passing)
|
|
531
531
|
python3 -m pytest tests/ -q --tb=line
|
|
532
532
|
|
|
533
533
|
# With coverage report
|
|
@@ -544,7 +544,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
544
544
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
545
545
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
546
546
|
|
|
547
|
-
**Total:
|
|
547
|
+
**Total: 5250+ CI tests / 66 e2e (5355 collected)**
|
|
548
548
|
|
|
549
549
|
Run by priority:
|
|
550
550
|
```bash
|
|
@@ -565,7 +565,7 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
565
565
|
| Document | Description | Language |
|
|
566
566
|
|----------|-------------|----------|
|
|
567
567
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
568
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
568
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
|
|
569
569
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
570
570
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
571
571
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
@@ -608,6 +608,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
608
608
|
|
|
609
609
|
---
|
|
610
610
|
|
|
611
|
-
*Last updated: 2026-07-
|
|
611
|
+
*Last updated: 2026-07-20 | Version: V4.1.6*
|
|
612
612
|
|
|
613
613
|
</details>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devsquad
|
|
3
|
-
Version: 4.
|
|
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
|
|
@@ -59,6 +59,11 @@ Requires-Dist: mypy>=1.0; extra == "dev"
|
|
|
59
59
|
Requires-Dist: black>=23.0; extra == "dev"
|
|
60
60
|
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
61
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"
|
|
62
67
|
Provides-Extra: all
|
|
63
68
|
Requires-Dist: openai>=1.0; extra == "all"
|
|
64
69
|
Requires-Dist: anthropic>=0.18; extra == "all"
|
|
@@ -81,6 +86,9 @@ Requires-Dist: mypy>=1.0; extra == "all"
|
|
|
81
86
|
Requires-Dist: black>=23.0; extra == "all"
|
|
82
87
|
Requires-Dist: flake8>=6.0; extra == "all"
|
|
83
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"
|
|
84
92
|
Dynamic: license-file
|
|
85
93
|
|
|
86
94
|
# DevSquad — Multi-Role AI Task Orchestrator
|
|
@@ -88,14 +96,14 @@ Dynamic: license-file
|
|
|
88
96
|
<p align="center">
|
|
89
97
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
90
98
|
<br>
|
|
91
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V4.
|
|
99
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.1.6 Enterprise-Ready (RBAC/Audit/Multi-Tenancy in Preview)</em>
|
|
92
100
|
</p>
|
|
93
101
|
|
|
94
102
|
<p align="center">
|
|
95
103
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
96
104
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
97
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
98
|
-
<img alt="Version" src="https://img.shields.io/badge/V4.
|
|
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" />
|
|
99
107
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
100
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" />
|
|
101
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" />
|
|
@@ -149,16 +157,16 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
149
157
|
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
150
158
|
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
151
159
|
|
|
152
|
-
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [
|
|
160
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [185+ 模块详细参考](SKILL.md)
|
|
153
161
|
|
|
154
162
|
---
|
|
155
163
|
|
|
156
164
|
<details>
|
|
157
165
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
158
166
|
|
|
159
|
-
## 🚀 V4.
|
|
167
|
+
## 🚀 V4.1.0: Loop Engineering + UI/UX 巡检 + Adversarial 验证 + DAG 可视化 + Autonomous + 插件热加载
|
|
160
168
|
|
|
161
|
-
**DevSquad V4.
|
|
169
|
+
**DevSquad V4.1.0** 借鉴上游 TraeMultiAgentSkill v2.7 理念,新增 6 个特性(P1-P3),全面接入 dispatch pipeline,无幽灵功能:
|
|
162
170
|
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
163
171
|
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
164
172
|
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
@@ -166,7 +174,7 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
166
174
|
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
167
175
|
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
168
176
|
|
|
169
|
-
|
|
177
|
+
5250+ tests passing。
|
|
170
178
|
|
|
171
179
|
---
|
|
172
180
|
|
|
@@ -236,7 +244,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
236
244
|
./scripts/start.sh --help
|
|
237
245
|
```
|
|
238
246
|
|
|
239
|
-
`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.
|
|
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 插件热加载.
|
|
240
248
|
|
|
241
249
|
---
|
|
242
250
|
|
|
@@ -258,7 +266,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
258
266
|
|
|
259
267
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
260
268
|
|
|
261
|
-
DevSquad's
|
|
269
|
+
DevSquad's 185+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
262
270
|
|
|
263
271
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
264
272
|
|
|
@@ -550,11 +558,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
550
558
|
```bash
|
|
551
559
|
# Check version
|
|
552
560
|
devsquad --version
|
|
553
|
-
# Expected: devsquad 4.
|
|
561
|
+
# Expected: devsquad 4.1.0
|
|
554
562
|
|
|
555
563
|
# Run tests
|
|
556
564
|
pytest tests/ -v --tb=short
|
|
557
|
-
# Expected:
|
|
565
|
+
# Expected: 5250+ passed
|
|
558
566
|
```
|
|
559
567
|
|
|
560
568
|
---
|
|
@@ -605,14 +613,14 @@ export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
|
605
613
|
|
|
606
614
|
### Quick Smoke Test (< 30 seconds)
|
|
607
615
|
```bash
|
|
608
|
-
python3 scripts/cli.py --version # Expected: DevSquad 4.
|
|
616
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.1.0
|
|
609
617
|
python3 scripts/cli.py status # Expected: System ready
|
|
610
618
|
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
611
619
|
```
|
|
612
620
|
|
|
613
621
|
### Full Test Suite
|
|
614
622
|
```bash
|
|
615
|
-
# Run all tests (
|
|
623
|
+
# Run all tests (5250+ tests passing)
|
|
616
624
|
python3 -m pytest tests/ -q --tb=line
|
|
617
625
|
|
|
618
626
|
# With coverage report
|
|
@@ -629,7 +637,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
629
637
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
630
638
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
631
639
|
|
|
632
|
-
**Total:
|
|
640
|
+
**Total: 5250+ CI tests / 66 e2e (5355 collected)**
|
|
633
641
|
|
|
634
642
|
Run by priority:
|
|
635
643
|
```bash
|
|
@@ -650,7 +658,7 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
650
658
|
| Document | Description | Language |
|
|
651
659
|
|----------|-------------|----------|
|
|
652
660
|
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
653
|
-
| [SKILL.md](SKILL.md) | 完整技能手册 +
|
|
661
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 185+ 模块参考 | EN/CN/JP |
|
|
654
662
|
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
655
663
|
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
656
664
|
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
@@ -693,6 +701,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
693
701
|
|
|
694
702
|
---
|
|
695
703
|
|
|
696
|
-
*Last updated: 2026-07-
|
|
704
|
+
*Last updated: 2026-07-20 | Version: V4.1.6*
|
|
697
705
|
|
|
698
706
|
</details>
|
|
@@ -13,6 +13,7 @@ scripts/auth.py
|
|
|
13
13
|
scripts/benchmark_async_dispatch.py
|
|
14
14
|
scripts/benchmark_ponytail_smart.py
|
|
15
15
|
scripts/benchmark_real_llm.py
|
|
16
|
+
scripts/check_dependency_sync.py
|
|
16
17
|
scripts/check_version_consistency.py
|
|
17
18
|
scripts/cli.py
|
|
18
19
|
scripts/cli_dispatch.py
|
|
@@ -56,6 +57,7 @@ scripts/collaboration/code_knowledge_graph.py
|
|
|
56
57
|
scripts/collaboration/code_map_generator.py
|
|
57
58
|
scripts/collaboration/concern_pack_loader.py
|
|
58
59
|
scripts/collaboration/confidence_score.py
|
|
60
|
+
scripts/collaboration/config_manager.py
|
|
59
61
|
scripts/collaboration/consensus.py
|
|
60
62
|
scripts/collaboration/consensus_gate.py
|
|
61
63
|
scripts/collaboration/constants.py
|
|
@@ -77,15 +79,18 @@ scripts/collaboration/dispatch_steps.py
|
|
|
77
79
|
scripts/collaboration/dispatch_steps_base.py
|
|
78
80
|
scripts/collaboration/dispatch_steps_consensus_mixin.py
|
|
79
81
|
scripts/collaboration/dispatch_steps_feedback_mixin.py
|
|
82
|
+
scripts/collaboration/dispatch_steps_mixins.py
|
|
80
83
|
scripts/collaboration/dispatch_steps_quality_mixin.py
|
|
81
84
|
scripts/collaboration/dispatch_steps_services_mixin.py
|
|
82
85
|
scripts/collaboration/dispatcher.py
|
|
83
86
|
scripts/collaboration/dispatcher_async_mixin.py
|
|
84
87
|
scripts/collaboration/dispatcher_audit_mixin.py
|
|
85
88
|
scripts/collaboration/dispatcher_base.py
|
|
89
|
+
scripts/collaboration/dispatcher_config.py
|
|
86
90
|
scripts/collaboration/dispatcher_error_mixin.py
|
|
87
91
|
scripts/collaboration/dispatcher_factory.py
|
|
88
92
|
scripts/collaboration/dispatcher_lifecycle_mixin.py
|
|
93
|
+
scripts/collaboration/dispatcher_mixins.py
|
|
89
94
|
scripts/collaboration/dispatcher_status_mixin.py
|
|
90
95
|
scripts/collaboration/dispatcher_utils_mixin.py
|
|
91
96
|
scripts/collaboration/dual_layer_context.py
|
|
@@ -132,6 +137,7 @@ scripts/collaboration/multi_tenant.py
|
|
|
132
137
|
scripts/collaboration/null_providers.py
|
|
133
138
|
scripts/collaboration/operation_classifier.py
|
|
134
139
|
scripts/collaboration/output_slicer.py
|
|
140
|
+
scripts/collaboration/output_validator.py
|
|
135
141
|
scripts/collaboration/performance_fingerprint.py
|
|
136
142
|
scripts/collaboration/performance_monitor.py
|
|
137
143
|
scripts/collaboration/permission_guard.py
|
|
@@ -140,6 +146,7 @@ scripts/collaboration/prometheus_metrics.py
|
|
|
140
146
|
scripts/collaboration/prompt_assembler.py
|
|
141
147
|
scripts/collaboration/prompt_assembler_base.py
|
|
142
148
|
scripts/collaboration/prompt_assembler_formatting_mixin.py
|
|
149
|
+
scripts/collaboration/prompt_assembler_mixins.py
|
|
143
150
|
scripts/collaboration/prompt_assembler_substitution_mixin.py
|
|
144
151
|
scripts/collaboration/prompt_assembler_template_mixin.py
|
|
145
152
|
scripts/collaboration/prompt_assembler_validation_mixin.py
|
|
@@ -173,6 +180,7 @@ scripts/collaboration/ue_test_framework.py
|
|
|
173
180
|
scripts/collaboration/ue_test_framework_base.py
|
|
174
181
|
scripts/collaboration/ue_test_heuristic_mixin.py
|
|
175
182
|
scripts/collaboration/ue_test_journey_mixin.py
|
|
183
|
+
scripts/collaboration/ue_test_mixins.py
|
|
176
184
|
scripts/collaboration/ue_test_persona_mixin.py
|
|
177
185
|
scripts/collaboration/unified_gate_engine.py
|
|
178
186
|
scripts/collaboration/usage_tracker.py
|
|
@@ -183,6 +191,7 @@ scripts/collaboration/worker.py
|
|
|
183
191
|
scripts/collaboration/workflow_engine.py
|
|
184
192
|
scripts/collaboration/workflow_engine_base.py
|
|
185
193
|
scripts/collaboration/workflow_engine_lifecycle_mixin.py
|
|
194
|
+
scripts/collaboration/workflow_engine_mixins.py
|
|
186
195
|
scripts/collaboration/workflow_engine_persistence_mixin.py
|
|
187
196
|
scripts/collaboration/workflow_engine_state_mixin.py
|
|
188
197
|
scripts/collaboration/workflow_engine_transition_mixin.py
|
|
@@ -211,16 +220,20 @@ scripts/dashboard/auth_views.py
|
|
|
211
220
|
scripts/dashboard/components.py
|
|
212
221
|
scripts/dashboard/dag_views.py
|
|
213
222
|
scripts/dashboard/dispatch_views.py
|
|
223
|
+
scripts/dashboard/i18n.py
|
|
214
224
|
scripts/dashboard/lifecycle_views.py
|
|
215
225
|
scripts/dashboard/metrics_views.py
|
|
216
226
|
scripts/dashboard/state.py
|
|
217
227
|
scripts/qa/__init__.py
|
|
228
|
+
scripts/qa/deterministic_rule_engine.py
|
|
218
229
|
scripts/qa/models.py
|
|
230
|
+
scripts/qa/taste_dials.py
|
|
219
231
|
scripts/qa/uiux_analyzer.py
|
|
220
232
|
scripts/qa/visual_regression.py
|
|
221
233
|
scripts/utils/__init__.py
|
|
222
234
|
scripts/utils/_find_missing_hints.py
|
|
223
235
|
skills/__init__.py
|
|
236
|
+
skills/_version.py
|
|
224
237
|
skills/registry.py
|
|
225
238
|
skills/dispatch/handler.py
|
|
226
239
|
skills/intent/handler.py
|
|
@@ -230,19 +243,22 @@ skills/review/handler.py
|
|
|
230
243
|
skills/security/handler.py
|
|
231
244
|
skills/test/__init__.py
|
|
232
245
|
skills/test/handler.py
|
|
246
|
+
tests/test_4pt_grid.py
|
|
247
|
+
tests/test_adaptive_role_selector.py
|
|
233
248
|
tests/test_adversarial_verify.py
|
|
234
249
|
tests/test_agent_briefing.py
|
|
235
250
|
tests/test_anchor_retrospective.py
|
|
236
251
|
tests/test_anti_rationalization.py
|
|
252
|
+
tests/test_antipattern_bans.py
|
|
237
253
|
tests/test_api_budget_status_endpoint.py
|
|
238
254
|
tests/test_api_security.py
|
|
239
255
|
tests/test_api_server_v362.py
|
|
256
|
+
tests/test_async_coordinator.py
|
|
240
257
|
tests/test_async_modules.py
|
|
241
258
|
tests/test_audit_logger.py
|
|
242
259
|
tests/test_auth_phase5.py
|
|
243
260
|
tests/test_autonomous.py
|
|
244
261
|
tests/test_benchmark_ponytail_smart.py
|
|
245
|
-
tests/test_ccr_marker_integration.py
|
|
246
262
|
tests/test_ccr_store.py
|
|
247
263
|
tests/test_ci_feedback_adapter.py
|
|
248
264
|
tests/test_cli_deep_v362.py
|
|
@@ -269,27 +285,37 @@ tests/test_collaboration_test_quality_guard.py
|
|
|
269
285
|
tests/test_collaboration_test_quality_guard_test.py
|
|
270
286
|
tests/test_collaboration_upstream_test.py
|
|
271
287
|
tests/test_collaboration_warmup_manager_test.py
|
|
272
|
-
tests/test_comprehensive_integration.py
|
|
273
288
|
tests/test_confidence_score.py
|
|
274
289
|
tests/test_config_injection.py
|
|
275
290
|
tests/test_consensus_gate.py
|
|
276
291
|
tests/test_content_cache.py
|
|
277
292
|
tests/test_content_crusher.py
|
|
278
|
-
tests/test_coordinator_budget_ccr_integration.py
|
|
279
293
|
tests/test_coordinator_smart_compression.py
|
|
280
294
|
tests/test_dag_views.py
|
|
281
295
|
tests/test_dashboard_split.py
|
|
282
296
|
tests/test_dashboard_ui_e2e.py
|
|
283
297
|
tests/test_data_backup.py
|
|
298
|
+
tests/test_deep_shallow.py
|
|
299
|
+
tests/test_deletion_test.py
|
|
284
300
|
tests/test_dependency_lock.py
|
|
301
|
+
tests/test_deterministic_rule_engine.py
|
|
285
302
|
tests/test_dispatch_audit.py
|
|
303
|
+
tests/test_dispatch_performance.py
|
|
286
304
|
tests/test_dispatch_rbac.py
|
|
305
|
+
tests/test_dispatch_steps.py
|
|
306
|
+
tests/test_dispatcher_mixins.py
|
|
287
307
|
tests/test_dispatcher_phase5_core.py
|
|
288
308
|
tests/test_docker_deployment.py
|
|
289
|
-
tests/
|
|
290
|
-
tests/
|
|
309
|
+
tests/test_dual_layer_context.py
|
|
310
|
+
tests/test_enhanced_worker.py
|
|
311
|
+
tests/test_feedback_control_loop.py
|
|
291
312
|
tests/test_five_axis_consensus.py
|
|
313
|
+
tests/test_flow_standalone.py
|
|
292
314
|
tests/test_full_lifecycle_adapter.py
|
|
315
|
+
tests/test_git_guardrails.py
|
|
316
|
+
tests/test_glossary_loader.py
|
|
317
|
+
tests/test_grilling_mode.py
|
|
318
|
+
tests/test_handoff_redaction.py
|
|
293
319
|
tests/test_history_manager_v362.py
|
|
294
320
|
tests/test_input_validator_phase5.py
|
|
295
321
|
tests/test_intent_workflow_mapper.py
|
|
@@ -304,8 +330,11 @@ tests/test_memory_benchmarks.py
|
|
|
304
330
|
tests/test_micro_task_planner.py
|
|
305
331
|
tests/test_multi_host_adapter.py
|
|
306
332
|
tests/test_multi_tenant.py
|
|
333
|
+
tests/test_multi_tenant_isolation_e2e.py
|
|
334
|
+
tests/test_no_op_test.py
|
|
307
335
|
tests/test_node_type_separation.py
|
|
308
336
|
tests/test_null_providers.py
|
|
337
|
+
tests/test_oklch_color.py
|
|
309
338
|
tests/test_operation_classifier.py
|
|
310
339
|
tests/test_output_slicer.py
|
|
311
340
|
tests/test_performance_benchmarks.py
|
|
@@ -318,19 +347,24 @@ tests/test_plan_c_unified_architecture.py
|
|
|
318
347
|
tests/test_plugins_hot_loader.py
|
|
319
348
|
tests/test_ponytail_rule_injector.py
|
|
320
349
|
tests/test_production_features.py
|
|
350
|
+
tests/test_prometheus_metrics.py
|
|
321
351
|
tests/test_prompt_dials.py
|
|
322
352
|
tests/test_protocols.py
|
|
323
|
-
tests/test_qa_integration.py
|
|
324
353
|
tests/test_qa_uiux_visual_regression.py
|
|
325
354
|
tests/test_quick_bonus.py
|
|
326
355
|
tests/test_rate_limit.py
|
|
327
356
|
tests/test_rbac_engine.py
|
|
328
357
|
tests/test_rbac_fail_closed.py
|
|
358
|
+
tests/test_red_capable_gate.py
|
|
329
359
|
tests/test_redesign_auditor.py
|
|
360
|
+
tests/test_redis_cache.py
|
|
330
361
|
tests/test_retry_jitter_strategies.py
|
|
331
362
|
tests/test_role_skill_loader.py
|
|
363
|
+
tests/test_rule_collector.py
|
|
332
364
|
tests/test_rule_injection_security.py
|
|
365
|
+
tests/test_secret_patterns.py
|
|
333
366
|
tests/test_severity_router.py
|
|
367
|
+
tests/test_similar_task_recommender.py
|
|
334
368
|
tests/test_skill_registry_coverage.py
|
|
335
369
|
tests/test_skill_security.py
|
|
336
370
|
tests/test_sleep_guard.py
|
|
@@ -338,17 +372,25 @@ tests/test_standardized_role_template.py
|
|
|
338
372
|
tests/test_start_script.py
|
|
339
373
|
tests/test_step_node_types.py
|
|
340
374
|
tests/test_suggested_next_steps.py
|
|
375
|
+
tests/test_task_completion_checker.py
|
|
376
|
+
tests/test_taste_dials.py
|
|
377
|
+
tests/test_tautological_seams.py
|
|
341
378
|
tests/test_tech_debt_manager.py
|
|
342
379
|
tests/test_token_budget_compressed_scratchpad.py
|
|
380
|
+
tests/test_triage_label.py
|
|
343
381
|
tests/test_two_stage_review_gate.py
|
|
344
382
|
tests/test_ue_test_framework.py
|
|
345
383
|
tests/test_usage_tracker_coverage.py
|
|
346
|
-
tests/test_v38_integration.py
|
|
347
384
|
tests/test_v39_e2e.py
|
|
348
|
-
tests/test_v39_integration.py
|
|
349
385
|
tests/test_v39_performance.py
|
|
350
|
-
tests/
|
|
386
|
+
tests/test_v411_security_hardening.py
|
|
351
387
|
tests/test_verification_gate.py
|
|
352
388
|
tests/test_version.py
|
|
389
|
+
tests/test_vertical_slice.py
|
|
390
|
+
tests/test_workflow_engine.py
|
|
391
|
+
tests/test_workflow_engine_base.py
|
|
392
|
+
tests/test_workflow_engine_lifecycle.py
|
|
393
|
+
tests/test_workflow_engine_state.py
|
|
394
|
+
tests/test_workflow_engine_transition.py
|
|
353
395
|
tests/test_workflow_persistence_coverage.py
|
|
354
396
|
tests/test_yagni_checker.py
|
|
@@ -28,6 +28,9 @@ mypy>=1.0
|
|
|
28
28
|
black>=23.0
|
|
29
29
|
flake8>=6.0
|
|
30
30
|
httpx2>=2.5.0
|
|
31
|
+
fakeredis>=2.30
|
|
32
|
+
redis>=5.0
|
|
33
|
+
hypothesis>=6.0
|
|
31
34
|
|
|
32
35
|
[anthropic]
|
|
33
36
|
anthropic>=0.18
|
|
@@ -49,6 +52,11 @@ mypy>=1.0
|
|
|
49
52
|
black>=23.0
|
|
50
53
|
flake8>=6.0
|
|
51
54
|
httpx2>=2.5.0
|
|
55
|
+
streamlit>=1.28.0
|
|
56
|
+
Pillow>=10.0.0
|
|
57
|
+
fakeredis>=2.30
|
|
58
|
+
redis>=5.0
|
|
59
|
+
hypothesis>=6.0
|
|
52
60
|
|
|
53
61
|
[mcp]
|
|
54
62
|
mcp>=0.9
|