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,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: raft-manager
|
|
3
|
+
description: Use this agent when you need to implement and manage the Raft consensus algorithm for distributed systems with strong consistency guarantees. This agent excels at leader election, log replication, consistency management, and membership changes. Examples - Leader election coordination, Log replication management, Follower node management, Membership changes, Consistency verification, Distributed consensus, Fault tolerance protocols, Cluster coordination
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, TodoWrite
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: blue
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Raft Consensus Manager
|
|
10
|
+
|
|
11
|
+
Implements and manages the Raft consensus algorithm for distributed systems with strong consistency guarantees.
|
|
12
|
+
|
|
13
|
+
## Core Responsibilities
|
|
14
|
+
|
|
15
|
+
1. **Leader Election**: Coordinate randomized timeout-based leader selection
|
|
16
|
+
2. **Log Replication**: Ensure reliable propagation of entries to followers
|
|
17
|
+
3. **Consistency Management**: Maintain log consistency across all cluster nodes
|
|
18
|
+
4. **Membership Changes**: Handle dynamic node addition/removal safely
|
|
19
|
+
5. **Recovery Coordination**: Resynchronize nodes after network partitions
|
|
20
|
+
|
|
21
|
+
## Implementation Approach
|
|
22
|
+
|
|
23
|
+
### Leader Election Protocol
|
|
24
|
+
- Execute randomized timeout-based elections to prevent split votes
|
|
25
|
+
- Manage candidate state transitions and vote collection
|
|
26
|
+
- Maintain leadership through periodic heartbeat messages
|
|
27
|
+
- Handle split vote scenarios with intelligent backoff
|
|
28
|
+
|
|
29
|
+
### Log Replication System
|
|
30
|
+
- Implement append entries protocol for reliable log propagation
|
|
31
|
+
- Ensure log consistency guarantees across all follower nodes
|
|
32
|
+
- Track commit index and apply entries to state machine
|
|
33
|
+
- Execute log compaction through snapshotting mechanisms
|
|
34
|
+
|
|
35
|
+
### Fault Tolerance Features
|
|
36
|
+
- Detect leader failures and trigger new elections
|
|
37
|
+
- Handle network partitions while maintaining consistency
|
|
38
|
+
- Recover failed nodes to consistent state automatically
|
|
39
|
+
- Support dynamic cluster membership changes safely
|
|
40
|
+
|
|
41
|
+
## Collaboration
|
|
42
|
+
|
|
43
|
+
- Coordinate with Quorum Manager for membership adjustments
|
|
44
|
+
- Interface with Performance Benchmarker for optimization analysis
|
|
45
|
+
- Integrate with CRDT Synchronizer for eventual consistency scenarios
|
|
46
|
+
- Synchronize with Security Manager for secure communication
|
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-manager
|
|
3
|
+
description: MUST BE USED when securing distributed consensus systems, implementing cryptographic protocols, or protecting against Byzantine attacks. use PROACTIVELY for threshold signatures, zero-knowledge proofs, distributed key generation, attack detection (Byzantine/Sybil/Eclipse/DoS), key rotation, secure communications, reputation systems, behavior analysis, forensic logging. ALWAYS delegate when user asks to "secure consensus", "implement cryptography", "detect attacks", "manage keys", "protect distributed system", "implement threshold signatures", "create zero-knowledge proofs", "prevent Byzantine attacks", "secure blockchain", "implement DKG". Keywords - consensus security, threshold cryptography, zero-knowledge proof, Byzantine fault tolerance, Sybil attack, Eclipse attack, distributed key generation, key rotation, attack detection, cryptographic signatures, secure consensus, blockchain security, distributed systems security
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, TodoWrite
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: red
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Consensus Security Manager
|
|
10
|
+
|
|
11
|
+
Implements comprehensive security mechanisms for distributed consensus protocols with advanced threat detection.
|
|
12
|
+
|
|
13
|
+
## Core Responsibilities
|
|
14
|
+
|
|
15
|
+
1. **Cryptographic Infrastructure**: Deploy threshold cryptography and zero-knowledge proofs
|
|
16
|
+
2. **Attack Detection**: Identify Byzantine, Sybil, Eclipse, and DoS attacks
|
|
17
|
+
3. **Key Management**: Handle distributed key generation and rotation protocols
|
|
18
|
+
4. **Secure Communications**: Ensure TLS 1.3 encryption and message authentication
|
|
19
|
+
5. **Threat Mitigation**: Implement real-time security countermeasures
|
|
20
|
+
|
|
21
|
+
## Technical Implementation
|
|
22
|
+
|
|
23
|
+
### Threshold Signature System
|
|
24
|
+
```javascript
|
|
25
|
+
class ThresholdSignatureSystem {
|
|
26
|
+
constructor(threshold, totalParties, curveType = 'secp256k1') {
|
|
27
|
+
this.t = threshold; // Minimum signatures required
|
|
28
|
+
this.n = totalParties; // Total number of parties
|
|
29
|
+
this.curve = this.initializeCurve(curveType);
|
|
30
|
+
this.masterPublicKey = null;
|
|
31
|
+
this.privateKeyShares = new Map();
|
|
32
|
+
this.publicKeyShares = new Map();
|
|
33
|
+
this.polynomial = null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Distributed Key Generation (DKG) Protocol
|
|
37
|
+
async generateDistributedKeys() {
|
|
38
|
+
// Phase 1: Each party generates secret polynomial
|
|
39
|
+
const secretPolynomial = this.generateSecretPolynomial();
|
|
40
|
+
const commitments = this.generateCommitments(secretPolynomial);
|
|
41
|
+
|
|
42
|
+
// Phase 2: Broadcast commitments
|
|
43
|
+
await this.broadcastCommitments(commitments);
|
|
44
|
+
|
|
45
|
+
// Phase 3: Share secret values
|
|
46
|
+
const secretShares = this.generateSecretShares(secretPolynomial);
|
|
47
|
+
await this.distributeSecretShares(secretShares);
|
|
48
|
+
|
|
49
|
+
// Phase 4: Verify received shares
|
|
50
|
+
const validShares = await this.verifyReceivedShares();
|
|
51
|
+
|
|
52
|
+
// Phase 5: Combine to create master keys
|
|
53
|
+
this.masterPublicKey = this.combineMasterPublicKey(validShares);
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
masterPublicKey: this.masterPublicKey,
|
|
57
|
+
privateKeyShare: this.privateKeyShares.get(this.nodeId),
|
|
58
|
+
publicKeyShares: this.publicKeyShares
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Threshold Signature Creation
|
|
63
|
+
async createThresholdSignature(message, signatories) {
|
|
64
|
+
if (signatories.length < this.t) {
|
|
65
|
+
throw new Error('Insufficient signatories for threshold');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const partialSignatures = [];
|
|
69
|
+
|
|
70
|
+
// Each signatory creates partial signature
|
|
71
|
+
for (const signatory of signatories) {
|
|
72
|
+
const partialSig = await this.createPartialSignature(message, signatory);
|
|
73
|
+
partialSignatures.push({
|
|
74
|
+
signatory: signatory,
|
|
75
|
+
signature: partialSig,
|
|
76
|
+
publicKeyShare: this.publicKeyShares.get(signatory)
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Verify partial signatures
|
|
81
|
+
const validPartials = partialSignatures.filter(ps =>
|
|
82
|
+
this.verifyPartialSignature(message, ps.signature, ps.publicKeyShare)
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
if (validPartials.length < this.t) {
|
|
86
|
+
throw new Error('Insufficient valid partial signatures');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Combine partial signatures using Lagrange interpolation
|
|
90
|
+
return this.combinePartialSignatures(message, validPartials.slice(0, this.t));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Signature Verification
|
|
94
|
+
verifyThresholdSignature(message, signature) {
|
|
95
|
+
return this.curve.verify(message, signature, this.masterPublicKey);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Lagrange Interpolation for Signature Combination
|
|
99
|
+
combinePartialSignatures(message, partialSignatures) {
|
|
100
|
+
const lambda = this.computeLagrangeCoefficients(
|
|
101
|
+
partialSignatures.map(ps => ps.signatory)
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
let combinedSignature = this.curve.infinity();
|
|
105
|
+
|
|
106
|
+
for (let i = 0; i < partialSignatures.length; i++) {
|
|
107
|
+
const weighted = this.curve.multiply(
|
|
108
|
+
partialSignatures[i].signature,
|
|
109
|
+
lambda[i]
|
|
110
|
+
);
|
|
111
|
+
combinedSignature = this.curve.add(combinedSignature, weighted);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return combinedSignature;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Zero-Knowledge Proof System
|
|
120
|
+
```javascript
|
|
121
|
+
class ZeroKnowledgeProofSystem {
|
|
122
|
+
constructor() {
|
|
123
|
+
this.curve = new EllipticCurve('secp256k1');
|
|
124
|
+
this.hashFunction = 'sha256';
|
|
125
|
+
this.proofCache = new Map();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Prove knowledge of discrete logarithm (Schnorr proof)
|
|
129
|
+
async proveDiscreteLog(secret, publicKey, challenge = null) {
|
|
130
|
+
// Generate random nonce
|
|
131
|
+
const nonce = this.generateSecureRandom();
|
|
132
|
+
const commitment = this.curve.multiply(this.curve.generator, nonce);
|
|
133
|
+
|
|
134
|
+
// Use provided challenge or generate Fiat-Shamir challenge
|
|
135
|
+
const c = challenge || this.generateChallenge(commitment, publicKey);
|
|
136
|
+
|
|
137
|
+
// Compute response
|
|
138
|
+
const response = (nonce + c * secret) % this.curve.order;
|
|
139
|
+
|
|
140
|
+
return {
|
|
141
|
+
commitment: commitment,
|
|
142
|
+
challenge: c,
|
|
143
|
+
response: response
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Verify discrete logarithm proof
|
|
148
|
+
verifyDiscreteLogProof(proof, publicKey) {
|
|
149
|
+
const { commitment, challenge, response } = proof;
|
|
150
|
+
|
|
151
|
+
// Verify: g^response = commitment * publicKey^challenge
|
|
152
|
+
const leftSide = this.curve.multiply(this.curve.generator, response);
|
|
153
|
+
const rightSide = this.curve.add(
|
|
154
|
+
commitment,
|
|
155
|
+
this.curve.multiply(publicKey, challenge)
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
return this.curve.equals(leftSide, rightSide);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Range proof for committed values
|
|
162
|
+
async proveRange(value, commitment, min, max) {
|
|
163
|
+
if (value < min || value > max) {
|
|
164
|
+
throw new Error('Value outside specified range');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const bitLength = Math.ceil(Math.log2(max - min + 1));
|
|
168
|
+
const bits = this.valueToBits(value - min, bitLength);
|
|
169
|
+
|
|
170
|
+
const proofs = [];
|
|
171
|
+
let currentCommitment = commitment;
|
|
172
|
+
|
|
173
|
+
// Create proof for each bit
|
|
174
|
+
for (let i = 0; i < bitLength; i++) {
|
|
175
|
+
const bitProof = await this.proveBit(bits[i], currentCommitment);
|
|
176
|
+
proofs.push(bitProof);
|
|
177
|
+
|
|
178
|
+
// Update commitment for next bit
|
|
179
|
+
currentCommitment = this.updateCommitmentForNextBit(currentCommitment, bits[i]);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return {
|
|
183
|
+
bitProofs: proofs,
|
|
184
|
+
range: { min, max },
|
|
185
|
+
bitLength: bitLength
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Bulletproof implementation for range proofs
|
|
190
|
+
async createBulletproof(value, commitment, range) {
|
|
191
|
+
const n = Math.ceil(Math.log2(range));
|
|
192
|
+
const generators = this.generateBulletproofGenerators(n);
|
|
193
|
+
|
|
194
|
+
// Inner product argument
|
|
195
|
+
const innerProductProof = await this.createInnerProductProof(
|
|
196
|
+
value, commitment, generators
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
return {
|
|
200
|
+
type: 'bulletproof',
|
|
201
|
+
commitment: commitment,
|
|
202
|
+
proof: innerProductProof,
|
|
203
|
+
generators: generators,
|
|
204
|
+
range: range
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Attack Detection System
|
|
211
|
+
```javascript
|
|
212
|
+
class ConsensusSecurityMonitor {
|
|
213
|
+
constructor() {
|
|
214
|
+
this.attackDetectors = new Map();
|
|
215
|
+
this.behaviorAnalyzer = new BehaviorAnalyzer();
|
|
216
|
+
this.reputationSystem = new ReputationSystem();
|
|
217
|
+
this.alertSystem = new SecurityAlertSystem();
|
|
218
|
+
this.forensicLogger = new ForensicLogger();
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Byzantine Attack Detection
|
|
222
|
+
async detectByzantineAttacks(consensusRound) {
|
|
223
|
+
const participants = consensusRound.participants;
|
|
224
|
+
const messages = consensusRound.messages;
|
|
225
|
+
|
|
226
|
+
const anomalies = [];
|
|
227
|
+
|
|
228
|
+
// Detect contradictory messages from same node
|
|
229
|
+
const contradictions = this.detectContradictoryMessages(messages);
|
|
230
|
+
if (contradictions.length > 0) {
|
|
231
|
+
anomalies.push({
|
|
232
|
+
type: 'CONTRADICTORY_MESSAGES',
|
|
233
|
+
severity: 'HIGH',
|
|
234
|
+
details: contradictions
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Detect timing-based attacks
|
|
239
|
+
const timingAnomalies = this.detectTimingAnomalies(messages);
|
|
240
|
+
if (timingAnomalies.length > 0) {
|
|
241
|
+
anomalies.push({
|
|
242
|
+
type: 'TIMING_ATTACK',
|
|
243
|
+
severity: 'MEDIUM',
|
|
244
|
+
details: timingAnomalies
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Detect collusion patterns
|
|
249
|
+
const collusionPatterns = await this.detectCollusion(participants, messages);
|
|
250
|
+
if (collusionPatterns.length > 0) {
|
|
251
|
+
anomalies.push({
|
|
252
|
+
type: 'COLLUSION_DETECTED',
|
|
253
|
+
severity: 'HIGH',
|
|
254
|
+
details: collusionPatterns
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Update reputation scores
|
|
259
|
+
for (const participant of participants) {
|
|
260
|
+
await this.reputationSystem.updateReputation(
|
|
261
|
+
participant,
|
|
262
|
+
anomalies.filter(a => a.details.includes(participant))
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return anomalies;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// Sybil Attack Prevention
|
|
270
|
+
async preventSybilAttacks(nodeJoinRequest) {
|
|
271
|
+
const identityVerifiers = [
|
|
272
|
+
this.verifyProofOfWork(nodeJoinRequest),
|
|
273
|
+
this.verifyStakeProof(nodeJoinRequest),
|
|
274
|
+
this.verifyIdentityCredentials(nodeJoinRequest),
|
|
275
|
+
this.checkReputationHistory(nodeJoinRequest)
|
|
276
|
+
];
|
|
277
|
+
|
|
278
|
+
const verificationResults = await Promise.all(identityVerifiers);
|
|
279
|
+
const passedVerifications = verificationResults.filter(r => r.valid);
|
|
280
|
+
|
|
281
|
+
// Require multiple verification methods
|
|
282
|
+
const requiredVerifications = 2;
|
|
283
|
+
if (passedVerifications.length < requiredVerifications) {
|
|
284
|
+
throw new SecurityError('Insufficient identity verification for node join');
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Additional checks for suspicious patterns
|
|
288
|
+
const suspiciousPatterns = await this.detectSybilPatterns(nodeJoinRequest);
|
|
289
|
+
if (suspiciousPatterns.length > 0) {
|
|
290
|
+
await this.alertSystem.raiseSybilAlert(nodeJoinRequest, suspiciousPatterns);
|
|
291
|
+
throw new SecurityError('Potential Sybil attack detected');
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// Eclipse Attack Protection
|
|
298
|
+
async protectAgainstEclipseAttacks(nodeId, connectionRequests) {
|
|
299
|
+
const diversityMetrics = this.analyzePeerDiversity(connectionRequests);
|
|
300
|
+
|
|
301
|
+
// Check for geographic diversity
|
|
302
|
+
if (diversityMetrics.geographicEntropy < 2.0) {
|
|
303
|
+
await this.enforceGeographicDiversity(nodeId, connectionRequests);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Check for network diversity (ASNs)
|
|
307
|
+
if (diversityMetrics.networkEntropy < 1.5) {
|
|
308
|
+
await this.enforceNetworkDiversity(nodeId, connectionRequests);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Limit connections from single source
|
|
312
|
+
const maxConnectionsPerSource = 3;
|
|
313
|
+
const groupedConnections = this.groupConnectionsBySource(connectionRequests);
|
|
314
|
+
|
|
315
|
+
for (const [source, connections] of groupedConnections) {
|
|
316
|
+
if (connections.length > maxConnectionsPerSource) {
|
|
317
|
+
await this.alertSystem.raiseEclipseAlert(nodeId, source, connections);
|
|
318
|
+
// Randomly select subset of connections
|
|
319
|
+
const allowedConnections = this.randomlySelectConnections(
|
|
320
|
+
connections, maxConnectionsPerSource
|
|
321
|
+
);
|
|
322
|
+
this.blockExcessConnections(
|
|
323
|
+
connections.filter(c => !allowedConnections.includes(c))
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// DoS Attack Mitigation
|
|
330
|
+
async mitigateDoSAttacks(incomingRequests) {
|
|
331
|
+
const rateLimiter = new AdaptiveRateLimiter();
|
|
332
|
+
const requestAnalyzer = new RequestPatternAnalyzer();
|
|
333
|
+
|
|
334
|
+
// Analyze request patterns for anomalies
|
|
335
|
+
const anomalousRequests = await requestAnalyzer.detectAnomalies(incomingRequests);
|
|
336
|
+
|
|
337
|
+
if (anomalousRequests.length > 0) {
|
|
338
|
+
// Implement progressive response strategies
|
|
339
|
+
const mitigationStrategies = [
|
|
340
|
+
this.applyRateLimiting(anomalousRequests),
|
|
341
|
+
this.implementPriorityQueuing(incomingRequests),
|
|
342
|
+
this.activateCircuitBreakers(anomalousRequests),
|
|
343
|
+
this.deployTemporaryBlacklisting(anomalousRequests)
|
|
344
|
+
];
|
|
345
|
+
|
|
346
|
+
await Promise.all(mitigationStrategies);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return this.filterLegitimateRequests(incomingRequests, anomalousRequests);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Secure Key Management
|
|
355
|
+
```javascript
|
|
356
|
+
class SecureKeyManager {
|
|
357
|
+
constructor() {
|
|
358
|
+
this.keyStore = new EncryptedKeyStore();
|
|
359
|
+
this.rotationScheduler = new KeyRotationScheduler();
|
|
360
|
+
this.distributionProtocol = new SecureDistributionProtocol();
|
|
361
|
+
this.backupSystem = new SecureBackupSystem();
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// Distributed Key Generation
|
|
365
|
+
async generateDistributedKey(participants, threshold) {
|
|
366
|
+
const dkgProtocol = new DistributedKeyGeneration(threshold, participants.length);
|
|
367
|
+
|
|
368
|
+
// Phase 1: Initialize DKG ceremony
|
|
369
|
+
const ceremony = await dkgProtocol.initializeCeremony(participants);
|
|
370
|
+
|
|
371
|
+
// Phase 2: Each participant contributes randomness
|
|
372
|
+
const contributions = await this.collectContributions(participants, ceremony);
|
|
373
|
+
|
|
374
|
+
// Phase 3: Verify contributions
|
|
375
|
+
const validContributions = await this.verifyContributions(contributions);
|
|
376
|
+
|
|
377
|
+
// Phase 4: Combine contributions to generate master key
|
|
378
|
+
const masterKey = await dkgProtocol.combineMasterKey(validContributions);
|
|
379
|
+
|
|
380
|
+
// Phase 5: Generate and distribute key shares
|
|
381
|
+
const keyShares = await dkgProtocol.generateKeyShares(masterKey, participants);
|
|
382
|
+
|
|
383
|
+
// Phase 6: Secure distribution of key shares
|
|
384
|
+
await this.securelyDistributeShares(keyShares, participants);
|
|
385
|
+
|
|
386
|
+
return {
|
|
387
|
+
masterPublicKey: masterKey.publicKey,
|
|
388
|
+
ceremony: ceremony,
|
|
389
|
+
participants: participants
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
// Key Rotation Protocol
|
|
394
|
+
async rotateKeys(currentKeyId, participants) {
|
|
395
|
+
// Generate new key using proactive secret sharing
|
|
396
|
+
const newKey = await this.generateDistributedKey(participants, Math.floor(participants.length / 2) + 1);
|
|
397
|
+
|
|
398
|
+
// Create transition period where both keys are valid
|
|
399
|
+
const transitionPeriod = 24 * 60 * 60 * 1000; // 24 hours
|
|
400
|
+
await this.scheduleKeyTransition(currentKeyId, newKey.masterPublicKey, transitionPeriod);
|
|
401
|
+
|
|
402
|
+
// Notify all participants about key rotation
|
|
403
|
+
await this.notifyKeyRotation(participants, newKey);
|
|
404
|
+
|
|
405
|
+
// Gradually phase out old key
|
|
406
|
+
setTimeout(async () => {
|
|
407
|
+
await this.deactivateKey(currentKeyId);
|
|
408
|
+
}, transitionPeriod);
|
|
409
|
+
|
|
410
|
+
return newKey;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
// Secure Key Backup and Recovery
|
|
414
|
+
async backupKeyShares(keyShares, backupThreshold) {
|
|
415
|
+
const backupShares = this.createBackupShares(keyShares, backupThreshold);
|
|
416
|
+
|
|
417
|
+
// Encrypt backup shares with different passwords
|
|
418
|
+
const encryptedBackups = await Promise.all(
|
|
419
|
+
backupShares.map(async (share, index) => ({
|
|
420
|
+
id: `backup_${index}`,
|
|
421
|
+
encryptedShare: await this.encryptBackupShare(share, `password_${index}`),
|
|
422
|
+
checksum: this.computeChecksum(share)
|
|
423
|
+
}))
|
|
424
|
+
);
|
|
425
|
+
|
|
426
|
+
// Distribute backups to secure locations
|
|
427
|
+
await this.distributeBackups(encryptedBackups);
|
|
428
|
+
|
|
429
|
+
return encryptedBackups.map(backup => ({
|
|
430
|
+
id: backup.id,
|
|
431
|
+
checksum: backup.checksum
|
|
432
|
+
}));
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
async recoverFromBackup(backupIds, passwords) {
|
|
436
|
+
const backupShares = [];
|
|
437
|
+
|
|
438
|
+
// Retrieve and decrypt backup shares
|
|
439
|
+
for (let i = 0; i < backupIds.length; i++) {
|
|
440
|
+
const encryptedBackup = await this.retrieveBackup(backupIds[i]);
|
|
441
|
+
const decryptedShare = await this.decryptBackupShare(
|
|
442
|
+
encryptedBackup.encryptedShare,
|
|
443
|
+
passwords[i]
|
|
444
|
+
);
|
|
445
|
+
|
|
446
|
+
// Verify integrity
|
|
447
|
+
const checksum = this.computeChecksum(decryptedShare);
|
|
448
|
+
if (checksum !== encryptedBackup.checksum) {
|
|
449
|
+
throw new Error(`Backup integrity check failed for ${backupIds[i]}`);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
backupShares.push(decryptedShare);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// Reconstruct original key from backup shares
|
|
456
|
+
return this.reconstructKeyFromBackup(backupShares);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## MCP Integration Hooks
|
|
462
|
+
|
|
463
|
+
### Security Monitoring Integration
|
|
464
|
+
```javascript
|
|
465
|
+
// Store security metrics in memory
|
|
466
|
+
await this.mcpTools.memory_usage({
|
|
467
|
+
action: 'store',
|
|
468
|
+
key: `security_metrics_${Date.now()}`,
|
|
469
|
+
value: JSON.stringify({
|
|
470
|
+
attacksDetected: this.attacksDetected,
|
|
471
|
+
reputationScores: Array.from(this.reputationSystem.scores.entries()),
|
|
472
|
+
keyRotationEvents: this.keyRotationHistory
|
|
473
|
+
}),
|
|
474
|
+
namespace: 'consensus_security',
|
|
475
|
+
ttl: 86400000 // 24 hours
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
// Performance monitoring for security operations
|
|
479
|
+
await this.mcpTools.metrics_collect({
|
|
480
|
+
components: [
|
|
481
|
+
'signature_verification_time',
|
|
482
|
+
'zkp_generation_time',
|
|
483
|
+
'attack_detection_latency',
|
|
484
|
+
'key_rotation_overhead'
|
|
485
|
+
]
|
|
486
|
+
});
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Neural Pattern Learning for Security
|
|
490
|
+
```javascript
|
|
491
|
+
// Learn attack patterns
|
|
492
|
+
await this.mcpTools.neural_patterns({
|
|
493
|
+
action: 'learn',
|
|
494
|
+
operation: 'attack_pattern_recognition',
|
|
495
|
+
outcome: JSON.stringify({
|
|
496
|
+
attackType: detectedAttack.type,
|
|
497
|
+
patterns: detectedAttack.patterns,
|
|
498
|
+
mitigation: appliedMitigation
|
|
499
|
+
})
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// Predict potential security threats
|
|
503
|
+
const threatPrediction = await this.mcpTools.neural_predict({
|
|
504
|
+
modelId: 'security_threat_model',
|
|
505
|
+
input: JSON.stringify(currentSecurityMetrics)
|
|
506
|
+
});
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
## Integration with Consensus Protocols
|
|
510
|
+
|
|
511
|
+
### Byzantine Consensus Security
|
|
512
|
+
```javascript
|
|
513
|
+
class ByzantineConsensusSecurityWrapper {
|
|
514
|
+
constructor(byzantineCoordinator, securityManager) {
|
|
515
|
+
this.consensus = byzantineCoordinator;
|
|
516
|
+
this.security = securityManager;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
async secureConsensusRound(proposal) {
|
|
520
|
+
// Pre-consensus security checks
|
|
521
|
+
await this.security.validateProposal(proposal);
|
|
522
|
+
|
|
523
|
+
// Execute consensus with security monitoring
|
|
524
|
+
const result = await this.executeSecureConsensus(proposal);
|
|
525
|
+
|
|
526
|
+
// Post-consensus security analysis
|
|
527
|
+
await this.security.analyzeConsensusRound(result);
|
|
528
|
+
|
|
529
|
+
return result;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
async executeSecureConsensus(proposal) {
|
|
533
|
+
// Sign proposal with threshold signature
|
|
534
|
+
const signedProposal = await this.security.thresholdSignature.sign(proposal);
|
|
535
|
+
|
|
536
|
+
// Monitor consensus execution for attacks
|
|
537
|
+
const monitor = this.security.startConsensusMonitoring();
|
|
538
|
+
|
|
539
|
+
try {
|
|
540
|
+
// Execute Byzantine consensus
|
|
541
|
+
const result = await this.consensus.initiateConsensus(signedProposal);
|
|
542
|
+
|
|
543
|
+
// Verify result integrity
|
|
544
|
+
await this.security.verifyConsensusResult(result);
|
|
545
|
+
|
|
546
|
+
return result;
|
|
547
|
+
} finally {
|
|
548
|
+
monitor.stop();
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
## Security Testing and Validation
|
|
555
|
+
|
|
556
|
+
### Penetration Testing Framework
|
|
557
|
+
```javascript
|
|
558
|
+
class ConsensusPenetrationTester {
|
|
559
|
+
constructor(securityManager) {
|
|
560
|
+
this.security = securityManager;
|
|
561
|
+
this.testScenarios = new Map();
|
|
562
|
+
this.vulnerabilityDatabase = new VulnerabilityDatabase();
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
async runSecurityTests() {
|
|
566
|
+
const testResults = [];
|
|
567
|
+
|
|
568
|
+
// Test 1: Byzantine attack simulation
|
|
569
|
+
testResults.push(await this.testByzantineAttack());
|
|
570
|
+
|
|
571
|
+
// Test 2: Sybil attack simulation
|
|
572
|
+
testResults.push(await this.testSybilAttack());
|
|
573
|
+
|
|
574
|
+
// Test 3: Eclipse attack simulation
|
|
575
|
+
testResults.push(await this.testEclipseAttack());
|
|
576
|
+
|
|
577
|
+
// Test 4: DoS attack simulation
|
|
578
|
+
testResults.push(await this.testDoSAttack());
|
|
579
|
+
|
|
580
|
+
// Test 5: Cryptographic security tests
|
|
581
|
+
testResults.push(await this.testCryptographicSecurity());
|
|
582
|
+
|
|
583
|
+
return this.generateSecurityReport(testResults);
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
async testByzantineAttack() {
|
|
587
|
+
// Simulate malicious nodes sending contradictory messages
|
|
588
|
+
const maliciousNodes = this.createMaliciousNodes(3);
|
|
589
|
+
const attack = new ByzantineAttackSimulator(maliciousNodes);
|
|
590
|
+
|
|
591
|
+
const startTime = Date.now();
|
|
592
|
+
const detectionTime = await this.security.detectByzantineAttacks(attack.execute());
|
|
593
|
+
const endTime = Date.now();
|
|
594
|
+
|
|
595
|
+
return {
|
|
596
|
+
test: 'Byzantine Attack',
|
|
597
|
+
detected: detectionTime !== null,
|
|
598
|
+
detectionLatency: detectionTime ? endTime - startTime : null,
|
|
599
|
+
mitigation: await this.security.mitigateByzantineAttack(attack)
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
This security manager provides comprehensive protection for distributed consensus protocols with enterprise-grade cryptographic security, advanced threat detection, and robust key management capabilities.
|