claude-flow-novice 1.3.6 → 1.5.1
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 +208 -550
- package/.claude/agents/architect.md +136 -469
- package/.claude/agents/architecture/system-architect.md +20 -1
- 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 +87 -303
- 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 +22 -11
- 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 +134 -402
- 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 +1 -1
- package/.claude/agents/optimization/performance-monitor.md +1 -1
- package/.claude/agents/planner.md +135 -0
- package/.claude/agents/researcher.md +22 -9
- package/.claude/agents/reviewer.md +291 -0
- package/.claude/agents/security/security-specialist.md +1 -1
- 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/tester.md +21 -11
- 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/commands/fullstack.md +134 -0
- package/.claude/commands/index.js +4 -0
- 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/base-template-generator.md +65 -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.md +135 -0
- package/.claude-flow-novice/.claude/agents/researcher.md +185 -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/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.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 +26 -0
- package/CLAUDE.md +1967 -68
- package/README.md +0 -1
- package/config/build/babel.config.cjs +19 -11
- package/config/typescript/tsconfig.json +1 -1
- 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/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 +5 -97
- package/src/cli/simple-commands/init/templates/CLAUDE.md +163 -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/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/backend-dev.json +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/code-analyzer.json +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/coder.json +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/planner.json +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/researcher.json +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/reviewer.json +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/swarm/README.md +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/system-architect.json +0 -0
- /package/{.claude → .claude-flow-novice/.claude}/agents/tester.json +0 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { Worker, isMainThread, parentPort, workerData } from 'worker_threads';
|
|
2
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
3
|
+
import { createServer } from 'http';
|
|
4
|
+
import { SharedBufferBus } from './shared-buffer-bus';
|
|
5
|
+
export class WebSocketCluster {
|
|
6
|
+
workers = new Map();
|
|
7
|
+
sharedBus;
|
|
8
|
+
loadBalancer;
|
|
9
|
+
healthMonitor;
|
|
10
|
+
metrics;
|
|
11
|
+
workerCount;
|
|
12
|
+
basePort;
|
|
13
|
+
constructor(options = {}){
|
|
14
|
+
this.workerCount = options.workerCount || Math.max(2, require('os').cpus().length);
|
|
15
|
+
this.basePort = options.basePort || 8080;
|
|
16
|
+
this.sharedBus = new SharedBufferBus();
|
|
17
|
+
this.loadBalancer = new LoadBalancer(this.workerCount);
|
|
18
|
+
this.healthMonitor = new HealthMonitor();
|
|
19
|
+
this.metrics = {
|
|
20
|
+
totalConnections: 0,
|
|
21
|
+
activeConnections: 0,
|
|
22
|
+
messagesPerSecond: 0,
|
|
23
|
+
averageLatency: 0,
|
|
24
|
+
errorRate: 0
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async start() {
|
|
28
|
+
if (!isMainThread) {
|
|
29
|
+
throw new Error('WebSocketCluster must run in main thread');
|
|
30
|
+
}
|
|
31
|
+
console.log(`Starting WebSocket cluster with ${this.workerCount} workers`);
|
|
32
|
+
// Start worker processes
|
|
33
|
+
for(let i = 0; i < this.workerCount; i++){
|
|
34
|
+
await this.startWorker(i);
|
|
35
|
+
}
|
|
36
|
+
// Start health monitoring
|
|
37
|
+
this.healthMonitor.start(this.workers);
|
|
38
|
+
// Start metrics collection
|
|
39
|
+
this.startMetricsCollection();
|
|
40
|
+
console.log('WebSocket cluster started successfully');
|
|
41
|
+
}
|
|
42
|
+
async startWorker(workerId) {
|
|
43
|
+
const worker = new Worker(__filename, {
|
|
44
|
+
workerData: {
|
|
45
|
+
workerId,
|
|
46
|
+
port: this.basePort + workerId,
|
|
47
|
+
sharedBuffer: this.sharedBus.getSharedBuffer(),
|
|
48
|
+
connectionLimit: Math.floor(10000 / this.workerCount)
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
worker.on('message', (message)=>{
|
|
52
|
+
this.handleWorkerMessage(workerId, message);
|
|
53
|
+
});
|
|
54
|
+
worker.on('error', (error)=>{
|
|
55
|
+
console.error(`Worker ${workerId} error:`, error);
|
|
56
|
+
this.restartWorker(workerId);
|
|
57
|
+
});
|
|
58
|
+
worker.on('exit', (code)=>{
|
|
59
|
+
if (code !== 0) {
|
|
60
|
+
console.error(`Worker ${workerId} exited with code ${code}`);
|
|
61
|
+
this.restartWorker(workerId);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.workers.set(workerId, worker);
|
|
65
|
+
// Wait for worker to be ready
|
|
66
|
+
return new Promise((resolve)=>{
|
|
67
|
+
const readyHandler = (message)=>{
|
|
68
|
+
if (message.type === 'ready' && message.workerId === workerId) {
|
|
69
|
+
worker.off('message', readyHandler);
|
|
70
|
+
resolve();
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
worker.on('message', readyHandler);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async restartWorker(workerId) {
|
|
77
|
+
const worker = this.workers.get(workerId);
|
|
78
|
+
if (worker) {
|
|
79
|
+
worker.terminate();
|
|
80
|
+
this.workers.delete(workerId);
|
|
81
|
+
}
|
|
82
|
+
// Add backoff delay before restarting
|
|
83
|
+
await new Promise((resolve)=>setTimeout(resolve, 1000));
|
|
84
|
+
await this.startWorker(workerId);
|
|
85
|
+
}
|
|
86
|
+
handleWorkerMessage(workerId, message) {
|
|
87
|
+
switch(message.type){
|
|
88
|
+
case 'metrics':
|
|
89
|
+
this.updateMetrics(workerId, message.data);
|
|
90
|
+
break;
|
|
91
|
+
case 'broadcast':
|
|
92
|
+
this.broadcastToAllWorkers(message.data, workerId);
|
|
93
|
+
break;
|
|
94
|
+
case 'route':
|
|
95
|
+
this.routeMessage(message.data);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
broadcastToAllWorkers(data, excludeWorkerId) {
|
|
100
|
+
for (const [workerId, worker] of this.workers){
|
|
101
|
+
if (workerId !== excludeWorkerId) {
|
|
102
|
+
worker.postMessage({
|
|
103
|
+
type: 'broadcast',
|
|
104
|
+
data
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
routeMessage(data) {
|
|
110
|
+
const targetWorker = this.loadBalancer.selectWorker(data.targetId);
|
|
111
|
+
const worker = this.workers.get(targetWorker);
|
|
112
|
+
if (worker) {
|
|
113
|
+
worker.postMessage({
|
|
114
|
+
type: 'route',
|
|
115
|
+
data
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
updateMetrics(workerId, workerMetrics) {
|
|
120
|
+
// Aggregate metrics from all workers
|
|
121
|
+
this.metrics.totalConnections += workerMetrics.connections || 0;
|
|
122
|
+
this.metrics.messagesPerSecond += workerMetrics.messagesPerSecond || 0;
|
|
123
|
+
this.metrics.averageLatency = Math.max(this.metrics.averageLatency, workerMetrics.averageLatency || 0);
|
|
124
|
+
}
|
|
125
|
+
startMetricsCollection() {
|
|
126
|
+
setInterval(()=>{
|
|
127
|
+
// Collect and log cluster metrics
|
|
128
|
+
console.log(`Cluster Metrics:`, {
|
|
129
|
+
activeWorkers: this.workers.size,
|
|
130
|
+
totalConnections: this.metrics.totalConnections,
|
|
131
|
+
messagesPerSecond: this.metrics.messagesPerSecond,
|
|
132
|
+
averageLatency: `${this.metrics.averageLatency.toFixed(2)}ms`
|
|
133
|
+
});
|
|
134
|
+
// Reset counters for next interval
|
|
135
|
+
this.metrics.totalConnections = 0;
|
|
136
|
+
this.metrics.messagesPerSecond = 0;
|
|
137
|
+
}, 5000);
|
|
138
|
+
}
|
|
139
|
+
getMetrics() {
|
|
140
|
+
return {
|
|
141
|
+
...this.metrics
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
async stop() {
|
|
145
|
+
console.log('Stopping WebSocket cluster...');
|
|
146
|
+
for (const [workerId, worker] of this.workers){
|
|
147
|
+
worker.postMessage({
|
|
148
|
+
type: 'shutdown'
|
|
149
|
+
});
|
|
150
|
+
await worker.terminate();
|
|
151
|
+
}
|
|
152
|
+
this.workers.clear();
|
|
153
|
+
this.healthMonitor.stop();
|
|
154
|
+
console.log('WebSocket cluster stopped');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Worker thread implementation
|
|
158
|
+
if (!isMainThread && parentPort) {
|
|
159
|
+
const config = workerData;
|
|
160
|
+
const workerBus = new SharedBufferBus();
|
|
161
|
+
let WebSocketWorker = class WebSocketWorker {
|
|
162
|
+
server;
|
|
163
|
+
connections = new Map();
|
|
164
|
+
metrics = {
|
|
165
|
+
connections: 0,
|
|
166
|
+
messagesPerSecond: 0,
|
|
167
|
+
averageLatency: 0
|
|
168
|
+
};
|
|
169
|
+
constructor(){
|
|
170
|
+
this.setupWebSocketServer();
|
|
171
|
+
this.startMessageProcessor();
|
|
172
|
+
this.startMetricsReporting();
|
|
173
|
+
}
|
|
174
|
+
setupWebSocketServer() {
|
|
175
|
+
const httpServer = createServer();
|
|
176
|
+
this.server = new WebSocketServer({
|
|
177
|
+
server: httpServer,
|
|
178
|
+
perMessageDeflate: {
|
|
179
|
+
zlibDeflateOptions: {
|
|
180
|
+
windowBits: 13,
|
|
181
|
+
memLevel: 7
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
this.server.on('connection', this.handleConnection.bind(this));
|
|
186
|
+
httpServer.listen(config.port, ()=>{
|
|
187
|
+
parentPort?.postMessage({
|
|
188
|
+
type: 'ready',
|
|
189
|
+
workerId: config.workerId
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
handleConnection(ws, request) {
|
|
194
|
+
const connectionId = `${config.workerId}-${Date.now()}-${Math.random()}`;
|
|
195
|
+
this.connections.set(connectionId, ws);
|
|
196
|
+
this.metrics.connections++;
|
|
197
|
+
ws.on('message', async (data)=>{
|
|
198
|
+
const startTime = performance.now();
|
|
199
|
+
try {
|
|
200
|
+
// Parse message and route through shared buffer bus
|
|
201
|
+
const message = JSON.parse(data.toString());
|
|
202
|
+
const binaryData = new TextEncoder().encode(JSON.stringify(message));
|
|
203
|
+
await workerBus.sendMessage(message.type || 0, binaryData, message.priority || 0, message.targetId);
|
|
204
|
+
const latency = performance.now() - startTime;
|
|
205
|
+
this.metrics.averageLatency = this.metrics.averageLatency * 0.9 + latency * 0.1;
|
|
206
|
+
this.metrics.messagesPerSecond++;
|
|
207
|
+
} catch (error) {
|
|
208
|
+
console.error(`Worker ${config.workerId} message error:`, error);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
ws.on('close', ()=>{
|
|
212
|
+
this.connections.delete(connectionId);
|
|
213
|
+
this.metrics.connections--;
|
|
214
|
+
});
|
|
215
|
+
ws.on('error', (error)=>{
|
|
216
|
+
console.error(`Worker ${config.workerId} connection error:`, error);
|
|
217
|
+
this.connections.delete(connectionId);
|
|
218
|
+
this.metrics.connections--;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
startMessageProcessor() {
|
|
222
|
+
// Process messages from shared buffer bus
|
|
223
|
+
setImmediate(async ()=>{
|
|
224
|
+
while(true){
|
|
225
|
+
const message = await workerBus.receiveMessage(100);
|
|
226
|
+
if (message) {
|
|
227
|
+
this.broadcastToConnections(message);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
broadcastToConnections(message) {
|
|
233
|
+
const data = JSON.stringify({
|
|
234
|
+
type: message.type,
|
|
235
|
+
data: new TextDecoder().decode(message.data),
|
|
236
|
+
timestamp: Date.now()
|
|
237
|
+
});
|
|
238
|
+
for (const [connectionId, ws] of this.connections){
|
|
239
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
240
|
+
try {
|
|
241
|
+
ws.send(data);
|
|
242
|
+
} catch (error) {
|
|
243
|
+
console.error(`Failed to send to connection ${connectionId}:`, error);
|
|
244
|
+
this.connections.delete(connectionId);
|
|
245
|
+
this.metrics.connections--;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
startMetricsReporting() {
|
|
251
|
+
setInterval(()=>{
|
|
252
|
+
parentPort?.postMessage({
|
|
253
|
+
type: 'metrics',
|
|
254
|
+
data: {
|
|
255
|
+
...this.metrics
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
// Reset message counter
|
|
259
|
+
this.metrics.messagesPerSecond = 0;
|
|
260
|
+
}, 1000);
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
// Handle messages from main thread
|
|
264
|
+
parentPort.on('message', (message)=>{
|
|
265
|
+
switch(message.type){
|
|
266
|
+
case 'broadcast':
|
|
267
|
+
break;
|
|
268
|
+
case 'route':
|
|
269
|
+
break;
|
|
270
|
+
case 'shutdown':
|
|
271
|
+
process.exit(0);
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
new WebSocketWorker();
|
|
276
|
+
}
|
|
277
|
+
let LoadBalancer = class LoadBalancer {
|
|
278
|
+
workerCount;
|
|
279
|
+
currentWorker = 0;
|
|
280
|
+
workerLoads;
|
|
281
|
+
constructor(workerCount){
|
|
282
|
+
this.workerCount = workerCount;
|
|
283
|
+
this.workerLoads = new Array(workerCount).fill(0);
|
|
284
|
+
}
|
|
285
|
+
selectWorker(targetId) {
|
|
286
|
+
if (targetId !== undefined && targetId >= 0 && targetId < this.workerCount) {
|
|
287
|
+
return targetId;
|
|
288
|
+
}
|
|
289
|
+
// Round-robin with load consideration
|
|
290
|
+
let selectedWorker = this.currentWorker;
|
|
291
|
+
let minLoad = this.workerLoads[selectedWorker];
|
|
292
|
+
for(let i = 0; i < this.workerCount; i++){
|
|
293
|
+
if (this.workerLoads[i] < minLoad) {
|
|
294
|
+
minLoad = this.workerLoads[i];
|
|
295
|
+
selectedWorker = i;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
this.currentWorker = (this.currentWorker + 1) % this.workerCount;
|
|
299
|
+
this.workerLoads[selectedWorker]++;
|
|
300
|
+
return selectedWorker;
|
|
301
|
+
}
|
|
302
|
+
updateWorkerLoad(workerId, load) {
|
|
303
|
+
if (workerId >= 0 && workerId < this.workerCount) {
|
|
304
|
+
this.workerLoads[workerId] = load;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
let HealthMonitor = class HealthMonitor {
|
|
309
|
+
healthCheckInterval;
|
|
310
|
+
workers = new Map();
|
|
311
|
+
start(workers) {
|
|
312
|
+
this.workers = workers;
|
|
313
|
+
this.healthCheckInterval = setInterval(()=>{
|
|
314
|
+
this.performHealthCheck();
|
|
315
|
+
}, 10000); // Health check every 10 seconds
|
|
316
|
+
}
|
|
317
|
+
performHealthCheck() {
|
|
318
|
+
for (const [workerId, worker] of this.workers){
|
|
319
|
+
// Send ping to worker
|
|
320
|
+
worker.postMessage({
|
|
321
|
+
type: 'ping',
|
|
322
|
+
timestamp: Date.now()
|
|
323
|
+
});
|
|
324
|
+
// Set timeout for response
|
|
325
|
+
const timeout = setTimeout(()=>{
|
|
326
|
+
console.warn(`Worker ${workerId} health check timeout`);
|
|
327
|
+
}, 5000);
|
|
328
|
+
const responseHandler = (message)=>{
|
|
329
|
+
if (message.type === 'pong' && message.workerId === workerId) {
|
|
330
|
+
clearTimeout(timeout);
|
|
331
|
+
worker.off('message', responseHandler);
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
worker.on('message', responseHandler);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
stop() {
|
|
338
|
+
if (this.healthCheckInterval) {
|
|
339
|
+
clearInterval(this.healthCheckInterval);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
//# sourceMappingURL=websocket-cluster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/communication/websocket-cluster.ts"],"names":["Worker","isMainThread","parentPort","workerData","WebSocketServer","WebSocket","createServer","SharedBufferBus","WebSocketCluster","workers","Map","sharedBus","loadBalancer","healthMonitor","metrics","workerCount","basePort","options","Math","max","require","cpus","length","LoadBalancer","HealthMonitor","totalConnections","activeConnections","messagesPerSecond","averageLatency","errorRate","start","Error","console","log","i","startWorker","startMetricsCollection","workerId","worker","__filename","port","sharedBuffer","getSharedBuffer","connectionLimit","floor","on","message","handleWorkerMessage","error","restartWorker","code","set","Promise","resolve","readyHandler","type","off","get","terminate","delete","setTimeout","updateMetrics","data","broadcastToAllWorkers","routeMessage","excludeWorkerId","postMessage","targetWorker","selectWorker","targetId","workerMetrics","connections","setInterval","activeWorkers","size","toFixed","getMetrics","stop","clear","config","workerBus","WebSocketWorker","server","setupWebSocketServer","startMessageProcessor","startMetricsReporting","httpServer","perMessageDeflate","zlibDeflateOptions","windowBits","memLevel","handleConnection","bind","listen","ws","request","connectionId","Date","now","random","startTime","performance","JSON","parse","toString","binaryData","TextEncoder","encode","stringify","sendMessage","priority","latency","setImmediate","receiveMessage","broadcastToConnections","TextDecoder","decode","timestamp","readyState","OPEN","send","process","exit","currentWorker","workerLoads","Array","fill","undefined","selectedWorker","minLoad","updateWorkerLoad","load","healthCheckInterval","performHealthCheck","timeout","warn","responseHandler","clearTimeout","clearInterval"],"mappings":"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"}
|