claude-flow-novice 1.3.5 → 1.5.0
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.
- package/.claude/agents/analysis/code-analyzer.md +3 -20
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +1 -1
- package/.claude/agents/analyst.md +300 -0
- package/.claude/agents/architect.md +557 -0
- package/.claude/agents/architecture/system-architect.md +630 -0
- package/.claude/agents/architecture/system-design/arch-system-design.md +1 -1
- package/.claude/agents/base-template-generator.md +24 -1
- package/.claude/agents/coder.md +180 -0
- package/.claude/agents/consensus/byzantine-coordinator.md +4 -21
- package/.claude/agents/consensus/consensus-builder.md +3 -20
- package/.claude/agents/consensus/crdt-synchronizer.md +4 -21
- package/.claude/agents/consensus/gossip-coordinator.md +4 -21
- package/.claude/agents/consensus/performance-benchmarker.md +4 -21
- package/.claude/agents/consensus/quorum-manager.md +4 -21
- package/.claude/agents/consensus/raft-manager.md +4 -21
- package/.claude/agents/consensus/security-manager.md +4 -21
- package/.claude/agents/coordinator.md +842 -0
- package/.claude/agents/data/ml/data-ml-model.md +2 -2
- package/.claude/agents/development/backend/dev-backend-api.md +2 -2
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +2 -2
- package/.claude/agents/devops/devops-engineer.md +638 -0
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +2 -2
- package/.claude/agents/github/code-review-swarm.md +1 -1
- package/.claude/agents/github/github-specialist.md +856 -0
- package/.claude/agents/github/pr-manager.md +1 -1
- package/.claude/agents/github/release-manager.md +1 -1
- package/.claude/agents/neural/neural-pattern-agent.md +762 -0
- package/.claude/agents/optimization/benchmark-suite.md +1 -1
- package/.claude/agents/optimization/perf-analyzer.md +725 -0
- package/.claude/agents/optimization/performance-monitor.md +1 -1
- package/.claude/agents/planner.md +135 -0
- package/.claude/agents/researcher.md +185 -0
- package/.claude/agents/reviewer.md +291 -0
- package/.claude/agents/security/security-specialist.md +978 -0
- package/.claude/agents/sparc/architecture.md +1 -1
- package/.claude/agents/sparc/pseudocode.md +1 -1
- package/.claude/agents/sparc/refinement.md +1 -1
- package/.claude/agents/sparc/specification.md +1 -1
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +2 -2
- package/.claude/agents/swarm/adaptive-coordinator-enhanced.md +746 -0
- package/.claude/agents/tester.md +663 -0
- package/.claude/agents/testing/unit/tdd-london-swarm.md +1 -1
- package/.claude/agents/testing/validation/production-validator.md +1 -1
- package/.claude/commands/claude-soul.js +1 -1
- package/.claude/hooks.json +12 -15
- package/{.claude → .claude-flow-novice/.claude}/agents/MIGRATION_SUMMARY.md +1 -1
- package/.claude-flow-novice/.claude/agents/analysis/code-analyzer.md +192 -0
- package/.claude-flow-novice/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
- package/.claude-flow-novice/.claude/agents/analyst.md +300 -0
- package/.claude-flow-novice/.claude/agents/architect.md +557 -0
- package/.claude-flow-novice/.claude/agents/architecture/system-architect.md +630 -0
- package/.claude-flow-novice/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
- package/.claude-flow-novice/.claude/agents/backend-dev.json +42 -0
- package/.claude-flow-novice/.claude/agents/base-template-generator.md +65 -0
- package/.claude-flow-novice/.claude/agents/code-analyzer.json +39 -0
- package/.claude-flow-novice/.claude/agents/coder.json +42 -0
- package/.claude-flow-novice/.claude/agents/coder.md +180 -0
- package/.claude-flow-novice/.claude/agents/consensus/byzantine-coordinator.md +46 -0
- package/.claude-flow-novice/.claude/agents/consensus/consensus-builder.md +225 -0
- package/.claude-flow-novice/.claude/agents/consensus/crdt-synchronizer.md +980 -0
- package/.claude-flow-novice/.claude/agents/consensus/gossip-coordinator.md +46 -0
- package/.claude-flow-novice/.claude/agents/consensus/performance-benchmarker.md +834 -0
- package/.claude-flow-novice/.claude/agents/consensus/quorum-manager.md +806 -0
- package/.claude-flow-novice/.claude/agents/consensus/raft-manager.md +46 -0
- package/.claude-flow-novice/.claude/agents/consensus/security-manager.md +605 -0
- package/.claude-flow-novice/.claude/agents/coordinator.md +842 -0
- package/.claude-flow-novice/.claude/agents/data/ml/data-ml-model.md +193 -0
- package/.claude-flow-novice/.claude/agents/development/backend/dev-backend-api.md +142 -0
- package/.claude-flow-novice/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
- package/.claude-flow-novice/.claude/agents/devops/devops-engineer.md +638 -0
- package/.claude-flow-novice/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
- package/.claude-flow-novice/.claude/agents/github/code-review-swarm.md +538 -0
- package/.claude-flow-novice/.claude/agents/github/github-modes.md +173 -0
- package/.claude-flow-novice/.claude/agents/github/github-specialist.md +856 -0
- package/.claude-flow-novice/.claude/agents/github/issue-tracker.md +319 -0
- package/.claude-flow-novice/.claude/agents/github/multi-repo-swarm.md +553 -0
- package/.claude-flow-novice/.claude/agents/github/pr-manager.md +191 -0
- package/.claude-flow-novice/.claude/agents/github/project-board-sync.md +509 -0
- package/.claude-flow-novice/.claude/agents/github/release-manager.md +367 -0
- package/.claude-flow-novice/.claude/agents/github/release-swarm.md +583 -0
- package/.claude-flow-novice/.claude/agents/github/repo-architect.md +398 -0
- package/.claude-flow-novice/.claude/agents/github/swarm-issue.md +573 -0
- package/.claude-flow-novice/.claude/agents/github/swarm-pr.md +428 -0
- package/.claude-flow-novice/.claude/agents/github/sync-coordinator.md +452 -0
- package/.claude-flow-novice/.claude/agents/github/workflow-automation.md +635 -0
- package/.claude-flow-novice/.claude/agents/goal/goal-planner.md +73 -0
- package/.claude-flow-novice/.claude/agents/neural/neural-pattern-agent.md +762 -0
- package/.claude-flow-novice/.claude/agents/neural/safla-neural.md +74 -0
- package/.claude-flow-novice/.claude/agents/optimization/benchmark-suite.md +665 -0
- package/.claude-flow-novice/.claude/agents/optimization/load-balancer.md +431 -0
- package/.claude-flow-novice/.claude/agents/optimization/perf-analyzer.md +725 -0
- package/.claude-flow-novice/.claude/agents/optimization/performance-monitor.md +672 -0
- package/.claude-flow-novice/.claude/agents/optimization/resource-allocator.md +674 -0
- package/.claude-flow-novice/.claude/agents/optimization/topology-optimizer.md +808 -0
- package/.claude-flow-novice/.claude/agents/planner.json +41 -0
- package/.claude-flow-novice/.claude/agents/planner.md +135 -0
- package/.claude-flow-novice/.claude/agents/researcher.json +41 -0
- package/.claude-flow-novice/.claude/agents/researcher.md +185 -0
- package/.claude-flow-novice/.claude/agents/reviewer.json +39 -0
- package/.claude-flow-novice/.claude/agents/reviewer.md +291 -0
- package/.claude-flow-novice/.claude/agents/security/security-specialist.md +978 -0
- package/.claude-flow-novice/.claude/agents/sparc/architecture.md +472 -0
- package/.claude-flow-novice/.claude/agents/sparc/pseudocode.md +318 -0
- package/.claude-flow-novice/.claude/agents/sparc/refinement.md +525 -0
- package/.claude-flow-novice/.claude/agents/sparc/specification.md +276 -0
- package/.claude-flow-novice/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
- package/.claude-flow-novice/.claude/agents/sublinear/consciousness-evolution-agent.md +499 -0
- package/.claude-flow-novice/.claude/agents/sublinear/matrix-solver-agent.md +113 -0
- package/.claude-flow-novice/.claude/agents/sublinear/nanosecond-scheduler-agent.md +644 -0
- package/.claude-flow-novice/.claude/agents/sublinear/pagerank-agent.md +699 -0
- package/.claude-flow-novice/.claude/agents/sublinear/phi-calculator-agent.md +749 -0
- package/.claude-flow-novice/.claude/agents/sublinear/psycho-symbolic-agent.md +543 -0
- package/.claude-flow-novice/.claude/agents/sublinear/sublinear.md +816 -0
- package/.claude-flow-novice/.claude/agents/sublinear/temporal-advantage-agent.md +360 -0
- package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator-enhanced.md +746 -0
- package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator.md +396 -0
- package/.claude-flow-novice/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
- package/.claude-flow-novice/.claude/agents/swarm/mesh-coordinator.md +435 -0
- package/.claude-flow-novice/.claude/agents/system-architect.json +40 -0
- package/.claude-flow-novice/.claude/agents/templates/automation-smart-agent.md +205 -0
- package/.claude-flow-novice/.claude/agents/templates/coordinator-swarm-init.md +90 -0
- package/.claude-flow-novice/.claude/agents/templates/github-pr-manager.md +177 -0
- package/.claude-flow-novice/.claude/agents/templates/implementer-sparc-coder.md +259 -0
- package/.claude-flow-novice/.claude/agents/templates/memory-coordinator.md +187 -0
- package/.claude-flow-novice/.claude/agents/templates/migration-plan.md +746 -0
- package/.claude-flow-novice/.claude/agents/templates/orchestrator-task.md +139 -0
- package/.claude-flow-novice/.claude/agents/templates/performance-analyzer.md +199 -0
- package/.claude-flow-novice/.claude/agents/templates/sparc-coordinator.md +183 -0
- package/.claude-flow-novice/.claude/agents/tester.json +40 -0
- package/.claude-flow-novice/.claude/agents/tester.md +663 -0
- package/.claude-flow-novice/.claude/agents/testing/e2e/playwright-agent.md +249 -0
- package/.claude-flow-novice/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
- package/.claude-flow-novice/.claude/agents/testing/validation/production-validator.md +395 -0
- package/.claude-flow-novice/dist/index.js +12 -24
- package/.claude-flow-novice/dist/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/agents/agent-manager.js +123 -69
- package/.claude-flow-novice/dist/src/agents/agent-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js +7 -7
- package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js.map +1 -1
- package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js +485 -0
- package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js +630 -0
- package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/commands/agent.js +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/agent.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/config-integration.js +6 -6
- package/.claude-flow-novice/dist/src/cli/commands/enterprise.js +18 -18
- package/.claude-flow-novice/dist/src/cli/commands/enterprise.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/goal-init.js +4 -4
- package/.claude-flow-novice/dist/src/cli/commands/help-new.js +23 -23
- package/.claude-flow-novice/dist/src/cli/commands/help-new.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/help.js +74 -74
- package/.claude-flow-novice/dist/src/cli/commands/help.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js +2 -2
- package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/hive.js +4 -4
- package/.claude-flow-novice/dist/src/cli/commands/index.js +103 -132
- package/.claude-flow-novice/dist/src/cli/commands/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/mcp.js +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/migrate.js +4 -4
- package/.claude-flow-novice/dist/src/cli/commands/migrate.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/monitor.js +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/neural-init.js +4 -4
- package/.claude-flow-novice/dist/src/cli/commands/ruv-swarm.js +8 -8
- package/.claude-flow-novice/dist/src/cli/commands/sparc.js +12 -12
- package/.claude-flow-novice/dist/src/cli/commands/sparc.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/start/start-command.js +3 -3
- package/.claude-flow-novice/dist/src/cli/commands/status.js +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/swarm.js +7 -7
- package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/verification.js +18 -18
- package/.claude-flow-novice/dist/src/cli/completion.js +54 -54
- package/.claude-flow-novice/dist/src/cli/completion.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js +11 -11
- package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/consolidated/core/CommandHandlers.js +31 -31
- package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js +39 -39
- package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js +25 -25
- package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js +8 -8
- package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js +6 -6
- package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js +7 -7
- package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/index-remote.js +10 -10
- package/.claude-flow-novice/dist/src/cli/index.js +1 -1
- package/.claude-flow-novice/dist/src/cli/init/directory-structure.js +8 -8
- package/.claude-flow-novice/dist/src/cli/init/index.js +3 -3
- package/.claude-flow-novice/dist/src/cli/init/sparc-environment.js +67 -67
- package/.claude-flow-novice/dist/src/cli/init/swarm-commands.js +18 -18
- package/.claude-flow-novice/dist/src/cli/node-repl.js +2 -2
- package/.claude-flow-novice/dist/src/cli/repl.js +1 -1
- package/.claude-flow-novice/dist/src/cli/simple-cli.js +68 -68
- package/.claude-flow-novice/dist/src/cli/simple-cli.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/simple-commands/session-start-soul.js +271 -0
- package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js +7 -7
- package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/ui/fallback-handler.js +7 -7
- package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js +816 -0
- package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js +812 -0
- package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/optimized-serialization.js +369 -0
- package/.claude-flow-novice/dist/src/communication/optimized-serialization.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/performance-optimizations.js +526 -0
- package/.claude-flow-novice/dist/src/communication/performance-optimizations.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/performance-validator.js +532 -0
- package/.claude-flow-novice/dist/src/communication/performance-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/priority-message-queue.js +525 -0
- package/.claude-flow-novice/dist/src/communication/priority-message-queue.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js +218 -0
- package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js +521 -0
- package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js +563 -0
- package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/websocket-cluster.js +344 -0
- package/.claude-flow-novice/dist/src/communication/websocket-cluster.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js +369 -0
- package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js.map +1 -0
- package/.claude-flow-novice/dist/src/config/config-manager.js +1 -1
- package/.claude-flow-novice/dist/src/config/config-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/config/core/intelligent-configuration-manager.js +1 -1
- package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js +6 -6
- package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js.map +1 -1
- package/.claude-flow-novice/dist/src/config/migration/config-migration.js +1 -1
- package/.claude-flow-novice/dist/src/config/ruv-swarm-integration.js +1 -1
- package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js +1 -1
- package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js.map +1 -1
- package/.claude-flow-novice/dist/src/config/web-portal-config.js +0 -9
- package/.claude-flow-novice/dist/src/config/web-portal-config.js.map +1 -1
- package/.claude-flow-novice/dist/src/config/zero-config-setup.js +18 -18
- package/.claude-flow-novice/dist/src/config/zero-config-setup.js.map +1 -1
- package/.claude-flow-novice/dist/src/core/logger.js +33 -10
- package/.claude-flow-novice/dist/src/core/logger.js.map +1 -1
- package/.claude-flow-novice/dist/src/migration/index.js +1 -1
- package/.claude-flow-novice/dist/src/migration/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/migration/migration-runner.js +4 -4
- package/.claude-flow-novice/dist/src/migration/migration-runner.js.map +1 -1
- package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js +430 -0
- package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js.map +1 -0
- package/.claude-flow-novice/dist/src/slash-commands/claude-soul.js +248 -365
- package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +1 -1
- package/.claude-flow-novice/dist/src/swarm/claude-code-interface.js +1 -1
- package/.claude-flow-novice/dist/src/swarm/claude-flow-executor.js +1 -1
- package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js +471 -0
- package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm/hive-mind-integration.js +1 -1
- package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js +543 -0
- package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm/optimizations/connection-pool.js +1 -1
- package/.claude-flow-novice/dist/src/swarm/optimizations/optimized-executor.js +1 -1
- package/.claude-flow-novice/dist/src/swarm/types.js.map +1 -1
- package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js +709 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js +612 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js +679 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js +654 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js +402 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js +459 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js +513 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js +19 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js +568 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js +418 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js +530 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js.map +1 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js +250 -0
- package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js.map +1 -0
- package/.claude-flow-novice/dist/src/task/index.js +7 -7
- package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js +420 -0
- package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/validation/production-validator.js +1435 -0
- package/.claude-flow-novice/dist/src/validation/production-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/verification/cli-integration.js +3 -3
- package/.claude-flow-novice/dist/src/verification/hooks.js +1 -1
- package/CHANGELOG.md +13 -0
- package/CLAUDE.md +1032 -61
- package/README.md +0 -1
- package/config/build/babel.config.cjs +19 -11
- package/config/typescript/tsconfig.json +1 -1
- package/examples/02-workflows/claude-workflow.json +5 -5
- package/examples/claude-api-error-handling.ts +2 -2
- package/examples/frontend-testing-demo.ts +470 -0
- package/examples/litellm/config/config.yaml +1 -1
- package/package.json +13 -7
- package/scripts/build/unified-builder.sh +6 -6
- package/scripts/build/validate-agents.js +238 -0
- package/scripts/post-install-claude-md.js +28 -0
- package/scripts/run-production-validation.ts +590 -0
- package/scripts/test/test-coordination-features.ts +2 -2
- package/scripts/validate-stage3-performance.ts +377 -0
- package/src/cli/simple-commands/hooks.js +1 -0
- package/src/cli/simple-commands/init/agent-copier.js +0 -2
- package/src/cli/simple-commands/init/index.js +18 -110
- package/src/cli/simple-commands/init/templates/CLAUDE.md +162 -1158
- package/src/cli/simple-commands/init/templates/claude-md.js +38 -157
- package/src/swarm-fullstack/integrations/communication-bridge.ts +931 -0
- package/src/swarm-fullstack/testing/api-contract-validator.ts +909 -0
- package/src/swarm-fullstack/testing/backend-test-orchestrator.ts +791 -0
- package/src/swarm-fullstack/testing/frontend-test-orchestrator.ts +853 -0
- package/src/swarm-fullstack/testing/visual-regression.ts +507 -0
- package/src/swarm-fullstack/workflows/convergence-detector.ts +736 -0
- package/src/swarm-fullstack/workflows/fix-coordinator.ts +677 -0
- package/src/swarm-fullstack/workflows/index.ts +75 -0
- package/src/swarm-fullstack/workflows/iterative-build-test.ts +829 -0
- package/src/swarm-fullstack/workflows/regression-test-manager.ts +590 -0
- package/src/swarm-fullstack/workflows/test-result-analyzer.ts +739 -0
- package/src/swarm-fullstack/workflows/workflow-metrics.ts +399 -0
- package/wiki/command-reference/README.md +1 -2
- package/wiki/command-reference/mcp-tools/README.md +1 -1
- package/wiki/getting-started/claude-code-mcp/README.md +1 -2
- package/wiki/getting-started/installation/README.md +2 -10
- package/.claude/agents/backend-dev.json +0 -9
- package/.claude/agents/code-analyzer.json +0 -9
- package/.claude/agents/coder.json +0 -9
- package/.claude/agents/planner.json +0 -9
- package/.claude/agents/researcher.json +0 -9
- package/.claude/agents/reviewer.json +0 -9
- package/.claude/agents/system-architect.json +0 -9
- package/.claude/agents/tester.json +0 -9
- package/.claude/commands/flow-nexus/app-store.md +0 -124
- package/.claude/commands/flow-nexus/challenges.md +0 -120
- package/.claude/commands/flow-nexus/login-registration.md +0 -65
- package/.claude/commands/flow-nexus/neural-network.md +0 -134
- package/.claude/commands/flow-nexus/payments.md +0 -116
- package/.claude/commands/flow-nexus/sandbox.md +0 -83
- package/.claude/commands/flow-nexus/swarm.md +0 -87
- package/.claude/commands/flow-nexus/user-tools.md +0 -152
- package/.claude/commands/flow-nexus/workflow.md +0 -115
- package/.claude-flow-novice/dist/cli/index.js +0 -45
- package/.claude-flow-novice/dist/core/index.js +0 -22
- package/.claude-flow-novice/dist/mcp/mcp-server-novice.js +0 -595
- package/.claude-flow-novice/dist/mcp/mcp-server-sdk.js +0 -649
- package/.claude-flow-novice/dist/mcp/mcp-server-with-slash-commands.js +0 -776
- package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/claude-md.js +0 -1101
- package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +0 -265
- /package/{.claude → .claude-flow-novice/.claude}/agents/README.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/consensus/README.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/core/coder.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/core/planner.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/core/researcher.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/core/reviewer.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/core/tester.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/optimization/README.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/swarm/README.md +0 -0
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Result Analyzer - Intelligent Failure Categorization and Analysis
|
|
3
|
+
*
|
|
4
|
+
* Analyzes test results to categorize failures, identify patterns, and provide
|
|
5
|
+
* actionable insights for fixing issues.
|
|
6
|
+
*
|
|
7
|
+
* Key Features:
|
|
8
|
+
* - Failure pattern recognition
|
|
9
|
+
* - Root cause analysis
|
|
10
|
+
* - Impact assessment
|
|
11
|
+
* - Priority classification
|
|
12
|
+
* - Suggested fix strategies
|
|
13
|
+
*/ import { EventEmitter } from 'events';
|
|
14
|
+
export class TestResultAnalyzer extends EventEmitter {
|
|
15
|
+
logger;
|
|
16
|
+
knownPatterns = new Map();
|
|
17
|
+
failureHistory = new Map();
|
|
18
|
+
constructor(logger){
|
|
19
|
+
super(), this.logger = logger;
|
|
20
|
+
this.initializeKnownPatterns();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Analyze test failures and provide comprehensive analysis
|
|
24
|
+
*/ async analyzeFailures(testResults) {
|
|
25
|
+
this.logger.info('Analyzing test failures', {
|
|
26
|
+
totalFailures: testResults.failed,
|
|
27
|
+
totalTests: testResults.totalTests
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
// Generate failure summary
|
|
31
|
+
const summary = this.generateFailureSummary(testResults);
|
|
32
|
+
// Categorize failures
|
|
33
|
+
const categories = this.categorizeFailures(testResults.failures);
|
|
34
|
+
// Detect patterns
|
|
35
|
+
const patterns = await this.detectPatterns(testResults.failures);
|
|
36
|
+
// Identify root causes
|
|
37
|
+
const rootCauses = await this.identifyRootCauses(testResults.failures, patterns);
|
|
38
|
+
// Generate recommendations
|
|
39
|
+
const recommendations = this.generateRecommendations(testResults.failures, patterns, rootCauses);
|
|
40
|
+
// Assess impact
|
|
41
|
+
const impactAssessment = this.assessImpact(testResults.failures);
|
|
42
|
+
const analysis = {
|
|
43
|
+
testResults,
|
|
44
|
+
summary,
|
|
45
|
+
categories,
|
|
46
|
+
patterns,
|
|
47
|
+
rootCauses,
|
|
48
|
+
recommendations,
|
|
49
|
+
impactAssessment
|
|
50
|
+
};
|
|
51
|
+
this.emit('analysis:completed', {
|
|
52
|
+
analysis
|
|
53
|
+
});
|
|
54
|
+
return analysis;
|
|
55
|
+
} catch (error) {
|
|
56
|
+
this.logger.error('Failed to analyze test failures', {
|
|
57
|
+
error
|
|
58
|
+
});
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Generate failure summary statistics
|
|
64
|
+
*/ generateFailureSummary(testResults) {
|
|
65
|
+
const failures = testResults.failures;
|
|
66
|
+
const summary = {
|
|
67
|
+
totalFailures: failures.length,
|
|
68
|
+
criticalFailures: failures.filter((f)=>f.severity === 'critical').length,
|
|
69
|
+
highFailures: failures.filter((f)=>f.severity === 'high').length,
|
|
70
|
+
mediumFailures: failures.filter((f)=>f.severity === 'medium').length,
|
|
71
|
+
lowFailures: failures.filter((f)=>f.severity === 'low').length,
|
|
72
|
+
byLayer: new Map(),
|
|
73
|
+
byCategory: new Map(),
|
|
74
|
+
bySeverity: new Map()
|
|
75
|
+
};
|
|
76
|
+
// Group by layer
|
|
77
|
+
for (const failure of failures){
|
|
78
|
+
const layerCount = summary.byLayer.get(failure.layer) || 0;
|
|
79
|
+
summary.byLayer.set(failure.layer, layerCount + 1);
|
|
80
|
+
const categoryCount = summary.byCategory.get(failure.category) || 0;
|
|
81
|
+
summary.byCategory.set(failure.category, categoryCount + 1);
|
|
82
|
+
const severityCount = summary.bySeverity.get(failure.severity) || 0;
|
|
83
|
+
summary.bySeverity.set(failure.severity, severityCount + 1);
|
|
84
|
+
}
|
|
85
|
+
return summary;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Categorize failures by characteristics
|
|
89
|
+
*/ categorizeFailures(failures) {
|
|
90
|
+
const categories = new Map();
|
|
91
|
+
for (const failure of failures){
|
|
92
|
+
const category = this.determineCategory(failure);
|
|
93
|
+
if (!categories.has(category)) {
|
|
94
|
+
categories.set(category, []);
|
|
95
|
+
}
|
|
96
|
+
categories.get(category).push(failure);
|
|
97
|
+
}
|
|
98
|
+
return categories;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Determine failure category from error patterns
|
|
102
|
+
*/ determineCategory(failure) {
|
|
103
|
+
const error = failure.error.toLowerCase();
|
|
104
|
+
const stack = failure.stackTrace.toLowerCase();
|
|
105
|
+
// API/Network failures
|
|
106
|
+
if (error.includes('fetch') || error.includes('network') || error.includes('xhr') || error.includes('api')) {
|
|
107
|
+
return 'network-api';
|
|
108
|
+
}
|
|
109
|
+
// Database/Data failures
|
|
110
|
+
if (error.includes('database') || error.includes('query') || error.includes('connection') || error.includes('transaction')) {
|
|
111
|
+
return 'database';
|
|
112
|
+
}
|
|
113
|
+
// Rendering/UI failures
|
|
114
|
+
if (error.includes('render') || error.includes('component') || error.includes('dom') || error.includes('element not found')) {
|
|
115
|
+
return 'rendering';
|
|
116
|
+
}
|
|
117
|
+
// State management failures
|
|
118
|
+
if (error.includes('state') || error.includes('store') || error.includes('reducer') || error.includes('dispatch')) {
|
|
119
|
+
return 'state-management';
|
|
120
|
+
}
|
|
121
|
+
// Authentication/Authorization failures
|
|
122
|
+
if (error.includes('auth') || error.includes('permission') || error.includes('unauthorized') || error.includes('forbidden')) {
|
|
123
|
+
return 'authentication';
|
|
124
|
+
}
|
|
125
|
+
// Validation failures
|
|
126
|
+
if (error.includes('validation') || error.includes('invalid') || error.includes('required field')) {
|
|
127
|
+
return 'validation';
|
|
128
|
+
}
|
|
129
|
+
// Timing/Race condition failures
|
|
130
|
+
if (error.includes('timeout') || error.includes('race') || error.includes('async') || error.includes('promise')) {
|
|
131
|
+
return 'timing-async';
|
|
132
|
+
}
|
|
133
|
+
// Memory/Resource failures
|
|
134
|
+
if (error.includes('memory') || error.includes('heap') || error.includes('resource') || error.includes('leak')) {
|
|
135
|
+
return 'resource';
|
|
136
|
+
}
|
|
137
|
+
// Configuration failures
|
|
138
|
+
if (error.includes('config') || error.includes('environment') || error.includes('variable')) {
|
|
139
|
+
return 'configuration';
|
|
140
|
+
}
|
|
141
|
+
// Dependency failures
|
|
142
|
+
if (error.includes('module') || error.includes('import') || error.includes('require') || error.includes('dependency')) {
|
|
143
|
+
return 'dependency';
|
|
144
|
+
}
|
|
145
|
+
return 'unknown';
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Detect patterns in failures
|
|
149
|
+
*/ async detectPatterns(failures) {
|
|
150
|
+
const patterns = [];
|
|
151
|
+
const errorGroups = new Map();
|
|
152
|
+
// Group by similar errors
|
|
153
|
+
for (const failure of failures){
|
|
154
|
+
const errorKey = this.extractErrorKey(failure.error);
|
|
155
|
+
if (!errorGroups.has(errorKey)) {
|
|
156
|
+
errorGroups.set(errorKey, []);
|
|
157
|
+
}
|
|
158
|
+
errorGroups.get(errorKey).push(failure);
|
|
159
|
+
}
|
|
160
|
+
// Create patterns for groups with multiple occurrences
|
|
161
|
+
for (const [errorKey, groupFailures] of errorGroups){
|
|
162
|
+
if (groupFailures.length > 1) {
|
|
163
|
+
const pattern = {
|
|
164
|
+
id: `pattern_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
|
|
165
|
+
pattern: errorKey,
|
|
166
|
+
description: this.generatePatternDescription(groupFailures),
|
|
167
|
+
occurrences: groupFailures.length,
|
|
168
|
+
affectedTests: groupFailures.map((f)=>f.testName),
|
|
169
|
+
confidence: Math.min(groupFailures.length / 10, 1),
|
|
170
|
+
suggestedFix: this.suggestFixForPattern(errorKey, groupFailures),
|
|
171
|
+
relatedPatterns: []
|
|
172
|
+
};
|
|
173
|
+
patterns.push(pattern);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Check against known patterns
|
|
177
|
+
for (const pattern of this.knownPatterns.values()){
|
|
178
|
+
const matchingFailures = failures.filter((f)=>this.matchesPattern(f, pattern.pattern));
|
|
179
|
+
if (matchingFailures.length > 0) {
|
|
180
|
+
patterns.push({
|
|
181
|
+
...pattern,
|
|
182
|
+
occurrences: matchingFailures.length,
|
|
183
|
+
affectedTests: matchingFailures.map((f)=>f.testName)
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return patterns;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Extract error key for grouping
|
|
191
|
+
*/ extractErrorKey(error) {
|
|
192
|
+
// Remove specific values and keep structure
|
|
193
|
+
return error.replace(/\d+/g, 'N') // Replace numbers
|
|
194
|
+
.replace(/'[^']*'/g, 'STRING') // Replace strings
|
|
195
|
+
.replace(/"[^"]*"/g, 'STRING').replace(/\b[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\b/gi, 'UUID') // Replace UUIDs
|
|
196
|
+
.replace(/\s+/g, ' ') // Normalize whitespace
|
|
197
|
+
.trim().toLowerCase();
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Generate pattern description
|
|
201
|
+
*/ generatePatternDescription(failures) {
|
|
202
|
+
const layers = [
|
|
203
|
+
...new Set(failures.map((f)=>f.layer))
|
|
204
|
+
];
|
|
205
|
+
const categories = [
|
|
206
|
+
...new Set(failures.map((f)=>f.category))
|
|
207
|
+
];
|
|
208
|
+
return `Pattern affecting ${failures.length} tests in ${layers.join(', ')} layer(s), ${categories.join(', ')} test(s)`;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Suggest fix for pattern
|
|
212
|
+
*/ suggestFixForPattern(errorKey, failures) {
|
|
213
|
+
const category = this.determineCategory(failures[0]);
|
|
214
|
+
const suggestions = {
|
|
215
|
+
'network-api': 'Review API endpoint configurations and network connectivity',
|
|
216
|
+
database: 'Check database connection strings and query syntax',
|
|
217
|
+
rendering: 'Verify component props and DOM structure',
|
|
218
|
+
'state-management': 'Validate state updates and action dispatchers',
|
|
219
|
+
authentication: 'Review authentication tokens and permission checks',
|
|
220
|
+
validation: 'Update validation schemas and error handling',
|
|
221
|
+
'timing-async': 'Add proper async/await handling and increase timeouts',
|
|
222
|
+
resource: 'Review resource allocation and cleanup logic',
|
|
223
|
+
configuration: 'Verify environment configuration and variables',
|
|
224
|
+
dependency: 'Update dependencies and check import paths'
|
|
225
|
+
};
|
|
226
|
+
return suggestions[category] || 'Investigate root cause and apply targeted fix';
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Check if failure matches pattern
|
|
230
|
+
*/ matchesPattern(failure, pattern) {
|
|
231
|
+
const errorKey = this.extractErrorKey(failure.error);
|
|
232
|
+
return errorKey.includes(pattern.toLowerCase()) || pattern.toLowerCase().includes(errorKey);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Identify root causes
|
|
236
|
+
*/ async identifyRootCauses(failures, patterns) {
|
|
237
|
+
const rootCauses = [];
|
|
238
|
+
const causesMap = new Map();
|
|
239
|
+
// Analyze patterns for root causes
|
|
240
|
+
for (const pattern of patterns){
|
|
241
|
+
const category = this.determineCategory(failures[0]);
|
|
242
|
+
const causeId = `cause_${category}`;
|
|
243
|
+
if (!causesMap.has(causeId)) {
|
|
244
|
+
const rootCause = {
|
|
245
|
+
id: causeId,
|
|
246
|
+
category,
|
|
247
|
+
description: this.generateRootCauseDescription(category, pattern),
|
|
248
|
+
evidence: [
|
|
249
|
+
pattern.description
|
|
250
|
+
],
|
|
251
|
+
confidence: pattern.confidence,
|
|
252
|
+
affectedComponents: this.extractAffectedComponents(failures),
|
|
253
|
+
potentialSolutions: this.generatePotentialSolutions(category),
|
|
254
|
+
priority: this.calculateRootCausePriority(failures)
|
|
255
|
+
};
|
|
256
|
+
causesMap.set(causeId, rootCause);
|
|
257
|
+
} else {
|
|
258
|
+
const existing = causesMap.get(causeId);
|
|
259
|
+
existing.evidence.push(pattern.description);
|
|
260
|
+
existing.confidence = Math.min(existing.confidence + 0.1, 1);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return Array.from(causesMap.values());
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Generate root cause description
|
|
267
|
+
*/ generateRootCauseDescription(category, pattern) {
|
|
268
|
+
const descriptions = {
|
|
269
|
+
'network-api': 'API communication or network connectivity issues',
|
|
270
|
+
database: 'Database query or connection problems',
|
|
271
|
+
rendering: 'Component rendering or DOM manipulation issues',
|
|
272
|
+
'state-management': 'State synchronization or update problems',
|
|
273
|
+
authentication: 'Authentication or authorization failures',
|
|
274
|
+
validation: 'Data validation or schema mismatch issues',
|
|
275
|
+
'timing-async': 'Asynchronous operation or timing problems',
|
|
276
|
+
resource: 'Resource management or memory issues',
|
|
277
|
+
configuration: 'Configuration or environment setup problems',
|
|
278
|
+
dependency: 'Module dependency or import issues'
|
|
279
|
+
};
|
|
280
|
+
return descriptions[category] || `${category} related issues`;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Extract affected components
|
|
284
|
+
*/ extractAffectedComponents(failures) {
|
|
285
|
+
const components = new Set();
|
|
286
|
+
for (const failure of failures){
|
|
287
|
+
if (failure.affectedComponents && Array.isArray(failure.affectedComponents)) {
|
|
288
|
+
failure.affectedComponents.forEach((comp)=>components.add(comp));
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return Array.from(components);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Generate potential solutions
|
|
295
|
+
*/ generatePotentialSolutions(category) {
|
|
296
|
+
const solutions = {
|
|
297
|
+
'network-api': [
|
|
298
|
+
'Verify API endpoint URLs',
|
|
299
|
+
'Check CORS configuration',
|
|
300
|
+
'Add proper error handling for network failures',
|
|
301
|
+
'Implement retry logic with exponential backoff'
|
|
302
|
+
],
|
|
303
|
+
database: [
|
|
304
|
+
'Verify database connection strings',
|
|
305
|
+
'Check query syntax and parameters',
|
|
306
|
+
'Add proper transaction handling',
|
|
307
|
+
'Implement connection pooling'
|
|
308
|
+
],
|
|
309
|
+
rendering: [
|
|
310
|
+
'Verify component props are correctly passed',
|
|
311
|
+
'Check for null/undefined values before rendering',
|
|
312
|
+
'Add proper error boundaries',
|
|
313
|
+
'Use conditional rendering for optional elements'
|
|
314
|
+
],
|
|
315
|
+
'state-management': [
|
|
316
|
+
'Verify action dispatchers are correctly wired',
|
|
317
|
+
'Check reducer logic for state updates',
|
|
318
|
+
'Add proper state initialization',
|
|
319
|
+
'Use immutable update patterns'
|
|
320
|
+
],
|
|
321
|
+
authentication: [
|
|
322
|
+
'Verify token generation and validation',
|
|
323
|
+
'Check permission configurations',
|
|
324
|
+
'Add proper session management',
|
|
325
|
+
'Implement token refresh logic'
|
|
326
|
+
],
|
|
327
|
+
validation: [
|
|
328
|
+
'Update validation schemas',
|
|
329
|
+
'Add comprehensive error messages',
|
|
330
|
+
'Implement client-side validation',
|
|
331
|
+
'Use consistent validation rules'
|
|
332
|
+
],
|
|
333
|
+
'timing-async': [
|
|
334
|
+
'Add proper async/await handling',
|
|
335
|
+
'Increase timeout values',
|
|
336
|
+
'Implement proper promise chaining',
|
|
337
|
+
'Use Promise.all for parallel operations'
|
|
338
|
+
],
|
|
339
|
+
resource: [
|
|
340
|
+
'Implement proper cleanup in useEffect/componentWillUnmount',
|
|
341
|
+
'Check for memory leaks',
|
|
342
|
+
'Add resource pooling',
|
|
343
|
+
'Implement proper caching strategies'
|
|
344
|
+
],
|
|
345
|
+
configuration: [
|
|
346
|
+
'Verify environment variables',
|
|
347
|
+
'Check configuration file syntax',
|
|
348
|
+
'Add proper default values',
|
|
349
|
+
'Use configuration validation'
|
|
350
|
+
],
|
|
351
|
+
dependency: [
|
|
352
|
+
'Update outdated dependencies',
|
|
353
|
+
'Check import paths',
|
|
354
|
+
'Verify package.json configurations',
|
|
355
|
+
'Use consistent module resolution'
|
|
356
|
+
]
|
|
357
|
+
};
|
|
358
|
+
return solutions[category] || [
|
|
359
|
+
'Investigate and apply appropriate fix'
|
|
360
|
+
];
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Calculate root cause priority
|
|
364
|
+
*/ calculateRootCausePriority(failures) {
|
|
365
|
+
let priority = 50;
|
|
366
|
+
// Severity impact
|
|
367
|
+
const criticalCount = failures.filter((f)=>f.severity === 'critical').length;
|
|
368
|
+
const highCount = failures.filter((f)=>f.severity === 'high').length;
|
|
369
|
+
priority += criticalCount * 10;
|
|
370
|
+
priority += highCount * 5;
|
|
371
|
+
// Quantity impact
|
|
372
|
+
priority += Math.min(failures.length * 2, 30);
|
|
373
|
+
return Math.min(priority, 100);
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Generate recommendations
|
|
377
|
+
*/ generateRecommendations(failures, patterns, rootCauses) {
|
|
378
|
+
const recommendations = [];
|
|
379
|
+
// Recommendations from root causes
|
|
380
|
+
for (const cause of rootCauses){
|
|
381
|
+
const recommendation = {
|
|
382
|
+
type: cause.priority > 70 ? 'fix' : cause.priority > 50 ? 'refactor' : 'investigate',
|
|
383
|
+
priority: this.mapPriorityToLevel(cause.priority),
|
|
384
|
+
description: cause.potentialSolutions[0],
|
|
385
|
+
reasoning: `Root cause: ${cause.description}. Affects ${cause.affectedComponents.length} component(s).`,
|
|
386
|
+
estimatedEffort: this.estimateEffort(cause.priority, cause.affectedComponents.length),
|
|
387
|
+
expectedImpact: this.estimateImpact(failures, cause)
|
|
388
|
+
};
|
|
389
|
+
recommendations.push(recommendation);
|
|
390
|
+
}
|
|
391
|
+
// Pattern-based recommendations
|
|
392
|
+
for (const pattern of patterns.slice(0, 3)){
|
|
393
|
+
// Top 3 patterns
|
|
394
|
+
if (pattern.occurrences > 2) {
|
|
395
|
+
recommendations.push({
|
|
396
|
+
type: 'fix',
|
|
397
|
+
priority: 'high',
|
|
398
|
+
description: pattern.suggestedFix,
|
|
399
|
+
reasoning: `Pattern detected in ${pattern.occurrences} tests`,
|
|
400
|
+
estimatedEffort: 30,
|
|
401
|
+
expectedImpact: pattern.occurrences / failures.length * 100
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
// General recommendations
|
|
406
|
+
if (failures.filter((f)=>f.category === 'e2e').length > failures.length * 0.5) {
|
|
407
|
+
recommendations.push({
|
|
408
|
+
type: 'investigate',
|
|
409
|
+
priority: 'medium',
|
|
410
|
+
description: 'High number of E2E test failures - review integration points',
|
|
411
|
+
reasoning: 'E2E failures often indicate integration or environment issues',
|
|
412
|
+
estimatedEffort: 45,
|
|
413
|
+
expectedImpact: 40
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
return recommendations.sort((a, b)=>{
|
|
417
|
+
const priorityOrder = {
|
|
418
|
+
critical: 4,
|
|
419
|
+
high: 3,
|
|
420
|
+
medium: 2,
|
|
421
|
+
low: 1
|
|
422
|
+
};
|
|
423
|
+
return priorityOrder[b.priority] - priorityOrder[a.priority];
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Map priority number to level
|
|
428
|
+
*/ mapPriorityToLevel(priority) {
|
|
429
|
+
if (priority >= 80) return 'critical';
|
|
430
|
+
if (priority >= 60) return 'high';
|
|
431
|
+
if (priority >= 40) return 'medium';
|
|
432
|
+
return 'low';
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Estimate effort
|
|
436
|
+
*/ estimateEffort(priority, componentCount) {
|
|
437
|
+
const basEffort = 20; // minutes
|
|
438
|
+
const priorityMultiplier = priority / 50;
|
|
439
|
+
const complexityMultiplier = 1 + componentCount * 0.2;
|
|
440
|
+
return Math.round(basEffort * priorityMultiplier * complexityMultiplier);
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Estimate impact
|
|
444
|
+
*/ estimateImpact(failures, cause) {
|
|
445
|
+
const relatedFailures = failures.filter((f)=>cause.affectedComponents.some((c)=>f.affectedComponents.includes(c)));
|
|
446
|
+
return relatedFailures.length / failures.length * 100;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Assess impact
|
|
450
|
+
*/ assessImpact(failures) {
|
|
451
|
+
const criticalFailures = failures.filter((f)=>f.severity === 'critical').length;
|
|
452
|
+
const highFailures = failures.filter((f)=>f.severity === 'high').length;
|
|
453
|
+
// Determine users affected
|
|
454
|
+
let usersAffected = 'none';
|
|
455
|
+
if (failures.length > 10) usersAffected = 'all';
|
|
456
|
+
else if (failures.length > 5) usersAffected = 'many';
|
|
457
|
+
else if (failures.length > 2) usersAffected = 'few';
|
|
458
|
+
// Features affected
|
|
459
|
+
const featuresAffected = [
|
|
460
|
+
...new Set(failures.flatMap((f)=>f.affectedComponents))
|
|
461
|
+
];
|
|
462
|
+
// Business impact
|
|
463
|
+
let businessImpact = 'low';
|
|
464
|
+
if (criticalFailures > 0) businessImpact = 'critical';
|
|
465
|
+
else if (highFailures > 3) businessImpact = 'high';
|
|
466
|
+
else if (failures.length > 5) businessImpact = 'medium';
|
|
467
|
+
// Urgency
|
|
468
|
+
const urgency = Math.min(50 + criticalFailures * 20 + highFailures * 10 + failures.length * 2, 100);
|
|
469
|
+
// Risk level
|
|
470
|
+
let riskLevel = 'low';
|
|
471
|
+
if (criticalFailures > 0) riskLevel = 'critical';
|
|
472
|
+
else if (highFailures > 2) riskLevel = 'high';
|
|
473
|
+
else if (failures.length > 5) riskLevel = 'medium';
|
|
474
|
+
return {
|
|
475
|
+
usersAffected,
|
|
476
|
+
featuresAffected,
|
|
477
|
+
businessImpact,
|
|
478
|
+
urgency,
|
|
479
|
+
riskLevel
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Initialize known patterns
|
|
484
|
+
*/ initializeKnownPatterns() {
|
|
485
|
+
const commonPatterns = [
|
|
486
|
+
{
|
|
487
|
+
id: 'api-timeout',
|
|
488
|
+
pattern: 'timeout',
|
|
489
|
+
description: 'API request timeout pattern',
|
|
490
|
+
occurrences: 0,
|
|
491
|
+
affectedTests: [],
|
|
492
|
+
confidence: 0.9,
|
|
493
|
+
suggestedFix: 'Increase timeout values or optimize API response time',
|
|
494
|
+
relatedPatterns: [
|
|
495
|
+
'network-api'
|
|
496
|
+
]
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
id: 'null-reference',
|
|
500
|
+
pattern: 'cannot read property',
|
|
501
|
+
description: 'Null reference error pattern',
|
|
502
|
+
occurrences: 0,
|
|
503
|
+
affectedTests: [],
|
|
504
|
+
confidence: 0.95,
|
|
505
|
+
suggestedFix: 'Add null checks and proper initialization',
|
|
506
|
+
relatedPatterns: [
|
|
507
|
+
'rendering',
|
|
508
|
+
'state-management'
|
|
509
|
+
]
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
id: 'async-race',
|
|
513
|
+
pattern: 'promise',
|
|
514
|
+
description: 'Asynchronous operation race condition',
|
|
515
|
+
occurrences: 0,
|
|
516
|
+
affectedTests: [],
|
|
517
|
+
confidence: 0.8,
|
|
518
|
+
suggestedFix: 'Add proper async/await handling and synchronization',
|
|
519
|
+
relatedPatterns: [
|
|
520
|
+
'timing-async'
|
|
521
|
+
]
|
|
522
|
+
}
|
|
523
|
+
];
|
|
524
|
+
for (const pattern of commonPatterns){
|
|
525
|
+
this.knownPatterns.set(pattern.id, pattern);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
//# sourceMappingURL=test-result-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/swarm-fullstack/workflows/test-result-analyzer.ts"],"names":["EventEmitter","TestResultAnalyzer","knownPatterns","Map","failureHistory","logger","initializeKnownPatterns","analyzeFailures","testResults","info","totalFailures","failed","totalTests","summary","generateFailureSummary","categories","categorizeFailures","failures","patterns","detectPatterns","rootCauses","identifyRootCauses","recommendations","generateRecommendations","impactAssessment","assessImpact","analysis","emit","error","length","criticalFailures","filter","f","severity","highFailures","mediumFailures","lowFailures","byLayer","byCategory","bySeverity","failure","layerCount","get","layer","set","categoryCount","category","severityCount","determineCategory","has","push","toLowerCase","stack","stackTrace","includes","errorGroups","errorKey","extractErrorKey","groupFailures","pattern","id","Date","now","Math","random","toString","substr","description","generatePatternDescription","occurrences","affectedTests","map","testName","confidence","min","suggestedFix","suggestFixForPattern","relatedPatterns","values","matchingFailures","matchesPattern","replace","trim","layers","Set","join","suggestions","database","rendering","authentication","validation","resource","configuration","dependency","causesMap","causeId","rootCause","generateRootCauseDescription","evidence","affectedComponents","extractAffectedComponents","potentialSolutions","generatePotentialSolutions","priority","calculateRootCausePriority","existing","Array","from","descriptions","components","isArray","forEach","comp","add","solutions","criticalCount","highCount","cause","recommendation","type","mapPriorityToLevel","reasoning","estimatedEffort","estimateEffort","expectedImpact","estimateImpact","slice","sort","a","b","priorityOrder","critical","high","medium","low","componentCount","basEffort","priorityMultiplier","complexityMultiplier","round","relatedFailures","some","c","usersAffected","featuresAffected","flatMap","businessImpact","urgency","riskLevel","commonPatterns"],"mappings":"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"}
|